bump-core-req
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Analyze Home Assistant history data and entity patterns to identify automation opportunities, unused devices, and energy anomalies. Use periodically or when looking for optimization opportunities.
$ npx -y skills add gtapps/claude-code-hermit --skill ha-analyze-patterns --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ha-analyze-patternsContext preview
The summary Claude sees to decide when to auto-load this skill.
Analyze Home Assistant history data and entity patterns to identify automation opportunities, unused devices, and energy anomalies. Use periodically or when looking for optimization opportunities.
name: ha-analyze-patterns description: Analyze Home Assistant history data and entity patterns to identify automation opportunities, unused devices, and energy anomalies. Use periodically or when looking for optimization opportunities. allowed-tools: - Bash - Read - Write - Glob - Grep - mcp__homeassistant__GetLiveContext - mcp__homeassistant__GetDateTime
1. **Load existing analysis**: Read `.claude-code-hermit/raw/snapshot-ha-pattern-analysis-latest.json` if it exists. 2. **Get live context**: Call `GetLiveContext` and `GetDateTime` via MCP for current state. 3. **Fetch history**: Run `${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha fetch-history --window-days 7`. On non-zero exit, pipe one line into `.claude-code-hermit/bin/hermit-run task note .claude-code-hermit <id>` only inside an open record's turn (otherwise skip the note) (`history fetch failed: <stderr first line>`) and continue: the skill proceeds using Phase 1 silence findings only. Do not surface the fetch failure to scheduled-check stdout. 4. **Read normalized inventory**: Read `.claude-code-hermit/raw/snapshot-ha-normalized-latest.json`. Extract both `entity_index` and `silence_summary` (added by every context refresh). Also read `.claude-code-hermit/raw/snapshot-ha-history-7d-latest.json` if present. 5. **Analyze patterns from silence_summary and history**:
From `silence_summary.dead_automations` (enabled automations not fired in 30+ days):
From `silence_summary.silent_event_sensors` (motion/door/window sensors silent for 7+ days):
From `silence_summary.long_unavailable` (individual entities unavailable 7+ days, domain not already degraded):
From `silence_summary.inactive_candidates_by_domain` (lights/switches/covers/climates unchanged for 7+ days):
From `silence_summary.suppressed_entity_domains`:
From `snapshot-ha-history-7d-latest.json` (when present):
6. **Write findings**: Save pattern data to `.claude-code-hermit/raw/snapshot-ha-pattern-analysis-<YYYY-MM-DD>.json` and update `snapshot-ha-pattern-analysis-latest.json`. Write the curated Markdown summary (when non-trivial findings exist) to `.claude-code-hermit/raw/patterns-<YYYY-MM-DD>.md` with frontmatter `type: analysis`, `title: "HA Pattern Analysis: <YYYY-MM-DD>"`, `created: <ISO8601>`, `task: <T-... for the open record in this turn; omit this field otherwise>`, `tags: [ha-patterns, analysis]`. Also write `patterns-latest.md` pointing to the same content. The Markdown body should include the richer breakdown: `inactive_candidates_by_domain` summary table, `suppressed_entity_domains` note, time-pattern table from history, and `state_durations` summary for `climate.*` entities (showing heating/cooling hours over the 7d window). 7. **Update memory**: Update your auto memory with key findings from this analysis. 8. **Emit summary for reflect --check-id ha-patterns --check claude-code-homeassistant-hermit:ha-analyze-patterns**: Always output a plain-text findings block to stdout. reflect --check-id ha-patterns --check claude-code-homeassistant-hermit:ha-analyze-patterns routes actionable items through the proposal pipeline. The stdout shape is fixed — do not add new top-level sections:
ha-analyze-patterns findings — <date> Automation opportunities: <N> - <opportunity 1> Reliability issues: <N> - <dead automation or silent sensor or long-unavailable entity> Waste patterns: <N> - <waste 1> No action needed: <list anything normal or already automated>
Dead automations and silent event sensors fold under `Reliability issues:`. If there are zero findings across all categories, output: `ha-analyze-patterns findings — <date>\nNo actionable findings.`
9. **Propose automations**: If clear patterns emerge, suggest them. For complex ones, delegate to `@claude-code-homeassistant-hermit:ha-automation-builder`.
If you know Claude Tag, the idea will feel familiar: hand Claude work through a channel, such as Discord, Telegram, or your custom integration, and get results back there.
Repo: gtapps/claude-code-hermit
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Changelog and commit — lightweight motion for day-to-day plugin dev work in the monorepo. One commit per plugin scope; CHANGELOG and staging routed by detected…
Documentation-drift audit for the plugin monorepo. Audits either each scoped plugin's unreleased changelog claims or its latest shipped release from the…
Explain in plain language what a fix, feature, PR, or plan will actually change for downstream hermits and the operators chatting with them — a before/after…
Use this skill whenever the user wants to release, ship, prep, or cut versions for two or more plugins together on the current branch. Trigger on phrasings…
Daily release-pipeline digest with a change gate — reports which plugins are pending release, whether main's CI is green, which branches went stale, and GitHub…