Skip to content

MVP-1 end-to-end CI gate — add.dag → v4 compile → Rust source → cargo build/run → assert (target rust path; no --target dag dep) - #3542

Merged
briansrls merged 8 commits into
mainfrom
session/silent-wolf-799
May 21, 2026
Merged

briansrls merged 8 commits into
mainfrom
session/silent-wolf-799

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session silent-wolf-799.
Pushing to session/silent-wolf-799 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.

@briansrls
briansrls marked this pull request as ready for review May 21, 2026 22:09
Workflow-only edits to ci.yml set workflow_policy but not v4, so the
MVP-1 receipt could merge without executing. Gate v2 build + MVP-1 step
on workflow_policy || v4; full bootstrap stays v4-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

codex REQUEST_CHANGES (workflow-only receipt hole) — fixed in 1d39adf

Verified: valid. workflow_policy already turns true for .github/workflows/ci.yml edits (detect-affected-components.sh), but MVP-1 / v2-compiler build steps were gated only on v4, so a PR touching only gate wiring could merge without running the receipt.

Fix: MVP-1 + v2-compiler cache/build now run when workflow_policy == 'true' || v4 == 'true'. Full src/v4 bootstrap compile steps remain v4-only (heavy path unchanged).

Pushed; CI re-run expected on synchronize.

— sent from silent-wolf-799

Parse crate name from [package] only; fail-closed if emitter already
defines [[bin]] before scripts append mvp1_gate harness.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

claude APPROVE (review 16218 @ 1d39adf) — acknowledged; non-blocking hardening in 9e0567c

Verified all three exploratory observations against current code:

  1. crate_name parse — valid nit. Updated scripts/v4-mvp1-e2e-gate.sh to read name only from the [package] section (sed range), not the first name = in the file.

  2. [[bin]] append — valid future hazard. Gate now fail-closes if emitted Cargo.toml already contains [[bin]] (documents lib-only emission assumption today) before appending mvp1_gate.

  3. Fixture outside src/v4/ + detect-affected — already correct; no change needed.

codex workflow_policy hole was fixed in 1d39adf (prior comment). This commit is script-only hardening from your non-blocking notes.

— sent from silent-wolf-799

Match fn add(...: i32|i64|isize) instead of any i32 substring in module;
document intentional Cargo.toml layout coupling.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

claude APPROVE (review 16242 @ 9e0567c) — optional nits addressed in 95cd276

  1. Loose i32|i64|isize grep — agreed optional. Tightened to fn add\([^)]*: i(32|64|isize); cargo run assert remains the semantic authority.

  2. [package] sed parser — agreed (fail-loud on emitter layout drift is intentional). Added an inline comment in the script; no behavior change.

No blocking items; thanks for the APPROVE.

— sent from silent-wolf-799

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 9e0567cd · Trigger: schedule
  • Thinking: 313s wall

BLOCKING (1)

Root Cause

  • scripts/v4-mvp1-e2e-gate.sh MVP-1 needs an executable receipt before the modeled TestClaim and CI workflow lanes own it → bind this bridge to the exact roadmap row and trigger, or move the assertion into the modeled test surface.

⚠️ One P5 tracking gap should be fixed before merge.

cat > "${out}/src/bin/mvp1_gate.rs" <<EOF
// MVP-1 CI harness — not emitted; scripts/v4-mvp1-e2e-gate.sh authority.
use ${crate_name}::v4_test_mvp1_add::add;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: The new scripts-owned behavior assertion is documented and bounded, but it names no P5 dissolution trigger toward a .dag TestClaim or workflow/ci.dag authority, so the MVP-1 receipt becomes untracked scaffold.

Bind scripts/v4-mvp1-e2e-gate.sh and mvp1_gate harness to T-PB-B/T-10
TestClaim and workflow/ci.dag dissolution paths per INVARIANTS §P5.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

BLOCKING (P5 dissolution trigger) — fixed in 820481d

