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.