
コーディングのためのプロンプトエンジニアリング:Claude CodeとCursorで毎日使う7つのパターン(2026年版)
コーディングにおけるプロンプトエンジニアリングは、動作するプルリクエストを納品できるエージェントと、本番環境で静かに何かを壊してしまうエージェントとの分かれ道です。私たちはこれを痛い目を見て学びました。自社パイプライン内の曖昧な指示が一度、誰かが気づく前に54件の重複した公開ページを生み出してしまったのです。現在、16のエージェントからなるClaude Code環境が当社のコンテンツの執筆、翻訳、公開を行っていますが、それを動かすプロンプトはGoogle検索の上位に表示される「50のテンプレートリスト」といった類のものとは全く異なります。以下に、私たちが毎日入力している7つのパターンを、具体的な改善前後の例とともに紹介します。
結論: 優れたコーディング用プロンプトには共通の形状があります。目標と「完了」の定義を明記し、対象となる正確なファイルを指定し、編集の前に計画を強制し、テストを引き渡し、「良さそう」という感想ではなく証拠を求めるのです。これを実行すれば、現代のエージェント(Claude Code、Cursor、GitHub Copilot)は、初回のレビューで承認されるコードを遥かに高い頻度で記述します。これを怠ると、自信満々でそれらしく見えるものの、実際は質の低いコードができあがることになります。
私たちが使用する7つのパターンを、利用順に挙げます。
- タスクの枠組み設定:最初に目標、制約条件、および「完了」の定義を明確にする
- コンテキストの選択:ファイルを特定し、その他を遮断する
- 計画優先:編集させる前に提案させる
- テスト優先:許容テストをプロンプト内に含める
- デバッグ:修正前にエラー、再現手順、期待結果、根本原因を特定する
- リファクタリング:構造を変更し、振る舞いを維持し、差分を示す
- レビュー:照合用のチェックリストと証拠を求める
コーディング用プロンプトエンジニアリング vs 設定ファイル:何をどこに置くか
設定ファイルとタスクごとのプロンプトは異なる役割を果たしており、これらを混同することがこの分野で最も一般的なミスです。CLAUDE.md や .cursor/rules ファイルは、エージェントが毎セッション読み取る恒久的なポリシー(スタック、命名規則、テストコマンドなど)です。一方、プロンプトは今まさに任せる特定のジョブです。持続的なルールは設定ファイルに、タスク自体はプロンプトに記載します。
多くの「コーディングプロンプト」まとめ記事はこの区別を曖昧にし、巨大なペルソナプロンプトを .cursorrules に貼り付けるよう推奨しています。これはエージェントが単一タスクごとに読み込む設定ファイルを肥大化させ、かつ目前の特定のジョブの枠組み設定には依然として失敗します。この2つは明確に分けて管理しましょう。
| 設定ファイル(CLAUDE.md、.cursor/rules) | タスクごとのプロンプト | |
|---|---|---|
| 保持内容 | 恒久的なルール:スタック、スタイル、テストコマンド、ガードレール | 特定のタスク:今すぐ構築または修正すべき内容 |
| 読み込み | 自動的、毎セッション | 入力時、1回のみ |
| 変更頻度 | まれ(コードと同様にレビューされる) | タスクごと |
| 例 | 「完了と主張する前に pnpm test を実行すること」 | 「$1,000を超える注文に対し、cart.ts の税額丸め処理を修正する」 |
設定側を適切に行いたい場合は、CLAUDE.md ベストプラクティス および Cursor ルールガイド で詳しく解説しています。本記事はもう半分、つまり毎回新しく入力するプロンプトに関するものです。基礎から学びたい方は、より広範な プロンプトエンジニアリングガイド も参照してください。
コーディング用プロンプトエンジニアリング:私たちが毎日使う7つのパターン
以下の各パターンには、人々が実際に入力しがちな「弱いバージョン」と、動作するコードを生み出す「強いバージョン」があります。弱から強へのギャップは、ほぼ常に同じ動きによって埋められます。「願い」を「仕様」に置き換えることです。
1. タスクの枠組み設定:目標、制約条件、および「完了」を明記する
タスクの枠組み設定とは、エージェントが行に触れる前に、目標、制約条件、および「完了」の状態を記述することを意味します。エージェントは文字通り求められたことに対して最適化を行うため、曖昧なリクエストは曖昧なパッチを生み出します。ファイル名、望む振る舞い、受け入れチェック、そして変更してはいけない事項を特定してください。
これが私たちに54ページの損失をもたらしたパターンです。以前の翻訳指示は基本的に「願い」でした。
Weak: Re-translate this post into German and keep the brand names.そこにはスラッグに対して何が許されるかが何も記載されていませんでした。そのため再実行時、エージェントはURLスラッグを「改善」し、新しいスラッグは新しいドキュメントを意味するため、同じ投稿に対して2つのドイツ語ページが公開されてしまいました。これを言語数や過去の投稿全体に掛け合わせると、54件の重複と大量の重複コンテンツ除外措置が発生することになります。解決策は、より丁寧な願いではなく、仕様でした。
Strong: Re-translate this post into German.
- If a German file already exists, copy its existing slug verbatim. Never
re-derive or "improve" it.
- Before creating any document, look up the existing one by its canonical
reference and reuse that record.
- If the slug you would generate differs from the live one, STOP and tell me.
A changed slug creates a second live URL for the same page.強いプロンプトは失敗モードを明示的に名前付けします。何が起きてはいけないのか、そしてその理由を述べるというこの習慣一つが、ほとんどのチームが行える最も価値のある変更です。また、私たちはすべてのタスクプロンプトの末尾に明示的な出力契約(「最終メッセージでは単語数、検証スコア、および影響を受けたファイルを報告すること」など)を追加し、エージェントが「何をすべきか」だけでなく、「完了」が何を生成するのかを理解できるようにしています。
2. コンテキストの選択:ファイルを特定し、その他を遮断する
コンテキストの選択とは、エージェントが周辺をgrepしてウィンドウをノイズで埋め尽くすのではなく、読むべきファイルと放置すべきファイルを正確に指示することを意味します。Anthropic自身のガイダンスも、その理由について率直です。コンテキストウィンドウは急速に埋まり、満たされるにつれて品質が低下するため、ベストプラクティスの大半はこれを保護するために存在します(Claude Code ベストプラクティス)。
Weak: Fix the bug in the checkout flow.
Strong: Read only src/checkout/cart.ts and src/checkout/tax.ts. The tax
rounding is wrong for orders over $1,000 (it rounds each line item instead
of the order total). Fix the rounding. Do not touch anything outside
src/checkout/.私たちは厳格に境界を設定します。実際のエージェントプロンプトには「url-mapping.json、pipeline.md、または config.json に書き込まないこと、またスクラッチパッドディレクトリ外のファイルには決して触れないこと」といった行が含まれています。この一文は、事後のあらゆるクリーンアップ作業よりも多くの偶発的な損害を防いできました。タスクが実際にライブドキュメントや追加ツールを必要とする場合、エージェントが正しいファイルに偶然行き当たることを期待するのではなく、MCPサーバー を介して意図的に追加します。また、そのコンテキストのいずれかがリポジトリ外部から来る場合は、信頼できないものとして扱ってください。スクレイピングしたページをコーディングエージェントに貼り付ける前に、プロンプトインジェクション防止 に関する注意点を参照してください。
3. 計画優先:編集させる前に提案させる
計画優先プロンプトティングは、エージェントに何も編集する前にアプローチ手法を提示させます。Claude Codeでは、プランモードはモデルが迂回できる丁寧な「まず考えよう」ではなく、硬直的で強制された読み取り専用状態であり、計画を承認するまで literally 書き込みを行うことができません。調査・計画と実行を分離することは、Anthropicが間違った問題を解決することを避けるために最も依存している単一のプラクティスです。
Weak: Add rate limiting to the API.
Strong: Before writing any code, give me a numbered plan: which middleware,
where the counters live, how you handle the 429 response and headers, and
which tests you'll add. Wait for my approval before editing.なぜこれが機能するか:計画は読むのも修正するのも安価です。間違った計画を修正するには1文で済みますが、間違ったコードを修正するにはレビューサイクル全体が必要です。これは、モデルにまず段階的に推論させること(連鎖思考プロンプト を参照)と自然に組み合わせることができ、些細でないタスクのために実行するマルチステップの Claude Code ワークフロー の背骨となっています。
4. テスト優先:許容テストをプロンプト内に含める
テスト優先プロンプトティングは、許容基準を具体的な入力と出力としてプロンプト内に配置し、エージェントが推測したターゲットではなく、あなたが定義したターゲットに対してコードを記述するようにします。失敗しているテスト、または期待される結果の小規模な表を貼り付け、「テストを編集せずにこれをパスさせろ」と指示します。
Weak: Write a function to parse ISO 8601 dates.
Strong: Make this failing test pass without changing the test:
parseIso("2026-07-20T15:00:00Z") -> Date at that exact UTC instant
parseIso("2026-07-20") -> Date at 2026-07-20T00:00:00Z
parseIso("not-a-date") -> throws RangeError
parseIso("") -> throws RangeError
Return only the function and its imports.具体例は形容詞に常に勝ります。「エッジケースを処理する」は希望ですが、4行の入力対出力の表は、モデルが実際に満たすことができる仕様であり、コードが着地した瞬間に実行できます。
5. デバッグ:修正前にエラー、再現手順、期待結果、根本原因を特定する
デバッグプロンプトは、エージェントにエラーテキスト、それを引き起こす入力、および期待していた結果を与え、修正の前に原因を問います。これを省略すると、エージェントは症状に対処するだけであり、バグは単により静かな場所へ移動するだけです。
Weak: This is throwing an error, fix it.
Strong: This throws on checkout. Here's the stack trace: [paste]. It happens
only when the cart has a discount code AND a gift card (repro: add both, then
check out). Expected: both apply, gift card last. Find the root cause and
explain it in one sentence before you change anything. Do not wrap it in a
try/catch that hides the error.「まず1文で原因を説明せよ」という行は実務的に機能しています。これはモデルに、ロジックが見えない修正を出荷するのではなく、あなたが健全性チェックできる診断を下すことを強制します。「try/catch で隠すな」という行は、最も一般的な逃げ道を封じます。
6. リファクタリング:構造を変更し、振る舞いを維持し、差分を示す
リファクタリングプロンプトは範囲を厳しく制限します。構造を変更し、振る舞いは同一に保ち、差分を示すのです。境界線がないと、エージェントは依頼していない箇所まで「整理」してしまい、重要な変更をレビューする能力を失います。
Weak: Clean up this file.
Strong: Extract the validation logic from submitOrder() into a pure function
validateOrder(). Keep every public signature and all behavior identical.
Change nothing else in this file. Show me a before/after diff and one line
on why each change is behavior-preserving.これは前述の設定対プロンプトの分割の裏返しです。恒久的なスタイルルールは Cursor ルール に置きますが、この リファクタリングの範囲はプロンプトに属します。「他は何も変更しない」というフレーズが、リファクタリングをレビュー可能に保ちます。
7. レビュー:照合用のチェックリストと証拠を求める
レビュープロンプトは、エージェントに照合用のチェックリストを手渡し、判決ではなく証拠を要求します。「良さそう」は無価値ですが、実行したコマンドとその出力は無価値ではありません。Anthropicはこれを明確に述べています。成功を主張するのではなく、エージェントに証拠(テスト出力、コマンドとその結果)を示させるべきです。なぜなら、証拠を読む方が自分で再検証するよりも速いからです。
Weak: Review my PR.
Strong: Check this diff against exactly these five items:
1. No secrets or API keys added
2. Every new function has a test
3. No behavior change outside src/checkout/
4. Error paths return typed errors, not strings
5. No console.log left behind
For each item, quote the line that satisfies or violates it. Then run the
test suite and paste the output. Do not say "done"; show me.私たち自身のレビューゲートもまさにこのように構築されています。エージェントが投稿を公開済みとして報告することを許可される前に、禁止ワードリストに対してドラフトをgrepし(ハードブロッカー、零許容)、ドキュメント本文が空でないことを確認するためのクエリを実行します。エージェントは成功を主張することは許されず、チェック出力を生成しなければなりません。再利用頻度の高いレビュアーロールについては、チェックリストを保存されたペルソナへと昇格させます。ここで システムプロンプト例 が役立ちます。
Claude Code vs Cursor vs Copilot:各パターンが存在する場所
2026年の主要な3つのエージェントすべてが上記のすべてのパターンをサポートしていますが、表面(インターフェース)は異なります。Claude Code はプランモードとサブエージェントに、Cursor はエージェントモードとそのAgentsウィンドウに、GitHub Copilot はエージェントモードと指示ファイルに依存しています。チームが日常的に使用しているツールを選択してください。パターンは cleanly ポータブルです。
| パターン | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|
| 恒久的なルール | CLAUDE.md | .cursor/rules | .github/copilot-instructions.md、AGENTS.md |
| 計画優先 | プランモード(強制読み取り専用) | エージェントモード内の計画ステップ | 適用前の計画プレビュー |
| スコープ限定/並列作業 | サブエージェント、それぞれ独自のコンテキスト | Agentsウィンドウ、エージェントごとのワークツリー | クラウドエージェントタスク |
| パス限定ルール | ディレクトリごとのネストされた CLAUDE.md | ルールグロブ | applyTo フィールド付きの .instructions.md |
知っておくべきいくつかの最新の詳細があります。Claude Code のプランモードは genuine な読み取り専用ロックであり、そのサブエージェントはそれぞれ独自のツールを持つ孤立したコンテキストで実行されます(サブエージェントドキュメント)。Cursor の2026年ラインは、それぞれのgitワークツリー内で並列エージェントを起動するAgentsウィンドウを追加しました(Cursor 2.0)。GitHub Copilot のエージェントモードは、.github/copilot-instructions.md からカスタム指示を読み取り、さらに applyTo フィールドを持つパス限定の .instructions.md ファイルを使用します(Copilot カスタム指示)。Cursor を日常_driver_ としている場合は、Cursor をより効率的に使用する に関する投稿を参照してください。
Techsy におけるコーディングエージェントのプロンプト方法
私たちは、研究者、ブリーフ作成者、コンテンツライター、9名の翻訳者、バリデータ、およびパブリッシャーからなる16の Claude Code エージェントチームとしてコンテンツパイプラインを運用しており、タスクメッセージを通じて調整を行っています。そのシステムからの2つの慣習は、あらゆるコーディングチームにも適用可能です。
第一に、すべてのタスクプロンプトは出力契約で終わります。最後の行は常に「最終メッセージでは X、Y、および Z を報告すること」といった形式です。「完了」の正確な形状を知っているエージェントは、開始方法のみを指示されたエージェントよりも遥かに迷走しません。
第二に、エージェントに散文形式で自分の宿題を採点させることは決してありません。生成と検証は別々のステップであり、検証は意見ではなく出力を伴うコマンドです。この構築とチェックの分離は、Anthropic が 信頼性の高いエージェントの構築 をどのように枠組みしているかの核心であり、これが私たちのレビューゲートが「良さそう」を信頼せず、grep とクエリを実行する理由です。
これもまた日常業務です。Techsy では B2B チーム向けに AI エージェントと自動化を構築しており、このようなプロンプトの規律こそが、デモとクライアントの前に出せるものとの大部分を隔てる要素です。コーディングまたはエージェントワークフローを適切にセットアップしたい場合、私たちの AI 統合サービス がまさにそれを行う場所であり、スタックについて話し合うために 無料相談を予約 することができます。
適応可能なコピー&ペースト用プロンプトテンプレート
以下は、些細でないコーディングタスクのために私たちが出発点とする骨格です。不要なセクションは削除しても構いませんが、7つのパターンを反映しているため、順序は維持してください。
GOAL
One sentence: what should be true when you're done.
CONTEXT
Read only: <exact files>. Ignore everything else.
Relevant facts: <constraints, versions, the bug's trigger>.
PLAN FIRST
Before editing, give me a numbered plan and wait for approval.
TESTS / DONE
Done means: <paste failing test or input->output rows>.
Don't change the tests.
CONSTRAINTS
Keep all public signatures and behavior identical unless stated.
Do not touch <files/areas>. Name any assumption you make.
OUTPUT
Show a before/after diff, run the tests, and paste the output.
Don't say "done"; show the evidence.スニペットとして保存するか、さらに良くするには分割してください。恒久的な制約は設定ファイルに入れ、目標、コンテキスト、およびテストはプロンプトに入れます。この分割こそが要点です。
著者について
Mert Batur Gurbuz は Techsy.io の共同創設者であり、同社チームは B2B クライアント向けに AI エージェント、自動化システム、および音声/SDR パイプラインを提供しています。彼はバーミンガム大学で学んでおり、Techsy チームが実際に本番環境で使用している LLM ツーリングスタックについて執筆しています。
資格:共同創設者、Techsy.io、バーミンガム大学。LinkedIn でつながる。
よくある質問
コーディングのためのプロンプトエンジニアリングとは何ですか?
コーディングのためのプロンプトエンジニアリングは、AI エージェントに正しく、レビュー可能なコードを作成させるための指示を記述する実践です。実際には、目標と「完了」の定義を明記し、スコープ内のファイルを特定し、編集の前に計画を強制し、テストを提供し、証拠を求めることを意味します。これは賢い文章を書くことよりも、仕様書を書くことに近いです。
CLAUDE.md や .cursor/rules ファイルの作成とどう違うのですか?
設定ファイルは、エージェントが毎セッション読み取る恒久的なポリシー(スタック、規約、テストコマンド)を保持します。タスクごとのプロンプトは、今まさに任せる特定のジョブです。持続的なルールは設定ファイルに、タスクはプロンプトに入れてください。タスクプロンプト全体を設定ファイルに貼り付けると、すべてのセッションが肥大化し、それでも個別のタスクの枠組み設定には失敗します。
AI コーディングエージェントにとって最適なプロンプト構造は何ですか?
1つの段落ではなく、ラベル付きのセクションを使用してください。GOAL(目標)、CONTEXT(コンテキスト)、PLAN(計画)、TESTS(テスト)、CONSTRAINTS(制約)、OUTPUT(出力)などです。エージェントはテキストの壁よりも構造化されたプロンプトをより確実に解析します。成功基準を最初に明記し、形容詞ではなく1〜3の具体例を与え、返してほしい正確な出力形式を指定してください。
良いデバッグプロンプトはどう書けばよいですか?
エージェントに4つのものを与えてください。正確なエラーまたはスタックトレース、それを再現する入力、期待していた結果、そして修正前の根本原因の要求です。「何かを変更する前に1文で原因を説明せよ」を追加して診断をチェックできるようにし、「try/catch で隠すな」を追加してバグをマスクするのではなく修正させるようにしてください。
コーディングプロンプトにテストを含めるべきですか?
はい、可能な場合は常に含めてください。失敗しているテスト、または入力対出力の行の小規模な表を貼り付けることで、曖昧なリクエストをモデルが実際に命中させることができるターゲットに変換し、結果を即座に実行できます。エージェントにテストを編集せずにパスさせるよう指示し、自身のコードを正しく見せるためにゴールポストを動かすことを防ぎます。
これらのプロンプトは Cursor や GitHub Copilot でも機能しますか?
はい。これらのパターンはツールに依存しません。Claude Code はプランモードとサブエージェントを通じて、Cursor はエージェントモードとエージェントごとのワークツリーを持つ Agents ウィンドウを通じて、GitHub Copilot はエージェントモードと .github/copilot-instructions.md を通じてこれらを公開します。表面は変わりますが、タスクの枠組み設定、コンテキストの選択、計画優先、および証拠に基づくレビューは変わりません。
コーディングプロンプトはどのくらいの長さにすべきですか?
仕様書たり得るほど長く、焦点を保てるほど短く。コンテキストが埋まるにつれて推論品質は低下するため、量よりも構造を重視してください。適切なファイルとテストを含む、ラベル付きの150〜300語のプロンプトは、冗長なプロンプトに勝ります。すべてのタスクに適用される事項は、繰り返す代わりに設定ファイルに移してください。
依頼していないコードを AI エージェントに変更させないようにするには?
プロンプト内でスコープを境界設定してください。編集してもよいファイルを正確に示し、「他は何も変更しない」を追加し、「特に指示がない限り、すべての公開シグネチャと振る舞いを同一に保つ」ことを要求してください。リファクタリングの場合、なぜ各変更が振る舞いを保存するのかを1行で説明した前後の差分を要求し、依頼されていない編集がレビューで明らかになるようにします。
コピー&ペースト用のプロンプトライブラリは価値がありますか?
出発点としては、時にはあります。完成したツールとしては、ほとんどありません。50のプロンプトライブラリは言い回しを与えますが、あなたのファイル、テスト、または制約を知ることはできず、这正是しさが実際に存在する場所です。パターンを学び、適応可能なテンプレートを1つ保持し、目前のタスクの具体事項を埋めてください。