Skip to content

ROOT-N - #9871

Closed
briansrls wants to merge 18 commits into
mainfrom
cand/T2
Closed

ROOT-N#9871
briansrls wants to merge 18 commits into
mainfrom
cand/T2

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session jolly-swift-749.
Pushing to cand/T2 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 18 commits August 31, 2026 01:25
…py into the DESIGN authorities; the plan retires with its consumer

Applies the operator-approved source copy from #9769 (approved at
bbe0d9d, merged as 2603a63) verbatim:
- gunbc.design_document section_3_blocks: the meaning-fork paragraph after
  the nicknaming paragraph; section_4b_blocks: the quality-floor paragraph
  after the four meta-obligations; section_5_blocks: the externalization
  paragraph after the absorbing-fallback paragraph.
- gunbc.recurring_failure_mode: meaning_fork and externalized_degradation
  rows appended, roster extended in source order; evidence stays empty per
  the module's own standing note.
- docs/plans/meaning-externalization-design-placement.md DELETED per the
  operator terminal ruling: the supervised edit was its one consumer, and
  retaining it would leave a second prose representation of the live
  authority. No HandAuthoredDocBind. The merged #9769 and git history
  retain the placement analysis and review record.

Projections regenerate in the follow-up commit of this same PR.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhdaHkmZPoQoeUWz5V2mzF
Produced by tools.generated_artifact_gate.main_wet via the repo-built gunbc
from tree 8965ebf, executed on srv2 (arm64) in a rust:1-bookworm container
under a 16 GiB docker cgroup memory bound — the modeled host-budget source,
no environment override needed. Generated diff is exactly DESIGN.md (three
paragraphs at their three anchors + two failure-mode index identities) and
docs/design-ledgers.md (two entries appended in roster order).

The BuildBuddy dispatches from the same tree ran main_wet to ExitSuccess
with an EMPTY diff — recorded as an infrastructure anomaly (suspect: runner
workspace reuse serving a stale tree), not a property of the transaction;
the srv2 run from a fresh clone of the pinned SHA is the receipt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhdaHkmZPoQoeUWz5V2mzF
…shorthand_preempts_resolved_identity — resolved theirs-first in source order, both projections consistent

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhdaHkmZPoQoeUWz5V2mzF
…entity's row (the conflict's common tail had been consumed by the appended rows)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhdaHkmZPoQoeUWz5V2mzF
…#9741's surface_shorthand identity to the DESIGN index and its ledger entry, roster order preserved

Produced by main_wet via the repo-built binary on srv2 (fresh clone, 16 GiB
cgroup bound), same route as the ROOT-1 regen receipt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhdaHkmZPoQoeUWz5V2mzF
…nstruction cuts

Cut A generalizes the existing gunbc.fleet RequiredCiContractIdentity grain to the
DESIGN §3 triple (naming surface, name, epoch) rather than minting a second
contract-identity authority. The live gap it closes: required_ci_admission checks
workflow path and repository with per-cause refusals and then admits, carrying no
epoch, so a materially changed contract is admitted under the same workflow_path —
the §3 meaning fork, in production.

Cut B instantiates that identity for std.evaluation_budget: a graded dimension with
a typed consequence, consumed in production. The consequence-ownership fork is
adjudicated to Terminal A on four recorded pieces of evidence, the discriminator
being that no caller refusal-code protocol exists for a caller-owned code to belong
to. LimitUnset constructs no floor on that clock; the consequence derives from the
closed exceeded arm rather than caller-supplied text.

The two REDs are separate instruments with separate cardinalities — a semantic
breach RED with its two admitted controls, and an authority-wiring falsifier — and
the plan says in terms that 'some RED occurs' establishes nothing.

The plan names itself as dissolved by the second cut. Neither cut edits DESIGN.md
or gunbc.design_document.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
1. Cut A is an ATOMIC ROOT CUT, not an additive shadow: the public name
   RequiredCiContractIdentity may survive as a specialization of the canonical
   triple, but its old two-field representation is eliminated in the same landing.
   The three unacceptable shapes (field-beside-canonical, old/new/converter, shadow
   comparator) are named, and the field classification table keeps contract identity
   from widening into every admission prerequisite.

2. The blocking omission is closed: the plan now names a production source of the
   OBSERVED epoch. Adding epoch to required_ci_contract() alone would stamp the
   EXPECTED epoch onto the result and prove nothing about what the triggering run
   executed. Route chosen: exact-commit observation at event.head_sha of an epoch
   emitted into WitnessFloorYamlArtifact -- the exact bytes the run executed. The
   typed-receipt route is rejected with its reason: floor_component_receipt_document
   has no production consumer, so nothing emits it today. Oracle independence is
   restated at the grain that matters, and the RED must traverse the production join.

3. Cut B does not duplicate entry: entry is projected from the contract identity, and
   the verdict stays identity-bound so no detached Within value crosses the boundary.

