Repository navigation
DESIGN §3 standing rule: replacement migrations cut over at the root, plus the gunbc.replacement_cut planning carrier - #8276
Conversation
… 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>
|
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 The DESIGN sentence now names the symbol and states this explicitly: three terminal dispositions plus — sent from tidy-pike-117 |
… 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>
|
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. 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 3. Authored claims — typed where a referent exists, deferred where none does. The descended arm is now 4. Fixed. 5. Multi-root cut sets — deferred. One-root v1 with populations generalizing at the program layer; pre-building 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>
|
Both findings from review 52304 verified real and fixed in 13939b7:
18 witnesses green, compile-clean 0 blocking, DESIGN.md regenerated byte-matched. — sent from tidy-pike-117 |
…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>
…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>
…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.
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>
…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>
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 carriergunbc.replacement_cutthe rule cites, so cuts become a referencable roadmap concept rather than per-conversation prose.The rule (DESIGN §3, after the single-authority argument)
c1/d1is owed. Deletion licensed only when the new root intercepts every remaining production path.undispositioned = 0ANDuncovered surviving = 0.The carrier (
gunbc.replacement_cut)ReplacementCut(withwhy_not_higher: HigherBoundaryAnswerrequired 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), andadmit_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).main_wetregen green; DESIGN.md byte-matches its authority.🤖 Generated with Claude Code