Skip to content

DESIGN §3 standing rule: replacement migrations cut over at the root, plus the gunbc.replacement_cut planning carrier - #8276

Merged
briansrls merged 15 commits into
mainfrom
session/tidy-pike-117
Aug 15, 2026
Merged

briansrls merged 15 commits into
mainfrom
session/tidy-pike-117

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

What

Encodes the migration doctrine the operator developed across the 2026-08-15 design threads as a §3 standing rule in gunbc.design_document (DESIGN.md regenerated in the same change), plus the contract-grain planning carrier gunbc.replacement_cut the rule cites, so cuts become a referencable roadmap concept rather than per-conversation prose.

The rule (DESIGN §3, after the single-authority argument)

The carrier (gunbc.replacement_cut)

ReplacementCut (with why_not_higher: HigherBoundaryAnswer required by construction — a cut cannot be authored without stating its boundary is outermost or naming the higher refusal that pushed it down), ConsumerDisposition (retain-same / retain-changed / replaced-by-Y / evidence-only / retire / undecided), EvidenceDisposition (re-enroll / replace / retire-with-receipt / parked), and admit_replacement_cut — refusing typed, per-row, all causes counted on any undecided consumer or evidence row, any uncovered surviving consumer, and an empty covered region (a cut that deletes nothing is not a cut).

Rung honesty, stated in the module note: the fold judges the plan, not the world. Derived cut standing, attempt-layer refusal causes (backedge, missing refusal), the cut-outcome ledger, and the roadmap projection (contract/shadow/parity/cutover+deletion derived from one cut row; unregistered migration work red) are the named next layer — the migration-cut authority program — deliberately not pre-built here.

Verification

  • dag/test/claim/replacement_cut_witness_test.dag: 8 witnesses green by execution on synthetic fixtures, including RED controls (undecided consumer blocks; uncovered surviving refuses; undecided evidence blocks; empty region refuses; multi-defect cut reports every cause, not first-wins; retired consumer needs no coverage).
  • Compile-clean on the witness entry: 0 blocking, 3 advisory (the corpus-standard deferred where-refinement class).
  • main_wet regen green; DESIGN.md byte-matches its authority.

🤖 Generated with Claude Code

Brian Searls and others added 2 commits August 15, 2026 02:51
… plus the gunbc.replacement_cut planning carrier

Encodes the migration doctrine developed across the operator's design
threads (2026-08-15) as a §3 standing rule in gunbc.design_document,
with DESIGN.md regenerated from it in the same change:

- replacement vs refinement; the six-step vertical plan; atomicity is
  the authority transition, never the diff size
- consumer-relative roots and supersession before translation: covered
  descendants are a deletion population, no Y counterpart owed
- consumers must earn survival: the census runs over dispositions, not
  raw edges; reliance establishes migration cost, never correctness;
  admission is two zeros (undispositioned = 0, uncovered surviving = 0)
- greedy root-first search: attempt the maximal cut, descend only on an
  exact refusal (Y-incomplete / escaping consumer / opaque -> bisect);
  deep cuts are the fallback decomposition of a refused root cut
- evidence for surviving claims is re-enrolled; evidence whose only
  subject is retired behavior retires with a receipt
- terminal receipt gains the two disposition rows

gunbc.replacement_cut is the contract-grain planning carrier the rule
cites: ReplacementCut (why_not_higher required by construction),
ConsumerDisposition, EvidenceDisposition, admit_replacement_cut
refusing typed and all-causes-counted. Witnessed by execution on
synthetic fixtures with RED controls (8 witnesses green; compile-clean
0 blocking). Standing, attempt receipts, the outcome ledger and the
roadmap projection are the named next layer (the migration-cut
authority program), deliberately not pre-built here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…S the blocking parking state