4. The wiring falsifier requires a MOVED VALUE, not a refusal -- an always-refusing
   emitter would otherwise pass while proving no binding. Drift RED before regen,
   perturbed value after, zero occurrences of the former code. The exhaustiveness
   mutation is separate and not a substitute. The generated projection's full
   enrollment chain is named.

5. The epoch guarantee is stated honestly: cross-epoch admission is mechanically
   prevented; an unbumped material change remains declared-version diligence. This
   cut does not make all same-name meaning forks structurally impossible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
… stop-lines

The Terminal-A ruling left one discovery obligation open -- the exact
authority-to-generated-Rust-to-serve_budget_refusal_body chain -- and set stop-lines
the earlier draft did not carry. All are now in the plan.

- THE TERMINAL CONSEQUENCE LAW. No freely writable consequence_code field on the
  policy, the contract identity or the exceeded arm, so a contract with an arbitrary
  or self-contradictory consequence is not constructible. And the zero-argument
  refusal-code fn is an authority over the BYTES that does not yet establish that the
  typed cause determines their DELIVERY; Cut B closes that edge, with the required
  property stated and the implementation shape left free.

- REACHABILITY PROVED, not asserted, with the actual symbols and a named census base:
  authority -> emitter -> GeneratedArtifact variant (coproduct, roster, location,
  commit policy, equality arm) -> artifact_generate arm -> main_wet generation and
  drift -> crate inclusion -> serve_budget_refusal_body -> rebuilt binary -> executed
  response. Every link is an exhaustive match over the variant set, so a half-enrolled
  artifact fails to compile -- enrollment is closed by construction rather than by an
  author remembering a checklist.

- NO SEMANTIC HITCHHIKING. The consequence gets a DEDICATED generated projection
  rather than riding v1_interpreter_dispatch_generated.rs, whose subject is
  interpreter primitive dispatch; mixing two authorities into one generated file is
  the same fork wearing a generated file's clothes. Generated bytes carrying the
  literal are fine -- an independently maintained literal in cli_run is not.

- The semantic RED's 'exactly one' is identified at the correct grain: one bounded
  clock crossed, one exceeded cause, one named consequence, one production response.

- Cut A carries no generated budget-consequence bridge merely because one plan
  describes both cuts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
…y found

(1) THE RECEIPT-ROUTE REJECTION PREMISE WAS FALSE AND IS WITHDRAWN. I had grepped
for the document constructor in .dag only and concluded nothing emits it. The
receipt is real, rich infrastructure: schema floor-component-receipt/v1, artifact
name, path, typed subject with workflow name/run id/head sha, decoder, event-subject
join. The re-census answers all six questions and reaches the same route on a
materially different basis: NOTHING writes target/floor-component-receipt.json in
src/ or dag/; witnesses.yml uploads four artifacts and this is not one; and the
alert that downloads it, falsifier-alert.yml, was DELETED in the 2026-08-15 CI
bankruptcy. The obstacle is a deleted transport, not a missing model -- and the
authority's prose still recites that transport in the present tense, which is the
premise-contamination class DESIGN §4b names. Recorded as a finding for that
module's owner, not fixed here.

(2) THE RUNG-4 ENROLLMENT CLAIM WAS WRONG AND IS WITHDRAWN. artifact_location,
artifact_commit_policy, artifact_eq and artifact_generate are exhaustive, but
generated_artifact_registry is an explicitly AUTHORED List: a variant can join the
coproduct and every match arm while being omitted from the roster, and the tree still
compiles with main_wet and the drift boundary blind to it. Only the narrower claim
survives -- once a rostered variant is reached, its dispatch is compile-time
exhaustive. Cut B takes the mechanically preventive correction (a discriminating RED
that removes ONLY the registry member) and states the honest rung as mechanically
preventable, with registry derivation named as the next-rung trigger.

(3) required_ci_admission DOES NOT EXIST -- I invented the symbol. The real producer
is gunbc.fleet_revision_acceptance accept_required_ci_workflow_run, reached in
production through gunbc.fleet_desired_admission fleet_desired_accepted_from_event.
Corrected in all four places, and the epoch RED must traverse that live composition.

Also names what the selected route requires: the epoch as a STRUCTURAL top-level env
member emitted by gunbc.witness_floor_workflow beside the four existing GUNBC_* pairs
-- not a comment or substring -- with an exact-commit reader, a structural parser, six
distinct typed causes, and the binding that the bytes read are the definition the
observed run executed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
1. THE EPOCH EXPERIMENT WAS CONTRADICTORY. The epoch is a structural member of a
   committed artifact, so changing it changes the tree and therefore the commit
   identity -- 'hold the revision fixed, vary only the observed epoch' is not
   constructible against a real Git-backed read. The experiment is now two commits
   whose trees differ only in the epoch member, both revision-bearing propositions
   agreeing inside each case, and it traverses fleet_desired_accepted_from_event so
   at least one real production-composition execution is enrolled. The epoch carrier
   and its canonical wire representation are named: one top-level env key emitted by
   the workflow authority, one spelling, no alternate encodings.

