System health is its own page in the sidebar, Owner and Admin only, with a count badge while anything is Critical. Needs attention lists failures with their severity, fix note and Claude diagnosis; System activity pins each scheduled job's last run above one filterable feed; then expiry dates, Workers spend and the last backup. No client's personal data anywhere — IDs and short labels, and the session link.
MapSystem health (own page, badge, Needs attention, System activity with each job's last run pinned, severity, Claude diagnosis, expiry dates, Workers spend)
A2 specmodule 5 items 5, 6, 8–12; Flows 5.4 (count and time update, no new email), 5.5 (Clear), 5.9 (can't load → “?”)
GlossaryCritical, Warning, Claude diagnosis
Usesadmin-shell.html P1, P4; §6 status label, table, select, alert, empty state; §8 email layout for the Critical email
Decided — Earl, 12 Oct 2026
Severity is a status label — Critical and Warning in --n700, Info in --n400; the word carries it. No color.
Each line's fix is an action link (Reconnect Google, Resend from the session…), not a button: a page of several failures would otherwise break one button per block.
The Claude diagnosis sits under its line behind a thin --n200 rule, always open. Alternative: collapsed behind “Show diagnosis”.
Stripe cs_test_… RM [amount] had no record; recorded on EK-INV-261012-001 through the webhook's path. Check the webhook endpoint in Stripe. Open in Stripe
Resend reports a hard bounce for the recipient domain. The address on the contact card likely has a typo; nothing in Studio is broken. Fix the address and resend from the session.