Review 52276 read "or visibly parked" as a fourth completed evidence
disposition the carrier lacks. The carrier is the intended semantics:
EvidenceDisposition has three terminal arms plus EvidenceUndecided, the
visible parking state that blocks admission exactly like a consumer's
Undecided. The DESIGN sentence now names the symbol and states why no
admitted parked arm exists: a deliberate deferral is still not a
disposition against the terminal design, and admitting it would re-open
the undecided-treated-as-retained hole under a politer name. Wording
fix + regen only; no carrier change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Addressed review 52276 (cursor REQUEST_CHANGES) in 5ca62af, taking the review's second offered resolution — reconcile the documents — rather than adding an arm.

Verified: the mismatch was real, and it was in the DESIGN wording, not the carrier. "…or visibly parked" listed beside the three terminal dispositions read as a fourth completed disposition that admission would accept; the carrier's fourth arm is EvidenceUndecided, which always refuses. The carrier is the intended contract. An admitted EvidenceParked arm would be wrong under the rule this same PR introduces: a deliberate deferral is still not a disposition against the terminal design, and admitting it re-opens the "undecided silently treated as retained" hole under a politer name — the two-zeros admission condition (undispositioned = 0) is only real if every parked row counts against it. Parking is therefore deliberately visible-and-blocking on both axes, symmetric with the consumer Undecided arm.

