hermit-healthlisted
Install: claude install-skill gtapps/claude-code-hermit
# Hermit Health
Synthesize a compact infrastructure snapshot: active alerts, proposal queue, routine engagement, and whether channels are ready for outbound sends.
## Step 0 — Channel reply
If this skill was invoked from a channel-arrived message (the inbound prompt contains a `<channel source="...">` tag), reply via that channel's reply tool. Otherwise emit to conversation.
## Scope
Read the following (gracefully skip any file that doesn't exist):
1. `.claude-code-hermit/state/alert-state.json` — `active` array and `suppressed` array; each entry has `type`, `timestamp`, `message`.
2. `.claude-code-hermit/state/runtime.json` — `last_activity`, `session_id`.
3. `.claude-code-hermit/state/reflection-state.json` — `last_reflection` timestamp and `counters.judge_suppress_by_code` map.
4. `.claude-code-hermit/config.json` — `routines` array (id, schedule, enabled); `channels` object (each channel's `dm_channel_id`).
5. `.claude-code-hermit/proposals/PROP-*.md` — glob; count by `status` frontmatter field.
## Analysis
**Alerts:** Count entries in `alert-state.json → active`. For each, compute age from `timestamp`. Show oldest. If none: "No active alerts."
**Proposal queue:** Count proposals with `status: proposed` (pending operator review) and `status: accepted` (in flight, not yet resolved). If both zero: "Queue empty."
**Routine engagement:** From `config.json.routines`, list each routine with `enabled: true` and its schedule. For the `reflect` routine, use `reflection-s