メインコンテンツへスキップ
16 / 26|5分で読めます

プロンプトエンジニアリング — コーディング特化の指示術

Claude Codeに的確な指示を出すためのプロンプト設計。具体性、文脈提供、制約条件の伝え方。コーディングに特化したテクニックを扱う。

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を永続的プロンプトとして活用し、繰り返しの指示を省略する
  • 大きなタスクは分割し、各段階でレビューを挟む