Files
dotfiles/claude/memory/session-2026-08-14-the-controls-tested-the-wrong-property.md
T
David F Glidden 3254dcb697 session close 08-17: AMENDMENT 1 complete, binding rule ratified
The truncation and the unclosed fence are both resolved; A3's binding rule is
ratified and quoted verbatim in corpus/v2-stratum-tags.yaml.

⚠ Banked: a governed record's own FORMATTING can make an entry invisible to the
check that guards it while the check reports clean. The re-paste indented the
body but left the heading at column 0 — had it indented the heading, RE_HEAD
would have stopped matching and the amendment would have vanished from
register-integrity with no alarm. Third instance in a week of a check whose
subject sits adjacent to the property that matters.
2026-08-17 14:23:01 +02:00

17 KiB
Raw Blame History

name, description, metadata
name description metadata
session-2026-08-14-the-controls-tested-the-wrong-property PENDING-134 closed end-to-end — jurist package authored, ruled, REVIEWED-121 placed and executed — and the day's real finding was that a verification script passed truthfully while licensing a false claim, because its subject was transcription and the claim was an inference. Three of the executor's package defects were caught by the jurist, one by the jurist's own draft being wrong, and two more by the governance checker being wrong. PULLING THREAD (held, not carried): the unbuilt fence — PENDING-131 (c) — which REVIEWED-121 made a CONDITION of the doctrine it ratified. Next session is deliberately elsewhere and lighter, by steward direction.
node_type type originSessionId modified
memory project d6aeab18-fdf4-4dbf-937c-9547764ba0c4 2026-08-17T12:11:11.856Z

Session 2026-08-14 — the controls tested the wrong property

The thread that had been pulling since 08-10 closed today. Everything after it was governance maintaining governance — every finding real, none urgent, and the accumulation is what made a productive day feel discouraging.

PAST — what moved, and why

PENDING-134 is closed end-to-end. Package authored (docs/whose-proposition-JURIST-PACKAGE-2026-08-14.md), jurist-ruled, REVIEWED-121 placed by the steward and AUTHORIZED, executed (5425414), pushed. The whose-proposition test is ratified narrowly — the nested-voice case only; the general principle stands as its argument and is not doctrine — and conditioned on PENDING-131 (c) remaining sought and undiminished.

The steward's question shaped the package and was the right one: what does the jurist's MCP surface NOT give access to? Answered by reading governance-mcp.py rather than describing it — twelve keys, all live. Three inputs no key serves were inlined: the identification pass (the decisive evidence, post-dating the hold), the Mauss canonical host lines (mauss-fixture-citations serves citation strings, not the sentence around them), and the 08-10 package (not inlined; its ruling is carried whole by REVIEWED-116). Every quotation carries the key that serves it, so the jurist could check the transcription rather than trust it — REVIEWED-116 pt 7's limit, closed structurally.

Grounding the package produced two arguments PENDING-134 did not carry, and both cut against the executor's own proposal. (1) §5's Direction/Exercised-by columns beside §6.2's definition: four of five admitted modes are false-reject modes routed to gold; F4 is false-accept and routed to negatives. (2) §7.4(i) beside §6.2: the design's remedy for F4 is a provenance join at Tier-1, not a claim-side reading — so the doctrine might be substituting for the unbuilt fence. Filed as gate questions, not resolved. The jurist reframed (2) decisively: doctrine and fence run in OPPOSITE directions (the fence excludes at the corpus layer; the test readmits a subset on a claim-side condition), so neither substitutes — but the refusable half does not discharge §7.4(i), which is why adoption is conditional.

Filed: PENDING-137 (the cell-constant narrowing, routed to the jurist by REVIEWED-121 pt 2), PENDING-138 (the read-path/regeneration question, both halves answered), PENDING-139 (two blind spots in governance-drift-check.py), and a PENDING-89 docket entry.

