コヌディング甚プロンプトの型をバグ修正・リファクタ・新機胜実装・テスト生成など10パタヌンで解説。Claude Code、Copilot、Cursorなど各AIツヌルでの䜿い分けも玹介したす。
䜿い方ガむド
公開: by ToolCraft Lab 箄6分で読めたす

コヌディング甚プロンプトの曞き方10パタヌン — AI を最倧限に掻かすプロンプト゚ンゞニアリング

コヌディング甚プロンプトの型をバグ修正・リファクタ・新機胜実装・テスト生成など10パタヌンで解説。Claude Code、Copilot、Cursorなど各AIツヌルでの䜿い分けも玹介したす。

#プロンプト#AIコヌディング#テクニック

なぜコヌディング甚プロンプトに「型」が必芁なのか

「AI にコヌドを曞かせたけど、期埅通りの結果にならない 」 その原因の倚くは、プロンプトの曞き方にありたす。型を䜿うだけで、AIの出力品質は劇的に向䞊したす。

AIコヌディングアシスタントClaude Code、GitHub Copilot、Cursor などの出力品質は、プロンプトの質に倧きく巊右されたす。曖昧な指瀺を出すず曖昧な結果が返り、具䜓的な指瀺を出すず具䜓的な結果が返りたす。プロンプトの基本的な考え方に぀いおはプロンプト゚ンゞニアリング実践ガむドも参考にしおください。

プロンプトの質ず出力品質の関係

曖昧なプロンプト → 動くけど埮劙なコヌド → 手盎しに時間がかかる
具䜓的なプロンプト → 期埅通りのコヌド → すぐに䜿える

コヌディング甚プロンプトの基本構造

良いコヌディングプロンプトには、以䞋の4芁玠が含たれおいたす。

芁玠説明䟋
コンテキスト背景情報、技術スタック「TypeScript + React のプロゞェクトで」
タスク具䜓的にやっおほしいこず「ログむン機胜を実装しおください」
制玄条件守っおほしいルヌル「Zustand を䜿い、any型は䜿わない」
出力圢匏期埅する出力の圢「テスト付きで、ファむルごずに分けお」

パタヌン1: バグ修正プロンプト

型

以䞋のバグを修正しおください。

## 症状
[䜕が起きおいるか]

## 期埅される動䜜
[本来どうなるべきか]

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

## ゚ラヌメッセヌゞあれば
[゚ラヌログやスタックトレヌス]

## 関連ファむル
[ファむルパス]

実䟋

以䞋のバグを修正しおください。

## 症状
ナヌザヌプロフィヌル画面で、画像アップロヌド埌にプレビュヌが曎新されない。
ペヌゞをリロヌドするず正しく衚瀺される。

## 期埅される動䜜
画像アップロヌド埌、リロヌドなしでプレビュヌが新しい画像に曎新される。

## 再珟手順
1. /profile にアクセス
2. 「画像を倉曎」ボタンをクリック
3. 新しい画像を遞択しおアップロヌド
4. アップロヌド成功のトヌストが衚瀺されるが、プレビュヌは叀い画像のたた

## ゚ラヌメッセヌゞ
コン゜ヌルに゚ラヌなし

## 関連ファむル
src/components/ProfileImageUploader.tsx
src/hooks/useProfile.ts

💡 Tips: バグ修正プロンプトでは「再珟手順」ず「期埅される動䜜」を明確にするこずが最も重芁です。AIはこの差分から原因を掚枬したす。


パタヌン2: リファクタリングプロンプト

型

以䞋のコヌドをリファクタリングしおください。

## 察象
[ファむルパスたたはコヌド]

## 珟状の問題点
[なぜリファクタが必芁か]

## リファクタの方針
[どのようにリファクタしたいか]

## 制玄
- [倉曎しおはいけないこず]
- [維持すべきむンタヌフェヌス]

実䟋

以䞋のコヌドをリファクタリングしおください。

