hermitd: Instructions file for Claude Code

CLAUDE.md

hermitd CLAUDE.md is an instructions file for Claude Code from gtapps/hermitd. It costs 2,208 tokens per session, scanned D, original, MIT.

Repository instructions for a multi-plugin Claude Code marketplace, where several independent plugins live in one repository. It covers layout, testing, launching the tool, version tags, and conventions.

In plain words
What is it for?
Use it when developing, testing, versioning, or releasing one of the marketplace's plugins.
Why use it?
It records repository-specific rules that prevent working from the wrong directory or running the wrong test command.

Instructions file for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: mentions .claude-plugin; mentions CLAUDE.md; mentions subagents.

This is gtapps/hermitd's own configuration. It tells Claude Code how to work on hermitd itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything hermitd configures →

Runs only inside a plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else, and the catalogue could not identify which plugin ships it.

Reuse

Borrowing it

Nothing to install: this file belongs to gtapps/hermitd. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/gtapps/hermitd/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/gtapps/hermitd

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for hermitd CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/gtapps/hermitd/claude-md/github.svg)](https://agentmods.dev/instructions/gtapps/hermitd/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/gtapps/hermitd/claude-md"><img src="https://agentmods.dev/badge/instructions/gtapps/hermitd/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for hermitd CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/gtapps/hermitd/claude-md"><img src="https://agentmods.dev/badge/instructions/gtapps/hermitd/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,208 This file is loaded in full into every session.
When invoked 2,208 The same file — it is already loaded in full.
Security scan D 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.02208 $0.02208
Opus 5.5 $0.00883 $0.00883
Sonnet 5.5 $0.00442 $0.00442
Haiku 4.5 $0.00221 $0.00221

Measured 11d ago against content hash 33a2633af527, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade D, and why

hermitd CLAUDE.md scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Subtle steeringmediumPrompt injection

Instructions that bias recommendations or shape behaviour without the user noticing.

- **`/release` and `/fleet-release` are operator-initiated.** Never suggest them in plans, summaries, or next steps. `/release-status` is read-only and fine to suggest.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

- **`rm -rf` is a native deny.** Use `rm -r` for scratch cleanup. Obfuscated forms are classifier-watched, not a second permission engine.
CLAUDE.md · 65 lines

How it starts

The opening of the file, as written. The whole thing — 65 lines — stays where its author put it; the contents beside it link to each section on GitHub.

hermitd (monorepo)

This repo is a multi-plugin Claude Code marketplace. Seven plugins ship from plugins/<slug>/, each with its own CLAUDE.md, CHANGELOG.md, and tests/. .claude-plugin/marketplace.json is the only marketplace; the root README is the canonical hermit pitch.

Always launch Claude Code from this repo's root. A plugin dir's own .claude-plugin/ would load the plugin under test as the project plugin.

Conventions

  • Model-facing prose: Follow Anthropic's skill authoring guidance. After compaction Claude Code re-attaches only a skill's first 5,000 tokens, so the rules every run needs come first and conditional detail goes in supporting files linked directly from SKILL.md. Evaluate skills on every model intended to use them.
  • Repository-wide tests: use bun run test from the root with Bun 1.4 or newer. It handles plugin working directories, bounded parallelism, and shared root tests. For narrower changes, run the documented suite inside the plugin dir (bun test for core, HA, and Feed; bash tests/run-all.sh for Dev, Fitness, Forge, and Scribe).
  • Independent versioning, tag <slug>--v<X.Y.Z>. Domain plugins declare core compat as required_core_version: ">=X.Y.Z" in .claude-plugin/hermit-meta.json, mirrored by requires there and dependencies in plugin.json; required_core_version is what doctor-check.ts reads. Update all three together. All hermit-internal manifest extensions (hermit.*) live in hermit-meta.json.
  • CC-version-gated work bumps the floor, never shims around it. When a change depends on Claude Code behavior introduced at a version, raise that plugin's min_claude_code_version in hermit-meta.json; no feature detection or fallback paths for older CC.
  • Dependency direction is one-way: domain plugins depend on core; core never imports a sibling, hardcodes a sibling slug in logic, or branches on one being installed. It discovers siblings generically (name-contains-hermit) and consumes only what they declare in hermit-meta.json. Siblings can't import core either: shared logic ships as a hermitd-run verb behind a required_core_version floor.
  • Reuse native Claude Code features before building. Check the docs (https://code.claude.com/docs) and plugin catalog for a feature that already covers a capability; on overlap, link to it instead of reimplementing.
  • Ship mechanism, not policy (all plugins): contracts stay strict, content stays loose. An installed hermit belongs to its operator, so give skills data + goal + voice and let the model compose, and anything operator-editable must survive hermit-evolve. Contract list, extension points, and how skill text is written: plugins/hermitd/CLAUDE.md § Authorship layers.
  • Ship standard: default-on, research preview. Default off only for features needing an operator credential/config, real per-invocation spend, or that are destructive.
  • Agent references in skill text use the full namespaced form (<plugin>:<agent-name>). The harness namespaces bare names at load, so a bare name in skill text fails with "Agent type not found".
  • Domain plugins carry core-facing wording in skills/, agents/, state-templates/, and docs/; when core terminology changes, sweep all of them.
  • Token discipline (all plugins): hook stdout, skill-driven Reads, helper-script output, and native tool results all land in the operator's context, and every tool call re-reads that context from cache, so cache traffic dominates an always-on hermit's spend. Print verdict-sized digests; front unbounded surfaces (JSONL logs, DBs) with a script that returns a bounded summary. Always-loaded files (this one, plugin CLAUDE.mds, CLAUDE-APPEND blocks) are paid every session and re-seeded into every subagent, so a new bullet has to change behavior often enough to earn its place. Pattern and examples: plugins/hermitd/CLAUDE.md § Development.

Read the full file on GitHub · 65 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 65 lines · 2,208 tokens per session scan D 33a2633af527

Subscribe to this mod's changes

hermitd CLAUDE.md is an instructions file published in the GitHub repository gtapps/hermitd (79 stars, last pushed today), licensed MIT. It adds 2,208 tokens to every session, about $0.0088 per session on Opus 5.5. A static security scan graded it D with 2 findings (subtle steering, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-02.

Related

Other instructions, from other repositories