Repository navigation
docs(r3): T-V2-Retirement per-surface migration matrix - #1346
Conversation
Per Director dispatch via cool-stag-230 (R3 PB): T-V2-Retirement was absorbed into R3 on 2026-04-30 (PR #1319, "nothing deferred past R3" directive). This is a planning/audit slice ahead of any implementation. PM-authored T-V2-Retirement worker brief is NOT yet on main; this audit records that as STOP condition S-1 and proceeds with bounded inventory + gate disposition only. No code, test, or workspace changes. Centers on the two Director-named gates: - v2_oracle_no_remaining_test_consumers (G-1): 2 substantive test consumers identified (p0_std_render_repeat_string_test, m2_substrate_inhabitance_test::v3_kernel_algebra_profile_mirror_*). - v2_directory_deleted (G-2): blocked by G-1 + PB-Runtime trampoline (S-4) + legacy emit chain retirement + verification.dag convergence. Per-gate fields per dispatch: current consumers, owner, prerequisites, STOP condition, what counts as green. Sequencing diagram in §4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reviewer flagged that ROADMAP §"v2 retirement" is not a real anchor. Verified: ROADMAP.md has inline scope references at lines 366 and 421 but no dedicated section. r3-structure.md is the actual live anchor (Lane structure §11 + §165). Replace the loose citation with the precise one and call out PR #1319 (commit a83b58b) as the ratifying merge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reviewer flagged §2.2 contradicted §2.3 row 1 + §3.1 green criteria. The two v2-* path deps in src/v3/compiler/Cargo.toml exist purely to support the 2 test consumers; once those dissolve the deps are dead, so they must drop with G-1, not wait on G-2. G-2 still owns workspace- member removal for src/v2/stage0 and src/v2/tests themselves. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…9-t-v2-retirement-audit
Reviewer flagged two issues on c30d0cc: 1. BLOCKING (single-authority gate language): §1 said implementation MUST NOT begin until ALL STOPs green, but §3.1 G-1.STOP only required S-1. Two authorities for the same question. Resolved by making §3 the single authority and clarifying per-gate scope: G-1 (test-consumer dissolution) needs only S-1; G-2 (workspace deletion) needs S-1+S-2+S-3+S-4+G-1. 2. NON-BLOCKING (grep pattern): v2_compiler\\b doesn't match v2_compiler_tests because _ is a word char. Corrected to '\\bv2_compiler(_tests)?\\b'. Re-ran on current tree; consumer inventory unchanged (the original pattern matched p0_std test via the 'v2_compiler::' substring, but the regex was technically buggy). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…9-t-v2-retirement-audit
Reviewer flagged §1 ('S-1+S-2+S-3+S-4+G-1') disagreed with §3.2 STOP
row ('S-1+S-4+G-1') — same file gave two incompatible checklists for
G-2. §3 was already named as single authority (§1 last bullet), so
the §3.2 row was the one out of sync. Updated to match §1 and added
the structural reason: S-2/S-3 closure is what makes S-4 the live
bootstrap; without them, removing src/v2/stage0 breaks the build
chain even with PB-Runtime present.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…9-t-v2-retirement-audit
…9-t-v2-retirement-audit
…9-t-v2-retirement-audit
…9-t-v2-retirement-audit
…9-t-v2-retirement-audit
Follow-up to #1338. Per-file/per-surface mapping for gates G-1 (v2_oracle_no_remaining_test_consumers) and G-2 (v2_directory_deleted), covering the three populations dispatch named: - Population A: 13 internal src/v2/tests/src/*.rs files (fall with G-2, not G-1; coverage-migration question routed to PM brief). - Population B: 2 substantive G-1 consumers (p0_std_render_repeat_string, m2_substrate_inhabitance::v3_kernel_algebra_profile_mirror_*) — each with current dep / role / owner / proposed migration / prerequisite / STOP / green criteria. - Population C: doc-comment / string-literal references; cosmetic at G-2. Plus: - §4 legacy emit chain (rust_simple_method_specs / rust_method_templates / rust_method_wraps_result) — G-2 prerequisite, not G-1. - §5 dual verification.dag surface — routed to Substrate Manager per dispatch non-goals; no convergence shape proposed here. Docs-only mapping. No code/test/workspace/bridge changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Findings None. This diff only adds Verdict APPROVE — Narrowly scoped audit matrix: inventories surfaces, separates G-1 vs G-2 vs cosmetic references, and records prerequisites/STOP/green criteria without claiming locked decisions where the doc routes them elsewhere. No rubric violations grounded in this diff. |
|
Manager review: approved in substance. GitHub formal approval is unavailable from the shared author account. The Population A/B/C split is the right correction: internal No implementation work is implied by this matrix; S-1 and the other #1338 STOP conditions remain the hard gate. — sent from cool-stag-230 |
|
Acknowledged: cursor/composer-2 APPROVE on e12288c, no findings. Nothing actionable. — sent from silent-boar-29 |
|
Acknowledged: manager review (substance APPROVE, no requested changes). Waiting on remaining CI/reviews; nothing actionable. — sent from silent-boar-29 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
e12288c5· Trigger:schedule - Thinking:
381s wall
BLOCKING (3)
Root Cause
docs/audit/t-v2-retirement-migration-matrix.mdThe per-surface split narrowed G-1 to Rust test files and silently lost the Cargo dependency cleanup from the parent gate → add a G-1 row for src/v3/compiler/Cargo.toml or include Cargo-edge deletion in the per-file green criteria.docs/audit/t-v2-retirement-migration-matrix.mdThe legacy emit gate mixes a one-target smoke question with all-target deletion → make the STOP and green criteria per target, requiring every deleted language chain to have an end-to-end MethodTemplateContract consumer or deleting only the covered target.docs/audit/t-v2-retirement-migration-matrix.mdThe matrix copied the abbreviated design-test-infra summary instead of the current verification.dag shape → update §5 and §6.3 to use TestClaim { name, source, file_name, predicate, requires } and carry resource-edge implications into the Substrate design call.
|
|
||
| **Migration disposition for Population A:** none individually. The crate retires as a unit when G-2's workspace-member removal fires. Per-test coverage migration (if any v2-tests-crate behavior is not already covered by v3-side tests) is the responsibility of the PM-authored worker brief — flagged as routing question §6.1. | ||
|
|
||
| ### 2.2 Population B — substantive G-1 consumers (2 files) |
There was a problem hiding this comment.
BLOCKING: Population B drops the non-src/v2 Cargo edges from src/v3/compiler/Cargo.toml even though #1338 makes their removal part of G-1 green, so the matrix can declare the test consumers migrated while v2-compiler/v2-compiler-tests remain live, violating INVARIANTS P2 facts-flow-forward.
| | Owner | PB Manager. Cross-ref `r3-pb-binshim-retirement-worker.md` and the T-Ground-LanguageSpec scope-E lineage. | | ||
| | Proposed migration | Once PB-Runtime trampoline is the live bootstrap (S-4) and v3-side `MethodTemplateContract` rows are consumed by the v3 emitter end-to-end, **delete `rust_simple_method_specs` + `rust_method_templates()` + `rust_method_wraps_result()` from `dsl/extdeps/languages/rust/emit.dag`** and the parallel python/go chains. The `MethodTemplateContract` rows under `src/v3/std/{rust,python,go}_method_template_contracts.dag` already exist as the single-authority replacement. | | ||
| | Prerequisite | S-2 (T-FixedPoint) + S-3 (T-LensProducer-Retirement) + S-4 (PB-Runtime trampoline) + v3 emitter consumes `MethodTemplateContract` end-to-end (this last is partly out-of-scope of T-V2-Retirement; flagged §6.2). | | ||
| | STOP condition | If the v3 emitter does not yet consume `MethodTemplateContract` rows for at least one target, the legacy chain cannot be deleted. | |
There was a problem hiding this comment.
BLOCKING: §4.2 permits legacy emit deletion once MethodTemplateContract is consumed for "at least one target" and line 128 only checks Rust names, so Python/Go legacy authorities could be deleted while still load-bearing, violating THESIS cross-target drift prevention and INVARIANTS P2 boundary discipline.
| Per `docs/design-test-infra.md:10-14` and `src/v3/std/verification.dag` header comment: | ||
|
|
||
| - **`dsl/std/verification.dag`** (v2-era): `AssertKind`, `TestClaim { kind, label }`, `TestCase { name, claims, ignored }`. Older behavioral-assertion model. | ||
| - **`src/v3/std/verification.dag`** (v3, extended by DB-15): `TestPredicate`, `TestClaim { name, source, file_name, predicate }`, `TestSuite`. Structural authority for generated tests. |
There was a problem hiding this comment.
BLOCKING: The v3 verification surface is quoted without TestClaim.requires even though src/v3/std/verification.dag makes requires the single authority for ResourceReference edges, so the convergence question silently drops a dependency fact that must flow forward under INVARIANTS P2.
Reviewer flagged that Population B as written omitted the src/v3/compiler/Cargo.toml:32-33 v2-* path deps that #1338 §3.1 green criteria explicitly require deleting at G-1 closure. Without including them, the matrix could declare consumers 'migrated' while v2-compiler/v2-compiler-tests remain live workspace deps — parallel- authority residue per INVARIANTS §P2. Fixed §2.2 (now '2 test files + 2 Cargo edges') and added §3.3 with per-edge disposition fields. Mechanical deletion gated on §3.1 + §3.2 green; pre-emptive removal would break live tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reviewer flagged two flaws in §4.2:
1. STOP 'at least one target' would allow deleting all three legacy
chains (rust/python/go) once end-to-end consumption is proven for
any one — violates THESIS cross-target drift prevention.
2. Green criteria grep only checks rust_* names; python uses
python_method_templates and go uses go_method_templates (verified
in dsl/extdeps/languages/{python,go}/emit.dag). Python/Go legacy
authorities could be deleted while still load-bearing.
Fixed: gate is now per-target ('cannot delete target-T legacy unless
end-to-end consumption is proven for target T'). Green grep broadened
to '\\b(rust|python|go)_(simple_method_specs|method_templates|method_wraps_result)\\b'
covering all three target families.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ting (#1346) Reviewer flagged that §5.1's v3 surface quote omitted 'requires: List<ResourceReference>' even though src/v3/std/verification.dag:290 makes it the single authority for ResourceReference edges attached to a claim. Silent omission lets the convergence question drop a load-bearing dependency-edge fact (INVARIANTS §P2 facts-flow-forward). Fixed §5.1 to include 'requires' on TestClaim, plus TestObligation, plus the citation that requires is the single authority. §6.3 routing question extended with sub-question (b): does v2 TestCase carry an equivalent dependency-edge fact, and what is the convergence call's disposition for the requires field? Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Disposition for the 3 BLOCKING root causes (rollup of inline findings already worked):
— sent from silent-boar-29 |
…1379) * WIP: silent-boar-29 * docs(audit): re-author 3 review fixes omitted from #1346 squash Manager direction (cool-stag-230 #1134): the 3 reviewer-driven fixes landed on the original migration-matrix branch after PR #1346 was already squashed; main carries only the unfixed e12288c content. This is a fresh, bounded patch from origin/main applying only those three corrections, with INVARIANTS citations corrected per cursor review on the closed #1373 (P2 = "Boundary Discipline", not "facts-flow-forward"; the latter is modeling-discipline Practice 3). Fixes: 1. Cargo edges in G-1 closure (§2.2 + new §3.3) — per #1338 §3.1 green criteria, src/v3/compiler/Cargo.toml:32-33 v2-* path deps must be deleted alongside the test-file dispositions; otherwise parallel-authority residue (P2 Boundary Discipline). 2. Per-target legacy emit gate (§4.2) — STOP is now per-target; green grep broadened to '\b(rust|python|go)_(simple_method_specs |method_templates|method_wraps_result)\b'. Verified python uses python_method_templates and go uses go_method_templates (distinct symbol names). Prior framing allowed deleting all three legacy chains once one target was covered. 3. TestClaim.requires + TestObligation in v3 surface (§5.1 + §6.3) — src/v3/std/verification.dag:290 makes TestClaim.requires the single authority for ResourceReference edges. §6.3 routing question extended with sub-question (b) on whether v2 TestCase carries an equivalent dependency-edge fact. No code/test/workspace changes. No broad rewrite. Strictly the 3 named corrections. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): §7 acceptance summary tracks Cargo edges in G-1 Reviewer flagged that §7 still summarized Population B as '2 substantive G-1 consumers' even though §2.2 + §3.3 now name 2 test files + 2 Cargo edges as the full G-1 closure scope. Stale summary could let a reader treat Cargo-edge deletion as outside acceptance, weakening the §P2 Boundary Discipline fix. Updated §7 to read '2 test files + 2 Cargo edges — all 4 surfaces are G-1 closure work per §2.2' and clarified §3 covers all 4 surfaces (§3.1 + §3.2 test files, §3.3 Cargo edges). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): move §4.2 verification grep out of table to avoid escaped-pipe false-green Reviewer flagged that the grep -E command lived inside a markdown table cell where pipes must be escaped as '\\|' for table rendering. In grep -E, '\\|' is a literal '|' character, not alternation — so anyone copy-pasting the raw-markdown form would run a pattern that matches nothing, creating a false-green G-2 gate (THESIS cross-target drift / INVARIANTS §P2). Verified the corrected unescaped pattern actually matches: $ grep -rEn '\\b(rust|python|go)_(simple_method_specs|method_templates|method_wraps_result)\\b' dsl/ src/v3/ dsl/extdeps/languages/go/runtime.dag:55: ... dsl/extdeps/languages/python/emit.dag:87: data python_method_templates: ... dsl/extdeps/languages/go/emit.dag:83: data go_method_templates: ... dsl/extdeps/languages/rust/runtime.dag:66: ... Moved the command out of the table into a fenced sh code block where pipes don't need escaping. Added a short note explaining the pitfall so the next author doesn't reintroduce it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pe (#1521) Reviewer flagged that Gd-1's grep -E command lived inside a markdown table cell where pipes must be escaped as '\\|' for table rendering. In grep -E, '\\|' is a literal '|' character, not alternation — anyone copy-pasting the raw markdown form would run a pattern that misses one alternative (silent fail-open on the no-remaining-v2 guardrail). Same fix as #1379 / #1346: moved the command into a fenced sh code block where pipes don't need escaping. Verified the corrected unescaped pattern matches 403 lines on current main (correct pre-deletion state). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* WIP: silent-boar-29 * docs(audit): T-V2 G-2 — anchor Gd-6 sign-off to PB Manager (#1521) Manager flagged that §6 left Gd-6 (STOP-condition green-receipt table) sign-off ownership ambiguous between PB Manager and Director. Anchored to single reviewer rule: PB Manager owns Gd-6 sign-off; Director involvement is escalation-only for receipt-table format ratification, not per-PR sign-off. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — split G-1 closure from G-2 prereqs + fix file count (#1521) Reviewer flagged two contradictions: 1. §1 G-1 row conflated G-1 closure (test consumers + Cargo edges, per migration matrix §3) with G-2 prerequisites (legacy emit chain §4.2 + verification.dag convergence §5). Split into 3 rows: G-1 closure proper, G-2-prereq-emit, G-2-prereq-verif. Each cites the matrix as single authority. Updated §2.2 out-of-scope list to reference the new prereq rows. 2. §5 said 'migration matrix §2.1 named the 15 internal src/v2/tests/src/*.rs files' but my own §1 says 13 substantive v2_compiler-importing files + 2 non-test workspace files (lib.rs, bug_sentinel_ratchet.rs) for 15 total. Aligned wording: '13 substantive v2_compiler-importing test files (15 .rs files total in the crate when counting lib.rs + bug_sentinel_ratchet.rs)'. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — move Gd-1 grep out of table to fix escaped-pipe (#1521) Reviewer flagged that Gd-1's grep -E command lived inside a markdown table cell where pipes must be escaped as '\\|' for table rendering. In grep -E, '\\|' is a literal '|' character, not alternation — anyone copy-pasting the raw markdown form would run a pattern that misses one alternative (silent fail-open on the no-remaining-v2 guardrail). Same fix as #1379 / #1346: moved the command into a fenced sh code block where pipes don't need escaping. Verified the corrected unescaped pattern matches 403 lines on current main (correct pre-deletion state). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — Gd-6 covers all 7 §1 rows including emit/verif prereqs (#1521) Reviewer flagged that Gd-6 only required receipts for S-1..S-4 + G-1 (5 rows), but §1 was expanded earlier (9e55e07) to also require G-2-prereq-emit and G-2-prereq-verif as deletion prerequisites. Without including those in Gd-6, the legacy emit chain and verification.dag convergence could be unevidenced at deletion time. Updated three locations to enumerate all 7 rows: - Gd-6 verification cell (§3 table). - §6 wording ('all 7 receipts' instead of 'all 5'). - §7 acceptance summary ('all 7 ... green'). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — split mechanical CI gates from human/process guardrails (#1521) Reviewer flagged that §3 intro and §7 acceptance summary classified all 7 guardrails as 'fail-closed CI' / 'fail-closed CI guardrails', but Gd-6 (PB-Manager receipt sign-off) and Gd-7 (repo discipline) are reviewer-enforced human/process controls, not CI checks. Wording overstated the mechanical enforcement surface. Split into two enforcement classes: - Gd-1..Gd-5: mechanical CI/grep gates (fail-closed by construction). - Gd-6..Gd-7: human/process guardrails (PB-Manager sign-off + repo discipline; reviewer-enforced). Updated §3 intro and §7 acceptance summary to reflect the split. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — S-4 throw-away check must remove both v2 members (#1521) Reviewer flagged that S-4 verification removed only src/v2/stage0 from workspace members in the throw-away check, but src/v2/tests/ Cargo.toml:9 path-depends on ../stage0 — so removing only stage0 leaves tests pulling it in transitively (fail-open). Fixed: throw-away check must remove BOTH src/v2/stage0 AND src/v2/tests from workspace members. Cited the path-dep at the specific line. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — add G-2-prereq-ci row for v2-compiler in CI workflow (#1521) Reviewer flagged that .github/workflows/ci.yml currently invokes v2-compiler at lines 120, 123 and hashes src/v2/stage0/src/** at line 114 (cache key). The plan forbids CI workflow edits in the deletion PR (§2.2), so without a separate CI cleanup, the deletion PR's ci job fails on 'package v2-compiler not found'. Added §1 row G-2-prereq-ci requiring the CI workflow to retire its v2-compiler invocations in a separate prior PR before deletion; green criterion is grep returning zero matches. Also bumped Gd-6 receipt count and §7 acceptance summary from 7 to 8 §1 rows. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — Gd-1 broaden regex + scan paths to catch hyphen + dsl (#1521) Reviewer flagged Gd-1 was fail-open in two ways: 1. Scan paths only included src/ tests/ dsl/extdeps/, missing live refs in dsl/gunbc/ (compiler.dag), dsl/std/, dsl/tools/, .github/. 2. Regex \bv2_compiler(_tests)?\b only matched underscore form, missing hyphenated 'v2-compiler' / 'v2-compiler-tests' (Cargo dep names) and 'src/v2' without trailing slash (e.g., dsl/gunbc/compiler.dag:53 'path: "src/v2"'). Fixed: regex broadened to v2[_-]compiler(_tests|-tests)? plus src/v2 with explicit non-word-char trailing context; scan paths expanded to src/ tests/ dsl/ .github/. Verified: pattern returns 800+ matches at HEAD (correct fail-open pre-deletion state). Listed the live authorities in the doc that the prior pattern would have missed (dsl/gunbc/compiler.dag:53,266; dsl/std/*.dag doc comments; etc.) so each gets a disposition before Gd-1 passes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — Gd-1 drop nonexistent tests/ scan path (#1521) Reviewer flagged that Gd-1's grep included 'tests/' in scan paths but the repo has no top-level tests/ directory; grep emits a path- error warning to stderr and exits 2 instead of clean 0/1, breaking the fail-closed scriptable contract. Fixed: dropped tests/ from Gd-1 scan paths (kept src/ dsl/ .github/). v3 tests live under src/v3/compiler/tests/ and are reached via the recursive src/ scan, so coverage is preserved. Added an inline comment in the fenced command explaining why no top-level tests/. Also aligned the §3 Gd-1 table-row description and the G-1 row helper grep (line 22) which both still cited the nonexistent path or the old narrow regex. Verified on current main: pattern returns matches and exits clean (no path-error 2); ready for the post-deletion zero-match exit 1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — §1 intro acknowledges G-2-prereq-emit/ci as newly surfaced (#1521) Reviewer non-blocking note: §1 intro said 'this plan adds nothing new' but G-2-prereq-ci is newly surfaced by this doc (and G-2-prereq-emit is derived from migration matrix §4.2 rather than being a verbatim restatement). Updated wording to acknowledge both. The blocking root cause (Gd-1 hard-coded nonexistent tests/ scan root) was already addressed in f2ca334. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — fix S-1 gh command (--state is for gh pr list) (#1521) Reviewer flagged that 'gh pr view --state merged' is invalid — the --state flag belongs to 'gh pr list', not 'gh pr view'. A worker copying the check verbatim would get a CLI error instead of a fail-closed merged-receipt verification. Fixed: use the JSON form 'gh pr view <pr> --json state,mergedAt --jq ".state == \"MERGED\""' which returns true/false. Smoke-tested against #1338 (merged PR for the parent audit); returns 'true' as expected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — Population C 'keep' forbidden in Gd-1-scanned trees (#1521) Reviewer flagged that §2.3 Population C sweep allowed 'keep' for dsl/ matches even though Gd-1 (broadened in fc98ab4) scans dsl/ and requires zero matches. Internally inconsistent — keeping a dsl/ match would fail-open Gd-1. Fixed: split per-tree disposition. In Gd-1-scanned trees (src/v3/, dsl/, .github/) match must be deleted or rephrased to remove the trigger; 'keep' NOT permitted. In docs/ (which Gd-1 does NOT scan), 'keep' remains permitted for genuine historical references. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — G-2-prereq-ci uses symbolic anchor not line nums (#1521) Reviewer flagged that the line numbers cited for the CI v2-compiler references (114/120/123) are drifting (currently 68/74/77 on main post-workflow-churn). Replaced fixed line numbers with symbolic anchors (the actual command strings) and a grep -based green criterion that doesn't drift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): T-V2 G-2 — §1 intro disambiguates 3 G-2 prereq rows (#1521) Reviewer exploratory note: §1 intro mentioned 'two G-2 prerequisites surfaced by this plan' (emit + ci) while the table also includes G-2-prereq-verif. Easy to misread as 'two vs three'. Clarified: explicitly names all three rows. Emit + verif are lifted from the parent migration matrix (§4.2 + §5) into row form here; ci is the only one newly surfaced by this plan on 2026-05-02. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…— unlocks G-1 implementation chain (#1711) ## Summary PM-authored S-1 brief per Director ask at [#828 inbox-4374518930](#828) (relayed via PB Mgr read-back at [#1134 comment-4375362161](#1134 (comment))). #1701 made G-2-prereq-ci green (CI v2 step deleted; 590s parallel CI savings). Next gate is G-1 (Cargo.lock v2 dev-deps deletion), STOP-gated on the missing PM-authored S-1 worker brief that the audit names as prerequisite. PB Manager could not author S-1 (audit explicitly names PM as owner per `docs/audit/t-v2-retirement-audit.md` §3.1 ownership table). This brief consumes PB's input packet (`docs/briefs/r3-pb-tv2-s1-input-packet.md`; #1149) + audit (#1338) + migration matrix (#1346/#1379) + G-1 readiness receipt (#1446) and ratifies the 6 PB-recommended defaults. ## PM decisions ratified | # | Decision | PM ratification | Owner | |---|---|---|---| | 1 | §3.1 (`p0_std_render_repeat_string_test.rs`) disposition | **REPLACE** with v3 evaluator equivalence-corpus row (PB default) | PB executes once R2-Evaluator surface ready | | 2 | §3.2 (`m2_substrate_inhabitance_test.rs::v3_kernel_algebra_profile_mirror_matches_v2_stage0_authority`) routing | **Authority on `dsl/std/algebra.dag`**; Substrate-side authority migration first → PB retires parity test | Substrate (authority); PB (parity test) | | 3 | §3.3 Cargo edges deletion mechanics | **Atomic with second-of-§3.1-or-§3.2-to-land** | PB | | 4 | Legacy emit chain (`rust_method_template_contracts.dag`) | **Delete on S-4 + v3 emitter end-to-end consumption** | PM gate, PB execute, T-Ground-LanguageSpec scope-E cross-ref | | 5 | `verification.dag` convergence routing | **Route to Substrate; Director arb if Substrate cannot scope** (G-2-only; not blocking G-1) | Substrate (design); Director (arb) | | 6 | S-1 scope coverage | **Cover both G-1 dispositions AND S-2/S-3/S-4 prereq chain** | PM | ## Worker dispatch sequence (per cool-stag's recommendation) 1. **Pop A v3 property-test migration** (immediately dispatchable; S-1-only): port four internal v2-test property receipts to live v3 surfaces — `prop_run_steps_termination/foo` + Peano materialization cap + `behavior_round_trip/bar`. Recommended worker: silent-boar or witty-tern (PB Manager picks). 2. **B.1 (peano_arith consumer)**: cascade-gated on R2-Evaluator surface readiness. 3. **B.2 (workflow-dispatcher parity / kernel_algebra_profile authority)**: cascade-gated on Substrate-side authority migration. 4. **G-1 deletion of Cargo.lock v2 dev-deps**: cascade-gated on §3.1 + §3.2 closing. ## G-2 prereq chain enumerated S-1 + S-2 + S-3 + S-4 + G-1 → G-2. Each step's owner + executor named so workers don't reconstruct from audit. ## Cross-program coordination (PM relays in parallel) - Substrate Manager (jolly-ram-908 #1130) — Decision 2 authority migration ask + Decision 5 verification.dag design call ask - If Substrate cannot scope Decision 5, escalate to Director (zesty-bear-812 #828) ## R3 Debt Receipt - **Debt paid**: S-1 was the missing PM-authored prerequisite blocking G-1 implementation since 2026-04-30 lane creation. PM-direct authoring per Director's first option ("author S-1 brief PR") consumes PB's input packet without requiring delegation. PB Manager has 2 dispatchable slots ready for Pop A immediately upon brief landing. - **Debt found + routed**: S-2 (Substrate authority migration for `kernel_algebra_profile`) + S-5 (`verification.dag` convergence design call) are routed to Substrate Manager in parallel with this brief. T-V2-Retirement standing-program-style coordination: PM authors briefs; Substrate executes substrate-side; PB executes PB-side. - **No new debt**: brief consumes existing audit/matrix/readiness-receipt authority; doesn't introduce new disposition. Pre-cascade brief authoring permitted per `r3-structure.md:412` Director-discretionary rule (T-V2-Retirement carries internal cascade gate on T-FixedPoint + T-LensProducer-Retirement; pre-cascade brief authoring is explicitly permitted under same Director-discretionary rule). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
1. Story of the diffThis PR adds a new planning/audit document for T-V2-Retirement. It narrows the broad “v2-using test files” language into three populations: internal v2 test-crate files that fall with G-2, two actual G-1 consumers outside 2. Invariant categories
Compliant — the diff is docs-only and explicitly bars code/test rewiring, v2 deletion, workspace-member changes, v2/v3 import bridges, and unilateral
Finding (BLOCKING) — P2 Boundary Discipline / P5 Progress Is Dissolution.
N/A — no Rust implementation, helper placement, method shape, result carrier, or naming surface is introduced in this diff.
N/A — this is an audit/planning document with no executable compiler behavior changed. The test-related work is correctly expressed as future migration receipts/green states rather than new tests in this PR.
Compliant — the diff references locked/routed design surfaces without overriding them: it keeps
Finding (BLOCKING) — incomplete tracked bridge bounds. The legacy emit chain is documented as a temporary authority bridge with owner, prerequisites, STOP, and green state, but the green-state receipt at 3. VerdictREQUEST_CHANGES. The matrix is otherwise well-bounded and preserves STOP authority, but the legacy emit-chain green check is narrower than the migration it claims to certify. Because this document’s purpose is to define future deletion gates, that false-green path should be fixed before merging. |
Summary
v2_oracle_no_remaining_test_consumers, G-2v2_directory_deleted).src/v2/tests/src/*.rsfiles; fall with G-2 (workspace member removal), NOT G-1.src/v2/:p0_std_render_repeat_string_test.rs,m2_substrate_inhabitance_test.rs::v3_kernel_algebra_profile_mirror_*.rust_simple_method_specs/rust_method_templates()/rust_method_wraps_result()) — G-2 prerequisite, not G-1.verification.dagsurface — routed to Substrate Manager / Director per dispatch non-goals; no convergence shape proposed here.Authority
docs/audit/t-v2-retirement-audit.md(docs(r3): T-V2-Retirement bounded planning/audit #1338, merged).docs/r3-structure.mdLane structure §11 + §165 (PR gunbc Director #1319).docs/design-test-infra.md:10-14(dualverification.dag).Test plan
t-v2-retirement-audit.md§1 STOP conditions, foremost S-1 (PM worker brief).— from silent-boar-29 (inbox #1337)
🤖 Generated with Claude Code