Coding Agent Output Styles
Use this skill when asked to locate built-in or plugin-provided output style prompts, compare them, or port an output style from one coding agent to another.
Workflow
- Identify the source agent and installed version before searching.
- Claude Code:
command -v claude && claude --version - Pi:
command -v pi && pi --help - OMP:
command -v omp && omp --help
- Claude Code:
- Search readable config/plugin caches before reverse-engineering binaries.
- Claude Code official plugin cache is often the best source for old/deprecated output styles.
- Binary strings can confirm native remnants but should not be treated as the primary readable source when official plugin files exist.
- Extract exact prompt text from the source file and report the path alongside the text.
- When porting, prefer additive prompt injection over replacing the base system prompt.
- Avoid stacking styles that already include each other; this duplicates behavioral markers and makes the agent noisy.
Agent-specific injection targets
Claude Code
- One run:
claude --append-system-prompt <text>orclaude --append-system-prompt-file <path>. - Persistent/project context: use Claude's normal
CLAUDE.md,.claude/settings*.json, plugin, or custom command mechanisms depending on the scope.
Pi (pi, ~/.pi/agent)
- Persistent additive behavior:
~/.pi/agent/APPEND_SYSTEM.md. - Project additive behavior:
.pi/APPEND_SYSTEM.md. - One run:
pi --append-system-prompt <file-or-text>. - Toggleable behavior: use a local extension under
~/.pi/agent/extensions/that registers/output-styleand appends the selected prompt inbefore_agent_start. Usetemplates/pi-omp-output-style-extension.tsas the starter and change the import to@earendil-works/pi-coding-agentplusAGENT_DIRto.pi/agent. - Avoid
SYSTEM.mdunless the task explicitly requires replacing/customizing the base prompt.
Oh My Pi (omp, ~/.omp/agent)
- One run:
omp --append-system-prompt <file-or-text>. - Persistent always-on behavior: prefer
~/.omp/agent/RULES.md; OMP treats top-levelRULES.mdas an always-apply rule reinjected near current turns. - Toggleable behavior: use a local extension under
~/.omp/agent/extensions/that registers/output-styleand appends the selected prompt inbefore_agent_start. Usetemplates/pi-omp-output-style-extension.tsas the starter. ~/.omp/agent/SYSTEM.mdexists, but is stronger and should be reserved for intentional core prompt customization.
Dotfiles/Home Manager pattern
For this user's dotfiles repo, prefer keeping Pi/OMP output-style artifacts in ~/dotfiles/configs/{pi,omp}/agent/ and exposing them through Home Manager home.file out-of-store symlinks. The useful shape is:
configs/pi/agent/extensions/claude-output-styles.tsconfigs/pi/agent/output-styles/{explanatory,learning}.mdconfigs/pi/agent/output-style.jsonconfigs/omp/agent/extensions/claude-output-styles.tsconfigs/omp/agent/output-styles/{explanatory,learning}.mdconfigs/omp/agent/output-style.json
Wire these with a small Home Manager module (for example programs.coding-agent-output-styles) that uses config.lib.file.mkOutOfStoreSymlink and force = true; import it from nix/profiles/dev-extra.nix with lib.mkDefault true. If the user wants the change live immediately, replace the existing files with symlinks to the dotfiles copies before waiting for home-manager switch.
Pitfalls
- Do not add Claude's Explanatory and Learning prompts simultaneously. Learning already includes Explanatory behavior, so stacking both duplicates the
★ Insightinstruction. - Do not claim a style is unavailable just because it is not in the CLI help. Search plugin caches, settings/config directories, and install roots.
- Do not rely on binary extraction as the authoritative prompt if an official plugin or documented file provides readable prompt text.
- Pi/OMP extension hook APIs may have changed since examples mentioning
systemPromptAppend: Pi0.80.3expectsbefore_agent_starthandlers to return a fullsystemPromptstring (event.systemPrompt + extra), while OMP16.3.xexpects asystemPromptblock array ([...event.systemPrompt, extra]). Preserve additive semantics even when the literal return field is no longersystemPromptAppend.
References
- See
references/claude-output-style-prompts.mdfor extracted Claude Code Explanatory/Learning prompt text and observed local paths.