2時間 Vibe Learning

SPEC駆動開発を、2時間で「使える」ところまで

AIエージェントに「いい感じに作って」と頼むのをやめて、仕様(SPEC)を一次成果物にする開発の型を身につけます。読むだけで終わらせず、最後にあなた自身の機能1つ分の spec.md / plan.md / tasks.md を書き上げて持ち帰ります。

所要 120分 実践 65分 / 講義 55分 前提:AIコーディングエージェントを触ったことがある 情報は2026年8月14日時点
🧭

この教材の使い方

  1. 左上の「開始」を押してタイマーを回す。各セクションに目安時間があります。
  2. チェックボックスを埋めながら進む。進捗バーが動きます。
  3. 演習の入力欄は必ず自分の言葉で埋める。空欄のままだと最後の成果物が作れません。
  4. 最後に「Spec Packをダウンロード」を押して、書いたものをMarkdownで持ち帰る。

※ 入力内容はブラウザに保存されません。途中で閉じる前に必ずダウンロードしてください。

2時間のタイムテーブル

時刻やること種類
0:00101. SDDの基本思想 ─ 何が変わるのか理解
0:10102. 全体フロー ─ Specify→Plan→Tasks→Implementと品質ゲート理解
0:20303. 良いSPECを書く ─ テンプレートとEARS実践
0:50204. SPEC自身をレビューする ─ 実装前の品質ゲート実践
1:10255. PlanとTasks ─ 技術設計と実装単位への変換実践
1:35106. 実装後の検証 ─ 「動く」ではなく「SPECを満たす」理解
1:45107. 変更管理・Brownfield・限界理解
1:5558. 成果物を完成させる実践
📌

この教材は GitHub Spec KitKiro の公式ドキュメント、EARSの原著者・原著論文ISO/IEC/IEEE 29148 を根拠にしています。各セクション末尾に出典URLを置いています。研究プレプリントは「限界・研究動向」の補足にのみ使い、ツール仕様の根拠には使いません。

⏱ 0:00 – 0:10理解

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 CodingSpec-Driven Development
入力その場のプロンプト永続する仕様成果物
真実の所在生成されたコード仕様(コードは実装結果)
レビュー対象コード(=完成後)仕様・設計・タスク(=実装前)
やり直しコストコードを捨てて書き直し仕様を直して再生成
向いている場面使い捨てのプロトタイプ、探索維持する必要があるプロダクト、チーム開発
💡

SDDは Greenfield(新規開発)にも Brownfield(既存コードへの機能追加)にも 適用されます。ただし既存コードでは「仕様だけでは足りない文脈」の問題が出ます。これはセクション7で扱います。

Quiz 1

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/

⏱ 0:10 – 0:20理解

2. 全体フロー ─ 変換の構造と品質ゲート

ゴール:短縮フローと本番フローの違い、各ステップの責務を説明できる。

2-1. まず覚える最小フロー

Specify Plan Tasks Implement

要求を仕様化し、技術設計へ変換し、依存関係を持つ実装タスクへ分解し、実装する。仕様からいきなりコードへ飛ばないのが要点です。

2-2. 本番向けフロー(品質ゲート付き)

実際にプロダクトへ適用する場合、Spec Kit のフローは4ステップでは終わりません。間に実装前に仕様の欠陥を潰すゲートが入ります。

Constitution Specify Clarify Plan Checklist Tasks Analyze Implement Converge

黄色が品質ゲート。Clarify / Checklist / Analyze は実装前、Converge は実装後に効きます。

ステップ責務(何のために存在するか)
constitutionプロジェクト全体に効く原則・制約を先に固定する
specifyWHAT/WHY を仕様として書く
clarify仕様の曖昧点を洗い出して確定させる(ゲート)
planHOW(技術設計)へ変換する
checklist成果物が満たすべき観点を漏れなく確認する(ゲート)
tasks実装可能な単位へ分解する
analyze仕様・設計・タスク間の矛盾や欠落を検出する(ゲート)
implementタスクに沿って実装する
convergeコードベースと成果物のギャップを確認する(ゲート)

