session 2026-09-12: PENDING-185, the shared-substrate finding, and a referent no party held

PENDING-185 [HARDENING] — a state-claim falsifier whose unit is the FILE where the claim's
unit is a change made UNDER PENDING-149. It fires at [ESCALATE] on every future ~/CLAUDE.md
edit and cannot be fixed by reading more carefully. Recommendation (b), retire and mark
manual-only, recorded as a LOSS rather than dressed as a fix.

The day's real yield is smaller and worse: the governance MCP server's enumerated FILES and
governance_search cover PENDING.md + PENDING-archive.md + REVIEWED.md — exactly the corpus
the executor sweeps. So jurist and executor agreeing on a register question is ONE CHECK
COUNTED TWICE, not two positions converging. Jurist-ratified. Recorded AGAINST Constraint 6's
falsifiability clause, as that clause requires, and banked for PENDING-89 / PENDING-140
rather than filed. Establishing it needed the executor's transcript AND the MCP file list —
reachable only from one of the two positions it describes.

'Ruling (B)' was a term with no referent. It entered from the jurist at 08:44:58 (measured,
65 records before the executor's first use) and twice acquired a false source — the steward,
then the executor — each asserted rather than read. Act on none of it.

Also: the steward's ~/CLAUDE.md annotation, placed by his hand after the executor declined
the jurist's instruction to place it (Constraint 1; a jurist sign-off does not authorize one).
First live exercise of the inbound-contamination clause, one day after it landed.

Contains: session record, ledger, MEMORY.md promote + trim, MEMORY-reference.md demote
(lossless-relocation gate PASSED, md5 c9146a4f over 1,998 bytes), 6 knowledge-graph rows,
2 skill-harvest proposals.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJM5fwqp456LDGzqiZXsgu
This commit is contained in:
David F Glidden
2026-09-12 19:10:39 +02:00
co-authored by Claude Opus 5
parent 2f6964cf0e
commit 689c21e0d1
7 changed files with 225 additions and 28 deletions
+10
View File
@@ -755,3 +755,13 @@ Each nearly read as a defect in the *quotation*. ⚠ **Bound:** correct extracti
**NOT filed:** the vault-mirror binaries policy. It is a steward decision (the split, 2026-09-11), not a tool. It is recorded in the vault's `CLAUDE.md`.
| H | **The wake's dotfiles check compares against every remote, not only the upstream.** `/wake-up` §2.c reads `git status -sb`, which sees only the tracking remote (`github`). On 2026-09-11 the second remote `gitea` (`git.skemantix.com`) was found **54 commits behind, since 2026-09-04**, a week that no wake surfaced, while memory describes the files layer as 'dual-remote'. The wrap's §6.5 `git push` reaches only the upstream. Mechanical fix: the wake digest's REPOS line reports `rev-list --count <remote>/main..HEAD` for each remote. | patch (script) | **MECHANICAL** — every wake, via `wake-digest.py`. | PROPOSED — found at the 2026-09-11 wrap. ⚠ **gitea not pushed**: a second outward-facing target the wrap's instruction does not name, so it is left for the steward (dry-run: fast-forward, would succeed). |
## Proposed 2026-09-12 — from the phantom-referent sitting
| # | Proposal | Kind | Firing moment (declared) | Status |
|---|---|---|---|---|
| I | **`/wrap-up` §3's demote-on-promote has no lossless-relocation gate, though the ladder names one for exactly this operation.** Today's demote moved a 1,998-byte block between the two indexes; proving it lossless required building the check by hand — `git show HEAD:` for the pre-edit bytes, md5 per moved slice, then `wake-digest.py`'s pointer canary. The ladder's **lossless-relocation gate** entry already specifies that method verbatim. Wire it into §3 so the wrap runs it instead of the executor remembering to. ⚠ **Earned twice in one wrap:** the hand-built gate's FIRST run reported FAIL because its comparison span included a pointer line that had been reformatted *by design* — a wired gate defines the unit once and cannot make that mistake. | patch (skill) | **MECHANICAL** — every wrap that demotes a block. | PROPOSED |
| J | **MEMORY.md's N-now instruction cites a method that cannot produce the figure it reports.** It directs re-measurement by *'the trial's own method at `governance-drift-check.py:513`'*. That line is inside `trigger_fired`, and the `transcripts` branch (`:546`) is a **bare glob** — it yields a count and **no composition at all**. The banked *'31 real / 28 mumble'* cannot have come from it, so the citation sends every future wake to an instrument that cannot answer the question asked of it. Kin to REVIEWED-139's line-citation errata. ⚠ **`[PROPOSAL]`, not FIX** — it changes what a governed artifact asserts. | patch (memory) | **RITUAL** — `/wake-up` §2.a, fires every wake. | PROPOSED |
**SECOND INSTANCE OF H, recorded rather than re-filed.** H (2026-09-11) reported the second dotfiles remote 54 commits behind, unseen by any wake. At the 2026-09-12 wake it was **55**, found again only by a hand check, and closed at **57** on the steward's explicit authorization. `/wake-up` §2.c still reads `git status -sb`, which by construction sees only the tracking remote. Two wakes, two hand catches; the mechanical fix in H is unchanged.