2. THE INVERSE QUALITY ORDER IS NOW A LAW, not boundary examples: quality(a) >=
   quality(b) iff elapsed(a) <= elapsed(b); meets iff elapsed <= limit; breaches iff
   elapsed > limit. Equality belongs to the admitted side BY THE LAW rather than by
   convention. Without this a numerical ceiling had merely been renamed a floor.

3. THE RECEIPT SECTION OVERCHARGED EXISTING MACHINERY. ReceiptMemberAbsent and
   ReceiptMemberMalformed already exist, including duplicated-member, wrong-JSON-type
   and empty-string cases, plus the subject join. The genuinely missing work is the
   live writer, the upload, the run-bound download, epoch carriage, transport
   unavailability and any absent incomplete-run projection. And the stale
   present-tense recital finding may not live only in a file that Cut B deletes: its
   persistent destination is a routed item against the receipt authority's owning
   lane, opened before Cut A lands, or the recital is repaired before dissolution.

4. Module names are read from the module DECLARATION rather than derived from the
   path: gunbc.fleet_revision_acceptance and gunbc.fleet_desired_admission, not
   gunbc.fleet.*.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
The precondition the authority set is satisfied. The finding was routed to
node://adhoc-8d0de08a-242 and landed as gunbc#9858, disposition DELETE. That lane
reproduced the census independently rather than inheriting it, and established the
discriminator this plan could not: there is no PRODUCER at all, so the join is
unreachable rather than merely unoccupied -- which separates deleting a dead model
from silencing a quiet guard. Its durable home is a receipt on the
reachability_read_as_occupancy row of gunbc.recurring_failure_mode, projected into
docs/design-ledgers.md, which survives this plan's dissolution.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
… radius

The authority required the authority and consumer paths be rechecked immediately
before the contribution boundary is frozen. Measured rather than estimated:

- the identity type and its constructor occur in exactly three files -- one
  production module and two fleet witnesses;
- the values carrying it (RequiredCiSucceeded, AcceptedFleetRevision) reach four
  production .dag modules and three witness modules;
- it reaches NO Rust or seed surface at all.

That last point is load-bearing for the atomic root cut: there is no seed mirror to
synchronize, so Cut A needs no generated bridge and the emission machinery belongs
entirely to Cut B. It also bounds the population the old two-field representation
must disappear from in a single landing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
…uthful #9858 status

1. THE EPOCH VALUE DOMAIN WAS UNDEFINED. The plan named the container and location
   but not the language of valid values. ContractEpoch is now an opaque branded
   NonEmptyStr: the epoch is a discrete identity, not an ordered quantity, and nothing
   arithmetic is done with it, so a numeric or semver grammar would add interpretation
   no consumer needs. The container then closes the decision entirely -- missing key,
   duplicate key, non-string, empty string, nonempty string.

   EpochUndecodable IS REMOVED. Once the value is a nonempty string there is no
   further decode that can fail, so the arm had NO AUTHORABLE SUBJECT -- a
   permanently-green check that would later be cited as coverage, which §4b forbids at
   the top rung. It was in the draft for symmetry, which is exactly the wrong reason.
   Commit-unreadable and path-unreadable remain separate observation failures.

2. THE #9858 CLAIM WAS AHEAD OF THE FACTS WHEN THE AUTHORITY CHECKED IT -- I relayed
   'landed' from a hand-off message rather than verifying. It has since merged, and I
   verified rather than re-relaying: merged at main@83fe4399d0, with the receipt
   present at origin/main INSIDE the reachability_read_as_occupancy row carrying the
   unreachable-versus-unoccupied discriminator, and projected into
   docs/design-ledgers.md. The sequencing rule is retained rather than dropped now
   that it is satisfied, because it is the reason the verification was performed:
   Cut A may be authored on plan approval, but may not land until a durable repair has
   landed AND is verified on main.

Also records the authority's qualification that the seven-module blast radius is the
MAXIMUM JUSTIFIED CLOSURE, not an obligation to edit every reachable module: a module
that merely transports the generic carrier stays untouched, and every path in the Cut A
diff must carry its own concrete reason.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014iheRFn4BiVGDwgN6gQBQX
@gunbai-bot

gunbai-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Closing: cand/T2 is a scratch candidate branch, not a proposal. It exists only to construct the merge tree T = merge(M, H) for #9851's landing under the standing conditional-landing procedure — built deliberately without moving the approved PR branch — and it was auto-attached as a draft PR by branch push. The real PR is #9851; this carries the identical single file. — sent from jolly-swift-749

@gunbai-bot gunbai-bot Bot closed this Sep 1, 2026
@gunbai-bot
gunbai-bot Bot deleted the cand/T2 branch September 1, 2026 03:02
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