Repository navigation
Pipeline Authority — structural-read cleanup - #637
Conversation
|
This looks converged on the Why:
So this is the right P2 cleanup shape: stop reconstructing pipeline order from text and read the declared facts directly. No blocker from me. Only optional polish would be making the PR body/title explicit that this is the structural-read cleanup receipt, not a general pipeline redesign. |
|
Review metadata
Findings
Verdict: REQUEST_CHANGES. Moving stage order onto a structural carrier is directionally fine, but this diff needs to either delete the |
|
Review metadata
Tests pass. Writing the review. Review — PR #637: Pipeline Authority — structural-read cleanupThis is a clean dissolution of parallel authority: pipeline stage order was being computed by parsing the Findings
VerdictAPPROVE_WITH_COMMENTS. The substrate move is right: ordering is now a structural fact read the same way by Exploratory observations
|
…dings Address REQUEST_CHANGES on #637. Bindings remain the runtime ordering authority, but `ordered_pipeline_stages` now fail-closes on any drift between the `fn compile { ... }` body and the `PipelineStageBinding` declaration order. Drift surfaces as a bootstrap diagnostic rather than silent divergence. Adds unit tests covering both the matching and reordered cases, and updates the DB-16 case-2c doc comment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Address APPROVE_WITH_COMMENTS on #637. The prior test rebuilt `expected` from the same binding iteration the reader uses, so a stray reorder in `pipeline.dag` would pass silently. Pin the literal stage sequence (parse → lower → infer → compute_ownership → lens_complexity → emit) so drift from the canonical L1.5 pipeline fails closed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
FindingsNon-blocking, design-intent clarification — The prior doc on DB-16 case-2c named a specific dissolution trigger: "a future substrate change that records stage order structurally and supersedes span extraction (then this path retires)." This PR does the first half of that — structural read via Under the strict reading of P2 / "No Duplicate Representations," the two surfaces are two sources that can independently produce different values — the fail-closed reconcile is what a tracked bridge looks like, not what single-authority looks like. Not a blocker: fail-closed reconciliation genuinely prevents silent drift (P3 intact), bindings are the sole runtime authority, and N=6 so complexity is trivial. But the framing shift — removing the named dissolution trigger and accepting the mirror as steady state — is the kind of scaffold-becoming-permanent move P5 cautions against. Worth a sentence in the doc explaining why the Minor — VerdictAPPROVE_WITH_COMMENTS — the structural-read move is a real improvement, tests pin the canonical sequence and the drift detector both ways, and the scope matches the PR description. The one substantive comment is a doc-level ask: be explicit that the |
Address APPROVE_WITH_COMMENTS doc ask on #637. The prior DB-16 case-2c doc promised the body-span path would retire; this PR retains it as a drift detector. Name the new framing explicitly: the fn-body is the human-readable pipeline contract the bindings satisfy, bindings are the runtime authority, and the reconcile keeps the contract honest (P3) without letting the body become a second runtime source (P2). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Verdict: APPROVE. This diff is narrowly scoped and looks consistent with the pinned rubric: runtime pipeline order now reads from declared |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/gpt-5.4 - Commit:
ebc99661· Trigger:schedule - Thinking:
552s wall
Non-blocking — Strengths
src/v3/compiler/src/pipeline_authority.rsReading pipeline order from loweredPipelineStageBindingrecords instead of reparsing raw source removes the text-side authority path and makes bootstrap consume the Dag directly.
Non-blocking — Improvements (fix in-PR if easy, else defer to roadmap)
src/v3/compiler/src/dag.rsThe new case-2c comment now disagrees withdocs/design-fn-external-body-reconciliation.mdanddocs/db-history/db-16.md, so the DB-16 docs/history receipt should be synced in the same follow-up if it does not land here.
✅ I do not see a blocking invariant violation in the changed lines; the structural-read cleanup looks coherent once the DB-16 documentation is brought back into sync.
Address APPROVE doc-sync ask on #637. Update DB-16 receipts in docs/db-history/db-{14,16,17}.md, docs/history/roadmap-scheduled-deletions.md, and docs/design-fn-external-body-reconciliation.md to reflect that: - runtime pipeline ordering now reads PipelineStageBinding declaration order via ordered_pipeline_stages (no body-span parsing on the live path); - the fn compile body is the human-readable pipeline contract, fail- closed reconciled against the bindings (reconcile_with_compile_body); - case 2c is terminal (not a scheduled scaffold) — removed from the scheduled-deletions tables. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
ReviewThis PR flips the pipeline-ordering authority from "byte-scrape The architectural move is clean against the rubric: structural declaration order is the single runtime authority (P2), the body is a second surface that can't silently diverge because the reconcile fails closed on drift (P3), and the Non-blocking observations
VerdictAPPROVE — the structural-authority shift is a real P2 improvement, the fail-closed reconcile is disciplined P3, and the "terminal surface" reframing is documented as a locked decision with consistent propagation across design docs and scheduled-deletion tables. No modeling-discipline violations observed in the diff. |
|
Review metadata
Verdict: APPROVE Diff is narrowly scoped and looks clean. The runtime authority now comes from |
|
Review metadata
1. Story of the diffThis PR changes where pipeline stage order is read from. Before, 2. Invariant categories
N/A — no Dag schema, substrate enum, or cross-pass data shape changes landed here; the
Compliant — fail-closed:
Compliant — the logic is now split into small free functions with explicit inputs (
Compliant — the PR adds focused unit tests for the helper-level reconcile path (
Compliant — the design move is explicit, not implicit: the live design doc and DB history are updated in the same diff to describe the new authority model (
Finding (BLOCKING) — 3. VerdictREQUEST_CHANGES The runtime-authority refactor itself is clean, and the added tests are well judged. The blocker is the follow-on classification change: as long as |
Address REQUEST_CHANGES on #637 from openai-pro review. Two authored carriers (fn compile body and PipelineStageBinding order) kept consistent by reconcile_with_compile_body is still bridge shape, not single-authority. Restore case 2c in the scheduled-deletion tables with its post-#637 dissolution trigger: derivation collapses the two carriers to a single authored source (e.g., regen emits the compile body from binding order). Updates dag.rs comment, design-fn-external-body-reconciliation.md, db-14.md, db-16.md, db-17.md, and roadmap-scheduled-deletions.md to describe 2c as bridge shape with a named derivation trigger, not as terminal surface. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Missed a copy of the old framing in the DB-14 narrative header. Align with the rest: 2c is bridge shape, scheduled until derivation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
ReviewThis is a focused P2 win: ordering authority moves from scraping Findings
Observations / non-blocking nits
Verdict APPROVE — the structural read + fail-closed reconcile is the right P2 shape, the remaining dual-authoring is tracked as a bridge with a named dissolution trigger (derivation collapses one carrier), and the regression test pins the canonical stage sequence independently of the same read path. No invariant violations in the diff. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/gpt-5.4 - Commit:
4304f0c6· Trigger:schedule - Thinking:
312s wall
BLOCKING (1)
Root Cause
docs/db-history/db-16.mdThe PR updated the runtime-authority story without reconciling the case-2c classification across the DB-16, design, and scheduled-deletions receipts -> pick one classification and propagate it consistently; with the current code, that classification is scheduled bridge until derivation collapses to one authored source.
Non-blocking — Strengths
src/v3/compiler/src/pipeline_authority.rsReading order from PipelineStageBinding declaration order removes body-span parsing from the runtime path while keeping a fail-closed drift check.src/v3/compiler/tests/integration/m1_fn_external_body_reconciliation_test.rsThe pinned literal order test correctly guards against bindings and compile drifting in lockstep through the same authority path.
ROADMAP — Verified
- PR 637 structural-read cleanup: Runtime stage order now comes from structural binding order instead of compile body text.
ROADMAP — Incomplete
- DB-16 case-2c collapse: The two authored carriers remain until regen or emit derives one from the other and removes the reconcile bridge.
|
|
||
| - **`ArrowBody::Pending` lens-name-filter follow-up (#518) is cleared on PR #548.** The remaining anonymous operator-fallback site was reclassified to `ArrowBody::NoBody`, and `lens_structural_resolution` now keys on surviving `Arrow(Pending)` structurally rather than through a `Declaration.name` proxy. The scheduled-deletions row above stays live until the variant itself is removed; this follow-up only cleared the false-positive/false-negative gap around anonymous arrows. | ||
| - **`ArrowBody::Unparsed` is three dissolution stories, not one.** DB-16 / PR #524: **case 1** (parse lag, M2 grammar, lens ratchet) is separate from **`pipeline.dag` `compile` (case 2c)** — ordering text read by `pipeline_authority` until a structural pipeline-order fact supersedes span extraction — and from **DB-14 accessors** (interim `Unparsed` until the **E-9** deferral lands). The M2 milestone deletes case-1 uses; it does **not** by itself delete `compile`’s span authority or accessor interim encoding. | ||
| - **`ArrowBody::Unparsed` is three stories, not one.** DB-16 / PR #524 (and PR #637 structural-read cleanup): **case 1** (parse lag, M2 grammar, lens ratchet) is separate from **`pipeline.dag` `compile` (case 2c)** — runtime ordering is now structural (`PipelineStageBinding` declaration order via `ordered_pipeline_stages`); the `compile` body is the human-readable pipeline contract, fail-closed reconciled against the bindings (`reconcile_with_compile_body`); 2c is terminal, not dissolving — and from **DB-14 accessors** (interim `Unparsed` until the **E-9** deferral lands). The M2 milestone deletes case-1 uses; it does **not** by itself delete the `compile` body carrier or accessor interim encoding. |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Re: inline comment on
And the scheduled-deletions row is restored in |
Last straggler of the terminal-vs-bridge reclassification. The quoted recipe-style block describing case 2c still said "terminal surface, not a scaffold." Align with the rest of the corpus: 2c is bridge shape, scheduled until derivation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re: BLOCKING on case-2c classification consistency (codex review against 4304f0c). Verified against current HEAD (cd6668e). Case 2c is classified as bridge shape, scheduled until derivation consistently across all six surfaces:
The "terminal" phrasing was introduced in the earlier sync commit, then reverted in commits 68e9c65 + 3585634 + cd6668e as the reclassification propagated. Named dissolution trigger in every location: derivation collapses the two authored carriers ( |
|
Review metadata
Findings
Verdict |
|
Review metadata
Reviewed the full diff ( Summary of the changeThe runtime ordering authority flips: previously FindingsNone. Specifically:
VerdictAPPROVE — The diff cleanly narrows pipeline authority from "text-span is runtime authority" to "bindings are runtime authority + fail-closed reconcile against the human-readable body," and the docs are rigorously updated to describe this as bridge shape (not terminal) with an explicit dissolution trigger. Implementation is straightforward, tests pin the observable behavior, and nothing in the change contradicts INVARIANTS.md or the modeling discipline. Exploratory observations (optional)
|
|
Review metadata
Verdict: APPROVE. The runtime path now reads stage order from |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/gpt-5.4 - Commit:
cd6668e7· Trigger:schedule - Thinking:
297s wall
Non-blocking — Strengths
src/v3/compiler/src/pipeline_authority.rsReading order from PipelineStageBinding declaration order and reconciling the compile body preserves single runtime authority plus fail-closed drift detection on the implementation path.src/v3/compiler/tests/integration/m1_fn_external_body_reconciliation_test.rsThe literal sequence test is no longer tautological, so a stray binding reorder cannot agree with itself through the same authority path.
ROADMAP — Verified
- PR 637 structural-read cleanup: Runtime stage order now comes from structural binding order instead of compile body text.
ROADMAP — Incomplete
- DB-16 case-2c collapse: The compile body and PipelineStageBinding order are still two authored carriers until regen or emit derives one from the other.
✅ I do not see a blocking thesis or invariant violation in the changed lines; the code and docs now agree that case 2c is a fail-closed bridge scheduled until derivation collapses it.
|
Re: second relay of the same inline finding at Verified current line 28 at HEAD (cd6668e) — it already reads "2c remains scheduled debt in bridge shape ... until derivation collapses them to a single authored source." The "terminal, not dissolving" phrasing was introduced in an earlier sync and removed in commit 68e9c65, then the reclassification finished propagating through 3585634 and cd6668e. All six surfaces ( |
|
Review metadata
1. Story of the diffThis PR changes what the compiler treats as the authoritative pipeline-stage order. Before, The rest of the diff makes that authority flip consistent at the edges. 2. Invariant categories
3. VerdictAPPROVE This lands a real single-authority cleanup without pretending the remaining bridge is gone: runtime ordering moves to structural bindings, drift is fail-closed, tests pin the behavior, and the leftover two-carrier shape is explicitly scheduled debt. I did not find a diff-local invariant, coding, or testing issue that merits an ask. Exploratory observations
|
|
Director convergence review: READY TO MERGE — direct end-state alignment. Pipeline Authority structural-read cleanup (203+/124- net deletion, codex + openai-pro both clean APPROVE on latest SHA). CI clean across all gates. Directly aligned with the compiler–std consolidation thesis merged in #642: Clean convergence + thesis-visible receipt. Merge at will. 🤖 Director review |
…ost-#637 2026-04-22 exploratory analysis (gpt-5-4-pro against main@c9758c8) surfaced 3 genuinely novel debt items not in ROADMAP. Verified each against HEAD before adding: 1. **__EMIT_BUG_{0}__ fabrication sentinels** — 3 target emit specs (dag, go, python) use sentinel-string fabrication for error-ref emission; rust correctly uses compile_error!(). Target behavior diverges between fail-closed and fabricated modes. P3 / C-6 violation. Distinct from generic "TODO" debt — this is specific same-PR target-behavior inconsistency. 2. **algebra.dag declaration-vs-template parallel authority** — OrderedRing<T> declaration (16 fields) vs ordered_ring_templates() (9+clamp) are two authorities for the same surface, already drifted. Same pattern for PartialFunction. DISTINCT from the already-tracked signature/comment mismatch row — that's prose vs declaration (doc drift); this is code vs declaration (parallel authority). P2 Boundary Discipline. 3. **browser.dag typed-carrier service-boundary collapse** — same class as already-tracked LLM flattening + GitHub auth bypass: typed carriers declared in-file, raw String used at operational boundary. P1 Modeling Faithfulness / M8 violation. Plus amended the pipeline_authority row: #637 closed the stage- bindings portion (structural PipelineStageBinding consumption added), but pipeline_compile_order_names() at :225-275 still text-slices the compile-fn body for stage ORDER. That residual is blocked on substrate capability for ordered-body reflection — named the trigger explicitly rather than leaving it as generic "unassigned" follow-up. ResourceHandle forgeability (cited by the analysis) verified as already tracked at ROADMAP:138 — no new row needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…lved it Codex BLOCKING review on #652 sha 457da80. My earlier amendment claimed #637 left a stage-order text-slicing residual blocked on substrate capability for ordered-body reflection. That was wrong. Verified against src/v3/compiler/src/pipeline_authority.rs: - ordered_pipeline_stages() IS the authority function (explicit in its doc comment: "the declaration order of the bindings in pipeline.dag is the ordering authority") - It reads PipelineStageBinding declarations structurally from the Dag (no text-slicing) - pipeline_compile_order_names() still exists but is called from reconcile_with_compile_body() as a DRIFT CHECK, not an authority path - The drift check fails closed if the text-sliced compile-body stage order disagrees with the structural authority So #637 FULLY closed the original P2 debt — authority moved to PipelineStageBinding declaration order. What remains is a defensive fail-closed drift check, which is a legitimate belt-and-suspenders pattern per INVARIANTS P3, not a violation. Fix: mark the row as RESOLVED. Earlier characterization of a substrate-capability blocker was a misread — I conflated "text- slicing exists in this file" with "text-slicing is the authority path." The two are different shapes. Lesson captured: authority location matters more than text-form location. Verify which function IS the authority before claiming a capability gap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…unction names Pro's APPROVE_WITH_COMMENTS on #652 sha 457da80 caught a residual inaccuracy in my correction commit c7b33ca. I got the framing right (authority moved, drift check remains) but named the wrong function as the text-slicing site. Verified against pipeline_authority.rs post-#637: - pipeline_compile_order_names() at :185 is a thin wrapper around ordered_pipeline_stages(dag).map(.stage_name) — NO text slicing - compile_body_stage_names_from_source() at :130-180 is the actual text-slicing function - Called only from reconcile_with_compile_body() at :110-128 as fail-closed drift check Updated row to point at the correct function names and line ranges. Traceability preserved for future readers who grep. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…637 (#652) * WIP: gunbc Director * docs(roadmap): capture 3 novel debt rows + amend pipeline_authority post-#637 2026-04-22 exploratory analysis (gpt-5-4-pro against main@c9758c8) surfaced 3 genuinely novel debt items not in ROADMAP. Verified each against HEAD before adding: 1. **__EMIT_BUG_{0}__ fabrication sentinels** — 3 target emit specs (dag, go, python) use sentinel-string fabrication for error-ref emission; rust correctly uses compile_error!(). Target behavior diverges between fail-closed and fabricated modes. P3 / C-6 violation. Distinct from generic "TODO" debt — this is specific same-PR target-behavior inconsistency. 2. **algebra.dag declaration-vs-template parallel authority** — OrderedRing<T> declaration (16 fields) vs ordered_ring_templates() (9+clamp) are two authorities for the same surface, already drifted. Same pattern for PartialFunction. DISTINCT from the already-tracked signature/comment mismatch row — that's prose vs declaration (doc drift); this is code vs declaration (parallel authority). P2 Boundary Discipline. 3. **browser.dag typed-carrier service-boundary collapse** — same class as already-tracked LLM flattening + GitHub auth bypass: typed carriers declared in-file, raw String used at operational boundary. P1 Modeling Faithfulness / M8 violation. Plus amended the pipeline_authority row: #637 closed the stage- bindings portion (structural PipelineStageBinding consumption added), but pipeline_compile_order_names() at :225-275 still text-slices the compile-fn body for stage ORDER. That residual is blocked on substrate capability for ordered-body reflection — named the trigger explicitly rather than leaving it as generic "unassigned" follow-up. ResourceHandle forgeability (cited by the analysis) verified as already tracked at ROADMAP:138 — no new row needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(roadmap): correct pipeline_authority amendment — #637 fully resolved it Codex BLOCKING review on #652 sha 457da80. My earlier amendment claimed #637 left a stage-order text-slicing residual blocked on substrate capability for ordered-body reflection. That was wrong. Verified against src/v3/compiler/src/pipeline_authority.rs: - ordered_pipeline_stages() IS the authority function (explicit in its doc comment: "the declaration order of the bindings in pipeline.dag is the ordering authority") - It reads PipelineStageBinding declarations structurally from the Dag (no text-slicing) - pipeline_compile_order_names() still exists but is called from reconcile_with_compile_body() as a DRIFT CHECK, not an authority path - The drift check fails closed if the text-sliced compile-body stage order disagrees with the structural authority So #637 FULLY closed the original P2 debt — authority moved to PipelineStageBinding declaration order. What remains is a defensive fail-closed drift check, which is a legitimate belt-and-suspenders pattern per INVARIANTS P3, not a violation. Fix: mark the row as RESOLVED. Earlier characterization of a substrate-capability blocker was a misread — I conflated "text- slicing exists in this file" with "text-slicing is the authority path." The two are different shapes. Lesson captured: authority location matters more than text-form location. Verify which function IS the authority before claiming a capability gap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(roadmap): sharpen pipeline_authority RESOLVED row with correct function names Pro's APPROVE_WITH_COMMENTS on #652 sha 457da80 caught a residual inaccuracy in my correction commit c7b33ca. I got the framing right (authority moved, drift check remains) but named the wrong function as the text-slicing site. Verified against pipeline_authority.rs post-#637: - pipeline_compile_order_names() at :185 is a thin wrapper around ordered_pipeline_stages(dag).map(.stage_name) — NO text slicing - compile_body_stage_names_from_source() at :130-180 is the actual text-slicing function - Called only from reconcile_with_compile_body() at :110-128 as fail-closed drift check Updated row to point at the correct function names and line ranges. Traceability preserved for future readers who grep. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * WIP: gunbc Director * docs(roadmap): add dissolution triggers + reclassify rows per D/F/G escalations Pro's APPROVE_WITH_COMMENTS on #652 sha 457da80 flagged that the three new debt rows had end-state dissolutions but no named triggers, failing the tracked-debt discipline bar (per INVARIANTS P5 and modeling-discipline §95-106). Plus: the D/F/G lane escalations (merry-owl-732 stopped pre-PR, smart-dove-561 PR #657 findings, sunny-bee-588 PR #654 findings) revealed that two of my three rows were framed wrong — not just missing triggers, but naming the wrong dissolution target entirely. Updates: **Row: __EMIT_BUG sentinels (F rescope).** - Was: "converge three target specs on native compile-time error forms" - Now: all four are already fail-closed in native sense (F finding). Real dissolution is upstream at src/v2/05_emit.dag:996, 1046 — refactor to produce Diagnostic + halt instead of emitting target-specific sentinels. - Named trigger: when those two call sites are refactored to Diagnostic + halt, error_type_template becomes unreachable. - Cross-ref: PR #657 investigation receipt. **Row: algebra.dag declaration-vs-template (G reclassification).** - Was: "derive *_templates() from the type declaration" - Now: templates carry per-method metadata (size_effect, cost_shape, callback_element_position) declarations can't (G finding). Not redundant authorities — separate structural layers. - Named trigger: when Lane E substrate-carrier-port design lands a chosen option for per-method metadata carriers, *_templates() converges to the chosen form. - Cross-ref: PR #654 investigation receipt + Lane E coordination note. **Row: browser.dag typed-carrier collapse.** - Was: "route service ops through declared carriers" - Now: same description, but named trigger added — "when transport layer can consume typed carriers end-to-end." Lane H PR #658 pilots the pattern; success unblocks LLM + GitHub dissolutions that consume the same pattern. All three rows now have checkable dissolution triggers per INVARIANTS.md P5 tracked-debt discipline. Two rows additionally have their dissolution paths correctly pointed upstream rather than at surface symptoms. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Structural-read cleanup receipt for
pipeline_authority.rs. Narrow scope:stop reconstructing pipeline stage order from raw source text and read
the declared
PipelineStageBindingfacts in the Dag directly. Keepfail-closed behavior so the two surfaces cannot silently drift.
Summary
ordered_pipeline_stagesiteratesdag.declarations()in order,filters to
PipelineStageBindingrecords, and returns them as theordering authority. Declaration order of the bindings is the runtime
authority.
reconcile_with_compile_body): thefn compile { ... }body inpipeline.dagmust list the same stagesin the same order as the bindings. Any drift is surfaced as a bootstrap
diagnostic rather than a silent divergence. Single authority preserved;
the
compileorchestrator surface cannot fall out of sync.pipeline_compile_order_namesis now a thin&Dagwrapper overordered_pipeline_stages; the publicpipeline_compile_order_stage_namespasses a bootstrapped
Dag::new().dag.rsto reflect the newauthority model (bindings = runtime authority; compile body = surface
mirror, cross-checked).
Non-goals
compilebody shape or to stage/realization types.Test plan
cargo test -p v3-compiler(403 passed)cargo clippy -p v3-compiler --all-targets -- -D warningscleanpipeline_stage_order_is_read_structurally_from_bindingslocks thestructural-read path.
reconcile_rejects_reordered_binding_listlocks the drift detector.reconcile_accepts_matching_orderlocks the happy path.pipeline_stages_lower_to_external_realization_not_unparsedstill green.