Claude Codeを使っていて「思った通りのコードが出てこない」「意図しない範囲まで変更されてしまった」という経験はありませんか。多くの場合、原因はモデルの性能ではなく指示(プロンプト)の書き方にあります。
この記事では、生成AI全般に共通する基本原則を踏まえつつ、Claude Codeの開発現場ならではの実践テクニックを、Before/Afterの具体例つきで整理します。
1. CLAUDE.mdでプロジェクトの背景を一度だけ伝える
毎回のプロンプトでコーディング規約や言語設定を書くのは非効率です。プロジェクトルートにCLAUDE.mdを置いておくと、Claude Codeが自動的に読み込み、以降のすべての指示に反映されます。
# CLAUDE.md の例
## コミュニケーション
- すべてのやり取りは日本語で行うこと
## コーディング規約
- コードの右側にコメントを書くこと
例: const x = 1; // 初期値を設定
これにより、毎回のプロンプトは「何をしてほしいか」だけに集中でき、指示がシンプルになります。
2. 大きなタスクは分解してから指示する
Before:「このアプリにログイン機能を追加して」
一度に大きすぎるタスクを投げると、Claude Codeは自分なりの解釈で広範囲を変更してしまい、意図しない箇所まで触ってしまうことがあります。
After:「まずログイン画面のUIコンポーネントだけ作成して。バックエンドのAPI連携は次のステップで別途指示します」
タスクを段階的に分解し、1回の指示の範囲を絞ることで、レビューしやすい単位で変更を確認できます。複雑なタスクでは/planコマンドで先に作業計画を立ててから実装させるのも効果的です。
3. 期待する出力形式・制約条件を明示する
Before:「このコードをリファクタリングして」
After:「この関数を、既存の命名規則(キャメルケース)を維持したまま、早期リターンを使う形にリファクタリングして。テストコードは変更しないで」
「変更してほしくない範囲」を明示することも重要です。指示に含まれていない部分まで気を利かせて変更してしまうケースを防げます。
4. 「なぜ」を伝えると精度が上がる
Before:「このAPIのタイムアウトを30秒にして」
After:「本番環境で外部APIの応答が遅いことがあるため、このAPIのタイムアウトを30秒に延長して。ただしユーザー体験を考慮して、20秒経過時点でローディング表示を出すようにして」
背景(なぜその変更が必要か)を伝えることで、Claude Codeは指示の意図を汲んだ実装を選びやすくなります。
5. よくある失敗パターンと改善策
| 失敗パターン | 改善策 |
|---|---|
| 1回のプロンプトに複数の要求を詰め込む | タスクを分解し、1つずつ指示する |
| 「良い感じに」「適当に」といった曖昧な表現を使う | 期待する状態を具体的に言語化する |
| 前提知識(プロジェクトの構成等)を毎回説明する | CLAUDE.mdに一度書いておく |
| 変更してほしくない範囲を伝えない | 「〇〇は変更しないで」と明示する |
まとめ
Claude Codeの指示精度は、生成AI全般に共通する基本原則(直接的な指示・具体例・コンテキスト)と、Claude Codeならではの実践テクニック(CLAUDE.md活用・タスク分解・制約の明示)を組み合わせることで大きく改善できます。
元記事(プロンプトエンジニアリングの基本原則やおすすめ学習法も含むフルバージョン)はこちら。