--- name: feedback-verify-before-compose-hook description: "chamber-library constitutional writes are gated by a verify-before-compose PreToolUse hook — satisfy it with a GROUNDED-IN attestation + a Grounding section; the block is correct, don't fight it." metadata: node_type: memory type: feedback originSessionId: 6e4f5e1d-250f-4b77-8478-5050a3a5360c modified: 2026-07-18T13:50:08.768Z --- Writing the spec, `_curation/graduation-spec.yaml`, or any `*amendment*` / `*FOR-JURIST*` / `*JURIST-PACKAGE*` draft in chamber-library is **BLOCKED** by `~/.claude/hooks/verify-before-compose.sh` (PreToolUse Write|Edit, global `~/.claude/settings.json`) **unless** the payload (or the existing file) carries `` and the artifact opens with a **Grounding section that QUOTES the ratified sections it builds on.** Non-constitutional writes pass silently; the hook fails open on malformed input. **Why:** the recurring `re-derived-from-training` / compose-before-verify failure — drafting a claim about the spec *from memory* when the spec already ratifies it. The 2026-07-17 case: drafted the citation amendment (#2 / PENDING-60) as if it "introduces the CTS-URN model" when **§IV already adopts it**, and §III/§VII/§IX already hold the citation contract / locator registry / coverage-ledger. Session-start CLAUDE.md prose alone had failed ≥4 times (it's passive at draft-time); a hook fires **at the moment of the write**, where prose doesn't. Steward-directed 2026-07-17 — "this needs to stop happening… more and more lately." **How to apply:** don't fight the block — it is correct. READ the sections the artifact builds on, add the `GROUNDED-IN` attestation + a Grounding section quoting them, then re-issue. The gate is a conscious speed-bump, not a formality. Protocol clause lives in `chamber-library/CLAUDE.md` "Load-bearing disciplines". Structural complement to [[feedback-resurface-banked-notes-before-rederiving]] and [[trust-prior-pass-frame]]; the action-time enforcement those prose lessons lacked. **Pre-hook artifacts** (constitutional docs written before 2026-07-17, e.g. `PENDING-58-rewrite-FOR-JURIST-2026-07-16.md`) carry no attestation, so their *first* gated edit is denied outright. Since the hook accepts the attestation in the **payload**, make the first edit itself add the `` comment (executor metadata, pointing at where the grounding quotes live — e.g. the governing FIX brief's Grounding section); subsequent edits then pass. Proven 2026-07-18 on the REVIEWED-62 application; flag the attestation-add in the commit/report as an edit beyond the ratified set.