session 2026-08-13: fr identification pass, PENDING-135/136 filed and ruled, voice_stamp built; memory + register + KG

This commit is contained in:
David F Glidden
2026-08-13 21:28:46 +02:00
parent 92d5ad2547
commit e90c334bb2
6 changed files with 328 additions and 9 deletions
+86
View File
@@ -362,3 +362,89 @@ earn its own entry or should be folded into the existing one as an example.
**Deliberately NOT proposed.** The preservation-header self-match (a strip instruction that quotes the marker it tells you to strip to, so `index()` matches inside the header) is a **one-shot** defect in a one-shot artifact, caught by the round-trip that was already there. Per `feedback-one-shot-instruments-are-proportionate`, its counterfactual is an assertion, not a durable instrument — filing it would be documentation dressed as diligence. The generalisable half is already banked: **compare against a fresh emit, not against a recorded sha**, which is what caught it.
**No FIX-lane changes were applied this session.**
---
## 2026-08-13 — three proposals from the nested-voice / voice_stamp session
### HS-2026-08-13-a — a dotfiles pre-commit guard against unscoped staging of governance files
**Earned:** the executor ran `git add -A` in `~/dotfiles` mid-session and swept the steward's
freshly-placed **REVIEWED-119/120** and a `sysupdate` **Brewfile** line into a commit whose message
described only a `governance-mcp.py` change. Amended before push (`92d5ad2`), so no shared history
was rewritten — but the dotfiles log is explicitly meant to double as a legible session record, and
for one commit it attributed a steward governance act to an executor `[FIX]`.
**The routing finding, which is the point:** `/wrap-up` §6.5 already states the rule — *"Scoped add
only — never `git add .` or `-A`"* — and states why. **But §6.5 fires at WRAP, and dotfiles commits
happen throughout a session.** The rule is correct and lives at the wrong moment. This is the
register's own diagnosis applied to itself: a capability is worth what a protocol exercises, and
this one is exercised at a juncture the violation routinely precedes.
**Firing moment: mechanically, and it should always fire** — the strongest row in the routing table.
A `~/dotfiles` pre-commit hook that inspects the *staged set*: if `REVIEWED.md` or `CLAUDE.md` is
staged alongside files outside `claude/`, `PENDING.md`, refuse with the §6.5 text and require an
explicit override. Detects the actual failure (mixed staging of steward-authored governance) rather
than the proxy (`-A` in the command line, which is unobservable from a hook).
⚠ Must NOT block a legitimate steward commit — the hook lives in the executor's path only, and the
override must be one flag, documented in its own refusal message.
**Classification: `[PROPOSAL]`** — it changes what the executor may do without asking (it adds a
refusal), and it touches the path by which `REVIEWED.md` reaches the remote. Hard-floor adjacent:
`REVIEWED.md` is Constitutional Constraint 1 material, so the guard must only ever *refuse*, never
*edit*. **Status: PROPOSED.**
### HS-2026-08-13-b — `wake-digest.py`'s `wrap_inside` is two-valued over a three-case state
**Earned:** the digest announced **"PREVIOUS SESSION DID NOT WRAP"** at this session's wake. It was
right this time. It was **wrong on 2026-08-10**, where the 08-09 session had wrapped at 19:48 and
then kept working until 21:54 — and the 08-10 ledger already named the defect: *"a two-valued
detector over a state that has three cases (wrapped · wrapped-then-continued · never-wrapped)."*
Named, not fixed, and it has now fired twice with opposite truth values. **A detector that cried
wolf once and is right the next time is in the worst position available** — the reader has already
learned to discount it.
⚠ **Third instance of this exact shape in one day**, which is the argument for fixing it rather than
re-noting it: the fleet's three-valued exit codes fixed this shape once already
(REVIEWED-104/108), and the nested-voice census's hard-wrap detector reproduced it again the same
afternoon.
**Firing moment: mechanically, and it already runs** — `wake-digest.py` fires at SessionStart. This
is a patch to an existing always-firing instrument, not a new capability needing a home.
Report three states: `wrapped` · `wrapped-then-continued` (with the post-wrap span) · `never-wrapped`.
**Classification: `[PROPOSAL]`** — it changes what a governed artifact *asserts* (the wake digest's
claim about session continuity, which the wake briefing then relays to the steward).
**Status: PROPOSED.**
### HS-2026-08-13-c — "a control set drawn from one source establishes nothing about a corpus"
**Earned:** the nested-voice census carried **five defects**; **four escaped its own controls**.
Every positive control was drawn from Mauss — one quotation convention (guillemets), one line
structure (paragraph-per-line) — so the controls could exercise neither the ASCII-quote convention
(3 sources, incl. the two largest EN texts) nor hard-wrapped text (2 sources). Both blindnesses
produced **clean zeros**, which read as findings. Only the fifth defect — a regression in an
already-covered case — was caught by the controls, and that asymmetry is the finding: **the controls
could not see what they were never drawn to cover, and did see a regression in what they did.**
**Distinct from what is already banked.** Symmetria §3 carries *frame-inheritance* — reusing an
**instrument** across a tier it was not demonstrated on. This is the complementary failure: the
instrument was **new**, and its **control set** was the thing drawn from too narrow a population. The
existing flag would not have caught it.
**Proposed wording, for §3:** *A control set drawn from one source, one format, or one convention —
however many controls it contains. Coverage is the whole of a control set's strength; controls prove
what they were drawn to cover and nothing else. Enumerate the structural classes present in the
subject BEFORE writing controls, and report `NOT ESTABLISHED` for a class with no control rather
than reporting zero for it.*
**Firing moment: at a ritual juncture that already exists** — Symmetria `check` fires before any
build or write with blast radius, which is exactly when a control set is being written. Stronger
than a bare ladder entry (measured 14%) and stronger than a skill (measured 0%).
**Classification: `[PROPOSAL]`** — §3 flags shape what the executor must notice before acting, and
this one imposes a precondition on building an instrument. Borderline against the FIX lane's
two-clause test; **proposed rather than applied, per "when in doubt, propose."**
**Status: PROPOSED.**
**No FIX-lane changes were applied this session.**