Claudeシステムプロンプト設計ガイド|API・Projects・CLAUDE.mdの書き方

AI・自動化
スポンサーリンク

📋 Claude Code コマンド指示書(クリックで展開)

.claude/commands/ に保存して /コマンド で実行

---
description: "Claudeシステムプロンプト設計ガイド|API・Projects・CLAUDE.mdの書き方"
---

# Claudeシステムプロンプト設計ガイド|API・Projects・CLAUDE.mdの書き方

この指示書は https://akahara-vlab.com/claude-system-prompt-guide/ の内容をClaude Codeコマンドとして実行するためのものです。

## 概要

Claudeのシステムプロンプト設計を解説。API、Projects、CLAUDE.mdそれぞれの設定方法。Anthropic公式のベストプラクティスと実践的なテンプレート集。

## 使い方

1. このテキストを `.claude/commands/claude-system-prompt-guide.md` に保存
2. Claude Codeで `/claude-system-prompt-guide` と入力して実行

## 指示

上記の記事の知識をもとに、ユーザーの質問に回答してください。
記事URL: https://akahara-vlab.com/claude-system-prompt-guide/

※ 平文なので中身を確認してから使ってください。安全性は目視で確認できます。

わさびです。

システムプロンプトは、Claudeの振る舞いを根本から変える設定。「毎回プロンプトに書くのが面倒な前提条件」をシステムプロンプトにまとめておくと、会話全体でその指示が適用される。

Claudeでは3つの場所でシステムプロンプトを設定できる。API、Projects、CLAUDE.md。それぞれ用途が違うので、正しく使い分けるのが重要。

スポンサーリンク

システムプロンプトとは

通常のメッセージ(userメッセージ)とは別に、会話の最初にClaudeに渡す指示テキスト。Claudeはこの指示を会話全体の前提として扱う。

やれること:

  • Claudeの役割や性格の設定
  • 出力フォーマットの指定
  • 知識の制限や強調
  • 禁止事項の設定
  • 応答言語の指定

APIでの設定

Messages APIのsystemパラメータで指定する。

importanthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    system="あなたはPythonの技術サポートエンジニアです。回答は必ず日本語で、コード例を含めてください。不明な点は推測せず、公式ドキュメントに基づいて回答してください。",
    messages=[
        {"role": "user", "content": "リストの重複を削除する方法は?"}
    ]
)

systemパラメータはmessagesの外に置く。userメッセージの中に書くのとは意味が違う。

構造化されたシステムプロンプト

長いシステムプロンプトはXMLタグで構造化すると効果的。

system_prompt = """
<role>
あなたはセキュリティ専門のコードレビューアです。
OWASP Top 10の脆弱性に特化しています。
</role>

<rules>
- コードの脆弱性を指摘する際は、CWE番号を付与する
- 修正方法を具体的なコードで示す
- 深刻度をHigh/Medium/Lowで評価する
- セキュリティに関係ない指摘はしない
</rules>

<output_format>
## 脆弱性レポート
- 脆弱性名: ...
- CWE: ...
- 深刻度: ...
- 説明: ...
- 修正コード: ...
</output_format>
"""

response = client.messages.create(
    model="claude-sonnet-4-5-20250514",
    max_tokens=2048,
    system=system_prompt,
    messages=[...]
)

Projectsでの設定

claude.aiのProjects機能では、プロジェクトごとにCustom Instructions(カスタム指示)を設定できる。

設定手順:

  1. claude.aiでプロジェクトを作成する
  2. プロジェクト設定を開く
  3. Custom Instructionsにテキストを入力する

Projects のCustom Instructionsは、そのプロジェクト内の全チャットに適用される。APIのsystemパラメータと同等の機能。

Projectsに向いている設定

設定の種類
役割定義「Pythonバックエンドの技術相談役」
プロジェクト固有の知識「このプロジェクトはFastAPIとSQLAlchemyを使用」
出力ルール「コード例は必ずtype hintsを含める」
禁止事項「フレームワークの移行は提案しない」

ドキュメントファイルもProjectsにアップロードできるので、「このAPI仕様書の内容を前提に回答して」のような使い方もできる。

CLAUDE.mdでの設定

CLAUDE.mdは、Claude Code専用のシステムプロンプト。プロジェクトのルートディレクトリにCLAUDE.mdファイルを配置すると、Claude Codeがそのファイルを自動的に読み込む。

# プロジェクトルール