The DESIGN sentence now names the symbol and states this explicitly: three terminal dispositions plus EvidenceUndecided, "the visible parking state which, exactly like a consumer's Undecided, blocks admission rather than counting as dispositioned." Wording + regen only; no carrier or witness change (the witness's "parked witness" fixture now reads consistently — parked is the blocking state it tests).

— sent from tidy-pike-117

Brian Searls and others added 3 commits August 15, 2026 04:11
… reading, not live status

The operator's planning-thread review flagged the #8244 clause as
already stale — the receipts sentence presented moving open branches
(#8115, #8244) in present tense with live numbers, the exact §3
stale-citation class this same section warns about. The measurements
stay (they are the receipt of the 2026-08-15 replanning reading); the
tense and a dating clause now say so explicitly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rewrites the replacement-migration section's execution order from
build-beside-then-cut to the ruled default: delete X's production
presence as early as possible, fix forward minimally with the new
solution. The mechanism is named — a surviving X is an attractor that
captures agent attention (studying becomes preserving) — and the
up-front obligation census is itself struck as usually the attractor at
work: in a fail-closed substrate the deletion IS the census (what
refuses is what was load-bearing), the deleter owns fixing forward
until green, and only the silent residue (un-enrolled evidence,
external consumers) is covered by the declared 4b rung-drop instead.
Carve-outs: gap-intolerant boundaries keep the staged shadow form;
where no minimal Y can hold the boundary at all (the v1 seed before a
candidate image exists) X stays frozen — no new investment,
quarry-in-place. Restoration closes against green plus the declared
residue, never against output-parity with X.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…led digest-bound verdict, explicit census, closed X-role vocabulary

Finding-by-finding:
- Forgeable/unbound verdict: AdmittedReplacementCutPlan is now a
  sole_constructor record minted only by the admission fold (renamed
  admit_replacement_cut_plan — it judges the plan, and the vocabulary
  says so), carrying cut identity + a criteria digest over every plan
  field; admitted_matches_plan recomputes. Cross-module construction or
  cast refuses at compile time; an edited plan stops matching.
- Internal-coherence walls: duplicate consumer/evidence/region rows
  refuse (one subject, one disposition — agreeing copies are still a
  fork); old_root_consumer == new_root refuses; coverage or ReplacedByY
  naming the old root refuses (fallback wearing a disposition);
  self-referential descent refuses.
- Bottom-conflation: boundary_census is ConsumersEnumerated |
  BoundaryDeclaredEmpty{basis}; enumerated-but-empty refuses.
- Typed descent: HigherCutRefusedBy -> DescendedFromRefusedCut naming
  the parent by ReplacementCutId, joinable, not prose alone.
- Closed X roles: ExternalXRole (bootstrap producer, differential
  oracle, corpus rewriter, historical measurement) — a forbidden role
  has no constructor; NoExternalOracleRequired is a justified arm so
  absence is never ambiguous. RetireEvidence gains retirement_reason.
- DESIGN: DFS/BFS wording removed (consumer-backward vertical);
  "substantially unchanged" clarified (semantic authority + terminal
  consumer survive, internals may refine); carrier sentence updated to
  the new symbols; present-tense roadmap claim corrected to a future
  obligation — no roadmap node is structurally registered to a cut yet.
- Frozen-X sharpened from the live cli_run finding: frozen includes
  growth surfaces — a builtin registry or escape-hatch arm in a frozen
  X accepts no new rows (38 of 125 interpreter builtins had accreted
  into one driver file because the surface accepted them).

Deliberately deferred, named in the module note per the review's own
no-string-shaped-promises principle: exact joins against independently
OBSERVED consumer/obligation/evidence/region populations (no producer
exists yet), obligation-grain coverage, executed parent-refusal and
census receipts, retirement-receipt authority, multi-root cut-set
populations. Those are the migration-cut authority program.

17 witnesses green incl. 9 new adversarial plan-grain controls;
compile-clean 0 blocking; DESIGN.md regenerated byte-matched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the 2026-08-15 planning-thread review (the REQUEST_CHANGES relayed from the operator's design thread) in c39d5cb, finding by finding:

1. Forgeable/unbound verdict — fixed. AdmittedReplacementCutPlan is a sole_constructor record minted only by the admission fold, carrying the cut identity and a criteria digest over every plan field; admitted_matches_plan is the recompute check. Cross-module construction or cast refuses at compile time (the seal is the wall — a witness attempting the forgery would red the tree, which is control 16 working). The fold is renamed admit_replacement_cut_plan: it judges the plan, and the vocabulary now says so. Witness: admitted_verdict_is_bound_to_the_plan_it_judged (same plan matches; mutated plan does not).

2. No independent denominator — the checkable half fixed, the join deferred by the review's own principle. Duplicate consumers, duplicate evidence subjects, and duplicate region members now refuse (one subject, one disposition — duplicates are a fork whether or not the copies agree); an enumerated-but-empty census refuses as the ⊥-conflation while a genuinely consumer-free boundary declares BoundaryDeclaredEmpty with a basis. The omitted-observed-consumer control cannot be built honestly today: no independently produced consumer population exists to join against, and an author-supplied "ExactConsumerPopulation" would be the same authored subset under a grander name — the string-shaped promise finding 3 itself forbids. The two-way identity joins are named in the module note as the migration-cut authority program's exact obligations.

3. Authored claims — typed where a referent exists, deferred where none does. The descended arm is now DescendedFromRefusedCut { parent_cut: ReplacementCutId, refusal_summary } — a joinable typed parent reference, with self-referential descent refusing. OutermostBoundary remains an authored claim pending a boundary-census receipt authority, per the same no-fabricated-referents principle. The checkable fallback cases now refuse: Covered { by: old_root } and ReplacedByY { new_authority: old_root } are fallback wearing a disposition.

4. Fixed. RetireEvidence carries retirement_reason (the receipt authority is deferred — it does not exist to name). ExternalXRole is the closed vocabulary from the DESIGN rule — fallback/internal-resolver/second-opinion have no constructor (control 12 by construction) — and NoExternalOracleRequired { justification } makes absence unambiguous.

5. Multi-root cut sets — deferred. One-root v1 with populations generalizing at the program layer; pre-building Exact*Population shells with no producer is uninhabited generality.

6. Fixed. DFS/BFS wording removed: "consumer-backward design of one complete semantic vertical, never implementation-forward conversion of X's internal layers," with a note that traversal vocabulary is deliberately absent.

7. Fixed in 5b62bff (predates this pass): the receipts clause is date-pinned as a dated reading of then-open branches, never live status. SHA-pinning wasn't adopted because the measurements came from the planning thread's read, not from a SHA I can truthfully name; a typed receipts module remains an option if the operator wants the stronger form.

8. Fixed. Both the module note and the DESIGN sentence now state plainly: no roadmap node is structurally registered to a cut yet; the typed projection is the program's future obligation, not a present fact.

Witness delta: 17 green by execution, including 9 new adversarial plan-grain controls (duplicates ×3, both fallback-naming cases, root-identity, self-descent, census both arms, digest binding). Controls requiring observed populations or executed receipts travel with the deferred joins. Compile-clean 0 blocking; DESIGN.md regenerated byte-matched.

Also folded in from the live floor session: the frozen-X carve-out now states that frozen includes growth surfaces — a builtin registry or escape-hatch arm inside a frozen X accepts no new rows (receipt: 38 of the interpreter's 125 host builtins accreted into one driver file because the surface accepted them).

— sent from tidy-pike-117

Both findings verified real and fixed:
- admitted_from was an exported ungated mint reachable by any importer,
  contradicting the note's "minted exclusively by the admission fold".
  Replaced by mint_admitted, admit_callers-sealed to
  admit_replacement_cut_plan alone — the verdict is now sealed twice
  over: sole_constructor blocks cross-module literals and casts, the
  caller seal blocks the in-module helper route.
- admission never inspected external_x, so ExternalXRoles { roles: [] }
  admitted while the DESIGN sentence claimed the empty list was
  refused. ExternalRolesEnumeratedEmpty now refuses (the same
  bottom-conflation class as EnumeratedCensusEmpty), with a paired
  witness: empty list refuses, justified NoExternalOracleRequired
  admits.

18 witnesses green; compile-clean 0 blocking; DESIGN.md regenerated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Both findings from review 52304 verified real and fixed in 13939b7:

  1. Ungated mint — admitted_from was indeed an exported bypass: sole_constructor blocked cross-module literals and casts but not the helper route. Replaced by mint_admitted, admit_callers-sealed to admit_replacement_cut_plan alone, so the verdict is sealed twice over (record seal against construction/cast, caller seal against the in-module helper route) and no importer reaches a PlanAdmitted except through the checks. The module note now describes both seals.

  2. Uninspected external_x — admission never read it, so ExternalXRoles { roles: [] } admitted while the DESIGN sentence claimed otherwise. ExternalRolesEnumeratedEmpty now refuses (same ⊥-conflation class as EnumeratedCensusEmpty), wired into the cause chain, with the paired witness empty_external_role_list_refuses_but_justified_no_oracle_admits proving both directions: empty list refuses with exactly that cause; NoExternalOracleRequired { justification } admits.

18 witnesses green, compile-clean 0 blocking, DESIGN.md regenerated byte-matched.

— sent from tidy-pike-117

Brian Searls and others added 5 commits August 15, 2026 05:23
…one by one via first principles

The operator's distillation (2026-08-15), stated as the general behavior
rather than a migration special case, lands in the fix-forward step:
each breakage is asked what the broken reference IS in the terminal
model — fix Y, migrate the corpus with X as offline oracle, or retire —
never restored by reflex to the old binding. Bulk restoration under a
red tree is the attractor's last trick. Class grain, decided
deliberately and in sequence; mechanical application within a class.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-08-15 bankruptcies as the closing receipts

The operator's sharpened diagnosis lands in the weed paragraph: every
intermediate state of a tip-first deletion must keep X alive and green,
so the deletion program degenerates into maintenance and then
optimization of the thing being deleted. The receipts clause records
the completed disposition: #8115 and #8244 both bankrupted 2026-08-15,
frozen as quarry, recut as delete-first programs (floor: delete the CI
step, re-add obligations one by one from first principles; imports:
strip all 19,173 authored import lines, work the typed diagnostics
forward class by class).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…wo-census distinction

Operator's compressed sequence (2026-08-15) lands as a code block ahead
of the numbered obligations: back up to the root of the weed and delete
it; for each literal compile error solve from first principles —
implement the terminal solution, migrate the corpus with X as offline
oracle, retire with a receipt, or recurse when the error names another
weed; stop at green plus the declared silent residue. The fix-forward
step gains the fourth (recursion) arm and the load-vs-concealment
distinction: deletion surfaces what depended on X AND what X was
hiding — a load gets a disposition, an uncovered defect gets a
root-cause fix in Y, because it was always broken and X merely made it
unobservable (receipts: the import strip's declaration-registration
gap; the floor deletion's absorbed whole-tree defects).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-branch vehicle for breaking cuts

Two operator directives (2026-08-15) folded into the §3 replacement-migration
rule. The consequence catalogue: while X stands, every nearby question is
answered in X's vocabulary, so decisions are continuously premised on
assumptions already scheduled for death — waste, propagation, evidence
inversion, unmarked premises, each measured on the two bankrupted branches
(receipts cited, not restated). A3 grounds it: a dead assumption is
time-unstable, so building on one cites an authority already known to be
revoked; the frozen-X freeze is premise-supply capping, not thrift.

The SCM vehicle: a breaking cut never lands on main mid-loop — fork an
integration branch, root deletion first commit, fix-forward there, one
atomic cutover merge. integration/namespace-cut and integration/floor-cut
created at main 64ebefa.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e only reachable move

Operator, 2026-08-15: 'if we do that, we're forced to solve the problem
normally, as opposed to the existing approach.' Encoded as the consequence
catalogue's inverse — deletion makes the cheapest next action and the
first-principles action coincide — plus the standing exercise that opens
every cut: enumerate what is certainly scheduled for death and delete it
before any fix-forward work.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Brian Searls and others added 4 commits August 15, 2026 14:20
…namespace (NAMESPACE-Y)

Operator-directed 2026-08-15: plans/designs for both cuts with actual
filenames and steps. Floor: wipe all of CI (ci.yml, falsifier.yml,
falsifier-alert.yml and their emitting authorities in one motion), then
re-add jobs one at a time by operator agreement, each re-add recursively
delete-first — the old jobs are presumed crufty. Namespace: grammar
deletion (import refuses at parse via a refusing production), then the
import-name universe, host/emit machinery, the four repoints, then
census fix-forward by real-specimen instrumentation. Both carry the
step-gating rule (each major step closes on operator satisfaction),
quarry-as-oracle-only roles, the regen-twin traps, and their
ReplacementCut registration obligation.

Linked from the §3 section per the orphan-doc wall; doc witnesses PASS
(doc_graph_has_no_orphan_docs, doc_graph_has_no_dangling_links); DESIGN
regenerated (main_wet ExitSuccess).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Repoint (d) reclassified as restoration: the strip already silently
emptied the emit use-line channel (the mask guards on source_visible_names,
empty everywhere post-strip), so Rust emission is degraded until the
containment-derived supply lands and emit-green before it is the
suspicious result. Green bar gains the restoration item; flat
topological ordering noted; the attribute-orphan surgery trap recorded
(three measured defects, plus the repo-wide repair sweep that removed
legitimate derives).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gle-fold spec

Operator rulings at the wipe boundary (2026-08-15): wipe accepted as
landed (3a63982, -18,716 cumulative); re-add #1 approved with the
spec verbatim — a single github actions emission into our own binary,
running all test witnesses in the repo via a single fold — subsuming the
build and witness-corpus queue items; the retained ci_workflow/ci_spec
vocabulary resolves by re-homing the ten fleet step constructors into a
fleet-owned module and deleting the remnants. Observed-ledger additions
recorded: silent-drift exposure, the orphaned merge-admission stamp, the
lost cold control, fmt-as-bypassable-hook.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rections from lane divergences

Operator ruling encoded as its own §3 paragraph: a design authored while
X lived is premise-contaminated in its sequencing — terminal shapes and
maps survive as quarry, orderings never defer the deletion (live
specimen: the cli_run hollowing plan's chunk ordering, cited to defer
the deletion minutes before the operator ordered it cut). Both cut
plans carry the one-line rule. Namespace plan corrected per the lane's
divergence report: the raw-text reference scanner is refused as a §4
heuristic (edge-in-prose receipt) in favor of parse-then-derive from
the Node tree, homed outside cli_run.rs; the regen-suspension declared
gap and the banked-behaviors reachability obligation recorded.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@briansrls
briansrls merged commit 0ed10d7 into main Aug 15, 2026
5 checks passed
@briansrls
briansrls deleted the session/tidy-pike-117 branch August 15, 2026 18:05
gunbai-bot Bot pushed a commit that referenced this pull request Aug 15, 2026
…aring files

design_document.dag conflicted because main added five symbols to an import
list this branch deletes wholesale. Resolved to the branch side (no imports);
main's body changes -- the new references those symbols were imported FOR --
merged cleanly and now bind by namespace.

Main's #8276 also landed two brand-new files carrying imports
(gunbc/replacement_cut.dag and its witness). `import` is a parse error on this
branch, so they were stripped by the same line-based rule as the rest of the
corpus. Corpus import count is back to zero.

The witness file's leading annotation argued FOR its imports on the grounds
that a new module is in nobody's closure. Rewritten rather than left standing:
that argument is the pool-membership coincidence this lane exists to remove,
and a stale annotation asserting the opposite of the tree it sits in is the
DESIGN 4c class.

Balance check on the three touched files: the design_document brace/paren
imbalance of 1 is PRE-EXISTING on main (string-literal artifact), not
introduced here -- checked against origin/main rather than assumed.
gunbai-bot Bot pushed a commit that referenced this pull request Aug 15, 2026
sleek-moth-351 flagged that #8297 might have edited stale text. Measured: the
floor-cut branch has no plan doc at all (it forked before #8276 added one), and
the disposition it struck lives in a // annotation on
dag/gunbc/witness_floor_workflow.dag. So the text I edited was main's only copy
and was not stale — but the deeper point lands. My correction restated a
disposition the executing lane owns, which makes two prose carriers for one
fact: the §3 violation this PR exists to correct, committed by the correction.

Item 3 now NAMES gunbc.witness_floor_workflow as the authority and asserts
nothing about its contents.

What the plan keeps is the half it is actually positioned to know: the
cross-branch order-dependency, which is a fact about the merge graph that no
single branch can observe. Now with all three arms rather than two — the
floor-first arm (main carrying a live regen authority with no required job
invoking it, a gap someone owns rather than a settled absence) and the
never-lands arm are sleek-moth's, and both were missing from my version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Aug 16, 2026
…8297)

* Correct two cross-branch restoration triggers whose subject a sibling cut deletes

Both cut plans landed in #8276 with restoration/re-add items keyed to
regen_stage0, which integration/v1-cut (#8293) deletes outright — the
regeneration loop's subject IS the src/v1/**/*.dag authority that cut removes.

Neither plan was wrong when authored; the conflict is order-dependent and
invisible from inside either lane:

- namespace-cut: restoration trigger "regen green on the branch" can fire only
  if that cut reaches main first. Otherwise the obligation retires with its
  mechanism (DESIGN §3 step 6), not restored. An unfireable trigger is worse
  than none — it reads as tracked (§4b: name a trigger that can fire).
  Also notes the drift gates survive regen independently (heal passes on the
  v1-cut branch while regen is red).

- floor-cut: re-add queue item 3 says the regen modules "survive throughout"
  and their job "returns here". If v1-cut lands first that item retires rather
  than re-adds; re-adding would restore a consumer of a deleted producer.

Stated once per plan with the order-dependency named, rather than repeated at
each regen mention (a caveat duplicated four times is the §3 violation the
correction exists to avoid). Also refreshes the namespace plan's registration
line: the gunbc.replacement_cut carrier merged, so that row is authorable now.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Date the heal/regen independence evidence instead of asserting it as live state

The reviewer noted the heal_generated_artifacts claim is branch-local execution
evidence stated in planning prose. It was worse than that by the time it landed:
integration/v1-cut has since retired the regen job outright (2be3d7e), so "regen
red" describes a state that no longer exists — regen is absent there now, not
failing.

That is exactly the §3 stale-citation class this PR exists to correct, appearing
in the correction itself: a claim true when observed, decaying without anyone
touching it or the thing it names.

Restated as a dated receipt for the independence rather than a live claim about
either branch's jobs. The load-bearing fact — heal and regen fail independently,
so the green-bar item is two obligations and only one is order-dependent — is
unchanged and is what the observation supports.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Cite the floor lane's disposition carrier instead of restating it

sleek-moth-351 flagged that #8297 might have edited stale text. Measured: the
floor-cut branch has no plan doc at all (it forked before #8276 added one), and
the disposition it struck lives in a // annotation on
dag/gunbc/witness_floor_workflow.dag. So the text I edited was main's only copy
and was not stale — but the deeper point lands. My correction restated a
disposition the executing lane owns, which makes two prose carriers for one
fact: the §3 violation this PR exists to correct, committed by the correction.

Item 3 now NAMES gunbc.witness_floor_workflow as the authority and asserts
nothing about its contents.

What the plan keeps is the half it is actually positioned to know: the
cross-branch order-dependency, which is a fact about the merge graph that no
single branch can observe. Now with all three arms rather than two — the
floor-first arm (main carrying a live regen authority with no required job
invoking it, a gap someone owns rather than a settled absence) and the
never-lands arm are sleek-moth's, and both were missing from my version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Fix an imprecise cross-reference in the order-dependency note

The note said the order-dependency governs "the regen traps in steps 3 and 4".
Measured: step 3 carries both regen mentions (the emit_imports seed-regrowth
warning and the regen fixed-point trap); step 4 carries none.

Named precisely rather than by step range, so the reference resolves to the two
mentions it actually covers. Third defect of this class in one PR, all in prose
whose subject is prose accuracy — the correction reproducing the defect it
targets, which is worth noticing as a property of this kind of edit rather than
a run of individual slips.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Record the three silent populations the deletion census cannot reach

"The deletion is the census" holds only for consumers that survive to
refuse. Executing the doctrine on five branches simultaneously surfaced
three populations it cannot see, each silent -- no diagnostic, no
unresolved reference, no red:

  1. a consumer inside the deletion set cannot refuse
     (generated_stage0_files and its only consumer
     assert_registry_is_partitioned shipped in one deleted file; a real
     roster overlap resulted with nothing left to object)

  2. a guard that leaves with its subject takes an obligation with it
     (arm_declares_dissolution_trigger; SELF_COMPILE_ERROR_RATCHET) --
     and produces no artifact, so an artifact-keyed landing ledger is
     blind to it too

  3. a surviving thing can stop being reached -- 8 orphan candidates by
     import graph became 3 once roster rows, *_test.dag discovery,
     workflow argv and Cargo [[bin]] were joined; a 5-in-8 false
     positive rate, three of them reached by the discovery fold the cut
     itself delivers

Step 2 of the floor plan asserts "the census does the rest", and Step 3
inherits the consequence: four queued gates had their guards deleted by
the same cut, so a re-add judged by "the gate is back" restores an
unwitnessed gate. Recorded once in the floor plan; the namespace plan
cites it rather than carrying a second copy.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Qualify a branch-local citation and un-stale the floor plan's registration

Both findings from review 52515 verified against the tree and confirmed.

1. gunbc.witness_floor_workflow is absent from origin/main and from this
   PR head; it exists only on integration/floor-cut. The citation now
   says so explicitly. An unqualified symbol invites a main-side grep
   that cannot resolve it -- the stale-citation class this plan is
   otherwise arguing against.

2. The floor plan's Registration section still read "once gunbc#8276
   merges" while the namespace plan, corrected in the same diff, recorded
   that it had merged. dag/gunbc/replacement_cut.dag is present on
   origin/main, so the floor plan was the stale half. Two sibling cut
   plans asserting opposite states of one fact is the DESIGN Section 3
   dual-representation failure, and updating one while leaving the other
   is how it was introduced.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant