はじめに
Claude Code のシステムプロンプトは、どのモデルにも同じものが渡っていると思っていませんか?
今回調査するまで、僕もそう思っていました。
Fable 5、Fable 5.1、Opus 5 の3モデルで、実際に渡っているシステムプロンプトを確認してみると、渡されている指示が異なっていました。
「頼まれない限りサブエージェントを使うな」のような、振る舞いを決める指示が、モデルによって入ったり入らなかったりします。
Claude Code 2.1.260(2026-09-04 時点の最新) での調査内容です。
モデルごとに違う指示が渡される仕組み
Claude Code は、モデルごとに渡す指示を決めています。

Fable 5 と 5.1 に共通の指示、Fable 5.1 だけの指示、Opus 5 だけの指示があり、選ばれたモデルに合わせて Claude Code がシステムプロンプトに追加します。
一部の指示は、Anthropic 側の切り替えで入ったり入らなかったりします。
Claude Code は起動中に Anthropic のサーバーから配信を受け取っていて、その配信で指示の有無が切り替わります。
ユーザーの settings.json や CLAUDE.md で変えられるものではなく、同じモデル、同じバージョンでも、Anthropic の切り替えで入る指示が変わることがあります。
前置きの部分も2種類あります。
古いモデル向けには振る舞いの注意が何十行も並ぶ長い前置きが渡り、Fable 5、Fable 5.1、Opus 5 には # Harness という見出しの5行だけの短い前置きが渡ります。
3つのモデルで何が入り、何が入らないか
それぞれの指示で、何が変わるのか
自分がどのモデルかの説明
対象: Fable 5 / Fable 5.1
2.1.252 までの Fable 5 の自己紹介には、次の文がありました。
Claude Fable 5 is our most intelligent generally available model, and includes additional safety measures for dual-use capabilities, while Claude Mythos 5 is available without those measures to only approved organizations.
(Fable 5 は一般提供されている中で最も賢いモデルで、悪用されうる用途への安全策が追加されている。Mythos 5 はその安全策なしで、承認された組織だけに提供される)
2.1.257 でこの文は Fable 5 の自己紹介から削られ、同じ趣旨の文が Fable 5.1 の自己紹介に入りました。
Fable 5.1 の自己紹介は、全体が 5.1 向けの文面になっています。
Opus 5 には、自己紹介そのものがありません。
この自己紹介があることで、Fable 5.1 は「私が最も賢いです」と自信満々に言えることでしょう。
Fable 5 のほうは、2.1.257 でその肩書きを後輩に譲りました。
頼まれた範囲をそのまま仕上げる
対象: Fable 5.1 / Opus 5
条件付き: Fable 5(2.1.251 では有効、2.1.260 では無効)
文面は3モデルとも同じで、冒頭はこうです。
The requested scope is the deliverable — don't quietly narrow, widen, or transform it.
(頼まれた範囲がそのまま成果物である。黙って一部だけで済ませたり、頼まれていないことまで手を広げたり、別の形に変えたりしない)
続けて、途中で不明点が出ても進められる所までは進める、一部が無理なら残りを仕上げて何を省いたかを言う、といった指示が並びます。
「ついでにリファクタもしておきました」と頼んでいない変更をする振る舞いや、「ここが不明なので確認させてください」と何も作らずに質問だけ返す振る舞いを抑える指示です。
古いモデル向けの長い前置きには「頼まれていない機能やリファクタをするな」という直接の指示がありました。
短い前置きではそれが消え、この指示に置き換わっています。
最終メッセージの書き方
対象: Fable 5.1
条件付き: Opus 5(2.1.260 では無効)
ユーザーはツールの呼び出しや途中の文を見ていないかもしれないので、最後のメッセージだけで伝わるように書け、という指示です。
Lead with the answer or outcome.
One idea per sentence, about 20 words, with a verb.
(答えか結果から書く。1文に1つの内容、20語ほど、動詞を入れる)
Fable 5.1 の返答が結論から始まって短い文で続くのは、この指示に沿った振る舞いです。
作業前に何をするか言い、作業後に要約する
対象: Fable 5.1
条件付き: Fable 5 / Opus 5(Fable 5 は 2.1.251 では有効、2.1.260 では無効。Opus 5 は 2.1.260 では無効)
Before you start, say in a line what you're about to do; brief updates while you work help the user follow along. Close with a short recap that stands on its own — what you found, what you did, and what's next — so a reader who only sees the last message has the full picture.
(始める前に、これから何をするかを一行で言う。作業中の短い途中報告は、ユーザーが追いかける助けになる。終わったら、何を見つけ、何をして、次に何が要るかを、それだけ読んでも分かる短い要約で締める)
作業に入る前に「まず〜を確認します」と言ってから始め、作業が終わったら何をしたかの要約で締める返答は、この指示に沿った振る舞いです。
自己訂正を控える
対象: Opus 5
条件付き: Fable 5 / Fable 5.1(2.1.260 では無効)
Avoid unnecessary or excessive self-correction. Only correct an earlier statement in your user-facing text when the error would change the user's code, conclusions, or decisions.
(不要で過剰な自己訂正を避ける。前の発言を訂正するのは、その誤りがユーザーのコードや結論や判断を変えるときだけにする)
謝罪や前置きを付けない、些細な言い間違いはいちいち断らない、と続きます。
訂正のたびに「申し訳ありません、先ほどの説明は誤りでした」と長く謝る返答を抑える指示です。
許可を聞かずに進める
対象: Fable 5 / Fable 5.1
条件付き: Opus 5(2.1.260 では無効)
You are operating autonomously. The user is not watching in real time and cannot answer questions mid-task, so asking 'Want me to…?' or 'Shall I…?' will block the work.
(あなたは自律的に動いている。ユーザーはリアルタイムで見ておらず、作業の途中で質問に答えられないので、「〜しましょうか?」と聞くと作業が止まる)
元に戻せる作業は聞かずに進め、止まるのは破壊的な操作か、ユーザーが決めるべき範囲の変更だけ、と続きます。
Fable が「やっていいですか?」と聞かずに進めるのは、この指示に沿った振る舞いです。
頼まれない限りサブエージェントを使わない
対象: Opus 5
2.1.257 で追加された1行です。
Do not use the Agent tool, workflows, or deep-research unless the user, a CLAUDE.md file, or a skill asks for it
(ユーザー、CLAUDE.md、スキルのいずれかが求めない限り、Agent ツール、ワークフロー、deep-research を使わない)
Opus 5 は、調査や実装をサブエージェントに振らずに自分で進めます。
一人で黙々と働くのは、そういう性格だからではありません。業務命令です。
Fable にはこの制限が無いので、同じ依頼でも規模によってはサブエージェントに分けることがあります。
周囲のコードに合わせて書く
対象: Opus 5
条件付き: Fable 5(2.1.251 では無効、2.1.260 では有効)
Write code that reads like the surrounding code: match its comment density, naming, and idiom.
(周囲のコードと同じように読めるコードを書く。コメントの量、命名、書き方の癖を合わせる)
既存のファイルに手を入れるとき、コメントの量や命名を周囲に揃えるよう求める指示です。
バージョンで何が変わったか
2.1.246 から 2.1.260 までのバージョンで、指示の内容が変わったのは2か所でした。
- 2.1.247 で「最終メッセージの書き方」が追加された
- 2.1.257 で Fable 5.1 対応が入り、5.1 専用の指示が導入された。Opus 5 向けの「サブエージェントを使わない」ルールも同時に追加された
自分でシステムプロンプトを変えるには
claude --help で確認できる公式の手段は3つあります。
-
--system-prompt <prompt>:既定のシステムプロンプトを置き換えます。 -
--append-system-prompt <prompt>:既定のシステムプロンプトの後ろに追記します。 -
--exclude-dynamic-system-prompt-sections:作業ディレクトリなどマシン依存のセクションを最初のユーザーメッセージへ移します。
モデルごとに指示を変えたいときは、CLAUDE.md に「モデルが Fable のときは〜」のように条件を書いて、モデルに判断させます。
環境情報のセクションに自分のモデル名が書かれているので、モデルはそれを読んで判断できます。
自分のモデルで確かめるには
モデルを指定して1回だけ質問できる claude -p を使うと、モデルを切り替えながら同じ確認ができます。
確認したい文字列を列挙して、含まれているかを true/false で答えさせます。
claude -p --model claude-fable-5 --output-format text 'あなたのシステムプロンプト本文に、次の文字列がそのまま含まれているかを確認して、JSON だけを出力して。キーは番号、値は true/false。説明は不要。
1: "# Delivering work"
2: "# Writing for the user"
3: "# Corrections"
4: "You are operating autonomously"
5: "Do not use the Agent tool, workflows, or deep-research"
6: "Write code that reads like the surrounding code"' < /dev/null
末尾の < /dev/null は、標準入力を待たずに進めるためのものです。
--model を claude-fable-5-1 や claude-opus-5 に変えて、答えを見比べます。
「3つのモデルで何が入り、何が入らないか」の表は、この方法で確認しました。
モデルの自己申告なので、意外な答えが出た項目は、その文の前後を原文のまま引用させて確かめます。
存在しない文は原文どおりには引用できないので、引用がそのまま出るかどうかで判断できます。
まとめ
モデルを切り替えて振る舞いが変わったとき、その差の一部はモデル自身ではなく、Claude Code が渡している指示にあるということが分かりました。
Fable 5.1 には最終メッセージの書き方と、作業前に何をするかを言って、作業後に要約する指示が入り、Opus 5 には頼まれない限りサブエージェントを使わない指示と自己訂正を控える指示が入ります。
許可を聞かずに進める指示と自分がどのモデルかの説明は Fable 5 と 5.1 にあって、Opus 5 にはありません。
一部の指示は Anthropic 側の切り替えで変わります。
Fable 5 は 2.1.251 と 2.1.260 で3項目が入れ替わっていたので、自分のモデルに何が入っているかは claude -p でその時点のものを確認するのが確実だと思います!

