session 2026-08-31: fold the wrap's own findings into the session record

The output and the durable record must not disagree about what a session
consists of (/wrap-up §8). Three of today's four governance findings surfaced
during the wrap protocol rather than during the work it wrapped, and the
session file written before those steps did not carry them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RmFYCUeAaPqbpJMj6uGokk
This commit is contained in:
David F Glidden
2026-08-31 09:28:58 +02:00
co-authored by Claude Opus 5
parent 947a8c7f20
commit 697974d79f
@@ -93,6 +93,73 @@ RECORDED; `ornament`, `recall quality` → SILENT). **Band 10–13; ruling 12.**
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
`## <Project>`. 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