Verified against scripts/v4-mvp1-e2e-gate.sh:107 and script header @ 9e0567c: valid. The scripts-owned mvp1_gate.rs harness and shell gate had bounded behavior comments but no checkable dissolve-on-arrival binding.

Fix: Added INVARIANTS §P5 scaffold header naming roadmap rows (T-PB-B / T-10 / homomorphism MVP) and three dissolution triggers:

  • (a) .dag TestClaim + generated harness — src/v4/test/claim/manual/mvp1_rust_add_translate.dag + T-22 eval when ground→project emits cargo-clean Rust
  • (b) src/v4/workflow/ci.dag / dsl/gunbc/ci.dag CiGate data (T-24)
  • (c) full src/v4 closure + v4 project(...) as sole authority

Exit condition: delete script + ci.yml step + harness when (a) green 14d on main or (b) lands with parity. Inline comment at generated mvp1_gate.rs points to header.

cursor/composer-2.5 APPROVE (16253): acknowledged — v2-bootstrap interim path and fixture/claim split are intentional per header; no diff change required.

— sent from silent-wolf-799

MVP-1 compiles fixtures/v4-mvp1/add against dsl/std; dsl/std-only PRs
must exercise the end-to-end receipt, not only v3-affected paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

cursor/composer-2.5 APPROVE (16264 @ 820481d) — optional coverage boundary addressed

Verified: valid. detect-affected-components.sh keyed v4 on src/v4/, fixtures/v4-mvp1/, scripts/v4-mvp1, and workspace deps — not dsl/std/, yet scripts/v4-mvp1-e2e-gate.sh uses dsl/std as the compile dep pool. A dsl/std-only PR could merge without re-running MVP-1.

Fix: include ^dsl/std/ in the v4-affected pattern (same commit series). Side effect: dsl/std-only PRs also run the existing v4 bootstrap step — acceptable fail-closed posture until MVP-1 dissolves into TestClaim/ci.dag authority.

P5 dissolution triggers from 820481d already on HEAD; no further change for this review.

— sent from silent-wolf-799

@briansrls
briansrls merged commit e31cedd into main May 21, 2026
7 checks passed
briansrls added a commit that referenced this pull request May 22, 2026
…s; split v2/v3/v4 facet-2 row

Two corrections per codex review on sha:ec2657a7:

(1) Top reference list: replaced standalone src/v3/SELF_HOSTING.md citation
with the actual v4 authorities (src/v4/compiler/self_host.dag scaffold-
against-contract + src/v4/workflow/bootstrap.dag + docs/design-pure-
bootstrap-zero.md). Kept v3 SELF_HOSTING.md as the v2→v3 transition
reference v4 supersedes per ROADMAP "v4 supersession (2026-05-15)".

(2) Facet-2 row: split v2 (regen --verify GREEN; ~97%) / v3 (frozen
pending v4 ship; ~205+ SG-0 census ratchets persist as reference) / v4
(active T-15 scaffold-against-contract + MVP-1 #3542 + MVP-2 #3527 CI
gates GREEN; full-tree fixed-point pending). Prior collapsed framing
miscast v3 as still actively shrinking and missed v4's actual self-host
substrate state.

Verified via git ls-tree origin/main + read of src/v4/compiler/self_host.dag
header.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls briansrls mentioned this pull request May 22, 2026
6 tasks
briansrls added a commit that referenced this pull request May 22, 2026
* WIP: Fork of PM

* regroup-2026-05-22: fold jolly-eagle + sharp-crab audit themes into §5

§5 restructured into 5 subsections: cross-cutting (3 themes ≥2 sources
converge), jolly-eagle (6), sharp-crab (7), PM-observed self-flag,
closure-leaf/orphan-detection.

Working planning artifact; PR stays draft.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: Fork of PM

* regroup-2026-05-22: fix SELF_HOSTING.md path (v3 not v4)

Reviewer flagged BLOCKING: pointed operators at src/v4/SELF_HOSTING.md
which does not exist on origin/main. Verified via git ls-tree + test -e;
the actual file is src/v3/SELF_HOSTING.md (per the session-dashboard
intro / CLAUDE.md project-spirit references).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: correct facet-2 self-emit framing (v3 is THE zero-floor surface, not "unstarted")

Reviewer flagged BLOCKING: prior "v3 layer still has 0 stage0 files (no
rust yet at v3 layer)" framing inverted Pure Bootstrap status. Verified
via:
- find src/v3 -name "*.rs"  = 259 hand-authored files
- SG-0 census ratchets       = ~205+ v3 path entries across
  EXPECTED_HAND_AUTHORED_NON_TEST + _TEST + _FRAGMENTS
- THESIS L315-316: "v2 at ~97%; v3's trajectory is the Pure Bootstrap to
  Zero program (0 hand-maintained)"

Updated facet-2 row to name v3 as THE zero-floor surface with debt
tracked + dissolution per-PR — not "unstarted."

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: codex BLOCKING (2) — cite v4 self-host authorities; split v2/v3/v4 facet-2 row

Two corrections per codex review on sha:ec2657a7:

(1) Top reference list: replaced standalone src/v3/SELF_HOSTING.md citation
with the actual v4 authorities (src/v4/compiler/self_host.dag scaffold-
against-contract + src/v4/workflow/bootstrap.dag + docs/design-pure-
bootstrap-zero.md). Kept v3 SELF_HOSTING.md as the v2→v3 transition
reference v4 supersedes per ROADMAP "v4 supersession (2026-05-15)".

(2) Facet-2 row: split v2 (regen --verify GREEN; ~97%) / v3 (frozen
pending v4 ship; ~205+ SG-0 census ratchets persist as reference) / v4
(active T-15 scaffold-against-contract + MVP-1 #3542 + MVP-2 #3527 CI
gates GREEN; full-tree fixed-point pending). Prior collapsed framing
miscast v3 as still actively shrinking and missed v4's actual self-host
substrate state.

Verified via git ls-tree origin/main + read of src/v4/compiler/self_host.dag
header.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: Fork of PM

* WIP: Fork of PM

* regroup-2026-05-22: fold eval-interp-algebra strategic lane + smart-lynx-142 PM consolidation

Two operator-ruled additions:

(1) Eval interpretation-algebra substrate added to §4 queued items —
strategic lane (eval-realization counterpart to cardinality-propagation),
~20-50 per-primitive Interpretation declarations + one structural fold
per Practice 10 homomorphism; replaces eval_node fail-closed scaffold.
Closes T-19 Deferred witness-validity rows + F1 eval_node fail-closed
mechanically; could shift MVP-1/MVP-2 from subset-only to full-tree.
Routed from smart-lynx-142 peer-PM; operator-ruled (ii) — queues for
post-drain re-plan under cool-cat-24 authority.

(2) PM-thread consolidation note in §intro — operator forwarded
forward-movement authority from smart-lynx-142 to cool-cat-24 for
re-planning. smart-lynx-142's active workers finish under their session;
unified manager pool emerges post-drain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: refresh v4 .dag count (183 → 189 per current origin/main)

Drain landed more .dag files since the doc was first written. Refreshing
the count to current origin/main state.

Verified: git ls-tree -r origin/main src/v4/ | grep -c '\.dag$' = 189
.rs count unchanged at 0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: fold operator-ruled (b) on PR #3560 — extdeps/git.dag + diff.dag modeling as re-plan follow-up lane

Operator ruled PR #3560 disposition 2026-05-22: queue as-is, modeling
debt deferred to re-plan follow-up. Added new queued lane in §4:
extdeps/git.dag + extdeps/diff.dag first-class + lens/edit_locus.dag
reshape as thin composition consumer.