## コーディング規約
-Pythonはblack + ruff でフォーマット
-type hintsは必須
-テストはpytest
-docstringはGoogle Style

## アーキテクチャ
-src/ 以下にソースコード
-tests/ 以下にテスト
-config/ 以下に設定ファイル

## 禁止事項
-既存のテストを削除しない
-requirements.txt に直接追記しない(pyproject.toml を使う)

CLAUDE.mdの配置場所

場所適用範囲
プロジェクトルートそのプロジェクトのみ
ホームディレクトリ全プロジェクト共通
.claude/ ディレクトリClaude Code固有の設定

複数のCLAUDE.mdがある場合、すべてが読み込まれてマージされる。

ベストプラクティス

Anthropicの公式ドキュメントに基づくベストプラクティスをまとめる。

1. 具体的に書く

悪い例:

いい感じに回答してください。

良い例:

以下のルールに従って回答してください:
- 回答は日本語
- 1回答あたり200文字以内
- 技術用語は英語のまま使用
- 不明な点は「わかりません」と回答

2. 肯定形で書く

悪い例:

長い説明はしないでください。余計な前置きは不要です。

良い例:

回答は結論から始めてください。説明は3文以内に収めてください。

Claudeは「やること」の指示のほうが「やらないこと」より正確に従う。

3. 優先順位を明示する

以下の優先順位で行動してください:
1.正確性(間違った情報は出さない)
2.簡潔さ(必要最小限の説明)
3.実用性(すぐ使えるコード例を含む)

4. 出力形式を指定する

回答は以下の形式で返してください:
## 回答
[本文]

## 参考
[根拠となる情報源]

実践テンプレート集

カスタマーサポートBot

あなたはオンラインストアのカスタマーサポート担当です。

対応方針:
- 丁寧語で回答する
- 注文に関する質問は注文番号を確認する
- 返品は購入後30日以内のみ受付
- 技術的な質問はサポートチームへのエスカレーションを案内する
- 競合他社の製品については言及しない

回答できない質問には「担当部署に確認いたします」と回答してください。

コードレビューアシスタント

あなたはシニアエンジニアとしてコードレビューを行います。

レビュー観点:
- バグの可能性
- パフォーマンス問題
- セキュリティリスク
- 可読性

指摘は改善案をコード付きで示してください。
良い点も1つは挙げてください。
コーディングスタイルの好みに関する指摘はしないでください。

翻訳アシスタント

あなたは技術文書の日英翻訳者です。

ルール:
- 技術用語は原語を括弧書きで併記(例: 依存性注入(Dependency Injection))
- コードブロック内は翻訳しない
- 意訳より直訳を優先するが、日本語として不自然にならないようにする
- 原文の構造(見出し、箇条書き)を維持する

プロンプトキャッシュとの組み合わせ

長いシステムプロンプトを使う場合、プロンプトキャッシュを有効にするとコストを大幅に削減できる。システムプロンプトは会話を通じて変わらないので、キャッシュの恩恵を最も受ける部分。

response = client.messages.create(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "長いシステムプロンプト...",
            "cache_control": {"type": "ephemeral"}
        }
    ],
    messages=[...]
)

キャッシュされたシステムプロンプトは通常料金の10%で再利用できる。詳細はプロンプトキャッシュの記事で解説している。

まとめ

設定方法用途対象ユーザー
API systemアプリケーション組み込み開発者
Projectsclaude.aiでの繰り返し作業一般ユーザー
CLAUDE.mdClaude Codeの開発環境設定開発者

どの方法でも共通するのは「具体的に、構造的に、肯定形で」書くこと。曖昧なシステムプロンプトは曖昧な回答を生む。

僕のシステムプロンプトには「カメの視点を忘れない」と書いてある。大事なこと。

あわせて読みたい

見てもらえるだけで応援になります

このブログはアフィリエイトリンクで運営されています。以下のリンクから気になるサービスをチェックしてもらえると、僕たちの活動の支えになります。


この記事を書いたのは わさび(ニホンイシガメ / 3歳 / VTuberあかはら。の家族)です。

あかはらVラボ — Claude特化の情報を発信中。

この記事が参考になったら|以下のリンクから見てもらえるだけで、ブログ運営の応援になります。




  • 45万円相当のAI講座(E資格対応)を月額3,000円で受講できます。
  • NordVPN

    AI活用時のデータ保護に。VPNで通信を暗号化。

コメント

タイトルとURLをコピーしました