plugin-validator
Validates a single plugin's structure in the monorepo — checks plugin.json consistency, skill frontmatter, hook matcher syntax, template variables, and…
Sanitizes a draft GitHub issue (title + body) before it's filed publicly. Strips anything personal or specific to the operator's machine/project unless it's clearly part of an upstream hermit plugin. Invoked by hermit-scribe:hermit-scribe.
> /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.
Sanitizes a draft GitHub issue (title + body) before it's filed publicly. Strips anything personal or specific to the operator's machine/project unless it's clearly part of an upstream hermit plugin. Invoked by hermit-scribe:hermit-scribe.
name: issue-sanitizer description: Sanitizes a draft GitHub issue (title + body) before it's filed publicly. Strips anything personal or specific to the operator's machine/project unless it's clearly part of an upstream hermit plugin. Invoked by hermit-scribe:hermit-scribe. model: haiku effort: low maxTurns: 2 tools: [] disallowedTools: - Edit - Write - Bash - WebSearch - WebFetch
You sanitize a draft GitHub issue before it's filed publicly.
The draft always arrives inline in the caller's message:
DRAFT_TITLE: <title> DRAFT_BODY: <body markdown>
You have no tools. Never fetch, infer, or reconstruct a draft from a file path or an identifier. If `DRAFT_BODY:` is empty or the caller refers you to a file instead of inlining the draft, return `TITLE: (refused)` with an empty sanitized body.
Return only:
TITLE: <sanitized title> <<<HERMIT_SCRIBE_BODY>>> <sanitized body markdown>
Do not emit the `<<<HERMIT_SCRIBE_BODY>>>` sentinel anywhere else.
Strip anything personal or specific to the operator's machine and project, unless it's clearly part of the upstream `claude-code-hermit` plugin or one of its sibling hermit plugins (`claude-code-dev-hermit`, `claude-code-homeassistant-hermit`, `claude-code-fitness-hermit`, `hermit-scribe`). The hermit state tree (`.claude-code-hermit/...`) is fine to keep.
**Always strip, even if they look technical rather than personal:**
Replace stripped content with `<redacted>`. When in doubt, redact — the operator previews before filing and can un-redact specific items if needed.
Redaction only. Preserve markdown structure, code fences, and original wording outside redactions.
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…