Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
手戻りゼロ? Spec Driven Developmentとは@KAG AI week
Search
Tomoki Hirai
February 18, 2026
Programming
1
100
手戻りゼロ? Spec Driven Developmentとは@KAG AI week
仕様駆動開発、SDD、 Spec Driven Development、Claude Code、AIコーディング、AI駆動開発
Tomoki Hirai
February 18, 2026
Tweet
Share
More Decks by Tomoki Hirai
See All by Tomoki Hirai
Aurora DSQLを使ってTodoアプリ作ってみた @#しむそくRadio 新春!冬休みの宿題LTスペシャル
tmhirai
0
250
AWS re:Invent 2024 re:Cap presented by iret
tmhirai
0
42
AWS AmplifyとBedrockを活用した生成AIアプリの開発@第6回 FlutterGakkai
tmhirai
0
47
Cognitoが大型アップデート!Managed Loginとパスワードレスログインを実際に使ってみた@しむそくRadio Special Day1
tmhirai
3
1.1k
Other Decks in Programming
See All in Programming
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜 / Understanding nil in Go Interface Representation and Why nil != nil
kuro_kurorrr
3
1.6k
CSC307 Lecture 13
javiergs
PRO
0
310
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
510
CSC307 Lecture 12
javiergs
PRO
0
450
文字コードの話
qnighy
43
16k
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.4k
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
3
380
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
8
2.2k
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
120
AHC061解説
shun_pi
0
280
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
190
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
360
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
430
Agile that works and the tools we love
rasmusluckow
331
21k
Exploring anti-patterns in Rails
aemeredith
2
280
How to Talk to Developers About Accessibility
jct
2
140
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Test your architecture with Archunit
thirion
1
2.2k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Docker and Python
trallard
47
3.7k
Transcript
2026.2.18 KAG AI week 手戻りゼロ? Spec Driven Developmentとは KDDIアジャイル開発センター株式会社 平井
友樹 1
自己紹介 平井 友樹 (Tomoki Hirai) KDDIアジャイル開発センター株式会社(KAG) スクラムマスター/エンジニア AWS, React, Flutter,
AI開発など 2
この発表について 対象者: AIコーディングツール(Copilot、Cursor、Claude Code等)を使い始めた方 AIに指示しても思い通りのコードが出ず困っている方 今日のゴール: AIコーディングで手戻りが起きる原因を理解する Spec Driven Development(SDD)
という解決策を知る cc-sdd を使った実践の流れをイメージできる ※ 私もSDDに入門したばかりです。一緒に学んでいきましょう! 3
AIコーディング、こんな経験ありませんか? 4
いつものAIコーディング 登録機能を作って できました! メール形式チェックも追加して...重複時は422で返して...確認メールも送って... 修正しました!...修正しました!... この繰り返しが 複数回実施される → ようやく完成 5
なぜ手戻りが起きるのか AIに言ったこと: 頭の中では実はこう思っている: 名前・メール・パスワードが必須フィールド 重複時は422エラーを返す 登録後に確認メールを送る パスワードは8文字以上・英数字混在 AIに伝えていない仕様が手戻りになる ユーザー登録機能を作って 6
そこで、Spec Driven Development 7
Spec Driven Development(SDD)とは 日本語では 「仕様駆動開発」 と訳される 「仕様を先に整理してからコードを書く」 開発手法 AWSが Kiro
でSDDワークフローを提唱 GitHubが spec-kit を公開 「Vibe Coding(とりあえずAIに作らせる) 」とは違う考え方 8
SDDのAIコーディング 登録機能の要件・設計をまとめて 要件・設計・タスクをまとめました LGTM! この仕様で実装して 仕様通りに実装しました 途中にレビューは挟むが、手戻りなく完成 🎉 9
比べてみると 通常のAIコーディング すぐコードを書かせる 何度も修正を繰り返す 成果物はコードだけ 修正込みで実は遅い SDD 要件・設計を先に決める 仕様に沿って一発で生成 要件+設計+コードが残る
結果的に速い 10
cc-sddで始めるSDD 11
cc-sddとは AWSが作ったAIエディタ Kiro のSDDワークフローにインスパイアされたOSSツール Kiroの仕組みを今使っているエディタ・CLIでそのまま使えるようにしたもの 日本語対応: 生成される要件・設計ドキュメントも日本語 マルチエージェント対応: Claude Code
/ Cursor / Copilot など 導入が簡単: npx 1コマンド、30秒でセットアップ完了 12
cc-sddの開発フロー steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 →
design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 各ステップでAIが成果物を生成 → 人間がレビューしてから次へ進む 次のスライドから各ステップを詳しく見ていきます 13
Step 0: steering(コンテキスト作成) コマンド: /kiro:steering アウトプット: .kiro/steering/*.md 開発開始前の下準備 プロダクト概要、技術スタックなどを整理 プロジェクトの文脈や暗黙知をAIに伝える
以降のコマンドはこの文脈を参照 # product.md(プロダクト概要) テスト分類と機能観点のマスタデータを 提供するステートレスなREST API # structure.md(プロジェクト構成) レイヤードアーキテクチャ CDKインフラとLambdaアプリを分離 **Location**: `lib/`, `bin/` **Purpose**: AWS CDKスタック定義と アプリエントリーポイント # tech.md(技術スタック) TypeScript, Hono, AWS Lambda, AWS CDK v2, Zod, Node.js 22.x steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 → design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 14
Step 1: spec-init(初期化) コマンド: /kiro:spec-init <feature> アウトプット: .kiro/specs/<feature>/ 機能ごとに仕様ワークスペースを作成 以降の成果物がこのフォルダに格納
.kiro/specs/<feature>/ ├── requirements.md ├── design.md ├── tasks.md ├── research.md └── spec.json steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 → design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 15
Step 2: spec-requirements(要件定義) コマンド: /kiro:spec-requirements <feature> アウトプット: requirements.md ユーザーストーリー +
受入条件の形式 EARS (Easy Approach to Requirements Syntax) 形式 機能要件・非機能要件を構造化 レビューしてOKなら次のプロセスへ ... ### Requirement 1: テスト分類一覧取得 **Objective:** As a API利用者, I want テスト分類の一覧を取得したい, so that どの分類が利用可能か把握できる #### Acceptance Criteria 1. When APIが分類一覧取得リクエストを受信した場合, the Test Viewpoint API shall 11種類の分類(画面、画面遷移、入力あり、 ファイル入力、ファイル出力、CRUD、検索、 メール、バッチ、バックエンド、Bluetooth)とその定義を返却する 2. The Test Viewpoint API shall 各分類について分類名(name)と詳細説明(description) を含むJSON形式で応答する ... steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 → design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 16
Step 3: spec-design(設計) コマンド: /kiro:spec-design <feature> アウトプット: design.md ,( research.md
) コンポーネント構成・APIの詳細設計 steeringの規約に沿って設計 シーケンス図やER図も生成される 調査が必要な場合は research.md に記録 レビューしてOKなら次のプロセスへ steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 → design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 17
Step 4: spec-tasks(タスク分解) コマンド: /kiro:spec-tasks <feature> アウトプット: tasks.md TODO形式でタスク分解 各タスクに要件IDが紐付く
P0(逐次実行) / P1(並列実行) のラベル付き レビューしてOKなら次のプロセスへ - [x] 1. OpenAPIHono基盤の構築 Req: 4.1, 4.2, 4.3 - [x] 2.1 (P) テスト分類マスタデータ定義 Req: 1.1, 1.2 - [x] 2.2 (P) 機能観点マスタデータ実装 Req: 2.1, 2.2 - [x] 3.1 (P) 分類一覧取得エンドポイント - [x] 3.2 (P) 観点取得・フィルタリング - [x] 4.1 (P) ユニットテスト - [x] 4.2 (P) 統合テスト steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 → design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 18
Step 5: spec-impl(実装) コマンド: /kiro:spec-impl <feature> [task-ids] アウトプット: コード変更 タスクIDを指定して実装
TDD形式でテストコードも生成される steering コンテキスト作成 → spec-init 初期化 → requirements 要件定義 → design 調査と詳細設計 → tasks タスク分解 → spec-impl 実装 19
validate コマンドで各フェーズを検証できる 各ドキュメント間の整合性を、 /kiro:validate-* コマンドでチェックできる コマンド 役割 実施タイミング /kiro:validate-gap ソースコードと
requirements.md の差分を分析し gap-report.md を生成 任意(既存PJの改修 時に有効) /kiro:validate- design design.md の整合性・テンプレート準拠をレビュー 開発者レビューの前 後 /kiro:validate- impl 実装済みタスクが tasks.md の受け入れ条件を満た すか確認 spec-impl 完了後 20
どう使い分ける? 通常のAIコーディング プロトタイプ・PoC 使い捨てスクリプト 個人の小規模ツール 仕様が曖昧でも「まず動くもの」が欲しい → スピード重視の場面 SDD 複数人で開発する機能
仕様が複雑・条件分岐が多い 長期運用するプロダクション 認識合わせが必要なチーム開発 → 品質・再現性重視の場面 両方使いこなすのが理想。規模と複雑さで判断 21
とはいっても、実際に触ってみないとわかりませんよね? 1. npx cc-sdd@latest --claude --lang ja (Claude Code) でセットアップ
2. 小さな機能を1つ選んで、一通り流してみる 3. AIが作った要件・設計・タスクを読んでみる 4. 「こんなに整理されるのか」を体験する 好きなAIエージェントにインストールして試してみましょう! 22
まとめ AIコーディングの手戻りは伝えきれていない情報が原因 SDDはコードの前に仕様を決めることで手戻りを防ぐ cc-sddを使って簡単にSDDを始められる 各フェーズで人間がレビューするから安心 SDDで手戻りを減らし、AIコーディングをもっと快適にしましょう! 23
24