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

KiroのSpecで「五目並べ」を作ってみる

 KiroのSpecで「五目並べ」を作ってみる

Satoshi Kaneyasu

September 22, 2026

Transcript

22 slides
  1. 目次 の Spec 駆動開発(=仕様駆動開発)とは Vibe Coding との対比 仕様駆動開発は何もルールがない場合の型である AI 駆動開発・仕様駆動開発における要件定義とは

    要件定義の粒度はツールにも現れている Kiro の Spec のディレクトリ構成 Kiro の Spec でローカルルールの追加までやってみるとしたら Vibe で Steering を作る Spec で実装する Spec で一番見るべきは requirements.md Kiro に採用されている EARS 記法 Spec の design.md と tasks.md はどれぐらい時間をかけて見るべき? 新規追加と修正は必ずコミット分けること まとめ Kiro
  2. Vibe Coding との対比 Vibe Coding 進め方 強み 弱み 会話しながら少しずつ すぐ動くものが見える

    決めごとが会話に埋もれる 駆動開発 要件→設計→実装の順に固める 認識のズレが早期につぶせる 最初に考えるコストがかかる Spec
  3. 要件定義の粒度はツールにも現れている 仕様駆動開発のツールにも、この傾向は現れています。 GitHub Spec Kit の場合は、 プロジェクトにおける要件定義フェーズで定めた各要件ごとに開発を回すイメージとなっています。 AWS AI-DLC の場合、一般的な要件定義を

    AI と一緒にやるような流れになっていますが、 「一緒にやる」でありざっくりしたものを入れればいい感じにやってくれる… というイメージではありません。 また、「一緒にやる」は開発者以外も含む関係者で画面を見ながらAIとやりとりするプロセスです。 ざっくりとした要件だとかなり時間がかかります。 このことからもAI駆動開発・仕様駆動開発における要件定義は「かなり小さい単位の要件」 でないと回らないと捉えた方がよいでしょう。
  4. Kiro のSpecのディレクトリ構成 の仕様駆動開発は、機能をSpecという単位で開発します。 Spec は Spec ごとにディレクトリが分かれ、中に 3 つのファイルが生成されます。 Kiro

    (リポジトリルート) / ├── index.html └── .kiro/ └── specs/ 機能①:基本ゲーム │ ├── requirements.md # 何を作るか │ ├── design.md # どう作るか │ └── tasks.md # 何をするか(AIがここを順に実行) └── local-rules/ # 機能②:ローカルルール追加 ├── goboard/ # ├── requirements.md ├── design.md └── tasks.md つのファイルを順に承認していくことで、AIが tasks.md に沿って実装を進めます。 コードを書くのは最後だけ、それまでは「言葉で合意する」プロセスです。 3
  5. Kiro のSpecでローカルルールの追加までやってみるとしたら 今日の Vibe ハンズオン(STEP 1〜5)を Spec に置き換えると、こう対応します。 ハンズオン STEP

    1 :目的の共有 STEP 2 :実装方針の作成 STEP 3 :最低限の実装 STEP 4 :ローカルルールを足す 役割 Vibe Steering Steering 実装 実装 での対応 Vibe で Steering を作る Vibe で Steering を作る Spec ( goboard )で実装する Spec ( local-rules )で実装する Spec ・2 はプロジェクトの方針・ルールなので Steering に書くのが自然です。 Steering 自体は Vibe で会話しながら作るのがよいでしょう。 STEP 3 以降が Spec の出番です。 STEP 1
  6. やり切った場合のディレクトリ構成 (リポジトリルート) / ├── index.html └── .kiro/ ├── steering/ │

    └── product-overview.md └── specs/ ├── goboard/ │ ├── requirements.md │ ├── design.md │ └── tasks.md └── local-rules/ ├── requirements.md ├── design.md └── tasks.md # 目的・技術方針・禁止ワードなど(STEP 1・2 相当) :基本ゲームの実装 # STEP 3 :ローカルルールの追加 # STEP 4
  7. Spec で一番見るべきはrequirements.md は、 次の要素で構成されます。 requirements.md 要素 Introduction Glossary Requirements User

    Story Acceptance Criteria 何が書かれるか この機能の概要と目的。何のための機能かを一段落で示す 用語集。プロジェクト固有の言葉(例:GoBoard、活三)の定義をそろえる 要件の一覧。1件ごとに User Story と Acceptance Criteria を持つ 要件の目的。「誰が・何をしたい・なぜ」の形で書く 受入基準。その要件を満たしたと言える条件を EARS 記法で列挙する 言葉のニュアンスがずれていると、実装にもずれが生じます。 Glossary の説明に納得できるか・漏れがないか、を確認すると良いです。
  8. User Story User Story と Acceptance Criteria は「誰が・何をしたい・なぜ」の形で書かれます。 (例:プレイヤーが石を置けるようにしたい。そうすることで手番を進められる) Acceptance

    Criteria は、 1 つの User Story につき複数列挙されます。 プレイヤーが空きマスをクリックしたとき THEN システムはそのマスに石を置く IF すでに石があるマスをクリックしたなら THEN システムはその操作を受け付けない WHEN 「何を作るか」が一つずつ明文化されているので、次の 2 点を確認します。 自分がやりたいことが書かれているか 何をもって完了と判断するか(受け入れ基準)が自分の認識と合っているか ここで認識がそろっていれば、実装後に「思ってたのと違う」が起きにくくなります。 OK ならば、 requirements.md の Continue で次に進めます。
  9. Kiro に採用されているEARS記法 (Easy Approach to Requirements Syntax)は、 要件を曖昧さなく書くための5つの文型です。 2009 年にロールス・ロイス社の

    Alistair Mavin らが提唱し、 2019 年の IEEE 要件工学会議で「 10 年間で最も影響力のある論文」を受賞しています。 EARS
  10. 5 つの文型 パターン 常時 イベント駆動 状態駆動 オプション機能 異常系 テンプレート システムは〜する

    〜のとき、システムは〜する 〜の間、システムは〜する 〜がある場合、システムは〜する もし〜なら、システムは〜する 使う場面 常に成り立つこと 操作・出来事への反応 ある状態が続く間の動作 特定機能がある場合のみ 例外・エラーの場合
  11. ツール別のEARS対応状況 Kiro の Spec ツール GitHub Spec Kit (aws-samples) AWS

    AI-DLC ( awslabs 公式) AWS AI-DLC の扱い 公式採用。requirements.md の受け入れ基準が EARS ベース 標準では非採用。EARS 統合は Issue 提案中、拡張で対応可 ADR-020 として EARS を正式採用( 2026 年 7 月) 標準として明示はなし。ワークフロー主体の方法論 EARS
  12. ローカルルール追加時に修正方法とリグレッションテストを 要件に入れる ローカルルールは既存のゲームロジックに影響します。 Spec で実装するなら、 requirements.md の段階で、 影響範囲を最小にする修正方法をとること、リグレッションテストの要件も入れます。 1. 2.

    修正方法:既存のゲームロジックへの影響範囲を最小にする形で追加すること リグレッションテスト:既存の基本ルール(石を置く・手番交替・勝敗判定)が 従来通り動作することを受け入れ基準として明記すること 「影響範囲を最小にすること」「壊れていないこと」を要件として明文化することで、 AI がテストケースを生成する際の基準にもなります。
  13. まとめ は「何を作るか」を先に固めてから実装する型。チームで共通のやり方を持てる プロジェクト全体の方針(技術スタック・テスト方針など)は Steering に、 機能ごとの要件は Spec に書く Spec で一番見るべきは

    requirements.md で「やりたいことが書かれているか」 「完了の判断基準が合っているか」を必ず確認する 新規実装と修正は必ずコミットを分け、変更は PR でレビューを挟む Spec

More Decks by Satoshi Kaneyasu

Other Decks in Programming