2-3. 別実装でもほぼ同じ構造になっている

これはSpec Kit固有のローカルルールではありません。独立した実装である Kiro も、同型の多段階構造を採用しています。2つの独立した実装が同じ形に収束していることは、この構造が本質的である傍証として重要です。

GitHub Spec KitKiro共通して担っていること
Specify(spec.md)RequirementsWHAT/WHY の確定。KiroではここでEARSを使う
Plan(plan.md)DesignHOW への変換
Tasks(tasks.md)Tasks実装単位への分解
Clarify / AnalyzeAnalyze Requirements実装前の仕様レビュー
ConvergeCorrectness(Property-based tests)実装が仕様を満たすかの検証
🔀

Kiroは Requirements-First(要求から始める)と Design-First(設計から始める)の両方の入り方を用意しています。「どちらから始めるか」は運用判断であり、どちらでも最終的に Requirements / Design / Tasks の3成果物に収束します。

Quiz 2

「実装前に効く品質ゲート」の組み合わせはどれ?

出典 ── 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/

⏱ 0:20 – 0:50実践

3. 良いSPECを書く ─ テンプレートとEARS

ゴール:曖昧さのない、テスト可能な要求を書けるようになる。ここが2時間で最も価値のある30分です。

3-1. SPECの骨格

GitHubが実際にAIへ与えている spec-template.md は、以下の要素で構成されています。抽象論を読むより、この構造をそのまま使うのが最短です。

要素書くこと
User Story
(優先度付き)
誰が、何をしたくて、なぜか。P1/P2/P3 のように優先順位を付ける
Independent Testそのストーリー単体で、他を待たずに価値を検証できるか
Acceptance ScenarioGiven(前提)/ 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相当の述語を崩さないことが要点です。主語を省略しない、が日本語では特に効きます。

演習 1

曖昧な要求をEARSに書き換える(8分)

次の3つは、どれも実装者やAIによって解釈が割れます。EARSのどのパターンを使うか決めてから書き直してください。

  1. 「ファイルのアップロードは大きすぎる場合に弾く」
  2. 「オフラインでも一応使えるようにする」
  3. 「管理者にはもっと多くの情報を見せる」
あなたの書き直し
解答例と、どこが曖昧だったか

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の型そのものより、型に当てはめようとすると「書けない=決まっていない」ことが露見するのが本当の効用です。

演習 2

あなたの機能のSPECを書く(15分)★成果物になります

これから2時間かけて仕上げる題材を1つ決めてください。小さいほど良いです(例:ブックマークにタグを付けて絞り込める、CSVをアップロードして重複行を検出する、など)。

① 機能名と、解決したい課題(1〜2文)
② User Story(優先度付き・2〜3個)+ 各ストーリーの Independent Test
③ Acceptance Scenario(Given / When / Then で3つ以上)
④ Functional Requirements(EARSで4つ以上・IDを振る)
⑤ Edge Cases / Success Criteria(測定可能・技術非依存)/ Assumptions
詰まったときのヒント
  • 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/

⏱ 0:50 – 1:10実践

4. SPEC自身をレビューする ─ 実装前の品質ゲート

ゴール:コードではなく要求仕様をレビュー対象にできるようになる。

4-1. なぜ実装前にレビューするのか

曖昧な仕様のまま実装させると、AIは曖昧さを勝手に埋めてコードを書きます。埋め方が意図と違っていた場合、発見できるのは実装が全部終わった後です。Spec Kit の clarify / checklist / analyze、Kiro の Analyze Requirements は、この手戻りを実装前に潰すために存在します。

4-2. 何を探すのか(レビュー観点)

観点探すもの典型的な現れ方
曖昧性複数の解釈ができる表現「適切に」「高速に」「必要に応じて」
矛盾要求同士が両立しないFR-002が禁止する操作をFR-005が要求している
制約衝突要求と制約が同時に満たせない全件即時反映を求めつつオフライン動作も要求
暗黙の前提書かれていないが依存している条件「ユーザーは必ずログイン済み」と暗黙に仮定
欠落あるべき要求がない作成はあるが削除・更新の要求がない
エッジケース不足異常系・境界が未定義空・上限・重複・同時実行・失敗時が未記載
演習 3

