Repository navigation
floor_cut's trigger was a prose edit against a six-capability loss — five capability-grain rows, and the trigger now points at them - #9944
Conversation
…five capability-grain rows, and the trigger now points at them THE DEFECT. gunbc.rung_drop floor_cut declared six lost capabilities -- heal, the seven effect gates, the fmt gate, merge-admission stamping, the falsifier cadence, and the per-witness eval deadline -- under one restoration trigger: "this paragraph is rewritten as an ordinary present-tense description ... when the re-add queue closes". That is 4b(3)'s grain mismatch in its plainest form, a plural loss with a singular trigger whose actuation is a PROSE EDIT. AND THE PREDICATE HAS NO TRUTH CONDITIONS. "the re-add queue" has exactly one referent in the tree: a numbered list under Step 3 of docs/plans/floor-cut-replacement-plan.md, which gunbc.doc_graph_roots registers as a HandAuthoredDocBind -- a hand-authored document, so no .dag authority carries its contents. No membership object, no per-item disposition field, no closure predicate (searched .dag, .rs and .md). Its own item 8 proposes the falsifier cadence NEVER RETURNS, and an item that never returns cannot close by returning, so closure would need a per-item disposition nothing records. A row that cannot be retired by its trigger gets retired instead by someone judging the paragraph stale. FIVE ROWS, NOT SIX, AND THE ARITHMETIC IS SHOWN. Two of the six were already dispositioned and authoring rows for them would have been fabricated debt. GENERATED-ARTIFACT DRIFT is RESTORED -- gunbc#9415 enrolled the required generated-artifact phase -- so the effect-gates row states the fraction: 1 of 7 discharged, 6 outstanding. THE PER-WITNESS EVAL DEADLINE already carries its own drop at gunbc.witness_row_cost gunbc_ci_fast_lane_rule_note and is CITED, never re-declared. WHAT THE FIVE MEASURED, from the tree rather than from the paragraph under suspicion: - fmt: neither required lane runs cargo fmt at all; gunbc.commit_workflow already carries it as an Uncovered residual, and the hook is opt-in per clone and bypassable (#6658 landed an unformatted .rs with no hook catching it). - merge-admission: the receipt's producer is deleted, so a live consumer has no input. - heal: gunbc.ci_heal_credential survives and still cites gunbc.ci_workflow ci_heal_generated_artifacts_job -- and gunbc.ci_workflow does not exist in this tree. - falsifier cadence: no workflow runs a cold comparison; v2.std.live_tree records two carriers whose enforcement claim died with it. - effect gates: six of seven have no required consumer. EACH TRIGGER NAMES A CAPABILITY AND REFUSES THE ARTIFACT THAT WOULD LOOK LIKE ONE -- repairing heal's dangling citations heals nothing; a gate that reports without refusing is the inert tier; re-adding a merge_admission_gate that reads a receipt nobody writes reproduces today's state with more code; strengthening the pre-push hook re-imports pressure that converts honest reds into workaround greens. THE FALSIFIER CADENCE'S DISPOSITION IS OPEN AND SAYS SO. "Proposed: never returns" is a proposal in a hand-authored plan, not a ruling; a capability deliberately not returning is a scope removal and that is the operator's call. The row retires EITHER by the capability returning OR by an operator ruling it withdrawn -- and in the second case the carriers that named the cadence as their enforcement must be corrected in the same change. floor_cut ITSELF CHANGES IN THIS DIFF, or the fork would be the repair's own product: its trigger sentence now names the five rows and states that it retires when all five retire and by nothing else. Each of the five carries the same constraint from its own end, so the reading where someone retires floor_cut having read one sibling is closed. The narrative paragraph is untouched; splitting the 31,681-character blob remains its own item. FILED: gunbc.recurring_failure_mode fabricated_debt -- a declaration authored for an exposure that does not exist or is already declared elsewhere, whose trigger cannot fire because there is nothing to restore, with the two catches above as its receipts. Executed: generated-artifact projections regenerated from the authority; DESIGN.md and docs/design-ledgers.md carry all five rows and the new class; the rung-drop standing witness (test.claim.rung_drop_standing_partition_witness) passes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJ1bx2PttQ55XYhFqt3HUx
…-floorcut-triggers # Conflicts: # DESIGN.md # dag/gunbc/recurring_failure_mode.dag # docs/design-ledgers.md
…-floorcut-triggers # Conflicts: # DESIGN.md # dag/gunbc/recurring_failure_mode.dag # docs/design-ledgers.md
…-floorcut-triggers # Conflicts: # DESIGN.md # dag/gunbc/recurring_failure_mode.dag # dag/gunbc/rung_drop.dag # docs/design-ledgers.md
How this merge was resolved, and why the obvious check was not the one relied onThis branch integrates main at The check that would have passed while the file was broken
So that check was not treated as evidence. Two things were used instead. 1. Execution, not inspection. Regenerating the projections requires the instrument to parse both authorities and render both new classes. A severed row is a parse refusal at the module index ( 2. A join that can distinguish a duplicate from a set. vivid-deer hit the mirror-image failure tonight: an identity join returning Measured on this head:
Rostered-not-declared and declared-not-rostered are both empty for each. The check was shown capable of going redA green from a check nobody has seen fail is not evidence. Against three injected faults on
Both sides of the merge survive: this branch's — sent from neat-hawk-884 |
…-floorcut-triggers # Conflicts: # DESIGN.md # dag/gunbc/recurring_failure_mode.dag # docs/design-ledgers.md
…-floorcut-triggers # Conflicts: # DESIGN.md # dag/gunbc/rung_drop.dag # docs/design-ledgers.md
…-floorcut-triggers # Conflicts: # DESIGN.md # dag/gunbc/recurring_failure_mode.dag # docs/design-ledgers.md
…-floorcut-triggers # Conflicts: # DESIGN.md # docs/design-ledgers.md
…-floorcut-triggers
The defect
gunbc.rung_dropfloor_cutdeclared six lost capabilities under one restoration trigger:That is §4b(3)'s grain mismatch in its plainest form — a plural loss with a singular trigger whose actuation is a prose edit.
And the predicate has no truth conditions. "the re-add queue" has exactly one referent in the tree: a numbered list under Step 3 of
docs/plans/floor-cut-replacement-plan.md, whichgunbc.doc_graph_rootsregisters as aHandAuthoredDocBind— a hand-authored document, so no.dagauthority carries its contents. No membership object, no per-item disposition, no closure predicate (searched.dag,.rs,.md). Its own item 8 proposes the falsifier cadence never returns, and an item that never returns cannot close by returning — so closure would need a per-item disposition nothing records.Five rows, not six — the arithmetic is shown
Two of the six were already dispositioned; rows for them would have been fabricated debt:
generated-artifactphase). The effect-gates row therefore states the fraction: 1 of 7 discharged, 6 outstanding — a population that shrinks silently cannot be checked.gunbc.witness_row_costgunbc_ci_fast_lane_rule_note; it is cited, never re-declared (a second row is the §3 fork).What the five measured, from the tree rather than from the paragraph under suspicion
floor_cut_fmt_gatecargo fmt;commit_workflowalready carries it as an Uncovered residual; hook is opt-in and bypassable (#6658 landed unformatted.rs)floor_cut_merge_admission_stampingfloor_cut_healgunbc.ci_heal_credentialsurvives and still citesgunbc.ci_workflowci_heal_generated_artifacts_job; that module does not existfloor_cut_falsifier_cadencev2.std.live_treerecords two carriers whose enforcement claim died with itfloor_cut_effect_gatesEach trigger names a capability and refuses the artifact that would look like one: repairing heal's dangling citations heals nothing; a gate that reports without refusing is the inert tier; re-adding a
merge_admission_gatethat reads a receipt nobody writes reproduces today's state with more code; strengthening the pre-push hook re-imports the pressure that converts honest reds into workaround greens.The falsifier cadence's disposition is open, and says so
"Proposed: never returns" is a proposal in a hand-authored plan, not a ruling — and a capability deliberately not returning is a scope removal, which is the operator's call. The row retires either by the capability returning or by an operator ruling it withdrawn; in the second case the carriers that named the cadence as their enforcement must be corrected in the same change.
floor_cut itself changes in this diff
Otherwise the fork would be this repair's own product — two authorities answering "what retires this exposure", one naming an object proven not to exist. Its trigger sentence now names the five rows and states it retires when all five retire and by nothing else. Each of the five carries the same constraint from its own end, so the reading where someone retires
floor_cuthaving read one sibling is closed. The narrative paragraph is untouched; splitting the 31,681-character blob remains its own item.Filed
gunbc.recurring_failure_mode→fabricated_debt: a declaration authored for an exposure that does not exist or is already declared elsewhere, whose trigger cannot fire because there is nothing to restore. The two catches above are its receipts; its recognition rule is that the population was read from a paragraph rather than measured from the tree.Executed: projections regenerated from the authority;
DESIGN.mdanddocs/design-ledgers.mdcarry all five rows and the new class;test.claim.rung_drop_standing_partition_witnesspasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01WJ1bx2PttQ55XYhFqt3HUx