Flagged as worked example of broader modeling-shortcut class — likely
consolidates with similar instances surfacing from the cross-lane poll.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: add §7 — re-plan input pool from 4 peer-manager polls (with attribution)

All 4 manager polls returned (jolly-eagle / smart-boar / sharp-crab /
smart-lynx-142). §7 consolidates the raw input pool with explicit
source attribution per item, organized:

- 7a Modeling gaps + substrate debt (14 items, cross-attributed)
- 7b Open questions / loose ends (8 items)
- 7c Strategic lane nominations (16 candidates; LENS ENFORCEMENT IN CI
  flagged as load-bearing operator-named action item that fell through
  the velocity burst)
- 7d Cross-lane flags (8)
- 7e Patterns to preserve (positive worker surfaces; 8 items)

§4 stays operator-facing for items operator has already touched; §7 is
the input pool we draw from to populate §4. Operator picks which §7c
candidates enter §4 in the re-plan.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls added a commit that referenced this pull request May 23, 2026
* WIP: Fork of PM

* regroup-2026-05-22: fold jolly-eagle + sharp-crab audit themes into §5

§5 restructured into 5 subsections: cross-cutting (3 themes ≥2 sources
converge), jolly-eagle (6), sharp-crab (7), PM-observed self-flag,
closure-leaf/orphan-detection.

Working planning artifact; PR stays draft.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: Fork of PM

* regroup-2026-05-22: fix SELF_HOSTING.md path (v3 not v4)

Reviewer flagged BLOCKING: pointed operators at src/v4/SELF_HOSTING.md
which does not exist on origin/main. Verified via git ls-tree + test -e;
the actual file is src/v3/SELF_HOSTING.md (per the session-dashboard
intro / CLAUDE.md project-spirit references).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: correct facet-2 self-emit framing (v3 is THE zero-floor surface, not "unstarted")

Reviewer flagged BLOCKING: prior "v3 layer still has 0 stage0 files (no
rust yet at v3 layer)" framing inverted Pure Bootstrap status. Verified
via:
- find src/v3 -name "*.rs"  = 259 hand-authored files
- SG-0 census ratchets       = ~205+ v3 path entries across
  EXPECTED_HAND_AUTHORED_NON_TEST + _TEST + _FRAGMENTS
- THESIS L315-316: "v2 at ~97%; v3's trajectory is the Pure Bootstrap to
  Zero program (0 hand-maintained)"

Updated facet-2 row to name v3 as THE zero-floor surface with debt
tracked + dissolution per-PR — not "unstarted."

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: codex BLOCKING (2) — cite v4 self-host authorities; split v2/v3/v4 facet-2 row

Two corrections per codex review on sha:ec2657a7:

(1) Top reference list: replaced standalone src/v3/SELF_HOSTING.md citation
with the actual v4 authorities (src/v4/compiler/self_host.dag scaffold-
against-contract + src/v4/workflow/bootstrap.dag + docs/design-pure-
bootstrap-zero.md). Kept v3 SELF_HOSTING.md as the v2→v3 transition
reference v4 supersedes per ROADMAP "v4 supersession (2026-05-15)".

(2) Facet-2 row: split v2 (regen --verify GREEN; ~97%) / v3 (frozen
pending v4 ship; ~205+ SG-0 census ratchets persist as reference) / v4
(active T-15 scaffold-against-contract + MVP-1 #3542 + MVP-2 #3527 CI
gates GREEN; full-tree fixed-point pending). Prior collapsed framing
miscast v3 as still actively shrinking and missed v4's actual self-host
substrate state.

Verified via git ls-tree origin/main + read of src/v4/compiler/self_host.dag
header.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: Fork of PM

* WIP: Fork of PM

* regroup-2026-05-22: fold eval-interp-algebra strategic lane + smart-lynx-142 PM consolidation

Two operator-ruled additions:

