diff --git a/dag/gunbc/ci_layer_roots.dag b/dag/gunbc/ci_layer_roots.dag index 9cf530fa719..d3519338c6f 100644 --- a/dag/gunbc/ci_layer_roots.dag +++ b/dag/gunbc/ci_layer_roots.dag @@ -114,7 +114,7 @@ data accumulator_copy_roster_gate_exclusion_note: String = "The three accumulato data lever_a_local_receipt_witness_exclusion_note: String = "dag/test/claim/lever_a_local_receipt_witness_test.dag is operator-ruled OFFLINE (2026-07-11: witness_touched_path_dispositions_hold cold-scans compile_clean_shard_entry_paths via module_declaration_facts once per scoped disposition row — O(rows) full dag entry-tree walks, 85m+ CI timeout / OOM when selection runs it after lens_verdict on cli_run.dag PRs; run via scripts/lever_a_local_verify.sh). Excluded from discovery for the same structural reason as accumulator_copy_roster_gate: the scoped rows read the shard roster at runtime — invisible to import-closure attribution — so skip-before-resolve cannot honestly bound cost. Dissolve-on: single-roster memo in tools.dag_compile_clean_scope lands AND live-read classification walks import closure for module_declaration_facts consumers; then re-enroll through the floor owner's lane." -data whole_tree_strict_resolve_scaffold_exclusion_note: String = "The per-file rows below (extdeps/spice_rc_passive_deck_claims_test.dag onward) are the strict-resolve-broken set, baked as single authority per operator ruling 2026-07-13 ('just make it single authority') — previously re-derived per probe run as --exclude-subpath args (M0/M1a receipts, docs/plans/v1-run-stability-throughline.md), a parallel representation this bake dissolves. Audited file-by-file 2026-07-13 (24 files, 5-group sweep with per-file execution receipts): 7 genuinely dead scaffolds were DELETED with their rows (the four Wave-A rung evals, the A.1.5a inprocess_equivalence one-shot, manual_corpus_eval, lens/idempotency/subject_roster — none witness-enrolled, zero importers, absent from the 1,776-witness cold corpus run); every row remaining guards a LIVE file — floor-discovered witnesses or their roster/receipt/lens dependencies, proven green by execution (the lens/testgen/ trio's four test-data witnesses PASS in the cold corpus run, overturning an initial dead-scaffold read). Their strict-resolve reds are universe-relative artifacts, NOT tree rot: each imports modules that EXIST in-tree (v2.test.manual.eval_runtime, v2.test.manual.connective_anchors, test fixtures) but sit behind this list's own blanket '/test/' and 'test/fixture/' rows, so the probe universe drops the import target while keeping the importer. Consumers are probe/instrument/census class only (measure_whole_tree_resolve, capture_func_env_semantic_oracle, wiring_liveness_whole_tree, measure_dependency_view_build, fn_arrow_decl_substrate census) — no witness-discovery or CI-gate coverage narrows. Dissolve each row on: its file relocates under a /test/ path (leaving the probe universe together with its import targets) or the blanket /test/ exclusion policy changes so its resolve repairs; a row that excludes nothing is dead weight, delete it." +data whole_tree_strict_resolve_scaffold_exclusion_note: String = "The per-file rows below (everything after the three blanket prefixes and the two lens/application rows) are the strict-resolve-broken set, baked as single authority per operator ruling 2026-07-13 ('just make it single authority') — previously re-derived per probe run as --exclude-subpath args (M0/M1a receipts, docs/plans/v1-run-stability-throughline.md), a parallel representation this bake dissolves. Audited file-by-file 2026-07-13 (24 files, 5-group sweep with per-file execution receipts): 7 genuinely dead scaffolds were DELETED with their rows (the four Wave-A rung evals, the A.1.5a inprocess_equivalence one-shot, manual_corpus_eval, lens/idempotency/subject_roster — none witness-enrolled, zero importers, absent from the 1,776-witness cold corpus run); every row remaining guards a LIVE file — floor-discovered witnesses or their roster/receipt/lens dependencies, proven green by execution (the lens/testgen/ trio's four test-data witnesses PASS in the cold corpus run, overturning an initial dead-scaffold read). Their strict-resolve reds are universe-relative artifacts, NOT tree rot: each imports modules that EXIST in-tree (v2.test.manual.eval_runtime, v2.test.manual.connective_anchors, test fixtures) but sit behind this list's own blanket '/test/' and 'test/fixture/' rows, so the probe universe drops the import target while keeping the importer. Consumers are probe/instrument/census class only (measure_whole_tree_resolve, capture_func_env_semantic_oracle, wiring_liveness_whole_tree, measure_dependency_view_build, fn_arrow_decl_substrate census) — no witness-discovery or CI-gate coverage narrows. Dissolve each row on: its file relocates under a /test/ path (leaving the probe universe together with its import targets) or the blanket /test/ exclusion policy changes so its resolve repairs; a row that excludes nothing is dead weight, delete it. First relocation receipt (2026-07-14): the spice pair (spice_rc_passive_deck_claims_test, spice_rc_ngspice_oracle_test) re-homed to src/v2/test/claim/extdeps/ — they leave the probe universe with their fixtures, stay witness-discovered, and their two rows deleted per this trigger." data whole_tree_strict_resolve_exclusion_substrings: List = [ "test/fixture/", @@ -122,8 +122,6 @@ data whole_tree_strict_resolve_exclusion_substrings: List = [ "nat_semiring_rung", "lens/application/empty_required_lenses_skip_gate.dag", "lens/application/rejecting_lens_blocks_before_compile.dag", - "extdeps/spice_rc_passive_deck_claims_test.dag", - "extdeps/formats/spice_rc_ngspice_oracle_test.dag", "lens/idempotency/write_effect.dag", "lens/parallelism/data_dependency.dag", "lens/testgen.dag", diff --git a/dag/gunbc/plans/shell_emission_model.dag b/dag/gunbc/plans/shell_emission_model.dag index 55a73440b8f..fd96b3b1475 100644 --- a/dag/gunbc/plans/shell_emission_model.dag +++ b/dag/gunbc/plans/shell_emission_model.dag @@ -6,7 +6,7 @@ import gunbc.plans.md_helpers { h2, h3, p, li, ul, ol, cell, row } fn shell_emission_model_body() -> List { [ - BlockquoteBlock { blocks: [p(text: "Operator-signed design (multi-agent audit, verified against live tree). Shell emission lane: medium-agnostic orchestration intent → `emit(intent, Bash)` via the existing `05_emit_orchestration` dispatcher — **not** a new `ShellProgram` AST. DESIGN refs: §2 (intent vs transport vs spelling), §3 (single authority; `program.dag` rostered for dissolution), §4 (`emit = serialize_target ∘ translate` — endgame Q3), §5 (emit-only faithfulness; green by execution vs frozen bytes), §6 (purity-trap fence: no construct without a named live site). Complements [regime-2 shared emission fold](regime2-shared-emission-fold.md) (`std.layout.Doc` = **layout only**, never shell content) and [format-model-reconciliation](format-model-reconciliation.md) (record spelling). Parent arc: [emission-ingestion-inverse.md](emission-ingestion-inverse.md) gap (B).")] }, + BlockquoteBlock { blocks: [p(text: "Operator-signed design (multi-agent audit, verified against live tree). Shell emission lane: medium-agnostic orchestration intent → `emit(intent, Bash)` via the existing `05_emit_orchestration` dispatcher — **not** a new `ShellProgram` AST. DESIGN refs: §2 (intent vs transport vs spelling), §3 (single authority; `program.dag` rostered for dissolution), §4 (`emit = serialize_target ∘ translate` — endgame Q3), §5 (emit-only faithfulness; green by execution vs frozen bytes), §6 (purity-trap fence: no construct without a named live site). Complements [regime-2 shared emission fold](regime2-shared-emission-fold.md) (`std.layout.Doc` = **layout only**, never shell content) and [format-model-reconciliation](format-model-reconciliation.md) (record spelling). Parent arc: [emission-ingestion-inverse.md](emission-ingestion-inverse.md) gap (B). Residual census + arc-completion scoping: [shell-to-dag-residual-census-and-arc-completion.md](shell-to-dag-residual-census-and-arc-completion.md) (witty-ibex-317, #6514).")] }, p(text: "**Status:** planning tracker · **`.dag` carrier is authority** (§6). Linked from `ROADMAP.md` §6. **This PR is docs/authority only** — no emitter/serializer code."), h2(text: "1. The finding (reframes the frontier)"), p(text: "Shell is emitted as **raw strings** everywhere — even `host_effect.dag` carries `ShellCommand\{script: String\}`. But the arc is **~20% built**, not greenfield:"), diff --git a/docs/plans/shell-emission-model.md b/docs/plans/shell-emission-model.md index d8180f9191a..7134f886759 100644 --- a/docs/plans/shell-emission-model.md +++ b/docs/plans/shell-emission-model.md @@ -1,6 +1,6 @@ # Shell emission model — orchestration intent to bash via emit(intent, Bash) -> Operator-signed design (multi-agent audit, verified against live tree). Shell emission lane: medium-agnostic orchestration intent → `emit(intent, Bash)` via the existing `05_emit_orchestration` dispatcher — **not** a new `ShellProgram` AST. DESIGN refs: §2 (intent vs transport vs spelling), §3 (single authority; `program.dag` rostered for dissolution), §4 (`emit = serialize_target ∘ translate` — endgame Q3), §5 (emit-only faithfulness; green by execution vs frozen bytes), §6 (purity-trap fence: no construct without a named live site). Complements [regime-2 shared emission fold](regime2-shared-emission-fold.md) (`std.layout.Doc` = **layout only**, never shell content) and [format-model-reconciliation](format-model-reconciliation.md) (record spelling). Parent arc: [emission-ingestion-inverse.md](emission-ingestion-inverse.md) gap (B). +> Operator-signed design (multi-agent audit, verified against live tree). Shell emission lane: medium-agnostic orchestration intent → `emit(intent, Bash)` via the existing `05_emit_orchestration` dispatcher — **not** a new `ShellProgram` AST. DESIGN refs: §2 (intent vs transport vs spelling), §3 (single authority; `program.dag` rostered for dissolution), §4 (`emit = serialize_target ∘ translate` — endgame Q3), §5 (emit-only faithfulness; green by execution vs frozen bytes), §6 (purity-trap fence: no construct without a named live site). Complements [regime-2 shared emission fold](regime2-shared-emission-fold.md) (`std.layout.Doc` = **layout only**, never shell content) and [format-model-reconciliation](format-model-reconciliation.md) (record spelling). Parent arc: [emission-ingestion-inverse.md](emission-ingestion-inverse.md) gap (B). Residual census + arc-completion scoping: [shell-to-dag-residual-census-and-arc-completion.md](shell-to-dag-residual-census-and-arc-completion.md) (witty-ibex-317, #6514). **Status:** planning tracker · **`.dag` carrier is authority** (§6). Linked from `ROADMAP.md` §6. **This PR is docs/authority only** — no emitter/serializer code. diff --git a/src/v2/extdeps/formats/spice_rc_ngspice_oracle_test.dag b/src/v2/test/claim/extdeps/spice_rc_ngspice_oracle_test.dag similarity index 100% rename from src/v2/extdeps/formats/spice_rc_ngspice_oracle_test.dag rename to src/v2/test/claim/extdeps/spice_rc_ngspice_oracle_test.dag diff --git a/src/v2/extdeps/spice_rc_passive_deck_claims_test.dag b/src/v2/test/claim/extdeps/spice_rc_passive_deck_claims_test.dag similarity index 100% rename from src/v2/extdeps/spice_rc_passive_deck_claims_test.dag rename to src/v2/test/claim/extdeps/spice_rc_passive_deck_claims_test.dag diff --git a/src/v2/workflow/claim_witness_corpus_ci_runner.dag b/src/v2/workflow/claim_witness_corpus_ci_runner.dag index c1948dea9fb..33d3556b4bd 100644 --- a/src/v2/workflow/claim_witness_corpus_ci_runner.dag +++ b/src/v2/workflow/claim_witness_corpus_ci_runner.dag @@ -499,21 +499,21 @@ data corpus_ci_gate_row_spice_resistor_passive_topology: ClaimWitnessCorpusClaim data corpus_ci_gate_row_spice_rc_ngspice_op: ClaimWitnessCorpusClaimRunRow = ClaimWitnessCorpusClaimRunRow { label: "SP-M1 spice RC tran ngspice emit matches golden", - entry: "src/v2/extdeps/formats/spice_rc_ngspice_oracle_test.dag", + entry: "src/v2/test/claim/extdeps/spice_rc_ngspice_oracle_test.dag", function: "spice_rc_ngspice_op_holds", expected: ExpectPass } data corpus_ci_gate_row_spice_rc_ngspice_nonempty: ClaimWitnessCorpusClaimRunRow = ClaimWitnessCorpusClaimRunRow { label: "SP-M1 spice RC tran ngspice emit nonempty", - entry: "src/v2/extdeps/formats/spice_rc_ngspice_oracle_test.dag", + entry: "src/v2/test/claim/extdeps/spice_rc_ngspice_oracle_test.dag", function: "spice_rc_tran_emit_ngspice_nonempty_holds", expected: ExpectPass } data corpus_ci_gate_row_spice_rc_passive_deck_authority: ClaimWitnessCorpusClaimRunRow = ClaimWitnessCorpusClaimRunRow { label: "spice RC passive deck fixture authority (vin-R1-mid-C1-ground + .op)", - entry: "src/v2/extdeps/spice_rc_passive_deck_claims.dag", + entry: "src/v2/test/claim/extdeps/spice_rc_passive_deck_claims_test.dag", function: "spice_rc_passive_deck_authority_holds", expected: ExpectPass }