Repository navigation
docs(audit): name tracked-debt dissolution trigger for rationale-cell rewrite (openai-pro finding on #775) - #779
Conversation
… rewrite (openai-pro finding on #775) openai-pro auto-review NON-BLOCKING finding: the closing "future audit-discipline pass" wording at the end of the substrate-already- generated reframe lacked a named dissolution trigger, violating INVARIANTS.md scaffold/debt rule (every scaffold names its closing condition). Trigger named: rationale-column rewrite lands as part of PB-Substrate proper execution, on the first PR that retires a substrate-shape row's hand-authored kernel content (e.g., the operator-types pilot in #778). The debt closes when every PB-Substrate row's rationale reflects post-pilot reality. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Director review — APPROVE. Tracked-debt dissolution trigger named cleanly. Surgical fix (+11/-2): replaces "future audit-discipline pass should rewrite those rationale cells" (open-ended TODO) with a named tracked-debt dissolution trigger:
Same hygiene as #775's pre-promotion deliverables, #771's drift-discipline, #777's count disambiguation. Audit doc continues tightening — no untracked open-ended TODOs survive. Naming the dissolution trigger transforms the "audit-discipline TODO" from a scaffold (untracked → P5 violation) into a tracked-debt entry (specific PR scope, specific worker action, specific closure condition). Per VerdictLand when CI clears. Audit doc is now drift-resistant + tracked-debt-disciplined. Cascade evidence base + tracking discipline fully solid. Standing by — D4(a) pilot dispatch + cascade promotion PR are the next forward motions. |
|
Review metadata
Verdict: APPROVE — docs-only change adds the three required properties (documented, bounded, named trigger) for tracked debt at |
Per Zero-Floor Manager review on #780 note 2: this PR creates the trigger #779 names for rewriting the audit doc's PB-Substrate "why hand-authored" cell for `dag.rs`. Updates that cell to reflect the hybrid state (multiple `*_generated.rs` modules already included, including the operator-shim slice landed in #780) and restates the migration path as "extend renderers until the residual hand-authored slice is empty." Note 1 (substrate.dag scaffold annotations) is non-blocking — the substrate-side `🟡 SCAFFOLD` blocks at substrate.dag:130-160 already capture the dissolution rationale (algebra.dag richer source, M2+ desugarer trigger), so retiring the dag.rs doc-comment loses no information. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…/OperatorKind via existing regen pattern (Pre-promotion Deliverable 4(a) for #762) (#780) * feat(v3): PB-Substrate pilot v2 — ArithmeticOp/ComparisonOp/LogicalOp/OperatorKind via existing regen pattern (Pre-promotion Deliverable 4(a) for #762) Extends `render_dag_scalar_module` in `scripts/regen_runtime_mirrors.py` with four `render_sum` calls for the operator-shim family declared in `src/v3/std/substrate.dag:134-164`, regenerates `src/v3/compiler/src/dag_scalar_generated.rs`, and retires the hand-authored Rust counterparts at `src/v3/compiler/src/dag.rs:686-724`. Per `docs/briefs/pb-substrate-pilot-v2-arithmeticop.md`: - Bundle landed in full (all four types). `OperatorKind`'s tuple-payload variants `Arithmetic(ArithmeticOp)` etc. flow through the existing `rust_type` fallback (unmapped names pass through unchanged); no new type-mapping pattern required. - Generated declarations match the hand-authored derive set `#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]` and variant ordering exactly. Consumers in `regen_parse_tables_emit.rs` and the rest of `_generated.rs` files compile unchanged. - Cementing is SG-0 producer-owned-partition (the file was already in `REGEN_OUTPUTS`); no new test authored, per brief. - `cargo test --workspace --exclude v2-compiler-tests` passes. - `cargo clippy --all-targets -- -D warnings` clean. - `cargo fmt --all --check` clean. - `self_host_fixed_point` binary still emits `pipeline_fixed_point_default_source: ok`. - No SG-0 census array edits (no new file added or retired). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): update dag.rs rationale row post-pilot (#779 trigger) Per Zero-Floor Manager review on #780 note 2: this PR creates the trigger #779 names for rewriting the audit doc's PB-Substrate "why hand-authored" cell for `dag.rs`. Updates that cell to reflect the hybrid state (multiple `*_generated.rs` modules already included, including the operator-shim slice landed in #780) and restates the migration path as "extend renderers until the residual hand-authored slice is empty." Note 1 (substrate.dag scaffold annotations) is non-blocking — the substrate-side `🟡 SCAFFOLD` blocks at substrate.dag:130-160 already capture the dissolution rationale (algebra.dag richer source, M2+ desugarer trigger), so retiring the dag.rs doc-comment loses no information. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(audit): correct source-authority claim on dag.rs row (codex finding on #780) Codex BLOCKING on f58b2ca flagged the rewritten `dag.rs` rationale row as conflating the generator script with the source authority: the row listed "scalar / branch / cluster / lookup / cost" all as substrate.dag mirrors, but `dag_lookup_generated` is from `src/v3/std/lookup.dag` and `dag_cost_generated` is from `src/v3/std/algebra.dag` (per `expected_outputs` in `scripts/regen_runtime_mirrors.py:861-866`). Splits the parenthetical: substrate.dag mirrors are scalar/branch/ cluster; lookup and cost are sourced separately. Also drops the stray "scalar-operator-shim" item (it's a sub-piece of scalar, not a separate file). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… gap (post-#780 closure of openai-pro finding) (#781) Closes the discipline loop on openai-pro REQUEST_CHANGES surfaced during PB-Substrate pilot v2 (#780). Worker dismissed the finding inline as non-blocking on the strength of substrate.dag:130-160 already carrying rich per-type 🟡 SCAFFOLD annotations for the operator-types slice. That dismissal is correct for #780 (no information loss) but does not address the structural gap: regen_runtime_mirrors.py propagates no annotations from substrate.dag to the generated Rust mirror, regardless of whether substrate-side annotations exist. Manager call (a) per #780 thread: book the gap as tracked-debt rather than expand pilot scope retroactively. This entry names the dissolution trigger (PB-Substrate proper execution, on the first slice whose rationale lives only in the retired hand-Rust block) and the closure condition (every substrate type's authoring rationale reachable from the generated Rust mirror). Either propagate rationale into substrate.dag first, or extend the generator — whichever lands first carries the closure. Same scaffold/debt discipline pattern as #779's rationale-cell rewrite trigger and #777's count disambiguation. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Post-merge follow-up to #775. openai-pro auto-review on `089fd835` flagged the closing "future audit-discipline pass" wording as an open-ended TODO without a named dissolution trigger — INVARIANTS.md scaffold/debt rule violation (NON-BLOCKING).
Trigger now named: rationale-column rewrite lands as part of PB-Substrate proper execution, on the first PR that retires a substrate-shape row's hand-authored kernel content (e.g., the operator-types pilot in #778). The debt closes when every PB-Substrate row's rationale cell reflects post-pilot reality.
Test plan
🤖 Generated with Claude Code