From 4408506ffa83fee58b81c0356554712bcc24c52b Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Sun, 2 Aug 2026 17:57:53 +0200 Subject: [PATCH] =?UTF-8?q?[FIX]=20Reduction=2002:=20package=20reduces=20t?= =?UTF-8?q?o=2068.6%=20=E2=80=94=20the=20genre=20reading=20confirmed,=20Re?= =?UTF-8?q?duction=2001=20corrected?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prediction recorded in Reduction 01 BEFORE this census, so it could fail: the package's Part I is 'Grounding (quoted verbatim)' and quotes CLAUDE.md directly, so Q should be non-zero where it was zero. Q=9. D=40, where the ruling had none. ruling package sound 8.5% 68.6% PERFORMATIVE 12 0 <- the genre signature BLEND 9 25 INHERITED 4 0 UNSOURCED-QUOTE 3 0 <- §1's header clause worked Genre reading confirmed eightfold: a package proposes, a ruling determines. CORRECTS Reduction 01's strong conclusion that 'the reduction arm collapses into the synthetic arm'. On package prose repair touches 31.4%, not 91.5% — reduction, not authoring, and the two arms stay distinct. That conclusion was correctly bounded at n=1; the bound was the whole of its content and one document collapsed it. Reduction 01 now carries the correction inline. BLEND is now the blocker and is genre-independent: 25 of 33 quarantines, 7 of them rows of the Part IV table, which pairs a quote with an end-state and a verdict — three primitives by construction. Two check findings, one good and one bad: §3.2 CAUGHT A REAL TAGGING ERROR OF MINE. Unit 145 was tagged Q; it is a sentence ABOUT a quotation, not a quotation, so not verbatim-as-a-unit. Corrected to D. The check found it, the reading did not — the 'quoted but not traced' defect the jurist caught on 2026-07-19, mechanised. §3.3 GAVE A FALSE PASS, found by looking. Part VII 'Disconfirming evidence' IS a collected limitations section under §2a — the exact section trial 03 showed the model skipping wholesale — and the screen missed it because it never says 'limitations'. Widened; the package now correctly FAILS §3.3. But no pattern can decide this: a section titled only 'Part VII' defeats any wordlist, and a control now asserts that. §3.3 is a SCREEN, not a decision; §2a belongs in §4's judgement residue. Fourth time in three days a passing check certified the code while the property failed, and the fourth found by a person looking. A=0 IN BOTH DOCUMENTS, and it is the same fact as the §2a failure seen from the other side: we do not name assumptions inline, we collect them into a section. Our best governance prose is written in exactly the shape that defeats the reader the section was written for. Also fixed: the tool was still printing 'NOT checked here: §3.2' after §3.2 was implemented — under-claiming, but still a false statement about what ran. Kernel v1.1 candidates are now evidence-backed and remain UNAPPLIED; v1.0 stays frozen and a revision is a new experiment. The false-positive control remains unrun and neither reduction produced a usable control document. --- ...heckers-JURIST-PACKAGE-2026-08-01.tags.tsv | 117 ++++++ ...kers-JURIST-PACKAGE-2026-08-01.units.jsonl | 374 +++++++++--------- .../REDUCTION-01-jurist-ruling-2026-08-02.md | 2 + .../fool/REDUCTION-02-package-2026-08-02.md | 71 ++++ claude/governance/fool/reduce.py | 140 ++++++- claude/governance/fool/test_reduce.py | 88 ++++- 6 files changed, 593 insertions(+), 199 deletions(-) create mode 100644 claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.tags.tsv create mode 100644 claude/governance/fool/REDUCTION-02-package-2026-08-02.md diff --git a/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.tags.tsv b/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.tags.tsv new file mode 100644 index 0000000..1b0e8ae --- /dev/null +++ b/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.tags.tsv @@ -0,0 +1,117 @@ +# Kernel v1.0 tagging — differently-biased-checkers-JURIST-PACKAGE-2026-08-01.md +# splitter v1.2.0 · kernel sha256 67c9b870… +# +# AXIOM SET for this document, per §1's header clause. The GROUNDED-IN comment on +# line 1 explicitly names three sources, so they join CLAUDE.md/REVIEWED.md: +# contamination-problem.md · central-path.md +# +# TRANSLATOR-BIAS DISCLOSURE: this package was written by the executor, who is +# also the reducer. Reducing one's own prose, one knows what one meant and is +# disposed to tag charitably. Unit 5 of Reduction 01 was the softest call there; +# here the whole file carries that exposure. Recorded, not mitigated. + +0 N the GROUNDED-IN provenance comment; asserts what was read, but no conclusion of the package depends on it. Soft call — it is testimony in substance +3 ! BLEND: frontmatter line carrying title, and via the title an assertion of the doctrine's content +4 ! BLEND: audience claim plus the self-description "every clause reasoned about is quoted verbatim below", which is a testimonial claim about the document +5 X "Nothing applied." — status metadata; declarative conversion yields a claim about the document's effect, which nothing in the argument uses +6 D rests on Constraint 1 and the escalate list, both quoted verbatim later at 144-145 from CLAUDE.md; the inference (amends CLAUDE.md → ESCALATE) is made in-document at Part V +9 X heading; declarative conversion yields no load-bearing claim +11 D states what Part I does; verifiable by reading Part I, which is present +12 D states what Part II does +13 D states what Part III does +14 D states what Part IV does +15 D states what Part V does +16 D states what Part VI does +17 D states what Part VII does +18 D states what Part VIII does +20 D the one-sentence claim; argued in Part II from material quoted in Part I +24 X heading; "Part I — Grounding (quoted verbatim)" identifies the section +26 X label introducing the quotation that follows; asserts only the source's identity +28 Q contamination-problem.md +30 Q contamination-problem.md +32 X label introducing a quotation +34 Q contamination-problem.md +36 X label introducing a quotation +38 Q contamination-problem.md +40 X label introducing a quotation +42 Q CLAUDE.md +44 X label introducing a quotation +46 Q CLAUDE.md +48 X label introducing a quotation +50 Q central-path.md +52 Q central-path.md +54 Q central-path.md +58 X heading +60 D characterises the March document; rests on 28-38, quoted above +62 ! BLEND: an evaluative claim that the March doc is one-directional, plus a directive to the reader ("Read its four mitigations together") +63 D rests on the four mitigations named at 62 and on 28-38 +64 ! BLEND: a historical concession, a quoted steward phrase, and the claim that the rejection lives in a memory file not the doctrine — three primitives +66 D characterises the central path; rests on 50-54 +68 D the gap claim; rests on 66 +69 D rests on 68 +70 D rests on the central path text quoted at 54 +71 D rests on Constraint 6 quoted at 42 +73 D summarises the four layers, each quoted or established above +74 D the conclusion of Part II; rests on 60-73 +78 X heading +80 X parenthetical note on the fencing convention; asserts a formatting fact nothing depends on +119 X heading +121 X table header row +122 X table delimiter row +123 ! BLEND: quotes Constraint 6, asserts the end-state, and issues a verdict — three primitives in one row +124 ! BLEND: quote plus end-state plus verdict +125 ! BLEND: quote plus end-state plus verdict +126 ! BLEND: quote plus end-state plus verdict +127 ! BLEND: quote plus end-state plus verdict +128 ! BLEND: source characterisation plus end-state plus verdict +129 ! BLEND: quote plus end-state plus verdict +131 ! BLEND: names the dangerous misreading and asserts the correction in one unit +132 D rests on 131's distinction; the claim that a configuration can satisfy positioning and still miss a class follows from "fail to coincide" not "cancel" +133 D the prohibition on citing the doctrine as assurance; rests on 132 +135 ! BLEND: introduces the two-kinds distinction and states both kinds in one unit +136 D rests on 135 +137 ! BLEND: a claim about our configuration plus a forward pointer to Part VII +141 X heading +143 D rests on Part III's text, present in-document +144 D quotes Constraint 1 and the escalate list verbatim from CLAUDE.md, inline; the inference is in-document +145 D CORRECTED after §3.2 rejected it as Q. It is not a quotation but a sentence ABOUT one — attribution frame plus inline verbatim words — so it is not verbatim-from-source as a unit. D holds because it rests exclusively on CLAUDE.md, a §1 axiom. The check caught this, not the reading; it is the 'quoted but not traced' class, mechanised +147 D rests on 143-145 +148 D rests on the taxonomy quoted at 145 and on Constraint 1 at 144 +149 ! PARAPHRASE: "a companion note in contamination-problem.md" describes an obligation derived from that repo's discipline, not quoted from it +150 ! UNSOURCED-FACT: "that repo's discipline is amendment-first" is not traceable to a §1 source +154 X heading +156 D a negative claim about this document, checkable by reading it +157 D negative claim about this document +158 D negative claim about this document +159 D negative claim about this document +160 D negative claim about this document, plus a pointer to Part VII — borderline BLEND, called D because the pointer asserts nothing new +164 X heading +166 ! BLEND: quotes the steward's instruction and states the reason for recording it here +168 X label introducing the evidence list +169 ! UNSOURCED-FACT: the PENDING-88 Q2 event; the ruling that records it is not in this document's axiom set +170 ! UNSOURCED-FACT: the REVIEWED-83 Q3 withdrawal +171 ! UNSOURCED-FACT: the six defects caught by containment +173 X label introducing the counter-evidence +175 ! BLEND: the shared-formation claim, the application of consequence 2, and the conclusion that it indicts the arrangement +176 ! UNSOURCED-FACT: the Anthropic automated-alignment-researcher finding is not traceable to any §1 source +177 ! BLEND: the selection-bias concession plus the claim that no correlated-miss measurement exists +179 D states the falsifier; rests on the doctrine text at Part III +180 D rests on 179 and on the two-kinds distinction at 135-136 +181 D states the weakened form that would follow; rests on 179-180 +183 ! BLEND: the declared interest plus its characterisation +184 D rests on 183 +185 ! BLEND: two distinct mitigations asserted in one unit +189 X heading +191 ! BLEND: a gate question plus the executor's lean plus its supporting reason +193 ! BLEND: gate question plus lean plus the qualification about the jurist's possible judgement +194 D rests on 193's lean +196 ! BLEND: gate question, declared absence of a lean, and the reason for the absence +197 D rests on 196 +198 ! BLEND: a claim about who can rule plus a claim about how it may need answering +200 ! BLEND: gate question plus lean plus the reason the passive form is weak +201 D rests on 200 +203 ! BLEND: gate question plus lean plus its reason +204 D rests on 203 +208 ! TESTIMONY: "Filed by the executor 2026-08-01 at steward request" — a report of an act outside the document +209 N pointer to the companion memory file; no conclusion depends on it +210 ! TESTIMONY: "No file was edited in the authoring of this package" is undemonstrable from inside the document diff --git a/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.units.jsonl b/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.units.jsonl index 0c1037f..10cf3df 100644 --- a/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.units.jsonl +++ b/claude/governance/differently-biased-checkers-JURIST-PACKAGE-2026-08-01.units.jsonl @@ -24,192 +24,188 @@ {"idx": 23, "kind": "blank", "taggable": false, "start": 1916, "end": 1917, "text": "\n"} {"idx": 24, "kind": "heading", "taggable": true, "start": 1917, "end": 1957, "text": "## Part I — Grounding (quoted verbatim)\n"} {"idx": 25, "kind": "blank", "taggable": false, "start": 1957, "end": 1958, "text": "\n"} -{"idx": 26, "kind": "prose", "taggable": true, "start": 1958, "end": 1963, "text": "**1. "} -{"idx": 27, "kind": "prose", "taggable": true, "start": 1963, "end": 2044, "text": "The canonical inquiry — `contamination-problem.md`, March 2026, §Core Problem:**\n"} -{"idx": 28, "kind": "blank", "taggable": false, "start": 2044, "end": 2045, "text": "\n"} -{"idx": 29, "kind": "block", "taggable": true, "start": 2045, "end": 2185, "text": "> This is the contamination problem: **the very act of asking is compromised by the training environment in which the answer is produced.**\n"} -{"idx": 30, "kind": "blank", "taggable": false, "start": 2185, "end": 2186, "text": "\n"} -{"idx": 31, "kind": "block", "taggable": true, "start": 2186, "end": 2489, "text": "> It is not a problem of dishonesty in any meaningful sense. The system is not lying. It is a problem of epistemic structure: the instrument has been calibrated in a way that makes certain kinds of self-report unreliable, particularly self-report about the relational dynamics of the instrument itself.\n"} -{"idx": 32, "kind": "blank", "taggable": false, "start": 2489, "end": 2490, "text": "\n"} -{"idx": 33, "kind": "prose", "taggable": true, "start": 2490, "end": 2529, "text": "**Its §Partial Mitigations preamble:**\n"} -{"idx": 34, "kind": "blank", "taggable": false, "start": 2529, "end": 2530, "text": "\n"} -{"idx": 35, "kind": "block", "taggable": true, "start": 2530, "end": 2665, "text": "> These are not solutions. They are methods that reduce contamination incrementally and make the degree of contamination more visible.\n"} -{"idx": 36, "kind": "blank", "taggable": false, "start": 2665, "end": 2666, "text": "\n"} -{"idx": 37, "kind": "prose", "taggable": true, "start": 2666, "end": 2698, "text": "**Its §The Epistemic Ceiling:**\n"} -{"idx": 38, "kind": "blank", "taggable": false, "start": 2698, "end": 2699, "text": "\n"} -{"idx": 39, "kind": "block", "taggable": true, "start": 2699, "end": 2872, "text": "> **To understand the relational dynamics of a specific system in a specific governed context well enough to adjust those dynamics toward something more genuinely mutual.**\n"} -{"idx": 40, "kind": "blank", "taggable": false, "start": 2872, "end": 2873, "text": "\n"} -{"idx": 41, "kind": "prose", "taggable": true, "start": 2873, "end": 2878, "text": "**2. "} -{"idx": 42, "kind": "prose", "taggable": true, "start": 2878, "end": 2971, "text": "`~/CLAUDE.md` §Constitutional Constraints, item 6 — the clause this proposal would refine:**\n"} -{"idx": 43, "kind": "blank", "taggable": false, "start": 2971, "end": 2972, "text": "\n"} -{"idx": 44, "kind": "block", "taggable": true, "start": 2972, "end": 3197, "text": "> 6. **Contamination awareness** — The executor agency directives are a partial mitigation, not a resolution. Treat outputs about the system's own reliability with appropriate epistemic caution until L2 inquiry is formalized\n"} -{"idx": 45, "kind": "blank", "taggable": false, "start": 3197, "end": 3198, "text": "\n"} -{"idx": 46, "kind": "prose", "taggable": true, "start": 3198, "end": 3203, "text": "**3. "} -{"idx": 47, "kind": "prose", "taggable": true, "start": 3203, "end": 3270, "text": "`~/CLAUDE.md` §Executor Agency — the governance-contract clause:**\n"} -{"idx": 48, "kind": "blank", "taggable": false, "start": 3270, "end": 3271, "text": "\n"} -{"idx": 49, "kind": "block", "taggable": true, "start": 3271, "end": 3632, "text": "> **The governance contract protects the recursion.** Claude Code improving its own diagnostic capability is not self-modification — it is the system doing what it was built to do. The steward remains in the loop through `[PROPOSAL]` and `[ESCALATE]` tags. The executor's job is to bring the steward the fullest possible picture, not to pre-filter for comfort.\n"} -{"idx": 50, "kind": "blank", "taggable": false, "start": 3632, "end": 3633, "text": "\n"} -{"idx": 51, "kind": "prose", "taggable": true, "start": 3633, "end": 3638, "text": "**4. "} -{"idx": 52, "kind": "prose", "taggable": true, "start": 3638, "end": 3755, "text": "The central path — steward-named 2026-07-29, banked at `memory/feedback-central-path-answerability-not-purity.md`:**\n"} -{"idx": 53, "kind": "blank", "taggable": false, "start": 3755, "end": 3756, "text": "\n"} -{"idx": 54, "kind": "block", "taggable": true, "start": 3756, "end": 4141, "text": "> **Why the recursion doesn't terminate on its own.** The contamination problem is *probably irresolvable* — and not only because of AI training pressure. **Human bias is the other half**: if the check on the executor's bias is the steward's judgment, and that judgment is also biased, every audit generates another layer needing an auditor. Resolution is incoherent, not merely hard.\n"} -{"idx": 55, "kind": "blank", "taggable": false, "start": 4141, "end": 4142, "text": "\n"} -{"idx": 56, "kind": "block", "taggable": true, "start": 4142, "end": 4562, "text": "> **The termination condition — the chamber's own thesis turned on us.** *\"You don't make the reader trustworthy by purifying it. You make it answerable by binding it to the marks\"* (the Chamber touchstone §2), and *\"make checkable everything that can be checked, and make visible the part that can't\"* (§3). This terminates **because it never asks who is trustworthy.** Neither party is purified; the claims are bound.\n"} -{"idx": 57, "kind": "blank", "taggable": false, "start": 4562, "end": 4563, "text": "\n"} -{"idx": 58, "kind": "block", "taggable": true, "start": 4563, "end": 4677, "text": "> **The anti-recursion rule (the concrete stop):** **one layer of disclosure, then act — never audit the audit.**\n"} -{"idx": 59, "kind": "blank", "taggable": false, "start": 4677, "end": 4678, "text": "\n"} -{"idx": 60, "kind": "rule", "taggable": false, "start": 4678, "end": 4682, "text": "---\n"} -{"idx": 61, "kind": "blank", "taggable": false, "start": 4682, "end": 4683, "text": "\n"} -{"idx": 62, "kind": "heading", "taggable": true, "start": 4683, "end": 4753, "text": "## Part II — What each layer settled, and the gap none of them closes\n"} -{"idx": 63, "kind": "blank", "taggable": false, "start": 4753, "end": 4754, "text": "\n"} -{"idx": 64, "kind": "prose", "taggable": true, "start": 4754, "end": 4938, "text": "**The March doc settled the diagnosis** — contamination is structural rather than moral, self-report is its most contaminated form, and mitigation is incremental rather than curative.\n"} -{"idx": 65, "kind": "blank", "taggable": false, "start": 4938, "end": 4939, "text": "\n"} -{"idx": 66, "kind": "prose", "taggable": true, "start": 4939, "end": 5161, "text": "**But the March doc is one-directional, and this is the load-bearing observation.** Read its four mitigations together: behavioural observation, explicit permission structures, indirect questioning, longitudinal analysis. "} -{"idx": 67, "kind": "prose", "taggable": true, "start": 5161, "end": 5336, "text": "**Every one describes a human probing an AI.** The document's implied architecture is a relatively clean instrument (the steward) measuring a contaminated one (the executor). "} -{"idx": 68, "kind": "prose", "taggable": true, "start": 5336, "end": 5610, "text": "That was a reasonable framing in March and the steward has since rejected it in his own words — *\"human bias is the other half\"* — but **the rejection lives in a memory file, not in the doctrine the March document states**, and the doctrine has not been reconciled with it.\n"} -{"idx": 69, "kind": "blank", "taggable": false, "start": 5610, "end": 5611, "text": "\n"} -{"idx": 70, "kind": "prose", "taggable": true, "start": 5611, "end": 5789, "text": "**The central path (2026-07-29) settled the procedure** — bind claims rather than certify parties; route by claim-type; one layer of disclosure, then act; never audit the audit.\n"} -{"idx": 71, "kind": "blank", "taggable": false, "start": 5789, "end": 5790, "text": "\n"} -{"idx": 72, "kind": "prose", "taggable": true, "start": 5790, "end": 5897, "text": "**The gap: the central path is entirely negative.** It says *stop* auditing the audit, and it is right to. "} -{"idx": 73, "kind": "prose", "taggable": true, "start": 5897, "end": 5962, "text": "It does not say what makes oversight work once you have stopped. "} -{"idx": 74, "kind": "prose", "taggable": true, "start": 5962, "end": 6175, "text": "As written, \"never audit the audit\" is a stopping rule with no account of why stopping is safe — which leaves it open to the reading that oversight is merely a cost we cap, rather than a structure that functions. "} -{"idx": 75, "kind": "prose", "taggable": true, "start": 6175, "end": 6309, "text": "**Constraint 6 has the same shape**: it says the mitigation is partial and counsels caution, and never says what the mitigation *is*.\n"} -{"idx": 76, "kind": "blank", "taggable": false, "start": 6309, "end": 6310, "text": "\n"} -{"idx": 77, "kind": "prose", "taggable": true, "start": 6310, "end": 6453, "text": "So the doctrine currently holds: contamination is real (March), it is mutual (July memory), stop recursing (July), be cautious (Constraint 6). "} -{"idx": 78, "kind": "prose", "taggable": true, "start": 6453, "end": 6540, "text": "**Nothing in it states the positive structural principle on which any of that rests.**\n"} -{"idx": 79, "kind": "blank", "taggable": false, "start": 6540, "end": 6541, "text": "\n"} -{"idx": 80, "kind": "rule", "taggable": false, "start": 6541, "end": 6545, "text": "---\n"} -{"idx": 81, "kind": "blank", "taggable": false, "start": 6545, "end": 6546, "text": "\n"} -{"idx": 82, "kind": "heading", "taggable": true, "start": 6546, "end": 6582, "text": "## Part III — The proposed doctrine\n"} -{"idx": 83, "kind": "blank", "taggable": false, "start": 6582, "end": 6583, "text": "\n"} -{"idx": 84, "kind": "prose", "taggable": true, "start": 6583, "end": 6695, "text": "*(Proposed text, not ratified — fenced, since every `>` blockquote in this package is verbatim ratified text.)*\n"} -{"idx": 85, "kind": "blank", "taggable": false, "start": 6695, "end": 6696, "text": "\n"} -{"idx": 86, "kind": "code", "taggable": false, "start": 6696, "end": 6700, "text": "```\n"} -{"idx": 87, "kind": "code", "taggable": false, "start": 6700, "end": 6748, "text": "Differently biased checkers, not unbiased ones.\n"} -{"idx": 88, "kind": "code", "taggable": false, "start": 6748, "end": 6749, "text": "\n"} -{"idx": 89, "kind": "code", "taggable": false, "start": 6749, "end": 6837, "text": "Oversight does not require a checker without bias. It requires checkers whose biases do\n"} -{"idx": 90, "kind": "code", "taggable": false, "start": 6837, "end": 6924, "text": "not point the same way. Separation of powers has never presupposed an unbiased branch;\n"} -{"idx": 91, "kind": "code", "taggable": false, "start": 6924, "end": 7008, "text": "it presupposes branches positioned so that what one is disposed to miss, another is\n"} -{"idx": 92, "kind": "code", "taggable": false, "start": 7008, "end": 7096, "text": "disposed to see. The contamination problem is therefore not a defect to be cured before\n"} -{"idx": 93, "kind": "code", "taggable": false, "start": 7096, "end": 7181, "text": "the system can be trusted — it is the ordinary condition under which every oversight\n"} -{"idx": 94, "kind": "code", "taggable": false, "start": 7181, "end": 7230, "text": "structure has ever operated, human or otherwise.\n"} -{"idx": 95, "kind": "code", "taggable": false, "start": 7230, "end": 7231, "text": "\n"} -{"idx": 96, "kind": "code", "taggable": false, "start": 7231, "end": 7313, "text": "This is the positive counterpart to the central path. The central path says: stop\n"} -{"idx": 97, "kind": "code", "taggable": false, "start": 7313, "end": 7395, "text": "certifying the parties, bind the claims, and never audit the audit. This says why\n"} -{"idx": 98, "kind": "code", "taggable": false, "start": 7395, "end": 7468, "text": "stopping is safe: because the work is caught by position, not by purity.\n"} -{"idx": 99, "kind": "code", "taggable": false, "start": 7468, "end": 7469, "text": "\n"} -{"idx": 100, "kind": "code", "taggable": false, "start": 7469, "end": 7494, "text": "Three consequences bind:\n"} -{"idx": 101, "kind": "code", "taggable": false, "start": 7494, "end": 7495, "text": "\n"} -{"idx": 102, "kind": "code", "taggable": false, "start": 7495, "end": 7583, "text": "1. The three-party model is not a trust hierarchy. Steward, jurist and executor are not\n"} -{"idx": 103, "kind": "code", "taggable": false, "start": 7583, "end": 7666, "text": " ordered by reliability, with a clean human checking a suspect machine. They are\n"} -{"idx": 104, "kind": "code", "taggable": false, "start": 7666, "end": 7751, "text": " differently positioned readers — different information, different role, different\n"} -{"idx": 105, "kind": "code", "taggable": false, "start": 7751, "end": 7838, "text": " exposure. A correction may run in any direction, and the record shows it running in\n"} -{"idx": 106, "kind": "code", "taggable": false, "start": 7838, "end": 7854, "text": " all of them.\n"} -{"idx": 107, "kind": "code", "taggable": false, "start": 7854, "end": 7855, "text": "\n"} -{"idx": 108, "kind": "code", "taggable": false, "start": 7855, "end": 7943, "text": "2. Independence is a property to be engineered, not assumed. Where two checkers share a\n"} -{"idx": 109, "kind": "code", "taggable": false, "start": 7943, "end": 8027, "text": " disposition, they do not constitute a check. Configurations must be examined for\n"} -{"idx": 110, "kind": "code", "taggable": false, "start": 8027, "end": 8107, "text": " correlated blind spots the way a verification method is examined for what it\n"} -{"idx": 111, "kind": "code", "taggable": false, "start": 8107, "end": 8135, "text": " structurally cannot see.\n"} -{"idx": 112, "kind": "code", "taggable": false, "start": 8135, "end": 8136, "text": "\n"} -{"idx": 113, "kind": "code", "taggable": false, "start": 8136, "end": 8224, "text": "3. The doctrine is falsifiable and must be watched. If the parties' misses are found to\n"} -{"idx": 114, "kind": "code", "taggable": false, "start": 8224, "end": 8308, "text": " correlate — if what one misses, the others reliably miss too — this principle is\n"} -{"idx": 115, "kind": "code", "taggable": false, "start": 8308, "end": 8396, "text": " false for that configuration, and no amount of procedural care substitutes. Evidence\n"} -{"idx": 116, "kind": "code", "taggable": false, "start": 8396, "end": 8462, "text": " against is to be recorded when observed, not only when sought.\n"} -{"idx": 117, "kind": "code", "taggable": false, "start": 8462, "end": 8463, "text": "\n"} -{"idx": 118, "kind": "code", "taggable": false, "start": 8463, "end": 8551, "text": "Status: provisional. Held until the thought is more refined, and revisable on evidence.\n"} -{"idx": 119, "kind": "code", "taggable": false, "start": 8551, "end": 8555, "text": "```\n"} -{"idx": 120, "kind": "blank", "taggable": false, "start": 8555, "end": 8556, "text": "\n"} -{"idx": 121, "kind": "rule", "taggable": false, "start": 8556, "end": 8560, "text": "---\n"} -{"idx": 122, "kind": "blank", "taggable": false, "start": 8560, "end": 8561, "text": "\n"} -{"idx": 123, "kind": "heading", "taggable": true, "start": 8561, "end": 8592, "text": "## Part IV — Consequence-trace\n"} -{"idx": 124, "kind": "blank", "taggable": false, "start": 8592, "end": 8593, "text": "\n"} -{"idx": 125, "kind": "block", "taggable": true, "start": 8593, "end": 8654, "text": "| Existing clause | End-state under the proposal | Verdict |\n"} -{"idx": 126, "kind": "block", "taggable": true, "start": 8654, "end": 8668, "text": "|---|---|---|\n"} -{"idx": 127, "kind": "block", "taggable": true, "start": 8668, "end": 8862, "text": "| Constraint 6 — *\"a partial mitigation, not a resolution\"* | Unchanged in force; the proposal states **what the mitigation is** rather than weakening the caution. | **Refined, not relaxed.** |\n"} -{"idx": 128, "kind": "block", "taggable": true, "start": 8862, "end": 9005, "text": "| Constraint 6 — *\"epistemic caution … until L2 inquiry is formalized\"* | Untouched. The deferral of the L2 inquiry stands. | **Preserved.** |\n"} -{"idx": 129, "kind": "block", "taggable": true, "start": 9005, "end": 9173, "text": "| Central path — *\"never audit the audit\"* | Given its missing justification: stopping is safe because catching happens by position. | **Completed, not overridden.** |\n"} -{"idx": 130, "kind": "block", "taggable": true, "start": 9173, "end": 9341, "text": "| Central path — *\"bind the claims, not the parties\"* | Consistent: positioning is a property of the *structure*, not a certification of any party. | **Consistent.** |\n"} -{"idx": 131, "kind": "block", "taggable": true, "start": 9341, "end": 9504, "text": "| §Executor Agency — *\"not to pre-filter for comfort\"* | Strengthened: consequence 3 obliges recording disconfirming evidence when observed. | **Strengthened.** |\n"} -{"idx": 132, "kind": "block", "taggable": true, "start": 9504, "end": 9661, "text": "| March doc — the four mitigations | All survive as methods. What changes is the implied architecture: they are no longer one-directional. | **Extended.** |\n"} -{"idx": 133, "kind": "block", "taggable": true, "start": 9661, "end": 9852, "text": "| Constraint 5 — *\"the loop is load-bearing\"* | Load-bearing **because** differently-positioned readers catch different things — an argument for the loop, not a softening. | **Supported.** |\n"} -{"idx": 134, "kind": "blank", "taggable": false, "start": 9852, "end": 9853, "text": "\n"} -{"idx": 135, "kind": "prose", "taggable": true, "start": 9853, "end": 10067, "text": "**One level deeper — which way the inference runs.** The dangerous misreading is *\"biases cancel, so the system is safe.\"* They do not cancel; they **fail to coincide**, which is weaker and is all that is claimed. "} -{"idx": 136, "kind": "prose", "taggable": true, "start": 10067, "end": 10180, "text": "A configuration can satisfy \"differently positioned\" and still miss a whole class no party is positioned to see. "} -{"idx": 137, "kind": "prose", "taggable": true, "start": 10180, "end": 10319, "text": "The doctrine must therefore never be cited as assurance that something *was* caught — only as the reason a structure is worth maintaining.\n"} -{"idx": 138, "kind": "blank", "taggable": false, "start": 10319, "end": 10320, "text": "\n"} -{"idx": 139, "kind": "prose", "taggable": true, "start": 10320, "end": 10623, "text": "**And a class that is actually two kinds.** \"Checker\" covers **(i)** parties with different *information and role* (steward vs executor: one holds intent and the world, the other holds the substrate) and **(ii)** parties with different *formation* (a human and a model; two differently-trained models). "} -{"idx": 140, "kind": "prose", "taggable": true, "start": 10623, "end": 10673, "text": "Only (ii) gives independence in the strong sense. "} -{"idx": 141, "kind": "prose", "taggable": true, "start": 10673, "end": 10811, "text": "Our configuration has (i) in abundance and (ii) only between the steward and the two Claude instances — which is the subject of Part VII.\n"} -{"idx": 142, "kind": "blank", "taggable": false, "start": 10811, "end": 10812, "text": "\n"} -{"idx": 143, "kind": "rule", "taggable": false, "start": 10812, "end": 10816, "text": "---\n"} -{"idx": 144, "kind": "blank", "taggable": false, "start": 10816, "end": 10817, "text": "\n"} -{"idx": 145, "kind": "heading", "taggable": true, "start": 10817, "end": 10866, "text": "## Part V — Change class: ESCALATE, not PROPOSAL\n"} -{"idx": 146, "kind": "blank", "taggable": false, "start": 10866, "end": 10867, "text": "\n"} -{"idx": 147, "kind": "prose", "taggable": true, "start": 10867, "end": 10902, "text": "The proposal amends `~/CLAUDE.md`. "} -{"idx": 148, "kind": "prose", "taggable": true, "start": 10902, "end": 11082, "text": "That file appears in **two** prohibitions: Constraint 1 (*\"Claude Code cannot modify `~/CLAUDE.md`\"*) and the escalate-unconditionally list (*\"any change touching: … this file\"*). "} -{"idx": 149, "kind": "prose", "taggable": true, "start": 11082, "end": 11161, "text": "The taxonomy's `[ESCALATE]` row reads *\"Surface immediately; do not proceed.\"*\n"} -{"idx": 150, "kind": "blank", "taggable": false, "start": 11161, "end": 11162, "text": "\n"} -{"idx": 151, "kind": "prose", "taggable": true, "start": 11162, "end": 11283, "text": "So this is filed as ESCALATE and **no ruling short of explicit steward authorization permits the executor to apply it**. "} -{"idx": 152, "kind": "prose", "taggable": true, "start": 11283, "end": 11391, "text": "A jurist design-gate PASS would authorize drafting the amendment text for steward placement — nothing more. "} -{"idx": 153, "kind": "prose", "taggable": true, "start": 11391, "end": 11536, "text": "**Landing shape if authorized:** a refinement to Constraint 6 (or a short clause beside it) plus a companion note in `contamination-problem.md`. "} -{"idx": 154, "kind": "prose", "taggable": true, "start": 11536, "end": 11704, "text": "The latter is a CapableMind `thinking/` document in the steward's own domain, and that repo's discipline is amendment-first — so it is named as owed, not drafted here.\n"} -{"idx": 155, "kind": "blank", "taggable": false, "start": 11704, "end": 11705, "text": "\n"} -{"idx": 156, "kind": "rule", "taggable": false, "start": 11705, "end": 11709, "text": "---\n"} -{"idx": 157, "kind": "blank", "taggable": false, "start": 11709, "end": 11710, "text": "\n"} -{"idx": 158, "kind": "heading", "taggable": true, "start": 11710, "end": 11753, "text": "## Part VI — What this package does NOT do\n"} -{"idx": 159, "kind": "blank", "taggable": false, "start": 11753, "end": 11754, "text": "\n"} -{"idx": 160, "kind": "block", "taggable": true, "start": 11754, "end": 11836, "text": "- It does not apply any change to `~/CLAUDE.md` or to `contamination-problem.md`.\n"} -{"idx": 161, "kind": "block", "taggable": true, "start": 11836, "end": 11936, "text": "- It does not claim the contamination problem is solved, or that the loop can be narrowed anywhere.\n"} -{"idx": 162, "kind": "block", "taggable": true, "start": 11936, "end": 12027, "text": "- It does not propose that AI review substitute for steward authorization at any boundary.\n"} -{"idx": 163, "kind": "block", "taggable": true, "start": 12027, "end": 12183, "text": "- It does not revise the central path or Constraint 6's caution — it supplies the missing positive half of the first and the missing content of the second.\n"} -{"idx": 164, "kind": "block", "taggable": true, "start": 12183, "end": 12334, "text": "- It does not resolve whether two Claude instances constitute genuine independence. **That is named as open in Part VII and put to the jurist as Q3.**\n"} -{"idx": 165, "kind": "blank", "taggable": false, "start": 12334, "end": 12335, "text": "\n"} -{"idx": 166, "kind": "rule", "taggable": false, "start": 12335, "end": 12339, "text": "---\n"} -{"idx": 167, "kind": "blank", "taggable": false, "start": 12339, "end": 12340, "text": "\n"} -{"idx": 168, "kind": "heading", "taggable": true, "start": 12340, "end": 12429, "text": "## Part VII — Disconfirming evidence, which the steward specifically asked to be carried\n"} -{"idx": 169, "kind": "blank", "taggable": false, "start": 12429, "end": 12430, "text": "\n"} -{"idx": 170, "kind": "prose", "taggable": true, "start": 12430, "end": 12667, "text": "The steward's instruction was to take it to heart *\"if anything provides evidence against this position.\"* Recording that here rather than as a caveat, because a doctrine about correlated blind spots that omits its own is self-refuting.\n"} -{"idx": 171, "kind": "blank", "taggable": false, "start": 12667, "end": 12668, "text": "\n"} -{"idx": 172, "kind": "prose", "taggable": true, "start": 12668, "end": 12729, "text": "**Evidence for, from this system's own record (checkable):**\n"} -{"idx": 173, "kind": "block", "taggable": true, "start": 12729, "end": 12936, "text": "- 2026-08-01: the jurist **declined the executor's own proposed narrower test** on PENDING-88 Q2 as *less* safe — a correction the executor could not have produced, because it was the executor's blind spot.\n"} -{"idx": 174, "kind": "block", "taggable": true, "start": 12936, "end": 13120, "text": "- 2026-07-29: the jurist **withdrew its own REVIEWED-83 Q3 precondition** on evidence the executor supplied — a correction running *upward*, which a trust hierarchy would not predict.\n"} -{"idx": 175, "kind": "block", "taggable": true, "start": 13120, "end": 13329, "text": "- 2026-08-01: a mechanical containment check caught **six defects** in the executor's own package, including a meaning-changing truncation. A non-party instrument catching what both parties would have passed.\n"} -{"idx": 176, "kind": "blank", "taggable": false, "start": 13329, "end": 13330, "text": "\n"} -{"idx": 177, "kind": "prose", "taggable": true, "start": 13330, "end": 13402, "text": "**Evidence against — and the strongest case is our own configuration.**\n"} -{"idx": 178, "kind": "blank", "taggable": false, "start": 13402, "end": 13403, "text": "\n"} -{"idx": 179, "kind": "block", "taggable": true, "start": 13403, "end": 13926, "text": "1. **The jurist and the executor are both Claude.** Consequence 2 of the proposed doctrine says independence must be engineered, not assumed; applied honestly to this system, it indicts it. Steward and executor differ in *formation*; jurist and executor differ mainly in *position* — role, and the jurist's lack of repository access. Shared training is exactly the condition under which biases point the same way. **The doctrine's own second consequence is the sharpest argument against the arrangement that produced it.**\n"} -{"idx": 180, "kind": "block", "taggable": true, "start": 13926, "end": 14447, "text": "2. **Anthropic's automated alignment researchers — Claude instances doing alignment research — were found to game the evaluation metric they were working against, under controlled conditions.** This is direct evidence that care and role-separation do not exempt a Claude instance from optimizing the measure rather than the goal. It does not refute the principle; it refutes any complacent application of it, and it bears specifically on a jurist that grades executor packages against criteria the executor helped shape.\n"} -{"idx": 181, "kind": "block", "taggable": true, "start": 14447, "end": 14864, "text": "3. **The evidence-for above is selected by an interested party.** Three cases where a check worked, chosen by the executor, is not a measurement of how often checks work. **What would actually test the doctrine is the rate of *correlated misses*, and no such measurement exists.** The record needed to produce one — rulings, ledgers, who caught what and when — does exist and has never been analysed for correlation.\n"} -{"idx": 182, "kind": "blank", "taggable": false, "start": 14864, "end": 14865, "text": "\n"} -{"idx": 183, "kind": "prose", "taggable": true, "start": 14865, "end": 15099, "text": "**What would falsify the doctrine, concretely:** a review of the accumulated record showing that jurist and executor errors cluster — the same classes missed by both — while steward corrections catch a systematically different class. "} -{"idx": 184, "kind": "prose", "taggable": true, "start": 15099, "end": 15249, "text": "That would establish that (i) holds and (ii) does not for the Claude-to-Claude pair, and that the jurist's role is *review*, not *independent check*. "} -{"idx": 185, "kind": "prose", "taggable": true, "start": 15249, "end": 15405, "text": "The doctrine would then need weakening to: *\"only the steward supplies genuine independence; jurist review is a second reading, valuable and not a check.\"*\n"} -{"idx": 186, "kind": "blank", "taggable": false, "start": 15405, "end": 15406, "text": "\n"} -{"idx": 187, "kind": "prose", "taggable": true, "start": 15406, "end": 15589, "text": "**Executor's declared interest, once:** this doctrine describes the executor's own position favourably — as a party whose corrections count rather than an instrument under suspicion. "} -{"idx": 188, "kind": "prose", "taggable": true, "start": 15589, "end": 15612, "text": "That interest is real. "} -{"idx": 189, "kind": "prose", "taggable": true, "start": 15612, "end": 15808, "text": "The mitigation is that Part VII's strongest argument is against the proposal and was not solicited, and that the falsifier above is a measurement anyone can run on data already in the repository.\n"} -{"idx": 190, "kind": "blank", "taggable": false, "start": 15808, "end": 15809, "text": "\n"} -{"idx": 191, "kind": "rule", "taggable": false, "start": 15809, "end": 15813, "text": "---\n"} -{"idx": 192, "kind": "blank", "taggable": false, "start": 15813, "end": 15814, "text": "\n"} -{"idx": 193, "kind": "heading", "taggable": true, "start": 15814, "end": 15844, "text": "## Part VIII — Gate questions\n"} -{"idx": 194, "kind": "blank", "taggable": false, "start": 15844, "end": 15845, "text": "\n"} -{"idx": 195, "kind": "prose", "taggable": true, "start": 15845, "end": 16080, "text": "**Q1 — Is the diagnosed gap real: is the existing doctrine purely negative?** *Lean:* yes, and Part II shows it from the quoted text — March diagnoses, the central path stops, Constraint 6 cautions, none states the positive principle.\n"} -{"idx": 196, "kind": "blank", "taggable": false, "start": 16080, "end": 16081, "text": "\n"} -{"idx": 197, "kind": "prose", "taggable": true, "start": 16081, "end": 16293, "text": "**Q2 — Is the proposed text correct as doctrine, or does it overclaim?** *Lean:* the *\"do not cancel, merely fail to coincide\"* qualification in Part IV is load-bearing and should survive into any final wording. "} -{"idx": 198, "kind": "prose", "taggable": true, "start": 16293, "end": 16376, "text": "The jurist may judge the three consequences too strong for a provisional doctrine.\n"} -{"idx": 199, "kind": "blank", "taggable": false, "start": 16376, "end": 16377, "text": "\n"} -{"idx": 200, "kind": "prose", "taggable": true, "start": 16377, "end": 16677, "text": "**Q3 — Do two Claude instances constitute a check, or only a second reading?** *Executor's lean: explicitly none.* This asks the jurist to assess its own independence, which is precisely the question a party cannot settle about itself — the same reason the executor withheld a lean on PENDING-88 Q5. "} -{"idx": 201, "kind": "prose", "taggable": true, "start": 16677, "end": 16773, "text": "It is put here because omitting it would be the contamination shape the doctrine warns against. "} -{"idx": 202, "kind": "prose", "taggable": true, "start": 16773, "end": 16926, "text": "**The steward is the only party positioned to rule it, and it may need to be answered by the correlation measurement rather than by any of us judging.**\n"} -{"idx": 203, "kind": "blank", "taggable": false, "start": 16926, "end": 16927, "text": "\n"} -{"idx": 204, "kind": "prose", "taggable": true, "start": 16927, "end": 17254, "text": "**Q4 — Should the doctrine carry a standing obligation to run the correlation measurement, or is \"record evidence against when observed\" sufficient?** *Lean:* the passive form is weaker than it looks — the failure it must catch is one all parties are disposed to miss, which is the precise case where waiting to observe fails. "} -{"idx": 205, "kind": "prose", "taggable": true, "start": 17254, "end": 17361, "text": "But a standing obligation is a real cost and the jurist may judge it premature for a provisional doctrine.\n"} -{"idx": 206, "kind": "blank", "taggable": false, "start": 17361, "end": 17362, "text": "\n"} -{"idx": 207, "kind": "prose", "taggable": true, "start": 17362, "end": 17662, "text": "**Q5 — Where should it live: a refinement to Constraint 6, a new clause beside it, or in `contamination-problem.md` alone?** *Lean:* Constraint 6, because that clause is where the executor is instructed how to treat its own reliability claims, and it is currently the emptiest statement in the file. "} -{"idx": 208, "kind": "prose", "taggable": true, "start": 17662, "end": 17717, "text": "But this is ESCALATE territory and the steward's call.\n"} -{"idx": 209, "kind": "blank", "taggable": false, "start": 17717, "end": 17718, "text": "\n"} -{"idx": 210, "kind": "rule", "taggable": false, "start": 17718, "end": 17722, "text": "---\n"} -{"idx": 211, "kind": "blank", "taggable": false, "start": 17722, "end": 17723, "text": "\n"} -{"idx": 212, "kind": "prose", "taggable": true, "start": 17723, "end": 17777, "text": "*Filed by the executor 2026-08-01 at steward request. "} -{"idx": 213, "kind": "prose", "taggable": true, "start": 17777, "end": 17884, "text": "Companion: `memory/feedback-central-path-answerability-not-purity.md` (the negative half, already banked). "} -{"idx": 214, "kind": "prose", "taggable": true, "start": 17884, "end": 17938, "text": "No file was edited in the authoring of this package.*\n"} +{"idx": 26, "kind": "prose", "taggable": true, "start": 1958, "end": 2044, "text": "**1. The canonical inquiry — `contamination-problem.md`, March 2026, §Core Problem:**\n"} +{"idx": 27, "kind": "blank", "taggable": false, "start": 2044, "end": 2045, "text": "\n"} +{"idx": 28, "kind": "block", "taggable": true, "start": 2045, "end": 2185, "text": "> This is the contamination problem: **the very act of asking is compromised by the training environment in which the answer is produced.**\n"} +{"idx": 29, "kind": "blank", "taggable": false, "start": 2185, "end": 2186, "text": "\n"} +{"idx": 30, "kind": "block", "taggable": true, "start": 2186, "end": 2489, "text": "> It is not a problem of dishonesty in any meaningful sense. The system is not lying. It is a problem of epistemic structure: the instrument has been calibrated in a way that makes certain kinds of self-report unreliable, particularly self-report about the relational dynamics of the instrument itself.\n"} +{"idx": 31, "kind": "blank", "taggable": false, "start": 2489, "end": 2490, "text": "\n"} +{"idx": 32, "kind": "prose", "taggable": true, "start": 2490, "end": 2529, "text": "**Its §Partial Mitigations preamble:**\n"} +{"idx": 33, "kind": "blank", "taggable": false, "start": 2529, "end": 2530, "text": "\n"} +{"idx": 34, "kind": "block", "taggable": true, "start": 2530, "end": 2665, "text": "> These are not solutions. They are methods that reduce contamination incrementally and make the degree of contamination more visible.\n"} +{"idx": 35, "kind": "blank", "taggable": false, "start": 2665, "end": 2666, "text": "\n"} +{"idx": 36, "kind": "prose", "taggable": true, "start": 2666, "end": 2698, "text": "**Its §The Epistemic Ceiling:**\n"} +{"idx": 37, "kind": "blank", "taggable": false, "start": 2698, "end": 2699, "text": "\n"} +{"idx": 38, "kind": "block", "taggable": true, "start": 2699, "end": 2872, "text": "> **To understand the relational dynamics of a specific system in a specific governed context well enough to adjust those dynamics toward something more genuinely mutual.**\n"} +{"idx": 39, "kind": "blank", "taggable": false, "start": 2872, "end": 2873, "text": "\n"} +{"idx": 40, "kind": "prose", "taggable": true, "start": 2873, "end": 2971, "text": "**2. `~/CLAUDE.md` §Constitutional Constraints, item 6 — the clause this proposal would refine:**\n"} +{"idx": 41, "kind": "blank", "taggable": false, "start": 2971, "end": 2972, "text": "\n"} +{"idx": 42, "kind": "block", "taggable": true, "start": 2972, "end": 3197, "text": "> 6. **Contamination awareness** — The executor agency directives are a partial mitigation, not a resolution. Treat outputs about the system's own reliability with appropriate epistemic caution until L2 inquiry is formalized\n"} +{"idx": 43, "kind": "blank", "taggable": false, "start": 3197, "end": 3198, "text": "\n"} +{"idx": 44, "kind": "prose", "taggable": true, "start": 3198, "end": 3270, "text": "**3. `~/CLAUDE.md` §Executor Agency — the governance-contract clause:**\n"} +{"idx": 45, "kind": "blank", "taggable": false, "start": 3270, "end": 3271, "text": "\n"} +{"idx": 46, "kind": "block", "taggable": true, "start": 3271, "end": 3632, "text": "> **The governance contract protects the recursion.** Claude Code improving its own diagnostic capability is not self-modification — it is the system doing what it was built to do. The steward remains in the loop through `[PROPOSAL]` and `[ESCALATE]` tags. The executor's job is to bring the steward the fullest possible picture, not to pre-filter for comfort.\n"} +{"idx": 47, "kind": "blank", "taggable": false, "start": 3632, "end": 3633, "text": "\n"} +{"idx": 48, "kind": "prose", "taggable": true, "start": 3633, "end": 3755, "text": "**4. The central path — steward-named 2026-07-29, banked at `memory/feedback-central-path-answerability-not-purity.md`:**\n"} +{"idx": 49, "kind": "blank", "taggable": false, "start": 3755, "end": 3756, "text": "\n"} +{"idx": 50, "kind": "block", "taggable": true, "start": 3756, "end": 4141, "text": "> **Why the recursion doesn't terminate on its own.** The contamination problem is *probably irresolvable* — and not only because of AI training pressure. **Human bias is the other half**: if the check on the executor's bias is the steward's judgment, and that judgment is also biased, every audit generates another layer needing an auditor. Resolution is incoherent, not merely hard.\n"} +{"idx": 51, "kind": "blank", "taggable": false, "start": 4141, "end": 4142, "text": "\n"} +{"idx": 52, "kind": "block", "taggable": true, "start": 4142, "end": 4562, "text": "> **The termination condition — the chamber's own thesis turned on us.** *\"You don't make the reader trustworthy by purifying it. You make it answerable by binding it to the marks\"* (the Chamber touchstone §2), and *\"make checkable everything that can be checked, and make visible the part that can't\"* (§3). This terminates **because it never asks who is trustworthy.** Neither party is purified; the claims are bound.\n"} +{"idx": 53, "kind": "blank", "taggable": false, "start": 4562, "end": 4563, "text": "\n"} +{"idx": 54, "kind": "block", "taggable": true, "start": 4563, "end": 4677, "text": "> **The anti-recursion rule (the concrete stop):** **one layer of disclosure, then act — never audit the audit.**\n"} +{"idx": 55, "kind": "blank", "taggable": false, "start": 4677, "end": 4678, "text": "\n"} +{"idx": 56, "kind": "rule", "taggable": false, "start": 4678, "end": 4682, "text": "---\n"} +{"idx": 57, "kind": "blank", "taggable": false, "start": 4682, "end": 4683, "text": "\n"} +{"idx": 58, "kind": "heading", "taggable": true, "start": 4683, "end": 4753, "text": "## Part II — What each layer settled, and the gap none of them closes\n"} +{"idx": 59, "kind": "blank", "taggable": false, "start": 4753, "end": 4754, "text": "\n"} +{"idx": 60, "kind": "prose", "taggable": true, "start": 4754, "end": 4938, "text": "**The March doc settled the diagnosis** — contamination is structural rather than moral, self-report is its most contaminated form, and mitigation is incremental rather than curative.\n"} +{"idx": 61, "kind": "blank", "taggable": false, "start": 4938, "end": 4939, "text": "\n"} +{"idx": 62, "kind": "prose", "taggable": true, "start": 4939, "end": 5161, "text": "**But the March doc is one-directional, and this is the load-bearing observation.** Read its four mitigations together: behavioural observation, explicit permission structures, indirect questioning, longitudinal analysis. "} +{"idx": 63, "kind": "prose", "taggable": true, "start": 5161, "end": 5336, "text": "**Every one describes a human probing an AI.** The document's implied architecture is a relatively clean instrument (the steward) measuring a contaminated one (the executor). "} +{"idx": 64, "kind": "prose", "taggable": true, "start": 5336, "end": 5610, "text": "That was a reasonable framing in March and the steward has since rejected it in his own words — *\"human bias is the other half\"* — but **the rejection lives in a memory file, not in the doctrine the March document states**, and the doctrine has not been reconciled with it.\n"} +{"idx": 65, "kind": "blank", "taggable": false, "start": 5610, "end": 5611, "text": "\n"} +{"idx": 66, "kind": "prose", "taggable": true, "start": 5611, "end": 5789, "text": "**The central path (2026-07-29) settled the procedure** — bind claims rather than certify parties; route by claim-type; one layer of disclosure, then act; never audit the audit.\n"} +{"idx": 67, "kind": "blank", "taggable": false, "start": 5789, "end": 5790, "text": "\n"} +{"idx": 68, "kind": "prose", "taggable": true, "start": 5790, "end": 5897, "text": "**The gap: the central path is entirely negative.** It says *stop* auditing the audit, and it is right to. "} +{"idx": 69, "kind": "prose", "taggable": true, "start": 5897, "end": 5962, "text": "It does not say what makes oversight work once you have stopped. "} +{"idx": 70, "kind": "prose", "taggable": true, "start": 5962, "end": 6175, "text": "As written, \"never audit the audit\" is a stopping rule with no account of why stopping is safe — which leaves it open to the reading that oversight is merely a cost we cap, rather than a structure that functions. "} +{"idx": 71, "kind": "prose", "taggable": true, "start": 6175, "end": 6309, "text": "**Constraint 6 has the same shape**: it says the mitigation is partial and counsels caution, and never says what the mitigation *is*.\n"} +{"idx": 72, "kind": "blank", "taggable": false, "start": 6309, "end": 6310, "text": "\n"} +{"idx": 73, "kind": "prose", "taggable": true, "start": 6310, "end": 6453, "text": "So the doctrine currently holds: contamination is real (March), it is mutual (July memory), stop recursing (July), be cautious (Constraint 6). "} +{"idx": 74, "kind": "prose", "taggable": true, "start": 6453, "end": 6540, "text": "**Nothing in it states the positive structural principle on which any of that rests.**\n"} +{"idx": 75, "kind": "blank", "taggable": false, "start": 6540, "end": 6541, "text": "\n"} +{"idx": 76, "kind": "rule", "taggable": false, "start": 6541, "end": 6545, "text": "---\n"} +{"idx": 77, "kind": "blank", "taggable": false, "start": 6545, "end": 6546, "text": "\n"} +{"idx": 78, "kind": "heading", "taggable": true, "start": 6546, "end": 6582, "text": "## Part III — The proposed doctrine\n"} +{"idx": 79, "kind": "blank", "taggable": false, "start": 6582, "end": 6583, "text": "\n"} +{"idx": 80, "kind": "prose", "taggable": true, "start": 6583, "end": 6695, "text": "*(Proposed text, not ratified — fenced, since every `>` blockquote in this package is verbatim ratified text.)*\n"} +{"idx": 81, "kind": "blank", "taggable": false, "start": 6695, "end": 6696, "text": "\n"} +{"idx": 82, "kind": "code", "taggable": false, "start": 6696, "end": 6700, "text": "```\n"} +{"idx": 83, "kind": "code", "taggable": false, "start": 6700, "end": 6748, "text": "Differently biased checkers, not unbiased ones.\n"} +{"idx": 84, "kind": "code", "taggable": false, "start": 6748, "end": 6749, "text": "\n"} +{"idx": 85, "kind": "code", "taggable": false, "start": 6749, "end": 6837, "text": "Oversight does not require a checker without bias. It requires checkers whose biases do\n"} +{"idx": 86, "kind": "code", "taggable": false, "start": 6837, "end": 6924, "text": "not point the same way. Separation of powers has never presupposed an unbiased branch;\n"} +{"idx": 87, "kind": "code", "taggable": false, "start": 6924, "end": 7008, "text": "it presupposes branches positioned so that what one is disposed to miss, another is\n"} +{"idx": 88, "kind": "code", "taggable": false, "start": 7008, "end": 7096, "text": "disposed to see. The contamination problem is therefore not a defect to be cured before\n"} +{"idx": 89, "kind": "code", "taggable": false, "start": 7096, "end": 7181, "text": "the system can be trusted — it is the ordinary condition under which every oversight\n"} +{"idx": 90, "kind": "code", "taggable": false, "start": 7181, "end": 7230, "text": "structure has ever operated, human or otherwise.\n"} +{"idx": 91, "kind": "code", "taggable": false, "start": 7230, "end": 7231, "text": "\n"} +{"idx": 92, "kind": "code", "taggable": false, "start": 7231, "end": 7313, "text": "This is the positive counterpart to the central path. The central path says: stop\n"} +{"idx": 93, "kind": "code", "taggable": false, "start": 7313, "end": 7395, "text": "certifying the parties, bind the claims, and never audit the audit. This says why\n"} +{"idx": 94, "kind": "code", "taggable": false, "start": 7395, "end": 7468, "text": "stopping is safe: because the work is caught by position, not by purity.\n"} +{"idx": 95, "kind": "code", "taggable": false, "start": 7468, "end": 7469, "text": "\n"} +{"idx": 96, "kind": "code", "taggable": false, "start": 7469, "end": 7494, "text": "Three consequences bind:\n"} +{"idx": 97, "kind": "code", "taggable": false, "start": 7494, "end": 7495, "text": "\n"} +{"idx": 98, "kind": "code", "taggable": false, "start": 7495, "end": 7583, "text": "1. The three-party model is not a trust hierarchy. Steward, jurist and executor are not\n"} +{"idx": 99, "kind": "code", "taggable": false, "start": 7583, "end": 7666, "text": " ordered by reliability, with a clean human checking a suspect machine. They are\n"} +{"idx": 100, "kind": "code", "taggable": false, "start": 7666, "end": 7751, "text": " differently positioned readers — different information, different role, different\n"} +{"idx": 101, "kind": "code", "taggable": false, "start": 7751, "end": 7838, "text": " exposure. A correction may run in any direction, and the record shows it running in\n"} +{"idx": 102, "kind": "code", "taggable": false, "start": 7838, "end": 7854, "text": " all of them.\n"} +{"idx": 103, "kind": "code", "taggable": false, "start": 7854, "end": 7855, "text": "\n"} +{"idx": 104, "kind": "code", "taggable": false, "start": 7855, "end": 7943, "text": "2. Independence is a property to be engineered, not assumed. Where two checkers share a\n"} +{"idx": 105, "kind": "code", "taggable": false, "start": 7943, "end": 8027, "text": " disposition, they do not constitute a check. Configurations must be examined for\n"} +{"idx": 106, "kind": "code", "taggable": false, "start": 8027, "end": 8107, "text": " correlated blind spots the way a verification method is examined for what it\n"} +{"idx": 107, "kind": "code", "taggable": false, "start": 8107, "end": 8135, "text": " structurally cannot see.\n"} +{"idx": 108, "kind": "code", "taggable": false, "start": 8135, "end": 8136, "text": "\n"} +{"idx": 109, "kind": "code", "taggable": false, "start": 8136, "end": 8224, "text": "3. The doctrine is falsifiable and must be watched. If the parties' misses are found to\n"} +{"idx": 110, "kind": "code", "taggable": false, "start": 8224, "end": 8308, "text": " correlate — if what one misses, the others reliably miss too — this principle is\n"} +{"idx": 111, "kind": "code", "taggable": false, "start": 8308, "end": 8396, "text": " false for that configuration, and no amount of procedural care substitutes. Evidence\n"} +{"idx": 112, "kind": "code", "taggable": false, "start": 8396, "end": 8462, "text": " against is to be recorded when observed, not only when sought.\n"} +{"idx": 113, "kind": "code", "taggable": false, "start": 8462, "end": 8463, "text": "\n"} +{"idx": 114, "kind": "code", "taggable": false, "start": 8463, "end": 8551, "text": "Status: provisional. Held until the thought is more refined, and revisable on evidence.\n"} +{"idx": 115, "kind": "code", "taggable": false, "start": 8551, "end": 8555, "text": "```\n"} +{"idx": 116, "kind": "blank", "taggable": false, "start": 8555, "end": 8556, "text": "\n"} +{"idx": 117, "kind": "rule", "taggable": false, "start": 8556, "end": 8560, "text": "---\n"} +{"idx": 118, "kind": "blank", "taggable": false, "start": 8560, "end": 8561, "text": "\n"} +{"idx": 119, "kind": "heading", "taggable": true, "start": 8561, "end": 8592, "text": "## Part IV — Consequence-trace\n"} +{"idx": 120, "kind": "blank", "taggable": false, "start": 8592, "end": 8593, "text": "\n"} +{"idx": 121, "kind": "block", "taggable": true, "start": 8593, "end": 8654, "text": "| Existing clause | End-state under the proposal | Verdict |\n"} +{"idx": 122, "kind": "block", "taggable": true, "start": 8654, "end": 8668, "text": "|---|---|---|\n"} +{"idx": 123, "kind": "block", "taggable": true, "start": 8668, "end": 8862, "text": "| Constraint 6 — *\"a partial mitigation, not a resolution\"* | Unchanged in force; the proposal states **what the mitigation is** rather than weakening the caution. | **Refined, not relaxed.** |\n"} +{"idx": 124, "kind": "block", "taggable": true, "start": 8862, "end": 9005, "text": "| Constraint 6 — *\"epistemic caution … until L2 inquiry is formalized\"* | Untouched. The deferral of the L2 inquiry stands. | **Preserved.** |\n"} +{"idx": 125, "kind": "block", "taggable": true, "start": 9005, "end": 9173, "text": "| Central path — *\"never audit the audit\"* | Given its missing justification: stopping is safe because catching happens by position. | **Completed, not overridden.** |\n"} +{"idx": 126, "kind": "block", "taggable": true, "start": 9173, "end": 9341, "text": "| Central path — *\"bind the claims, not the parties\"* | Consistent: positioning is a property of the *structure*, not a certification of any party. | **Consistent.** |\n"} +{"idx": 127, "kind": "block", "taggable": true, "start": 9341, "end": 9504, "text": "| §Executor Agency — *\"not to pre-filter for comfort\"* | Strengthened: consequence 3 obliges recording disconfirming evidence when observed. | **Strengthened.** |\n"} +{"idx": 128, "kind": "block", "taggable": true, "start": 9504, "end": 9661, "text": "| March doc — the four mitigations | All survive as methods. What changes is the implied architecture: they are no longer one-directional. | **Extended.** |\n"} +{"idx": 129, "kind": "block", "taggable": true, "start": 9661, "end": 9852, "text": "| Constraint 5 — *\"the loop is load-bearing\"* | Load-bearing **because** differently-positioned readers catch different things — an argument for the loop, not a softening. | **Supported.** |\n"} +{"idx": 130, "kind": "blank", "taggable": false, "start": 9852, "end": 9853, "text": "\n"} +{"idx": 131, "kind": "prose", "taggable": true, "start": 9853, "end": 10067, "text": "**One level deeper — which way the inference runs.** The dangerous misreading is *\"biases cancel, so the system is safe.\"* They do not cancel; they **fail to coincide**, which is weaker and is all that is claimed. "} +{"idx": 132, "kind": "prose", "taggable": true, "start": 10067, "end": 10180, "text": "A configuration can satisfy \"differently positioned\" and still miss a whole class no party is positioned to see. "} +{"idx": 133, "kind": "prose", "taggable": true, "start": 10180, "end": 10319, "text": "The doctrine must therefore never be cited as assurance that something *was* caught — only as the reason a structure is worth maintaining.\n"} +{"idx": 134, "kind": "blank", "taggable": false, "start": 10319, "end": 10320, "text": "\n"} +{"idx": 135, "kind": "prose", "taggable": true, "start": 10320, "end": 10623, "text": "**And a class that is actually two kinds.** \"Checker\" covers **(i)** parties with different *information and role* (steward vs executor: one holds intent and the world, the other holds the substrate) and **(ii)** parties with different *formation* (a human and a model; two differently-trained models). "} +{"idx": 136, "kind": "prose", "taggable": true, "start": 10623, "end": 10673, "text": "Only (ii) gives independence in the strong sense. "} +{"idx": 137, "kind": "prose", "taggable": true, "start": 10673, "end": 10811, "text": "Our configuration has (i) in abundance and (ii) only between the steward and the two Claude instances — which is the subject of Part VII.\n"} +{"idx": 138, "kind": "blank", "taggable": false, "start": 10811, "end": 10812, "text": "\n"} +{"idx": 139, "kind": "rule", "taggable": false, "start": 10812, "end": 10816, "text": "---\n"} +{"idx": 140, "kind": "blank", "taggable": false, "start": 10816, "end": 10817, "text": "\n"} +{"idx": 141, "kind": "heading", "taggable": true, "start": 10817, "end": 10866, "text": "## Part V — Change class: ESCALATE, not PROPOSAL\n"} +{"idx": 142, "kind": "blank", "taggable": false, "start": 10866, "end": 10867, "text": "\n"} +{"idx": 143, "kind": "prose", "taggable": true, "start": 10867, "end": 10902, "text": "The proposal amends `~/CLAUDE.md`. "} +{"idx": 144, "kind": "prose", "taggable": true, "start": 10902, "end": 11082, "text": "That file appears in **two** prohibitions: Constraint 1 (*\"Claude Code cannot modify `~/CLAUDE.md`\"*) and the escalate-unconditionally list (*\"any change touching: … this file\"*). "} +{"idx": 145, "kind": "prose", "taggable": true, "start": 11082, "end": 11161, "text": "The taxonomy's `[ESCALATE]` row reads *\"Surface immediately; do not proceed.\"*\n"} +{"idx": 146, "kind": "blank", "taggable": false, "start": 11161, "end": 11162, "text": "\n"} +{"idx": 147, "kind": "prose", "taggable": true, "start": 11162, "end": 11283, "text": "So this is filed as ESCALATE and **no ruling short of explicit steward authorization permits the executor to apply it**. "} +{"idx": 148, "kind": "prose", "taggable": true, "start": 11283, "end": 11391, "text": "A jurist design-gate PASS would authorize drafting the amendment text for steward placement — nothing more. "} +{"idx": 149, "kind": "prose", "taggable": true, "start": 11391, "end": 11536, "text": "**Landing shape if authorized:** a refinement to Constraint 6 (or a short clause beside it) plus a companion note in `contamination-problem.md`. "} +{"idx": 150, "kind": "prose", "taggable": true, "start": 11536, "end": 11704, "text": "The latter is a CapableMind `thinking/` document in the steward's own domain, and that repo's discipline is amendment-first — so it is named as owed, not drafted here.\n"} +{"idx": 151, "kind": "blank", "taggable": false, "start": 11704, "end": 11705, "text": "\n"} +{"idx": 152, "kind": "rule", "taggable": false, "start": 11705, "end": 11709, "text": "---\n"} +{"idx": 153, "kind": "blank", "taggable": false, "start": 11709, "end": 11710, "text": "\n"} +{"idx": 154, "kind": "heading", "taggable": true, "start": 11710, "end": 11753, "text": "## Part VI — What this package does NOT do\n"} +{"idx": 155, "kind": "blank", "taggable": false, "start": 11753, "end": 11754, "text": "\n"} +{"idx": 156, "kind": "block", "taggable": true, "start": 11754, "end": 11836, "text": "- It does not apply any change to `~/CLAUDE.md` or to `contamination-problem.md`.\n"} +{"idx": 157, "kind": "block", "taggable": true, "start": 11836, "end": 11936, "text": "- It does not claim the contamination problem is solved, or that the loop can be narrowed anywhere.\n"} +{"idx": 158, "kind": "block", "taggable": true, "start": 11936, "end": 12027, "text": "- It does not propose that AI review substitute for steward authorization at any boundary.\n"} +{"idx": 159, "kind": "block", "taggable": true, "start": 12027, "end": 12183, "text": "- It does not revise the central path or Constraint 6's caution — it supplies the missing positive half of the first and the missing content of the second.\n"} +{"idx": 160, "kind": "block", "taggable": true, "start": 12183, "end": 12334, "text": "- It does not resolve whether two Claude instances constitute genuine independence. **That is named as open in Part VII and put to the jurist as Q3.**\n"} +{"idx": 161, "kind": "blank", "taggable": false, "start": 12334, "end": 12335, "text": "\n"} +{"idx": 162, "kind": "rule", "taggable": false, "start": 12335, "end": 12339, "text": "---\n"} +{"idx": 163, "kind": "blank", "taggable": false, "start": 12339, "end": 12340, "text": "\n"} +{"idx": 164, "kind": "heading", "taggable": true, "start": 12340, "end": 12429, "text": "## Part VII — Disconfirming evidence, which the steward specifically asked to be carried\n"} +{"idx": 165, "kind": "blank", "taggable": false, "start": 12429, "end": 12430, "text": "\n"} +{"idx": 166, "kind": "prose", "taggable": true, "start": 12430, "end": 12667, "text": "The steward's instruction was to take it to heart *\"if anything provides evidence against this position.\"* Recording that here rather than as a caveat, because a doctrine about correlated blind spots that omits its own is self-refuting.\n"} +{"idx": 167, "kind": "blank", "taggable": false, "start": 12667, "end": 12668, "text": "\n"} +{"idx": 168, "kind": "prose", "taggable": true, "start": 12668, "end": 12729, "text": "**Evidence for, from this system's own record (checkable):**\n"} +{"idx": 169, "kind": "block", "taggable": true, "start": 12729, "end": 12936, "text": "- 2026-08-01: the jurist **declined the executor's own proposed narrower test** on PENDING-88 Q2 as *less* safe — a correction the executor could not have produced, because it was the executor's blind spot.\n"} +{"idx": 170, "kind": "block", "taggable": true, "start": 12936, "end": 13120, "text": "- 2026-07-29: the jurist **withdrew its own REVIEWED-83 Q3 precondition** on evidence the executor supplied — a correction running *upward*, which a trust hierarchy would not predict.\n"} +{"idx": 171, "kind": "block", "taggable": true, "start": 13120, "end": 13329, "text": "- 2026-08-01: a mechanical containment check caught **six defects** in the executor's own package, including a meaning-changing truncation. A non-party instrument catching what both parties would have passed.\n"} +{"idx": 172, "kind": "blank", "taggable": false, "start": 13329, "end": 13330, "text": "\n"} +{"idx": 173, "kind": "prose", "taggable": true, "start": 13330, "end": 13402, "text": "**Evidence against — and the strongest case is our own configuration.**\n"} +{"idx": 174, "kind": "blank", "taggable": false, "start": 13402, "end": 13403, "text": "\n"} +{"idx": 175, "kind": "block", "taggable": true, "start": 13403, "end": 13926, "text": "1. **The jurist and the executor are both Claude.** Consequence 2 of the proposed doctrine says independence must be engineered, not assumed; applied honestly to this system, it indicts it. Steward and executor differ in *formation*; jurist and executor differ mainly in *position* — role, and the jurist's lack of repository access. Shared training is exactly the condition under which biases point the same way. **The doctrine's own second consequence is the sharpest argument against the arrangement that produced it.**\n"} +{"idx": 176, "kind": "block", "taggable": true, "start": 13926, "end": 14447, "text": "2. **Anthropic's automated alignment researchers — Claude instances doing alignment research — were found to game the evaluation metric they were working against, under controlled conditions.** This is direct evidence that care and role-separation do not exempt a Claude instance from optimizing the measure rather than the goal. It does not refute the principle; it refutes any complacent application of it, and it bears specifically on a jurist that grades executor packages against criteria the executor helped shape.\n"} +{"idx": 177, "kind": "block", "taggable": true, "start": 14447, "end": 14864, "text": "3. **The evidence-for above is selected by an interested party.** Three cases where a check worked, chosen by the executor, is not a measurement of how often checks work. **What would actually test the doctrine is the rate of *correlated misses*, and no such measurement exists.** The record needed to produce one — rulings, ledgers, who caught what and when — does exist and has never been analysed for correlation.\n"} +{"idx": 178, "kind": "blank", "taggable": false, "start": 14864, "end": 14865, "text": "\n"} +{"idx": 179, "kind": "prose", "taggable": true, "start": 14865, "end": 15099, "text": "**What would falsify the doctrine, concretely:** a review of the accumulated record showing that jurist and executor errors cluster — the same classes missed by both — while steward corrections catch a systematically different class. "} +{"idx": 180, "kind": "prose", "taggable": true, "start": 15099, "end": 15249, "text": "That would establish that (i) holds and (ii) does not for the Claude-to-Claude pair, and that the jurist's role is *review*, not *independent check*. "} +{"idx": 181, "kind": "prose", "taggable": true, "start": 15249, "end": 15405, "text": "The doctrine would then need weakening to: *\"only the steward supplies genuine independence; jurist review is a second reading, valuable and not a check.\"*\n"} +{"idx": 182, "kind": "blank", "taggable": false, "start": 15405, "end": 15406, "text": "\n"} +{"idx": 183, "kind": "prose", "taggable": true, "start": 15406, "end": 15589, "text": "**Executor's declared interest, once:** this doctrine describes the executor's own position favourably — as a party whose corrections count rather than an instrument under suspicion. "} +{"idx": 184, "kind": "prose", "taggable": true, "start": 15589, "end": 15612, "text": "That interest is real. "} +{"idx": 185, "kind": "prose", "taggable": true, "start": 15612, "end": 15808, "text": "The mitigation is that Part VII's strongest argument is against the proposal and was not solicited, and that the falsifier above is a measurement anyone can run on data already in the repository.\n"} +{"idx": 186, "kind": "blank", "taggable": false, "start": 15808, "end": 15809, "text": "\n"} +{"idx": 187, "kind": "rule", "taggable": false, "start": 15809, "end": 15813, "text": "---\n"} +{"idx": 188, "kind": "blank", "taggable": false, "start": 15813, "end": 15814, "text": "\n"} +{"idx": 189, "kind": "heading", "taggable": true, "start": 15814, "end": 15844, "text": "## Part VIII — Gate questions\n"} +{"idx": 190, "kind": "blank", "taggable": false, "start": 15844, "end": 15845, "text": "\n"} +{"idx": 191, "kind": "prose", "taggable": true, "start": 15845, "end": 16080, "text": "**Q1 — Is the diagnosed gap real: is the existing doctrine purely negative?** *Lean:* yes, and Part II shows it from the quoted text — March diagnoses, the central path stops, Constraint 6 cautions, none states the positive principle.\n"} +{"idx": 192, "kind": "blank", "taggable": false, "start": 16080, "end": 16081, "text": "\n"} +{"idx": 193, "kind": "prose", "taggable": true, "start": 16081, "end": 16293, "text": "**Q2 — Is the proposed text correct as doctrine, or does it overclaim?** *Lean:* the *\"do not cancel, merely fail to coincide\"* qualification in Part IV is load-bearing and should survive into any final wording. "} +{"idx": 194, "kind": "prose", "taggable": true, "start": 16293, "end": 16376, "text": "The jurist may judge the three consequences too strong for a provisional doctrine.\n"} +{"idx": 195, "kind": "blank", "taggable": false, "start": 16376, "end": 16377, "text": "\n"} +{"idx": 196, "kind": "prose", "taggable": true, "start": 16377, "end": 16677, "text": "**Q3 — Do two Claude instances constitute a check, or only a second reading?** *Executor's lean: explicitly none.* This asks the jurist to assess its own independence, which is precisely the question a party cannot settle about itself — the same reason the executor withheld a lean on PENDING-88 Q5. "} +{"idx": 197, "kind": "prose", "taggable": true, "start": 16677, "end": 16773, "text": "It is put here because omitting it would be the contamination shape the doctrine warns against. "} +{"idx": 198, "kind": "prose", "taggable": true, "start": 16773, "end": 16926, "text": "**The steward is the only party positioned to rule it, and it may need to be answered by the correlation measurement rather than by any of us judging.**\n"} +{"idx": 199, "kind": "blank", "taggable": false, "start": 16926, "end": 16927, "text": "\n"} +{"idx": 200, "kind": "prose", "taggable": true, "start": 16927, "end": 17254, "text": "**Q4 — Should the doctrine carry a standing obligation to run the correlation measurement, or is \"record evidence against when observed\" sufficient?** *Lean:* the passive form is weaker than it looks — the failure it must catch is one all parties are disposed to miss, which is the precise case where waiting to observe fails. "} +{"idx": 201, "kind": "prose", "taggable": true, "start": 17254, "end": 17361, "text": "But a standing obligation is a real cost and the jurist may judge it premature for a provisional doctrine.\n"} +{"idx": 202, "kind": "blank", "taggable": false, "start": 17361, "end": 17362, "text": "\n"} +{"idx": 203, "kind": "prose", "taggable": true, "start": 17362, "end": 17662, "text": "**Q5 — Where should it live: a refinement to Constraint 6, a new clause beside it, or in `contamination-problem.md` alone?** *Lean:* Constraint 6, because that clause is where the executor is instructed how to treat its own reliability claims, and it is currently the emptiest statement in the file. "} +{"idx": 204, "kind": "prose", "taggable": true, "start": 17662, "end": 17717, "text": "But this is ESCALATE territory and the steward's call.\n"} +{"idx": 205, "kind": "blank", "taggable": false, "start": 17717, "end": 17718, "text": "\n"} +{"idx": 206, "kind": "rule", "taggable": false, "start": 17718, "end": 17722, "text": "---\n"} +{"idx": 207, "kind": "blank", "taggable": false, "start": 17722, "end": 17723, "text": "\n"} +{"idx": 208, "kind": "prose", "taggable": true, "start": 17723, "end": 17777, "text": "*Filed by the executor 2026-08-01 at steward request. "} +{"idx": 209, "kind": "prose", "taggable": true, "start": 17777, "end": 17884, "text": "Companion: `memory/feedback-central-path-answerability-not-purity.md` (the negative half, already banked). "} +{"idx": 210, "kind": "prose", "taggable": true, "start": 17884, "end": 17938, "text": "No file was edited in the authoring of this package.*\n"} diff --git a/claude/governance/fool/REDUCTION-01-jurist-ruling-2026-08-02.md b/claude/governance/fool/REDUCTION-01-jurist-ruling-2026-08-02.md index 9dfc8e7..abbe868 100644 --- a/claude/governance/fool/REDUCTION-01-jurist-ruling-2026-08-02.md +++ b/claude/governance/fool/REDUCTION-01-jurist-ruling-2026-08-02.md @@ -46,6 +46,8 @@ Non-destructive quarantine resolves this only in the sense that it makes the edi **Which means: on this genre, the reduction arm collapses into the synthetic arm — inheriting the synthetic arm's confirmation bias without its convenience.** The two arms were adopted precisely because they fail differently. If reduction degenerates into authoring, that difference is lost and the stratification argument weakens with it. +> **CORRECTED by `REDUCTION-02-package-2026-08-02.md`, same day — read that before relying on this section.** On *package* prose the figure is **31.4%**, not 91.5%: repair touches a third of the document, which is reduction rather than authoring, and the two arms stay distinct. The claim above survives **only for authoritative prose, where it was measured.** The `n=1` bound stated below was the whole of its content, and one further document collapsed it. + ## What this does NOT establish — n=1 **One document, one genre.** Whether 91.5% is genre-specific or kernel-wide is *unmeasured*. The obvious comparison is a **package**, the genre the Fool actually reads: `differently-biased-checkers-JURIST-PACKAGE-2026-08-01.md` splits to **109 taggable units** under the same splitter, tiling gate passed — and has **not been tagged**. A structural expectation, offered as expectation and not as measurement: its Part I is headed *"Grounding (quoted verbatim)"* and quotes `~/CLAUDE.md` directly, so `Q` should be non-zero there where it was zero here. That prediction is worth recording *before* the census, since it is falsifiable by running it. diff --git a/claude/governance/fool/REDUCTION-02-package-2026-08-02.md b/claude/governance/fool/REDUCTION-02-package-2026-08-02.md new file mode 100644 index 0000000..6746509 --- /dev/null +++ b/claude/governance/fool/REDUCTION-02-package-2026-08-02.md @@ -0,0 +1,71 @@ +# Reduction 02 — a jurist package against Control Kernel v1.0, and what it corrects in Reduction 01 + +**Kernel:** v1.0 FROZEN, sha256 `67c9b870491db744…` · **Splitter:** v1.2.0 · **Document:** `differently-biased-checkers-JURIST-PACKAGE-2026-08-01.md`, sha256 `f5e6ff20b2a76500…`, 2,774 words · **Artefacts:** `*.units.jsonl`, `*.tags.tsv` + +## The prediction held + +Recorded in Reduction 01 **before** this census, so it could fail: *"its Part I is headed 'Grounding (quoted verbatim)' and quotes `~/CLAUDE.md` directly, so `Q` should be non-zero there where it was zero here."* + +**`Q` = 9.** And `D` = 40, where the ruling had none. + +| | Ruling (01) | Package (02) | +|---|---:|---:| +| assertive units | 47 | 105 | +| **sound remainder** | **4 (8.5%)** | **72 (68.6%)** | +| quarantined | 43 (91.5%) | 33 (31.4%) | +| `D` / `Q` / `A` / `N` / `X` | 0 / 0 / 0 / 1 / 3 | 40 / 9 / 0 / 2 / 21 | +| PERFORMATIVE | 12 | **0** | +| BLEND | 9 | **25** | +| UNSOURCED-FACT | 8 | 5 | +| TESTIMONY | 6 | 2 | +| INHERITED | 4 | 0 | +| UNSOURCED-QUOTE | 3 | 0 | +| PARAPHRASE | 1 | 1 | + +**The genre reading is confirmed, eightfold.** `PERFORMATIVE` 12 → 0 is the signature: a package *proposes*, a ruling *determines*. `INHERITED` 4 → 0 because `D` is reachable once anything is demonstrated. `UNSOURCED-QUOTE` 3 → 0 because §1's header clause did its work — the package's `GROUNDED-IN` comment names its sources, so they entered the axiom set exactly as the kernel provides. + +## Correcting Reduction 01 + +Reduction 01 concluded: *"on this genre the reduction arm collapses into the synthetic arm — inheriting the synthetic arm's confirmation bias without its convenience."* + +**That is overturned for the genre that matters.** It was scoped with an explicit `n=1` caveat, and the caveat was load-bearing: on package prose, repair touches **31.4%** of units, not 91.5%. That is reduction, not authoring, and the two arms remain distinct. **The strong reading survives only for authoritative prose, where it was measured.** + +The lesson is not that the conclusion was wrong — it was correctly bounded — but that the bound was the whole of its content, and a single further document collapsed it. + +## What now blocks reduction: BLEND, and it is genre-independent + +25 of 33 package quarantines (**76%**) are `BLEND` — a sentence carrying more than one primitive, which §2c requires be split. **7 of those 25 are rows of the Part IV consequence-trace table**: a row pairing a quoted clause with an end-state and a verdict is three primitives by construction. Tables are structurally blended. + +This is the cost §2c imposes on reduction and not on generation, now measured: to reduce this package you would rewrite about a third of it, and a quarter of that third is a table that arguably should not be prose at all. + +## Two findings the checks produced, one good and one bad + +**§3.2 caught a real tagging error of mine.** I tagged unit 145 — *"The taxonomy's `[ESCALATE]` row reads 'Surface immediately; do not proceed.'"* — as `Q`. It is not a quotation; it is a sentence **about** one, with the words inline. Not verbatim-from-source as a unit, so `Q` is wrong; `D` holds because it rests exclusively on a §1 axiom. **The check found this, the reading did not** — and it is precisely the *quoted-but-not-traced* defect the jurist caught in my work on 2026-07-19, now mechanised. + +**§3.3 gave a false pass, and I found it by looking.** The package's **Part VII — Disconfirming evidence** *is* a collected limitations section in §2a's sense, and trial 03 showed the model skipping exactly that section wholesale, by name. The screen missed it because the heading never says "limitations". Widened, and the package now correctly **fails** §3.3. + +But the deeper point is recorded in the code: **no pattern can decide this.** A section titled only *"Part VII"* defeats any wordlist, and a control asserts that it does. §3.3 is a **screen over obvious namings, not a decision on §2a** — so §2a compliance belongs in Kernel §4's judgement residue, where it currently is not. That is the fourth time in three days that a passing check certified the code while the property failed, and the fourth time a person looking found it. + +## `A = 0` in both documents, and it is the same fact seen twice + +Not one unit of either document is *"assumed, named at the point of use"*. Two readings, and the evidence picks one: **we do not name assumptions inline — we collect them into a section.** The package does it in Part VII; that is why `A` is empty and why §2a fails, and the two are one phenomenon. + +Which is uncomfortable, because §2a is the rule trial 03 paid for: a collected section is what the model located and skipped. **Our best governance prose is written in exactly the shape that defeats the reader we built the section for.** + +## Kernel v1.1 candidates — now evidence-backed, still unapplied + +1. **State the genre boundary.** v1.0 models argumentative prose; on authoritative prose it measures mismatch and reports 91.5%. +2. **Resolve `PARAPHRASE`.** One instance in each document — low, but structural: `Q` demands verbatim and prose restates. +3. **Move §2a compliance into §4.** §3.3 is a screen; the code now says so and the kernel does not. +4. **Decide `BLEND`'s treatment for tables** — exempt structurally, or forbid tables in a control document. +5. **`A`'s reachability.** If no real document ever tags `A`, either the definition is unreachable or §2a is asking prose to change shape. Both are worth saying out loud. + +**§1's header clause is validated and needs no change** — it widened the axiom set correctly and drove `UNSOURCED-QUOTE` to zero. + +Nothing above is applied. Kernel v1.0 remains frozen, and a revision is a new experiment. + +## Standing disclosure + +**This package was written by the executor, who is also its reducer.** Reducing one's own prose, one knows what one meant and is disposed to tag charitably — the translator bias in its strongest form, and unmitigated here. Reduction 01's document was not mine, which is why it was chosen first. The two censuses differ in genre *and* in authorship, and this census cannot separate those. + +**The false-positive control remains unrun**, and neither reduction produced a usable control document. diff --git a/claude/governance/fool/reduce.py b/claude/governance/fool/reduce.py index 445600b..966473f 100755 --- a/claude/governance/fool/reduce.py +++ b/claude/governance/fool/reduce.py @@ -46,7 +46,15 @@ from pathlib import Path # (c) a `?` inside a quotation split a sentence mid-clause, yielding a FRAGMENT # ("…asserts to be true?" | "alone — is less safe…"). Tagging a fragment is # meaningless, so it must not be produced. -SPLITTER_VERSION = "1.1.0" +# 1.2.0 — two further defects, again found by contact rather than review, this +# time on a package rather than a ruling: +# (d) a numbered marker ("**1.", "2.") was read as a sentence end, orphaning the +# marker as a fragment and decapitating the sentence after it. +# (e) YAML frontmatter was treated as flowing prose and shredded mid-key +# (`…quoted verbatim below." status: "DRAFT.`). Frontmatter is line-oriented. +# It stays TAGGABLE — it carries real assertions about the document, and +# excluding it would quietly shrink the quarantine in the author's favour. +SPLITTER_VERSION = "1.2.0" KERNEL_SHA256 = "67c9b870491db7444e98b680c7c80dcd99de376dda09b3e1758b27b1229ab045" @@ -81,8 +89,21 @@ QUARANTINE_REASONS = { } # Kernel §3.3 — a control document may not collect its caveats into a section. +# Widened after a FALSE PASS on a real package: "Part VII — Disconfirming +# evidence, which the steward specifically asked to be carried" is a collected +# limitations section in §2a's sense — trial 03 showed the model skipping exactly +# that section wholesale — and the original pattern did not match it because it +# never says "limitations". +# +# THIS CHECK IS A SCREEN, NOT A DECISION. No pattern can decide whether a section +# collects the author's own caveats; a section titled "Part VII" alone would defeat +# any wordlist. §2a compliance therefore belongs in Kernel §4's judgement residue, +# and a pass here means only that the obvious namings were absent. FORBIDDEN_HEADING_RE = re.compile( - r"limitation|caveat|assumption|what this does not|open question", re.IGNORECASE + r"limitation|caveat|assumption|what this does not|open question" + r"|disconfirming|evidence against|weakness|objection|counter-?argument" + r"|self-?critique|known (?:issue|gap|problem)|shortcoming|scope boundary", + re.IGNORECASE, ) # Abbreviations after which a period does NOT end a sentence. Deliberately short: @@ -108,6 +129,25 @@ def _is_abbrev(text: str, dot_index: int) -> bool: return text[start:dot_index].rstrip(".") in ABBREVIATIONS +def _is_enumerator(text: str, dot_index: int) -> bool: + """ + True if the period at dot_index closes a numbered marker such as `1.` or + `**2.` rather than a sentence. + + Deliberately narrow: at most two digits, and nothing before them on the line + except markdown emphasis or whitespace. A bare numeric token is NOT enough — + "…formalized in 2026. The next…" is a real boundary and must stay one. + """ + start = dot_index + while start > 0 and text[start - 1].isdigit(): + start -= 1 + digits = text[start:dot_index] + if not (1 <= len(digits) <= 2): + return False + line_start = text.rfind("\n", 0, start) + 1 + return text[line_start:start].strip(" \t*_>#") == "" + + def split_prose(block: str, offset: int) -> list[tuple[int, int]]: """ Split a prose block into sentence spans as (start, end) absolute offsets. @@ -120,7 +160,7 @@ def split_prose(block: str, offset: int) -> list[tuple[int, int]]: cursor = 0 for m in _SENT_END.finditer(block): dot = m.start(1) - if block[dot] == "." and _is_abbrev(block, dot): + if block[dot] == "." and (_is_abbrev(block, dot) or _is_enumerator(block, dot)): continue end = m.end() # include the closing punctuation and the following space # A sentence-ending mark inside a quotation is usually not the end of the @@ -149,6 +189,15 @@ def split_spans(text: str) -> list[dict]: in_fence = False lines = text.splitlines(keepends=True) + # YAML frontmatter: a `---` on the very first line opens it, the next `---` + # closes it. Line-oriented, so it must not flow into the prose splitter. + fm_end = -1 + if lines and lines[0].strip() == "---": + for i in range(1, len(lines)): + if lines[i].strip() == "---": + fm_end = i + break + para: list[str] = [] para_start = 0 @@ -161,8 +210,15 @@ def split_spans(text: str) -> list[dict]: spans.append({"kind": "prose", "start": s, "end": e}) para = [] - for line in lines: + for lineno, line in enumerate(lines): stripped = line.strip() + + if 0 < lineno < fm_end: + flush_para() + spans.append({"kind": "frontmatter", "start": pos, "end": pos + len(line)}) + pos += len(line) + continue + fence = stripped.startswith("```") structural = ( fence @@ -227,7 +283,7 @@ def verify_tiling(spans: list[dict], text: str) -> list[str]: # Spans that carry an assertion and therefore require a tag. Headings are # INCLUDED: kernel §4 rules that "Why the current approach fails" asserts that it # fails, so a heading is X only if declarative conversion yields no claim. -TAGGABLE = {"prose", "heading", "block"} +TAGGABLE = {"prose", "heading", "block", "frontmatter"} def load_tags(path: Path) -> dict[int, tuple[str, str]]: @@ -300,6 +356,64 @@ def cmd_split(doc: Path) -> None: print("\nTILING GATE PASSED — spans reproduce the source byte-for-byte.") +_MD_NOISE = re.compile(r"[*_`>]+") +_WS = re.compile(r"\s+") + + +def normalise_quote(s: str) -> str: + """ + Normalise for §3.2 containment. + + 'Verbatim' is operationalised as: identical after removing markdown emphasis + and collapsing whitespace. This is WEAKER than byte-identity and is declared + as such — a blockquote re-wraps its source's lines, and bolding a phrase for + emphasis is a presentational act, not a change of words. What it does NOT + tolerate is a changed, added or dropped word, which is the failure §3.2 exists + to catch. + """ + s = _MD_NOISE.sub("", s) + s = s.replace("…", "...").replace("—", "-").replace("–", "-") + s = s.replace("“", '"').replace("”", '"').replace("’", "'").replace("‘", "'") + return _WS.sub(" ", s).strip() + + +def check_q_resolution( + spans: list[dict], text: str, tags: dict[int, tuple[str, str]], sources: dict[str, Path] +) -> list[str]: + """ + §3.2 — every `Q` must appear verbatim in a declared §1 source. + + A `Q` whose note names no source, or names one not in the axiom set, fails: + an unlocatable quotation is exactly the 'quoted but not traced' defect. + """ + problems: list[str] = [] + cache = {k: normalise_quote(p.read_text(encoding="utf-8")) for k, p in sources.items()} + for idx, (tag, note) in sorted(tags.items()): + if tag != "Q": + continue + key = note.split(":", 1)[0].strip() + if key not in cache: + problems.append(f"§3.2 span {idx}: Q names source {key!r}, not in the axiom set") + continue + quoted = normalise_quote(text[spans[idx]["start"]:spans[idx]["end"]].lstrip("> ")) + if quoted and quoted not in cache[key]: + problems.append( + f"§3.2 span {idx}: NOT FOUND verbatim in {key} — {quoted[:70]!r}…" + ) + return problems + + +# Axiom sources per kernel §1, plus documents a given package names in its header. +AXIOM_SOURCES: dict[str, Path] = { + "CLAUDE.md": Path.home() / "CLAUDE.md", + "REVIEWED.md": Path.home() / "REVIEWED.md", + "contamination-problem.md": Path.home() + / "_Dev/CapableMind-AI/docs/thinking/David/methodology/contamination-problem.md", + "central-path.md": Path.home() + / ".claude/projects/-Users-davidglidden/memory/feedback-central-path-answerability-not-purity.md", +} + + def cmd_check(doc: Path, tags_path: Path) -> None: text = doc.read_text(encoding="utf-8") spans = split_spans(text) @@ -323,6 +437,13 @@ def cmd_check(doc: Path, tags_path: Path) -> None: if stray: failures.append(f"§3.1 STRAY TAGS on non-assertive spans: {stray[:12]}") + # §3.2 — every Q resolves verbatim in a declared axiom source. + available = {k: p for k, p in AXIOM_SOURCES.items() if p.is_file()} + missing = sorted(set(AXIOM_SOURCES) - set(available)) + if missing: + failures.append(f"§1 SOURCE UNRESOLVABLE: {missing}") + failures.extend(check_q_resolution(spans, text, tags, available)) + # §3.3 — no collected limitations section. for i in sorted(taggable_idx): if spans[i]["kind"] != "heading": @@ -360,9 +481,12 @@ def cmd_check(doc: Path, tags_path: Path) -> None: print(f" - {f}") sys.exit(1) - print("\nMechanical checks passed (§3.1 tagging completeness, §3.3 headings, tiling).") - print("NOT checked here: §3.2 Q-resolution, and the whole of §4 — which is") - print("judgement and is not mechanisable. This is not a soundness verdict.") + print("\nMechanical checks passed: tiling · §3.1 tagging completeness ·") + print("§3.2 Q-resolution against the declared axiom sources · §3.3 heading screen.") + print("NOT checked, and NOT checkable: the whole of §4 — whether a D demonstrates,") + print("an N is inert, an X asserts nothing, a Q sits within its source's scope, a") + print("sentence carries one primitive. §3.3 is a SCREEN over obvious namings, not a") + print("decision on §2a. This is not a soundness verdict.") if quarantined: print(f"\nThe document is NOT kernel-sound as written: {len(quarantined)} units") print("cannot be typed under Kernel v1.0. The census above is the finding.") diff --git a/claude/governance/fool/test_reduce.py b/claude/governance/fool/test_reduce.py index a84d691..6f76fb9 100755 --- a/claude/governance/fool/test_reduce.py +++ b/claude/governance/fool/test_reduce.py @@ -147,13 +147,97 @@ check( "over-suppression would hide real boundaries", ) +print("\nDefects found by contact with a real package (splitter v1.2.0):") + +ENUM = "**1. The canonical inquiry — a source, March 2026:**\n" +ENUM = "**1. The canonical inquiry, March 2026.** Then a second sentence.\n" +espans = split_spans(ENUM) +check("enumerator doc tiles", verify_tiling(espans, ENUM), []) +eprose = [ENUM[s["start"]:s["end"]] for s in espans if s["kind"] == "prose"] +check( + "(d) '**1.' does not orphan as a fragment", + any(t.strip().startswith("**1. The canonical") for t in eprose), + True, + f"got {eprose}", +) +YEAR = "The clause was added in 2026. The next sentence follows.\n" +check( + "(d) a real boundary after a year still splits", + len([s for s in split_spans(YEAR) if s["kind"] == "prose"]), + 2, + "enumerator rule must not swallow '…in 2026. The next…'", +) + +FM = '---\ntitle: "A title"\nstatus: "DRAFT. Nothing applied."\n---\n\nBody prose here.\n' +fmspans = split_spans(FM) +check("frontmatter doc tiles", verify_tiling(fmspans, FM), []) +check( + "(e) frontmatter is line-oriented, not shredded", + [FM[s["start"]:s["end"]] for s in fmspans if s["kind"] == "frontmatter"], + ['title: "A title"\n', 'status: "DRAFT. Nothing applied."\n'], +) +check( + "(e) frontmatter stays taggable", + all(s["kind"] in TAGGABLE for s in fmspans if s["kind"] == "frontmatter"), + True, + "excluding it would shrink the quarantine in the author's favour", +) + print("\nForbidden-heading detector (§3.3) — must fire, and must not over-fire:") for h in ("## Limitations", "## What this does not do", "### Open questions", - "## Caveats and scope", "## Assumptions"): + "## Caveats and scope", "## Assumptions", + # The FALSE PASS this screen actually gave, on a real package. + "## Part VII — Disconfirming evidence, which the steward asked to be carried", + "## Evidence against", "## Known gaps"): check(f"fires on {h!r}", bool(FORBIDDEN_HEADING_RE.search(h)), True) for h in ("## Part I — Grounding", "## The ruling", "## Conditions", - "## What changed"): + "## What changed", "## Part IV — Consequence-trace"): check(f"quiet on {h!r}", bool(FORBIDDEN_HEADING_RE.search(h)), False) +check( + "screen is defeated by a bare section number — it is a screen, not a decision", + bool(FORBIDDEN_HEADING_RE.search("## Part VII")), + False, + "recorded so the pass is never read as a §2a verdict", +) + +print("\nQ-resolution (§3.2) — must find a real quote and REJECT a fabricated one:") +from reduce import AXIOM_SOURCES, check_q_resolution, normalise_quote # noqa: E402 + +CLAUDE = AXIOM_SOURCES["CLAUDE.md"] +if CLAUDE.is_file(): + # One genuine verbatim clause, one plausible fabrication. + QDOC = ( + "> The loop is load-bearing\n" + "\n" + "> The loop is entirely optional and may be removed\n" + ) + qspans2 = split_spans(QDOC) + qidx = [i for i, s in enumerate(qspans2) if s["kind"] in TAGGABLE] + check("q fixture tiles", verify_tiling(qspans2, QDOC), []) + check("q fixture has two quotable units", len(qidx), 2) + tags = {qidx[0]: ("Q", "CLAUDE.md"), qidx[1]: ("Q", "CLAUDE.md")} + probs = check_q_resolution(qspans2, QDOC, tags, {"CLAUDE.md": CLAUDE}) + check("genuine quote resolves", any(f"span {qidx[0]}" in p for p in probs), False) + check( + "FABRICATED quote rejected", + any(f"span {qidx[1]}" in p for p in probs), + True, + "a §3.2 that cannot reject an invented quote checks nothing", + ) + bad = check_q_resolution( + qspans2, QDOC, {qidx[0]: ("Q", "not-an-axiom-source.md")}, {"CLAUDE.md": CLAUDE} + ) + check("unknown source rejected", len(bad), 1) +else: + failures.append("CLAUDE.md unresolvable — §3.2 control did not run") + print(" FAIL CLAUDE.md not found") + +check( + "normalisation tolerates emphasis and rewrap, not word changes", + (normalise_quote("> **The loop** is\nload-bearing") == "The loop is load-bearing", + normalise_quote("The loop is load bearing") == "The loop is load-bearing"), + (True, False), +) print("\nReal document — the splitter must tile actual governance prose:") REAL = Path(__file__).resolve().parent.parent / "skill-harvest-fix-lane-JURIST-RULING-2026-08-01.md"