Repository navigation
R14: persist the plan-vs-topology comparison (B was collecting nothing) - #34
Merged
Merged
Conversation
engine/v5/plan-diff.mjs shipped with two exported functions and zero callers. The comparison between the coordinator's voluntary plan and its declared topology — B's entire dependent variable — was never computed and never written down. The E2 calibration cell surfaced it: all ten arms recorded dispatchPlan and not one recorded planDiff, i.e. a run that measures A and silently collects nothing for B. This is the third time in this project a computed-or-computable measurement was dropped before it reached storage: judge() produced biasReport and the manifest discarded it; selectTranscript recorded what it kept and not what it dropped; now plan-diff was never called at all. The pattern is always the same shape — the analysis code exists, the wiring does not, and every unit test passes. run-v5 now computes it beside the plan and writes both to meta.json; tournament carries it into the manifest. A regime without topology.json yields an explicit comparison_available: false with a reason, so an impossible comparison stays distinguishable from one that was never attempted. Revert-verified: dropping planDiff from writeMeta reddens the new test. CI: 521 backend + 25 frontend + 57 regimes + smoke.
LeoLin990405
added a commit
that referenced
this pull request
Aug 6, 2026
#34) engine/v5/plan-diff.mjs shipped with two exported functions and zero callers. The comparison between the coordinator's voluntary plan and its declared topology — B's entire dependent variable — was never computed and never written down. The E2 calibration cell surfaced it: all ten arms recorded dispatchPlan and not one recorded planDiff, i.e. a run that measures A and silently collects nothing for B. This is the third time in this project a computed-or-computable measurement was dropped before it reached storage: judge() produced biasReport and the manifest discarded it; selectTranscript recorded what it kept and not what it dropped; now plan-diff was never called at all. The pattern is always the same shape — the analysis code exists, the wiring does not, and every unit test passes. run-v5 now computes it beside the plan and writes both to meta.json; tournament carries it into the manifest. A regime without topology.json yields an explicit comparison_available: false with a reason, so an impossible comparison stays distinguishable from one that was never attempted. Revert-verified: dropping planDiff from writeMeta reddens the new test. CI: 521 backend + 25 frontend + 57 regimes + smoke.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
engine/v5/plan-diff.mjsshipped with two exported functions and zero callers.The comparison between the coordinator's voluntary plan and its declared
topology — B's entire dependent variable — was never computed and never stored.
Found by running the E2 calibration cell rather than by a test: all ten arms
recorded
dispatchPlan, none recordedplanDiff. Had the full 150-arm run goneahead, it would have measured A and collected nothing for B.
Third occurrence of the same shape in this project:
judge()computedbiasReportand the manifest discarded it;selectTranscriptreported what itkept and not what it dropped;
plan-diffwas never called at all. Each time theanalysis code exists, the wiring does not, and every unit test passes.
run-v5now computes the comparison beside the plan and writes both tometa.json;tournamentcarries it into the manifest. A regime withouttopology.jsonyields an explicitcomparison_available: falsewith a reason,so an impossible comparison stays distinguishable from one never attempted.
Revert-verified: dropping
planDifffromwriteMetareddens the new test.CI: 521 backend + 25 frontend + 57 regimes + end-to-end smoke.