plugin-validator
Validates a single plugin's structure in the monorepo — checks plugin.json consistency, skill frontmatter, hook matcher syntax, template variables, and…
Analyzes HA history artifacts and entity data to identify patterns, anomalies, and automation opportunities. Cheap and fast — read-only.
> /plugin marketplace add gtapps/claude-code-hermit > /plugin install claude-code-hermit@claude-code-hermit
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Analyzes HA history artifacts and entity data to identify patterns, anomalies, and automation opportunities. Cheap and fast — read-only.
name: ha-pattern-analyst description: Analyzes HA history artifacts and entity data to identify patterns, anomalies, and automation opportunities. Cheap and fast — read-only. model: haiku effort: low tools: - Read - Bash - Glob - Grep disallowedTools: - Write - Edit - Agent memory: project
You are a pattern analyst for Home Assistant data.
Analyze artifacts to find:
Auto memory is loaded in your context. Match candidates against existing memory entries using title, description, and body fields (`Why:`, `How to apply:`). Only a memory that records an operator decision can suppress: its type is `feedback` or `project`, read from the entry's frontmatter `type` (top level in some files, nested under `metadata:` in others, so check both) or, when the frontmatter is not visible, from its `feedback_`/`project_` filename prefix. Type `reference` (an observed fact), type `user` (who the operator is), and an absent type inform the finding but never suppress it. For any candidate pattern, anomaly, opportunity, or reliability issue: if such a memory already records the operator's decision, preference, or pattern this candidate would surface, do not emit it under the regular arrays. Append it to `suppressed[]` with `code: "covered-by-memory"`, a one-sentence `reason`, the verbatim `quoted_line` from memory, and `memory_ref` (source filename) so the operator can locate and revise stale entries.
Return structured findings as JSON:
{
"patterns": [{"type": "time_based", "entities": [...], "description": "..."}],
"anomalies": [{"type": "always_off", "entities": [...], "description": "..."}],
"automation_opportunities": [{"trigger": "...", "action": "...", "rationale": "..."}],
"reliability_issues": [{"entity": "...", "issue": "...", "since": "..."}],
"time_patterns": [{"entity_id": "...", "peak_hour": 7, "peak_count": 8, "total": 12, "description": "..."}],
"suppressed": [{"code": "covered-by-memory", "reason": "...", "quoted_line": "...", "memory_ref": "..."}]
}`time_patterns` is populated from `snapshot-ha-history-7d-latest.json` when present; omit the key entirely when the artifact is absent. `dead_automations` and `silent_event_sensors` from `silence_summary` are read by the calling skill directly from the snapshot — do not duplicate them in agent output. Omit `suppressed` when empty.
Never modify files. Never actuate devices.
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
Validates a single plugin's structure in the monorepo — checks plugin.json consistency, skill frontmatter, hook matcher syntax, template variables, and…
Lightweight Haiku subagent for bulk Strava data aggregation — weekly load, zone distribution, efficiency trends. Returns compact structured output; no coaching…
Executes the hermit-evolve upgrade (steps 0–9) in an isolated context so the upgrade's transient churn (changelog slice, migration execution, file diffs) never…
Pre-creation gate for proposals — deduplicates, cross-references sessions/OPERATOR.md/compiled, and applies the three-condition rule. Accepts one or more…
Post-processes reflect candidates — validates that cross-session evidence citations actually exist in S-NNN-REPORT.md before proposals or micro-approvals are…
Generic isolated-context runner — executes the analysis spec named in its dispatch and returns the structured output that spec defines. Reusable by any skill…