この悪いSPECから欠陥を5つ見つける(7分)

機能:チームのタスク共有

FR-001 ユーザーはタスクを作成できる。
FR-002 タスクは高速に一覧表示されなければならない。
FR-003 タスクは作成者だけが編集できる。
FR-004 チームメンバーは誰でもタスクのステータスを更新できる。
FR-005 通知は適切なタイミングで送られる。
FR-006 データはリアルタイムに同期され、オフラインでも全機能が使える。

Success Criteria:
- ユーザーが満足すること
- PostgreSQLのクエリが100ms以内で返ること
見つけた欠陥(観点名 → 該当箇所 → どう直すか)
解答例
  1. 曖昧性:FR-002「高速に」/FR-005「適切なタイミング」。閾値とトリガーが不明。EARSのEvent-drivenで、トリガーと秒数を明示する。
  2. 矛盾:FR-003(作成者だけが編集)とFR-004(誰でもステータス更新)。「ステータスは編集に含むのか」が未定義。編集対象フィールドを分けて書き直す。
  3. 制約衝突:FR-006「リアルタイム同期」と「オフラインで全機能」。同時には成立しない。オフライン時に許可する操作を列挙して縮退させる。
  4. 欠落:削除の要求がない。また権限のないユーザーが編集を試みた場合の挙動(Unwanted behaviour)がない。
  5. Success Criteriaの不備:「ユーザーが満足すること」は測定不能。「PostgreSQLのクエリが100ms」は測定可能だが技術依存で、仕様ではなくPlanに属する。「一覧が2秒以内に表示される」のように測定可能かつ技術非依存へ。

+α:暗黙の前提として「チームは1つだけ」「メンバーは全員ログイン済み」が仮定されています。Assumptionsへ明記すべき内容です。

演習 4

自分の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

⏱ 1:10 – 1:35実践

5. PlanとTasks ─ 技術設計と実装単位への変換

ゴール:仕様と技術設計の境界を引き、AIエージェントが実行できる粒度までタスクを割れる。

5-1. どこからがPlanの領分か

plan-template.md が扱うのは、仕様から意図的に排除した「HOW」です。この境界表を頭に入れておくと、仕様に実装詳細が混入したときすぐ気づけます。

項目属する場所理由
言語・フレームワークPlan同じ要求を別言語でも満たせる
依存ライブラリPlan実装手段の選択
ストレージ(DB・ファイル)Plan永続化の手段であって目的ではない
テスト方式(単体/結合/PBT)Plan検証の手段
性能目標(内部指標)Plan「クエリ100ms」は実装側の目標
ユーザーから見た応答時間Spec利用者が観測する振る舞い
制約(規制・既存システム等)Plan設計を縛る外部条件
想定規模(件数・同時接続)Plan設計判断の入力値
誰が何をしたいかSpecWHY そのもの
Quiz 3

次のうち、SPECに書くべきものはどれ?

5-2. タスクは「TODOリスト」ではない

tasks-template.md のタスクは、AIエージェントが独立して実行できるように、以下の情報を持ちます。

並び順にも構造があります。

Setup Foundational User Story 1 (P1) User Story 2 (P2)

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に渡して、追加質問なしで完了できるか」で判定してください。

演習 5

自分の機能のPlanとTasksを書く(15分)★成果物になります

① Plan(技術設計)
② Tasks(Setup → Foundational → User Story順。依存と[P]とファイルパスを付ける)
自己チェック
  • 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

⏱ 1:35 – 1:45理解

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で書いた要求を、そのままプロパティに読み替えられるか確かめてみてください。

Quiz 4

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/

⏱ 1:45 – 1:55理解

7. 変更管理・Brownfield・そして限界

ゴール:SDDを実務に持ち込むときに壊れやすい箇所を、事前に知っておく。

