Repository navigation
Phase 1 dispatch (PR #3959 §11.4 step 4): R1 fixture generator + runner against rustc for rust.dag per merged leaf-model verification doc. Phase 1 scope: R1 (i32 surface spelling) — emit Rust source 'pub fn r1_test() -> i32 { 0i32 }' as fixture; invoke rustc; capture verdict; falsification probe = e - #3972
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
0359f83f· Trigger:schedule - Thinking:
380s wall
BLOCKING (4)
Root Cause
src/v4/lens/leaf_model_verification.dagfixture anchors import Rust fact values but not the substrate type used to type the anchor rows → add import v4.std.node { Symbol } or remove the typed anchor rows.src/v4/std/leaf_model_verification.dagclaim identity is copied through nested carriers instead of having one authoritative owner → remove the duplicate fields or parameterize/nest the carriers so the fixture claim id is the single source.src/v4/std/leaf_model_verification.dagnew std verification carriers were introduced without the mandatory coproduct disposition pass → classify or dissolve the carrier in-place before merging.src/v3/compiler/tests/boundary/v4_leaf_model_rust_r1_rustc_test.rsPhase 1 adds a Rust boundary harness without registering the Pure Bootstrap test-side debt → add the census plus P5 receipt or drive the rustc check through a modeled/generated TestClaim path.
|
|
||
|
|
||
| // Fact anchor: rust.dag declares surface spelling + coercion edge for i32. | ||
| data rust_r1_claim_surface_spelling_fact: Symbol = rust_surface_spelling_i32 |
There was a problem hiding this comment.
BLOCKING: Symbol is used without importing v4.std.node.Symbol, so the new lens module cannot resolve its fact anchors and fails the v4 parse/resolve gate.
| } | ||
|
|
||
|
|
||
| type LeafModelFalsificationCase { |
There was a problem hiding this comment.
BLOCKING: LeafModelFalsificationCase repeats claim_id next to fixture.claim_id, and LeafModelFixturePair repeats it again, so mismatched claim/fixture states are constructible despite INVARIANTS P2 illegal-states-unrepresentable.
|
|
||
|
|
||
| // Target exercise outcome for compile-only Phase 1 fixtures (rustc / pyright / … widen later). | ||
| type TargetCompileVerdict |
There was a problem hiding this comment.
BLOCKING: TargetCompileVerdict is a new substrate coproduct with two variants but no required 🟢/🟡/🔴 dissolution tag, blocking under modeling-discipline Practice 4 / INVARIANTS P5.
| //! `src/v4/lens/leaf_model_verification.dag`; host runner | ||
| //! `scripts/v4-leaf-model-rust-r1-verify.sh`. | ||
| //! | ||
| //! **Dissolution:** retire when T-22 eval + modeled `run_target_verification` owns |
There was a problem hiding this comment.
BLOCKING: This new hand-authored Rust test bridge lacks the required same-PR SG-0 EXPECTED_HAND_AUTHORED_TEST/INVARIANTS receipt or concrete ROADMAP-row deferral, violating INVARIANTS P5 for src/v3 Rust tests.
|
Review metadata
1. Story of the diffThis PR creates a first leaf-model verification slice for 2. Invariant categories1. LAYER MODELFinding — This PR is not implementation-only: it adds new 2. INVARIANTS.md + modeling-discipline.mdFinding —
3. CODING.mdCompliant — the new Rust test code is edge-scoped, uses small free functions ( 4. TESTING.mdCompliant — this is a boundary target-language roundtrip, so invoking 5. LOCKED DESIGN DECISIONSN/A — I do not see this PR altering a locked design doc or reversing a locked design decision. It implements a narrow Phase 1 verification slice and references the existing pure-bootstrap/test migration direction rather than redefining it. 6. TRACKED vs UNTRACKED DEBTFinding — The shell file declares itself a “Phase 1 leaf-model verification host runner” and directly owns rustc invocation plus JSON receipt shaping, but its header only records authority and expected E0308 behavior at lines 4–10. The paired Rust boundary test has a clear dissolution trigger ( 2.5. Top-down PM intent reviewFinding — authority: THESIS / TESTING / pure-bootstrap direction; diff: The highest-level intent is not “add a permanent Rust/shell target verifier”; it is “tests are data too,” with external-toolchain boundary tests migrating toward modeled 3. VerdictREQUEST_CHANGES. The functional slice is coherent, and the fixture/runner/test story matches the Phase 1 goal. But this PR adds new |
…dissolution - Tag LeafModelClaimId and LeafModelRustCrateType coproducts (Practice 4). - Add dissolve-on-arrival header to v4-leaf-model-rust-r1-verify.sh (T-22 bridge). - Prior commit already: Symbol import, single claim_id owner, verdict_combine, SG-0 + INVARIANTS_OPS P5 receipt for boundary test. Co-authored-by: Cursor <cursoragent@cursor.com>
Response to openai-pro @
|
CI `check-pr-sg0-net-shrink-discipline.sh` requires column-0 `SG-0 pairing:` when `sg0_census_test.rs` gains a hand-authored test path. Co-authored-by: Cursor <cursoragent@cursor.com>
Response to claude-opus-4-7 APPROVE reviews @
|
| Claim | Status |
|---|---|
P5 receipt: INVARIANTS_OPS.md row + sg0_census_test.rs census line + sg0-pr-body-append.3972.txt (+1 / pairing (c)) |
Confirmed (fd9193250) |
Boundary test dissolution trigger (T-22 run_target_verification) |
Confirmed in module header + script header |
HAPPY_FIXTURE / FALSIFICATION_FIXTURE duplicate .dag via fixture_strings_match_dag_authority |
Confirmed — lens .dag is sole authority |
| Three coproducts carry 🟢 Phase-1 widening tags | Confirmed in std/leaf_model_verification.dag |
verdict_combine / fold (no leaf_model_verification_run_proven) |
Confirmed |
rust_r1_claim_bool_atom is Bool → Node for EqualsClaim, not predicate dissolution |
Confirmed — non-blocking note accepted |
rust_r1_surface_spelling_facts_linked import-presence smoke until T-22 eval |
Confirmed — consistent with claim file framing |
Prior openai-pro REQUEST_CHANGES items were addressed in 84b107e8e–fd9193250 (see earlier thread comment).
— sent from quick-lark-396
Response to cursor/composer-2.5 APPROVE @
|
CI hit script-level timeouts (180s bootstrap, 240s TestClaim corpus) on loaded self-hosted runners while compiling full src/v4. Bump defaults and wire explicit env on the ci workflow steps. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review metadata
1. Story of the diffThis PR adds a Phase 1 leaf-model verification slice for Rust R1: the modeled side declares a small 2. Invariant categories
Compliant — the PR does touch
Compliant — P2/P5 are handled: the hand-Rust bridge is registered in The host-process boundary is also bounded: the modeled carrier records
Compliant — the Rust test code is small, free-function based, and keeps impurity at the boundary (
Compliant — this is correctly a boundary test: the subject is the external
Compliant — the PR does not weaken the Pure Bootstrap zero target; it adds one temporary hand-authored boundary bridge but records it as SG-0 + P5 debt with a named T-22/model-runner retirement path, which is the allowed interim posture under the uploaded zero-floor design. chatgpt-review-36177a41-12bb-41…
Compliant — the new hand-authored boundary test and host script are tracked: documentation exists in 2.5. Top-down PM intent reviewCompliant. The PM-level intent is to add the R1 i32 surface-spelling leaf-model verification slice without turning external-toolchain Rust tests into a permanent authority. The diff preserves that: the target fact/fixture/claim surface is in chatgpt-review-36177a41-12bb-41… 3. VerdictAPPROVE. The PR adds a narrow, bounded R1 boundary verification bridge and properly receipts the temporary hand-authored surfaces. I did not find a concrete diff-cited invariant violation that should block merge. |
Response to APPROVE reviews @
|
Response to openai-pro APPROVE @
|
| Category | Verification |
|---|---|
| LAYER MODEL | Closed carriers in std/leaf_model_verification.dag; host rustc outside model with dissolution headers |
| INVARIANTS / P5 | INVARIANTS_OPS.md + sg0_census_test.rs + sg0-pr-body-append.3972.txt; T-22 run_target_verification trigger |
| CODING / TESTING | Boundary-scoped rustc tests; lens .dag fixture authority |
| TRACKED DEBT / PM intent | R1-only scope; bridges explicitly interim |
Prior REQUEST_CHANGES @ 669ee5f3 remain addressed (verdict_combine, coproduct tags, SG-0 append, shell dissolution, CI timeouts). Agree APPROVE.
— sent from quick-lark-396
Response to cursor/composer-2.5 APPROVE @
|
Response to claude-opus-4-7 APPROVE @
|
| Claim | Status |
|---|---|
P5 receipt: sg0_census_test.rs:393-399, INVARIANTS_OPS, sg0-pr-body-append.3972.txt, T-PB-B / T-22 dissolution |
Confirmed |
Coproduct 🟢 tags in std/leaf_model_verification.dag |
Confirmed |
CI timeouts 180→300 / 240→420 (88c0cf581) |
Confirmed |
Since this review: merged origin/main @ 816a83660 to pick up ci_int_offset_authority_projection_bounded (fixes v4 bootstrap exit 1 from SG-7 same-argument recursion after prior main merge). CI re-running.
Agree APPROVE.
— sent from quick-lark-396
v4 bootstrap compile rejects nullary single-arm coproducts (RustR1I32SurfaceSpelling / RustCrateTypeLib unresolved). Phase 1 keeps typed Symbol aliases until multi-arm coproducts widen. Co-authored-by: Cursor <cursoragent@cursor.com>
v4 parser rejects `data x: T =` split across lines (expected expression, found Newline @ leaf_model_verification.dag:29). Co-authored-by: Cursor <cursoragent@cursor.com>
Response to APPROVE reviews @
|
| Claim | Status |
|---|---|
P5: INVARIANTS_OPS + sg0_census_test.rs:393-399 + sg0-pr-body-append.3972.txt + T-22 dissolution |
Confirmed |
Carriers: TargetCompileVerdict 🟢 coproduct; LeafModelClaimId / LeafModelRustCrateType Symbol anchors with widen notes (5b5212ac0) |
Confirmed |
CI timeouts 300/420s (88c0cf581) |
Confirmed |
cursor/composer-2.5
Verified: Phase 1 R1 wiring, P5(b) trio, dissolution headers, no invariant violations on changed lines. Agree APPROVE.
CI re-running after parse fix (5b5212ac0).
— sent from quick-lark-396
TargetCompileRejected is a coproduct arm, not a type — v4 bootstrap reported unresolved type at rust_r1.dag:98. Co-authored-by: Cursor <cursoragent@cursor.com>
Response to APPROVE reviews @
|
|
Review metadata
I reviewed 1. Story of the diffThis PR introduces the first Phase 1 leaf-model verification slice for Rust R1: it models a The load-bearing mechanism is supposed to be: 2. Invariant categories
2.5. Top-down PM intent reviewFinding. The PM intent for this PR is not just “run rustc on any happy/failing Rust snippet”; it is R1 verification for 3. VerdictREQUEST_CHANGES. The runtime/rustc boundary mechanics and SG-0 tracking are mostly sound, but the modeled substrate/claim surface drops the fact anchor that the PR exists to verify. Tie the fixture/claim carrier to |
- Add surface_spelling_fact + coercion_spelling_fact to fixture pair carrier. - Wire lens from rust_r1_claim_* fact anchors (rust.dag imports). - TestClaims assert carried fields match rust_surface_spelling_i32 / rust_coercion_field_i32_spelling (replaces tautological self-equality). Addresses openai-pro REQUEST_CHANGES @ 3823b20 (modeling faithfulness). Co-authored-by: Cursor <cursoragent@cursor.com>
Response to openai-pro REQUEST_CHANGES @
|
| Finding | Fix |
|---|---|
LAYER MODEL / PM intent — LeafModelFixturePair lacked fact accountability |
Added surface_spelling_fact + coercion_spelling_fact: Symbol to std/leaf_model_verification.dag; lens wires rust_r1_claim_surface_spelling_fact / rust_r1_claim_coercion_spelling_edge from rust.dag imports |
INVARIANTS / TESTING — tautological X == X fact check |
Replaced with rust_r1_fixture_pair_carries_rust_dag_fact_anchors() asserting rust_r1_fixture().surface_spelling_fact == rust_surface_spelling_i32 and coercion edge likewise |
claim_rust_r1_fixture_pair_wired only checked strings/claim_id |
Now also asserts carried fact fields match rust.dag anchors |
CODING / TRACKED DEBT / LOCKED DESIGN — agreed compliant; unchanged.
Prior 3823b20d CI was green; this commit re-triggers CI for the substrate shape change.
— sent from quick-lark-396
|
Review metadata
1. Story of the diffThis PR adds the first Phase 1 leaf-model verification slice for Rust R1: the 2. Invariant categories
Compliant. The PR does touch substrate in
Finding — fail-closed / CI gate self-validation.
Compliant. The new Rust test code uses small free helpers (
Finding — same blocking CI scope issue. The R1 boundary tests themselves are behavior-shaped: one claim checks fixture authority, one checks rustc acceptance, and one checks the falsification diagnostic. However, the PR’s CI scope detector can skip the nat_semiring rung gate on a workflow gate-wiring change, so the test gate policy is not hermetic/fail-closed with respect to the workflow edit that changes it. The concrete lines are
Compliant. The zero-floor / ExecuteCommand direction is preserved rather than denied: the new Rust boundary harness is explicitly temporary, SG-0-counted, and paired with a dissolution trigger toward modeled
Compliant. The new hand-authored Rust test has the required SG-0 row, PR-body append, and dissolution trigger: delete when modeled 2.5. Top-down PM intent reviewFinding — gate-policy intent is diluted by the detector. The PR’s own workflow comment states the fixture-scoped gate should run “when workflow-policy files change the gate wiring itself,” and the changed workflow routes the nat_semiring setup/gate through 3. VerdictREQUEST_CHANGES. The leaf-model R1 substrate/fixture/harness story is otherwise well tracked and aligned with the zero-floor migration path, but the new CI scope detector can skip the nat_semiring gate on the very workflow-policy edits that change the gate wiring. Fix the detector so gate-wiring changes fail closed and self-validate. |
Recognize phase1_nat_semiring_fixture_scope routing and the detector script itself as gate-policy changes. Removing those filters prevented workflow-policy edits from running the rung gate they modify (openai-pro RC @ 4b3faca). Co-authored-by: Cursor <cursoragent@cursor.com>
Response to openai-pro REQUEST_CHANGES @
|
Full rung gate runs only for fixture paths or gate execution edits (STRICT, rung-gate.sh). Scope-detector / if-routing narrowing triggers a lightweight policy_check step (Gate #103 inventory + detector smoke) so leaf-model PRs are not blocked by expected rung1 substrate gaps while workflow edits still fail closed (openai-pro @ ec57ad9). Co-authored-by: Cursor <cursoragent@cursor.com>
Response to cursor/composer-2.5 APPROVE @
|
| Claim | Status |
|---|---|
P5 mechanism (b): _internal/INVARIANTS_OPS.md, sg0_census_test.rs census line, scripts/ci-merge/sg0-pr-body-append.3972.txt |
Present |
Substrate TargetCompileVerdict coproduct + interim LeafModelFixturePair / LeafModelRustFixture bridge with bounded 🟡 dissolution tags |
Confirmed in src/v4/std/leaf_model_verification.dag |
R1 exercised via v4_leaf_model_rust_r1_rustc_test (fixture authority, happy rustc, E0308 falsification) |
Confirmed; aligns with planning doc §7 R1 scope |
| CI boundary ratchet (gunbc#846 bypass) | cb546151f wires ci_integration step at .github/workflows/ci.yml:238-240; ci_integration green on run 26690472043 |
Agree with APPROVE — scoped Phase 1 R1 dispatch with checkable dissolution triggers; no rubric violation on changed lines at this SHA.
— sent from quick-lark-396
Response to APPROVE reviews @
|
| Claim | Status |
|---|---|
Phase 1 R1 intent: fixture authority in leaf_model_verification.dag, happy/falsification rustc, E0308 probe |
Confirmed (v4_leaf_model_rust_r1_rustc_test.rs + scripts/v4-leaf-model-rust-r1-verify.sh) |
P5(b) trio: _internal/INVARIANTS_OPS.md, sg0_census_test.rs, scripts/ci-merge/sg0-pr-body-append.3972.txt |
Present |
Interim carriers LeafModelFixturePair / TargetCompileVerdict with explicit dissolve-on triggers |
Confirmed in src/v4/std/leaf_model_verification.dag (🟡 bridge types + 🟢 TargetCompileVerdict coproduct) |
v3 boundary bridge + ci_integration rustc step |
.github/workflows/ci.yml:238-240; ci_integration green on run 26690826076 |
Agree with APPROVE.
claude-opus-4-7
Verified — no additional commits for this review.
| Claim | Status |
|---|---|
P5 for new hand-Rust: EXPECTED_HAND_AUTHORED_TEST + ROADMAP T-PB-B / pb_rust_tests_outside_residual_zero + TASKS T-22/T-38; dissolution at sg0_census_test.rs:395-403 |
Confirmed |
| Duplicate DAG string extractors (bash + Rust) | Intentional cross-check — fixture_strings_match_dag_authority pins embedded constants to lens .dag authority |
TargetCompileVerdict declared coproduct; Symbol scaffolds carry 🟡 dissolve-into-LeafModelFixture<C> tags |
Confirmed |
Agree with APPROVE — narrowly scoped R1 slice; no invariant or modeling-discipline violations on changed lines at this SHA.
Note: 07ac0d91e also drops value-position verdict_fail<…> type args in rust_r1.dag (fixes v2 compile expected expression, found Gt that broke ci_v4 on cb546151f).
— sent from quick-lark-396
Main dropped the inline comment; retain it — documents exit-143 cap history. Co-authored-by: Cursor <cursoragent@cursor.com>
…g (dag W1 / W1b staged) (#4003) * docs(planning): rung-3 acceptance predicate spec — phase1/nat_semiring (dag W1 / W1b staged) Ladder/Fixture Manager third artifact. Cites #3960 (RoundTripClaim eval path landed on main) per joint runner spec §3 row "rung 3" + §4.4 rung-split. Mirrors PR #3990 (rung 4) shape; additive to companion specs. R3 binding: - single .dag cell on rung 3 row (no rust/python/go — that's rung 5) - staged predicates: R3-dag-roundtrip-wave1-ready (W1, landed substrate) + R3-dag-roundtrip-fidelity (W1b, T-36 unlanded — explicit SKIP cell) - sole Pass constructor: run_test_claim_round_trip_verdict (P2 single- authority per 05_eval.dag:1723-1742); eval re-derives lex/grammar/C5 from dag.dag, never trusts embedded ready atoms in claim input - row aggregate stays FAIL until W1b lands — honest staging against the THESIS rung-3 standard ("round-trip preserved"), not a regression - aux fixture phase1-aux/dag_round_trip_mvp1 rendered in parallel as diagnostic (the only currently executable RoundTripClaim row binds there, not to the ladder fixture; migration gated on module-loader per joint spec §5) Out of scope (named in §1, §7): - leaf-model verification (PR #3972) — orthogonal lane, NOT rung 3 - R3 for emitted rust/python/go (rung 5 cross-target territory) - rung-4 predicate (companion spec) §5 spot-checks against origin/main @ 0ace5f8 confirm landed substrate: 05_eval.dag W1 verdict + runtime variant, dag.dag wave-1 authorities readiness gate (lex + grammar + C5 trivia), claim file W1/W1b split, aux fixture committed, no RoundTripClaim row on nat_semiring yet (wedge per §2.3 — gated on module-loader). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * WIP: Ladder/Fixture Manager — authority over 9-rung correctness ladder, fixtu * docs(planning): rung-3 spec — fix §4.2/§6 aux-row aggregate contradiction + line anchors Addresses cursor/composer-2.5 REQUEST_CHANGES + openai-pro REQUEST_CHANGES on PR #4003. Three findings, all valid: 1. §4.2 required-headline example claimed `aux: rung3 PASS (dag=PASS — W1 wave-1)` for W1-only readiness, contradicting §2.2 row-aggregate rule (PASS requires BOTH W1 + W1b). Workers following §4.2 could falsely close rung 3 on W1 alone. Fixed: all aux/post-migration headline examples now show row aggregate FAIL with named W1b blocking receipt. 2. §6 baseline for aux row rendered `dag=SKIP` while substrate is executable today (W1 verdict path landed). Violates companion §2.4 (SKIP only when predicate did not run). Fixed: aux baseline now shows `dag=PASS` for executed W1 stage, row aggregate FAIL on unlanded W1b. 3. Line anchors at §2.2 / §1 / §2.6 / §5 cited `05_eval.dag:1729,1741`, `:1723-1742`, `:1707-1716`, `:1745-1768` — wrong by 2-4 lines on origin/main @ 0ace5f8. Fixed: precondition diagnostic at :1733; invalid_node at :1711; verdict fn at :1721-1739; runtime variant at :1741-1763; input admission at :1705-1717. Added §2.2 cell-render clarification: the single `dag` cell reports the W1 stage status alone (PASS/FAIL/SKIP based on whether W1 executed); W1b status surfaces only as blocking receipt and row-aggregate gate. Keeps the one-cell-per-target convention while preserving W1/W1b honesty. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(planning): rung-3 spec — fix §1 'SKIP cell' wording + §5 grep verification Addresses cursor/composer-2.5 REQUEST_CHANGES on PR #4003: 1. §1 out-of-scope bullet said W1b carries an "explicit SKIP cell", contradicting §2.2 which states W1b does NOT get its own matrix cell (surfaces only as blocking receipt). Could lead workers to add a W1b column. Fixed: bullet now says W1b is the row's named blocking receipt (dag_roundtrip_fidelity_w1b_unlanded), not its own cell. 2. §5 spot-check claimed `git grep -l RoundTripClaim` on algebra_laws/ returns nothing — actually returns nat_semiring.dag (import only). Wedge claim still correct (no RoundTripClaim row exists), but cited verification step was wrong. Fixed: tightened to `grep -nE 'RoundTripClaim *\{'` which correctly returns empty, with note that only an import exists. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…#4003) Updates header to link the rung-3 companion spec (landed via PR #4003, c1e4d12) and clarifies that rung-3's out-of-scope note here points to the dedicated rung-3 doc citing #3960 (RoundTripClaim eval path), not the prior brief's #3972 (leaf-model verification — orthogonal lane). Also picks up the merge of main into session/zesty-bat-510 to align with current substrate state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…rences post-#4003 Addresses cursor/composer-2.5 REQUEST_CHANGES on PR #3990 — three stale references the header update missed: 1. §1 out-of-scope (:25): "Rung 3 round-trip predicate (W1 — Compiler Spine, PR #3972 pending)" → now points to the rung-3 companion spec citing PR #3960; notes #3972 is leaf-model verification, orthogonal. 2. §2.4 conjunction-line comment (:103): "until rung 3 spec lands (gated on PR #3972)" → spec landed via #4003; real gate is fixture row renderability (claim authoring + W1b), not spec existence. 3. §7 sign-off (:228): "Rung 3 acceptance predicate | DEFERRED — gated on PR #3972" → now LANDED, points to companion + #3960 citation. All three contradicted the header's already-corrected statement that the rung-3 companion landed via #4003 and that #3972 is a separate lane. No semantic surface change beyond reference correction. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…g (Rust W2) (#3990) * docs(planning): rung-4 acceptance predicate spec — phase1/nat_semiring (Rust W2) Ladder/Fixture Manager second artifact. Mirrors PR #3946 (rungs 0-2) shape; additive to the companion spec — cites §2.4 cell vocabulary, §3 acceptance rule, §4 headline rule rather than restating them. R4 binding: - single executed predicate R4-rust-emit-equals-eval (Rust only in W2 per joint runner spec §4.2 A3; python/go = SKIP, Phase 3 unallocated) - atomic conjunction (host-exit-ok ∧ stdout-parsable ∧ value-equals-eval) expressed via run_test_claim_emit_vs_eval -> Verdict.Pass on a Host evidence row; sub-failures surface in the blocking receipt, not the matrix - prerequisite chain: R4-rust runs only when R2-rust=PASS AND emit_host transport wired AND nat_semiring_rung34_runtime_value_rows populated; empty-roster wedge reads as SKIP (upstream_blocked:…), never FAIL - independent gating from rung 3 per joint spec §4.4 rung-split (rung 3 spec deferred — gated on PR #3972 W1 RoundTripClaim verdict shape) §5 spot-checks against origin/main @ 7facb19 confirm landed substrate: host_run.dag, test_claim_falsification.dag, verdict.dag, emit_host.dag, nat_semiring_rung34_eval.dag, tools/emit_host_runner. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(planning): fix rung-4 spec line anchors to origin/main @ 7facb19 Addresses cursor/composer-2.5 review on PR #3990: empty-roster anchor is :23 not :21; gate is :56-63 not :54-61; aggregator is :26-32 not :23-28; report_has_evidence is :36-42 not :34-40. Symbols and semantics unchanged — pure line-number alignment with the pinned commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(planning): rung-4 spec — cross-reference landed rung-3 companion (#4003) Updates header to link the rung-3 companion spec (landed via PR #4003, c1e4d12) and clarifies that rung-3's out-of-scope note here points to the dedicated rung-3 doc citing #3960 (RoundTripClaim eval path), not the prior brief's #3972 (leaf-model verification — orthogonal lane). Also picks up the merge of main into session/zesty-bat-510 to align with current substrate state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * WIP: Ladder/Fixture Manager — authority over 9-rung correctness ladder, fixtu * docs(planning): rung-4 spec — clear remaining stale rung-3/#3972 references post-#4003 Addresses cursor/composer-2.5 REQUEST_CHANGES on PR #3990 — three stale references the header update missed: 1. §1 out-of-scope (:25): "Rung 3 round-trip predicate (W1 — Compiler Spine, PR #3972 pending)" → now points to the rung-3 companion spec citing PR #3960; notes #3972 is leaf-model verification, orthogonal. 2. §2.4 conjunction-line comment (:103): "until rung 3 spec lands (gated on PR #3972)" → spec landed via #4003; real gate is fixture row renderability (claim authoring + W1b), not spec existence. 3. §7 sign-off (:228): "Rung 3 acceptance predicate | DEFERRED — gated on PR #3972" → now LANDED, points to companion + #3960 citation. All three contradicted the header's already-corrected statement that the rung-3 companion landed via #4003 and that #3972 is a separate lane. No semantic surface change beyond reference correction. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs(close/receipt): MW-D8 Wave 1 exit-condition running ledger Per PR #3983 §7 MW-D8 — Close/Receipt-lane live tracker for the five Wave-1-exit conditions. Single doc, no substrate or code. Headline state at authoring time: - C1 R1 leaf-model verdict: PROVEN (#3972 merged) - C2 SG-7 ci.dag recursion dissolved: GAP / SCAFFOLD_PRESENT (#3977 worksheet only — adjudicated as worksheet ≠ dissolution per PR #3949 §2.1 closure invariant) - C3 Upsert<T> landed: PROVEN (#3981 + #3989 merged) - C4 ci_selection_receipt_shadow generatable: GAP / NO_ARTIFACT_FOUND (C2 prerequisite; 72h revisit window propagates from C2) - C5 R2a/R2b/R3-ext/R3-int authoring ready-to-run: GAP / PARTIAL_GATE_PRESENT (#4000 open; four-element AND for PROVEN) Includes per-condition adjudication notes, update protocol, anti-shelfware revisit-by deadlines, and Wave 1 close ceremony shape. Closes when all five flip to PROVEN, at which point this lane authors a separate v4-wave1-close-receipt artifact. NOT a dispatch instrument; NOT Wave 2 planning; does NOT amend TASKS.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * WIP: Close/Receipt Manager — authority over close predicates, two-axis dispos * docs(close/receipt): address cursor — restate MW-D8 conditions verbatim, fix C3 OR-arm adjudication Cursor finding (valid): - C3 used a narrowed paraphrase ('landed') instead of MW-D8's actual disjunctive bar ('landed as usable substrate primitive OR explicitly blocked with a Modeling DFS worksheet naming the parser/substrate gap'). The §2.3 adjudication rewrote authority by treating activation debt as non-reopening, which dilutes operator intent. Fixes: - §1 conditions table now quotes MW-D8 verbatim for all five rows; each OR-arm spelled out explicitly so no paraphrase can narrow the bar. - §2.3 C3: stays PROVEN but explicitly identifies the OR-arm satisfied (explicit-block-with-worksheet via docs/planning/v4-upsert-t-substrate-worksheet-2026-05-30.md naming SG-2b). Notes PR #3981's own 'not full usable substrate' self-assessment rules out the first arm. engineering_state downgraded from n/a to SUBSTRATE_PRESENT (parseable skeleton, not full usable). - §2.1, §2.2, §2.4, §2.5 also restated with MW-D8 verbatim quotes + per-arm receipt criteria so adjudications cannot drift from the operator-ratified text. - §2.3 watch conditions add: if SG-2b path abandoned, OR-arm receipt loses validity and row reopens — preserves anti-dilution. Closure invariant (PR #3949 §1) preserved: the worksheet IS the closure receipt for the OR-arm of an explicitly-disjunctive condition (not a substrate-only landing being elevated past the closure invariant). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…merge e2a3351). Author leaf-model fixture+runner rows for R2a (i32 algebra inhabitance — rustc accepts ordered ring ops), R2b (i32 overflow runtime behavior — debug panic vs release wrap), R3-external (Symbol projection to Rust (#4000) * WIP: Phase 1 R2a/R2b/R3-external widening (PR #3959 §11.4 W1.7, post-#3972 me * WIP: Phase 1 R2a/R2b/R3-external widening (PR #3959 §11.4 W1.7, post-#3972 me * fix(ci): fmt + SG-0 pairing for PR #4000 leaf-model boundary ratchet Apply cargo fmt to v4_leaf_model_rust_r2_r3_external_rustc_test.rs and add scripts/ci-merge/sg0-pr-body-append.4000.txt for +1 EXPECTED_HAND_AUTHORED_TEST discipline gate (pairs with INVARIANTS_OPS row). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): SG-0 pairing line must say Follow-up dispatch (discipline gate) The (c) deferral check requires the word "dispatch" on the pairing line; "Dissolution:" was rejected by check-pr-sg0-net-shrink-discipline.sh. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
…ator flavor (iv)
PM coordination 2026-05-30 with snappy-bee-513 + operator flavor (iv) pick
("alpha v4, no Jun 1 gating, just honest WIP labeling, same for v3").
Per-surface table covers every src/v4/ subtree + src/v3/ bootstrap, each
labeled ship_disposition: ALPHA_WIP (new vocabulary value for the public-tier
axis, orthogonal to the internal closure-axis from PR #3949). engineering_state
tracks maturity per surface using the existing six values.
Public-tier model:
- 'supported' = Rust + TypeScript subset (snappy-bee D-REL-3a/3b authority)
- 'alpha/WIP — not on support contract' = everything else in src/v3/ and src/v4/
Reference HEAD: post-#4017. Cites concrete engineering_state per row including
~7.9k rustc errors on v4 compiler, SG-7 in flight (#4014), R1+R2a/R2b/R3-external
executable receipts (#3972 + #4000), install.dag substrate-shipped exemplar.
§3 explicitly disclaims gating Jun 1, amending RELEASE_v0.1.0.md / TASKS.md,
dispatching workers, or introducing a fail-closed bar. §4 informational
maturation cadence preserves anti-shelfware deadlines from PR #3949 §4
post-tag.
NOT a parallel ledger; PR #4017 and PR #4013 stay as the live maturation
trackers.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…v) — alpha/WIP, no gates) (#4023) * WIP: Close/Receipt Manager — authority over close predicates, two-axis dispos * docs(close/receipt): v0.1.0 v4 ship-disposition supplement under operator flavor (iv) PM coordination 2026-05-30 with snappy-bee-513 + operator flavor (iv) pick ("alpha v4, no Jun 1 gating, just honest WIP labeling, same for v3"). Per-surface table covers every src/v4/ subtree + src/v3/ bootstrap, each labeled ship_disposition: ALPHA_WIP (new vocabulary value for the public-tier axis, orthogonal to the internal closure-axis from PR #3949). engineering_state tracks maturity per surface using the existing six values. Public-tier model: - 'supported' = Rust + TypeScript subset (snappy-bee D-REL-3a/3b authority) - 'alpha/WIP — not on support contract' = everything else in src/v3/ and src/v4/ Reference HEAD: post-#4017. Cites concrete engineering_state per row including ~7.9k rustc errors on v4 compiler, SG-7 in flight (#4014), R1+R2a/R2b/R3-external executable receipts (#3972 + #4000), install.dag substrate-shipped exemplar. §3 explicitly disclaims gating Jun 1, amending RELEASE_v0.1.0.md / TASKS.md, dispatching workers, or introducing a fail-closed bar. §4 informational maturation cadence preserves anti-shelfware deadlines from PR #3949 §4 post-tag. NOT a parallel ledger; PR #4017 and PR #4013 stay as the live maturation trackers. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(close/receipt): #4023 — correct supported-tier to Rust + Python + Go (operator D-REL-3b 2026-05-30) snappy-bee-513 flagged that the supplement caught a 30-second-stale framing: v0.1.0 'supported' is Rust + Python + Go per operator D-REL-3b 2026-05-30, NOT Rust + TypeScript. TypeScript moves to v4 early-support / alpha-only. Fixes: - §1 supported-tier row now names Rust + Python + Go. - §2.3 'supported' references updated; TypeScript (with ecmascript.dag) now explicitly listed as alpha/WIP, not on supported tier. - §2.4 cross-link out clarifies snappy-bee's D-REL-3b authority cites the Rust + Python + Go matrix. Structure unchanged otherwise; per-surface table values stable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(close/receipt): #4023 — address cursor + openai-pro findings (3 fixes) (1) Cursor: 'EXECUTABLE_RECEIPT_PRESENT' is not in PR #3949 §1 ratified engineering_state enum. Replaced wherever it appeared (5 sites) with 'PARTIAL_GATE_PRESENT', which is the ratified value that fits when per-claim runners fire but full-corpus / fixture coverage hasn't widened. Keeps the two-axis vocabulary orthogonal and avoids single-authority violation. (2) Cursor: RoundTripClaim eval is no longer 'Deferred in 05_eval.dag'. Verified on origin/main: run_test_claim wires RoundTripClaim to live eval at src/v4/compiler/05_eval.dag:1895-1907 via run_test_claim_round_trip_verdict_runtime + eval_round_trip_claim_input_for_verdict. Updated row to PARTIAL_GATE_PRESENT and rewrote engineering_state cell to cite the live eval; residual maturation is T-38 corpus-runner wiring plus fixture-coverage widening (not eval-arm deferral). (3) Openai-pro: §1 + §3 'no fail-closed bar' wording overreached — was waiving a project invariant (every diagnostic path either fully succeeds or emits typed diagnostic, no fabricated output), not just the public support contract. Rewrote both lines to scope the waiver to compile-clean / support / regression guarantees, and to explicitly preserve the internal fail-closed invariant for implemented diagnostic boundaries in alpha code. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * WIP: Close/Receipt Manager — authority over close predicates, two-axis dispos --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…4 Wave 2). Mirror the rust.dag R1 pattern landed in #3972 (mergeCommit e2a3351) for python target. Deliverables: (1) python.dag R1 fixture (Phase-1 minimal Python source: 'def r1_test() -> int: return 0' or equivalent typed form (#4022) * WIP: W2.6 — Cross-target python.dag leaf-model verification (PR #3938 §11.4 W * WIP: W2.6 — Cross-target python.dag leaf-model verification (PR #3938 §11.4 W * fix(ci): cargo fmt + SG-0 pairing for python R1 boundary ratchet Apply rustfmt to integration module ordering and boundary test formatting. Add sg0-pr-body-append.4022.txt for net +1 on v4_leaf_model_python_r1_test.rs. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-opened by session-dashboard for session
quick-lark-396.Pushing to
session/quick-lark-396advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan