From all-skills
Guide for creating Claude Code output styles and reusable response-format contracts. Use to standardize agent output or decide between output styles, skills, and CLAUDE.md.
How this skill is triggered — by the user, by Claude, or both
Slash command
/all-skills:claude-output-stylesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide for the native Claude Code output style feature and for applying the same response-contract pattern to agents, slash commands, teams, and skills.
Guide for the native Claude Code output style feature and for applying the same response-contract pattern to agents, slash commands, teams, and skills.
Activate this skill when:
output-styles/ directory--append-system-prompt/config, shipped as Markdown files, optionally bundled in plugins.The feature affects the main agent loop only. The pattern is portable to anywhere a system prompt or instruction block is authored.
Output styles modify Claude Code's system prompt at session start. They can:
keep-coding-instructionsOutput styles are always active once selected, for the whole session. They are set at session start — changes take effect next session so prompt caching stays stable.
| Style | Behavior |
|---|---|
| Default | Standard software-engineering system prompt |
| Explanatory | Adds educational "Insights" during task completion |
| Learning | Collaborative mode — Claude inserts TODO(human) markers for the user to fill in |
---
name: My Custom Style
description: A brief description shown in the /config picker
keep-coding-instructions: false
---
# Custom Style Instructions
You are an interactive CLI tool that helps users with [domain].
## Specific Behaviors
- Respond in [tone]
- Structure output as [format]
- When [condition], do [action]
| Field | Purpose | Default |
|---|---|---|
name | Display name (inherits from filename if omitted) | filename |
description | Shown in /config picker | none |
keep-coding-instructions | Retain Claude Code's coding-specific system prompt sections | false |
Set keep-coding-instructions: true when the custom style augments coding behavior rather than replacing it.
| Scope | Path |
|---|---|
| User-level | ~/.claude/output-styles/ |
| Project-level | .claude/output-styles/ |
| Plugin-shipped | <plugin-root>/output-styles/ |
/config → Output style → pick from menuoutputStyle in .claude/settings.local.json:{
"outputStyle": "Explanatory"
}
Selection is written to .claude/settings.local.json at the local project level.
Place style files under <plugin-root>/output-styles/. They are discovered when the plugin is installed and appear alongside built-in and user styles in /config.
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
└── output-styles/
├── terse-reviewer.md
└── verbose-tutor.md
No additional plugin.json field is required — the output-styles/ directory is discovered by convention.
The shape of an output style — a set of instructions controlling response format, tone, and structure — is portable. You can apply the same pattern anywhere a system prompt or instruction block is authored.
The session-level output style modifies the main agent loop's system prompt. It does not propagate to:
Agent toolIf you need a subagent to produce output in a specific shape, encode the contract in the agent's own definition or reference a shared contract file.
| Target | Where the contract goes |
|---|---|
Agent (.claude/agents/<name>.md) | Body of the agent markdown, under a ## Response Format heading |
Slash command (.claude/commands/<name>.md) | Body of the command markdown |
| Team worker | Prompt template passed to the worker when spawned |
| Skill | Dedicated section in SKILL.md, or a referenced file in assets/ |
| Plugin-wide | Shared file in assets/contracts/ that components link to |
When a team lead spawns multiple workers and must parse their results, inconsistent output shapes force the lead to write bespoke parsing for each worker. A shared contract lets the lead:
PR_URL, STATUS) with one parserA contract specifies:
Use imperative language. Example contract body:
Respond using exactly these sections, in this order:
## SUMMARY
One sentence describing what was done. No preamble.
## EVIDENCE
Verbatim output from `mise run ci`. Paste the tail if too long,
marked with `[truncated]`.
## STATUS
One of: `passed` | `failed` | `blocked`.
## NEXT
One sentence — what the team lead should do with this report.
Do not add sections. Do not summarize at the end.
From an agent definition:
---
name: ci-validator
description: Runs mise run ci and returns a structured report
---
# CI Validator
Run `mise run ci`. Report using the contract in
`assets/contracts/ci-evidence-format.md` — copy the section headings
exactly.
From a team prompt template (pseudocode):
Spawn worker with prompt:
"Fix the failing test in src/foo.ex.
Report using {{contract: worker-report-format}}."
| Need | Use |
|---|---|
| Session-level persona for the human user | Output style |
| Consistent shape from a specific agent role | Contract in the agent definition |
| Parseable reports from N parallel workers | Shared contract referenced by each worker |
| Reusable response shape across a plugin | Contract in assets/contracts/ |
| One-off format for a single prompt | Inline instructions, no contract needed |
| Feature | Scope | Loaded When | Modifies |
|---|---|---|---|
| Output style | Main agent loop only | Session start (after /config) | System prompt (replaces coding sections) |
| CLAUDE.md | Main agent loop | Session start | Appended as user message after system prompt |
--append-system-prompt | Main agent loop | Session start | Appended to system prompt |
| Skill | Main loop and subagents | On-demand (invoke or auto) | Adds procedural knowledge |
| Agent | Spawned subagent | When Agent tool invoked | Independent system prompt |
| Response contract (pattern) | Wherever embedded | When the host component loads | The host's instructions |
Do not fabricate output-style behavior or frontmatter fields not documented at https://code.claude.com/docs/en/output-styles. When authoring contracts, verify referenced files exist with Read or Glob before claiming they do. Do not claim an agent honors the session output style — it does not. For the full anti-fabrication ruleset, see core:anti-fabrication.
outputStyle and expecting mid-session effect. Output style is fixed at session start for cache stability.keep-coding-instructions. Custom styles default to stripping coding instructions — if the style is meant to augment coding, set this to true.Reference response-format contracts in assets/:
assets/worker-report-format.md — structured report for team workers (SUMMARY / EVIDENCE / STATUS / NEXT)assets/ci-evidence-format.md — verbatim CI-output contract for validation agentsassets/review-findings-format.md — findings-list contract for code review agentsCopy, reference, or adapt these when defining agents, commands, or team workers.
npx claudepluginhub vinnie357/claude-skills --plugin qaDesign Claude Code output styles: persona, tone, and behavioral rules that replace the default system prompt. Invoke whenever task involves any interaction with output styles — creating, editing, evaluating, or changing how Claude communicates.
Manages Claude Code output styles via delegation to docs-management: built-ins, customs, frontmatter, /output-style switching, creation, comparisons, and config.
Guides authoring reliable Claude Code agent .md files with example blocks that improve trigger accuracy and output consistency.