From f3f062defc0a11bf519fbe9afeb4fc6f849d050d Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Wed, 5 Aug 2026 21:27:48 +0200 Subject: [PATCH] =?UTF-8?q?docs(governance):=20PENDING-86=20(d)=20landed?= =?UTF-8?q?=20=E2=80=94=20item=20fully=20dispositioned?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Records what shipped, the disclosure disciplines carried over from PENDING-96/97, and the finding the structural pass produced on its first run: REVIEWED-11/-12/-74 were hidden from item_spans by leading whitespace, making the jurist's 2026-07-29 discovery failure over-determined. Steward unindented all three; 78 -> 81 items. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01AB3Kryoy6b1pm2Nz1DYdLh --- PENDING.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PENDING.md b/PENDING.md index 8174385..48562db 100644 --- a/PENDING.md +++ b/PENDING.md @@ -679,7 +679,13 @@ Executed as §VII eyeball-after-gate: pages rendered with `pdftoppm` and read, n **AUTHORIZED + LANDED 2026-08-05 — option (a) only.** Steward-authorized on the jurist's own request while it was unable to close PENDING-99's Q2 (a question turning on §II.3's *"inline anchor marker"* and §V's marker exclusion). `governance-mcp.py` gains two enum keys — `chamber-spec`, `graduation-spec` (`5cd5faf`). No new tool, no path argument, no traversal surface; every existing refusal control still passes. Selftest **29 → 35 controls, 0 fail**; live stdio round-trip confirms the §V clause arrives verbatim. ⚠ **Reachability of the key is not reachability of the clause**, and this nearly went wrong: the constitution's operative sections start near line 354, above which sit ~330 lines of **superseded** version headers. A jurist reading at the default `limit=400` lands in obsoleted text — the new access *causing* the misruling it exists to prevent. The trap is now disclosed on the key's own description, with two controls pinning it: the §II.3 and §V clauses are both reachable in one paged call (`offset=350, limit=2000`), and a **negative control** confirms a first-page read does land in the `(obsoleted)` region. ⚠ **Requires a Claude.app restart** — the running server carries the old code until respawned. -**Still open on this item:** **(d)**, keyword search across `PENDING.md`/`PENDING-archive.md`/`REVIEWED.md`. The jurist asked for (a)+(d) together; (d) is a new tool surface rather than two enum entries, so it was not folded in silently. **(b)** stands built and in use (`check_containment.py`, applied to the PENDING-99 package: 16/16 contained, 9/9 controls absent). +**(d) ALSO AUTHORIZED + LANDED 2026-08-05** (`6738239`). `governance_search(query, limit)` over the three governance files; result unit is the **item**, boundaries from `wd.item_spans` (no second parser), results naming ids to hand to `governance_item` so the two tools compose. Terms are **ANDed and that is disclosed on every result**, and a miss is a **legible empty** stating corpus, items scanned, terms and match mode — the engine's PENDING-97 failure shape is not being rebuilt here unannounced, and PENDING-96's disclose-your-blindness discipline is applied to a new instrument on the day it was ruled. Ranked by exact-phrase then raw term-count, labelled a **count**, not a relevance score. + +**The structural pass earned itself immediately, and this is the substantive finding.** Search carries a query-*independent* check for item headers hidden by leading whitespace — invisible to `item_spans`, therefore unable to appear in any result, so their absence reads as a genuine miss. It found three: **REVIEWED-11, REVIEWED-12 and REVIEWED-74**. The last is *precisely* the ruling the 2026-07-29 amendment says the jurist could not find — so that failure was **over-determined**: it did not know the id, **and `governance_item('REVIEWED-74')` returned NOT FOUND**. The executor may not edit `REVIEWED.md` (Constitutional Constraint 1), so the census was handed to the steward, who unindented all three in-session. **Items visible 78 → 81; hidden headers now zero**, with a negative control that goes red if one is ever hidden again. Selftest **29 → 44 controls, 0 fail**. + +⚠ **Both (a) and (d) require a Claude.app restart** — the running server carries the old code. + +**(b)** stands built and in use (`check_containment.py`, applied to the PENDING-99 package: 16/16 contained, 9/9 controls absent). **This item is now fully dispositioned: (a) landed · (b) standing · (c) = (a)+(b), satisfied · (d) landed.** Ready to close on steward confirmation. **Amendment 2026-08-02 (third instance, jurist-raised in REVIEWED-86):** the jurist could not reach `contamination-problem.md` — *"same gap as the skill files last time, now touching the part of the argument that establishes the doctrine actually has a gap to fill"* — and called this *"a second, independent argument for it"*. So the tally is now three distinct documents the jurist has been unable to read while design-gating work that turns on them: the chamber constitution, the skill files, and now a CapableMind methodology doc. **The workaround was built rather than proposed this time:** `dotfiles/claude/governance/check_containment.py`, positive controls mandatory, which discharged REVIEWED-85's stated precondition (7/7 contained, 5/5 controls absent) and caught a fabricated terminal period in the executor's own package. That is evidence option (b) is *workable*, not merely proposable — and it bears on the (a)/(b)/(c)/(d) choice, which remains the steward's.