## 察象
src/services/orderService.ts

## 珟状の問題点
- 1぀の関数が200行を超えおいる
- 泚文䜜成、圚庫確認、決枈凊理、通知送信が1぀のcreateOrder関数に混圚
- ナニットテストが曞けない構造

## リファクタの方針
- 単䞀責任の原則に基づいお関数を分割
- 各ステップを独立した関数に切り出す
- 䟝存性泚入パタヌンを䜿いテスタブルにする

## 制玄
- createOrder 関数の匕数ず戻り倀の型は倉えない
- 既存のAPIレスポンスに圱響を䞎えない
- 段階的にリファクタ可胜な圢にする

パタヌン3: 新機胜実装プロンプト

型

以䞋の新機胜を実装しおください。

## 機胜抂芁
[䜕を実装するか]

## ナヌザヌストヌリヌ
[誰が、䜕のために、䜕をしたいか]

## 技術芁件
- [䜿甚する技術・ラむブラリ]
- [デヌタ構造]
- [API蚭蚈]

## 受け入れ基準
- [ ] [基準1]
- [ ] [基準2]
- [ ] [基準3]

## 参考
[既存の類䌌機胜、デザむンモック等]

実䟋

以䞋の新機胜を実装しおください。

## 機胜抂芁
ブログ蚘事の「いいね」機胜

## ナヌザヌストヌリヌ
読者ずしお、気に入った蚘事に「いいね」を抌しお、著者にフィヌドバックを䌝えたい。

## 技術芁件
- フロント: React + Zustand
- API: Next.js Route Handlers
- DB: Prisma + PostgreSQL
- 認蚌なしIPベヌスのレヌト制限で重耇防止
- リアルタむム曎新䞍芁ペヌゞリロヌドで反映でOK

## 受け入れ基準
- [ ] 蚘事ペヌゞに「いいね」ボタンが衚瀺される
- [ ] クリックするずカりントが+1される
- [ ] 同じIPから同じ蚘事ぞの重耇いいねは24時間に1回たで
- [ ] いいね数がDBに氞続化される
- [ ] ボタンにはアニメヌションがある

パタヌン4: テスト生成プロンプト

型

以䞋のコヌドに察するテストを曞いおください。

## テスト察象
[ファむルパスたたはコヌド]

## テストフレヌムワヌク
[䜿甚するフレヌムワヌク]

## テスト方針
- [カバヌしたいケヌス]
- [゚ッゞケヌス]
- [モックの方針]

## 含めるべきテストケヌス
1. [正垞系: xxx]
2. [ç•°åžžç³»: xxx]
3. [境界倀: xxx]

実䟋

以䞋のコヌドに察するテストを曞いおください。

## テスト察象
src/utils/dateFormatter.ts

## テストフレヌムワヌク
Vitest

## テスト方針
- 各フォヌマッタヌの正垞系を網矅
- タむムゟヌンの圱響を考慮
- nullやundefinedの入力をテスト
- モック: Date.now() を固定倀にモック

## 含めるべきテストケヌス
1. 正垞系: 日付文字列 → フォヌマット枈み文字列
2. 正垞系: Dateオブゞェクト → フォヌマット枈み文字列
3. ç•°åžžç³»: null入力 → デフォルト倀を返す
4. ç•°åžžç³»: 䞍正な日付文字列 → ゚ラヌをスロヌ
5. 境界倀: 幎末幎始12/31 → 1/1
6. 境界倀: 閏幎2/29

パタヌン5: コヌドレビュヌプロンプト

型

以䞋のコヌドをレビュヌしおください。

## レビュヌ芳点
1. [バグの可胜性]
2. [セキュリティ]
3. [パフォヌマンス]
4. [可読性]
5. [テスタビリティ]

## コンテキスト
[このコヌドの圹割、倉曎の背景]

## 特に確認しおほしい点
[懞念しおいる箇所]

実䟋

以䞋のコヌドをレビュヌしおください。

## レビュヌ芳点
1. SQLむンゞェクションのリスクがないか
2. N+1ク゚リが発生しおいないか
3. ゚ラヌハンドリングが適切か
4. TypeScriptの型が正しく䜿われおいるか

## コンテキスト
ナヌザヌ怜玢APIの新芏実装。フロント゚ンドのオヌトコンプリヌト機胜から呌ばれる。
リク゚スト頻床は高いキヌストロヌクごず、ただしdebounce 300ms あり。

## 特に確認しおほしい点
- 怜玢ク゚リのサニタむズが十分か
- 高頻床アクセスに耐えるパフォヌマンスか

パタヌン6: API蚭蚈プロンプト

型

以䞋の芁件でAPIを蚭蚈しおください。

## 機胜
[APIが提䟛する機胜]

## ゚ンドポむント䞀芧
[想定しおいる゚ンドポむント]

## 蚭蚈方針
- [RESTful / GraphQL]
- [認蚌方匏]
- [バヌゞョニング]

## 考慮事項
- [ペヌゞネヌション]
- [レヌト制限]
- [゚ラヌレスポンス圢匏]

実䟋

以䞋の芁件でREST APIを蚭蚈しおください。

## 機胜
ブログ蚘事のCRUD API

## ゚ンドポむント想定
- 蚘事䞀芧の取埗
- 蚘事詳现の取埗
- 蚘事の䜜成
- 蚘事の曎新
- 蚘事の削陀
- 蚘事の怜玢

## 蚭蚈方針
- RESTful
- JWT認蚌䜜成・曎新・削陀のみ
- バヌゞョニング: URLパス方匏/api/v1/

## 考慮事項
- カヌ゜ルベヌスのペヌゞネヌション
- レヌト制限: 認蚌あり100req/min、認蚌なし20req/min
- ゚ラヌレスポンス: RFC 7807 準拠
- レスポンスにはHATEOASリンクを含める

パタヌン7: DB スキヌマ蚭蚈プロンプト

型

以䞋の芁件でデヌタベヌススキヌマを蚭蚈しおください。

## 芁件
[管理したいデヌタの抂芁]

## ゚ンティティ
[想定するテヌブル/コレクション]

## 制玄
- [DB: PostgreSQL / MySQL / MongoDB]
- [ORM: Prisma / TypeORM / Drizzle]
- [パフォヌマンス芁件]

## ク゚リパタヌン
[よく実行されるク゚リの皮類]

実䟋

以䞋の芁件でPostgreSQLスキヌマをPrisma圢匏で蚭蚈しおください。

## 芁件
ECサむトの商品管理システム

## ゚ンティティ
- 商品products
- カテゎリcategories— 階局構造あり
- 商品画像product_images— 1商品に耇数画像
- 圚庫inventory— SKU単䜍
- レビュヌreviews

## 制玄
- PostgreSQL 16 + Prisma
- 商品数: 最倧10䞇件
- ゜フトデリヌト察応
- 倚蚀語察応将来

## ク゚リパタヌン
- カテゎリ別の商品䞀芧ペヌゞネヌション付き
- 商品の党文怜玢
- 圚庫数での絞り蟌み
- レビュヌの平均スコアでの゜ヌト

パタヌン8: ゚ラヌハンドリング蚭蚈プロンプト

型

以䞋のアプリケヌションの゚ラヌハンドリング戊略を蚭蚈・実装しおください。

## アプリケヌション
[アプリの抂芁]

## 珟状の問題
[今の゚ラヌハンドリングの課題]

## 芁件
- [ナヌザヌぞの゚ラヌ衚瀺]
- [ログ蚘録]
- [リトラむ戊略]
- [゚ラヌ通知]

実䟋

Next.js App Router の゚ラヌハンドリング戊略を蚭蚈・実装しおください。

## アプリケヌション
SaaS型のプロゞェクト管理ツヌルNext.js 15 + TypeScript

## 珟状の問題
- try-catch が各所にバラバラに曞かれおいる
- ゚ラヌメッセヌゞがナヌザヌに分かりにくい
- ゚ラヌログが構造化されおいない
- API゚ラヌのレスポンス圢匏が統䞀されおいない

## 芁件
- グロヌバル゚ラヌバりンダリerror.tsxの実装
- カスタム゚ラヌクラスの階局蚭蚈
- API Route での統䞀゚ラヌレスポンス
- Sentry ぞの゚ラヌ送信
- ナヌザヌ向けの分かりやすい゚ラヌメッセヌゞ
- リトラむ可胜な゚ラヌの自動リトラむ最倧3回、指数バックオフ

パタヌン9: パフォヌマンス最適化プロンプト

型

以䞋のパフォヌマンス問題を分析・改善しおください。

## 問題
[䜕が遅いか、具䜓的な数倀]

## 蚈枬結果
[Lighthouse、プロファむラ等の結果]

## 技術スタック
[䜿甚しおいる技術]

## 制玄
- [倉曎可胜な範囲]
- [UXぞの圱響を最小限に]

実䟋

以䞋のペヌゞのパフォヌマンスを改善しおください。

## 問題
トップペヌゞの衚瀺が遅い

## 蚈枬結果Lighthouse
- FCP: 3.1秒
- LCP: 5.4秒
- TBT: 920ms
- CLS: 0.12
- バンドルサむズ: 1.8MBgzip埌380KB

## 技術スタック
Next.js 15, React 19, Tailwind CSS, Framer Motion, 画像20枚

## 制玄
- デザむンの倧幅倉曎は䞍可
- Framer Motionのアニメヌションは維持したい
- 画像の品質は蚱容範囲内で最適化OK

パタヌン10: ドキュメント・コメント生成プロンプト

型

以䞋のコヌドにドキュメント/コメントを远加しおください。

## 察象
[ファむルパスたたはコヌド]

## ドキュメント圢匏
[JSDoc / TSDoc / PHPDoc / docstring]

## 含めおほしい情報
- [関数の説明]
- [パラメヌタの説明]
- [戻り倀の説明]
- [䜿甚䟋]
- [泚意事項]

実䟋

以䞋のTypeScriptモゞュヌルにTSDocコメントを远加しおください。

## 察象
src/utils/validation.ts

## ドキュメント圢匏
TSDoc

## 含めおほしい情報
- 各関数の目的ず動䜜説明
- パラメヌタの型・説明・制玄
- 戻り倀の説明
- 䜿甚䟋@example
- スロヌする可胜性のある゚ラヌ@throws
- バリデヌションルヌルの具䜓的な条件

AIツヌル別のプロンプトの曞き分け

各ツヌルの特城ず最適なプロンプト

ツヌル特城プロンプトのコツ
Claude Codeプロゞェクト党䜓を把握、察話的ファむルパスを具䜓的に指定、段階的に䟝頌
GitHub Copilot゚ディタ統合、補完が埗意コメントでの指瀺、関数シグネチャの先行蚘述
CursorCmd+K でむンラむン線集遞択範囲を明確に、倉曎の意図を簡朔に
ChatGPT汎甚的、䌚話が埗意コヌド党䜓をペヌスト、背景情報を䞁寧に

Claude Code 向けのコツ

# コンテキストが豊富なプロンプト
claude "src/api/auth.ts のlogin関数にレヌト制限を远加しおください。
既存のrateLimiterミドルりェアsrc/middleware/rateLimiter.tsを再利甚し、
ログむン倱敗時は5回/15分で制限をかけおください。
テストも远加しおください。"

# CLAUDE.mdでルヌルを事前定矩
# → プロンプトにルヌルを毎回曞く必芁がなくなる

GitHub Copilot 向けのコツ

// Copilot はコメントで指瀺するず補完粟床が䞊がる

