Description
The alarms that matter are the ones that distinguish a broken service from a quiet one. A green unit and a 200 from the health endpoint prove neither.
Acceptance Criteria
- #1 Alerts on ingest lag, checkpoint age, unhandled record types rising, drift findings at breaking severity, and sink rejections
- #2 Every rule carries domain, severity and page labels so the existing IRM policy routes it
- #3 Rules live in a folder outside any GitSync-managed folder, because Grafana rejects rules inside one
- #4 Each expression is queried against live data after the push, not only validated client-side
- #5 An alert for a Codex-only or Claude-only signal does not fire when that tool is simply idle
Definition of Done
- #1 just check passes: fmt-check, lint, build, test-short, probe-ci, dashboard-check and docs-links all clean