Claude Code プロンプト完全ガイド|効果的な指示の書き方とコツ

Claude Codeで効果的なプロンプトを書く方法を徹底解説。コード生成、リファクタリング、デバッグなど、目的別のプロンプト例とベストプラクティスを紹介します。

25分で読めます

Claude Code プロンプト完全ガイド

Claude Codeの出力品質は、プロンプト(指示)の書き方に大きく依存します。この記事では、効果的なプロンプトの書き方と、目的別のテンプレートを紹介します。

プロンプトの基本原則

1. 具体的に書く

悪い例:

このコードを良くして

良い例:

このコードのパフォーマンスを改善してください。
特に以下の点を重視:
- N+1クエリの解消
- 不要なループの削除
- メモリ使用量の削減

2. コンテキストを提供する

悪い例:

ログイン機能を作って

良い例:

Next.js 14のApp Routerを使ったログイン機能を実装してください。

要件:
- 認証方式: JWT
- データベース: PostgreSQL(Prisma)
- バリデーション: Zod
- 既存のUserモデルを使用

3. 期待する出力形式を指定する

この関数のユニットテストを作成してください。

出力形式:
- テストフレームワーク: Jest
- 各テストケースにコメントで説明を追加
- エッジケースも含める

目的別プロンプトテンプレート

コード生成

[機能名]を実装してください。

## 要件
- [要件1]
- [要件2]
- [要件3]

## 技術スタック
- 言語: [言語]
- フレームワーク: [フレームワーク]
- ライブラリ: [使用するライブラリ]

## 既存コードとの整合性
- [既存の設計パターン]
- [命名規則]
- [ディレクトリ構造]

リファクタリング

このコードをリファクタリングしてください。

## 改善したい点
- [改善点1]
- [改善点2]

## 制約
- 外部インターフェースは変更しない
- 既存のテストがパスすること
- [その他の制約]

## 優先度
1. 可読性
2. パフォーマンス
3. 保守性

デバッグ

このバグを調査して修正してください。

## 症状
[エラーメッセージまたは挙動の説明]

## 再現手順
1. [手順1]
2. [手順2]
3. [手順3]

## 期待する動作
[正しい動作の説明]

## 関連ファイル
- [ファイルパス1]
- [ファイルパス2]

コードレビュー

このコードをレビューしてください。

## レビュー観点
- セキュリティ脆弱性
- パフォーマンス問題
- エラーハンドリング
- コーディング規約

## プロジェクトのルール
- [ルール1]
- [ルール2]

## 出力形式
問題点ごとに以下の形式で指摘:
- 場所(ファイル:行番号)
- 問題の種類
- 説明
- 修正案

テスト作成

[ファイル名]のユニットテストを作成してください。

## テスト対象
- [関数/クラス名]

## テストケース
- 正常系: [説明]
- 異常系: [説明]
- エッジケース: [説明]

## テスト環境
- フレームワーク: [Jest/Vitest/etc]
- モック: [モック対象]

高度なテクニック

段階的な指示

複雑なタスクは段階的に指示すると効果的です。

まず、現在のコードベースを分析して、
認証機能がどのように実装されているか説明してください。

(回答を確認後)

では、その設計に合わせてパスワードリセット機能を実装してください。

思考プロセスの要求

この問題を解決する方法を3つ提案してください。
それぞれのメリット・デメリットを説明し、
最も適切な方法を推奨してください。

制約の明示

以下の制約を守ってコードを書いてください:
- 外部ライブラリは追加しない
- 既存のAPIインターフェースは変更しない
- TypeScriptの厳格モードでエラーが出ないこと
- コメントは日本語で記述

例示による誘導

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

例:
```typescript
export async function GET(request: Request) {
  const data = await fetchData();
  return Response.json(data);
}

作成するエンドポイント:

  • GET /api/users - ユーザー一覧取得
  • POST /api/users - ユーザー作成

## CLAUDE.mdの活用

プロジェクトルートに`CLAUDE.md`を配置すると、毎回のプロンプトで繰り返し書く必要がなくなります。

```markdown
# プロジェクト概要

Next.js 14 + TypeScriptのWebアプリケーション

## 技術スタック
- フレームワーク: Next.js 14 (App Router)
- 言語: TypeScript
- スタイリング: Tailwind CSS
- データベース: PostgreSQL + Prisma
- 認証: NextAuth.js

## コーディング規約
- 関数コンポーネントを使用
- Props型は`type`で定義
- ファイル名はkebab-case
- コンポーネント名はPascalCase

## ディレクトリ構造
src/
├── app/          # ページとAPIルート
├── components/   # UIコンポーネント
├── lib/          # ユーティリティ
└── types/        # 型定義

## 重要な注意点
- 日本語でコメントを書く
- console.logは本番コードに残さない
- any型は使用禁止

よくある失敗パターンと改善

パターン1: 曖昧な指示

失敗例:

このコードを修正して

改善例:

このコードで発生しているTypeScriptエラーを修正してください。
エラー: Type 'string' is not assignable to type 'number'

パターン2: 情報不足

失敗例:

APIを作って

改善例:

ユーザー情報を取得するREST APIを作成してください。

エンドポイント: GET /api/users/:id
レスポンス: { id, name, email, createdAt }
認証: Bearer token必須
エラー: 404(ユーザーなし)、401(未認証)

パターン3: 複数タスクの混在

失敗例:

ログイン機能を作って、テストも書いて、
あとデプロイの設定もして

改善例:

ログイン機能を実装してください。

(完了後に別のプロンプトで)
ログイン機能のテストを書いてください。

シチュエーション別プロンプト例

新機能の追加

ユーザーのお気に入り機能を追加してください。

要件:
- 記事をお気に入りに追加/削除できる
- お気に入り一覧を表示できる
- お気に入り数を記事に表示

実装箇所:
- データベーススキーマ(Prisma)
- APIエンドポイント
- フロントエンドUI

既存の認証システム(NextAuth)を使用してください。

バグ修正

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

## バグ報告
フォーム送信後にページがリロードされ、
入力内容が消えてしまう。

## 期待動作
フォーム送信後はページ遷移せず、
成功メッセージを表示する。

## 該当ファイル
src/components/ContactForm.tsx

パフォーマンス改善

このページの初期表示速度を改善してください。

現状の問題:
- 大量のデータを一度に取得している
- 画像が最適化されていない
- 不要なJavaScriptが含まれている

目標:
- First Contentful Paint: 1.5秒以下
- Largest Contentful Paint: 2.5秒以下

まとめ

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

  • 具体的に: 曖昧さを排除し、明確に指示
  • コンテキスト: 技術スタック、制約、既存コードの情報を提供
  • 段階的に: 複雑なタスクは分割して指示
  • CLAUDE.md: プロジェクト固有の情報は設定ファイルに

良いプロンプトを書く習慣を身につけると、Claude Codeの出力品質が大幅に向上します。

関連記事

関連記事