Skip to content

docs: correct migration plan after #516/#517 - #518

Merged
johanzander merged 1 commit into
mainfrom
docs/plan-corrections-517
Aug 9, 2026
Merged

docs: correct migration plan after #516/#517#518
johanzander merged 1 commit into
mainfrom
docs/plan-corrections-517

Conversation

@johanzander

Copy link
Copy Markdown
Owner

Summary

Plan-doc corrections only — no code. Three substantive changes, plus ticking Phase 0 against what actually landed.

1. The sunrise/sunset crossover moves from Phase 2 to Phase 4 (#517).
The plan specified ridax67's 06:00–06:59 period as the acceptance test for dropping Phase 2's epsilon <= 0 early-return. #517 established that period was never a tie at all — the action set was empty (every lattice candidate overshot the 86 W residual, and #497 correctly excluded the unexecutable ones), so IDLE won by default rather than by a coin flip. P3 (candidates are executable commands) subsumed the case P2 was going to handle. Left uncorrected, a Phase 2 implementer would test something already fixed elsewhere and could wrongly conclude the tie policy caused it. Row 3's acceptance is now the genuine near-ties: #466's evening periods and #393.

2. #354 is parked, not superseded — and explicitly not "already fixed".
#511 removed sub-material exports from the plan, but #354's own body flags the 0.1–0.5 kWh home-dominant band that survives it: material exports the DP legitimately plans that still commit the inverter to grid_first and forfeit load-following headroom. #352 stays open for that residual. #354's mechanism is the wrong layer (post-hoc demotion means the DP already credited revenue the mapping forgoes — the P>R optimism P3/P4 forbid), but its two-sided materiality test is real domain knowledge now recorded for Phase 4: a near-full-rate export has almost no headroom left to protect, so a home-dominance-only rule would permanently demote every export on a high-consumption house.

3. Phase 0 ticked against reality, including that test_flow_coherence.py was already on main (PR #506, 2026-08-08 — the plan's "not on main" note was wrong), and that the fold-scoping premise check failed and redirected that work into #511.

Note

This is the second time the plan doc has caught a forward-regression before it shipped (the first was #516's row-2 parity claim). Both were found by a PR contradicting a normative claim rather than by a user report later.

🤖 Generated with Claude Code

…parked not superseded

- Phase 2 row 3 no longer owns the sunrise/sunset crossover. #517 showed
  that period was never a tie: the action set was empty (every lattice
  candidate overshot the 86 W residual, #497 excluded the unexecutable
  ones), so IDLE won by default. P3 subsumed the case P2 was to handle.
  Row 3's acceptance is now the genuine near-ties (#466 evening, #393).
- Phase 4 gains the crossover regression cover and #352's residual band.
- #354 reclassified: NOT 'already fixed'. #511 removed sub-material
  exports from the plan; #354's own 0.1-0.5 kWh home-dominant band
  survives. Its mechanism is the wrong layer (post-hoc demotion =
  P>R optimism), but its two-sided materiality test is carried into
  Phase 4 as domain knowledge.
- Phase 0 items ticked with what actually happened, including that the
  fold-scoping premise check FAILED and redirected the design to #511.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@johanzander
johanzander merged commit 5c441c6 into main Aug 9, 2026
8 checks passed
@johanzander
johanzander deleted the docs/plan-corrections-517 branch August 9, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant