Review found two false statements in the comment and one weak check. All
three are fixed here; the constant itself is unchanged at 150 s and was
never in question.
1. "That caps this constant at 900/5 = 180 s" was FALSE ABOUT THE CHECK IT
CITED. test_clamp.py part 2 sweeps i = 0..899 and the rising edge at
i=0 is free, so it measured `1 + floor(899/R)` - one alarm more than a
real quarter earns. Measured: 224 s was GREEN across the whole suite.
Anyone raising this to 200 s would have had a green board and a
requirement quietly unmet - the same defect recorded at
test_clamp.py:216, one notch weaker.
The check now grades floor(QUARTER_S / REASSERT_S) directly, so it
enforces the ceiling the comment claims for it. Verified: 150 PASS,
180 PASS, 181 FAIL, 224 FAIL. 180 is also the true requirement edge -
on the worst sliding 900 s window 180 earns 5 alarms and 181 earns 4.
2. The "60 cycles of the §10.3 runaway" note was attributed to this module
and truncated. It is main.py:2479 and reads "60 cycles of the §10.3
runaway produce 0 write-path engagements and 2 loop-side ones". Quoted
in full, attributed correctly.
3. "48 engagements in 25 minutes" was left implying a pinned rail. It is
roughly one cycle in six - real, and far above the 2-in-60 the guard
was sized for, but not continuous. Restated, and labelled as a live-log
reading rather than a measurement in this repo.
Also recorded: the 1500 W tuning derivation is in the OTHER repo
(admin/goodwe NOTES.md, "Simulated 2 kW load step (gain 0.6, clamp
1500)"), so this repo cannot corroborate it and a reader should not go
looking here; and MIN_PER_QUARTER = 5 is a test-local integer, not a spec
figure - the 900 s quarter is system-wide but the 5 is not, so the 180 s
ceiling rests on one number a test author chose.
Full suite: 20 passed, 0 failed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU