The wrap was complete and committed; the steward then ran /doctor, which found and fixed real breakage. Recorded as an addendum to the same session file rather than a new one — it is the same session, past midnight. Fixed: 8 sub-agent name collisions across 21 files (15 renamed; 0 remain, 48 unique names — confirmed by the harness, which surfaced 15 previously invisible agents immediately). 4 invalid SKILL.md frontmatters, latent rather than live since the harness parses leniently. plane MCP disabled (0 calls in 41 real sessions). permissions.defaultMode set to auto. chamber-library/CLAUDE.md trimmed 54,129 -> 22,530 chars, under the warning threshold, all 42 tool names and all 9 sections preserved. TWO LOOSE ENDS recorded in ADDENDUM 1 and flagged in MEMORY.md, because either would strand the next session: 1. chamber-library/CLAUDE.md is UNCOMMITTED — a 31,861-char deletion, steward-approved at the doctor gate, left for the steward because the doctor protocol forbids the executor committing CLAUDE.md edits. git diff --stat reports 11 lines and badly understates it; the cut sections were single 16k/20k-char lines. 2. ~/.claude/agents is NOT GIT-TRACKED — 51 hand-edited files, 0 tracked, not a symlink into dotfiles. The renames therefore have no version history, and the only backup went to a session-scoped scratchpad that dies on clear. The full rename mapping is written into ADDENDUM 1 and is the only undo that survives. The wider gap is noticed and NOT filed, per the proposed moratorium: a governed surface with no version control, in a system whose premise is that the record must be checkable. Found by accident. Also logged: a thirteenth instrument error. I reported dotfiles as having unpushed commits to "origin" by conflating two repos' status lines — dotfiles has gitea and github and no origin; the origin line was studium-engine's. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vKkg2EJF1rGwdFdBogwqx
13 KiB
name, description
| name | description |
|---|---|
| jurist-package | Author a self-contained jurist package — a repo-blind PROPOSAL the jurist (Claude.app) can design-gate with NO repository access. Use when a governance change (a chamber-library spec amendment/supersession, an engine V0/fidelity-relation bump, any [PROPOSAL]/[ESCALATE] that needs a jurist ruling) must go to the jurist: everything the ruling needs is inlined and grounded in the ratified text quoted verbatim. Also carries the after-ruling Addendum + copy-paste-clean REVIEWED draft. Absorbs the old /spec-amendment (supersession mechanics live in the verification ladder). |
Jurist Package — the self-contained design-gate request
The jurist (Claude.app) has no repository access. A package that assumes it — that references a file the jurist can't open, or asserts what a spec says instead of quoting it — cannot be ruled on. This skill authors the one artifact that can: a PROPOSAL where the ruling's every input is inlined, and every claim about the ratified constitution is grounded in its actual words.
Proven across the 2026-07 governance arc; the two cleanest worked exemplars, read them before authoring:
~/_Dev/chamber-library/docs/one-door-promotion-JURIST-PACKAGE-2026-07-19.md(chamber spec, PROPOSAL → design gate → Addendum → REVIEWED-66)~/_Dev/studium-engine/docs/fidelity-equivalence-2-JURIST-PACKAGE-2026-07-19.md(engine V0-lane, the one D-1 exception routed to the jurist)
When this is the right instrument
- A chamber-library change that alters what a gate accepts (the change-class test: "does this change what any gate accepts?") → reverts to Review → mandatory jurist ruling + steward authorization.
- An engine change to V0 / the verifier contract / a
fidelity_equivalence@Nbump — the one named exception to D-1 (everything else engine-side is steward-direct; do NOT route routine engine work through the jurist). - Any
[PROPOSAL]/[ESCALATE]in~/PENDING.mdthat needs a jurist ruling before it can land.
NOT this instrument: a scoped [FIX] against existing spec (implement directly); routine D-1 engine work; a steward-only question (ask the steward, no package). If unsure whether a change is FIX or PROPOSAL, run the change-class test first — the answer decides whether you need this skill at all.
The self-containment law (non-negotiable)
Everything the jurist needs to rule is in the document. No "see the runbook", no "as §VII establishes" without the quote, no count the jurist would have to trust rather than read. The test: could the jurist rule correctly with only this file open and nothing else? If not, it isn't a package yet.
The GROUNDED-IN gate (author the Grounding first, always)
Chamber-library constitutional writes (the spec, graduation-spec.yaml, any *amendment* / *FOR-JURIST* / *JURIST-PACKAGE* file) are blocked by the verify-before-compose PreToolUse hook unless the payload carries, as its very first line:
<!-- GROUNDED-IN: §<sections> (read <date>) -->
…and the artifact opens with a Grounding section that quotes the ratified sections verbatim. The hook is correct — don't fight it. It exists because the recurring failure is composing a claim about the spec from memory when the spec already ratifies it (drafting "#2 introduces the CTS-URN model" when §IV already adopts it). So:
- Read the sections you build on, in this session, from the substrate — not from memory, not from a prior brief. Note the read date.
- Quote them verbatim in the Grounding section, each with its § label.
- Then write the attestation comment + draft the rest.
Engine-side packages carry no hook, but the discipline is identical — the fidelity exemplar quoted the V0 Ruling verbatim voluntarily. Ground everything, everywhere; the hook only enforces what integrity already requires.
Pre-hook / first-edit note: a constitutional file written before the hook existed carries no attestation, so its first gated edit is denied outright. The hook reads the attestation from the payload, so make the first edit itself add the <!-- GROUNDED-IN … --> line; flag that attestation-add in the report as an edit beyond the ratified set.
The invariant skeleton (roles, not rigid numbers)
Both exemplars carry these roles in order. Part numbers vary with the proposal (one-door ran I–VII, fidelity I–IX); the roles are fixed. Omit a role only when it genuinely doesn't apply, and say so.
<!-- GROUNDED-IN … -->— first line (see above).- Frontmatter —
title·date·type(PROPOSAL + the gate class + the authorization chain: executor drafts → jurist design-gates → steward authorizes) ·audience(the jurist, who has NO repository access — this document is self-contained) ·status(DRAFT for the design gate. Nothing in this document is built, run, or landed — or, engine-lane, governs-until-ruled). ## How to read this— a one-paragraph map naming each Part's job, ending with the one-sentence claim to test (bolded). This is the jurist's entry point; write it last, once the Parts are settled.## Grounding — the ratified sections this builds on (quoted)— verbatim quotes, § by §, with the standing note that this section exists because the recurring failure is composing about the spec from memory; these are the actual words.- Terrain / the question (censused, dated). The state of the world the proposal acts on — every count a dated observation (declared-data discipline), never fixed prose. Where a known instance demonstrates the class, name it (Eichmann's residue count; the orthography census).
- Why the implicit default collapses / the evidence — trace the default operation (or the inherited question) against the quoted ratified clauses. Show the collapse from the text, not from assertion.
- The proposal proper — the requirement stated as the constitution would state it; the mechanism named as declared data (the requirement/mechanism split is the house pattern). Surface any sub-question you are not answering as an explicit, numbered question with your lean.
## Part N — Consequence-trace (each quoted clause → the proposal's end-state)— the discipline that quoting is not tracing. A table:ratified clause | post-proposal end-state | verdict. Then go one level deeper (the costliest misses live here): for each traced clause also ask (a) which way does the inference run in the new state (a comparison that was non-vacuous against the old artifact may be vacuous against a fresh one), and (b) is any class you yourself named actually two kinds with opposite dispositions (the split that stops one disposition laundering the other). Both PENDING-65 corrections the jurist struck were at this depth — the trace checked clauses against end-states but not the inference direction (Q2) or the sub-kinds inside a named class (Q6).- Change-class & landing shape — run the ratified test (does this change what any gate accepts?) → FIX or PROPOSAL; state the landing: constitutional supersession (semver bump, the requirement only) + declared data (the mechanism, revisable without supersession). Confirm no re-verify storm is created, or price it if one is.
- Scope boundary —
what this package does NOT do— runs no code, touches no file, lifts no block it isn't lifting, decides no steward-only question. Explicit, bulleted, honest. - Gate questions for the jurist — Q1…Qn, each a real decision the jurist must make, each with the executor's lean where one exists (and the reasoning for it). The lean is a proposal, not a pre-emption — phrase so the jurist can overrule cleanly.
- Footer — Filed by the executor . Companion entry:
~/PENDING.mdPENDING-N. No code, no corpus mutation, no spec text in the package itself — it is a design-gate request.
Load-bearing disciplines (each earned; violate at the ruling's peril)
- Quote, never paraphrase, the ratified text. A paraphrase is where re-derivation hides. If you can't find the clause to quote, that inability is the finding — maybe the spec doesn't say what you thought.
- Frame as already-ratified → what-#N-adds. The strongest packages show the constitution already holds most of this and the proposal adds only the bounded remainder (fidelity: "@2 completes the typographic-in/orthography-out line the @1 Ruling itself drew, for the classes its enumeration didn't reach"). This is the anti-re-derivation shape made rhetorical: it forces you to locate what's already there before claiming what's new.
- Counts are dated observations.
1,297 canonical .md as of 2026-07-19— never1,297 files. Works ≠ files; censuses drift; say when you looked. - Path-verify the reading list before you cite it. Every file path, every § reference, every companion doc named in the package — confirm it exists and says what you claim, in this session. The jurist can't check; you must.
- Surface, don't resolve, the sub-questions you're unsure of. A numbered gate question with your lean beats a silent decision the jurist never sees. The one-door package's Q5 (minimal-sidecar) was surfaced-not-answered, and the jurist ruled it on a stronger ground than the executor had.
- Preserve the ruled-on text. After the ruling, never silently rewrite the Parts the jurist read. Layer the disposition on top (the Addendum pattern) so the audit trail — what was proposed, what was ruled — stays intact.
- Trace a ruled finding's inference, not just its words. When you transcribe a jurist's ruled finding — into a package claim, an Addendum correction, or the constitutional/amendment prose that lands it — a faithful transcription of the words can invert the inference. Quoting the finding is not carrying it. For each ruled finding you restate, ask: which way does the inference run in this sentence, and does it produce the reading the ruling was written to prevent? Earned twice in one session, both jurist-caught: (a) a lean that faithfully read a section's prohibitions but missed its silence as the actual gap (§V forbids the acts, but is silent on who-must-demonstrate-compliance — that silence was the point); (b) a draft that wrote "X is not vacuous" — the identical misreading the ruling it was landing existed to stop, inside that very subsection. Kin to the consequence-trace above and to Symmetria's
the-say-do-seam, at the transcription layer.
After the ruling — the Addendum + the REVIEWED draft
When the jurist's ruling returns (steward-relayed), file it verbatim as its own *-JURIST-RULING-<date>.md, then append to the package:
# Addendum — design-gate ruling received and applied (<date>)
- Preserve Parts I–N as the text the jurist ruled on — state this explicitly; the Addendum layers disposition, it does not rewrite history.
## The ruling in force— what was confirmed.## Corrections that supersede the drafted design— each correction, numbered, as the design now stands (this is what the future amendment draft is written to).## What proceeds now— the ordered next steps the ruling authorizes.## REVIEWED draft (steward copy-paste; number per the register)— emit inside a fenced```markdownblock so no display styling is interpreted: plain## REVIEWED-N — titleheader, standard field lines, no**bold**on the header, no>blockquote framing. The steward's paste is mechanical; the block must be byte-ready (a bolded/blockquoted header once landed in~/REVIEWED.mdas an unrecognized non-header and had to be stripped by hand). Append PENDING/REVIEWED entries at the real dotfiles path (~/dotfiles/…), never through the~/PENDING.mdsymlink — Edit/Write refuse to write through a symlink.
Supersession mechanics (absorbed from /spec-amendment → the verification ladder)
This skill produces the package and the amendment draft; the mechanical supersession procedure — freeze the prior version byte-identical (-vX.Y.Z.md), semver by change-class, prove the bounded diff (N added + title line, all else the prior version verbatim), tag commits with the REVIEWED number — lives in reference-verification-ladder.md (the "spec supersession = frozen-prior + bounded-diff proof" instrument). Reach for the ladder when you land the ratified text; don't re-derive the steps here.
What this skill does NOT do
- Does not authorize the change — the jurist rules, the steward authorizes; the package is a request.
- Does not run code, convert a corpus, or edit a spec's normative text (that comes after ratification, drafted to the Addendum's corrected design).
- Does not replace the change-class judgment — if the change is a FIX, you don't need a package at all.
- Does not decide steward-only questions (edition rulings, pacing) — name them as owed, route them to the steward.