skills/proposal-create/SKILL.md
Creates a proposal for a high-leverage improvement discovered during work. Only for ideas with real impact — not trivial fixes. Use when you discover something worth operationalizing.
npx skillsauth add gtapps/claude-code-hermit proposal-createInstall 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.
Create a proposal only when you discover something with real leverage:
Only create a proposal if all three are true:
scheduled-check/*, operator-request, and current-session evidence sources — recurrence is either established by the check's own analysis or was validated upstream by reflection-judge.If any applicable condition cannot be stated concretely, do not create the proposal. Respond: "Not enough evidence yet. Note it in SHELL.md Findings and revisit after more sessions."
Before creating the proposal, call claude-code-hermit:proposal-triage. Pass Evidence Source: when known:
Title: <proposal title>
Evidence Source: <archived-session | current-session | scheduled-check/<id> | operator-request>
Evidence: <one-paragraph evidence summary>
Evidence Source: is optional (default: archived-session).
CREATE — proceed with the steps belowDUPLICATE:<PROP-ID> — <reason>: stop, report to the caller: "Proposal already exists as <PROP-ID>"SUPPRESS — <code>: <reason>: stop, report the suppression reason to the callerDetermine the next proposal ID:
.claude-code-hermit/proposals/PROP-*.md filesPROP-001PROP-NNN with zero-padded 3-digit numberCreate .claude-code-hermit/proposals/PROP-NNN.md using .claude-code-hermit/templates/PROPOSAL.md.template:
id: the assigned PROP-NNNstatus: proposedsource: manual (default), auto-detected (when invoked by reflect), or operator-request (when triggered by a direct operator request). This field records proposal origin only — gate bypass is controlled by the caller-supplied Evidence Source: above, not by source:.session: the current session ID (S-NNN)created: current ISO 8601 timestamp with timezone offset (e.g., 2026-04-06T14:30:00+01:00). Use the timezone from config.json if set, otherwise UTC.related_sessions: relevant session IDs as YAML array (optional — used by auto-detected proposals to link evidence across multiple sessions). Use [] if none.category: classify as one of:
improvement — workflow or tooling fixroutine — repeating scheduled taskcapability — new agent, skill, or heartbeat itemconstraint — OPERATOR.md refinementbug — incorrect or broken behaviortitle: short proposal title (same text used in the H1 heading after the dash)resolved_date: null (set later by reflect when pattern is confirmed gone)- **Created:**, etc.) — all metadata lives in frontmatter onlyAdd a reference to the proposal in .claude-code-hermit/sessions/SHELL.md under the Findings section
Append a created event to proposal metrics (include source and category from the frontmatter):
node ${CLAUDE_PLUGIN_ROOT}/scripts/append-metrics.js .claude-code-hermit/state/proposal-metrics.jsonl '{"ts":"<now ISO>","type":"created","proposal_id":"PROP-NNN","source":"manual","category":"improvement"}'
Update state summary:
node ${CLAUDE_PLUGIN_ROOT}/scripts/generate-summary.js .claude-code-hermit/state/
OPERATOR.mdIf the proposal affects security boundaries — permissions, network access, credential handling — clearly note the security impact so the operator can make an informed decision.
When your operational scope changes (new API, new local service, new publishing channel), create a PROP recommending deny pattern additions or networking changes. Never modify deny-patterns.json or Docker config directly. The operator implements security changes.
When the proposed solution involves creating a new agent, skill, heartbeat item, or OPERATOR.md change, ultrathink and make the Suggested Plan self-contained:
For a new sub-agent:
.claude/agents/<name>.md with:
For a new skill:
.claude/skills/<name>/SKILL.md with:
For a heartbeat check:
.claude-code-hermit/HEARTBEAT.md under the appropriate group/claude-code-hermit:heartbeat run to verify it evaluates correctlyFor an OPERATOR.md refinement:
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.