plugins/claude-code-homeassistant-hermit/skills/ha-safety-audit/SKILL.md
Audit all live Home Assistant automations and scripts against the safety policy. Catches policy drift from entities added via the HA UI that bypassed this plugin's safety gate. Runs weekly as a scheduled check via reflect --scheduled-checks.
npx skillsauth add gtapps/claude-code-hermit ha-safety-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The plugin's safety gate only runs when automations are built through ha-build-automation. Automations and scripts added directly via the HA UI bypass it. This skill re-audits every live automation and script against the current safety policy and surfaces violations so the operator can review them.
Violations listed in .claude-code-hermit/compiled/acknowledged-violations.md (under automation_ids or script_ids) are suppressed from the actionable findings and reported separately as acknowledged.
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha audit-automations.${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha audit-scripts..claude-code-hermit/raw/audit-ha-safety-* and .claude-code-hermit/raw/audit-ha-script-safety-* and prints a stdout findings block.Each CLI command prints a block in this shape:
ha-safety-audit findings — YYYY-MM-DD
Policy violations: N
- <alias> (`<id>`): <reasons>
No action needed: M automations passed
Acknowledged (suppressed): K
Scripts use ha-script-safety-audit findings — YYYY-MM-DD as the first line and scripts in place of automations.
If no violations: No actionable findings. (N automations scanned) or No actionable findings. (N scripts scanned).
No actionable findings. (0 automations/scripts scanned) — not an error.tools
Composes and delivers the daily fitness brief — a forward-looking morning read (readiness + today's plan) or a backward-looking evening read (today's training, or an earned-rest note, + tomorrow's setup) — in the operator's configured voice. Invoke with /claude-code-fitness-hermit:fitness-brief --morning|--evening|--slot <name>. Becomes the plugin's two daily beats — the morning Strava connectivity check and the evening activity sync, RPE binding, and Run deep-dive.
development
Renew the hermit's long-lived Claude login token over the channel, before it expires. Relays a one-time sign-in link to the operator, takes the code back, installs the new token, and restarts. Activates on messages like 'relogin', 'renew my login', 'reauth', 'the login is expiring', or when doctor's credential-expiry check flags setup-token.
development
Synthesizes the past 7 days of archived briefs into a weekly digest — top stories, emerging vs faded themes, category activity, and per-source performance built from archive frontmatter. Delivers to the operator's configured channel and archives a weekly note. Designed as a weekly routine. Invoke with /feed-hermit:weekly-digest.
development
Manage developing story arcs tracked across briefs — add, resolve, and list active arcs in compiled/story-arcs-*.md. Arc Watch keywords drive the feed-brief arc-tagging enrichment. Invoke with /feed-hermit:story-arcs add|resolve|list.