Primary finding
ATH dedup clock (last_alerts.ath) is never explicitly updated on notify
- skills/price-threshold-alert/SKILL.md:62
- skills/price-threshold-alert/SKILL.md:114-116
- skills/price-threshold-alert/SKILL.md:44-46
The invariants state last_alerts.* powers the 4h dedup. Step 4 describes setting ath.announced_at for baseline suppression but does not state that last_alerts.ath is updated on actual ATH notification. Without updating last_alerts.ath, the stated ATH dedup mechanism may not work as intended.
Recommendation
On ATH notify, set last_alerts.ath = NOW (in addition to updating ath.announced_at). Use last_alerts.ath for the 4h dedup check; only set ath.announced_at during baseline suppression.