Claude Codeへの指示は、チャットAIへの質問とは根本的に異なる。「何を作るか」だけでなく「どう作るか」「何を変えないか」まで伝える技術が、プロンプトエンジニアリングだ。
コーディングプロンプトの4原則
1. 具体性 — What, Where, How
# 曖昧な指示
> ログイン機能を作って
# 具体的な指示
> Firebase Authenticationを使ったメールログイン機能を作って。
> - コンポーネント: src/components/auth/LoginForm.tsx
> - 認証コンテキスト: src/contexts/AuthContext.tsx
> - ログイン後のリダイレクト先: /dashboard
> - エラー表示: Toastで表示(sonnerを使用)
場所(Where)を指定することで、既存のプロジェクト構造と整合性のある実装が得られる。
2. 文脈提供 — 既存パターンの参照
> src/components/Header.tsx と同じスタイルでFooterコンポーネントを作って
> lib/content.ts の getArticleBySlug と同じパターンで、
> getBookBySlug 関数を lib/book.ts に作って
既存のコードを参照させることで、プロジェクト全体の一貫性を保てる。
3. 制約条件 — やらないことを明示する
> データベーススキーマは変更しないで
> 既存のAPIのレスポンス形式は維持して
> テストカバレッジを下げないで
AIは「良かれと思って」余計な変更をすることがある。やらないことを明示することで、スコープを制御する。
4. 段階的指示 — 大きなタスクを分割する
# 一度にすべてを頼まない
> まずデータモデルの型定義を作って
(レビュー後)
> 次にCRUD操作のAPIルートを作って
(レビュー後)
> 最後にフロントエンドのフォームを作って
各段階でレビューを挟むことで、方向修正のコストを最小化する。
タスク別プロンプトパターン
バグ修正
> 以下のバグを修正して:
> - 症状: ログイン後にダッシュボードが表示されない
> - 再現手順: メールでログイン → 画面が白いまま
> - 期待動作: /dashboard にリダイレクトされる
> - 関連ファイル: src/app/login/page.tsx, src/contexts/AuthContext.tsx
新機能追加
> 以下の仕様で新機能を追加して:
> - 機能: 記事のブックマーク
> - 保存先: localStorage
> - UI: 各記事にハートアイコン、クリックでトグル
> - 一覧: /bookmarks ページで一覧表示
> - 既存パターン: src/components/article/ の他のコンポーネントを参考に
リファクタリング
> src/lib/content.ts をリファクタリングして:
> - 800行を超えているので分割したい
> - 記事関連 → lib/articles.ts
> - コース関連 → lib/courses.ts
> - 共通ユーティリティ → lib/content-utils.ts
> - 外部からのimportパスも更新して
> - テストが引き続き通ることを確認して
CLAUDE.mdを「永続的プロンプト」として活用する
CLAUDE.mdに書いたルールは、すべての対話で自動的に適用される。
つまり、CLAUDE.mdは「毎回言わなくても適用されるプロンプト」である。
# CLAUDE.md
## Coding Standards
- Always use immutable patterns (never mutate objects)
- Functions must be under 50 lines
- Always validate user input with Zod
- No console.log in production code
これを一度書いておけば、毎回「イミュータブルにして」「Zodでバリデーションして」と言う必要がなくなる。
アンチパターン
曖昧すぎる指示
# NG
> アプリをもっとよくして
> パフォーマンスを改善して
> セキュリティを強化して
「もっとよく」の定義がないと、AIは「もっともらしい」が的外れな改善を行う。
過度に複雑な一括指示
# NG
> ログイン機能と、ダッシュボードと、設定画面と、
> プロフィール編集と、通知機能を全部作って
一度に多くを頼むと、どれも中途半端になる。
「よしなにやって」
# NG
> いい感じにリファクタリングして
「いい感じ」の基準が不明。具体的な改善目標を示す。
この章のポイント
- コーディングプロンプトの4原則: 具体性、文脈提供、制約条件、段階的指示
- 既存のコードパターンを参照させることでプロジェクトの一貫性を保つ
- 「やらないこと」を明示してスコープを制御する
- CLAUDE.mdを永続的プロンプトとして活用し、繰り返しの指示を省略する
- 大きなタスクは分割し、各段階でレビューを挟む