session 2026-07-17 (afternoon): v2.1.0 landed OPERATIVE; 2b forks ruled by jurist; substrate-drift caught+corrected

Session file + ledger (returns incl. the substrate-drift, jurist ruling) + KG (v2.1.0 fact, 2 drift/calibration lines) + skill-harvest (spec-supersession procedure; assert-X-in-Y→read-Y) + MEMORY.md/reference demote-on-promote.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E57CJHC6pH4XLqY4SHzJ3H
This commit is contained in:
David F Glidden
2026-07-17 21:52:46 +02:00
co-authored by Claude Opus 4.8
parent ed43422bbb
commit d734afb59b
6 changed files with 79 additions and 1 deletions
+9
View File
@@ -503,3 +503,12 @@ The single place proposed skills live so they don't evaporate between sessions.
| **verify-before-compose HOOK + protocol clause** | hook (settings.json) + repo CLAUDE.md discipline | The recurring `re-derived-from-training` / compose-before-verify failure got a STRUCTURAL fix: `~/.claude/hooks/verify-before-compose.sh` (PreToolUse Write\|Edit) DENIES un-grounded writes to chamber constitutional artifacts unless they carry `GROUNDED-IN:` + a Grounding section; protocol clause added to `chamber-library/CLAUDE.md`; memory `feedback-verify-before-compose-hook.md`. Proven firing in-session. | DONE (steward-directed 2026-07-17) | **BUILT + AUTHORIZED** |
| **`/jurist-package`** (create) | new skill | Draft a **self-contained jurist package** for a repo-blind reviewer: inline the ratified spec clauses verbatim (jurist gates the *words*, not recollection) + `GROUNDED-IN:` attestation + amendment content shaped "already-ratified → what-#N-adds" + editor-gate questions. Recurred 2× this session; **jurist explicitly endorsed the method** ("noted as method worth keeping"). Recurs for every constitution amendment. | new `.claude/skills/jurist-package/` | **PROPOSED** |
| **ladder: reconcile against the AUTHORITATIVE source before any "closed/complete/finally" claim** | verification-ladder entry OR Symmetria §3 flag | Before claiming a block/scope closed or complete, reconcile against the **authoritative source** (the roadmap `stage-1-rebuild-plan §4/§7`; the spec's own named-open items) — NOT the derived close-list. The verify-before-compose HOOK covers constitutional *writes*; this covers *chat claims*, where the "finally" overclaim slipped past it. Caught F-5 + "finally" (steward, twice, same session). Kin to the 07-16 "closable-now is a claim to check", one level up (the *close-list's own completeness* is a claim to check). | `reference-verification-ladder.md` or Symmetria §3 | **PROPOSED** |
### Harvest 2026-07-17 (afternoon — v2.1.0 landed OPERATIVE; B forks ruled; a substrate-drift caught)
| Element | Kind | One-line | Where it lands | Status |
|---|---|---|---|---|
| **governed spec-supersession procedure** | verification-ladder entry OR small skill | Landing a ratified spec version is: **cp live→`-vNEW.md` → bounded Edits (never retype) → `diff` shows ONLY intended altered lines + insertions → header carries `Obsoletes`+GROUNDED-IN → on promote: freeze old→`-vOLD.md`, cp new→live, rm the draft, byte-verify each against `git show HEAD~1`**. Proven this session on v2.1.0 (diff = 8 intended lines; promotion byte-verified vs HEAD~1; git's rename-representation was cosmetic). The byte-preservation + convention (obsoleted versions get `-vX` snapshots, current lives in the unversioned live file) prevents constitution-drift the corpus exists to prevent. | `reference-verification-ladder.md` (a procedure), or a `/spec-supersede` skill if it recurs | **PROPOSED** |
| **verification-ladder / Symmetria §3: assert-"X is in Y" → read Y** | verification-ladder entry OR Symmetria §3 flag | A factual claim's grounding must reach the file that **HOLDS** the fact, not one that merely **describes** it. Earned hard 2026-07-17: wrote "build_loeb_sidecar is NOT in test_tools" into a jurist brief from the **tool's own docstring** (a derived self-assessment) without grepping `test_tools.py` (16 refs — it IS fleet-v1). This is the chamber verify-against-substrate-not-the-derived-artifact discipline + the CLAUDE.md contamination directive (don't accept a component's self-assessment), both violated — *while I quoted the discipline the same session*. Steward caught the **say/do gap**. Specializes the substrate-discipline to membership/coverage claims: for "is X in Y / does Y test X / is X wired", **open Y**. | `reference-verification-ladder.md` or Symmetria §3 | **PROPOSED (strongly earned — a self-inflicted recurrence of a discipline I already hold)** |
*(Two candidates. The second is the load-bearing one — it names the exact gap between practicing a discipline and applying it to every claim; a §3 flag would make me open the holding-file before asserting an X-in-Y fact. Also noted, not a skill: the jurist's **shared-name-collision** pattern — "app[]" = array vs apparatus-ledger is the 3rd instance after manifest/PENDING-53 + ABSTAIN/PENDING-55 — captured in the ruling doc + FIX-B, a chamber-doctrine watch-item, not a Claude-Code skill.)*