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

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

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

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

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

Avatar for Honoka Toda

Honoka Toda

April 02, 2026

More Decks by Honoka Toda

Other Decks in Technology

Transcript

  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 - 自然言語による設計