claude skill prompts 公式まとめ

はじめに
プロンプトを「お願い」だと思っていませんか?
「きれいに書いて」「テストを丁寧に追加して」。こうした主観的な言葉は、AIの出力を不安定にし、時として期待を裏切る結果を招きます。
曖昧な指示は、AIの推論を迷わせ、プロジェクトの規律(設計思想)を破壊する「毒」になりかねません。
この記事をお勧めしない人
- AIとの対話を「運任せのガチャ」として楽しみ、再現性を求めていない人。
- 指示の構造化やXMLタグの使用を、「過剰なエンジニアリング」だと感じる人。
- AIに「思想」や「規律」を持たせることの重要性を理解していない人。
「曖昧な言葉」が招く設計の崩壊
- 定量的でない指示はAIに解釈の余地を与えすぎ、気づけばプロジェクトの境界を越えた「越境コード」が生成される。
- 再現性のないプロンプトは、チーム開発において「特定の人にしか使いこなせない」属人化を生む。
- ついにAIは、最も守るべきアーキテクチャの制約を「親切心」で無視し始め、システムを修復不可能なカオスへと導きます。
構造化プロンプトによる「技能(Skill)」の確立
- この記事を読めば、プロンプトを「ロジック」として定義し、AIに確実な「技能(Skill)」を授ける明るい未来があります。
- 具体的には、XML構造、思考の連鎖(CoT)、動的注入を駆使し、AIの能力を極限まで引き出す設計図を手に入れられます。
- この方法は、本プロジェクトの「Skill」群において、複雑なリファクタリングを100%の再現性で実行するために不可欠な技術です。
- この情報は、AIを「意図通りに動かす」ための、最新のプロンプト工学に関する実践知です。
このブログもそうでした
筆者も初期は「お願い」ベースのプロンプトで失敗を繰り返し、AIの気まぐれな出力に翻弄されてきました。
この記事で、AIに「鉄の掟」を叩き込み、誰が使っても同じ高品質な成果を得るための、明日から使えるプロンプト設計Tipsをまとめました。
プロンプトの真価を引き出したい方は、具体的な記述テクニックを確認できます。
開発の進捗
- Before: 曖昧な自然言語による指示により、AIの出力が不安定で、期待した設計品質を維持できていなかった。
- Current: XMLタグやCoT、動的コマンド注入を組み合わせた「Skillプロンプト」への移行が完了し、再現性の高い出力を実現。
- Next: プロジェクト固有の設計パターンを反映したプロンプトテンプレートを拡充し、AIが「熟練エンジニア」として振る舞う環境を磨き上げる。
具体的なタスク
- Before: プロンプトの修正が属人化し、どの指示が精度に寄与しているかが不明確だった。
- Current: 思考の統制(XML構造)と動的コンテキスト(!command)を使い分ける記述階層を定義。
- Next: マルチショット例示(入出力例)の自動生成フローを構築し、AIの学習効率をさらに高める。
プロンプトエンジニアリングの再定義
最新のClaude Codeにおいて、プロンプトは単なる「問いかけ」ではなく、 「Skill(技能)」の核となるロジック です。
優れたプロンプトを SKILL.md という器に入れることで、Claudeはそれを自律的に発見し、実行可能な「武器」として扱います。
2. Skillを成功させる3つの記述階層
Claude 3.5 Sonnet / 3.7 Sonnet の能力を最大限に引き出すため、以下の階層でプロンプトを構造化します。
① 発見性の設計(Metadata & Description)
プロンプトがどれほど優秀でも、Claudeに「今これを使うべきだ」と判断されなければ意味がありません。
- 具体性 : 「コードを書く」ではなく「TypeScriptの関数を3層分離アーキテクチャに基づいてリファクタリングする」と記述します。
- トリガーキーワード : Claudeがユーザーの意図を汲み取れるよう、具体的なコンテキスト(例: "Remix", "Unit Test", "Edge Cases")を
descriptionに含めます。
② 思考の統制(SKILL.md 本文)
AIに「製造ライン」としての規律を守らせるための技術です。
- XMLタグによる構造化 : 指示、制約、入力を
<instructions>や<constraints>タグで囲み、情報の境界を明確にします。 - 思考の連鎖 (CoT): 「回答の前に、まず現在のコードの構造を分析し、修正計画をステップバイステップで提示してください」と指示し、論理的な飛躍を防ぎます。
③ 動的コンテキスト(Dynamic Injection)
静的な指示ではなく、プロジェクトの「今」をプロンプトに注入します。
!commandの活用 :!git diffや!ls -Rをプロンプト内に埋め込み、最新の状況に基づいた推論を行わせます。- プログレッシブ開示 : 巨大なプロンプトは精度を下げるため、詳細な例示は
reference.mdに分離し、必要な時だけ読み込ませる構成にします。
3. 実装テクニック:Skill時代のベストプラクティス
明確性と直接性(原則)
主観的な言葉(「きれいに」「適切に」)を徹底的に排除し、エンジニアリングとして評価可能な基準を与えます。
- 悪い例 : 「テストを書いて」
- 良い例 : 「
vitestを使用し、カバレッジ100%を目指して、正常系2ケース・異常系3ケースのテストコードを生成してください」。
マルチショット例示(習熟)
1つの指示より、3つの「理想的な入出力例」の方が、AIの出力の振れ幅を最小限に抑えられます。
- 複雑なアーキテクチャ(Remixの3層分離など)を維持させる場合、必ず成功パターンのコード例を
SKILL.mdまたはtemplates/に含めます。
レスポンス事前入力(誘導)
JSONや特定のフォーマットで出力させたい場合、出力の冒頭({ "result": 等)を指定することで、不要な挨拶を省き、パースエラーを防ぎます。
4. Layer 1(公式準拠)への適用:ClaudeMix流
優作さんの戦略に基づき、これらの技術を以下のファイル構成で実戦投入します。
.claude/skills/
├── logic-architect/
│ ├── SKILL.md # XMLタグとCoTを駆使した、純粋関数の設計支援
│ └── reference.md # 過去の優れた設計パターンの例示(マルチショット)
└── security-guard/
├── SKILL.md # 認証・認可の不備を指摘する「用心棒」
└── scripts/ # 依存関係をチェックする動的コマンド
運用の鍵
/clearの徹底 : 会話が長くなり、AIの「製造ライン」にノイズが混じり始めたら、迷わずコンテキストをリセットします。- 計画優先 : コーディングを許可する前に、必ず
<plan>タグ内で計画を立てさせ、承認した後に実装へ移行させます。
