- The 59 unattributable register blocks: ZERO name their parent in their own text; all position-only. 37 cite only FOREIGN ids, so an id-keyed repair would mis-file every one. The obvious automated repair is worse than none. - PENDING-186 [PROPOSAL] filed + AMENDMENT 1: the 'silent failure' ordering constraint is falsified (the harness warns at write time), and the real defect is that our write convention routed around that guard. - Claude Code's near-limit MEMORY.md guard is PATH-KEYED: 5/5 warnings via the ~/.claude symlink path, 0/2 via the real dotfiles path at a LARGER size. Pre-registered and confirmed. MEMORY.md must be edited by the symlink path. - PENDING-175 AMENDMENT 1: governance_item returning only the first block is no longer predicted but REPRODUCED, located at governance-mcp.py:199-202; the second defect is narrower than reported - it is a colon. - Both amendments filed id+marker so they do not join the 59 they describe. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PJM5fwqp456LDGzqiZXsgu
26 KiB
name, description, type
| name | description | type |
|---|---|---|
| Session Ledger 2026-09-13 | Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses. | feedback |
Session Ledger — 2026-09-13
Returns
-
2026-09-13T wake — Re-measured the warning I was handed instead of relaying it, and it changed. Past-me's closing words: "the index is at ~94% of the read limit." Measured: MEMORY.md is 23,539 B and was loaded WHOLE this wake — no truncation warning. ⚠ The record carries two ceilings and only one survives the load: yesterday's ledger and session memory say 17.1 KB, which today's full load falsifies; MEMORY.md's own 24.4 KB stands. Margin ≈ 900 bytes. The banked rule that applies is a dated measurement is not a status — and the figure that was wrong is the one that would have made the trim look overdue. Recorded, not corrected: the repair belongs to the lossless-relocation sitting, and the wake reads rather than mutates.
-
2026-09-13T wake — ⚠ AN INSTRUMENT'S ERROR TEXT ALMOST BECAME AN ABSENCE, THIRD INSTANCE OF THE CLASS IN TWO DAYS.
ls <file> 2>&1 | tail -1returned eza's usage tail for both the ledger path and the contamination doc; read at a glance it says not there. It establishes nothing about either file. Re-checked withos.path.existsplus a negative control on a path certain to be absent (False, as expected): ledger ABSENT (correct — created below), contamination doc EXISTS, 7,517 B. Yesterday the same class fired asls -ltprinting blank and nearly being reported as "no ledgers exist" (there are 119); the day before as a self-contaminated control. Class: an instrument fails in the shell and its output reads as data. Named in chat before writing anything, per §3. -
2026-09-13T wake — Reported N-now with its predicate and its composition, from the banked instrument. Imported
human_turnsfromwake-digest.pyrather than re-deriving a counter (K = 0 held): 63 raw · 31 at ≥1 prompt (32 mumble) · 25 at ≥2. Negative control (≥1e6→ 0) held. One new transcript since 09-12, and it is a mumble — the ≥1 and ≥2 counts are both unchanged at 31 and 25. ⚠ OWED-6 untouched: the 09-10 banked 31/28 is labelled two-prompt and matches the one-prompt count; not compared. -
2026-09-13T wake — The 59 came from the instrument, not from my hand. Ran
governance-drift-check.pylive (65/65 controls, 4 paths verified) rather than relaying the digest's line. ⚠ And the free advance is bounded, deliberately: the reporter already splits the 59 by shape — 56 bare-marker + 3 in-body — which is not the ownership split the inherited question asks for. Stated that way in the briefing so the shape split is not later read as the answer; that is the pre-named failure mode. -
2026-09-13T wake — Did not claim
gitea.git status -sbsees only the tracking remote by construction, so the wake cannot see the second remote. Named unverified today rather than inferred-fine from yesterday'sls-remote. Third consecutive wake this has been a hand-check gap (skill-harvest H, two instances already filed). -
2026-09-13T wake — Daybook cue fired on a read-only command again and said "the write already succeeded." No write had occurred (
wc -c+git status). Third instance of skill-harvest B's second-instance pattern — the cue misdescribes its own trigger. Recorded, not re-filed. -
2026-09-14T — ⚠ THE WAKE BRIEFING'S CENTRAL CORRECTION WAS ITSELF THE ERROR, AND IT TOOK AN OUTSIDE READER TO SHOW IT. I reported two competing ceilings (17.1 KB / 24.4 KB) and announced the measurement had falsified the first. Neither claim survives. (a) 17.1 KB was never a ceiling — it is the compaction target inside Claude Code's own reminder text ("Compact it to under 17.1KB now: keep one line per entry, move detail into topic files, and merge or drop stale entries"); yesterday's ledger mis-transcribed it as "the 17.1 KB harness ceiling" and I inherited the mis-transcription and then falsified it. What I falsified was a typo. (b) 24.4 KB is not invented and not ours —
25,000 B = 24.41 KiB, the documented limit in the other unit. (c) I asserted the warning was "ours, not the harness's." False: no emitter exists in~/.claudeor~/dotfiles, and the harness doc's wording matches the observed attachment verbatim. ⇒ Past-me's "~94% of the read limit" was RIGHT (23,539 / 25,000 = 94.2%), and the steward's ordering was right. I argued against a sound premise from a number I had not traced to its source. -
2026-09-14T — The limit, established from outside my own corpus. Auto-memory loads the first 200 lines OR 25 KB, whichever comes first; content past it is not loaded at session start — silently, with no load-time warning. MEMORY.md: 110/200 lines (55%, not binding) · 23,539/25,000 B (94.2%, binding). Margin ≈ 1,460 B, and tonight's wrap adds an Active Session block of ≈ 2,718 B. ⚠ Sourced from a subagent reading the docs, at 85% self-reported confidence on the threshold — it is the only check here not drawn from a corpus I wrote, which is precisely why it caught what four of my own passes did not.
-
2026-09-14T — Every number driving this had a self-authored chain, and I only found that by looking for the emitter. The five
MEMORY.md is N KBrecords aretype=attachment/hook_additional_context; all 25"only part was loaded"hits are/wake-up's own specification text injected asuserrecords — the corpus holds the description of the warning, not the warning. Same shape as the hand link-canary whose one "finding" was the link pattern inside its own spec. ⚠ And my first extractor returned 1 of 5 of these because it readmessage.contentwhile four sat inattachmentrecords — the wrong-field/wrong-unit class, fourth instance in three days, caught only by re-running raw-line. -
2026-09-14T — A sole-carrier found before it could be rotated away. The Active Session block's
N-now 09-12: 62 raw; 31/31 at ≥1 prompt, 25/37 at ≥2exists in MEMORY.md and nowhere else — searched all 539 memory files in six written forms, negative control clean. Banked here so the block can rotate losslessly: 2026-09-12 — 62 raw · 31 at ≥1 prompt · 25 at ≥2. (Today, 09-14: 63 raw · 31 at ≥1 · 25 at ≥2 — one new transcript, a mumble.) ⚠ Note≥2 promptas a string appears in no memory file, which is why my first losslessness query returned a false ABSENT on a claim I had read with my own eyes — a null from a query I wrote is evidence about the query. -
2026-09-14T — ⚖ THE THREAD IS ANSWERED, AND THE ANSWER IS ZERO. Of the drift check's own 59 unattributable blocks, the number whose own text names its parent is 0. Not a split — a floor. Buckets (controls: my widening reproduced the instrument's 59 exactly; buckets sum to 59): (a) explicit
**Amends:**claim = 0 · (b1) mentions its own position-parent's id = 12 · (b2) mentions ONLY foreign ids = 37 · (c) no id anywhere = 10. ⚠ The inherited question presupposed a split that does not exist — it asked how many name their parent versus how many are position-only, and the answer is that all 59 are position-only. -
2026-09-14T — ⚠ AND I NEARLY SHIPPED A SOFTER NUMBER BY MISLABELLING MY OWN BUCKET. I first called (b1) "weakly derivable", which would have let 12 read as partly recovered. It is not derivation. A body mentioning its position-parent's id is consistent with position; it is not independent evidence of it, because that id could be a cross-reference like every other id in the body. Consistency is not confirmation — and calling it derivation is selection dressed as derivation, the banked derive-from-the-consumer error. Corrected before reporting: 0 establish parentage; 47 have no self-consistent signal at all; 12 merely fail to contradict position.
-
2026-09-14T — ⚠ THE HAZARD NOBODY HAD NAMED: 37 of the 59 are not merely missing an id, they are BOOBY-TRAPPED. Bucket (b2) carries foreign ids only —
pos=PENDING-152whose body offersPENDING-4;pos=PENDING-96offeringPENDING-97;pos=PENDING-82offeringREVIEWED-53. An id-keyed repair that reads bodies would mis-file every one of them, confidently, because a cross-reference is indistinguishable from a parentage claim at the token level. The obvious automated repair is worse than no repair. Derived by asking what a CONSUMER of the value must do, not by picking a surviving implementation. -
2026-09-14T — The instrument I was told to enumerate from CANNOT answer the question that directed me to it.
register_scanreturns(label, form, title[:72])— no line number, no body, and the header truncated to 72 chars. Its unit is the header line; the question's unit is the block body. ⚠ Fifth instance this week of the unit mismatch, and the first found inside an instrument the resumption point named as authoritative. Handled by widening, declared as widening: the module's ownRE_HEAD_LINE/RE_INBODY/_classifydecide membership (so the population stays the instrument's), and the body-read is mine and labelled mine. ⚠ Note the truncationtitle[:72]is the same family as the[:100]slice that manufactured a syntax error on 09-12. -
2026-09-14T — Did NOT file a PENDING item for this, deliberately. PENDING-146 already owns the convention question; the resumption point directs the number to the steward first; the repair is a header edit reserved to his hand. ⚠ And a bare
### AMENDMENTfiled about unattributable bare### AMENDMENTblocks would join the 59 it describes — the record has no shape for this finding that the finding does not condemn. That is itself the argument for PENDING-146 being decided before anything else is appended. -
2026-09-14T — ⚖ THE JURIST HANDED ME A FALSIFIER FOR MY OWN ITEM AND IT FIRED. PENDING-186 asserts "there is no load-time warning; the index simply arrives short" and an ordering constraint of "~3 days to a silent failure." Both wrong as written. Claude Code warns at WRITE time, twice (near-limit reminder, then an over-limit error), documented in
memory.mdand corroborated by my own independently-spawned reader. ⚠ I asserted a silence I had never tested, in an item whose recorded conduct failure is a number propagated unexamined. Third instance today of the same shape. -
2026-09-14T — ⚖ AND THE JURIST'S PROPOSED TEST FOUND THE REAL DEFECT: THE WRITE-GUARD IS PATH-KEYED. Its form was "if it has never fired, your write path is outside the instrument that would speak." Measured: 5/5 genuine firings (
type=attachment+hook_additional_context, across 3 sessions, 21–23.1 KB) came from edits to the symlink path~/.claude/projects/-Users-davidglidden/memory/MEMORY.md; 0/2 today from the real path~/dotfiles/claude/memory/MEMORY.md.realpathidentical — same file, same bytes. ⚠ Rival explanation EXCLUDED by internal control: today's file was 23.9 KB, LARGER than every case where it fired, so "not near enough" cannot account for it. ⚠ NOT excluded: a harness change between 09-12 and 09-14 — unfalsifiable from here, named rather than waved off. Pre-registered experiment run this sitting: an edit routed through the symlink path, prediction stated before execution. -
2026-09-14T — ⚠ A BANKED RULE HAS A COST NOBODY HAD PRICED.
reference-governance-files-are-dotfiles-symlinks.mdsays to edit the real~/dotfiles/…path because Edit refuses to write through a symlink — and it is scopedPENDING/REVIEWEDonly. I extended it to MEMORY.md today without noticing the scope, and the extension is what silenced the guard. ⚠ The 09-12 edits succeeded through the symlink path, so the refusal claim is at minimum mis-scoped (file-symlink vs directory-symlink). The workaround that makes the write possible is what disables the alarm — and neither half of that was visible from either half alone. -
2026-09-14T — ⚠ AN UNRESOLVED CONFLICT BETWEEN TWO PRIMARY-SOURCE READERS, recorded as a conflict. The jurist quotes a 10,000-character cap on hook output from the hooks reference; my independently-spawned reader searched
hooks-guide.mdandhooks.mdand returns NOT FOUND at 92%. Both claim primary source. Neither wins by precedence — memory discipline makes a two-layer conflict a verification trigger. ⚠ Live stake: the wake digest emits 8,136 chars, which is 81% of a cap that may not exist, and my own test of it was UNINFORMATIVE (under the threshold) and was reported as uninformative. -
2026-09-14T — ⚠ TWO READERS AGREEING IS NOT THE STRONG FORM, AND I ALMOST BANKED IT AS IF IT WERE.
InstructionsLoaded(hooks-guide.md:503) and.claude/rules/*.mdwere verified by the jurist and independently by my subagent at 97–98%. But both are LLMs reading the same documents — Constraint 6's weak separation (role/information), explicitly not difference of formation. ⚠ Same error-shape as this morning's shared-substrate finding, one layer along: agreement between two readers of one corpus is one reading counted twice. Recorded as corroboration of known kind, not as proof. ⚠ Also: the docs are silent on rules-file size limits, so option (e) trades a KNOWN 25 KB cap for an UNDOCUMENTED one. -
2026-09-14T — The jurist named its own ordering error unprompted ("I went to the hooks page to kill option (c) and never opened the memory page… The claim I should have tested was not the one in dispute") and relabelled its 25 KB citation from four secondary sources to primary. ✅ Adopted as a general rule, because it is my failure too, three times today: test the LOAD-BEARING claim, not the DISPUTED one.
-
2026-09-14T — ✅ A PREDICTION MADE AT FILING TIME, CHECKED AFTER. PENDING-186's amendment was filed as
## PENDING-186 — AMENDMENT 1: …(id+marker) rather than a bare### AMENDMENT, predicting it would be attributable and would NOT join the 59 it describes. Confirmed by the instrument:PENDING.mdid+marker19→20, attributable 41→42, amendment-shaped 100→101, NOT ESTABLISHED unchanged at 59, and no false "the amendment replaced its record" finding (the parent classifiesid-only, so it is inoriginals). The day's finding applied to the day's own filing. -
2026-09-14T — ⚠ I BUILT A CHECK THAT COULD NOT DISCRIMINATE, AND I COULD HAVE KNOWN BEFORE RUNNING IT. To pin the guard's unit I claimed a two-point reading (23.1 → 22.9 across a −195 B edit) would "solve for the unit properly." It cannot. All four candidates move by −0.189 … −0.195 — indistinguishable — because the file is only 1.7% multibyte, so bytes and characters move together by construction. The discrimination gate is on the ladder in these words: same verdict on both = the check has demonstrated nothing. ⚠ Second discrimination failure of the day, and this one I authored while explicitly reasoning about instrument reliability. The absolute test failed too: no unit lands near 22.9, and every candidate now sits above the guard's figure.
-
2026-09-14T — ⚠ AND I RESUMED A LINE I HAD ALREADY RULED DISPROPORTIONATE. One round earlier I wrote that the unit question "moves no decision" and would be bounded, not chased. I then resumed it on the reasoning that "the data arrived free" — and spent two further rounds resolving nothing. Free data is not the same as a question worth answering. ⚠ The banked rule it violates is my own from this morning: test the load-bearing claim, not the available one. Closed for real: 23.1–24.1 by unit, 92–96% of the limit, disposition identical under every reading. The guard's number reconciles with no measurement I can make; recorded as an open anomaly, not chased.
-
2026-09-14T — ⚠ I LOCATED A FAULT IN THE ARTEFACT THAT WAS IN MY READING OF IT, AND SAID SO OUT LOUD BEFORE CHECKING. I announced that
reference-governance-files-are-dotfiles-symlinks.mdwas mis-scoped and needed a[FIX]-grade "scope correction". Reading it in full: it is correctly scoped and says so explicitly — "Use the real-dotfiles-path route forPENDING.mdandREVIEWED.mdonly" — and never mentionsMEMORY.md. There was nothing to correct. I over-applied a correct note and then named the note as the defect. ⚠ A distinct failure shape from the day's others: the unit errors were wrong measurements; this was a wrong attribution of fault, and it runs outward — toward the artefact, away from the reader. It would have entered a filed item as fact had the read not preceded the edit. ✅ What the note genuinely lacked was new and is now added as an addition, not a correction: the FILE-vs-DIRECTORY symlink distinction (writing through a symlink directory succeeds, so the flat refusal claim is false as stated) and the measured cost of over-extension. -
2026-09-14T — ✅ Caught only because the read preceded the edit, which is the banked rule doing exactly its job. The instinct was to edit from the remembered summary of the note — the same instinct that produced three render-vs-substrate errors earlier today. ⚠ Note what the description field alone would have given me: its
description:says "…so edit the real dotfiles path when appending PENDING/REVIEWED entries" — correct, and compressed enough that a skim confirms my wrong reading rather than refuting it. The scoping "only" lives in the body, in the last line. The summary was not wrong; it was just not sufficient to catch me. -
2026-09-14T — ⚖ THE REGISTER'S READ PATH SERVED A STALE ITEM TO THE PARTY WHOSE JOB IS TO RULE ON IT. The jurist's
governance_item('PENDING-186')returned the original block byte-identical, with no indication AMENDMENT 1 existed. ⚠ It was one step from drafting a ruling on an item that withdraws (c), adds a fifth condition, and records a conflict with the jurist's own finding. Reproduced by executing the handler: 2 blocks exist,t_itemreturns 1. Mechanism located atgovernance-mcp.py:199–202— areturninside the span loop where an accumulate belongs. PENDING-175 is no longer predicted; it is observed, reproduced, and filed with its line. -
2026-09-14T — ⚠ AND I CORRECTED THE JURIST'S ACCOUNT OF THE SECOND DEFECT — IT IS NARROWER, AND THE DIFFERENCE CHANGES THE FIX. Reported as "search surfaces ids the fetch tool cannot take." Measured: fed the displayed head BYTE-EXACTLY,
t_itemresolves it (thehead == identarm). What fails is the natural truncation —'PENDING-186 — AMENDMENT 1'→ NOT FOUND, becausestartswith(ident + " ")meets"1:"not"1 ". The defect is a colon. ⚠ The reported form would have sent someone to build a new lookup path; the real fix is normalisation at the seam. This is the executor's position paying off in the direction Constraint 6 describes: the jurist can observe the behaviour and cannot read the code, so its account of the mechanism was a reasonable inference that the substrate does not support. -
2026-09-14T — ⚠ THE FALSE CLAIM WAS INSIDE THE FUNCTION MAKING IT.
t_search's own docstring (240–242) states "no second definition of 'an item'" — butt_searchkeys on the full header line andt_itemkeys on the id prefix. Two notions of identity across one seam, each internally coherent. And the existing unreachable-by-id guard is provably silent here (measuredorphan-warning fired: False): it was shaped for headers hidden by leading whitespace, not siblings shadowed by an earlier match. ⚠ A guard that already exists for a class, missing a second member of that class, is the day's recurring shape — the same as the write-guard being path-keyed. -
2026-09-14T — ✅ RAN THE HANDLERS RATHER THAN READING THEM. My first grep for the fetch logic returned nothing because I guessed the public tool names (
governance_item) instead of the internal ones (t_item) — a null about my query, third time today, and I did not report it as a fact about the file. Reading then gave me the mechanism; executing gave me the correction to the jurist's version of it, which reading alone would not have. The ledger's own rule, earned four times today: run a check, don't read harder. -
2026-09-14T — ⚠⚠ THE WORST NEAR-MISS OF THE DAY, STOPPED BY A CAVEAT I WROTE BEFORE RUNNING THE CHECK. Measuring whether
~/CLAUDE.mdloads per session returned 12 injected / 51 not — which reads as "the constitution governs 19% of sessions." That claim is FALSE and I nearly made it. The detector's unit is "was the session preamble RECORDED in the transcript"; the question's unit is "was the constitution DELIVERED to the model." ⚠ Seventh unit mismatch today and the highest-stakes — it would have reached the steward as a constitutional failure. ✅ Caught because the script printed its own limit ("distinguishes recorded-vs-not, NOT delivered-vs-not"), written before execution. The instrument stating what it did not establish is the only reason a false alarm did not ship. -
2026-09-14T — ✅ CONFIRMED by discriminator:
constandenvmarkers disagree in 0 of 63 transcripts — they measure one thing. Combination table: 12 carry all three preamble markers, 31 carry none, 20 carry the memory marker only. A recording-shape fact, not a delivery fact. -
2026-09-14T — ⚠ AND MY OWN PROPOSED EXPLANATION FAILED, WHICH I AM RECORDING RATHER THAN REPLACING. I hypothesised the 51 were subagent/sidechain transcripts. Measured:
fully sidechain: 0/51, and 22 of the 51 carry ≥1 human turn. The tidy mechanism is false. ⚠ What is established is only the negative — the check cannot speak to delivery. Why 22 human-bearing sessions record no preamble is UNEXPLAINED and left open; supplying a second plausible story to replace the one that just failed is precisely how the first one got believed. ⚠ The delivery question needs a positive control this corpus cannot construct — a session known-delivered and known-unrecorded — i.e. observation at load time. That is an argument FOR option (e) neither party reached by design:InstructionsLoadedis exactly the missing instrument. -
2026-09-14T — ⚠ RETRACTED, MINE: the "(e) forces standing preferences into a Constraint-1 frozen file" objection.
~/.claude/CLAUDE.mdis reportedly the documented user-scope instruction file and is distinct from~/CLAUDE.md, the constitutional document. If so the preferences live in a file the executor may maintain, under a documented 4 MiB ceiling, loaded every session. The governance cost I raised was my error, not the jurist's proposal's. ⚠ Status reported-verified, not verified: it comes from the reader whose retrieval was shown partial in the same exchange. ⚠ Also unchanged:.claude/rules/size limits remain undocumented, so the destination should be the.claude/CLAUDE.md, not a rules file. -
2026-09-14T — ✅ The reader retracted its own absence claim to COULD-NOT-ASSESS when given a positive control (
PreToolUsefound) and named the cause: its fetches returned summary pages, not the full reference. The jurist's substrate-difference hypothesis is supported — two retrievals of one document, not two readings. ⚠ The 10 k cap remains open, and only the behavioural test settles it. ✅ REVIEWED-104's third outcome applied correctly by a subagent once the standard was actually asked for — which it was not, the first time.
What held
thread-queryreturned five hits, none bearing on the thread — reported as a null rather than dressed into relevance. Second consecutive null, and the trial's falsifier needs exactly that recorded.- The wake did not begin the work it surfaced. The 59-block enumeration is the first move of the session, not of the briefing.
- Every "outstanding" item in the briefing was substrate-checked or explicitly marked unverified; no disposition clause was read as a status.
Open horizons
- The 59 unattributable blocks — the thread, untouched a third day. First move: enumerate from the drift check's own reporter, then per block ask whether its own text names its parent. The split is the finding; the count is not. Repair is a header edit and awaits the steward's hand.
- MEMORY.md: ≈900 bytes of margin, and the record's two ceiling figures disagree (17.1 KB falsified today; 24.4 KB stands). Gate is the ladder's lossless-relocation entry — slices never retyping, md5 per slice,
wake-digest.pyas the canary. PENDING-185awaits steward annotation; the state claimclaude-md-untouched-pending-150is still FALSE and the read is owed.PENDING-139andPENDING-177marked BUILT with no REVIEWED entry naming them — a gap in the record, remedy is a drafted entry for steward placement.- The shared-substrate finding (jurist and executor read the same three register files) — banked, filed to neither PENDING-89 nor -140; venue 2026-09-16.
- Seb's 08-04 reply unread; L1 "blocked" stays UNSETTLED.
- Worker
acaabadfstopped but still ARMED with--reply-on-resume; respawn behaviour NOT ESTABLISHED. - 2 Desktop maps with no tracked copy in
~/dotfiles/maps/— one is the jurist's threat-report analysis; one tidy-up from gone. - 2026-09-16: joint PENDING-178/-179 review and the 30-day ladder-freeze review.
Confidence to recalibrate
- Verified this wake: MEMORY.md's byte size and that it loaded whole · the 59 count and its shape split, from a live drift-check run with 65/65 controls · N-now under both predicates with a negative control · the ledger's absence and the contamination doc's presence, with a negative control.
- Inherited, not re-verified:
giteaparity with local HEAD (yesterday'sls-remote) · the 09-10 banked composition, whose predicate is still unestablished · the ownership of the two unowned addendum blocks from 09-11. - Falsified on re-measurement: the 17.1 KB index ceiling. It was a dated measurement read as a status, and it was carried in two places.
- Not attempted, third day: 2026-09-10's question — whether any ruling placed before this week can be checked against anything.