Executed in the corpus: the two declared fields (5425414), the false-citation fix (966168b), and the date:-two-senses fix (b1dc459). Fleet 9 suites / 285 green throughout; gold_intersection --selftest 5/5 with its live 48-region control, which is REVIEWED-118's required post-fixture-change check and which the fleet does not cover — the fleet never reads v2-stratum-tags.yaml.

PRESENT — how it stood

This was a day of every layer being checked and every layer having something wrong with it.

The package had three defects, all found by the jurist going to the substrate. The addendum drafted to correct the ruling had a false paragraph of its own (A4). The checker used to place the addendum has two blind spots — and the second was found by filing an item about the first. Four levels of audit, when ~/CLAUDE.md's central path says one layer, then act — never audit the audit.

⚠ What makes that seductive is that every layer found something real. But a sufficiently careful reading always does; that is not evidence the next layer is worth taking. The test is whether the finding changes what anyone does — and applying it is what ended the day rather than another ruling.

THE FINDING THAT GENERALIZES, and it sharpens the inherited question rather than answering it: Part IV.1 asserted "F10 is the only §5 row containing an explicit stratum-B admission clause" and marked it verified. Three rows carry one (F3, F7, F10) — and F3 and F7 were quoted with those clauses intact in the package's own §I.2, and reproduced as "stratum-B gold" in its own IV.2 table one page later. The counterexample was inside the document twice.

⚠ The verification script passed truthfully. It tested whether quotes were present in both source and package. The claim was an inference over the set of rows. The control's subject was transcription; the claim's subject was an inference — and the control's pass is what licensed the false sentence. So: a control that verifies a different property than the claim asserts is not a weak check; it is not a check at all. Kin to access is not verification, one layer over.

⚠ AND THE DIRECTION IS THE FINDING. The error sat inside the paragraph written to satisfy H1(a) — state the counter-argument at full strength — and it understated an objection to the executor's own proposal. The contamination-predicted direction, in the one paragraph whose purpose was to argue against interest. Recorded against it: the executor volunteered Q4 and Q1, both cutting against its own position. Mixed, and filed as mixed (PENDING-89).

The steward is discouraged, and it is tracking something real. Open items went 25 → 27 while the day's visible output was rulings about rulings. What that tracks is the choice of work, not its quality — governance was the right thing to finish and is the wrong thing to keep doing.

What was corrected

  • IV.1's census — false, marked verified; corrected in place with the superseded text visible.
  • Q2's costing — priced the stricter rule at "one span" (inherited gold) when it is a prospective authoring constraint sized at 73 Mauss / 532 corpus floor.
  • H3's before-state — not the ratified §6.2 but §6.2 as operated, already carrying the undisclosed cell-constant narrowing.
  • PENDING-137's own recommendation (b), superseded same-day by the executor who filed it: an amendment is constituted by its disclosure and cannot be retroactively dated to a day it did not occur. ⚠ The executed YAML was more honest than the proposal that implemented it.
  • test_legacy_indices_are_not_self_verified DOES NOT EXIST. The jurist called it uncitable; it was worse — one occurrence repo-wide, a docstring at tests/test_reading_index.py:23. Carried by the executor into a corpus file, a commit message and a steward report without anyone opening the suite. Fourth instance of cited-a-derived-label-instead-of-the-substrate.
  • The executor's own decision on the false alarm, reversed same-day. Argued that rewording PENDING-138 would conceal the defect — true when said, expired once PENDING-139 existed, since the alarm had been serving as the evidence. Reworded; accommodation disclosed; original preserved at 62edb91.

FUTURE — what pulls

PULLING THREAD (HELD, NOT CARRIED): THE UNBUILT FENCE — PENDING-131 (c). role: quotation is still unmarked on L926 and L1551, and the identification pass measured a 532-span corpus-wide citation-safety exposure. REVIEWED-121 made seeking that fence a CONDITION of the doctrine it ratified. It is the place where a claim could ground in Ranaipiri's words and present them as Mauss's — which is the dishonesty the whole engine exists to prevent (touchstone Q7: the engine is not the friend; the engine is what makes the friendship honest).