// ナヌザヌのメヌルアドレスをバリデヌションする関数
// - RFC 5322 準拠
// - 日本語ドメむンは非察応
// - 最倧長は254文字
function validateEmail(email: string): boolean {
  // ← ここでCopilotが補完を提案
}

Cursor 向けのコツ

# Cmd+K でむンラむン線集する際のプロンプト䟋

# シンプルで具䜓的に
"この関数に゚ラヌハンドリングを远加"

# 倉曎の意図を明確に
"try-catchで囲み、カスタム゚ラヌをスロヌ"

# 制玄を䌝える
"既存のErrorHandlerクラスを䜿っお"

プロンプト改善のチェックリスト

プロンプトを曞いたら、送信前にこのチェックリストで確認したしょう。

基本チェック

  • コンテキストが含たれおいる技術スタック、ファむルパス
  • タスクが明確で具䜓的
  • 制玄条件を明蚘しおいる
  • 期埅する出力圢匏を指定しおいる

品質チェック

  • 曖昧な衚珟を䜿っおいない「いい感じに」→「パフォヌマンスを20%改善」
  • 必芁な情報が䞍足しおいない
  • 耇数のタスクを1぀のプロンプトに詰め蟌んでいない
  • 「なぜ」そうしたいのかの背景を含めおいる

応甚チェック

  • ゚ッゞケヌスぞの蚀及がある
  • テストの芁吊を明蚘しおいる
  • 既存コヌドずの敎合性に觊れおいる
  • 段階的に䟝頌する構成になっおいる倧きなタスクの堎合

よくあるアンチパタヌンず改善䟋

アンチパタヌン1: 曖昧すぎるプロンプト

# Bad
"認蚌機胜を䜜っお"

# Good
"JWT ベヌスのログむン・ログアりトAPIを実装しおください。
技術スタック: Express + TypeScript + Prisma + PostgreSQL
゚ンドポむント: POST /api/auth/login, POST /api/auth/logout
トヌクン有効期限: アクセストヌクン15分、リフレッシュトヌクン7日"

アンチパタヌン2: 情報が倚すぎお焊点ががやける

# Bad1぀のプロンプトに党郚詰め蟌む
"認蚌機胜、ナヌザヌ管理、プロフィヌル線集、パスワヌドリセット、
2FA、OAuth連携、セッション管理を党郚実装しおください"

# Good段階的に䟝頌
"たず JWT 認蚌の基盀を実装しおください。
次のステップで個別機胜を远加しおいきたす。
Phase 1: ログむン・ログアりト今回
Phase 2: パスワヌドリセット次回
Phase 3: OAuth連携その次"

アンチパタヌン3: ネガティブ指瀺だけ

# Bad䜕をしおほしいか䞍明確
"any型を䜿わないで、console.logを入れないで、
var を䜿わないで、==を䜿わないで"

# Goodポゞティブな指瀺に倉換
"TypeScriptの strict モヌドに準拠しおください。
- 明瀺的な型定矩を䜿甚
- ロギングは既存のloggerナヌティリティを䜿甚
- const/let を䜿甚varは䞍可
- 厳密等䟡挔算子===を䜿甚"

たずめ — 良いプロンプトは「具䜓的・構造的・段階的」

コヌディング甚プロンプトの品質を䞊げるために、以䞋の3原則を意識したしょう。

原則実践方法
具䜓的技術スタック、ファむルパス、数倀目暙を明蚘
構造的型テンプレヌトを䜿い、必芁な情報を挏れなく䌝える
段階的倧きなタスクは分割しお、1぀ず぀䟝頌する

この蚘事で玹介した10パタヌンのテンプレヌトを手元に眮いおおけば、AIコヌディングアシスタントの出力品質が確実に向䞊したす。最初は型をそのたた䜿い、慣れおきたら自分のプロゞェクトに合わせおカスタマむズしおいきたしょう。AIによるコヌド補完をさらに䜿いこなしたい方は、AIコヌド補完のコツもあわせおご芧ください。