session 2026-07-28: governance block closed — CLAUDE.md drift 9→0 (REVIEWED-76/77/79/80), PENDING.md split 1848→430 + archive, wake-digest SessionStart hook, doctrine ids live, PENDING-79/80/81

This commit is contained in:
David F Glidden
2026-07-28 09:45:44 +02:00
parent e8cd376741
commit 8abfe8835a
12 changed files with 839 additions and 1559 deletions
+9
View File
@@ -462,3 +462,12 @@
{"subject": "claude-code", "predicate": "drift-pattern", "object": "an-eval-designed-run-and-read-by-the-proposing-party — I built a 3-arm eval to test my own proposed CLAUDE.md block and it returned the most favourable available finding. I flagged n=1 (precision); the jurist flagged CONSTRUCT VALIDITY — 3 tasks contain no tail, so guardrail redundancy was never measurable at all. Contamination operating structurally, not as bad faith. Reusable: when the eval supports the evaluator's proposal, the question is not 'is the sample big enough' but 'can this design measure the thing at all'.", "valid_from": "2026-07-27", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-27-evening-governance-currency-and-the-amendment-that-killed-itself.md", "extracted_at": "2026-07-27"}
{"subject": "governance-drift-check", "predicate": "is", "object": "a wake-time detector at ~/dotfiles/scripts/governance-drift-check.py, wired into /wake-up section 2.c. Reports state claims in ~/CLAUDE.md the substrate contradicts (unresolvable paths, unresolvable tool names, unconfigured hooks claimed to fire, expired date horizons, structural damage). 0.17s; every check carries a same-run positive control. Detects, never corrects — detection needs no authorization, correction does. Reported 9 findings at build time 2026-07-27.", "valid_from": "2026-07-27", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-27-evening-governance-currency-and-the-amendment-that-killed-itself.md", "extracted_at": "2026-07-27"}
{"subject": "typography-palace", "predicate": "has-no-live-index", "object": "0 active segment directories, 6 quarantined; collection 865f3806 has had none since 2026-06-02. Cannot serve a query — a real search hangs to timeout (exit 124). Source texts were ingested FROM chamber-library and all survive there (steward-confirmed); palace-native content is 10 entities / 7 triples. Retirement = export 17 KG rows to JSONL, delete 480MB. reference-typography-palace-cli.md documents an instrument that no longer exists.", "valid_from": "2026-07-27", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-27-evening-governance-currency-and-the-amendment-that-killed-itself.md", "extracted_at": "2026-07-27"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "an-instrument-that-defines-the-thing-it-measures — my PENDING.md splitter defined an item as `^## PENDING-<digits>` and reported '73 items, line accounting OK'; the file holds 93 items in five families, 20 invisible, TEN of them open. Every verification passed — including the one I called independent — because all of them inherited the parser's blind spot. A positive control on the instrument's own definition passes trivially, so Q2 does NOT catch this class. The only signal was two instruments disagreeing on a count (grep 77 vs Python 67), which I nearly wrote off. Reusable: when two instruments disagree about a count, the disagreement IS the finding; and ask of any census what DEFINES the unit being counted.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-code", "predicate": "drift-pattern", "object": "a-self-test-written-before-seeing-real-output — wake-digest's selftest passed 12/12 while the live digest emitted a pulling thread that ran off the end of the YAML description into `metadata:` and a question carrying its own label remnant. The self-test tested my model of the input, not the input. Reusable: write the extractor's controls AFTER reading one real output, not before.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-code", "predicate": "drift-pattern-good-direction", "object": "fix-the-comparison-not-the-gate — the v2 splitter refused to write on a 1-line multiset mismatch (a trailing blank trimmed from blocks but not the baseline). The temptation is to loosen the guard; the correct move was to make both sides apples-to-apples. A gate that fires on a benign case is still a working gate.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-code", "predicate": "drift-pattern-good-direction", "object": "drafting-is-a-finer-instrument-than-the-census — a section-level census scored §MemPalace at 6 doctrine-carrying units of 8; drafting the replacement an hour later found a 7th (L126's fallback obligation, misfiled as pure-operational because its hook claim was verified false). Reusable: when a census will drive a deletion, draft the replacement before trusting the count.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-code", "predicate": "governance-substrate", "object": "~/PENDING.md was split 2026-07-28: open items stay in PENDING.md (~430 lines), closed items in ~/PENDING-archive.md (1541 lines, 74 items). An item is ANY `## ` header across five families (PENDING-<n>, PENDING-S<n>, `PENDING — <name>`, `COMPLETED — <name>`, SESSION-LOG-<n>); closure = a matching REVIEWED-N or a CLOSED/COMPLETED header.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-code", "predicate": "session-start", "object": "SessionStart hook now runs `python3 ~/dotfiles/scripts/wake-digest.py` (computed, ~980 tokens, 0.31s), replacing session-handoff-hook.sh which had injected a 2026-03-05 handoff for five months. `--brief` emits the jurist's §Standing Context block; `--selftest` proves each extractor detects presence and absence.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-code", "predicate": "doctrine-ids", "object": "~/CLAUDE.md §Memory Discipline carries 7 stable ids as HTML comments (`<!-- D:memory.check-before-claiming -->` etc). governance-drift-check.py §6 reports duplicate ids and skill citations to undefined ids; it scans ~/.claude/skills/**, deliberately NOT PENDING.md.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "cowork", "predicate": "governance-status", "object": "RETIRED as a party 2026-07-28. Its filesystem root `coworkUserFilesPath` is `~/Claude`, which does not exist; all governance substrate is outside it. Five byte-identical copies of a March-22 COWORK.md sit in ~/Library/Application Support/Claude/local-agent-mode-sessions/ and would silently govern any reopened session — replace before reuse.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}
{"subject": "claude-app", "predicate": "filesystem-access", "object": "The jurist has NO filesystem access and the live preferences exist nowhere on disk. Its state therefore cannot be computed, only cached — duplication with CLAUDE.md is structurally required; only staleness is optional. A pointer is worthless to a reader who cannot open files.", "valid_from": "2026-07-28", "valid_to": null, "confidence": 1.0, "source_file": "session-2026-07-28-morning-governance-block-closed-and-the-parser-that-defined-its-own-blind-spot.md", "extracted_at": "2026-07-28"}