plugins/claude-code-homeassistant-hermit/skills/ha-build-automation/SKILL.md
Draft a Home Assistant automation or script YAML from a description. Validates against the entity inventory and safety policy. Use when the user wants to create or modify HA automations.
npx skillsauth add gtapps/claude-code-hermit ha-build-automationInstall 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.
Gather context:
.claude-code-hermit/raw/snapshot-ha-normalized-latest.json for available entities and services.## HA hermit section) for alias and description fields.GetLiveContext via MCP for current state.Draft the YAML:
id: as the first field, using a stable, language-neutral snake_case value (e.g., kitchen_motion_after_sunset_notification). The validate-apply command uses this as the REST config ID — omitting it causes a derived, fragile ID that breaks on alias rename.alias and description.mode explicitly where concurrency matters..claude-code-hermit/raw/automation-<automation_id>.yaml.Validate:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha simulate <path> to check entity references and policy.${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha policy-check <path> for a safety assessment.Handle results:
severity: "allow" — valid and safe: offer to apply via /claude-code-homeassistant-hermit:ha-apply-change.severity: "ask" (ask mode) — explain which sensitive entities are involved, then offer to apply. The apply step will require explicit operator confirmation.severity: "block" (strict mode) — explain why and create a proposal using /claude-code-hermit:proposal-create.snake_case, language-neutral, descriptiveplatform: explicitlyservice: with full domain (e.g., light.turn_on)entity_id over area/device when specificUnder ha_safety_mode: strict (the default): never draft automations that actuate lock, alarm_control_panel, or security-related cover/button/switch. If the user requests this, explain the safety boundary and create a proposal for manual review. Under ask: draft and run ha policy-check — the severity field in the result drives step 4.
tools
Presence history & tracker-health report — current home/away state, reliability, recent arrival/departure transitions, and activity patterns for person/device_tracker entities. Use when the operator asks about presence history or when a presence-dependent automation (locks, alarm, vacuum, climate) misbehaves.
development
Evening house brief — end-of-day security check, device status, and energy snapshot. Runs as a daily routine at 22:30 or on demand.
tools
Browse and explain the hermit's Home Assistant automations — list by topic, filter by keyword with plain-language YAML explanations, or sort by last-fired. Read-only. Use when the operator asks "what automations do I have / what does this one do / which haven't fired."
tools
On-demand HA-voice brainstorm — reads entity inventory, automation/script listings, and operator intent to surface at most 2 capability-gap ideas, each gated by proposal-triage before becoming a PROP. Invoke when the operator asks "what automations am I missing?", "any coverage gaps?", or "brainstorm improvements". Never runs autonomously.