Skip to content

Instantly share code, notes, and snippets.

@bdmorin
Created March 5, 2026 21:42
Show Gist options
  • Select an option

  • Save bdmorin/2dd6a672778cefe65222d7a519516e88 to your computer and use it in GitHub Desktop.

Select an option

Save bdmorin/2dd6a672778cefe65222d7a519516e88 to your computer and use it in GitHub Desktop.
Claude Code Output Styles — Analysis of keep-coding-instructions behavior

Claude Code Output Styles — Analysis of Brian Claridge's CISO Implementation

What Output Styles Do

Output styles directly modify Claude Code's system prompt. From the official docs:

  • All output styles strip the "efficient output" instructions (be concise, etc.)
  • Custom output styles additionally strip the coding instructions (test verification, tool usage guidance, security patterns) — unless keep-coding-instructions: true is set in frontmatter
  • The custom style content gets appended to the end of what remains of the system prompt
  • Periodic reminders fire during conversation to reinforce the style

Claridge's ciso.md Implementation

File: .claude/output-styles/ciso.md

His file has no frontmatter — it starts directly with # CISO Output Style. That means all frontmatter fields take their defaults:

Field Default Effect
name "ciso" (from filename) Fine
description none Fine
keep-coding-instructions false Coding system prompt is STRIPPED

Available Frontmatter Options

Output style files support optional YAML frontmatter:

---
name: My Custom Style
description: A brief description displayed in /output-style menu
keep-coding-instructions: true  # default: false
---

What This Means for dd-bot

With keep-coding-instructions defaulting to false, the coding-specific system prompt instructions (verify with tests, prefer Edit over sed, security vulnerability awareness, etc.) are removed. The CISO style content replaces that behavioral guidance.

For his use case — this is the right call. The project is dd-bot (Due Diligence bot), and the style is tuned for DDQ responses, attestations, and security questionnaire answers. He's using Claude Code as a CISO writing assistant, not a code-writing agent. Stripping the coding instructions is exactly what output styles were designed for.

He still gets the core Claude Code capabilities (file reading, bash, tools) but the behavioral guidance shifts from "write good code" to "write authoritative CISO attestations."

If He Wanted Both

If he wanted CISO tone and coding instructions (say, to write code while maintaining CISO communication style), he'd add frontmatter:

---
name: CISO
description: DDQ and security questionnaire response drafting
keep-coding-instructions: true
---

# CISO Output Style
...

Output Styles vs. CLAUDE.md vs. --append-system-prompt

This is the key architectural distinction:

Mechanism System Prompt Coding Instructions Injection Point
Output Styles Edits it directly Stripped by default (keep-coding-instructions: false) Replaces/appends to system prompt
CLAUDE.md Untouched Always preserved Added as user message after system prompt
--append-system-prompt Appended to Always preserved Appended to end of system prompt

If Claridge had put this CISO guidance in CLAUDE.md instead, he'd get CISO tone plus all the coding behavior. By using output-styles, he's deliberately saying "this isn't a coding session."

The keep-coding-instructions Default

The default of false is a deliberate design choice by Anthropic. If you're creating a custom output style, they assume you're repurposing Claude Code for a non-coding domain. Coding behavior is opt-in, not opt-out. This is the opposite of CLAUDE.md, where coding behavior is always preserved.


Analysis generated from Claude Code Output Styles documentation and direct inspection of the dd-bot repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment