Upgrade to Pro — share decks privately, control downloads, hide ads and more …

終盤で崩壊させないAI駆動開発

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 終盤で崩壊させないAI駆動開発

AI駆動開発で「序盤は速いのに終盤で詰まる」経験はありませんか?

本セッションでは、その根本原因を「仕様がない・制約がない・検証ゲートがない」の3つに整理し
、仕様駆動開発(SDD)で崩壊を防ぐアプローチを紹介します。

紹介する takt-sdd は、YAMLワークフローCLI「takt」を使って要件定義→技術設計→タスク分解→実装
→検証までをフェーズ管理するOSSです。各フェーズにGO/NO-GOゲートを持ち、実装フェーズは「完了
条件を満たすまで返ってこない」閉ループ構造になっています。

▶ 主なトピック
- AI駆動開発が終盤崩壊する構造的な原因
- 仕様駆動開発(SDD)の考え方とフロー
- takt の仕組み(ステートマシン × Faceted Prompting)
- cc-sddワークフロー(要件生成→設計→検証→実装→並列レビュー)
- OpenSpecワークフロー(小変更向けの explore → apply → archive)
- npx一発で今日から導入できる方法

▶ 対象
- AIエージェントに実装を任せているが品質・整合性が不安な方
- AI駆動開発のワークフローを標準化・自動化したい方

▶ リンク
- takt-sdd: github.com/j5ik2o/takt-sdd
- ai-tools: github.com/j5ik2o/ai-tools
- takt: github.com/nrslib/takt

Avatar for かとじゅん

かとじゅん

April 15, 2026

More Decks by かとじゅん

Other Decks in Technology

Transcript

  1. プロフィール 加藤潤一 2014–2024年: kubell(旧 Chatwork) 2025年1月: 独立(IDEO PLUS LLC 代表)

    DDD / 関数型 / 分散システム設計 / AI-DLC OSS: takt-sdd / fraktor-rs nrslib/takt メンテナ第一号 終盤で崩壊させないAI駆動開発 2
  2. なぜAI駆動開発は終盤で崩壊するのか よく聞く声: 「後半から手が止まった」 「AIの出力が意図と違った」 「設計がバラバラ」 ふわっとした指⽰ AIが速く コード⽣成 「なんか違う」 修正ループ

    😱 全体 崩壊 プロンプトの曖昧さ(文字間・行間の空間の大きさ)が、後半のコストになる。 根本原因は3つ:仕様がない / 制約がない / 検証ゲートがない 終盤で崩壊させないAI駆動開発 4
  3. 仕様駆動開発(SDD)で防ぐ コードより先に、仕様を書く。 要件定義 設計 ✓ GO/NO-GO タスク分解 実装 ✓ GO/NO-GO

    完成 修正 修正 仕様がない → 要件ドキュメント(EARS形式)を先に生成 制約がない → Steering(プロジェクトメモリ)で制約を注入 検証がない → 各フェーズにGO/NO-GOゲート 崩壊を「早期に」検出し、 「小さな」修正で済ませる。 終盤で崩壊させないAI駆動開発 6
  4. taktとは nrslib/takt — AIエージェントをYAMLワークフローで制御するCLIツール 1月25日に初コミット。ほぼ三ヶ月で950スター越え $ takt -w cc-sdd-requirements -t

    "認証機能を追加したい" .takt/workflows/cc-sdd-requirements.yaml を読み込む step を順に実⾏ 各 step で CLI型AIエージェント が作業 出⼒の内容でルール評価 → 次の step へ遷移 ワークフローは YAMLで宣言的に定義(状態・遷移条件・使うファセット) AIの出力は非決定的でも、遷移パスは決定論的に制御される Claude / Codex / Cursor などプロバイダ非依存(切り替えは設定のみ) 終盤で崩壊させないAI駆動開発 8
  5. Step 1: ワークフローを YAML で定義する steps: - name: implement #

    実装する - name: review # レビューする - name: fix # 修正する 手順をステップとして宣言する。プロンプトではなく構造。 終盤で崩壊させないAI駆動開発 9
  6. Step 2: レビューに強制力を持たせる - name: review persona: reviewer edit: false

    # コードを編集できない rules: - condition: 問題なし next: COMPLETE - condition: 修正が必要 next: fix # fix に強制遷移 edit: false でレビュアーの改ざんを防ぎ、ルールで次の手順を強制する。 終盤で崩壊させないAI駆動開発 10
  7. Step 3: 合格するまで繰り返す - name: fix persona: coder rules: -

    condition: 修正完了 next: review # review に戻る fix は必ず review に戻る。レビューを通過しない限り完了できない。 終盤で崩壊させないAI駆動開発 11
  8. taktのワークフロー構造(例) steps: - name: generate-requirements persona: cc-sdd-requirements-analyst instruction: generate-requirements output_contracts:

    report: - name: requirements.md format: cc-sdd-requirements rules: - condition: 要件が明確で完全 next: COMPLETE - condition: 情報不足、要件が不明確 next: ABORT # ... - name: implement # ... ワークフロー = ステートマシン + Faceted Prompting 終盤で崩壊させないAI駆動開発 12
  9. takt-sddとは 仕様を書け。あとは takt が確実に届ける。 takt を用いた 仕様駆動開発(SDD)ワークフロー定義リポジトリ。 要件定義〜設計〜タスク分解〜実装〜検証を ワークフロー (YAML)で自動化

    cc-sdd / OpenSpec と互換性あり Claude / Codex / Cursor / GitHub Copilot 等プロバイダ非依存 # 自分のプロジェクトに導入するだけ npx create-takt-sdd npx create-takt-sdd --lang ja # 日本語版 終盤で崩壊させないAI駆動開発 13
  10. SDDワークフロー全体 1 Phase 1 cc-sdd:requirements EARS形式の要件ドキュメント⽣成 1.5 Phase 1.5 (optional)

    cc-sdd:validate-gap 既存コードとのギャップ分析 2 Phase 2 cc-sdd:design 技術設計・発⾒ログ⽣成 2.5 Phase 2.5 cc-sdd:validate-design 設計レビュー(GO/NO-GO + ⾃動修正) 3 Phase 3 cc-sdd:tasks 実装タスクリスト⽣成 4 Phase 4 cc-sdd:impl 適応型バッチ実装(逐次/並列) 5 Phase 5 cc-sdd:validate-impl 並列レビュー(アーキ・QA・実装) 終盤で崩壊させないAI駆動開発 14
  11. フェーズ別実行 # Phase 1: 要件生成 npm run cc-sdd:requirements -- "JWTベース認証機能"

    # → requirements.md を確認・修正してから次へ # Phase 2: 技術設計 npm run cc-sdd:design -- "feature=jwt-auth" # → design.md を確認・修正してから次へ # Phase 2.5: 設計検証(NO-GOなら自動修正→再検証) npm run cc-sdd:validate-design -- "feature=jwt-auth" # Phase 3〜5: タスク生成→実装→検証 npm run cc-sdd:tasks -- "feature=jwt-auth" npm run cc-sdd:impl -- "feature=jwt-auth" npm run cc-sdd:validate-impl -- "feature=jwt-auth" ※ 既存コードがある場合は Phase 1.5 cc-sdd:validate-gap も挟める 終盤で崩壊させないAI駆動開発 15
  12. OpenSpecワークフロー 探索 explore npm run opsx:explore taktの対話モードで変更内容を探索 提案 propose npm

    run opsx:propose -- "変更の説明" 変更を提案・アーティファクトを⼀括⽣成 実装 apply npm run opsx:apply -- "add-user-auth" タスクを実装 完了 archive npm run opsx:archive -- "add-user-auth" 完了した変更をアーカイブ 新機能開発は cc-sdd、設定変更・小修正は OpenSpec — 用途で使い分けられる。 終盤で崩壊させないAI駆動開発 16
  13. 閉ループ構造 — 完了条件を満たすまで返ってこない 実装ループ レビュー修正ループ 最終検証 plan 計画 implement 実装

    ai_review AIレビュー ai_fix 修正 supervise 最終検証 ✓ COMPLETE 完了条件達成 未完タスクあり 再レビュー テスト失敗・要求未達 → plan に差し戻し plan → implement を全タスク完了まで繰り返す ai_review → ai_fix でAI特有のアンチパターンを自動修正 supervise でテスト失敗・要求未達を検出 → plan に差し戻し ループ監視( loop_monitor )が異常ループを検出して自動エスカレーション 終盤で崩壊させないAI駆動開発 17
  14. ドキュメントを読まなくても使える npx -y skills add j5ik2o/ai-tools スキルをインストールするだけで、AIエージェントが takt を知っている状態になる。 スキル

    役割 takt-analyzer ワークフロー品質・実行ログの診断 takt-facet-builder 個別ファセットの作成・編集 takt-optimizer トークン削減・ワークフロー最適化 takt-workflow-builder カスタムワークフロー(YAML)の生成 takt-task-builder tasks.yaml・タスクディレクトリの管理 takt のドキュメントを読む前にまずスキルを入れてエージェントに聞けばいい。 終盤で崩壊させないAI駆動開発 18