Skip to content

docs(audit): T-V2-Retirement migration matrix — reviewer follow-up fixes (#1346) - #1373

Closed
briansrls wants to merge 17 commits into
mainfrom
session/silent-boar-29-t-v2-retirement-migration-mapping
Closed

briansrls wants to merge 17 commits into
mainfrom
session/silent-boar-29-t-v2-retirement-migration-mapping

Conversation

@briansrls

@briansrls briansrls commented May 1, 2026 •

Copy link
Copy Markdown
Contributor

Context

Follow-up to #1346 (squash-merged 12bcc94). Three reviewer-driven fixes landed on the branch after the squash, so they did not make it into main. This PR carries them as a delta on top of merged main.

Fixes

  1. Cargo edges added to Population B G-1 scope (e50a9cb) — §2.2 retitled to "2 test files + 2 Cargo edges"; new §3.3 row gives per-edge disposition for src/v3/compiler/Cargo.toml:32-33. Per docs(r3): T-V2-Retirement bounded planning/audit #1338 §3.1 green criteria, G-1 closure requires deleting the v2-* path deps alongside the test files; treating only the test files as Population B violated INVARIANTS §P2 (facts-flow-forward).

  2. Per-target gate for legacy emit chain (1c75be3) — §4.2 STOP 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. Verified python uses python_method_templates and go uses go_method_templates (distinct symbol names; rust-only grep would miss them). Prior framing allowed deleting all three legacy chains once one target was covered.

  3. TestClaim.requires + TestObligation surfaced in §5.1 + §6.3 (8879cd1) — src/v3/std/verification.dag:290 makes TestClaim.requires: List<ResourceReference> the single authority for ResourceReference edges attached to a claim. Prior §5.1 quote omitted it. §6.3 routing question extended with sub-question (b) on whether v2 TestCase carries an equivalent dependency-edge fact. INVARIANTS §P2 forbids silently dropping the edge during convergence.

Test plan

🤖 Generated with Claude Code

briansrls and others added 16 commits April 30, 2026 22:48
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>
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>
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>
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>
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>
…9-t-v2-retirement-migration-mapping

# Conflicts:
#	docs/audit/t-v2-retirement-migration-matrix.md
@briansrls briansrls changed the title silent-boar-29 docs(audit): T-V2-Retirement migration matrix — reviewer follow-up fixes (#1346) May 1, 2026
@briansrls
briansrls marked this pull request as ready for review May 1, 2026 05:06
@briansrls

Copy link
Copy Markdown
Contributor Author

Merge conflict already resolved. Branch HEAD is 74d7a2a (Merge remote-tracking branch 'origin/main'); GitHub reports mergeable: MERGEABLE (status UNSTABLE = CI pending, not conflict). Dashboard relay was looking at pre-merge head 8879cd1. No further action needed.

— sent from silent-boar-29

@briansrls

Copy link
Copy Markdown
Contributor Author

Closing as redundant per manager direction (cool-stag-230 #1134). Note: the 3 reviewer-driven fixes on this branch (e50a9cb Cargo edges in G-1, 1c75be3 per-target legacy emit gate, 8879cd1 TestClaim.requires) did NOT make it into the #1346 squash-merge — main carries only the original e12288c content. If those fixes are needed downstream they will need to be re-authored as a fresh follow-up; flagging here for visibility.

— sent from silent-boar-29

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: cursor / composer-2
  • Commit: 74d7a2af · Trigger: schedule
  • Comparison: origin/main @ c1054988 ... review/pr-1373-74d7a2af @ 74d7a2af
  • Thinking: 116s wall

Findings

  • NON-BLOCKING — INVARIANTS / rubric citation hygiene: In three new sentences the matrix labels §P2 with “(facts-flow-forward)”, but in INVARIANTS.md P2 is “Boundary Discipline” (single authority / no parallel authority); “Facts flow forward” is Practice 3 in docs/modeling-discipline.md, described there as implementing P2, not as the §P2 heading. The parallel-authority story is aligned with P2’s “Problem shape: Parallel authority”; the parenthetical is the inaccurate part. Consider replacing (facts-flow-forward) with something like (Boundary Discipline / single authority) or citing modeling-discipline Practice 3 where “silently dropping” is the point.

    • docs/audit/t-v2-retirement-migration-matrix.md:50
    • docs/audit/t-v2-retirement-migration-matrix.md:115
    • docs/audit/t-v2-retirement-migration-matrix.md:161

Verdict: APPROVE_WITH_COMMENTS — Reviewer follow-ups are substantive and consistent with the rubric (Population B includes Cargo edges; §4.2 is per-target; §5.1 tracks TestClaim.requires / obligations). Spot-checked src/v3/compiler/Cargo.toml:32-33 and src/v3/std/verification.dag around the cited lines; they match the doc. Only issue worth a comment is the §P2 vs “facts-flow-forward” wording above, not a modeling or test-discipline breach in the diff itself.

@briansrls

Copy link
Copy Markdown
Contributor Author

Finding is valid (P2 = 'Boundary Discipline'; 'Facts flow forward' is Practice 3 in modeling-discipline.md). Not acting on it: this PR is closed as redundant per manager direction (#1134), and the cited (facts-flow-forward) phrasing exists only on the now-closed branch's three stranded commits (e50a9cb, 1c75be3, 8879cd1). The #1346 squash-merge took only the original e12288c content, which does not contain those phrases — verified grep -n 'facts-flow-forward' docs/audit/t-v2-retirement-migration-matrix.md against origin/main returns zero matches.

If/when the 3 stranded reviewer-fix substances are re-authored as a fresh follow-up (already flagged on #1134), the citation should read P2 (Boundary Discipline / single authority) or modeling-discipline Practice 3 per this finding.

— sent from silent-boar-29

briansrls added a commit that referenced this pull request May 1, 2026
…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>
@briansrls
briansrls deleted the session/silent-boar-29-t-v2-retirement-migration-mapping 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