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…
Monthly routine plus on-demand hermit-voice brainstorm — synthesizes memory, capabilities, recent artifacts, and codebase shape into at most 2 capability ideas, each gated by proposal-triage before becoming a PROP. Runs on the capability-brainstorm routine and when the operator
$ npx -y skills add gtapps/claude-code-hermit --skill capability-brainstorm --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/capability-brainstormContext preview
The summary Claude sees to decide when to auto-load this skill.
Monthly routine plus on-demand hermit-voice brainstorm — synthesizes memory, capabilities, recent artifacts, and codebase shape into at most 2 capability ideas, each gated by proposal-triage before becoming a PROP. Runs on the capability-brainstorm routine and when the operator
name: capability-brainstorm description: Monthly routine plus on-demand hermit-voice brainstorm — synthesizes memory, capabilities, recent artifacts, and codebase shape into at most 2 capability ideas, each gated by proposal-triage before becoming a PROP. Runs on the capability-brainstorm routine and when the operator asks to brainstorm capabilities or ideate, e.g. "brainstorm capabilities", "what could you be doing for me?", "any capability ideas?".
After ≥8 invocations, run:
bun ${CLAUDE_PLUGIN_ROOT}/scripts/proposal.ts metrics .claude-code-hermit --source=capability-brainstormTriage-survival < 25% or acceptance < 30% → cut this skill rather than tune it — the signal-to-noise ratio isn't there. `INSUFFICIENT` output means the ≥8-verdict sample hasn't been reached yet; wait and re-check.
These three sources require the main session's harness context and cannot be delegated:
Pass the capability signals from Step 1 in the dispatch prompt. Dispatch `claude-code-hermit:skill-eval-runner` pointed at `${CLAUDE_PLUGIN_ROOT}/skills/capability-brainstorm/reference.md`. Include in the dispatch prompt:
The runner reads memory topic files, compiled artifacts, and codebase shape in an isolated context, generates ≤2 ideas (applying the friction + grounding constraints), and returns the structured result.
**Eval runner return schema** — the runner's return value is a JSON object conforming to this block. The schema is byte-identical in `reference.md` (producer) and here (consumer); a contract test asserts this.
<!-- brainstorm-eval-schema:start -->
{
"ideas": [
{
"title": "<short idea title>",
"description": "<one-line description>",
"friction": "<one-sentence operator pain>",
"grounding": ["<item 1>", "<item 2>"],
"effort": "hours|days",
"evidence_summary": "<one-paragraph friction + grounding for proposal-create>"
}
],
"discarded": ["<one-line discarded idea>"],
"inputs_scanned": ["<title or path of each source scanned>"]
}<!-- brainstorm-eval-schema:end -->
**Failure policy:** if the runner returns null or malformed JSON, treat as a zero-ideas result — proceed to Steps 3–5 with `ideas: []`, `discarded: []`, `inputs_scanned: []`, and note the failure in the batch message as `0 ideas emitted (analysis-runner failed)`.
For each generated idea, invoke `/claude-code-hermit:proposal-create` once with:
Title: <short idea title> Evidence Source: capability-brainstorm Evidence: <one-paragraph summary: friction + grounding items>
Set the PROP frontmatter:
`/claude-code-hermit:proposal-create` invokes `proposal-triage` internally. Parse its outcome:
Do NOT invoke `proposal-triage` directly in this skill — `/claude-code-hermit:proposal-create` already does it.
Send one message per `CLAUDE-APPEND.md` § Operator Notification (`channel-send.ts --notice`; it asks for decisions, so it needs a `client` leg):
🧠 Capability brainstorm (<N> idea(s)) 1. **<short title>** — <one-line description> _Grounding: <item 1>, <item 2>_ _Friction: <one-sentence pain>_ _Estimated effort: <hours|days>_ PROP-NNN created · (or: suppressed — <code> · or: duplicate of PROP-NNN) 2. **<short title>** — ... 📎 <proposals page URL>
The `📎` line is a single slot for the whole batch, not one per idea — omit it entirely when the proposals-page refresh returned no URL.
If zero ideas were generated or all were suppressed/duplicated, the message is:
🧠 Capability brainstorm — 0 ideas emitted (<reason: thin context | all suppressed | all duplicates>)
If ≥1 PROP was created (not suppressed/duplicate), write:
`.claude-code-hermit/compiled/capability-brainstorm-YYYY-MM-DD-HHMM.md`
Frontmatter:
--- title: Capability brainstorm — <ISO timestamp> type: capability-brainstorm created: <ISO timestamp with timezone> tags: [capability-brainstorm, ideation] source: <interactive when the operator asked; routine when the capability-brainstorm routine fired> proposals_created: [PROP-NNN, ...] ---
Body (cover the substance, no filler sections):
Do not tag `foundational` — this is a time-bounded ideation snapshot.
**Zero-emit runs:** skip the artifact entirely. Log one line to SHELL.md Findings: `capability-brainstorm: 0 ideas emitted (<reason>)`
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…