7-1. 仕様はいつまで「真実」なのか ─ Spec Persistence Models

実装中には必ず発見があります。「仕様に書いていなかったことが必要だった」「書いたとおりに作ると破綻する」。そのとき仕様をどう扱うかには複数のモデルがあり、Spec Kit はこれを整理しています。

モデル考え方向く場面
Flow-back実装中の発見を仕様へ戻して反映する仕様を継続的に正しく保ちたい
Flow-forward仕様は着手時点のスナップショットとして固定し、変更は次の仕様で扱う履歴として当時の意図を残したい
Living Spec仕様を生きたドキュメントとして継続的に更新し続ける長期運用するプロダクト
⚖️

「仕様をsource of truthにする」は、運用上どのモデルを選ぶかを決めて初めて意味を持ちます。決めないまま始めると、仕様が実装から静かに乖離していきます。チームで最初に合意すべき項目です。

7-2. 要件が変わったときの再同期

既存プロジェクトで要件が変わったら、下流の成果物も順番に更新し直します。この順序を守らないと、タスクだけが古い仕様を参照した状態になります。

spec plan tasks implementation

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は新しい流行語ですが、下敷きにあるのは既存の要求工学です。

Quiz 5

実装中に「仕様に書いていない仕様変更」が必要になった。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)

⏱ 1:55 – 2:00実践

8. 成果物を完成させる

ゴール:あなたの機能1つ分の Spec Pack を書き出して持ち帰る。

最終チェックリスト

成果物

Spec Pack を書き出す

これまでに書いた内容を1つのMarkdownにまとめて保存します。次にAIエージェントへ渡すときは、この spec.md 相当の内容をそのまま /specify の入力にできます。

この後やること(持ち帰り3つ)

  1. 書いたSpec Packを実際のプロジェクトに置き、AIエージェントにP1のタスクだけ実装させる。
  2. 実装が終わったら、コードではなく仕様と突き合わせてギャップを確認する。
  3. チームで Flow-back / Flow-forward / Living Spec のどれを採るか合意する。

参考資料

この教材が根拠にした一次情報。★は最初に読むべきもの。

資料何のために読むか
Quick Start Guide — GitHub Spec KitSpecifyからConvergeまでのエンドツーエンドの実践フロー
What is Spec-Driven Development? — Spec KitGitHub自身によるSDDの定義と基本思想
Agentic SDD — Spec Kit各ステップと品質ゲートの詳細リファレンス
spec-template.md — Spec Kit実際にAIへ与えている公式SPECテンプレート
Feature Specs — KiroRequirements → Design → Tasks と EARS の接続
EARS — Alistair MavinEARS原著者による6パターンの解説
Easy Approach to Requirements Syntax (EARS) — IEEE2009年の原著論文。EARSの一次情報
Analyze Requirements — KiroSPECレビューで何を探すかの具体的な基準
plan-template.md — Spec KitSPECと技術設計の境界の具体例
tasks-template.md — Spec KitAIエージェント向けタスク分解の具体形
Correctness with Property-based tests — KiroEARS要求からプロパティを抽出する検証手法
Spec Persistence Models — Spec KitFlow-back / Flow-forward / Living Spec
Evolving Specs in Existing Projects — Spec Kit要件変更後の再同期手順
Best practices — Kiro SpecsRequirements-First / Design-First の運用判断
ISO/IEC/IEEE 29148:2018要求工学の国際標準。「良い要求」の基準
spec-driven.md — Spec Kit方法論の全体像
From Prompt to Process (preprint)AI開発フレームワークの共通構造と限界
Spec Kit Agents: Context-Grounded Agentic Workflows (preprint)既存コードでのcontext groundingの重要性
Citation Discipline in Spec-Driven Development (preprint)トレーサビリティの限界とhallucination検出

この教材は上記の一次情報のみを根拠に構成されています。情報は2026年8月14日時点のものです。ツールのフローやテンプレートは更新されるため、実務適用時は公式ドキュメントで最新版を確認してください。