plugins/claude-code-homeassistant-hermit/skills/ha-apply-change/SKILL.md
Validate and apply a generated HA automation or script YAML with safety checks and optional reload. Use after building or modifying an automation.
npx skillsauth add gtapps/claude-code-hermit ha-apply-changeInstall 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.
Pre-check: Run ${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha policy-check <artifact_path> to verify safety. Read the severity field in the JSON output:
"block" (strict mode): stop and explain why. Create a proposal via /claude-code-hermit:proposal-create."ask" (ask mode): use AskUserQuestion to confirm with the operator before proceeding. Show which sensitive entities triggered the prompt and what will be applied."allow": proceed to step 2.Validate and apply: Run ${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha validate-apply <artifact_path> --reload automation (or script).
id: at the top level — if missing, the CLI derives an ID from the alias or filename and warns in the output. A derived ID drifts if the alias is renamed, creating a duplicate.Confirm with operator: Always ask before executing the apply. Show:
Post-apply: Check the JSON output for creation_ok and read .claude-code-hermit/raw/audit-ha-apply-latest.md.
creation_ok: true — config was pushed and verified via REST. Reload picks it up immediately.creation_ok: false + message contains "YAML mode" — HA is in YAML config mode (403). Tell the operator to place the generated YAML in their HA config directory and reload manually.creation_ok: false + other message — push failed with a validation error from HA. Show the error message and suggest fixing the YAML.automation and script domains.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.