You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v5b end-to-end (+ the bit-identity proof for pre-v5b traces)
test_clearing.py
v5b clearing
test_imbalance.py
v5b imbalance
test_simulation_smoke.py
everything else
Six of eight files cover the newest code. The 980-line plant model (core/physics/plant.py), the EKF, the stochastic EMS, the economic MPC and the ledger — the physics and control that every number in every gate report rests on — are covered by one smoke test between them. The parts hardest to reason about after months away are the parts with least protection.
This is not a request for coverage percentage. It is that the seam work (#2–#5) has no safety net where it cuts. Every seam issue says "proof: bit-identical traces before and after" — that proof needs a pinned reference trace per component, and none exists.
What it should be
Tests of the kind RCWS uses to hold structure, not just behaviour:
A frozen-trace regression per component: canonical synthetic day, each strategy, traces pinned to a checked-in reference (hash or .npz). This is the instrument every seam issue's proof runs on. Do this first, before any seam is cut.
Estimator: consistency (NEES/NIS-style) on the EKF against plant truth — the check that will tell EKF and UKF apart, so it should exist before there are two.
Done when
A reference-trace test exists for the canonical synthetic day per strategy, and fails on a one-bit change.
What is wrong
tests/today:test_greek_settlement.pytest_milp_bidding_invariants.pytest_milp_phase4_stress.pytest_greek_milp_bidding_e2e.pytest_clearing.pytest_imbalance.pytest_simulation_smoke.pySix of eight files cover the newest code. The 980-line plant model (
core/physics/plant.py), the EKF, the stochastic EMS, the economic MPC and the ledger — the physics and control that every number in every gate report rests on — are covered by one smoke test between them. The parts hardest to reason about after months away are the parts with least protection.This is not a request for coverage percentage. It is that the seam work (#2–#5) has no safety net where it cuts. Every seam issue says "proof: bit-identical traces before and after" — that proof needs a pinned reference trace per component, and none exists.
What it should be
Tests of the kind RCWS uses to hold structure, not just behaviour:
.npz). This is the instrument every seam issue's proof runs on. Do this first, before any seam is cut.src/inventory (The repo has no ships / never-ships boundary: plant, prices, ledger and the loop sit beside the controller in core/ #1), every registered entity carries provenance (The estimator has no seam: EKF hardcoded in the loop, EKFParams welded into run_simulation, its name baked into the traces — a UKF touches 6–10 files #2, The plant is a type switch: BatteryPack if use_pack else BatteryPlant — a third plant model is another branch in the core #3), no strategy-specific branch in the loop.Done when
Precondition for phase 1 of the platform epic — the net goes up before the seams are cut.