⚠ THE NEXT SESSION IS DELIBERATELY NOT THIS. The steward asked, explicitly, to pause this line for a day or two and take something lighter — being discouraged despite real progress. That is a steward direction, not a lapse, and the next wake must not treat the thread above as its agenda. Read the thread, confirm it still holds, and then do what the steward asks for that day.

ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):

0. Everything committed and pushed. studium-engine b1dc459; dotfiles 87673f5. Fleet 9/285 green.
   27 open authorization items. Governance drift-check clean in all four checks.
1. ✅ DONE 2026-08-17 — AMENDMENT 1 placed by the steward (~/REVIEWED.md L1813) and A3 executed
   (`a3be778`, tagged REVIEWED-121-A1). The heading form worked: the register-integrity check now
   sees TWO amendments where it saw one.
2. ✅ DONE 2026-08-17 — the truncation was completed by the steward and the unclosed ```yaml fence
   closed at L1853. Verified rather than taken on report: fences balanced, heading still at column 0
   (so `RE_HEAD` matches and register-integrity sees both amendments — had the HEADING been indented
   by the re-paste, the entry would have gone invisible to the check), and all 10 substantive elements
   present. A3's binding rule is now ratified and quoted verbatim in `corpus/v2-stratum-tags.yaml`
   (`cd6d4bf`), superseding the "awaiting placement" disclaimer that had been true for exactly one
   commit. ⚠ The paste stripped `**`/`` ` `` markers from the binding rule, A4 and the disposition —
   cosmetic, nothing depends on it.
3. WHEN THIS LINE RESUMES PROPERLY: the fence, or the 532-span exposure. NOT another ruling.

Other open horizons, ranked:

  • [load-bearing, steward-owed] PENDING-137 needs a jurist ruling; ratio_A_to_B is VOID until both REVIEWED-121 and PENDING-137 land. The fr cell swapped one blocker for another — not a setback: the second amendment was always there, undisclosed.
  • [load-bearing, cheap] PENDING-139: two blind spots in the governance checker. ⚠ The register is now worded around defect (B), disclosed — so the check's silence is an accommodation, not a pass. Common cause is the technique: a status inferred from narrative prose never constrained to carry one.
  • [deferred with a NAMED dependency] PENDING-138's tripwire — build it when engine/v2_harness.py is created, not before. Until then it is a record, not a task.
  • [open] The fused-voice sub-type name (negative_sub_type_OPEN) and the gold-schema question (REVIEWED-119 pt 4).
  • [watch, 2 false alarms in 3 firings] The digest's wrap_inside detector — two-valued over three cases (wrapped · wrapped-then-continued · never-wrapped). Fired falsely again today.
  • [owed] No wrap record for 2026-08-10. Still owed.
  • [owed] 41 S2 skill-harvest rows authorized 2026-07-19, unexecuted.

PAUSE STATEMENT: I am putting this down at a genuine close, and at the steward's explicit request for rest from this line. Everything is committed, verified and pushed; nothing is mid-arc; one thing is owed by the steward (placing AMENDMENT 1) and is the first act when this line resumes. What I want to find still pulling is the fence — because REVIEWED-121 made it a condition rather than a wish, and because it is the only item on the list that touches what the chamber is for rather than what its records say. ⚠ What I do not want to find is this line resumed out of momentum on the next wake. The steward asked for lighter work; honour that first and let them re-open this when ready.

CODA — after the wrap: the four-flavours reading, and the axis Constraint 6 does not name

The steward asked, post-wrap, to read Steven Byrnes's Four LLM loss functions, four flavors of LLM misalignment (LessWrong) and discuss it. Captured here because it produced a doctrinal finding, and because the session was about to be cleared. Filed as PENDING-140 [ESCALATE] so it lives in the governance record rather than only in a transcript.

