plugins/hermit-scribe/skills/hatch/SKILL.md
One-time setup for hermit-scribe — appends the Issue Filing block to CLAUDE.md/CLAUDE.local.md and seeds an auto-mode environment entry naming api.github.com as a trusted, always operator-confirmed destination. Run once per project; re-run to refresh after an upgrade.
npx skillsauth add gtapps/claude-code-hermit hatchInstall 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.
hermit-scribe is a maintainer utility with a single skill (/hermit-scribe:hermit-scribe) — this hatch only needs to make its GitHub App posting behavior visible to the operator's CLAUDE.md and to Claude Code's auto-mode classifier. There is no config, no routines, no channels.
Check if .claude-code-hermit/ exists in the current project.
AskUserQuestion) "Core hermit isn't set up yet. Run /claude-code-hermit:hatch now?" with options Yes — run now / No — I'll do it later. If yes, invoke /claude-code-hermit:hatch via the Skill tool and stop. If no, stop.Resolve target file: read .claude-code-hermit/state/hatch-options.json. "target": "local" → CLAUDE.local.md; "target": "committed" or the file absent → CLAUDE.md.
Read the plugin version from ${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json and the stamped version from .claude-code-hermit/config.json at _hermit_versions["hermit-scribe"] (treat absent as null). Step 4 of this skill stamps that field at the end of every run, so on re-runs it reflects the version that last wrote the block. Read target_file (a missing file is marker-absent — the append below will create it). Look for the marker <!-- hermit-scribe: Issue Filing -->.
${CLAUDE_PLUGIN_ROOT}/state-templates/CLAUDE-APPEND.md. The template is the source of truth; no operator prompt is needed.
--- separator, to target_file (the Edit tool creates target_file if missing).<!-- hermit-scribe: Issue Filing --> to the end of the file, i.e. excluding the leading ---, which already sits above the marker in the target — appending the whole file here would duplicate the separator). The block to replace runs from the opening <!-- hermit-scribe: Issue Filing --> through the matching closing <!-- /hermit-scribe: Issue Filing -->, inclusive; if the target's block predates the closing marker (every install hatched before the marker shipped), fall back to the first standalone --- line after the opening marker, or end of file.Run bun ${CLAUDE_PLUGIN_ROOT}/scripts/automode-env.ts .claude/settings.local.json — always .claude/settings.local.json, regardless of hatch_target: Claude Code's auto-mode classifier reads autoMode config only from local/user scope, never a committed project .claude/settings.json. This names api.github.com (scoped to the configured HERMIT_GH_REPO, or the default gtapps/claude-code-hermit) as a service the hermit posts to only with the operator's in-session confirmation — context for the classifier, not a standing permission grant (filing still goes through the skill's own preview/confirm gate every time). Additive and idempotent; safe to re-run. No prompt needed.
Write _hermit_versions["hermit-scribe"] into .claude-code-hermit/config.json with the current plugin version. Registering here also makes hermit-scribe a resolvable Conventional-Commits scope for file-issue.ts classify (which reads _hermit_versions) and puts the block within reach of hermit-evolve's automatic refresh on future upgrades.
Print: "hermit-scribe active. Issue filing goes through /hermit-scribe:hermit-scribe, always with an in-session preview before posting."
tools
Composes and delivers the daily fitness brief — a forward-looking morning read (readiness + today's plan) or a backward-looking evening read (today's training, or an earned-rest note, + tomorrow's setup) — in the operator's configured voice. Invoke with /claude-code-fitness-hermit:fitness-brief --morning|--evening|--slot <name>. Becomes the plugin's two daily beats — the morning Strava connectivity check and the evening activity sync, RPE binding, and Run deep-dive.
development
Renew the hermit's long-lived Claude login token over the channel, before it expires. Relays a one-time sign-in link to the operator, takes the code back, installs the new token, and restarts. Activates on messages like 'relogin', 'renew my login', 'reauth', 'the login is expiring', or when doctor's credential-expiry check flags setup-token.
development
Synthesizes the past 7 days of archived briefs into a weekly digest — top stories, emerging vs faded themes, category activity, and per-source performance built from archive frontmatter. Delivers to the operator's configured channel and archives a weekly note. Designed as a weekly routine. Invoke with /feed-hermit:weekly-digest.
development
Manage developing story arcs tracked across briefs — add, resolve, and list active arcs in compiled/story-arcs-*.md. Arc Watch keywords drive the feed-brief arc-tagging enrichment. Invoke with /feed-hermit:story-arcs add|resolve|list.