session 2026-09-04: PENDING-179 gates, OWED-5 queued, Active Session rotated

Session record, ledger merge, MEMORY.md rotation (prior Active Session
demoted verbatim to MEMORY-reference.md), 6 KG triples, and OWED-5 queued
in PENDING-141's ratified owed-entries list.

OWED-5: a must-detect control must report its denominator, and a denominator
of zero is a FAIL. Steward-stated 2026-09-04, queued unruled — the ladder is
frozen under REVIEWED-123, and turning the rule on converts currently-green
controls to red across the fleet, which is a ruling rather than an edit.

Earned on the vacuous PASS (0/0) that nearly certified a broken discriminator.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X3L79vgAnt1x2kxvf23Qt7
This commit is contained in:
David F Glidden
2026-09-04 10:30:41 +02:00
co-authored by Claude Opus 5
parent c150bdff17
commit 65c0884dc9
5 changed files with 255 additions and 7 deletions
+9
View File
@@ -3668,6 +3668,15 @@ So **PENDING-138 and this entry are worded to avoid the bare uppercase token**,
> A dry run shows what the tool *intends*. It cannot show what the tool will do to a file whose shape the tool misreads. On 2026-08-17 a 16-file stamping pass dry-ran clean, applied clean, and silently orphaned the frontmatter of the 3 files whose shape differed — and the post-hoc check reported `malformed: none`, because it asked whether each file *began with frontmatter and a banner* (true) rather than whether the stamp had *preserved the record's keys* (false).
> **The check that worked was the one that could not be written from intent:** recover each file's pre-change text from git, extract its key set, and assert no key was lost. That control cannot be satisfied by a file the tool mangled, because its subject is the *difference* rather than the result.
**OWED-5 — a must-detect control must report its denominator, and a denominator of zero is a FAIL.** · **Authorizing ruling: NONE — steward-stated 2026-09-04, queued unruled.** · **Ladder claim-class: gate-design claims.**
> **A control that finds nothing to test reports success indistinguishable from a control that tested everything and found no fault.** `PASS (0/0)` is not a pass; it is the instrument saying it never ran, in the voice of an instrument that did. Print the denominator on every must-detect line, and make an empty one fail loudly.
>
> Earned 2026-09-03 on gate 2a of the mumble-discriminator check. Ground truth for "is this a mumble" was drawn from a prompt signature copied out of `tarbuckle-invoke.py` — the file just read — which matched **0 of 65** transcripts, because the mumbles are written by three *other* fool surfaces with a different prompt. The gate printed `GATE 2a [must-detect] every known mumble reads 0 : PASS (0/0)`. Accepting it would have certified the discriminator sound and wired a broken predicate into three further sites. It was caught by the standing *a null search is evidence about the QUERY* rule, i.e. by a human-held discipline rather than by the instrument.
>
> ⚠ **This is OWED-1's wrong-subject family seen from underneath, and it does not duplicate it.** OWED-1 asks whether the control's *subject* is the claim's subject. This asks whether the control had any *cases* at all — a control can have the right subject and still be vacuous. The two fail independently and the cheap one is checkable by machine.
>
> ⚠ **The rule generalizes past this instance, which is why it is queued rather than patched in place:** it applies to every must-detect in the fleet, and turning it on will convert some currently-green controls to red. That is the point, and it is also why it is a ruling rather than an edit.
---
## PENDING-142 — The open/closed criterion answers "does a REVIEWED header name this id?", not "is this item still awaiting the steward"
**Date:** 2026-08-17