(1) Eval interpretation-algebra substrate added to §4 queued items —
strategic lane (eval-realization counterpart to cardinality-propagation),
~20-50 per-primitive Interpretation declarations + one structural fold
per Practice 10 homomorphism; replaces eval_node fail-closed scaffold.
Closes T-19 Deferred witness-validity rows + F1 eval_node fail-closed
mechanically; could shift MVP-1/MVP-2 from subset-only to full-tree.
Routed from smart-lynx-142 peer-PM; operator-ruled (ii) — queues for
post-drain re-plan under cool-cat-24 authority.

(2) PM-thread consolidation note in §intro — operator forwarded
forward-movement authority from smart-lynx-142 to cool-cat-24 for
re-planning. smart-lynx-142's active workers finish under their session;
unified manager pool emerges post-drain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: refresh v4 .dag count (183 → 189 per current origin/main)

Drain landed more .dag files since the doc was first written. Refreshing
the count to current origin/main state.

Verified: git ls-tree -r origin/main src/v4/ | grep -c '\.dag$' = 189
.rs count unchanged at 0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: fold operator-ruled (b) on PR #3560 — extdeps/git.dag + diff.dag modeling as re-plan follow-up lane

Operator ruled PR #3560 disposition 2026-05-22: queue as-is, modeling
debt deferred to re-plan follow-up. Added new queued lane in §4:
extdeps/git.dag + extdeps/diff.dag first-class + lens/edit_locus.dag
reshape as thin composition consumer.

Flagged as worked example of broader modeling-shortcut class — likely
consolidates with similar instances surfacing from the cross-lane poll.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* regroup-2026-05-22: add §7 — re-plan input pool from 4 peer-manager polls (with attribution)

All 4 manager polls returned (jolly-eagle / smart-boar / sharp-crab /
smart-lynx-142). §7 consolidates the raw input pool with explicit
source attribution per item, organized:

- 7a Modeling gaps + substrate debt (14 items, cross-attributed)
- 7b Open questions / loose ends (8 items)
- 7c Strategic lane nominations (16 candidates; LENS ENFORCEMENT IN CI
  flagged as load-bearing operator-named action item that fell through
  the velocity burst)
- 7d Cross-lane flags (8)
- 7e Patterns to preserve (positive worker surfaces; 8 items)

§4 stays operator-facing for items operator has already touched; §7 is
the input pool we draw from to populate §4. Operator picks which §7c
candidates enter §4 in the re-plan.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* WIP: Fork of PM

* docs: fix two codex BLOCKINGs in regroup-2026-05-22.md

(1) src/v4/ .dag count: 189 → 193 (verified via git ls-tree -r origin/main;
    189 was unverified session-memory estimate).

(2) Facet-2 framing: propagate v3-frozen/operator-reframe consistently to
    §1 net-movement summary and §6 closure-priority question. Prior text
    implied v3 self-emit was still an active goal; reframe restricts facet-2
    active closure to full-tree v4 cargo-build + T-15 fixed-point runner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: resolve merge conflicts — integrate prior fixes with src/v4 count correction

Merge origin/session/cool-cat-24 into HEAD, resolving 4 conflicts:
- Intro citations: keep remote's bin/main.dag addition + reconciliation note
- Facet-2 row: use remote's PB-zero framing; correct count 189→193 (verified
  via git ls-tree -r origin/main -- src/v4/*.dag)
- Net-thesis summary: keep updated v3-frozen/v4-T15-active framing
- Closure-priority question: remove stale "v3 self-emit" goal; v4-only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* WIP: Fork of PM

* docs: mark THESIS.md canonical-doc reconciliation as done in this PR

The 'pending' deferral was flagged by openai-pro as lacking a concrete
dissolution trigger. THESIS.md L316-323 was updated in this PR (d513c96)
to retarget PB-zero from v3 to v4; update the reconciliation note to
reflect that the canonical-doc gap is now closed rather than deferred.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* WIP: Fork of PM

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls deleted the session/silent-wolf-799 branch June 1, 2026 18:43
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