---
type: notification-spam
coverage: 22
source: COMPLAINT_REGISTRY.jsonl via taxonomy.json _meta (2026-08-08)
absorbs: [notification-spam, notification-fatigue]
---

# KB — notification-spam

audience: AI coding agents first. Type-level patterns; per-incident entries land separately.

## Coverage

22 records across `notification-spam` + `notification-fatigue`. Owner-facing alert path, not machine telemetry alone.

## Recurring failure patterns

1. **Level-triggered re-notify** — condition still true every poll tick → toast storm.
2. **Timestamp dedupe** — restart changes key; same episode alerts again.
3. **Notify without remediate** — alert fires, no auto-fix attempted; owner becomes cron.
4. **Threshold invention** — alerter enabled without mined config; wrong sensitivity.
5. **Duplicate channels** — systray + desktop + deck banner for same episode.
6. **Missing quiet hours / cooldown** — night pings; per-item cooldown ignored.

## Fix vectors that worked

- Edge-trigger on severity transition; clear episode on recovery.
- Stable dedupe key: run-id, item-id, host+scope+rule.
- Auto-remediate branch before notify; owner = last resort.
- Config from `ANNOYANCE_FATIGUE §7` miner; disabled + named error if absent.

## Related skill

`od-notifications`
