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> タグ内で計画を立てさせ、承認した後に実装へ移行させます。