diff --git a/PENDING.md b/PENDING.md index 23ef536..5170833 100644 --- a/PENDING.md +++ b/PENDING.md @@ -1556,3 +1556,22 @@ Disposition (verbatim capture + executor action-list: `chamber-library/docs/libr **Full proposal:** `chamber-library/docs/A3-self-audit-PROPOSAL-FOR-JURIST-2026-07-16.md`. **Jurist review PASSED 2026-07-16** (`…-JURIST-RULING-2026-07-16.md`), 3 edits applied + a mechanism gap closed. **Files affected (on ratification):** a new spec section (*Trust Attestation / Self-Audit*, cross-ref §IX); a census tool for the two flag dimensions; the cold-instance legibility-audit procedure. **Awaiting:** ~~steward ratification~~ **RATIFIED 2026-07-16 (REVIEWED-59).** Land as a new spec section by supersession + semver on the steward's version call (v2.0.2 → v2.1.0 suggested). Jurist review passed. + +## PENDING-60 — Citation amendment (#2): specify the adopted CTS-URN model + draw the chamber-minted-namespace / internal–external boundary + per-scheme coverage attestation +**Date:** 2026-07-17 +**Tag:** [PROPOSAL] — normative spec amendment (new doctrine + changes what graduation produces re: citation). Runs the §Governance & Amendment editor-gate (executor drafts → jurist editor-gates format + doctrinal soundness → steward ratifies); lane = freeze + semver. +**Summary:** The citation amendment — #2 (the heaviest) of the constitution-close block. The **CTS-boundary precondition is MET** (`chamber-library/docs/CTS-boundary-for-citation-amendment-2026-07-17.md`); its clean-separation verdict is **CONFIRMED** by the parallel tier survey (`chamber-library/docs/FABLE-tei-cts-dts-perseus-tier-survey-2026-07-17.md`) — the seam is the CTS standard's **own published** notation-vs-protocol split. **Reconciliation (verify-before-compose):** §III (citation contract), §IV (CTS-URN edition-identity — *the adopted scheme*), §VII (declared locator registry), and §IX (coverage-ledger + evidence-tier) are **already ratified**; #2 does NOT re-adopt them. #2 **specifies**, building on them: (1) the **chamber-minted CTS namespace** + the **internal (T1) / external (T2, leashed Condition-2) boundary** — the genuine new decision §IV left open; (2) **per-scheme in-source anchor recovery** (routing → `graduation-spec.yaml` declared data, per §VII's generative principle); (3) the **per-scheme coverage attestation** (§IX-as-precondition; honest-degradation, attest-never-default, work-level default per §III's sectionless reduction; relates to §IX's OPEN silence-as-finding); (4) **Decision-1** + additive-only sidecar fields. +**Rationale:** The classical (V-DSL, 952) tier is staged-flattened, **0 graduated**; a trustworthy citable v1 needs the citation model specified so anchors are recovered *where verified* and honestly attested *where not*. #2 is the constitution's last heavy piece before corpus-into-spec (pull-based) opens. Body extracts cleanly; the per-scheme anchor recuperation is the hard part — absorbed by the coverage attestation (threshold = a production measurement, not a doctrinal commitment). +**Precondition:** MET — CTS boundary drawn + B-confirmed; no T2 question requires resolution before drafting. +**Recommendation:** PROPOSAL via editor-gate. **Semver = steward call** on the §Governance test ("does it change what a gate accepts?"); rec **MINOR v2.1.0** (additive fields + new doctrine, forward-only — 0 Loeb verified), **coordinate with A3's (PENDING-59) v2.1.0 landing**. +**Files affected (on ratification):** §III/§IV/§VII/§IX (by supersession + semver); `graduation-spec.yaml` (per-scheme parser routing + locator-registry additions + coverage-attestation fields); the structural sidecar schema (additive fields, REVIEWED-56 discipline); the ~3,333-anchor `loeb-line`→per-scheme re-stamp (production/Region-4). +**Awaiting:** ~~jurist editor-gate~~ **EDITOR-GATE PASSED 2026-07-17** (`docs/citation-amendment-JURIST-editor-gate-ruling-2026-07-17` — jurist ruling; Q1 namespace-minting-in-`urn:cts:` confirmed, Q3/Q4 confirmed). **Two corrections + one condition DISCHARGED** (recorded in the package Addendum): (Q2) IV.3 reworded as an *explicitly partial* answer to §IX (general silence-as-finding stays OPEN); (Q6) #1's live shed-list cross-checked side-by-side vs #2's IV.7 — **six-for-six identical, (f) "originates" in both** (seam closed); (Q5) additive-only **verified against the LOCKED schema** (`anchors[].scheme` already present; `citation_coverage[]` = new optional field = FIX) → **MINOR (v2.1.0) stands**. **STEWARD RATIFIED + REVIEWED-60 FILED 2026-07-17.** MINOR v2.1.0; semver/vehicle (atomic-v2.1.0-with-A3[/#4/#5] vs sequenced) = steward annotation on placement. Production deps run post-ratification. Self-contained package: `chamber-library/docs/citation-amendment-JURIST-PACKAGE-2026-07-17.md`. + +## PENDING-61 — B(i) `licence` axis + B(ii) PREMIS borrow-vocabulary (the two light constitution-close FIXes, paired) +**Date:** 2026-07-17 +**Tag:** [FIX] — two ordinary spec amendments (gap-fill; **no gate-acceptance change**). §Governance & Amendment editor-gate (executor drafts → jurist editor-gates format + doctrinal soundness → steward ratifies); lane freeze+semver. +**Summary:** Block-1 #4 + #5 — the last light items. **#4 (B(i)):** add a `licence`/copyright-status **provenance axis** to §IV — machine-readable rights status of the *edition converted* (`public-domain` | open-licence | `in-copyright` | `permission-granted` | `unknown`), **graceful-degradation** (backfilled-not-rejected), **never a gate**; value vocabulary = declared data in `graduation-spec.yaml`. **#5 (B(ii)):** name the existing §V preservation-metadata layer (the W3C-PROV-shaped conversion record + fixity) using **PREMIS as borrow-vocabulary** (the DTS "borrow-vocabulary, build thin" posture, 07-04) — a **legibility** move, **no external dependency/schema/service**, terms as declared data; §V's shape/requirement **unchanged**. Both grounded in §IV/§V (quoted in the draft). B(iii) already landed (v2.0.2, REVIEWED-51) — not reopened. +**Rationale:** REVIEWED-49 "B — ordinary amendments confirmed… normal FIX per item." Closes the block's light tail; the corpus's heterogeneous rights need a machine-readable axis, and the preservation layer needs a legible standard name. +**Recommendation:** FIX via editor-gate. **Semver/vehicle = steward call:** (a) fold into the **atomic** v2.1.0 supersession with #2/A3, or (b) a standalone v2.0.3 patch. +**Files affected (on ratification):** §IV (licence axis) + §V (PREMIS naming note) by supersession; `graduation-spec.yaml` (the `licence` field + value vocabulary; any borrowed PREMIS terms, additive). +**Awaiting:** ~~jurist editor-gate~~ **EDITOR-GATE PASSED 2026-07-17** (both FIX; 2 wording corrections applied + recorded in the draft Addendum: B(i) "may"→"must, where known"; B(ii) naming-only/no-pre-authorized-field). **STEWARD RATIFIED + REVIEWED-61 FILED 2026-07-17.** Semver/vehicle call (fold into atomic v2.1.0 vs standalone v2.0.3) resolved at landing. Paired draft: `chamber-library/docs/amendments-B-i-B-ii-FOR-JURIST-2026-07-17.md`. diff --git a/REVIEWED.md b/REVIEWED.md index eb74d9a..a2075bb 100644 --- a/REVIEWED.md +++ b/REVIEWED.md @@ -471,7 +471,7 @@ DONE + DEPLOYED (a9e5196). - **`engine_source_binding` kept as ONE entry** (names a relationship across three files that move together; fragmenting recreates the failure). **Dual warning kept** (inline ⚠ + block comment — two reading grains). - **Required correction (applied):** "…re-anchors ACROSS BOTH REPOS" (descriptive) → **"…REQUIRES re-anchoring across both repos"** (prescriptive — the gate catches the failure; nothing does it automatically; that IS the incident). - **Change-class FIX** (downgraded from the filed [PROPOSAL] default — documents an already-existing, already-enforced mechanism; adds no gate predicate). **Lane: lightweight in-place edit**, `PENDING.md`/`REVIEWED.md` audit trail sufficient. -- **Durable lane-rule (jurist proposed, executor responded):** ACCEPT "lane tracks change-class" for `graduation-spec.yaml` (machine-data). **NARROW the `.md` generalization** — A2/A4 (REVIEWED-50/51) are FIX-class doctrinal `.md` additions that correctly took the *heavier* freeze+semver lane, because the operative axis for the constitution is *doctrinal-traceability* (a successor must trace doctrine to a dated marker), not change-class; the two coincide only for machine-data files. *[Awaiting jurist accept/narrow of this refinement.]* +- **Durable lane-rule (jurist proposed, executor responded):** ACCEPT "lane tracks change-class" for `graduation-spec.yaml` (machine-data). **NARROW the `.md` generalization** — A2/A4 (REVIEWED-50/51) are FIX-class doctrinal `.md` additions that correctly took the *heavier* freeze+semver lane, because the operative axis for the constitution is *doctrinal-traceability* (a successor must trace doctrine to a dated marker), not change-class; the two coincide only for machine-data files. - **[ACCEPTED + narrowed by the jurist 2026-07-10** (`hash-locality-ratification-and-lane-narrowing-JURIST-RULING-2026-07-10.md` §2). **Ruled rule:** machine-data files (`graduation-spec.yaml`) — *lane tracks change-class* (the code/git/`test_tools` history is the independent fallback that pins "what was true when"). The `.md` constitution — *lane tracks whether the change touches doctrine a successor must trace to a dated marker*, regardless of change-class (no code-level fallback; the prose IS the sole record). The two axes coincide only for machine-data files. Not "every `.md` edit gets the heavy lane" — a typo/dead-link fix that adds no doctrine does not.**]** ## REVIEWED-54 — PENDING-54 — EPUB footnote pre-processor (verbatim-safe conversion stage) + mega-EPUB split-convert @@ -559,4 +559,20 @@ DONE + DEPLOYED (a9e5196). **Date:** 2026-07-16 **Decision:** AUTHORIZED — ratifying the jurist-reviewed PROPOSAL (jurist review PASSED 2026-07-16 with 3 edits applied + the release-mechanism gap closed). Advances REVIEWED-49 · A3. **Notes:** Trust-attestation baseline conditioning OPERATIVE status. Three dimensions (fixity excluded — automated): provenance-completeness (annual, FLAG) · registry-linkage (annual, FLAG; double-duty for A1's emergent `agent_id` promotion signal) · legibility-to-successor (every 2–3 cycles, HARD FLOOR on failure). Legibility failure = fence-verdicts-unreadable OR fence-evidence-unreadable OR operative-doctrine-not-followable (evidence-alone-floors); degrees above still flag. **Cold-instance audits; jurist adjudicates the result** (neither steward nor jurist audits — both carry participation-context). Release from a floor: a fresh cold-instance pass, jurist-adjudicated. Flag home: `corpus-quality-ledger.tsv` + a dated status-marker line. Fixity stays automated (the audit confirms the automation, never re-hashes by hand). Legibility at 2–3 cycles by design (a load-bearing check run too often turns decorative). -**If AUTHORIZED:** land as a **new spec section** (*Trust Attestation / Self-Audit*, cross-ref §IX) by supersession + semver — new section = a minor bump (**steward's call: v2.0.2 → v2.1.0**). Tag commit REVIEWED-59. Records: PENDING-59; draft `docs/A3-self-audit-PROPOSAL-FOR-JURIST-2026-07-16.md`; ruling `docs/A3-self-audit-PROPOSAL-JURIST-RULING-2026-07-16.md`. \ No newline at end of file +**If AUTHORIZED:** land as a **new spec section** (*Trust Attestation / Self-Audit*, cross-ref §IX) by supersession + semver — new section = a minor bump (**steward's call: v2.0.2 → v2.1.0**). Tag commit REVIEWED-59. Records: PENDING-59; draft `docs/A3-self-audit-PROPOSAL-FOR-JURIST-2026-07-16.md`; ruling `docs/A3-self-audit-PROPOSAL-JURIST-RULING-2026-07-16.md`. + +## REVIEWED-60 — PENDING-60 — Citation amendment (#2): specify the adopted CTS-URN model + chamber-minted namespace/boundary + per-scheme coverage attestation +**Date:** 2026-07-17 +**Decision:** AUTHORIZED — RATIFIED. Steward ratification, following the jurist editor-gate (2026-07-17, passed on doctrinal soundness + format) with two corrections + one condition discharged. +**Notes:** Ratifies the citation amendment as a **specification** of §IV's already-adopted CTS-URN edition-identity — not a re-adoption. Ratified content: the **chamber-minted CTS-URN namespace** + the **internal (T1) / external (T2, leashed Condition-2) boundary** (the precondition genuinely met — CTS boundary drawn, clean-separation verified against the tier survey, not asserted); **per-scheme in-source anchor recovery** with the routing as **declared data** in `graduation-spec.yaml` (§VII generative principle); the **per-scheme coverage attestation** (§IX-as-precondition) as an **explicitly *partial*** answer to §IX's open silence-as-finding (anchor-scheme silence only; the general question stays open); **work-level as the honest default** (§III's sectionless floor applied); **Decision-1**; and the **additive-only** sidecar fields. +- **Q1 confirmed:** minting inside `urn:cts:` is grammatically valid (not IANA-governed; CHS registry dormant; witness-not-notary) — not an affiliation; a proprietary scheme would lose additive-openness for no gain. +- **Corrections discharged (package Addendum):** Q2 partial-§IX wording applied; Q6 shed/inherit cross-checked #1↔#2 side-by-side (six-for-six identical, (f) "originates" in both — the seam is closed); Q5 additive-only verified against the LOCKED schema (`anchors[].scheme` already present; `citation_coverage[]` a new optional field = FIX). +**If AUTHORIZED:** Land by supersession at **MINOR v2.1.0** (jurist-confirmed defensible; forward-only, 0 Loeb verified). Tag commits REVIEWED-60. **Semver/vehicle — steward annotation here:** land as one **atomic** v2.1.0 supersession together with A3 (REVIEWED-59) [and optionally #4/#5, REVIEWED-61], OR sequence — the jurist's atomicity constraint applies (one edit, not several racing the same version). Production dependencies (the ~3,333-anchor re-stamp, the Region-4 re-extraction, the flagged-token held-queue) run **after** ratification. + +## REVIEWED-61 — PENDING-61 — B(i) `licence` provenance axis + B(ii) PREMIS borrow-vocabulary (the two light FIXes, paired) +**Date:** 2026-07-17 +**Decision:** AUTHORIZED — RATIFIED (FIX, both). Steward ratification, following the jurist editor-gate (2026-07-17, both passed as FIX) with two wording corrections discharged. +**Notes:** Two gap-fills on already-ratified layers; neither changes what any gate accepts. +- **#4 (B(i)) — `licence` provenance axis (§IV):** the machine-readable rights status of the *edition converted*, holding §IV's **"must carry, where known"** discipline (jurist correction applied — not the weaker "may carry"), with an explicit `unknown` **distinguishable from an unrecorded gap**; graceful-degradation, **never a gate**; value vocabulary = declared data in `graduation-spec.yaml`. +- **#5 (B(ii)) — PREMIS borrow-vocabulary (§V naming note):** names the existing PROV-shaped conversion record with PREMIS's preservation vocabulary — the DTS "borrow-vocabulary, build thin" posture; **naming-only, no data model, pre-authorizes no field** (jurist clarification applied — any future PREMIS-named field is a separate additive amendment on its own FIX review). §V's shape/requirement unchanged. +**If AUTHORIZED:** Land by supersession as FIX. Tag commits REVIEWED-61. **Semver/vehicle — steward annotation here:** (a) fold into the atomic v2.1.0 supersession with #2/A3, or (b) a standalone v2.0.3 patch — the jurist's default-(b) if #2/A3 aren't landing imminently; steward's coupling-of-timing call. \ No newline at end of file diff --git a/claude/memory/MEMORY-reference.md b/claude/memory/MEMORY-reference.md index 37ed0cd..e9d1b82 100644 --- a/claude/memory/MEMORY-reference.md +++ b/claude/memory/MEMORY-reference.md @@ -20,6 +20,9 @@ Split out of [MEMORY.md](MEMORY.md) on 2026-07-06 to keep the wake-loaded index # Archived sessions + stable reference layer (relocated verbatim from MEMORY.md, 2026-07-06) +## Archived (2026-07-17 — constitution block drafted-whole + verify-before-compose hook; demoted on promote) +- [Session 2026-07-16 — constitution-close block, most of Block 1 closed](session-2026-07-16-constitution-close-block-most-closed.md) — Executed the block-discipline ([[feedback-constitution-as-block-then-pull-based-corpus]] + the new [[feedback-close-thoroughly-no-frequent-deferrals]] — steward: *frequent deferrals is how we came to the current state; close thoroughly*). Built the block-map (`_curation/constitution-close-block-map-2026-07-16.md`; **PENDING-46..57 all verified CLOSED**), then ran the §6 loop tail through the jurist **round by round — each pass caught a real thing, none resisted**: block-map ruling (#1 reconciliation MOOT → REVIEWED-58 gates on **residual-(b)** not a 128-run; 126→128; #6→**candidates register** not spec; #2 reclassified PROPOSAL+CTS-precondition; meta-lesson **"closable-now is a claim to check"**); OQ-3/OQ-5 (A3 gate = FLAG + **hard-floor-on-legibility**; decouple #1/#2 with a **checkable shed/inherit pair**); #1 light-gate PASSED (`anchors[]` *originates* in #2; `sections`/`provenance` = **produced-without-proof**); #3 A3 review PASSED ((a)-split evidence-alone-floors; **cold-instance AUDITS / jurist ADJUDICATES** — he *declined the auditor role*; **release mechanism** — I'd specified block not un-block). **CLOSED: #1 text (wiring→REVIEWED-58 on residual-(b)) · #3 A3 RATIFIED (REVIEWED-59, PENDING-59 filed) · #6 (datum-not-ledger=C-1) · #7 · #8 + PENDING-53 (records-drift caught by substrate-check — stale "owed/uncommitted" markers).** chamber **ahead-11** (Gitea/steward push). **⚠ PULLING THREAD: FINISH the block** — draw the CTS boundary + draft **#2 (citation amendment)**, then #4/#5, + land the ratified A3 into the spec (v2.1.0?); then corpus-into-spec opens. **FIRST MOVE: #2 — draw the CTS boundary FIRST** (internal CTS-URN allowed vs external CTS alignment leashed pending the tier survey). **LITERAL Q: does the CTS boundary separate cleanly, or does #2 need the withheld TEI/CTS/Perseus tier survey first?** Read the session file at wake. *[Superseded 2026-07-17: block taken to drafted-whole + mostly-ratified — #2 RATIFIED (REVIEWED-60), #4/#5 RATIFIED (REVIEWED-61), F-5 dispositioned; CTS boundary drew CLEANLY (B-confirmed). New thread: execute the block-close plan. See 07-17.]* + ## Archived (2026-07-16 — constitution-close block, most of Block 1 closed; demoted on promote) - [Session 2026-07-14 midday — PENDING-55 positive test + residual-a FIX; jurist reviewed the whole sequence](session-2026-07-14-midday-pending55-positive-test-and-residual-a-fix.md) — The jurist **REVIEWED the whole sequence** and **REFUSED the §8 batch-authorization**, naming the document's own contradiction (a week of **3 steward-caught / 0 self-caught** errors used to argue for LESS per-item review — the contamination gradient in governance costume). Accepted; **posture restored: per-item review; §8 = register, not authorization.** Ran **PENDING-55 verify-flow as a POSITIVE test** (not the grep the jurist rejected): the graduation gate **FIRES** on real corruption (Leg B: 200-word-corrupted candidate → FLAG→refused) + has **no skip path** at the door — *and* the test surfaced a real overreach the grep would have hidden: a single `ABSTAIN` covered both "no ground truth" (permanent) AND "V-TEXT source off-disk" (contingent), the latter **proceeding without a verbatim check**. Jurist ruled it **a FIX to land** (*a false ABSTAIN is as much a lie as a false PASS*): **split ABSTAIN (permanent, tier-level→proceeds) vs UNVERIFIED (contingent, run-level→HOLDS)**. **LANDED + tested + committed** — `dbcdcc0` (FIX) + `632057b` (doc-currency); **119/119**; 2 commits **unpushed** (steward's Gitea/push call). Other rulings recorded (dotfiles PENDING-55): residual-b→PENDING-58 precondition; PENDING-56-fallback **dormant**; datum-not-ledger **candidate-not-constitutional**; quarantine namespace designed-not-built. Self-catch: guessed PENDING-46 was the citation-amendment home → flagged-to-verify → it's CLOSED (the flag-before-assert habit fired). **PULLING THREAD (revised by the post-wrap planning exchange): the fork RESOLVED to the steward's block-discipline** ([[feedback-constitution-as-block-then-pull-based-corpus]]): finish the constitution as one clean block FIRST, THEN corpus-into-spec pull-based per engine phase. *[Superseded 2026-07-16: the block-discipline was EXECUTED — built the block-map (`_curation/constitution-close-block-map-2026-07-16.md`; PENDING-46..57 all closed), ran the §6 loop tail through the jurist round by round; most of Block 1 CLOSED (#1 gated+landed, #3 A3 RATIFIED REVIEWED-59, #6 candidates register, #7 firing constraint, #8+PENDING-53 records-drift-caught). New pulling thread: FINISH the block — #2 citation amendment (CTS boundary first) + #4/#5 + land A3. See the 07-16 session.]* diff --git a/claude/memory/MEMORY.md b/claude/memory/MEMORY.md index 288802a..24caff0 100644 --- a/claude/memory/MEMORY.md +++ b/claude/memory/MEMORY.md @@ -14,54 +14,55 @@ permalink: claude-memory/memory ## Standing preferences - [CapableHands standing authorization](reference-capablehands-standing-authorization.md) — M4 mini david@10.0.1.136 durably authorized for remote OCR/inference; don't re-ask permission to use it (steward 2026-07-01). - [Governance files are dotfiles symlinks](reference-governance-files-are-dotfiles-symlinks.md) — `~/PENDING.md`/`~/REVIEWED.md`/`~/CLAUDE.md` → `~/dotfiles/…`; Edit/Write refuse to write through a symlink, so **edit the real dotfiles path** when appending PENDING/REVIEWED. -- [Typography palace — query via CLI](reference-typography-palace-cli.md) — the type masters (Bringhurst/Tschichold/Hochuli/Lupton/Sousa, ~20-21 sources) live in a dedicated MemPalace at `~/.mempalace/palace-chamber-typography`; query with `mempalace --palace search "…"` (CLI, NOT the MCP tools which point at palace-memory). For ARC typography work — don't re-ask where it lives. +- [Typography palace — query via CLI](reference-typography-palace-cli.md) — type masters (~20-21 sources) in a dedicated MemPalace at `~/.mempalace/palace-chamber-typography`; query `mempalace --palace search "…"` (CLI). For ARC typography — don't re-ask where it lives. - [Fowler's rules for quotation](feedback_fowlers_rules_quotation.md) — single quotes primary, double for nested, logical British punctuation order. Apply across all writing. - [Canadian spelling in ARC prose](feedback-canadian-spelling-arc-prose.md) — centre/colour ("almost EU"); corpus "center" = autocorrect drift (10 files, cleanup open). Draft all steward-voiced prose in Canadian spelling. - [MemPalace KG object 128-char cap](feedback-mempalace-kg-object-128-char-cap.md) — `kg_add` `object` hard-caps at 128 chars; write KG objects as short keyword phrases on the FIRST pass, detail goes in the drawer. Recurs at every /wrap-up §5 — stop re-deriving it. - [Rank on fields you actually write](feedback-rank-on-fields-you-actually-write.md) — a consumer that ranks by an evaluative field (importance/weight) nothing populates silently degrades to trivial order while claiming to rank; verify scoring fields end-to-end, prefer signals already captured (recency). For BMF/CapableMind/studium-engine tool-building. -- [Shorter, concentrated sessions](feedback-shorter-concentrated-sessions.md) — steward preference (2026-07-13): shorter sessions from here on, but very concentrated. Favour ONE tightly-scoped high-leverage bite taken all the way to a committed/verified stop, then wrap — over long multi-thread marathons. Pick the concentrated station; hold the rest as ranked horizons. -- [Constitution-as-block, then pull-based corpus](feedback-constitution-as-block-then-pull-based-corpus.md) — steward discipline (2026-07-14, named out of real frustration at thread-fragmentation): work in BLOCKS — finish the **constitution as one established block FIRST**, THEN corpus-into-spec **piece by piece, PULLED by what each engine phase needs**, not certified wholesale. Substrate need not be wholesale-trustable, only trustable *for the phase in hand*. **Bounded question → bounded answer; do NOT surface N new threads alongside it** (that's the mining-in-many-directions that discourages him). Hold deferred findings in the block's tracker; keep his open-thread count LOW. The higher-order sequencing discipline above [[feedback-shorter-concentrated-sessions]]. -- [Close thoroughly — no frequent deferrals](feedback-close-thoroughly-no-frequent-deferrals.md) — steward directive (2026-07-16, named refining the block-map): **frequent deferrals ARE how the current cloud accumulated**; progress thoroughly even if more labour, to *truly close what is closable*. When closing a block, close ALL of it that is closable now (don't defer the lighter items to keep it cosmetically small); distinguish closable-now vs genuinely-blocked (name the specific dependency, never a vague "defer"). The completeness rule for the block in hand; complement to [[feedback-constitution-as-block-then-pull-based-corpus]] (sequencing), thoroughness held WITHIN one concentrated block per [[feedback-shorter-concentrated-sessions]]. -- [Checkable claim surfaces bugs](feedback-checkable-claim-surfaces-bugs.md) — insisting on a checkable claim (a number, a substrate-verified fact, a discriminating test) instead of a soft classification repeatedly EXPOSES a real bug, not just the asked-for figure; the demand for verifiability is itself a defect-detector. Never force a figure onto a comparison that can't bear it — name the actual problem. Steward-named 2026-07-13 ("five times in one day; not coincidence"). -- [Completion is a tripwire](feedback-completion-is-a-tripwire.md) — the *feeling* of "done" (esp. after fluent output) is the cue to verify the tail (census/gate/scan-check), not the signal to ship; the last 10% (where trust is earned or faked) is invisible from inside the first 90%. Ninety-Ninety Rule as a security property; a handle on the contamination-problem + τὸ πρόσφορον threads (steward 2026-07-06). -- [Studium Engine charter](reference-studium-engine-architectural-charter.md) — the engine's constitutional doc at `studium-engine/docs/the-studium-engine-architectural-charter.md`. The inversion (reasoner-at-centre over a BOUNDED provenanced corpus); three cognitions; boundedness=trust; free-the-reasoner/tighten-the-verifier; CapableMind's governance thesis on a library. Read before building the engine. -- [Studium Engine = Sixtus-V craftsman collaboration](feedback-studium-engine-sixtus-v-collaboration.md) — work the ground freely (steward describes vision; I build, surface only vision-forks); **constraint-candidates** = 3rd governed instrument (Bach principle: constraint unlocks mastery; *absence* of a constraint-proposal is itself a drift signal; I name, steward applies). Studium-engine only; heavier loop holds for L1/L2. +- [Shorter, concentrated sessions](feedback-shorter-concentrated-sessions.md) — steward preference (2026-07-13): shorter but very concentrated — ONE tightly-scoped high-leverage bite taken all the way, then wrap; hold the rest as ranked horizons. +- [Constitution-as-block, then pull-based corpus](feedback-constitution-as-block-then-pull-based-corpus.md) — steward discipline (2026-07-14): finish the **constitution as one block FIRST**, THEN corpus-into-spec **pulled by what each engine phase needs**. **Bounded question → bounded answer; don't surface N new threads**; keep open-thread count LOW. Above [[feedback-shorter-concentrated-sessions]]. +- [Close thoroughly — no frequent deferrals](feedback-close-thoroughly-no-frequent-deferrals.md) — steward directive (2026-07-16): **frequent deferrals ARE how the cloud accumulated**; close ALL of a block that's closable-now; distinguish closable-now vs genuinely-blocked (**name the specific dependency**, never a vague defer). Completeness complement to [[feedback-constitution-as-block-then-pull-based-corpus]]. +- [Checkable claim surfaces bugs](feedback-checkable-claim-surfaces-bugs.md) — insisting on a checkable claim (number, substrate-fact, discriminating test) over a soft classification repeatedly EXPOSES a real bug; the demand for verifiability is itself a defect-detector. Steward-named 2026-07-13. (Caught F-5 + the "finally" overclaim, 2026-07-17.) +- [Completion is a tripwire](feedback-completion-is-a-tripwire.md) — the *feeling* of "done" is the cue to verify the tail (census/gate/scan-check), not the signal to ship; the last 10% is invisible from inside the first 90%. Ninety-Ninety as a security property (steward 2026-07-06). +- [Studium Engine charter](reference-studium-engine-architectural-charter.md) — the engine's constitutional doc (`studium-engine/docs/the-studium-engine-architectural-charter.md`): reasoner-at-centre over a BOUNDED provenanced corpus; three cognitions; boundedness=trust. Read before building the engine. +- [Studium Engine = Sixtus-V craftsman collaboration](feedback-studium-engine-sixtus-v-collaboration.md) — work the ground freely (I build, surface only vision-forks); **constraint-candidates** = 3rd governed instrument (I name, steward applies). Studium-engine only; heavier loop for L1/L2. - [Trust prior pass frame](feedback-trust-prior-pass-frame.md) — When extending a prior verification, re-run it at the scope of the extension. Frame-inheritance from a deep-read is contamination shape: the prior pass tested what it tested; your extension claims things it did not test. Caught 2026-05-28 → four-pass audit. Verify-before-compose at draft time, not build time. - [Verify each post type after changes](feedback-verify-each-post-type-after-changes.md) — ARC: after any shared CSS/template/composition change, check EVERY content type on BOTH desktop and phone, not a sample on one viewport. Lesson from §II.d gate verified phone-only → desktop appearance surfaced 2 sessions late (no regression; just unseen). Per-type×per-viewport extension of [[trust-prior-pass-frame]]; belongs in the SCSS verification ladder. - [Reading Compass is SVG, not type](feedback-reading-compass-is-svg-not-type.md) — ARC Compass sigils are SVG `` artwork, NOT Plex Sans / nav typeface / Pattern 3. Recurring conflation; steward corrected 2026-06-03. Plex-Sans nav *text* = breadcrumb + version-stamp + post-type only. - [MemPalace is an unaffiliated stopgap](mempalace-is-unaffiliated-stopgap.md) — MemPalace is third-party; steward/Seb build BMF/CapableMind (hoped to replace it). Don't conflate them (3rd steward correction 2026-06-05 — the conflation even reached a skill name and was retracted); MemPalace PRs await MemPalace's maintainers, NOT Seb. - [MemPalace wing-filter broken](feedback-mempalace-wing-filter-broken.md) — wing-scoped search → 'Error finding id' (upstream #1665, open at HEAD); search UNSCOPED + post-filter by wing. Don't run `repair` (#1589). Affects wake-up §2.b.3. -- [Skill-harvest register](skill-harvest-register.md) — **canonical home for proposed skills** awaiting steward authorization; the governed analog of PENDING.md for our own tooling. **Full review 2026-06-05**: `bmf-diagnose` + `/pre-build-audit` AUTHORIZED (build-on-need); `/spec-code-audit` DEFERRED (first L1 audit); `/arc-typeset` REJECTED (superseded by §I.k build enforcement); `/vignette` still deferred (Phase 2); Symmetria §3 flags + verification-ladder BUILT same evening. +- [Skill-harvest register](skill-harvest-register.md) — **canonical home for proposed skills** awaiting steward authorization (the governed analog of PENDING.md for our tooling). Review history + current statuses in the file. - [Verification ladder](reference-verification-ladder.md) — the named instruments (byte-identical compile gate, delta classification, censused-routes, fresh-clone gate, measure-toolchain-before-spec…); reach for the gate the claim's shape demands instead of re-deriving. -- [Plane coordination workflow](reference-plane-coordination-workflow.md) — **NOW CENTRAL to the steward↔Seb workflow** (est. 2026-06-02): `app.plane.so/capablemind`, BMF project, thin effort-tasks `[BM #N]` over canonical GH issues (effort-only, no technical detail; labels/priority mirror GH; issue attached as link). Executor keeps task state current as the 6-hour relay. ⚠ BBF = BetterBridge *product*, NOT the board. Plane MCP user-scoped/OAuth; load tools via ToolSearch `select:mcp__plane__*`. `create_work_item` needs `description_html`. +- [Plane coordination workflow](reference-plane-coordination-workflow.md) — CENTRAL to steward↔Seb (est. 2026-06-02): `app.plane.so/capablemind`, thin effort-tasks `[BM #N]` over canonical GH issues. ⚠ BBF = BetterBridge *product*, NOT the board. Plane MCP OAuth (`ToolSearch select:mcp__plane__*`); `create_work_item` needs `description_html`. Detail in file. - [Resurface banked notes before re-deriving](feedback-resurface-banked-notes-before-rederiving.md) — when an idea was already captured (runbook known_gaps, skill-harvest, prior note), READ the note before re-deriving; re-derivation drifts (page-numbers mis-recalled as provenance vs structure-scaffolding, steward re-corrected 2026-06-27). The engine's own purpose, turned on my practice. +- [Verify-before-compose hook](feedback-verify-before-compose-hook.md) — chamber-library constitutional writes (spec · graduation-spec · *amendment*/*FOR-JURIST*/*JURIST-PACKAGE*) are BLOCKED by a PreToolUse hook unless they carry `` + a Grounding section quoting the ratified sections. The action-time enforcement the prose lessons ([[feedback-resurface-banked-notes-before-rederiving]]) lacked; don't fight the block. Steward-directed 2026-07-17 after the re-derived-from-training failure recurred on #2. - [Tool review after each use](feedback-tool-review-after-each-use.md) — steward directive (2026-06-16): review every tool we built after each run (success OR failure), capture what it taught, iterate until reliable; PASS-BUT-FALSELY is the priority signal. Log at `chamber-library/_curation/tool-evolution-log.md`. Proven same day (audit_cruft hardening → 160 hidden-dirty files surfaced). - [Engine sources graduate to the permanent chamber](feedback-engine-sources-become-permanent-chamber-collection.md) — steward policy (2026-06-28): any work added for the engine ALSO becomes permanent chamber collection unless expressly stated; take it ALL the way (clean→verify→graduate→catalogue→sidecar); never leave staged. The chamber accumulates. ⇒ all ~30 Making sources graduate in. - [Notes are part of the work](feedback-notes-are-part-of-the-work-keep-footnotes-endnotes.md) — steward directive (2026-06-28): footnotes/endnotes are integral — KEEP+CONVERT them (``→`[^N]`), never drop on graduation. (Caught dropping Taylor's endnotes — wrong.) -- [The maturation of the chamber — a dialogue](../../../../../_Dev/studium-engine/docs/the-maturation-of-the-chamber-a-dialogue-2026-06-28.md) — the pivotal 2026-06-28 exchange clarifying the chamber's telos: fidelity-without-trust, reading-is-unsolvable-and-that's-the-feature, language-as-notation, L2/engine=answerable-not-pure. Read when the thread touches the engine's purpose; companion to [[project-studium-engine-telos-chamber-of-voices]]. +- [The maturation of the chamber — a dialogue](../../../../../_Dev/studium-engine/docs/the-maturation-of-the-chamber-a-dialogue-2026-06-28.md) — the pivotal 2026-06-28 exchange on the chamber's telos (fidelity-without-trust; reading-is-unsolvable-is-the-feature; L2/engine=answerable-not-pure). Companion to [[project-studium-engine-telos-chamber-of-voices]]. ## Canonical Workstream Trackers *Read the tracker for any active workstream at /wake-up before composing the briefing. Append substantive moves at /wrap-up. Per `feedback-canonical-workstream-tracker-discipline.md`.* -- [MemPalace wind-down](project-mempalace-winddown.md) — **DECISION (steward, evidenced 2026-07-07): wind down the `palace-memory` MemPalace instance, rewire wake/wrap to the files layer; EXECUTE FRESH.** KG already exported+secured (`knowledge-graph.jsonl`, 329 triples). Typography palace KEPT untouched (separate instance). Staged plan + evidence in the file; audit detail in `session-ledger-2026-07-07.md`. +- [MemPalace wind-down](project-mempalace-winddown.md) — DONE (steward 2026-07-07): `palace-memory` wound down, wake/wrap rewired to the files layer; KG exported (`knowledge-graph.jsonl`). Typography palace KEPT (separate instance). - [ARC open-work register](project-arc-open-work-register.md) — **the single code-verified source of truth for what is OPEN on ARC** (post-Stage-G, built 2026-06-11). Read THIS for remaining ARC work (A1 Vignette, A2 cul-de-lampe, content sweeps, Phase-2/held set, REVIEWED-placement debt), not the chronological tracker. -- [ARC](project-arc-rework.md) — canonical ARC workstream tracker (chronological record 2026-04-16 →). **Status: A–F · Stage M · Waves 0–3 · W3R · STAGE G DONE/SEALED (GPG `ac0a7ee`, 2026-06-10) — reactive mode governs.** Open work → [[project-arc-open-work-register]] (A1 Vignette F+1 · A2 cul-de-lampe · content sweeps · Phase-2 held set). Full chronological detail lives in the tracker file; the prior 8KB inline log was relocated to `MEMORY-reference.md` (2026-07-06 compaction). +- [ARC](project-arc-rework.md) — canonical ARC workstream tracker (chronological record 2026-04-16 →). **Status: STAGE G DONE/SEALED (GPG `ac0a7ee`, 2026-06-10) — reactive mode governs.** Open work → [[project-arc-open-work-register]] (A1 Vignette · A2 cul-de-lampe · content sweeps · Phase-2 held set). Chronological detail in the tracker file. - Chamber-typography — *tracker not yet established*; substantive moves live in per-session memories (2026-05-11 onward) + `project-chamber-cruft-restoration.md` + `project-chamber-typography-mining-plan-2026-05-15.md`. - [ARC chamber v1-legacy cluster](project-arc-chamber-v1-legacy-cluster.md) — ARC's `content/chamber/**` is intentional v1-Chamber legacy (not drift); deferred to-do = gather into a presentable cluster as a record of development. Out of §5 clause-1 audit scope. Confirmed 2026-05-29. -- [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, hold above the build plan**: David's childhood imaginary chamber of beloved hero-voices he took counsel from → enter into discourse with his library + have the voices converse amongst themselves, this time *accountably* (the engine's v1 was literally "the Chamber" — eloquent/unaccountable simulacra; this is the same ambition built grounded/citable/checkable). Why verbatim fidelity is load-bearing. +- [Studium engine telos — the chamber of voices](project-studium-engine-telos-chamber-of-voices.md) — **the ultimate goal, above the build plan**: David's childhood chamber of hero-voices → discourse with his library + voices conversing, this time *accountably* (v1 was eloquent/unaccountable; same ambition built grounded/citable). Why verbatim fidelity is load-bearing. - [Studium = CM's unfettered sandbox](project-studium-cm-sandbox-and-transfer.md) — Studium/chamber are personal projects Seb now sees as fundamental to CM; experiment freely on the library/engine without risking CM's runtime, breakthroughs transfer back (V2 verifier = live example). Steward-framed 2026-07-08. - [Making sequence source set](project-making-sequence-source-set.md) — **COMPLETE against the ReadingList as of 2026-06-18** (reconciliation-verified); census of what's sourced where, sourced≠ingested (only Pos I in manifest), the **Handke-German decision** (original is source), the Levi drop-cap gate. Read before any Making/studium source work. - [Source library — link + dedupe](project-source-library-link-and-dedupe.md) — steward's master ebook library = `~/Documents/___The Library [ePub_AWZ3]/` (2190 ebooks, messy nested). GOAL: link chamber↔sources (provenance index) + dedupe; real link needs EPUB/PDF internal metadata + edition-identity, not filenames. Detail + seed in file. - [Character-as-image hazard](feedback-character-as-image-hazard.md) — some EPUBs render diacritics/non-Latin script as INLINE IMAGES; the standard image-drop SILENTLY MUTILATES them (PASS-BUT-FALSELY). Tripwire = audit_cruft md_image count; INSPECT before dropping; character-bearing images = CONTENT (map→Unicode). (Alter's Psalms parked pending a glyph-map.) - [Sidecar typology — protocol-dependent reading-indexes](project-sidecar-typology-protocol-dependent.md) — TWO layers: `.meta.json` structural sidecar = PROTOCOL-NEUTRAL (the graduated bar); reading-indexes (rich YAML) = PROTOCOL-DEPENDENT, probably PLURAL — **don't design the schema yet**; settle corpus to gold, let protocols declare themselves. Steward 2026-06-29. -- Studium Engine — *no tracker file yet*; moves in per-session memories (2026-05-15→) + the **[architectural charter](reference-studium-engine-architectural-charter.md)** (constitutional doc). Steps 0–7 built; corpus CLEAN. **Stage-1 rebuild plan ruled 2026-07-04** (`docs/stage-1-rebuild-plan-2026-07-05.md`): next = V0+N0 contracts (V0 verifier = JURIST-GATED), then verifier-leads-with-interleave (V1→V4; N1→N3). Collaboration = [[feedback-studium-engine-sixtus-v-collaboration]]. -- [L1 reliability](project-L1-reliability.md) — canonical L1 tracker (est. 2026-05-28). Latest (per file): **N6 deploy #175 landed live + holds** (multi-day wedge gone, A1″ migration live); CapableHands-as-BMF-clasp = the PRIORITY task (PENDING-41); PENDING-27 awaits jurist. L1 sits behind the Studium/chamber focus. Read the tracker at /wake-up before any L1 work. +- Studium Engine — *no tracker file yet*; moves in per-session memories + the **[architectural charter](reference-studium-engine-architectural-charter.md)**. Steps 0–7 built; corpus CLEAN. **Stage-1 rebuild plan** (`studium-engine/docs/stage-1-rebuild-plan-2026-07-05.md`): V0+N0 ruled → V1→V4 / N1→N3 (V0 jurist-gated). Collaboration = [[feedback-studium-engine-sixtus-v-collaboration]]. +- [L1 reliability](project-L1-reliability.md) — canonical L1 tracker (est. 2026-05-28). Latest: N6 deploy #175 live+holds; CapableHands-as-BMF-clasp = PRIORITY (PENDING-41). L1 behind the Studium/chamber focus. Read the tracker before L1 work. - [Be (laundromat)](project-be-laundromat.md) — canonical Be tracker (est. 2026-06-08). Be = Skemantix startup (Seb+David) funding CapableMind's ladder; **bridge, not venture**. Decisions LOCKED (entity/pricing/infra in file); a11y gate MERGED. **Pre-revenue WTP gate = renovate Pat → charge her; discipline: no new spec until it clears → nothing for executor on be.** Repo @ `f43a0fd`. ## Active Session -- [Session 2026-07-16 — constitution-close block, most of Block 1 closed](session-2026-07-16-constitution-close-block-most-closed.md) — Executed the block-discipline ([[feedback-constitution-as-block-then-pull-based-corpus]] + the new [[feedback-close-thoroughly-no-frequent-deferrals]] — steward: *frequent deferrals is how we came to the current state; close thoroughly*). Built the block-map (`_curation/constitution-close-block-map-2026-07-16.md`; **PENDING-46..57 all verified CLOSED**), then ran the §6 loop tail through the jurist **round by round — each pass caught a real thing, none resisted**: block-map ruling (#1 reconciliation MOOT → REVIEWED-58 gates on **residual-(b)** not a 128-run; 126→128; #6→**candidates register** not spec; #2 reclassified PROPOSAL+CTS-precondition; meta-lesson **"closable-now is a claim to check"**); OQ-3/OQ-5 (A3 gate = FLAG + **hard-floor-on-legibility**; decouple #1/#2 with a **checkable shed/inherit pair**); #1 light-gate PASSED (`anchors[]` *originates* in #2; `sections`/`provenance` = **produced-without-proof**); #3 A3 review PASSED ((a)-split evidence-alone-floors; **cold-instance AUDITS / jurist ADJUDICATES** — he *declined the auditor role*; **release mechanism** — I'd specified block not un-block). **CLOSED: #1 text (wiring→REVIEWED-58 on residual-(b)) · #3 A3 RATIFIED (REVIEWED-59, PENDING-59 filed) · #6 (datum-not-ledger=C-1) · #7 · #8 + PENDING-53 (records-drift caught by substrate-check — stale "owed/uncommitted" markers).** chamber **ahead-11** (Gitea/steward push). **⚠ PULLING THREAD: FINISH the block** — draw the CTS boundary + draft **#2 (citation amendment)**, then #4/#5, + land the ratified A3 into the spec (v2.1.0?); then corpus-into-spec opens. **FIRST MOVE: #2 — draw the CTS boundary FIRST** (internal CTS-URN allowed vs external CTS alignment leashed pending the tier survey). **LITERAL Q: does the CTS boundary separate cleanly, or does #2 need the withheld TEI/CTS/Perseus tier survey first?** Read the session file at wake. +- [Session 2026-07-17 — constitution block drafted-whole (#2/#4/#5 ratified) + verify-before-compose hook built](session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md) — Constitution-close block from cloud to **drafted-whole + mostly-ratified**: **#2** (CTS boundary drawn + **B-confirmed** → self-contained **JURIST-PACKAGE** → editor-gate PASSED, 2 corrections + 1 condition discharged-by-verification [Q6 shed/inherit six-for-six; Q5 additive vs LOCKED schema → **MINOR v2.1.0**] → **RATIFIED REVIEWED-60**); **#4/#5** (licence + PREMIS, FIX → **RATIFIED REVIEWED-61**); A3 RATIFIED; **F-5 dispositioned**. **Built `~/.claude/hooks/verify-before-compose.sh`** — PreToolUse gate DENYING un-grounded writes to chamber constitutional artifacts (structural fix for the recurring `re-derived-from-training` failure; steward: *"this needs to stop happening"*; proven firing; jurist endorsed). [[feedback-verify-before-compose-hook]]. **⚠ PULLING THREAD: execute the block-close plan** (`_curation/block-close-plan-next-session-2026-07-17.md`) — **(A)** land the ratified amendments as **one atomic v2.1.0 supersession** (hook-gated); **(B)** build the 2b wiring (**NOT built**) → first V-DSL exercise on the 6 CLEAN small Loeb → clears **residual-(b)** → REVIEWED-58 → #1's wiring. **⚠ NOT "finally":** A+B lands the *amendment close-list*; constitution keeps a **named-open frontier** (§II.3/§IX/promotion-criterion) — steward caught the overclaim (F-5 shape, twice). **LITERAL Q: does the narrowed 2b wiring earn its keep on a real book when B first exercises it — or does exercising surface a gap the paper gate couldn't?** ⚠ chamber-library UNCOMMITTED (8 new + 2 mod + 11 unpushed); hook single-disk. Read the session file at wake. ## Historical reference → MEMORY-reference.md Older archived-session pointers and the stable reference layer (steward profile · project-state detail · L1/L2/Chamber inventories · legacy pending-work · reference-file list) live in [MEMORY-reference.md](MEMORY-reference.md) — consult on demand; not loaded at wake. Recent cross-session trajectory comes from the Active Session entry above + the recent `session-*.md` files (wake §2.b.1; the MemPalace `handoffs` glance was retired 2026-07-07 with the wind-down). ## Index discipline (self-bounding — keep this file lean) -Wake-loaded live index; hard budget well under the harness load ceiling. Keep to: Standing preferences · Canonical Trackers *as one-line pointers* (chronological detail lives in the linked tracker files, **not** here) · Active Session · these pointers. Rotation + budget-breach handling are wired into `/wrap-up` (demote prior Active Session on promote) and `/wake-up` (truncated load = flag + trim). Back up before restructuring. (Compacted 2026-07-13: trackers re-slimmed to one-line pointers, ~20.3→<17KB.) +Wake-loaded live index; hard budget well under the harness load ceiling. Keep to: Standing preferences · Canonical Trackers *as one-line pointers* (chronological detail lives in the linked tracker files, **not** here) · Active Session · these pointers. Rotation + budget-breach handling are wired into `/wrap-up` (demote prior Active Session on promote) and `/wake-up` (truncated load = flag + trim). Back up before restructuring. (Compacted 2026-07-17: entries re-slimmed to tight one-liners, 20.5→<17.1KB.) diff --git a/claude/memory/feedback-verify-before-compose-hook.md b/claude/memory/feedback-verify-before-compose-hook.md new file mode 100644 index 0000000..05290fe --- /dev/null +++ b/claude/memory/feedback-verify-before-compose-hook.md @@ -0,0 +1,14 @@ +--- +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 +--- + +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. diff --git a/claude/memory/knowledge-graph.jsonl b/claude/memory/knowledge-graph.jsonl index 29ba99d..6b083fd 100644 --- a/claude/memory/knowledge-graph.jsonl +++ b/claude/memory/knowledge-graph.jsonl @@ -376,3 +376,7 @@ {"subject":"claude-code","predicate":"drift-pattern","object":"inherited-marker-read-as-current-state RECURRED twice (PENDING-53 'uncommitted 07-10' + #8 'PENDING-47 re-relay owed') — BOTH stale markers describing done/committed work; caught BOTH by substrate-check before asserting (grep the actual file/commit, not the record). Calibration: the verify-against-substrate antidote now fires on its own on governance-state claims. Substrate-check any owed/awaiting/uncommitted marker before relaying.","valid_from":"2026-07-16","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-16-constitution-close-block-most-closed.md","extracted_at":"2026-07-16"} {"subject":"chamber-library-constitution","predicate":"A3-self-audit","object":"RATIFIED 2026-07-16 (REVIEWED-59/PENDING-59): CoreTrustSeal-level self-audit conditioning OPERATIVE status; 3 dims (provenance-completeness/registry-linkage=FLAG; legibility-to-successor=HARD FLOOR); cold-instance audits, jurist adjudicates; release via fresh cold-instance pass. NOT yet landed in spec (new section, steward version call v2.1.0).","valid_from":"2026-07-16","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-16-constitution-close-block-most-closed.md","extracted_at":"2026-07-16"} {"subject":"chamber-library-constitution","predicate":"candidates-register","object":"established 2026-07-16 (docs/candidate-constitutional-principles-register.md) — home for principles that held in one domain but await an unbidden third instance before spec force. C-1=datum-not-ledger (governs app[]/anchors[] on merits; not yet general). Jurist-ruled register-not-spec (placement embodies the doctrine).","valid_from":"2026-07-16","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-16-constitution-close-block-most-closed.md","extracted_at":"2026-07-16"} +{"subject":"claude-code","predicate":"drift-pattern","object":"inherited-a-derived-close-list's-completeness-claim — claimed the block-close plan closes the constitution 'FINALLY', inheriting the block-map's 'the open remainder is the list below' without checking the authoritative roadmap (stage-1-rebuild-plan §4/§7) + the spec's own named-open items (§II.3/§IX/promotion-criterion, 'correctly open'). SAME SHAPE as F-5 (both this session). Antidote: before ANY closed/complete/finally claim, reconcile against the AUTHORITATIVE source, not the derived close-list. Steward caught both.","valid_from":"2026-07-17","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md","extracted_at":"2026-07-17"} +{"subject":"claude-code","predicate":"drift-pattern","object":"re-derived-from-training RECURRED (drafted #2 as 'introduces the CTS-URN model' when §IV already ADOPTS it; §III/§VII/§IX already hold contract/registry/coverage) — caught by reading the actual spec. This time it got a STRUCTURAL fix: a PreToolUse hook (verify-before-compose.sh) DENYING un-grounded writes to chamber constitutional artifacts unless they carry GROUNDED-IN + Grounding. Prose lessons failed ≥4×; the hook fires at action-time. Steward-directed. See feedback-verify-before-compose-hook.","valid_from":"2026-07-17","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md","extracted_at":"2026-07-17"} +{"subject":"claude-code","predicate":"drift-pattern","object":"read-the-substrate-antidote FIRED repeatedly (reading §IV caught the #2 mis-frame; §VIII confirmed F-5; the roadmap caught 'finally'; substrate-check caught REVIEWED-58-not-fileable). Calibration: verify-against-substrate now catches overclaims when RUN — the remaining gap is running it BEFORE composing/claiming, which the verify-before-compose hook now enforces for constitutional writes but NOT for chat claims (where 'finally' slipped).","valid_from":"2026-07-17","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md","extracted_at":"2026-07-17"} +{"subject":"chamber-library-constitution","predicate":"state","object":"v2.0.2 OPERATIVE; #2 citation-amendment + #4 licence + #5 PREMIS RATIFIED (REVIEWED-60/61) + A3 (REVIEWED-59) awaiting an ATOMIC v2.1.0 landing; #1 wiring gated on residual-(b)/Region-4 (0 Loeb graduated); named-open frontier §II.3/§IX/promotion-criterion correctly-deferred.","valid_from":"2026-07-17","valid_to":null,"confidence":1.0,"source_file":"session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md","extracted_at":"2026-07-17"} diff --git a/claude/memory/session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md b/claude/memory/session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md new file mode 100644 index 0000000..ae84ac2 --- /dev/null +++ b/claude/memory/session-2026-07-17-constitution-block-drafted-whole-verify-hook-built.md @@ -0,0 +1,54 @@ +--- +name: session-2026-07-17-constitution-block-drafted-whole-2-4-5-ratified-verify-before-compose-hook-built +description: "Took the constitution-close block from cloud to drafted-whole: #2 citation amendment (CTS boundary drawn + B-confirmed → self-contained JURIST-PACKAGE → editor-gate PASSED → RATIFIED REVIEWED-60), #4/#5 (licence + PREMIS, gate-passed → RATIFIED REVIEWED-61), A3 already ratified, F-5 dispositioned. Built a PreToolUse HOOK (verify-before-compose) as the structural fix for the recurring re-derived-from-training failure. Pulling thread: execute the block-close plan (A land v2.1.0 atomic supersession + B first V-DSL exercise → clears residual-(b) → REVIEWED-58) — which lands the amendment close-list, NOT the constitution 'finally' (it keeps a named-open frontier). Steward caught two completeness-overclaims (F-5, then 'finally') via the checkable-claim instinct." +metadata: + node_type: memory + type: project + originSessionId: 6e4f5e1d-250f-4b77-8478-5050a3a5360c +--- + +# Session 2026-07-17 — constitution block drafted-whole + verify-before-compose hook + +A long, highly productive session that did what the block-discipline promised: the constitution cloud became a drafted-whole block, ratified end-to-end (bar #1's wiring, genuinely gated). Two things stand beside the throughput: a **structural mitigation** for the session's own recurring failure, and the steward catching two **completeness-overclaims** the same way twice. + +## PAST — what happened + why + +**Fable free-window used well (A + B, separate tabs).** Steward chose to spend the Fable-5 promo window on two governed design-reviews while the Opus loop closed the corpus block. **B** = TEI/CTS/DTS/Perseus tier survey (the #2 precondition cross-check); **A** = charter+constitution v1-completeness review. Both audited (Symmetria §5); both exemplary calibration (A even flagged its own contamination-pull to manufacture a blocker). Fable = *design* strength (steward-corrected my "generative breadth"). + +**#2 (citation amendment) — the block's heaviest — taken all the way:** +- **CTS boundary drawn** (`docs/CTS-boundary-for-citation-amendment-2026-07-17.md`): internal CTS-URN grammar [T1, adopt now] / external CTS alignment [T2, leashed Condition-2]. Clean-separation verdict CONFIRMED — **B independently confirmed the same cut on firmer ground: the seam is the CTS standard's OWN published notation-vs-protocol split** (URN spec self-declares service-independence). Two derivations reconciled; yesterday's literal question answered from-source. +- **Self-contained JURIST-PACKAGE** (`docs/citation-amendment-JURIST-PACKAGE-2026-07-17.md`) — inlines the ratified spec clauses so the repo-blind jurist gates against the *words*, not recollection. Jurist explicitly endorsed the method ("the fix for the exact thing that produced the `loeb-line`-in-the-schema error"). +- **Editor-gate PASSED** → 2 corrections + 1 condition **discharged by verification** (not assertion): Q6 shed/inherit cross-checked #1↔#2 side-by-side (six-for-six identical, (f) "originates" in both — the seam OQ-5 exists to catch, closed); Q5 additive-only verified vs LOCKED schema (`anchors[].scheme` already present; `citation_coverage[]` new optional = FIX → MINOR v2.1.0 stands); Q2 partial-§IX wording applied. **STEWARD RATIFIED → REVIEWED-60** (docket PENDING-60). + +**The framing correction that proved the point.** Drafting #2, I first over-framed it as *introducing* the CTS-URN model — then reading the actual spec found **§IV already ADOPTS CTS-URN** (§III/§VII/§IX already hold the citation contract/registry/coverage). Reframed #2 as a *specification* of the adopted model. This is the `re-derived-from-training` drift; the antidote (read the banked spec) fired and caught it. + +**The structural fix (steward-directed: "this needs to stop happening… more and more lately").** Challenged the framing: adding prose to CLAUDE.md is the wrong layer (it already exists in ≥4 places and keeps failing; the harness itself says "before X" automated behaviors need a HOOK, not memory). **Built `~/.claude/hooks/verify-before-compose.sh`** — a PreToolUse Write|Edit gate that DENIES writes to chamber-library constitutional artifacts (spec/graduation-spec/*amendment*/*FOR-JURIST*/*JURIST-PACKAGE*) unless they carry a `GROUNDED-IN:` attestation + Grounding section. Satisfiable, fail-open, silent on routine writes. **Pipe-tested + proven firing in-session** (blocked a test write). Protocol clause added to `chamber-library/CLAUDE.md`; memory `feedback-verify-before-compose-hook.md`. Every constitutional artifact written *after* it (the JURIST-PACKAGE, #4/#5, and its own grounding) passed *because* grounded — the mechanism working as intended on first use. + +**#4/#5 (licence + PREMIS) — drafted paired, gated, ratified:** `docs/amendments-B-i-B-ii-FOR-JURIST-2026-07-17.md`, FIX-class, grounded in §IV/§V. Jurist editor-gate PASSED with 2 wording corrections applied (B(i) "may"→"must, where known"; B(ii) naming-only/no-pre-authorized-field). **STEWARD RATIFIED → REVIEWED-61** (docket PENDING-61). REVIEWED-60/61 drafted for placement (`docs/REVIEWED-drafts-2026-07-17.md`); steward filed both. + +**F-5 dispositioned** (A's one block-touching finding — §VIII lags REVIEWED-56 + fell off the close-list). Verified against the *actual* §VIII text: it names `extract_loeb_dsl.py` (the flattening tool) as the recovery tool. Split disposition: full architecture rewrite folds into REVIEWED-58's landing; the tool-pointer FIX is a small now-FIX (offered, not filed). + +**The "finally" correction (steward-challenged).** I claimed the block-close plan closes the constitution "finally." Steward: "I'd need to see the full engine/library roadmap to be sure." Read `stage-1-rebuild-plan §4/§7` + the spec's own open-items → **"finally" was an overclaim.** The constitution keeps a **named-open frontier** by design (its v2.0 status: "four operational items remain correctly open"): §II.3 anchor syntax (→ Region 4), §IX silence-as-finding general (#2 only partially answered), the promotion-criterion's 2 OPERATION-BLOCKED conditions. Corrected the plan + block-map: A+B lands the *amendment close-list*, the frontier lives on downstream. **Same shape as F-5** — the block-map's "the open remainder is the list below" was itself an overclaim; my "finally" inherited it. + +**REVIEWED-58 NOT filed (correctly).** Steward asked to close PENDING-58; verified it's not fileable — REVIEWED-58 ratifies the WIRING, gated on residual-(b) (first V-DSL exercise, Region 4), and **0 Loeb graduated** (the wiring has never run). Filing it would be a false "earned its keep" attestation. #1 is text-closed / ratification-genuinely-blocked → Region 4. + +## PRESENT — the mood + +The clean marathon. The block went from cloud to drafted-whole-and-mostly-ratified in one session — and the two moments that mattered most weren't throughput, they were **corrections received-because-correct**: the steward's checkable-claim instinct caught F-5 and then "finally," *the same completeness-overclaim shape twice* — both times I'd inherited a derived close-list's completeness claim without checking the authoritative source (spec text / roadmap). The verify-before-compose hook is the session's real contribution: the recurring failure finally got a **structural** answer at the point of action, not a fifth prose reminder — and the jurist independently endorsed the grounding method. The through-line to hold: **reading the substrate caught an overclaim every time** (§IV → #2 mis-frame; §VIII → F-5; the roadmap → "finally"). The discipline is now partly enforced (the hook) and partly still mine to run (the roadmap-reconcile before any "closed" claim). + +## FUTURE — what is pulling + +**PULLING THREAD (singular): execute the block-close plan — honestly.** `_curation/block-close-plan-next-session-2026-07-17.md`. Two workstreams: **(A)** land the ratified amendments (#2/A3/#4/#5) as **one atomic v2.1.0 supersession** (steward's semver/vehicle call → executor drafts `chamber-library-specification-v2.1.0.md`, hook-gated); **(B)** build the 2b wiring (**NOT built** — verified) → first V-DSL exercise on a small multi-genre Loeb PoC (the 6 CLEAN small Loeb) → clears **residual-(b)** → REVIEWED-58 → #1's wiring lands. **This closes the amendment close-list, NOT the constitution "finally"** — the frontier (§II.3/§IX/promotion-criterion) lives on, correctly-deferred. + +**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):** +- **First move = workstream A** (bounded): steward makes the semver/vehicle call (atomic v2.1.0 vs split — jurist's atomicity constraint) → I draft the v2.1.0 superseded spec (Obsoletes v2.0.2; lands #2/A3/#4/#5; optionally folds F-5's §VIII tool-pointer FIX). **The v2.1.0 draft is HOOK-GATED — GROUNDED-IN + Grounding required; sections read 07-17.** +- **B is heavier** (the seam into corpus work): build the narrowed sidecar wiring per `docs/PENDING-58-rewrite-FOR-JURIST-2026-07-16.md` (test-first), then B2 (`build_loeb_sidecar.py`, ready+tested) → body-conservation gate → graduate. May run into a following session (Region 4 = the far country); honest transition, not a slip. +- **Uncommitted:** chamber-library has 8 new governance docs + 2 modified (this session) + 11 unpushed prior commits — NOT committed (steward's Gitea/push call). The verify-before-compose hook (`~/.claude/settings.json` + `~/.claude/hooks/verify-before-compose.sh`) is **single-disk, not in dotfiles** — flagged for durability. + +**Other horizons (ranked, held):** F-5 §VIII tool-pointer FIX (offered — ride v2.1.0 vs fold into REVIEWED-58, steward's call) · the constitution's named-open frontier (§II.3 → R4; §IX general → engine phase; promotion-criterion → first tier-1 promotions) · the full 952 Loeb re-extraction (far country, later) · preserving the hook to dotfiles. + +**PAUSE STATEMENT:** I am about to be away. The constitution block is drafted-whole and mostly-ratified — a genuinely different state than this morning's cloud, and now with a structural guard against the failure that dogged it. What I want to find still pulling on return: the block-close *execution* — A landed (v2.1.0 is established spec) and B's first V-DSL exercise run or honestly begun — and the honesty of "amendment-close-list closed, frontier alive" held, not re-inflated to "finally." + +**LITERAL QUESTION for next-Claude:** When workstream B runs the first V-DSL exercise on a real Loeb book, does the narrowed 2b wiring actually **earn its keep** (produce `notes[]` + structural typing, per-field-gated, correctly) — or does *exercising* it surface a design gap the paper light-gate couldn't? (Hold it open until the exercise runs; residual-(b) — and thus REVIEWED-58 and the block's true floor — hinges on the answer.) + +**State at wrap:** #2 RATIFIED (REVIEWED-60) · #4/#5 RATIFIED (REVIEWED-61) · A3 RATIFIED (REVIEWED-59, 07-16) · #6/#7/#8/PENDING-53 closed · F-5 dispositioned · #1 text-closed, REVIEWED-58 blocked on residual-(b)/Region-4. verify-before-compose hook LIVE. Block-close plan written. Nothing awaits a solo steward decision except: the semver/vehicle call (v2.1.0 landing), the F-5 §VIII FIX vehicle, and the chamber-library commit/push. diff --git a/claude/memory/session-ledger-2026-07-17.md b/claude/memory/session-ledger-2026-07-17.md new file mode 100644 index 0000000..f4f75a0 --- /dev/null +++ b/claude/memory/session-ledger-2026-07-17.md @@ -0,0 +1,32 @@ +--- +name: session-ledger-2026-07-17 +description: "Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses." +metadata: + node_type: memory + type: feedback + originSessionId: 6e4f5e1d-250f-4b77-8478-5050a3a5360c +--- + +# Session Ledger — 2026-07-17 + +## Returns + +## Open horizons +- 2026-07-17T08:52 — Woke into the FINISH-the-constitution-block thread (thread validity CONFIRMED). Pulling: #2 citation amendment (draw CTS boundary FIRST) → #4/#5 (light) → land ratified A3 into spec (steward version call). Held, ranked below: Block-3 corpus (Region 4 Loeb; Making Position-I repairs), the withheld tier survey (Condition-2 release — may become #2's precondition). +- Literal open question held (not to answer yet): does the internal CTS-URN model separate cleanly from the leashed external CTS alignment, or does #2 need the withheld TEI/CTS/Perseus tier survey first? → **ANSWERED 2026-07-17: separates cleanly (from-source, B-confirmed); #2 drafted.** +- 2026-07-17T10:1x — **#2 (citation amendment) DRAFTED** → `chamber-library/docs/citation-amendment-FOR-JURIST-2026-07-17.md` (proposed docket PENDING-60). Content: chamber-minted CTS-URN model (edition-as-identity §IV; work-level default §III; scheme-native passage recovered in-source) + per-scheme disambiguation parser (07-03) + §IX per-scheme coverage attestation (honest-degradation, attest-never-default, threshold-agnostic) + boundary recorded (external leashed, Condition-2) + Decision-1 + additive-only sidecar fields + 6-item shed/inherit reconciled identical to #1. Change-class PROPOSAL; lane freeze+semver; semver = STEWARD CALL (rec MINOR v2.1.0, coordinate w/ A3's landing). Awaiting jurist editor-gate → steward ratification. NEXT block items after #2 gates: #4 B(i) licence, #5 B(ii) PREMIS, + land ratified A3 into spec. + +- 2026-07-17T09:3x — CTS BOUNDARY DRAWN (#2 precondition) → `chamber-library/docs/CTS-boundary-for-citation-amendment-2026-07-17.md` (DRAFT for steward review). Boundary = internal CTS-URN grammar [T1, adopt now] / external CTS alignment [T2, leashed Condition-2]. Clean-separation verdict CANDIDATE-YES (all 6 inherited items internal; 3 falsification checks cleared; B is the independent cross-check). Substrate ground-truth verified: 952 Loeb staged in `_loeb_bilingual/dsl_clean/`, flattened, 0 graduated by the body-conservation gate. v1 model = work-level default (§III-sanctioned) + per-scheme attested anchor enhancement; threshold minimal↔tractable-plus = a MEASUREMENT not a decision (#2 drafted threshold-agnostic). Body tractable, anchors were the hard week. Two steward corrections received clean this session (recuperation-overstatement; files-are-ungraduated) — both the [[feedback-checkable-claim-surfaces-bugs]] / attest-never-default shape. + +## Confidence to recalibrate +- Drift to hold today (#2 is TEI/CTS/citation territory — exactly where these bite): (1) closable-now-is-itself-a-claim-to-check (jurist named it a standing habit 07-16); (2) re-derived-from-training-what-the-corpus-banked — grep the 07-03 disambiguation map + 07-04 rejections BEFORE drafting from memory. Antidote for inherited-marker-read-as-current-state fired at wake (substrate-checked chamber ahead-11 + REVIEWED-53 §2 still-owed). + +## Authorization moves +- 2026-07-17T09:1x — Fable free-window (ends 07-19): steward chose A + B SEPARATELY, run in a parallel tab (`/model claude-fable-5`), while the governed Opus loop clears the corpus block here. Two surface-only prompts handed over (prime-directive preamble + calibrated-confidence + amend-nothing). A = charter+constitution v1-completeness design-review (multi-voice deferral cleanness / engine-corpus scope division; the `cluster-a:206` vs charter-L3 seam) → `studium-engine`/`chamber-library` docs. B = TEI/CTS/DTS/Perseus tier-survey SCOUT (T1-internal / T2-leashed / T3-oos; answers the #2 clean-separation question) → `chamber-library/docs/`. Both deliverables return HERE for the governed-loop + jurist gate; neither amends. Fable=design strength confirmed by steward; D/E backlog explicitly NOT given to Fable (mechanical, not design). Apparatus wall (C) held — already designed-around (CARDINAL PRINCIPLE, PENDING-56). +- 2026-07-17T09:0x — REVIEWED-53 §2 cleanup CLOSED (steward-owed (a), deferred from 07-16). Steward struck the stale `*[Awaiting jurist accept/narrow of this refinement.]*` trailing tag on REVIEWED.md:474; substrate-verified the strike was tag-only (474 substance + 475 ACCEPTED block intact → proposal→acceptance pair coherent). Executor did not touch REVIEWED.md (Constraint #1); confirmed + guided the precise clause only. + +## Sub-agent dialogues +- 2026-07-17T10:3x — STRUCTURAL FIX (steward-directed: "this needs to stop happening… more and more lately"). The compose-before-verify / re-derived-from-training failure recurred on #2 (drafted it as "introduces CTS-URN" when §IV already adopts it). Challenged the framing: adding prose to CLAUDE.md is the wrong layer (it already exists in ≥4 places and keeps failing; the harness itself says "before X" automated behaviors need a HOOK, not memory). Built: (1) `~/.claude/hooks/verify-before-compose.sh` — PreToolUse Write|Edit gate that DENIES writes to chamber-library constitutional artifacts (spec/graduation-spec/*amendment*/*FOR-JURIST*/*JURIST-PACKAGE*) unless they carry a `GROUNDED-IN:` attestation + Grounding section; satisfiable, fail-open, silent on routine writes. Pipe-tested all branches + **proven firing in-session** (blocked a test write). (2) Protocol clause in chamber-library/CLAUDE.md Load-bearing disciplines. (3) Memory: [[feedback-verify-before-compose-hook]]. The action-time enforcement the prose lessons lacked. +- 2026-07-17T10:0x — Fable B (TEI/CTS/DTS/Perseus tier survey) LANDED + AUDITED (Symmetria §5). Calibration EXEMPLARY ([V]/[I] throughout, primary-quote+URL per load-bearing claim, self-flagged relay risk §5, 12-item could-not-confirm). Convenience/scope: ran live endpoint probes, named the one #2-relevant gap (URN char-syntax) as an executor gap, no proposals, all T2 leashed. Verdict = ACT (no re-query). **CONFIRMS the CTS boundary's T1/T2 cut on FIRMER ground** — the seam is the CTS standard's OWN published notation-vs-protocol split (URN spec self-declares service-independence); both flip-conditions verified FALSE (no registry/authority requirement; passage=work's-own-scheme, external-acquisition-EMPTY unreopened). NO hidden T1-requires-T2 coupling. Two derivations reconciled → yesterday's literal question answered from-source. One drafting check carried into #2: URN component char-syntax compat (T1, not a blocker). Boundary note verdict upgraded candidate→CONFIRMED; loop closed. + +## Bypasses diff --git a/claude/memory/skill-harvest-register.md b/claude/memory/skill-harvest-register.md index 540f8ed..17b2e52 100644 --- a/claude/memory/skill-harvest-register.md +++ b/claude/memory/skill-harvest-register.md @@ -495,3 +495,11 @@ The single place proposed skills live so they don't evaporate between sessions. | **Symmetria §3 flag / ladder: "closable-now" is itself a claim to check** | Symmetria §3 flag OR verification-ladder entry | The jurist named it a standing habit: the closable-vs-blocked partition on a work-list must be *reviewed*, not asserted — the named-dependency discipline only protects if the closability judgment is itself checked. Caught this session: I bucketed #2 (citation amendment) as ordinary-closable-now when it was PROPOSAL-class with a CTS-boundary precondition + schema-touching + a data migration. Kin to assert-from-a-partition / census-through-a-pattern, one level up (the *list's own* closable/blocked split). | Symmetria §3 or `reference-verification-ladder` | **PROPOSED** | *Watch-list (not yet a proposal): chamber `CLAUDE.md` may want pointers to the new **candidates register** (`docs/candidate-constitutional-principles-register.md`) + the **constitution-close-block-map** once the block CLOSES — held mid-block (event-based CLAUDE.md-freshness: the class-of-thing changed [a new governance surface], but land the pointer when the block seals, not mid-flight).* + +### Harvest 2026-07-17 (constitution block drafted-whole + verify-before-compose hook) + +| Element | Kind | One-line | Where it lands | Status | +|---|---|---|---|---| +| **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** |