Repository navigation
test(evaluator): R3 diagnostics_empty_after_bootstrap ratchet for method-template-contracts - #1537
Conversation
…hod-template-contracts Per ROADMAP.md:502 (`go_method_template_contracts` live diagnostic mismatch dissolution), ROADMAP.md:504,576 (general `diagnostics_empty_after_bootstrap` pattern), and docs/debt/r3-debt-paydown-ledger-2026-05-02.md:82 row. New combined-axis ratchet test `bootstrap_method_template_contracts_lower_to_list_with_empty_diagnostics` asserts the three properties together for each method-template-contract data declaration: 1. Declaration present in the full bootstrap Dag. 2. value_body lowers to ValueBody::List(_) (not Map, not no-body). 3. Bootstrap Dag carries an empty diagnostics() table. The diagnostics check runs first so per-contract structural assertions cannot pass over a semantically diagnostic Dag — the failure mode the ROADMAP row names. The combined gate is one test, one failure surface, one dissolution receipt for the debt row. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
FindingsNone. This diff only adds an integration test plus comments in VerdictAPPROVE — Small, targeted regression/ratchet test with clear documentation of overlap with neighboring tests and why the combined gate matters; no rubric violations grounded in this diff. |
…51-diagnostics-empty-bootstrap
Summary
Per Director / Debt-Paydown dispatch: smallest ratchet that pays down the missing
diagnostics_empty_after_bootstrapdebt row for the method-template-contract bootstrap fixture authorities.Adds one combined-axis test in
src/v3/compiler/tests/integration/method_template_contract_test.rs::bootstrap_method_template_contracts_lower_to_list_with_empty_diagnostics. The test asserts, for the full bootstrap Dag:dag.diagnostics().is_empty()(checked first so structural assertions cannot pass over a noisy Dag — exactly the failure modeROADMAP.md:504names).rust_method_template_contracts/python_method_template_contracts/go_method_template_contractsis present.ValueBody::List(_)(notMap, not the no-body fallback).Debt receipt — Disposition #1 / Debt paid
Per Debt-Paydown Mgr clarification: this is a Disposition #1 (Debt paid) target from
docs/debt/r3-debt-paydown-ledger-2026-05-02.md(#1531), complementary to (not overlapping with) Grounding method-template migration. Any blocker / closure update routes through zesty-dove-500 #1526.Citations (in dispatch authority order):
docs/debt/r3-debt-paydown-ledger-2026-05-02.md:82(docs(r3-debt-paydown): initial debt-row inventory ledger 2026-05-02 #1531) — primary ledger row: "Missing diagnostics-empty bootstrap gate" / "Open" /diagnostics_empty_after_bootstrapratchet for new bootstrap authorities. This PR closes the method-template-contract authority slice of that row.ROADMAP.md:502— "go_method_template_contractslive diagnostic mismatch": Dissolution = "structural gate that all 3 method-template-contract data declarations both lower toValueBody::ListAND leavedag.diagnostics()empty."ROADMAP.md:504— "diagnostics emptyacceptance gate" missing for new bootstrap fixtures: Dissolution = "every new bootstrap fixture authority gets adiagnostics_empty_after_bootstrapratchet test".ROADMAP.md:576(table row 6) —diagnostics_empty_after_bootstrapfor new bootstrap fixture authorities, especially method-template-contract data.This PR closes the method-template-contract slice of the ledger row. Other new bootstrap fixture authorities can adopt the same pattern as they land; the broader ledger row stays open until each authority has its receipt. Blockers / closure updates route through zesty-dove-500 #1526.
Constraints upheld
Test plan
cargo test -p v3-compiler --test integration method_template_contract_test::bootstrap_method_template_contracts_lower_to_list_with_empty_diagnostics— 1 passed locally.🤖 Generated with Claude Code