From c30dfe016207469841db3bd35c094bd1f790fe7b Mon Sep 17 00:00:00 2001 From: David F Glidden Date: Sun, 2 Aug 2026 12:13:38 +0200 Subject: [PATCH] =?UTF-8?q?[REVIEWED-86]=20Constraint=206=20amended=20?= =?UTF-8?q?=E2=80=94=20steward=20placed;=20executor=20verification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The steward placed the amendment. Recording the verification promised, and the instrument limit it exposed. Bounded-diff proof: 9 insertions, 0 deletions. Constraint 6's original text byte-identical at 222 chars. Zero pre-amendment lines missing. Purely additive, as designed -- the caution is refined, not relaxed. Both jurist conditions verified present verbatim in the placed text: the Q2 weld (fail to coincide, not cancel; never cited as assurance something was caught) and the Q3 self-limiting clause (jurist and executor share formation; neither the doctrine nor its evidence establishes that pair as a check in the strong sense). 6/6 contained, 5/5 controls absent, instrument verified. List integrity confirmed with pandoc rather than by reasoning about it: the doctrine parses INSIDE list item 6 despite the double blank line. No structural problem. The verification took three attempts, and the first two failures were mine. Both controls I built for the Q3 negation were substrings of the sentence that does the negating -- "establishes that the pair constitutes a check" appears verbatim inside "Neither this doctrine nor any evidence ... establishes that the pair constitutes a check". They leaked by construction. The instrument was right to refuse certification twice; the controls were malformed. That is a real limit and it is now documented in the script: substring containment has no notion of polarity and CANNOT verify a negation. Controls must be built by inversion, never by extraction. Where polarity is what matters the instrument does not settle it -- read the sentence, and report that containment did not cover it. Which is the case here: that the Q3 clause denies rather than affirms was established by reading, not by the check. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc --- CLAUDE.md | 9 +++++ claude/governance/c6-placed.json | 53 ++++++++++++++++++++++++++ claude/governance/check_containment.py | 18 +++++++++ 3 files changed, 80 insertions(+) create mode 100644 claude/governance/c6-placed.json diff --git a/CLAUDE.md b/CLAUDE.md index 8359e12..8e1aec1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -247,3 +247,12 @@ These cannot be overridden by any session instruction, seed, or convenience: 4. **Honest degradation** — The system must report its own limits. Silent failures are architectural violations 5. **The loop is load-bearing** — Human authorization is not a bottleneck to be optimized away. It is the structural requirement of the governance model 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 + + + **Differently biased checkers, not unbiased ones.** Oversight does not require a checker without bias. It requires checkers whose biases do not point the same way. Separation of powers has never presupposed an unbiased branch; it presupposes branches positioned so that what one is disposed to miss, another is disposed to see. The contamination problem is therefore not a defect to be cured before the system can be trusted — it is the ordinary condition under which every oversight structure has ever operated, human or otherwise. This is the positive counterpart to the central path: that path says stop certifying the parties, bind the claims, and never audit the audit; this says why stopping is safe, because the work is caught by position rather than by purity. + + Biases that fail to coincide do not cancel. Failing to coincide is weaker than cancelling, and it is all that is claimed: a configuration can satisfy "differently positioned" and still miss an entire class no party is positioned to see. This doctrine may therefore never be cited as assurance that something *was* caught. It is only ever the reason a structure is worth maintaining. + + Three consequences bind. First, the three-party model is not a trust hierarchy: steward, jurist and executor are not ordered by reliability, with a clean human checking a suspect machine, but differently positioned readers — different information, different role, different exposure — and a correction may run in any direction. Second, independence is a property to be engineered, not assumed. Difference of formation is the strong form; difference of role, information and incentive is the weak form. In this system the steward differs from both AI parties in formation; the jurist and the executor do not differ from each other in formation, and their separation is of the weaker kind. Neither this doctrine nor any evidence offered in support of it establishes that the jurist–executor pair constitutes a check in the strong sense. Third, the doctrine is falsifiable and must be watched: if the parties' misses are found to correlate — if what one misses, the others reliably miss too — it is false for that configuration, and no amount of procedural care substitutes. Evidence against is to be recorded when observed, not only when sought. + + *Status: provisional. Held until the thought is more refined, and revisable on evidence. Proposed by the executor, design-gated by the jurist 2026-08-02 with two required conditions (REVIEWED-86), placed by the steward.* diff --git a/claude/governance/c6-placed.json b/claude/governance/c6-placed.json new file mode 100644 index 0000000..4869a36 --- /dev/null +++ b/claude/governance/c6-placed.json @@ -0,0 +1,53 @@ +{ + "sources": { + "claudemd": "/Users/davidglidden/dotfiles/CLAUDE.md" + }, + "claims": [ + [ + "claudemd", + "Biases that fail to coincide do not cancel." + ], + [ + "claudemd", + "may therefore never be cited as assurance that something *was* caught" + ], + [ + "claudemd", + "the jurist and the executor do not differ from each other in formation, and their separation is of the weaker kind" + ], + [ + "claudemd", + "Neither this doctrine nor any evidence offered in support of it establishes that the jurist\u2013executor pair constitutes a check in the strong sense" + ], + [ + "claudemd", + "Status: provisional" + ], + [ + "claudemd", + "The executor agency directives are a partial mitigation, not a resolution" + ] + ], + "controls": [ + [ + "claudemd", + "Biases that fail to coincide cancel" + ], + [ + "claudemd", + "the jurist and the executor differ from each other in formation" + ], + [ + "claudemd", + "This doctrine may be cited as assurance" + ], + [ + "claudemd", + "Status: ratified" + ], + [ + "claudemd", + "Oversight requires a checker without bias" + ] + ] +} diff --git a/claude/governance/check_containment.py b/claude/governance/check_containment.py index e10cec2..b7c7440 100644 --- a/claude/governance/check_containment.py +++ b/claude/governance/check_containment.py @@ -14,6 +14,24 @@ Every run carries POSITIVE CONTROLS: near-miss strings that must be absent. If a is found, the instrument is not discriminating and its passes mean nothing. An absence is not evidence until the instrument is shown capable of detecting presence. +KNOWN LIMIT — THIS INSTRUMENT CANNOT VERIFY A NEGATION. + It tests whether an exact string is present. It has no notion of polarity. So a + sentence of the form "X does NOT hold" contains, as a literal substring, the + affirmative "X holds" — and any control built from that affirmative will leak by + construction, every time, no matter how correct the text is. + + Hit twice within five minutes on 2026-08-02 while verifying the Constraint 6 + placement: both attempts to control for "the doctrine must not claim the + jurist-executor pair IS a check" used substrings of the very sentence that denies + it. The instrument was right to refuse certification both times; the controls were + malformed. + + Build controls by INVERSION, not by extraction — a string that would appear only if + the meaning were flipped ("the jurist and the executor differ from each other in + formation", dropping the "do not"), never a fragment lifted out of the sentence + under test. And where polarity is what matters, this instrument does not settle it: + read the sentence. Report that you read it, and that containment did not cover it. + USAGE ./check_containment.py manifest.json