2時間 Vibe Learning
SPEC駆動開発を、2時間で「使える」ところまで
AIエージェントに「いい感じに作って」と頼むのをやめて、仕様(SPEC)を一次成果物にする開発の型を身につけます。読むだけで終わらせず、最後にあなた自身の機能1つ分の spec.md / plan.md / tasks.md を書き上げて持ち帰ります。
この教材の使い方
- 左上の「開始」を押してタイマーを回す。各セクションに目安時間があります。
- チェックボックスを埋めながら進む。進捗バーが動きます。
- 演習の入力欄は必ず自分の言葉で埋める。空欄のままだと最後の成果物が作れません。
- 最後に「Spec Packをダウンロード」を押して、書いたものをMarkdownで持ち帰る。
※ 入力内容はブラウザに保存されません。途中で閉じる前に必ずダウンロードしてください。
2時間のタイムテーブル
| 時刻 | 分 | やること | 種類 |
|---|---|---|---|
| 0:00 | 10 | 1. SDDの基本思想 ─ 何が変わるのか | 理解 |
| 0:10 | 10 | 2. 全体フロー ─ Specify→Plan→Tasks→Implementと品質ゲート | 理解 |
| 0:20 | 30 | 3. 良いSPECを書く ─ テンプレートとEARS | 実践 |
| 0:50 | 20 | 4. SPEC自身をレビューする ─ 実装前の品質ゲート | 実践 |
| 1:10 | 25 | 5. PlanとTasks ─ 技術設計と実装単位への変換 | 実践 |
| 1:35 | 10 | 6. 実装後の検証 ─ 「動く」ではなく「SPECを満たす」 | 理解 |
| 1:45 | 10 | 7. 変更管理・Brownfield・限界 | 理解 |
| 1:55 | 5 | 8. 成果物を完成させる | 実践 |
この教材は GitHub Spec Kit と Kiro の公式ドキュメント、EARSの原著者・原著論文、ISO/IEC/IEEE 29148 を根拠にしています。各セクション末尾に出典URLを置いています。研究プレプリントは「限界・研究動向」の補足にのみ使い、ツール仕様の根拠には使いません。
1. SDDの基本思想 ─ 何が変わるのか
ゴール:SDDが「ドキュメントを厚く書く手法」ではないことを、自分の言葉で説明できる。
1-1. 一番の誤解を先に潰す
SDD=詳細な設計書を書くこと、ではありません。
SDDの核は「人間の意図・要求を一次成果物(source of truth)とし、コードをその実装結果として扱う」という主従の逆転です。従来はコードが真実で、ドキュメントは後追いの説明でした。SDDではそれをひっくり返します。
この逆転が効くのは、AIエージェントがコードを書く速度が上がったからです。生成が速くなるほど、ボトルネックは「書く速度」ではなく「何を作るべきかの合意の精度」に移ります。曖昧な意図を渡せば、AIは曖昧なまま高速に大量のコードを書いてしまいます。
1-2. 中心にあるのは「What before How」
SDDが徹底するのは、「何を・なぜ作るか」と「どう作るか」を分離することです。この分離が崩れると、仕様が特定の実装手段に過剰適合し、後から技術を変えられなくなります。
WHAT / WHY(仕様の担当)
- 誰が、どんな状況で、何を達成したいか
- システムが満たすべき振る舞い
- 成功をどう測るか(測定可能な条件)
- 扱うべきエッジケース
HOW(技術設計の担当)
- 言語・フレームワーク・依存ライブラリ
- アーキテクチャ、ストレージ
- テスト方式、性能目標、制約
- 想定規模
1-3. もうひとつの柱「multi-step refinement」
SDDは仕様から一気にコードを生成しません。段階的に精緻化します。各段階で人間がレビューできる中間成果物が残ることが重要で、これが「AIが何を根拠にそのコードを書いたか」の追跡可能性を生みます。
| Vibe Coding | Spec-Driven Development | |
|---|---|---|
| 入力 | その場のプロンプト | 永続する仕様成果物 |
| 真実の所在 | 生成されたコード | 仕様(コードは実装結果) |
| レビュー対象 | コード(=完成後) | 仕様・設計・タスク(=実装前) |
| やり直しコスト | コードを捨てて書き直し | 仕様を直して再生成 |
| 向いている場面 | 使い捨てのプロトタイプ、探索 | 維持する必要があるプロダクト、チーム開発 |
SDDは Greenfield(新規開発)にも Brownfield(既存コードへの機能追加)にも 適用されます。ただし既存コードでは「仕様だけでは足りない文脈」の問題が出ます。これはセクション7で扱います。
SDDが「一次成果物」として扱うものはどれ?
出典 ── What is Spec-Driven Development? — GitHub Spec Kit https://github.github.com/spec-kit/concepts/sdd.html / GitHub Spec Kit https://github.github.com/spec-kit/
2. 全体フロー ─ 変換の構造と品質ゲート
ゴール:短縮フローと本番フローの違い、各ステップの責務を説明できる。
2-1. まず覚える最小フロー
要求を仕様化し、技術設計へ変換し、依存関係を持つ実装タスクへ分解し、実装する。仕様からいきなりコードへ飛ばないのが要点です。
2-2. 本番向けフロー(品質ゲート付き)
実際にプロダクトへ適用する場合、Spec Kit のフローは4ステップでは終わりません。間に実装前に仕様の欠陥を潰すゲートが入ります。
黄色が品質ゲート。Clarify / Checklist / Analyze は実装前、Converge は実装後に効きます。
| ステップ | 責務(何のために存在するか) |
|---|---|
constitution | プロジェクト全体に効く原則・制約を先に固定する |
specify | WHAT/WHY を仕様として書く |
clarify | 仕様の曖昧点を洗い出して確定させる(ゲート) |
plan | HOW(技術設計)へ変換する |
checklist | 成果物が満たすべき観点を漏れなく確認する(ゲート) |
tasks | 実装可能な単位へ分解する |
analyze | 仕様・設計・タスク間の矛盾や欠落を検出する(ゲート) |
implement | タスクに沿って実装する |
converge | コードベースと成果物のギャップを確認する(ゲート) |
2-3. 別実装でもほぼ同じ構造になっている
これはSpec Kit固有のローカルルールではありません。独立した実装である Kiro も、同型の多段階構造を採用しています。2つの独立した実装が同じ形に収束していることは、この構造が本質的である傍証として重要です。
| GitHub Spec Kit | Kiro | 共通して担っていること |
|---|---|---|
| Specify(spec.md) | Requirements | WHAT/WHY の確定。KiroではここでEARSを使う |
| Plan(plan.md) | Design | HOW への変換 |
| Tasks(tasks.md) | Tasks | 実装単位への分解 |
| Clarify / Analyze | Analyze Requirements | 実装前の仕様レビュー |
| Converge | Correctness(Property-based tests) | 実装が仕様を満たすかの検証 |
Kiroは Requirements-First(要求から始める)と Design-First(設計から始める)の両方の入り方を用意しています。「どちらから始めるか」は運用判断であり、どちらでも最終的に Requirements / Design / Tasks の3成果物に収束します。
「実装前に効く品質ゲート」の組み合わせはどれ?
出典 ── Quick Start Guide — Spec Kit https://github.github.com/spec-kit/quickstart.html / Agentic SDD — Spec Kit https://github.github.com/spec-kit/reference/agentic-sdd.html / Feature Specs — Kiro https://kiro.dev/docs/specs/feature-specs/ / Best practices — Kiro https://kiro.dev/docs/specs/best-practices/
3. 良いSPECを書く ─ テンプレートとEARS
ゴール:曖昧さのない、テスト可能な要求を書けるようになる。ここが2時間で最も価値のある30分です。
3-1. SPECの骨格
GitHubが実際にAIへ与えている spec-template.md は、以下の要素で構成されています。抽象論を読むより、この構造をそのまま使うのが最短です。
| 要素 | 書くこと |
|---|---|
| User Story (優先度付き) | 誰が、何をしたくて、なぜか。P1/P2/P3 のように優先順位を付ける |
| Independent Test | そのストーリー単体で、他を待たずに価値を検証できるか |
| Acceptance Scenario | Given(前提)/ When(操作)/ Then(期待結果)の形で受け入れ条件を書く |
| Edge Cases | 異常系・境界値・同時実行・空データなど、壊れやすい条件 |
| Functional Requirements | システムが満たすべき振る舞い。各要求にIDを振る(FR-001…) |
| Success Criteria | 測定可能で、かつ技術非依存な成功条件 |
| Assumptions | 確定していないが前提として置いたこと。後で崩れうる箇所 |
Success Criteria が最も間違えやすいところです。「レスポンスが速い」は測定不能。「Redisキャッシュのヒット率95%」は測定可能だが技術に依存しているため仕様には不適切(Planへ移すべき内容)。正解は「検索結果が2秒以内に表示される」のように、測定でき、かつ実装手段を規定しない書き方です。
3-2. EARS ─ 曖昧でない要求を書く記法
「速い」「大きい」「適切に処理する」といった解釈の余地が大きい表現を避けるために、条件・トリガー・期待動作を型にはめて書くのがEARS(Easy Approach to Requirements Syntax)です。2009年の原著論文で提示され、現在のKiroでもテスト可能な要求記述に使われています。
| パターン | 型 | 使う場面 |
|---|---|---|
| Ubiquitous (常時) | The <system> shall <response> | 条件なしで常に成り立つこと |
| State-driven (状態駆動) | While <state>, the <system> shall <response> | ある状態が続く間ずっと |
| Event-driven (イベント駆動) | When <trigger>, the <system> shall <response> | 何かが起きた瞬間に |
| Optional feature (オプション) | Where <feature>, the <system> shall <response> | その機能が含まれる構成でのみ |
| Unwanted behaviour (望ましくない事象) | If <trigger>, then the <system> shall <response> | エラー・異常系の扱い |
| Complex (複合) | 上記の組み合わせ | 状態とイベントが両方効く場合 |
# 悪い例
検索は速くなければならない。エラー時は適切に処理すること。
# EARSで書き直した例
FR-001 When the user submits a search query,
the system shall display the result list within 2 seconds.
FR-002 If the search service is unavailable,
then the system shall display a retry option
and preserve the entered query.
FR-003 While the user is not signed in,
the system shall hide the saved-search menu.
日本語で書く場合も型は同じです。「〜したとき、システムは〜しなければならない」「〜の場合、システムは〜しなければならない」のように、トリガー節+主語+shall相当の述語を崩さないことが要点です。主語を省略しない、が日本語では特に効きます。
曖昧な要求をEARSに書き換える(8分)
次の3つは、どれも実装者やAIによって解釈が割れます。EARSのどのパターンを使うか決めてから書き直してください。
- 「ファイルのアップロードは大きすぎる場合に弾く」
- 「オフラインでも一応使えるようにする」
- 「管理者にはもっと多くの情報を見せる」
解答例と、どこが曖昧だったか
1 → Unwanted behaviour(If / then)。曖昧だったのは「大きすぎる」という閾値と、弾いた後の挙動。
If the selected file exceeds 20 MB,
then the system shall reject the upload
and shall display the maximum allowed size.
2 → State-driven(While)。曖昧だったのは「一応使える」の範囲。できることを列挙しないと、AIは全機能をオフライン対応しようとします。
While the device has no network connection,
the system shall allow viewing of previously loaded documents
and shall queue edits for later synchronisation.
3 → Optional feature(Where)またはState-driven。曖昧だったのは「もっと多くの情報」の中身。
Where the signed-in user holds the administrator role,
the system shall display the audit log and the billing status
on the account detail screen.
共通しているのは、閾値・範囲・具体的な対象を書いたことです。EARSの型そのものより、型に当てはめようとすると「書けない=決まっていない」ことが露見するのが本当の効用です。
あなたの機能のSPECを書く(15分)★成果物になります
これから2時間かけて仕上げる題材を1つ決めてください。小さいほど良いです(例:ブックマークにタグを付けて絞り込める、CSVをアップロードして重複行を検出する、など)。
詰まったときのヒント
- User Storyが書けない → 「誰が」を先に固定する。ロールが決まらないなら、まだ機能が大きすぎます。
- Acceptance Scenarioが「正しく動く」で終わる → Thenに画面上で観測できることを書く。観測できないものは受け入れ条件になりません。
- Success Criteriaに技術名が入る → それはPlanの内容です。セクション5で移します。
- Edge Casesが出ない → 「空」「上限」「同時」「重複」「権限なし」「途中で失敗」の6語で総当たりしてみてください。
出典 ── spec-template.md — Spec Kit https://github.com/github/spec-kit/blob/main/templates/spec-template.md / EARS — Alistair Mavin https://alistairmavin.com/ears/ / Easy Approach to Requirements Syntax (EARS) — IEEE (2009) https://ieeexplore.ieee.org/document/5328509/ / Feature Specs — Kiro https://kiro.dev/docs/specs/feature-specs/
4. SPEC自身をレビューする ─ 実装前の品質ゲート
ゴール:コードではなく要求仕様をレビュー対象にできるようになる。
4-1. なぜ実装前にレビューするのか
曖昧な仕様のまま実装させると、AIは曖昧さを勝手に埋めてコードを書きます。埋め方が意図と違っていた場合、発見できるのは実装が全部終わった後です。Spec Kit の clarify / checklist / analyze、Kiro の Analyze Requirements は、この手戻りを実装前に潰すために存在します。
4-2. 何を探すのか(レビュー観点)
| 観点 | 探すもの | 典型的な現れ方 |
|---|---|---|
| 曖昧性 | 複数の解釈ができる表現 | 「適切に」「高速に」「必要に応じて」 |
| 矛盾 | 要求同士が両立しない | FR-002が禁止する操作をFR-005が要求している |
| 制約衝突 | 要求と制約が同時に満たせない | 全件即時反映を求めつつオフライン動作も要求 |
| 暗黙の前提 | 書かれていないが依存している条件 | 「ユーザーは必ずログイン済み」と暗黙に仮定 |
| 欠落 | あるべき要求がない | 作成はあるが削除・更新の要求がない |
| エッジケース不足 | 異常系・境界が未定義 | 空・上限・重複・同時実行・失敗時が未記載 |
この悪いSPECから欠陥を5つ見つける(7分)
機能:チームのタスク共有
FR-001 ユーザーはタスクを作成できる。
FR-002 タスクは高速に一覧表示されなければならない。
FR-003 タスクは作成者だけが編集できる。
FR-004 チームメンバーは誰でもタスクのステータスを更新できる。
FR-005 通知は適切なタイミングで送られる。
FR-006 データはリアルタイムに同期され、オフラインでも全機能が使える。
Success Criteria:
- ユーザーが満足すること
- PostgreSQLのクエリが100ms以内で返ること
解答例
- 曖昧性:FR-002「高速に」/FR-005「適切なタイミング」。閾値とトリガーが不明。EARSのEvent-drivenで、トリガーと秒数を明示する。
- 矛盾:FR-003(作成者だけが編集)とFR-004(誰でもステータス更新)。「ステータスは編集に含むのか」が未定義。編集対象フィールドを分けて書き直す。
- 制約衝突:FR-006「リアルタイム同期」と「オフラインで全機能」。同時には成立しない。オフライン時に許可する操作を列挙して縮退させる。
- 欠落:削除の要求がない。また権限のないユーザーが編集を試みた場合の挙動(Unwanted behaviour)がない。
- Success Criteriaの不備:「ユーザーが満足すること」は測定不能。「PostgreSQLのクエリが100ms」は測定可能だが技術依存で、仕様ではなくPlanに属する。「一覧が2秒以内に表示される」のように測定可能かつ技術非依存へ。
+α:暗黙の前提として「チームは1つだけ」「メンバーは全員ログイン済み」が仮定されています。Assumptionsへ明記すべき内容です。
自分のSPECをレビューする(8分)
セクション3で書いたあなたのSPECに、以下を1つずつ当ててください。チェックできない項目があれば、ここで演習2の入力欄に戻って直します。
ここまでで手戻りコストが最も大きい部分を通過しました。仕様の欠陥1件を実装前に直すコストと、実装後に直すコストは桁が違います。
出典 ── Agentic SDD — Spec Kit https://github.github.com/spec-kit/reference/agentic-sdd.html / Analyze Requirements — Kiro https://kiro.dev/docs/specs/analyze-requirements/ / ISO/IEC/IEEE 29148:2018 https://www.iso.org/standard/72089.html
5. PlanとTasks ─ 技術設計と実装単位への変換
ゴール:仕様と技術設計の境界を引き、AIエージェントが実行できる粒度までタスクを割れる。
5-1. どこからがPlanの領分か
plan-template.md が扱うのは、仕様から意図的に排除した「HOW」です。この境界表を頭に入れておくと、仕様に実装詳細が混入したときすぐ気づけます。
| 項目 | 属する場所 | 理由 |
|---|---|---|
| 言語・フレームワーク | Plan | 同じ要求を別言語でも満たせる |
| 依存ライブラリ | Plan | 実装手段の選択 |
| ストレージ(DB・ファイル) | Plan | 永続化の手段であって目的ではない |
| テスト方式(単体/結合/PBT) | Plan | 検証の手段 |
| 性能目標(内部指標) | Plan | 「クエリ100ms」は実装側の目標 |
| ユーザーから見た応答時間 | Spec | 利用者が観測する振る舞い |
| 制約(規制・既存システム等) | Plan | 設計を縛る外部条件 |
| 想定規模(件数・同時接続) | Plan | 設計判断の入力値 |
| 誰が何をしたいか | Spec | WHY そのもの |
次のうち、SPECに書くべきものはどれ?
5-2. タスクは「TODOリスト」ではない
tasks-template.md のタスクは、AIエージェントが独立して実行できるように、以下の情報を持ちます。
- どのUser Storyに対応するか(トレーサビリティ)
- 依存関係(何が終わっていれば着手できるか)
- 並列実行できるか(
[P]マーク) - 変更対象のファイルパス
- 独立してテスト可能か
並び順にも構造があります。
Setupはプロジェクト初期化、Foundationalは複数ストーリーが共通で必要とする土台。その後はUser Story単位で並べます。こうすると「P1のストーリーまで実装した時点で、単体で価値が検証できる」状態が作れます。
## Phase 1: Setup
T001 プロジェクト構成とlint設定を追加 files: package.json, .eslintrc
## Phase 2: Foundational
T002 Tagデータモデルを定義 files: src/models/tag.ts
T003 タグ永続化層を実装 (depends: T002) files: src/repo/tagRepo.ts
## Phase 3: User Story 1 (P1) — 記事にタグを付ける
T004 [P] タグ付与APIを実装 (depends: T003) files: src/api/tags.ts
T005 [P] タグ表示UIを実装 (depends: T003) files: src/ui/TagList.tsx
T006 受け入れシナリオ AS-1 の結合テスト (depends: T004, T005)
→ ここまでで US-1 が独立に検証可能
粒度の目安は「1タスク=1つの明確な変更で、完了条件が客観的に判定できる」。「認証まわりを実装する」は大きすぎ、「変数名を変える」は小さすぎます。迷ったら「このタスクだけAIに渡して、追加質問なしで完了できるか」で判定してください。
自分の機能のPlanとTasksを書く(15分)★成果物になります
自己チェック
- Specに書いた内容がPlanへ、Planの内容がSpecへ、混入していないか
- すべてのタスクが、どこかのUser Storyまたは基盤に紐づいているか(宙に浮いたタスクがないか)
- 「P1のストーリーが終わった時点」で、動いて価値が確認できる状態になっているか
[P]を付けたタスク同士が、同じファイルを触っていないか
出典 ── plan-template.md — Spec Kit https://github.com/github/spec-kit/blob/main/templates/plan-template.md / tasks-template.md — Spec Kit https://github.com/github/spec-kit/blob/main/templates/tasks-template.md / Agentic SDD — Spec Kit https://github.github.com/spec-kit/reference/agentic-sdd.html
6. 実装後の検証 ─ 「動く」ではなく「SPECを満たす」
ゴール:テストが緑になっただけでは終わりではない理由を説明できる。
6-1. テスト成功では足りない
AIが仕様とテストの両方を生成した場合、テストが緑になることは「AIが自分の解釈どおりに実装した」ことしか保証しません。検証すべきは実装が仕様・設計・タスクと一致しているかです。
6-2. 2つのアプローチ
Spec Kit: converge
実装済みのコードベースと、spec / plan / tasks の各成果物を突き合わせ、ギャップを確認します。「仕様にあるのに実装されていない」「実装されているのに仕様にない」の両方向を見ます。
Kiro: Property-based tests
EARSで書かれた要求からプロパティ(常に成り立つべき性質)を抽出し、多数の入力を自動生成して検証します。EARSが型に沿って書かれているほど、機械的にプロパティへ変換しやすくなります。
# EARS要求
FR-002 If the search service is unavailable,
then the system shall display a retry option
and preserve the entered query.
# ここから取り出せるプロパティ
Property: サービス停止時、どんな入力クエリ文字列に対しても、
再試行UIが存在し、かつ入力値が保持されている
→ クエリ文字列をランダム生成して総当たりで検証できる
ここがEARSを学ぶ2つ目の理由です。EARSは「曖昧さを減らす」だけでなく、検証可能な形式へ橋を架けるために効いています。セクション3で書いた要求を、そのままプロパティに読み替えられるか確かめてみてください。
converge が確認するものは?
出典 ── Agentic SDD — Spec Kit https://github.github.com/spec-kit/reference/agentic-sdd.html / Correctness with Property-based tests — Kiro https://kiro.dev/docs/specs/correctness/
7. 変更管理・Brownfield・そして限界
ゴール:SDDを実務に持ち込むときに壊れやすい箇所を、事前に知っておく。
7-1. 仕様はいつまで「真実」なのか ─ Spec Persistence Models
実装中には必ず発見があります。「仕様に書いていなかったことが必要だった」「書いたとおりに作ると破綻する」。そのとき仕様をどう扱うかには複数のモデルがあり、Spec Kit はこれを整理しています。
| モデル | 考え方 | 向く場面 |
|---|---|---|
| Flow-back | 実装中の発見を仕様へ戻して反映する | 仕様を継続的に正しく保ちたい |
| Flow-forward | 仕様は着手時点のスナップショットとして固定し、変更は次の仕様で扱う | 履歴として当時の意図を残したい |
| Living Spec | 仕様を生きたドキュメントとして継続的に更新し続ける | 長期運用するプロダクト |
「仕様をsource of truthにする」は、運用上どのモデルを選ぶかを決めて初めて意味を持ちます。決めないまま始めると、仕様が実装から静かに乖離していきます。チームで最初に合意すべき項目です。
7-2. 要件が変わったときの再同期
既存プロジェクトで要件が変わったら、下流の成果物も順番に更新し直します。この順序を守らないと、タスクだけが古い仕様を参照した状態になります。
7-3. Brownfieldでは仕様だけでは足りない
既存リポジトリへSDDを適用すると、仕様には書かれない文脈──既存API、アーキテクチャ、命名規則、社内の慣習──が不足します。2026年の研究でも、SDDエージェントをリポジトリ情報で明示的にgrounding(接地)することの重要性が検証されています。実務では「仕様+リポジトリの文脈」をセットで渡す前提で考えてください。
7-4. 過信しないための限界
SDDを導入しても自動的には解決しないこと
- spec-code drift:仕様と実装が時間とともにずれる。持続的な運用が要る。
- 生成成果物への過信:AIが書いた仕様も、レビューされていなければ根拠になりません。
- context不足:特にBrownfieldで顕著。
- トレーサビリティは自動では得られない:仕様があるだけで要求→コードの追跡性が完全になるわけではありません。IDを振り、タスクとストーリーを紐づける運用が必要です。
- ベンチマークが未成熟:SDDの効果を測る標準的な評価はまだ整っていません。
なおこの「限界」の議論の一部は2026年の研究プレプリントに基づいています。査読を経ていないため、ツールの仕様そのものの根拠には使わず、研究動向・注意点としてのみ扱うのが妥当です。一方で、要求の品質やライフサイクルの考え方自体はAI以前から ISO/IEC/IEEE 29148:2018 として標準化されています。SDDは新しい流行語ですが、下敷きにあるのは既存の要求工学です。
実装中に「仕様に書いていない仕様変更」が必要になった。Flow-backモデルでの正しい対応は?
出典 ── Spec Persistence Models — Spec Kit https://github.github.com/spec-kit/concepts/spec-persistence.html / Evolving Specs in Existing Projects — Spec Kit https://github.github.com/spec-kit/guides/evolving-specs.html / ISO/IEC/IEEE 29148:2018 https://www.iso.org/standard/72089.html / Spec Kit Agents: Context-Grounded Agentic Workflows https://arxiv.org/abs/2604.05278(preprint)/ From Prompt to Process https://arxiv.org/abs/2606.04967(preprint)/ Citation Discipline in Spec-Driven Development https://arxiv.org/abs/2606.30689(preprint)
8. 成果物を完成させる
ゴール:あなたの機能1つ分の Spec Pack を書き出して持ち帰る。
最終チェックリスト
Spec Pack を書き出す
これまでに書いた内容を1つのMarkdownにまとめて保存します。次にAIエージェントへ渡すときは、この spec.md 相当の内容をそのまま /specify の入力にできます。
この後やること(持ち帰り3つ)
- 書いたSpec Packを実際のプロジェクトに置き、AIエージェントにP1のタスクだけ実装させる。
- 実装が終わったら、コードではなく仕様と突き合わせてギャップを確認する。
- チームで Flow-back / Flow-forward / Living Spec のどれを採るか合意する。
参考資料
この教材が根拠にした一次情報。★は最初に読むべきもの。
この教材は上記の一次情報のみを根拠に構成されています。情報は2026年8月14日時点のものです。ツールのフローやテンプレートは更新されるため、実務適用時は公式ドキュメントで最新版を確認してください。