Claude Code の output style はサブエージェントに継承されない——公式仕様と実地検証
はじめに
AIコーディングアシスタントとの対話は、応答のたびに「要点を先に」「表で構造化する」「同じことを言い換えて繰り返さない」という自分専用の型に沿ってほしい。この希望は、応答の書式と密度だけを指示する独立した設定(output style)を作ることで満たしていた。
これを作った時、漠然と「これでアシスタント全体の応答が変わった」と思っていた。だが実際には、作業を任せる下位のAI(サブエージェント)には、この指示が最初から届いていない。公式仕様を確認し、自分の設定が既定の危険な状態に入っていないかを実測するまでの記録。
前提 ― コンテキストは有限の資源として扱う
なぜこの話が重要かは、Anthropic自身が公開している設計原則から先に押さえておく必要がある。
Studies on needle-in-a-haystack style benchmarking have uncovered the concept of context rot: as the number of tokens in the context window increases, the model’s ability to accurately recall information from that context decreases.
LLMs have an “attention budget” … Every new token introduced depletes this budget by some amount.
会話に詰め込む情報が増えるほど、モデルが正確に思い出せる確率は下がっていく。だから、応答スタイルの指示のような毎回効かせたいルールを安易に何にでも適用すると、それ自体がこの有限な資源を消費する側に回る。同じ資料はこうも書いている。
good context engineering means finding the smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome.
Note that minimal does not necessarily mean short; you still need to give the agent sufficient information up front to ensure it adheres to the desired behavior.
「最小」は「短い」の意味ではない。必要な指示は削らず、しかし無駄な重複はしない——応答スタイルをどこに効かせ、どこには効かせないかという設計判断は、この原則の具体例そのものだった。
見落としていた既定値
まず、応答スタイルの仕組みそのものを公式仕様で確認した。
Custom output styles leave out Claude Code’s built-in software engineering instructions, such as how to scope changes, write comments, and verify work, unless
keep-coding-instructionsis set totrue.
既定値の一覧を見ると、次のようになっていた。
| 設定項目 | 既定値 |
|---|---|
keep-coding-instructions | false |
独自の応答スタイルを作った時点で、既定では実装作業の標準的な規律(変更範囲の設計・コメントの書き方・検証のやり方)が丸ごと外れる。 応答の書式だけを変えたつもりが、何も指定しなければ、実装の質を担保する側の指示まで一緒に消える設計になっていた。
自分の設定を実測する
思い込みで済ませず、自分の設定ファイルの中身を確認した。
---
name: <自分専用の応答スタイル名>
description: 要点先出し・表で構造化・冗長回避・両面提示を指示する、自分専用の応答スタイル
keep-coding-instructions: true
---
keep-coding-instructions は明示的に true になっていた(2026-08-14実測)。該当しない——標準の実装規律は保持されたまま、応答の書式と密度だけが独自の指示で上書きされる状態になっている。もしここが既定値のままだったら、応答の見た目は整っていても、実装の質を担保する指示が静かに欠落していたことになる。
サブエージェントには、そもそも届いていない
もう一つ確認すべきことがあった。この応答スタイルは、作業を任せる下位のAIにも効いているのか。公式仕様にはこうある。
Output styles apply to the main conversation only: a subagent runs its own system prompt, so styles don’t change how subagents respond. A fork is the exception, because it inherits the parent’s full system prompt.
サブエージェントは自分専用のシステムプロンプトで動作するため、応答スタイルは届かない。 例外は「fork」と呼ばれる、親の会話をそのまま引き継ぐ特殊な実行方式だけで、通常の作業委譲(名前付きのサブエージェントに任せる形)ではこの例外に当たらない。
「サブエージェントにも自分の応答スタイルが効いているはず」という思い込みは、ここで訂正された。作業を任せる下位のAIが受け取るのは、その定義ファイルに書かれた内容と最低限の環境情報だけで、応答スタイルどころか、通常の会話全体のシステムプロンプトすら渡らない。
Subagents receive only this system prompt plus basic environment details like the working directory, not the full Claude Code system prompt.
図 ― どこに届き、どこに届かないか
自作の応答スタイルを設定する
│
├─▶ メイン会話
│ └─ システムプロンプトの末尾に追記される(公式)
│ └─ 毎ターン「このスタイルを守れ」というリマインダーが発生する(公式)
│
├─▶ 名前付きサブエージェント(作業を任せた下位のAI)
│ └─ ⛔ 届かない(公式) ── 自分専用のシステムプロンプトで動くため
│ │
│ └─▶ 唯一の例外: fork(親の会話をそのまま引き継ぐ実行方式)
│ └─ この場合だけ、親の応答スタイルも一緒に引き継がれる
│
└─▶ 独自スタイルを作った時点の既定値を確認
└─ keep-coding-instructions の既定は false(公式)
└─ 何もしなければ実装規律まで一緒に外れる
└─(戻りエッジ)→ 自分の設定ファイルを実測
└─ true に設定済みだったと確認(2026-08-14)
縦の流れが「応答スタイルを作ってから、どこに効くかを確認するまで」、横の分岐が「メイン会話・サブエージェント・その例外」という3つの届き先、一番下の入れ子が「危険な既定値を疑い、自分の設定を実測して確認する」ループになっている。
分かったことと、まだ分からないこと
今回の確認で分かったのは次の2点だった。
| 確認した点 | 結果 |
|---|---|
| 独自の応答スタイルが実装規律を巻き込んで外していないか | 該当しない(keep-coding-instructions: true を実測で確認) |
| 応答スタイルが作業を任せる下位のAIにも効いているか | 効いていない(forkを除き公式仕様で明記。思い込みだった) |
一方で、応答スタイルそのものが会話の中で毎ターン発生させる「遵守を促すリマインダー」がどれだけの分量を占めているかは、まだ計測していない。
All output styles trigger reminders for Claude to adhere to the output style instructions during the conversation.
これは応答スタイルに限らず、会話に毎回差し込まれる他の仕組みとも同じ有限の資源を取り合っている。「届いているか」は確認できたが、「届いた上でどれだけの重さになっているか」はまだ測れていない——これは実測してから書く。
Claude Code のオーケストレーター用サブエージェントを廃止した理由——公式harness仕様に基づく構造的な3つの制約
書いた指示が「どこまで届くか」は、書き手からは見えない。届く範囲を仕様で確かめておかないと、届いていない相手の出力を、指示を守らない出力として読んでしまう——今回いちばん避けたかったのは、その読み違えの方だった。