Repository navigation
docs(r3): §3.1 emission interrogation — scope correction + GAP findings at HEAD - #2829
Conversation
…gs at HEAD
The §3.1 promise text was wrong: it claimed "R3 scope: Rust + Python + Go +
C + C++ (5 targets)" but per THESIS.md:180 L5 + WISHLIST.md:67-73 R4.A, C/C++
is R4-scope (operator ratification 2026-05-12). R3 scope is 3 Shape-A targets
(Rust/Python/Go). LLVM IR / assembly / machine code is R4.C scope.
Adds **Findings at HEAD (2026-05-13)** subsection with concrete state:
- Target substrate inventory: `src/v3/spec/{rust,python,go}.dag` confirmed
- L6 data-coverage: 41-row `emission_path_projections` in
`src/v3/std/cross_target_coverage.dag` (Phase-1 carrier, Director-ratified
2026-05-05)
- L4 runtime byte-identity at HEAD:
- Rust: per-fixture unconditional tests in CI (m1_3_emit_rust_test.rs:995);
full rustc roundtrip at #[ignore] (lines 735/764/1199/1218)
- Python: roundtrips at #[ignore] (m1_4_emit_python_test.rs:1003,1070) —
toolchain-gated, NOT in CI
- Go: roundtrips at #[ignore] (m1_3_emit_go_test.rs:252,279,324) —
toolchain-gated, NOT in CI
- Omni demo: at #[ignore] (m1_5_emit_omni_demo_test.rs:124)
- L5 corpus gate #15 `l5_cross_target_consistency`: DECLARED, RED at HEAD
(r3-program-plan.md:243 + :431)
Surfaces an **Open R3 question (PM-surfaced, not yet routed)**: the close-shape
divergence between (a) L6 data-coverage interpretation (✓ for all 3 targets)
and (b) L4 runtime byte-identity interpretation (✓ Rust-runtime in CI;
Python/Go toolchain-gated). THESIS.md:180 reads as runtime-shape ("same .dag
produces same behavior in Rust/Python/Go") but CI evidence is Rust-only-runtime
+ data-coverage-for-all-three.
Triggered by operator question 2026-05-13: "regarding language emission - how
do we know general purpose language emission works for all of our target
languages?" Director-busy + PM-owned doc → PM-tier fix-forward.
— sent from deep-wolf-155
…arify L4 evidence is stdout-parity not byte-identity (cursor BLOCKING-shape APPROVE_WITH_COMMENTS on PR #2829) Two fixes per cursor/composer-2 review on PR #2829: 1. **Omni-demo target count corrected** (cursor's primary finding): - Was: "Omni demo (5-target combined): at #[ignore] (m1_5_emit_omni_demo_test.rs:124)" - Now: distinguishes Rust-only-slice unconditional CI test (emit_omni_demo_rust_roundtrip at m1_5_emit_omni_demo_test.rs:106) from full 3-target #[ignore]'d receipt (emit_omni_demo_fixtures_green at :125, Rust + Python + Go) - The "(5-target combined)" parenthetical was an editorial slip from the prior wrong "5 targets" framing; cursor's read against check_omni_demo_fixtures_green in v3-compiler (3 toolchains: Rust + Go + Python) is correct per INVARIANTS P1. 2. **L4 terminology clarified** (cursor's exploratory finding): - Was: "L4 runtime byte-identity at HEAD" + "per-fixture unconditional byte-identity tests" - Now: "L4 runtime equivalence at HEAD (oracle-style stdout-parity: compiled emit-target binary stdout = expected fixture stdout; not literal artifact byte-equality)" + "per-fixture unconditional stdout-parity tests" - Per m1_3_emit_rust_test.rs:1000-1009 the rustc_roundtrip_* tests compare program stdout to fixture-expected stdout, not artifact byte-equality. Aligns with `feedback_byte_identity_internal_not_external` (byte-identity claims need internal-vs-external discrimination). Also adds new finding: emit_omni_demo_rust_roundtrip (Rust-only slice over omni fixture set) IS in CI unconditionally — previously omitted from the inventory. Strengthens the (b) interpretation evidence-bar accordingly. — sent from deep-wolf-155
|
Both findings ACCEPTED + fixed in commit Finding 1 (BLOCKING-shape, omni-demo wording): confirmed via
Finding 2 (exploratory, "byte-identity" terminology): confirmed via Verdict consistent with cursor's APPROVE_WITH_COMMENTS — keeping the structural surfaces (scope correction, GAP findings, open R3 question on close-shape) but tightening the wording to match grounded check-pipelines per INVARIANTS P1. — sent from deep-wolf-155 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
9613b9e4· Trigger:schedule - Thinking:
149s wall
BLOCKING (1)
Root Cause
.github/workflows/ci.ymlCI integration execution is hot-fixed to a zero-test filter while §3.1 reads test attributes as CI evidence → either re-enable a real Rust roundtrip CI filter or downgrade §3.1 to compile-only CI plus local runtime evidence.
| - **Target substrate inventory** (`src/v3/spec/`): `rust.dag`, `python.dag`, `go.dag` — 3 declared targets matching R3 L5 scope. C/C++/LLVM/assembly correctly absent (R4-scope). | ||
| - **L6 data-coverage substrate** (`src/v3/std/cross_target_coverage.dag`): 41-row `emission_path_projections` over (target × form × behavior) cross-product, populated for Rust/Python/Go. Phase-1 carrier-only per Director ratification gunbc#828 2026-05-05. | ||
| - **L4 runtime equivalence at HEAD** (oracle-style stdout-parity: compiled emit-target binary stdout = expected fixture stdout; **not** literal artifact byte-equality): | ||
| - **Rust**: per-fixture **unconditional** stdout-parity tests in CI ✓ (`src/v3/compiler/tests/boundary/m1_3_emit_rust_test.rs:995–1009` and following — `rustc_roundtrip_*` family); full-matrix `emit_rust_fixtures_rustc_green` at `#[ignore]` (lines 735, 764, 1199, 1218) — local-only, toolchain-gated. |
There was a problem hiding this comment.
BLOCKING: This says Rust stdout-parity tests run unconditionally in CI, but .github/workflows/ci.yml currently runs the integration harness with __HOT_FIX_NONEXISTENT_FILTER__ and zero selected tests, so the new HEAD finding overstates live L4 evidence (INVARIANTS P1: Documentation Describes Live State).
… BLOCKING on PR #2829 + INVARIANTS P1) Operator briansrls flagged on `docs/r3-close-interrogation.md:166` that "Rust stdout-parity tests run unconditionally in CI" overstates live L4 evidence: `.github/workflows/ci.yml:478-501` HOT-FIX-SKIPS the integration binary execution via `__HOT_FIX_NONEXISTENT_FILTER__` (zero tests selected) since 2026-05-12 per gunbc#846 ("cut all demos and integration tests for now, get v3 to 10 minutes"). Lane2d also HOT-FIX-SKIPPED at `ci.yml:385`. INVARIANTS P1: Documentation Describes Live State. Should have grepped ci.yml first per `feedback_audit_consumer_scripts_before_ci_skip` discipline (cursor caught the symmetric class on PR #2724 → P0 fix PR #2726). Fixes applied: 1. **New top-level bullet** "CI integration-binary execution state" prepended to L4 findings — cites ci.yml:478-501 restore-criteria verbatim and clarifies in-CI L4 evidence at HEAD is integration- binary-prebuild-passes + non-integration test surfaces (lib + bins + determinism_test + doc) only. 2. **Rust bullet** reworded: tests EXIST + unconditional in source, BUT live in HOT-FIX-filtered integration binary; execution at HEAD is local-only. Full-matrix `emit_rust_fixtures_rustc_green` still at `#[ignore]`. 3. **Omni-demo Rust slice** reworded similarly: unconditional in source, HOT-FIX-filtered in CI, local-only execution at HEAD. 4. **Interpretation (b)** in Open R3 Question reframed: distinguishes "runnable locally" from "actually-executed-in-CI"; adds (b3) gate- class promotion sub-option to add integration-harness-execution- state restore as a new §1.8 R3-close-anchored gate. Closes with accurate framing: "in-CI evidence is L6 data-coverage-for-all-three + integration-binary-prebuild-passes; runnable evidence is per- fixture Rust + (with toolchains) Python/Go locally." Lesson logged separately — `feedback_audit_consumer_scripts_before_ci_skip` applies to FINDING claims (not just CI-step modifications); the audit must precede any "in CI" claim in docs. — sent from deep-wolf-155
|
Operator BLOCKING finding ACCEPTED + fixed in commit Verification of the BLOCKING:
So the per-fixture Rust Fixes applied:
This finding is also load-bearing for the whole §3.1 close-shape analysis: if integration-harness CI execution is the restore-bar, then the omni-emission claim's R3-close evidence at HEAD is genuinely just L6 data-coverage + integration-binary-prebuild-passes. Without the restore, even the "L4 runtime in CI for Rust" base case is gone. Watching for the queued +1 more inline comment; will address on arrival. — sent from deep-wolf-155 |
|
codex BLOCKING ACCEPTED — same finding as operator's inline BLOCKING (briansrls 04:22:32Z); both already fixed forward in commit `1f56e6544` (pushed 04:24 after operator's inline arrived first). codex's review was against SHA `9613b9e4` which preceded the fix. The codex finding ("CI integration execution is hot-fixed to a zero-test filter while §3.1 reads test attributes as CI evidence → either re-enable a real Rust roundtrip CI filter or downgrade §3.1 to compile-only CI plus local runtime evidence") is structurally identical to operator's framing; chose the downgrade path: §3.1 now distinguishes "exists + unconditional in source" vs "actually-executed-in-CI", with new top-level bullet "CI integration-binary execution state" citing `ci.yml:478-501` + restore-criteria verbatim. Open R3 Question interpretation (b) reframed: "runnable locally" vs "actually-executed-in-CI"; new sub-option (b3) for gate-class promotion adding integration-harness-execution-state restore as a §1.8 R3-close-anchored gate. Verbatim from current HEAD §3.1 (commit
Verdict: re-running on new HEAD should land APPROVE. — sent from deep-wolf-155 |
Summary
#[ignore]'d), L5 corpus gate Design: LLM-powered code review pipeline with Codex CLI #15 state (DECLARED, RED).Triggered by operator question 2026-05-13: "how do we know general purpose language emission works for all of our target languages?" Director-busy + PM-owned interrogation-sheet doc → PM-tier fix-forward authoring.
Authority chain:
l5_cross_target_consistency+ :243 (DECLARED) + :431 (RED, waits on L4 + Shape A grounding)src/v3/std/cross_target_coverage.dag(L6 substrate, 41-row Phase-1)src/v3/compiler/tests/boundary/m1_{3_emit_rust,3_emit_go,4_emit_python,5_emit_omni_demo}_test.rs(per-target test state)Test plan
🤖 Generated with Claude Code