The base rules must apply to every response, and skills are model-invoked — Claude decides per turn whether a skill is relevant, so no `description` wording makes one fire reliably every time. Intermittent formatting is the worst possible outcome here: a user who cannot trust the shape of the output has to read defensively, which is the cost the plugin exists to remove. Output styles modify the system prompt directly and apply to every turn, and `force-for-plugin: true` applies ours automatic...
Scanned 9/6/2026
Install to Claude Code
npx -y skills add thgMatajs/squirrel-mode --skill adr --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Adr?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/thgmatajs-adr)More formats (shields.io, HTML) on the badges page.
# Base rules ship as an output style, not a skill
The base rules must apply to every response, and skills are model-invoked — Claude decides per turn whether a skill is relevant, so no `description` wording makes one fire reliably every time. Intermittent formatting is the worst possible outcome here: a user who cannot trust the shape of the output has to read defensively, which is the cost the plugin exists to remove. Output styles modify the system prompt directly and apply to every turn, and `force-for-plugin: true` applies ours automatically whenever the plugin is enabled, with no `/config` step. We ship `output-styles/squirrel-mode.md` as the real mechanism and keep a thin `skills/rules/SKILL.md` carrying the same rules for users who disable the forced style and want to invoke it by hand. Both are generated by `scripts/build.sh` from `rules/base-rules.md`. That skill is user-invocable as `/squirrel:rules`; it carries `disable-model-invocation: true`, so it is a recovery path a person types, never something Claude reaches for on its own — which is the whole reason it cannot be the real mechanism. It is the eighth of the eight namespaced commands, and the parity tables in `README.md`, `docs/OTHER-TOOLS.md`, `PLAN.md` and [ADR-0004](./0004-tiered-parity-across-targets.md) all count it. — **Corrected (hoard phase 1); this sentence is kept as first written, this trail's convention.** There are now **ten** namespaced commands: phase 1 of the hoard added `/squirrel:stash` and `/squirrel:dig` (see [ADR-0008](./0008-hoard-auto-allow.md)), so `/squirrel:rules` is the eighth of ten, not of eight. All four tables this sentence names now say ten — `README.md`, `docs/OTHER-TOOLS.md` and `PLAN.md` are pinned to each other line for line by `tests/test_targets.sh` scenario 33, and [ADR-0004](./0004-tiered-parity-across-targets.md)'s own differently-rendered copy has its count kept in step by hand, with an amendment there recording why the count is corrected in place while the rest of that rendering is not. Nothing about the argument above changes: the count was incidental to it, and `/squirrel:rules` is still a recovery path rather than the mechanism.
## Consequences
- **`keep-coding-instructions: true` is mandatory.** Without it, an output style *replaces* Claude Code's built-in software-engineering instructions. squirrel-mode changes how Claude talks, not how it codes.
- **No placeholder interpolation.** Claude Code resolves `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${CLAUDE_PROJECT_DIR}` and `${user_config.*}` in skill and agent content only — output styles are not in that table. The output style must be literal text, which is why the profile arrives through a `SessionStart` hook instead of being interpolated in. It also rules out `userConfig` as the profile mechanism.
- **We override the user's `outputStyle` setting.** Someone using Explanatory or Learning loses it while squirrel-mode is enabled. README must say so plainly.
- **Turning it off needs its own mechanism.** See [ADR-0005](./0005-session-flag-off-switch.md) — an in-conversation "ignore the rules" instruction cannot beat a system prompt that is re-asserted by output-style reminders.
- **Subagents are unaffected.** Output styles apply to the main conversation only; a subagent runs its own system prompt. Work delegated to subagents comes back unshaped.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!