[HARDENING] STATE-CLAIM + the resolution state, built together (REVIEWED-127)
Both halves of the schema, shipped in one change because the ruling said half a schema
invites a third patch and a third patch is how a vocabulary accretes instead of being
designed.
157 — resolution state. `resolved:` on any block; a resolved block is no longer due but
is NOT dropped: it prints as a closed ledger, because a discharge that vanishes from the
report is its own decay. The pointer must RESOLVE — a real path or a real git object —
so an undocumented discharge is impossible to express rather than merely discouraged. A
dangling pointer reports in the register-integrity lane, the same lane as an amendment
that replaced the record it amends; both are a record closing over its own history.
The 25th's hand-rename is MIGRATED back to DEFERRED-DECISION with resolved: set. That
block was the per-instance workaround 157 was filed against, and it is now the
migration's own test case.
158 — STATE-CLAIM. Reuses trigger_fired() verbatim and inverts only what firing MEANS:
for a deferral, fired = the decision is due; for a state-claim, fired = THE CLAIM IS
FALSE. Two new trigger kinds earned directly from today's instances: text-present (the
trial-09 hold, falsified by REVIEWED-124's existence) and file-changed-since ("the filed
rule not edited", false one hour after writing).
16 new controls, each with its discriminating half — fires on met, silent on unmet,
manual listed-never-fired, resolved excluded from due-ness, the SAME block unresolved
still due, a real pointer resolves, "yes, done" does not.
Proven on the LIVE blocks, not only fixtures: pointing the state-claim at an older
commit made it report FALSIFIED by name; replacing the resolution with "yes done" made
register-integrity report it; both restored and both returned to quiet.
⚠ One control failed before shipping and the failure was the useful part. The negative
control for file-changed-since pointed at FOOL-SEED-RULE.md, which this same session then
edited — so "unchanged since HEAD" broke, correctly. A control whose subject is "did this
file change" must not point at a file the session is changing. Re-pointed at a frozen
2026-08-02 trial artifact, with the reason recorded at the fixture. Caught because the
controls run on every invocation rather than in a separate suite.
First two real state-claims filed, deliberately one of each kind: ~/CLAUDE.md untouched
under PENDING-150, mechanically watched and [ESCALATE]-grade the moment it goes false;
and §9's channel unbuilt, marked `manual` because it has no filename yet and inventing a
proxy falsifier is the error the schema's own comment warns against.
⚠ The zero-state prints a WARNING, not a tick: "0 marked, NOT none-stale" with the ~57
unmarked candidates named as a grep. An instrument that reads nothing reports exactly
like one that finds nothing, and that is the failure this item exists to end.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J6hZXNYSxEfZseBGTni4sf
This commit is contained in:
co-authored by
Claude Opus 5
parent
0dcf304486
commit
063eccfd80
+10
-10
@@ -4252,20 +4252,20 @@ Jurist: *"Confirm that lowercasing is applied at exactly one point in the code a
|
||||
| PENDING-89 source (iv) | **AUTHORIZED to read** — 55 files; answers generation diversity only, never correlation of misses |
|
||||
| §13.6 block | ⚠ **LIFTED** — its stated condition (§5 ratification) is met |
|
||||
|
||||
<!-- DISCHARGED-DECISION: fool-beacon-derivation-run-once
|
||||
<!-- DEFERRED-DECISION: fool-beacon-derivation-run-once
|
||||
since: 2026-08-22
|
||||
trigger: date 2026-08-25 — FIRED. Announced BY NAME at the 2026-08-25 wake, which is
|
||||
the first time this mechanism carried a real one rather than a rehearsed one.
|
||||
trigger: date 2026-08-25
|
||||
owner: executor
|
||||
discharged: 2026-08-25 — the derivation ran ONCE. Record:
|
||||
claude/governance/fool/seed/FOOL-BONES-2026-08-25.md, commit 5694b925.
|
||||
RENAMED, not deleted: governance-drift-check.py's parser has no `resolved:` field, so a
|
||||
taken decision would be reported COME DUE forever and the instrument would degrade into
|
||||
crying wolf. Renaming the key stops the report while leaving the record that the trigger
|
||||
existed, fired, and was answered. If a `resolved:` field is ever added, this reverts to
|
||||
DEFERRED-DECISION with that field set.
|
||||
resolved: 2026-08-25 — ran once; claude/governance/fool/seed/FOOL-BONES-2026-08-25.md, commit 5694b925
|
||||
-->
|
||||
|
||||
⚠ **MIGRATED 2026-08-25 under REVIEWED-127.** This block was closed on the 25th by
|
||||
hand-renaming its key to `DISCHARGED-DECISION`, because the schema had no way to say
|
||||
*answered*. That rename was the per-instance workaround PENDING-157 was filed against, and
|
||||
it is now reverted: the key is `DEFERRED-DECISION` again and the closure is carried by a
|
||||
`resolved:` field the checker reads. **This block is the migration's own test case** — the
|
||||
first resolved deferral, and the one whose pointer must resolve.
|
||||
|
||||
⚠ **TRIGGER BLOCK ADDED 2026-08-24.** Until today this run-once, irreversible, dated act had **no
|
||||
trigger of any kind** — no cron, no launchd, no scheduled agent, and not a tracked
|
||||
DEFERRED-DECISION. It was one of the 105 prose deferrals the drift-check reports as carrying no
|
||||
|
||||
Reference in New Issue
Block a user