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

未踏IT 2025 Demo Day Design as CodeによるSpec-Driven...

未踏IT 2025 Demo Day Design as CodeによるSpec-Driven Developmentの実現

未踏ITのDemo Day(成果報告会)で、未踏ITのプロジェクト期間で開発したソフトウェア設計をコード化して検証可能にするライブラリ goat と、goatを用いた設計特化AI Agentの YAGI について発表しました。

Honoka Toda

April 02, 2026

Transcript

45 slides
  1. 技術スタック Golang, Kubernetes, AWS, GCP 株式会社CyberAgent / 株式会社AbemaTV hono0130__ hono0130

    戸田朋花 ( Honoka Toda ) 得意領域 バックエンド、クラウドインフラ
  2. 15 stateA stateB Event Event stateA stateB Event SteteMachine StateMachine

    Queue goatによるシステムのモデリング ユーザーはStateMachineとEventを定義してシステムを 表現する
  3. システムを構成する サーバー/コンテナ等を表現する 複数の状態を持つことができる 16 goatによるシステムのモデリング StateMachine Event 起動中 停止中 Event

    Event Event Queue サーバー/コンテナ間の リクエスト/レスポンス等を表現する Queueを介して非同期で送受信する
  4. 検証できることの例 - どの状態でも常に成り立つこと - 商品在庫は負の値にならない - P が起きたらいつか Q が起きること

    - リクエストを送ったら、いつかレスポンスが返る  - 何度でも繰り返し起きること - 定期レポートが毎週届き続ける - いつか安定して、以降ずっと成り立つこと - 障害が起きても、いつか正常な状態に戻って安定する 18
  5. 21 goat が実現すること Before After → 設計が標準化されていない Goによる構造化された記述 設計の検証手段がない モデル検査による自動検証

    実装との統合が難しい 生成されたスキーマ・テスト が利用可能 goat によって設計の抱える課題が緩和される
  6. YAGI の PoC 開発 30 要件定義・設計特化のAI Agent YAGI のPoCを開発した CLI型のAI

    Agent 設計フェーズでのAI活用支援 Spec-Driven Development の実現
  7. YAGI の PoC 開発 31 YAGI では対話を通じて実現したいシステムの Design Docs と

    goat による設計が作成される Design Docs 1. 背景 2. 目標と非目標 3. 設計 4. 検討された代替案 自然言語による設計 コードによる設計
  8. YAGI の PoC 開発 34 YAGIでは以下のフェーズを辿って設計を進める - Requirements Phase -

    要件の整理 - Schema Phase - goatで表現するシステムのスキーマの定義 - Spec Phase - goatで表現するシステムの振る舞いの定義 - Rule Phase - goatで表現するシステムのルールの定義 - Documentation Phase - 自然言語による設計
  9. デモ 35 以下のテーマでYAGIのデモを行う 会議室予約システムの設計 - 課題 - メール等で会議室予約をした結果、予約の競合が発生している - 要件

    - リアルタイムの空き情報取得 - 予約の作成・キャンセル - 二重予約防止 - 非目標 - 外部カレンダーとの連携
  10. デモ 36 - Requirements Phase - 要件の整理 - Schema Phase

    - goatで表現するシステムのスキーマの定義 - Spec Phase - goatで表現するシステムの振る舞いの定義 - Rule Phase - goatで表現するシステムのルールの定義 - Documentation Phase - 自然言語による設計
  11. デモ 39 - Requirements Phase - 要件の整理 - Schema Phase

    - goatで表現するシステムのスキーマの定義 - Spec Phase - goatで表現するシステムの振る舞いの定義 - Rule Phase - goatで表現するシステムのルールの定義 - Documentation Phase - 自然言語による設計
  12. デモ 41 - Requirements Phase - 要件の整理 - Schema Phase

    - goatで表現するシステムのスキーマの定義 - Spec Phase - goatで表現するシステムの振る舞いの定義 - Rule Phase - goatで表現するシステムのルールの定義 - Documentation Phase - 自然言語による設計
  13. デモ 43 - Requirements Phase - 要件の整理 - Schema Phase

    - goatで表現するシステムのスキーマの定義 - Spec Phase - goatで表現するシステムの振る舞いの定義 - Rule Phase - goatで表現するシステムのルールの定義 - Documentation Phase - 自然言語による設計

More Decks by Honoka Toda

Other Decks in Technology