Claude Code Prompt:効果的なプロンプトの書き方と実践テクニック

Claude Codeを使っているけれど、思ったような結果が得られないと感じていませんか?本記事では、Claude Codeで最大の効果を引き出すためのプロンプト作成テクニックを、具体例とともに詳しく解説します。

25分で読めます

Claude Codeプロンプトの基本原則

なぜプロンプトが重要なのか

Claude Codeは強力なAIコーディングアシスタントですが、その能力を最大限に引き出すにはプロンプトの質が重要です。

良いプロンプトの効果:

  • 意図した通りのコードが生成される
  • 修正回数が減る
  • 開発効率が大幅に向上
  • 品質の高い成果物

悪いプロンプトの問題:

  • 期待と異なる結果
  • 何度も修正が必要
  • 時間とトークンの浪費

プロンプトの基本構造

効果的なプロンプトの4要素

1. コンテキスト(Context)

現在、Reactを使ったECサイトを開発しています。
TypeScriptを使用し、状態管理にはReduxを採用しています。

2. タスク(Task)

商品一覧ページのフィルター機能を実装してください。

3. 制約条件(Constraints)

- 既存のコードスタイルに従う
- パフォーマンスを考慮する
- モバイル対応を含める

4. 出力形式(Output Format)

- コードとその説明を含める
- テストコードも生成する

テンプレート例

【コンテキスト】
{プロジェクトの背景や技術スタック}

【タスク】
{具体的に実現したいこと}

【制約条件】
- {条件1}
- {条件2}
- {条件3}

【期待する出力】
{どのような形式で結果が欲しいか}

シーン別プロンプト例

新機能の実装

基本的なプロンプト:

ユーザー認証機能を実装して

改善されたプロンプト:

以下の仕様でJWT認証機能を実装してください:

【要件】
- メールアドレスとパスワードでログイン
- アクセストークンとリフレッシュトークンを発行
- トークンの有効期限:アクセス15分、リフレッシュ7日

【技術スタック】
- フレームワーク:Next.js 14(App Router)
- 認証:Jose ライブラリ
- DB:Prisma + PostgreSQL

【必要なファイル】
1. /app/api/auth/login/route.ts
2. /app/api/auth/refresh/route.ts
3. /lib/auth.ts(ヘルパー関数)
4. /middleware.ts(認証チェック)

【セキュリティ要件】
- パスワードはbcryptでハッシュ化
- HTTPOnlyクッキーでトークン管理
- CSRF対策を含める

バグ修正

基本的なプロンプト:

このバグを直して

改善されたプロンプト:

以下のバグを修正してください:

【ファイル】
src/components/UserList.tsx

【バグの症状】
ユーザー一覧をスクロールすると、一部のアイテムが
重複して表示される

【再現手順】
1. ユーザー一覧ページにアクセス
2. 下にスクロールして追加データを読み込む
3. 上にスクロールして戻る

【期待される動作】
重複なく一意のユーザーのみ表示

【関連コード】
useInfiniteScrollフックを使用してページネーション実装

【デバッグ情報】
React.StrictModeでは問題が再現しやすい

リファクタリング

基本的なプロンプト:

このコードをきれいにして

改善されたプロンプト:

以下のコードをリファクタリングしてください:

【対象ファイル】
src/utils/dataProcessor.ts

【リファクタリングの目的】
1. 可読性の向上
2. テスタビリティの改善
3. 責務の分離

【具体的な改善点】
- 1つの関数が200行を超えているので分割
- マジックナンバーを定数化
- 副作用を持つ処理を純粋関数に変更

【制約】
- 既存のインターフェースは変更しない
- 全てのテストがパスすること
- TypeScriptの型を厳密に

【期待する出力】
- リファクタリング後のコード
- 変更点の説明
- 新しいテストケース

コードレビュー

基本的なプロンプト:

このコードをレビューして

改善されたプロンプト:

以下の観点でコードレビューを行ってください:

【対象】
PR #123 の変更ファイル全て

【レビュー観点】
1. セキュリティ
   - SQLインジェクション
   - XSS
   - 認証・認可の問題

2. パフォーマンス
   - N+1クエリ
   - メモリリーク
   - 不要な再レンダリング

3. 保守性
   - 命名規則
   - コードの重複
   - 適切な抽象化

4. テスト
   - カバレッジ
   - エッジケース

【出力形式】
- 重大度(Critical/Major/Minor)
- 該当箇所(ファイル名:行番号)
- 問題の説明
- 修正案

高度なプロンプトテクニック

1. 段階的なプロンプト

複雑なタスクは段階的に分解:

まず、このプロジェクトの構造を分析して
既存のパターンと使用している技術を教えて

分析結果を踏まえて、検索機能を追加するための
実装計画を作成して

計画の第1段階:検索用のAPIエンドポイントを
実装して

2. ペルソナ設定

あなたはセキュリティの専門家として
このコードをレビューしてください。
OWASPのガイドラインに基づいて
脆弱性を指摘してください。

3. 例示による誘導

以下のような形式でAPIエンドポイントを作成してください:

【例】
// GET /api/users
export async function GET(request: Request) {
  const users = await prisma.user.findMany();
  return Response.json(users);
}

これを参考に、商品(Product)のCRUD APIを作成して

4. 否定形での制約

以下の実装で避けてほしいこと:
- any型の使用
- console.logのデバッグ出力
- ハードコードされた値
- 同期的なファイル操作

CLAUDE.mdでのプロンプト活用

プロジェクトルートのCLAUDE.mdにプロンプトのコンテキストを設定:

# プロジェクト概要
ECサイトのバックエンドAPI

# 技術スタック
- Node.js 20
- TypeScript 5.0
- Prisma ORM
- PostgreSQL 15

# コーディング規約
- ESLint/Prettierの設定に従う
- 関数は50行以内
- 型は明示的に定義

# 禁止事項
- any型の使用禁止
- console.logでのデバッグ禁止
- 非同期処理のコールバック禁止

カスタムスラッシュコマンド

.claude/commands/にプロンプトテンプレートを保存:

review.md:

以下の観点でコードレビューを実施してください:

1. セキュリティチェック
2. パフォーマンス分析
3. コード品質評価
4. テストカバレッジ確認

問題が見つかった場合は重大度と修正案を提示してください。

使用方法:

/review

プロンプトのアンチパターン

避けるべきプロンプト

1. 曖昧すぎる

❌ 良い感じにして
❌ もっとかっこよく
❌ 普通に動くように

2. 情報不足

❌ エラーを直して(エラー内容なし)
❌ 動かない(環境情報なし)
❌ 遅い(何が遅いか不明)

3. 過度に詳細

❌ (500行のプロンプト)
→ 段階的に分けて依頼

4. 矛盾する要求

❌ シンプルにして、でも全機能を維持して

まとめ

効果的なClaude Codeプロンプトのポイント:

  • コンテキストを明確に伝える
  • 具体的なタスク説明
  • 制約条件を明示
  • 期待する出力形式を指定
  • 段階的に複雑なタスクを分解
  • 例示で意図を伝える

良いプロンプトを書く習慣をつけることで、Claude Codeとの協働がより効率的になります。最初は時間がかかりますが、テンプレートを作成して再利用することで、継続的に開発効率を向上させることができます。

関連記事