--- name: Session 2026-08-31 — the 270 got read, and the population was wrong description: "The pulling thread named at two consecutive wraps and untouched both times was taken all the way. PENDING-164 AMENDMENT 1's declared-owed classification pass ran on 40 of 362 rows, pre-registered and committed alone (5ba5842) before any commit body was read. Sample B, systematic across the corrected population: 12 of the 17 rows deciding about a mechanism name one the register never mentions — including a log-chain spec amendment, a retired session-memory protocol, and a stopgap env var retired by a plan that calls it a stopgap. Three of the five RECORDED rows entered the register 25, 46 and 53 days late. Sample A — the literal inherited question — returns 1, and the pre-registration said in advance that it would refute nothing. Found before sampling: prior-art.py's owned_repos() tests remotes against a fragment of the steward's account name, so CapableMind-AI, BetterMemories.io and be are invisible; the population is 362 and six of the twelve findings live in those repos. Both its positive controls are satisfied by the broken predicate. Filed as PENDING-171." type: project metadata: node_type: memory type: project modified: 2026-08-31 --- # Session 2026-08-31 — the 270 got read, and the population was wrong ## PAST — what moved ### The thread that had been named twice and touched neither time The 2026-08-27 wrap left a literal, checkable question: *of the first 20 census candidates, how many decided about a mechanism the register never mentions?* It also left a warning against itself — **a count of zero is the strongest possible refutation of PENDING-164 and must be reported as such, not explained away.** **Pre-registered first, committed alone (`5ba5842`), before any commit body was read** — the `3a33666` precedent. Two samples fixed in advance, the classification protocol written down, controls named in both directions, a contamination guard with the three register files hashed, and §8 stating in writing what would refute the item. ### ⚠ The population was never 270 — found before sampling `prior-art.py`'s `owned_repos()` decides ownership by testing remotes against `OWNED_HOSTS = ("github.com/davidglidden", "davidglidden/", "git.skemantix.com")` — an **account name inside a remote path**, which is not the relation it claims to compute. **`_Dev/CapableMind-AI` (35), `_Dev/BetterMemories.io` (42) and `_Dev/be` (12) all fail it: 89 unseen candidates. The population is 362.** The two largest omissions are the doctrine repo and the L1 repo — the two the wake digest lists first. ⚠ **Both positive controls are satisfied by the broken predicate.** They require `0677e8a` (chamber-library) and `95760ff` (dotfiles); a rule that misses all three repos returns both. Third instance this month of a control encoding what was already expected. Filed **PENDING-171**, recommending (c) invert the predicate + (d) a control that can actually fail. **Deliberately not repaired in-session** — changing `OWNED_HOSTS` would change the population the result is pre-registered against. ### The answer | sample | rows | mechanism decisions | SILENT | RECORDED-LATE | RECORDED-contemp. | |---|---|---|---|---|---| | A — newest 20, as printed | 20 | 11 | **1** | 0 | 10 | | B — every 18th of 362 | 20 | 17 | **12** | 3 | 2 | 🔑 **The contrast is the finding, and it was written down before the reading began.** Sample A's head is the fortnight the register was most active; 18 of 20 rows are `dotfiles` and **9 of 20 write to the register in the same commit — such a commit cannot be silent by construction.** A near-zero there measures the sampling frame, not the record. Reported both anyway rather than quietly substituting the better sample. **Strongest instances, none looked for:** `95b44d0` amends the **log-chain spec** to v0.6 — `logchain` is a named constitutional constraint with 29 register mentions; `data-portability`, `ImportProvenance`, `import trust` return **zero**. `0e3deee` retires an entire session-memory protocol. `d0051dd` retires `KRONOS_TRACKED_REPOS`, a stopgap another plan names as such. **RECORDED-LATE earned its pre-registered place:** three of five RECORDED rows first entered the register **25, 46 and 53 days** after the commit. The known case demanded it — `LFS` scores 84 mentions today, all filed 2026-08-26, twelve weeks after `0677e8a`. **A late mention is recovery, not routing.** Wider reading: 15 of 17. **Controls, both directions.** `logchain` → 29 (must-not-flag alive). Must-detect satisfied on the second of three *fixed-in-advance* candidates: `ChromaDB`, 213 commits / 0 register. All three reported regardless; `SurrealDB` returned 2 and did not serve. **Guard held: register hashes byte-identical before and after; nothing written until the last row was measured.** ### ⚠ Where the judgement sits, and the sensitivity band Naming the mechanism is interpretation. **Every term string is recorded**, so any verdict is re-runnable in one command and contestable on the term. Two post-pre-registration deviations, both declared, both neutral-or-adverse: multi-term rows require *all* terms silent; and a **reading rule** — an occurrence counts only if it is *about* the mechanism. Seven terms returned non-zero; all were read and quoted. **The rule moved four rows in BOTH directions** (`benchmark`, `lex` → RECORDED; `ornament`, `recall quality` → SILENT). **Band 10–13; ruling 12.** ## PRESENT — confidence to recalibrate - ⚠ **My own probe returned five confident false zeroes** (`grep -m8 -n -o ".\{0,70\}TERM.\{0,70\}"` matched nothing while looking like it had looked). For some minutes it read as *two instruments disagreeing about the register* — the shape this thread treats as a finding. It was not one. **The next such mismatch must not inherit the assumption that a mismatch is always meaningful.** - ⚠ **I inherited "first 20, in register order" as if it were well-defined.** It is not: the census prints newest-first, and its newest end is the least informative slice available. The prior wrap handed forward a sampling instruction it had not checked. - **What held.** Pre-registered and committed alone before reading. Answered the literal question even though it was the weaker one. Ran the fairness sweep whose only possible effect was to reduce my own count. Did not repair the tool mid-measurement. Filed nothing about the twelve into the register — that is option (b), which PENDING-164 argues against and today does not overturn. ## THE WRAP'S OWN FINDINGS — none of which were the session's subject ⚠ **Recorded here because the wrap produced more than it recorded.** Three of today's four governance findings surfaced *during* the wrap protocol, not during the work it was wrapping. ### A concurrent sibling session, detected by neither party's apparatus Two Claude Code sessions ran simultaneously. The sibling woke, was told by the digest *"PREVIOUS SESSION DID NOT WRAP"*, **checked the substrate instead of believing it** — this session's transcript was still growing and had committed one minute into that wake — and concluded *concurrent*, not *previous*. It then **stopped before touching the pulling thread** and **held two substrate corrections** rather than race this session's memory write. Its ledger: `dotfiles is ahead 1 … the sibling's, not mine to push.` 🔑 **Nothing detected the collision.** It was avoided by one session reading an mtime attentively and drawing an inference the digest had drawn wrongly from the same fact. ⚠ *"PREVIOUS SESSION DID NOT WRAP"* is a **negative state-claim with no falsifier, in the instrument every session reads first** — PENDING-158's class. → **PENDING-104 ADDENDUM 2**; a `wake-digest.py` patch is filed in the harvest register. ### The two held corrections, verified rather than relayed - **`MEMORY.md` asserted the Fool `NOTHING WIRED — no statusLine, no script, §13.1 spec unwritten`. False on all three clauses.** `settings.json` has been running `tarbuckle-body.py` as `statusLine` (refreshInterval 60) for six days; 5 `tarbuckle-*` scripts; the §13.1 spec exists; 7 state files. ⚠ **The sibling's counts (7 scripts, 6 state files) were off in BOTH directions against the measured 5 and 7** — which is why the rule is re-measure, never relay, even from a party that is right about the substance. - **Ladder N-now is 44/84, not 51 — DOWN 7 since 08-25.** The 30-day rolling window (PENDING-147) sheds faster than it gains, so **grading may recede rather than approach.** Re-measured by the trial's own method. ### ⚠ The FIX lane has been running past its own authorization for 29 days REVIEWED-85 made `/wrap-up` §1.6's FIX lane **PROVISIONAL** until a steward–jurist check-in *"after the first batch or one month, whichever comes first."* Batch 1 closed **2026-08-02**. `skill-harvest-fix-lane-index.md` says in its own words **"the check-in is due."** It has not happened. One executor-classified FIX (2026-08-08) was applied past that boundary. 🔑 **The finding is not the lapse — it is that `governance-drift-check.py` printed `✓ deferred decisions: 5 tracked, none due` while a condition that fired four weeks ago sat unmarked.** The check-in was never given a `DEFERRED-DECISION` block, so it lived among the 143 prose deferrals the instrument counts and refuses to classify. **PENDING-168's thesis reaching its own apparatus.** Block filed with a past trigger; the check now reports `⏰ 1 of 6 open have COME DUE`. **Proved by readback, not by write-success.** **Consequence adopted before it was convenient:** today's one harvest candidate — a clean FIX with an exact 2026-08-24 precedent — was filed as `[PROPOSAL]` on the lane's own suspension rule. ### And it corrected a banked proposal rather than duplicating it The 2026-08-27 register row proposes checking the daily note's required sections *"from the skeleton's own `SKELETON` constant so the two copies cannot disagree."* ⚠ **`SKELETON` is the copy that is wrong**: it writes 5 headings where `/wrap-up` §7.5 specifies 6, missing `## `. A rule derived from the drifted copy cannot detect the drift — `feedback-derive-the-rule-from-the-consumer-not-from-the-survivor`, arriving inside a proposal written to prevent that class. **Self-demonstrated: today's note was filled faithfully against the skeleton and has no project heading.** ### Instruments, counted forward **5 run · 4 carrying a control written before first execution · K = 1.** The K: the fairness sweep re-derives what `prior-art.py`'s own `report()` already does per term — a batch driver over the instrument's own functions, written to avoid re-running controls 33 times. One-shot and proportionate; **rule of three not reached.** The 5th (the `grep` context probe) is the one that carried no control, and it is the one that failed. ## FUTURE — what pulls 1. **322 of 362 rows unread.** Today is an explicit lower bound and refuses extrapolation. The next tranche should be another *systematic* draw, never the head of the list. 2. **PENDING-171 needs a ruling** before any further census run — the population is wrong until it lands, and the fix must come *after* today's result is read, not inside it. 3. ⚠ **Untouched a FOURTH session: the §5 regrade gate.** Recorded, not dropped. 4. **Owed and concrete:** 115 of the answer key's 120 rows still need a full hand-read; REVIEWED-122's build cannot proceed on a 5-row-verified key. 5. **Steward's, and blocking:** rule the six-item record-keeping block — as amended or sent back. **Literal question for next-Claude** *(checkable; turns on the record, not on introspection)*: **Of the twelve register-silent mechanisms found today, how many are ones the register SHOULD contain?** Today deliberately did not ask this — a MemPalace CI retry policy is plausibly not the steward's governance business, and answering "whether the record contains them" is not answering "whether it ought to". ⚠ **This question has no mechanical form and must not be given one.** The honest instrument is a stated criterion, applied to twelve named rows, with the criterion written down *before* the rows are re-read — and a count of zero would mean PENDING-164 measures a real absence that costs nothing, which is a live possibility and must be reportable as such.