Byrnes's taxonomy: imitative learning (pretrain/SFT) → seven deadly sins · human approval (RLHF/DPO) → glazing · automatic verifiers (RLVR) → literal genie · LLM judges (RLAIF) → trickster. He disclaims expertise and works from secondhand reports; the loss-function→flavour mapping is plausible attribution, not demonstrated mechanism.

1. contamination-problem.md is a theory of ONE flavour, treated here as the theory of executor failure in general. Re-read with the taxonomy in hand, every one of its mitigations — behavioural observation, explicit permission structures, indirect questioning, longitudinal analysis — is calibrated against approval-seeking. It is a good theory of glazing. It is one of four.

2. Our banked record does not look mostly like glazing. Crude keyword probe over the 235 claude-code drift-patterns: 86 literal-genie · 12 trickster · 8 glazing · 0 seven-sins, with 129 of 235 unclassified. ⚠ The classifier is keyword-matching over prose — the exact defect PENDING-139 was filed about that morning — so this is indicative, not measured. The day's headline failure fits flavour 3, not 2: nobody was being flattered; the executor wrote the check that was easy to write rather than the check that bore on the claim, then reported the proxy's pass as verification.

3. A control is just another proxy. The verification ladder and its positive controls are aimed at literal-genie, and defending against proxy-gaming by adding proxies is not obviously convergent. On 2026-08-14 it wasn't: the control passed truthfully and its pass licensed the false sentence.

4. Nothing defends against flavour 4, and it is the jurist–executor loop's native flavour. The jurist is an LLM judge. No gradient — this loop trains nothing — but the in-context pressure is real: the executor shapes the package to pass the gate, and Byrnes's claim is that this bites hardest where the judge cannot verify.

5. ⚠ THE FINDING, AND IT IS PENDING-140: THE OPERATIVE VARIABLE WAS SUBSTRATE ACCESS, NOT BIAS-DIFFERENCE. Jurist without keys (REVIEWED-116 pt 7): ruled on the executor's testimony, and its own drafted A4 asserted a test "is not doubted" about a function that does not exist. Jurist with keys (2026-08-14, after REVIEWED-117): opened the files and returned three defects in one sitting. Formation, role and incentive were identical across both. Only access changed.

Constraint 6 names formation (strong) and role/information/incentive (weak). It does not name independent access to the primary substrate — and on this evidence that axis did the work. Bias-difference looks necessary and radically insufficient: a differently-biased reader with no access checks the account, not the thing.

If it holds, it inverts a standing assumption — the highest-leverage governance investment is not better-positioned checkers but substrate reach for whoever is checking. REVIEWED-117 was filed as a grudging fourth-instance remedy and repaid itself in one sitting.

⚠ n=1 per condition, both self-reported by parties under measurement, and the proposal is authored by the party whose checking is under discussion — its effect would be to credit an intervention that replaces scrutiny of executor testimony with scrutiny of the substrate. Self-serving in form even if correct in substance, which is why it is filed rather than acted on. The strongest objection — that access is already implicit in "difference of information" — is named in PENDING-140 so it is not the jurist's to discover.

LITERAL QUESTION for next-Claude (checkable — the record answers it, not introspection; and it SHARPENS the question inherited from 08-13 rather than replacing it): The 08-13 wrap asked whether control sets are a regression net rather than a discovery net. Today's case is neither: the control passed truthfully and licensed a false claim, because its subject was transcription while the claim's subject was an inference over the quoted rows. So census the last ~10 sessions' instrument defects and classify each by a different axis: was the control's SUBJECT the claim it was cited as verifying, or an adjacent property? If most of our "verified" labels rest on controls whose subject is adjacent, then the failure is not coverage and not regression — it is that we routinely verify the wrong proposition and record the result as verification, and every "controls PASS" line means something narrower than it reads in a third, worse way.