はじめに
どうも、JetBrains公式代理店NATTOSYSTEMのねばねばです。
本記事は、JetBrains公式ブログ「How to Use a Spec-Driven Approach for Coding with AI」の内容をご紹介いたします。
AIコーディングエージェントによって、開発者は強力なアシスタントを手に入れることができましたが、使っていて「AIが出してくるコードが意図とズレている」と感じたことはありませんか?
AI は、明確な構造とガイダンスが与えられた時に最も効果を発揮します。エージェントに漠然とした指示を与えると、予測できない結果につながる可能性があります。
重要なのは「明確な仕様と段階的な指示」です。
JetBrains の AI コーディングエージェント「Junie」チームは、そんな課題を解決するために “Spec-Driven Approach(仕様駆動アプローチ)” を提案しています。
それではみていきましょう!
仕様駆動開発(Spec-Driven Development)とは
AIは指示次第で何でも生成できますが、指示があいまいだと、成果もあいまいになります。
「仕様(spec)」→「計画(plan)」→「タスク(tasks)」→「実行」というステップを明確に定義します。
明確な仕様 (“spec”) をベースに、段階的・構造的にプロセスを設計することで、よりコントロールされた、予測可能な開発ワークフローを実現する方法です。
この方法を取ることで、人間が主導しながらAIのパワーを活かすことができます。
この方法でJunieに生成してもらうもの
-
.junie/guidelines.md – Junie に与える指示書
-
docs/requirements.md – 要件書
-
docs/plan.md – 実装計画書
-
docs/tasks.md – タスクリスト
これらの文書が、AIエージェントとユーザーの「共通言語」として機能します。
①ガイドラインの作成
ガイドラインとは、プロジェクトにおいて Junie があらゆるタスクに取り組む際に 毎回適用される情報です。
- 手動で .junie/guidelines.md ファイルを作成する。または、Junie にプロジェクトを解析させて、生成させることも可能です。
例:
-
テストは必ず特定のフォルダに追加すること、または特定のフレームワークを使用すること。
-
リポジトリ内に既存のガイドラインがある場合、その正しいファイルパスを Junie に伝えると、それを読み取り適用します。
.junie/guidelines.md ファイルにプロジェクトのコーディング標準をまとめることで、毎回プロンプトに同じ指示を記載せずとも、Junie が一貫してそれらを適用できるようになります。
➁ 要求(Requirements)を明確にする
AIエージェントに「要件を明確化」することで、エージェントに対する指針になります。
まずは自身でドラフト docs/requirements-draft.txt を作成します。
- これにはアプリケーションの目的と主要な機能を書きます。
作成した requirements-draft.txt を基に Junie に requirements.md の作成を依頼します。
こうした要求をファイル(例:requirements.md)として残しておけば、AI に取り掛かってもらう前の「共通の出発点」が明確になります。
③ 計画(Plan)の作成
次に、作成されたrequirements.md をもとに Junieに実装計画を plan.md の作成を依頼します。
ここでは「どのように実現するか」「どんな順序で進めるか」を整理します。
またここでJunieの「Think More」モードをオンにし、AIに深く考えさせるのも効果的です。
プロンプト例:
requirements.md の内容を読み取り、詳細な開発計画を作成してください。requirements.md に記載された要件をもとに、それらをどのように実装するかを説明する詳細な開発計画を作成してください。
計画には以下を含めること:
- 目的(ゴール)の簡潔な概要
- それを達成するために必要な主なステップまたはフェーズ
- 留意すべき依存関係、リスク、または考慮事項
- コードの記述や修正はまだ行わないでください。
- この計画を plan.md として保存してください。
④ タスクリスト(Tasks)の作成
次に、作成されたplan.mdをもとに、Junieにtasks.mdを作成してもらいます。
計画を、実際に手を動かすためのタスクに落とし込みます。
ここではチェックリスト形式でタスクリストを作成してくださいと含めることで、進捗を可視化します。
プロンプト例:
plan.md の内容を読み取り、詳細で番号付きのタスクリストを作成する。plan.md に記載された内容をもとに、詳細で列挙されたタスクリストを生成してください。各タスクは以下の条件を満たすこと:
- 明確で実行可能であること。
- 完了した際にチェックを付けて完了済みとできる形式で書かれていること。
- タスクの実行順序は論理的な流れを保ち、関連するタスクをフェーズごとに整理してください。
- 結果は tasks.md に保存し、次のようにチェックボックス付きの番号リスト形式で記述してください(例:- [ ] データリポジトリを実装する)。
- まだタスクの実装は開始しないでください。リストを作成することだけを行ってください。
AIに「このタスクを実行して」と依頼すれば、焦点が明確で、成果物もコントロールしやすくなります。tasks.md ファイルがコントロールパネルになり、進行状況を追える記録になります。

引用元:https://blog.jetbrains.com/junie/2025/10/how-to-use-a-spec-driven-approach-for-coding-with-ai/
➄ 実行と管理(Execution & Review)
タスクリストが完成したら、いよいよ実装段階です。
段階的にタスクリストを実行、段階的に依頼して都度レビューすることが重要です。
AIエージェントは “束縛された作業単位(bounded unit of work)” に集中する方が効果的です。エージェントに作業を段階的に実行させましょう。
-
フェーズに分けて作業する。例:「Phase 1 のタスクだけ完了させて」と依頼する。
-
完了したタスクにチェックを入れ、進捗を可視化、
これにより「何が終わったか」「何が残っているか」がわかります。 -
フェーズ完了後にコードレビューとテストを行う。
-
出力されたコードをレビューして修正点を反映、
必要に応じて新タスクを追加・修正する。
まとめ
仕様駆動開発アプローチの本質は、AIに「考えるための構造」を与えることです。
闇雲に「コードを書いて」と頼むのではなく、仕様→計画→タスク→実行の流れを明文化し、AIをその流れに沿って動かす。
そうすることで、
-
プロジェクトの全体像が常に見える
-
意図通りのコードが生成されやすくなる
-
チーム全体で進捗を共有しやすくなる
といった効果が得られます。
また注意点として、
-
小規模タスクには過剰な場合がある
-
要件定義・分解に一定の手間がかかる
-
タスクの粒度設計が難しい場合がある
-
AI生成コードのレビュー・テストは依然として人間が必要
なので、プロジェクト規模やチーム体制に合わせて柔軟に取り入れましょう。