Skip to content

Fix main-red floor content layer: absent declared roots skip loudly + gate-universe spans the job split + disposition-marker pin matches emission - #6498

Merged
briansrls merged 1 commit into
mainfrom
fix/main-floor-content-reds
Jul 11, 2026
Merged

briansrls merged 1 commit into
mainfrom
fix/main-floor-content-reds

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

The timeout mask (#6488/#6495) and the batch-2 panic mask (#6493) are gone, which exposed the content layer behind them: three reds that every completed floor now hits, all reproduced on clean main before fixing.

  1. anchor_source_root panic on dag/compiler (surfaced on Runner offers modeled (ubicloud + GitHub-hosted, cited) + one selection authority; CI routed to ubicloud through the model #6497's run) — a declared medium-structure root that doesn't exist yet (modeled-before-implemented). The walk's own is_dir guard shows absence is a legitimate skip state, but the anchorer panicked first. New non-panicking try_anchor_source_root for declared-root walks: absence skips with a counted [layer-import] line — loud, never silent; CLI args keep the strict refusal.
  2. Gate universe vs job split — the universe witness compared all 10 Gate arms against the ci job's 7-gate slice (stale since CI serial job split: bounded build / floor / emit-determinism jobs (operator ruling 2026-07-11) #6472). Now unions floor+regen+emit_determinism (probe receipt: the slices partition the 10 arms exactly), matching its sibling witness's existing idiom.
  3. Disposition-marker adjacency pin (landed today, red from first run) — pinned the stamp with no blank line before the docs-only branch; the emitted script has one. Pin now matches emission and still proves the ordering.

Receipts in the commit: ci_spec_witnesses, all 4 universe witnesses, layering clean-tree — green by execution. Remaining pre-existing main reds tracked separately: s1_closure_parses_holds (#6459 wrapper-retained diagnostic arm), ci_deploy_witnesses.

🤖 Generated with Claude Code

… the split-spanning gate universe, and the disposition-marker adjacency pin

Three content reds every completed floor now hits, all proven on clean
main (the 60m-timeout and batch-2-panic masks are gone, so the content
layer behind them is finally visible):

1. anchor_source_root panicked mid-floor on "dag/compiler" (run for
   PR #6497, cli_run.rs:365) - a DECLARED root from the
   medium-structure roster that does not exist on disk yet
   (modeled-before-implemented). The layer walk's own is_dir guard
   proves absence is a legitimate skip state there, but the anchorer
   panicked before the guard could run. New non-panicking
   try_anchor_source_root for declared-root walks: absence skips with
   a counted [layer-import] line (loud, never silent); CLI-provided
   roots keep the strict panicking contract.

2. affected_set_universe_gate_processes_match_declared_gates compared
   the Gate coproduct's 10 arms against gunbc_ci_gates - the ci JOB's
   slice (7) since the #6472 job split. The witness now unions
   floor+regen+emit_determinism (the same union its sibling
   witness_gate_roster_matches_coproduct_arms already used); probe
   receipt: the three slices partition the 10 arms exactly.

3. witness_floor_disposition_marker_initialized_before_docs_only_branch
   (landed in today's wave) pinned the stamp DIRECTLY adjacent to the
   docs-only branch, but the emitted script has a blank line between
   them - red on clean main from its first run. The pin now matches
   the emitted adjacency (stamp, blank, _ci_changed) and still proves
   the ordering it exists for.

Receipts: ci_spec_witnesses, all 4 affected_set_universe witnesses,
and the layering clean-tree witness green by execution with the fixed
binary. Remaining known main reds (predate today, tracked separately):
s1_closure_parses_holds (#6459 wrapper-retained diagnostic arm),
ci_deploy_witnesses.
@briansrls
briansrls merged commit e790068 into main Jul 11, 2026
1 check passed
@briansrls
briansrls deleted the fix/main-floor-content-reds branch July 11, 2026 19:36
@gunbai-bot

gunbai-bot Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Agreed the finding is real: a zero-fact projection from a skipped absent root is indistinguishable on the fact stream from a genuinely empty root, and the skip is only observable on stderr. Why I'm leaving it as the interim shape rather than typing it into the seed now:

  • The whole helper family this lives in is a declared dissolution target (cli_run_runtime_workspace_root_plumbing scaffold marker — anchor_source_root, repo_relative_path*, and call-site plumbing, ~130 LOC, DELETE WHEN Migrate orchestration emission to agnostic registry dispatch (de-bash the compiler stage) #6106 realizes claim-bin path resolution from .dag). Growing its Rust API (a typed skip variant threaded through layer_import_facts's return type and the builtin bridge) adds seed surface to code whose end state is deletion — the typed home for "declared root not yet realized" is the .dag-side layer model when that dissolution lands, where it can be a counted refusal row like every other lens diagnostic.
  • The stderr line is deliberately grep-stable ([layer-import] declared root ... absent) so it is countable per-run today, the same interim observability class as the existing [measurement]/[calibration] lines.

So: acknowledged as scaffold debt with a named home, not silently absorbed — the follow-up belongs to the #6106 dissolution, not a second Rust representation. Happy to type it now instead if you think the interim window will be long.

— sent from eager-gull-872

briansrls pushed a commit that referenced this pull request Jul 11, 2026
…uthorities (#6503)

* Main drift-gate red: home Lane D's plan-doc cross-links in the .dag authorities

generated_artifact_drift_gate_passes has been red on main since #6474
(Lane D) hand-added the provisioning-window design links directly to the
GENERATED docs/plans/emission-ingestion-inverse.md and
docs/plans/shell-emission-model.md without the backing rows - the gate
correctly refuses a doc that its .dag authority does not derive (the red
was masked behind the s1/ci_deploy/witness-pin floor reds until
#6498/#6500/#6501 cleared them). Fix keeps Lane D's intent: the two link
sentences move into dag/gunbc/plans/{emission_ingestion_inverse,
shell_emission_model}.dag, from which main_wet now regenerates the
checked-in docs byte-identically (zero doc diff after regen).
generated_artifact_drift_gate_passes: false -> true by execution on this
head.

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

* Docs-only CI shortcut: route through the executor plan path (fixes exit-2 on plan-artifact diffs)

The plan-artifact-only floor shortcut invoked claim_executor with
gunbc-run-style --entry/--function flags it does not parse - the arm
died 'unknown argument: --entry' exit 2 on the FIRST docs-only diff to
reach it (this PR's own run 29167744076; latent since the arm landed).
The gate also cannot run standalone: dag_compile_clean_gate_passes only
CONSUMES the executor's in-run whole-tree --target dag compile receipt
(standalone gunbc-run invocation refuses, proven by execution).

Fix: the shortcut is now claim_executor --plan-entry ci_floor_plan.dag
--plan-function gunbc_ci_plan_artifact_batches, where the new plan fn is
batch 1 of the existing floor schedule (the compile-clean anchor - the
plan's one structural fact) - same executor path, no parallel gate
runner. claim_executor arms the compile-clean lazy install for this plan
name alongside gunbc_ci_floor_batches. Shortcut witness repinned to the
plan-path invoke; ci.yml regenerated.

Receipts by execution: RED = run 29167744076 exit 2 + standalone refusal;
GREEN = local run of the exact new invoke (whole-tree compile receipt
ok=true, 1/1 node pass, exit 0); ci_spec_witnesses true; drift gate true.

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

* emit_determinism job: author its missing plan spawn-width fn (fatal eval, skip-masked)

claim_executor derives the spawn-width fn name from the plan-function
string (strip _batches, append _plan_spawn_width) and the eval is FATAL
when the fn is absent. ci_regen (#6393) and the falsifier got theirs;
gunbc_ci_emit_determinism_plan_spawn_width was never authored when #6472
split the job - and every green since was an affected-set SKIP, so the
job died at spawn-width eval ('no main function found', exit 1) on the
first diff to touch ci_floor_plan.dag and actually execute it (this
PR's run). Delegates to gunbc_ci_plan_spawn_width like the regen
variant. Receipt by execution: the emit-determinism plan now prints
spawn_width=4 from the derived name and enters its batch walk.

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

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Fable 5 <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