スペック駆動開発の実践 - Kiro で要件定義からコード生成までを一気通貫で実行する
Kiro のスペック駆動開発ワークフローを解説。要件定義書・設計書・タスクリストの自動生成、エージェントによるタスク実行、ステアリングファイルによるルール制御を紹介します。
スペック駆動開発とは
従来の AI コーディングツールは、チャットでの対話やコード補完が中心で、開発者の指示に逐次的に応答するスタイルでした。この方式は小さなタスクには有効ですが、複数ファイルにまたがる機能開発やアーキテクチャの変更では、AI が全体像を把握できず、一貫性のないコードが生成されがちです。Kiro のスペック駆動開発は、この課題に対するアプローチです。開発者が自然言語で要件を記述すると、Kiro は (1) 要件定義書 (requirements.md) で機能要件・非機能要件を整理し、(2) 設計書 (design.md) でアーキテクチャとデータフローを定義し、(3) タスクリスト (tasks.md) で実装手順を分解します。この 3 つのドキュメントが AI エージェントの「仕様書」となり、各タスクを順番に実行してコードを生成します。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
ステアリングファイルによるルール制御
ステアリングファイルは、プロジェクト固有のルールや方針を AI に伝える仕組みです。.kiro/steering/ ディレクトリに Markdown ファイルとして配置し、コーディング規約、アーキテクチャ方針、使用するライブラリ、禁止事項などを記述します。例えば「TypeScript の strict モードを必ず有効にする」「状態管理には Zustand を使用し、Redux は使わない」「API レスポンスには必ず Zod でバリデーションをかける」といったルールを定義できます。ステアリングファイルには inclusion 設定があり、always (常に読み込み)、fileMatch (特定ファイルパターンに一致する場合のみ)、manual (手動で指定した場合のみ) を選択できます。グローバルステアリング (~/.kiro/steering/) はすべてのプロジェクトに適用され、ワークスペースステアリング (.kiro/steering/) はプロジェクト固有のルールに使用します。
エージェントフックとサブエージェント
エージェントフックは、特定のイベント (ファイル保存、Git コミットなど) をトリガーに自動処理を実行する機能です。例えば、TypeScript ファイルを保存するたびに ESLint を実行して自動修正する、コミット時にテストを実行して失敗したらコミットを中止する、といったワークフローを定義できます。サブエージェントは、メインのエージェントから独立したコンテキストで動作する専門エージェントです。複雑なタスクを分割し、ファイル群が独立している場合は並列実行で効率化できます。例えば、バックエンドの API 実装とフロントエンドのコンポーネント実装を同時に進めるといった使い方が可能です。プランナーエージェントは読み取り専用の特殊なエージェントで、要件の分解と実装計画の策定に特化しています。実装前に設計の妥当性を検証し、見落としや矛盾を事前に検出します。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ - スペック駆動開発の活用指針
Kiro のスペック駆動開発は、要件定義から実装までを構造化されたワークフローで進めることで、AI コーディングの品質と一貫性を高めます。ステアリングファイルでプロジェクトのルールを明示し、エージェントフックで品質チェックを自動化することで、AI が生成するコードの品質を継続的に担保できます。まずは小規模な機能追加からスペック駆動開発を試し、ステアリングファイルを徐々に充実させていくアプローチを推奨します。
AWS の優位点
- 自然言語で要件を記述すると、requirements.md (要件定義)、design.md (設計)、tasks.md (タスクリスト) を自動生成
- 各タスクを AI エージェントが順番に実行し、コード生成・テスト作成・リファクタリングを自動化
- ステアリングファイル (.kiro/steering/) でプロジェクト固有のルール (コーディング規約、アーキテクチャ方針) を AI に指示
- VS Code 互換のエディタをベースとし、既存の拡張機能やキーバインドをそのまま利用可能
- エージェントフック機能でファイル保存時やコミット時に自動処理 (リント、テスト実行、ドキュメント更新) を実行
- プランナーエージェントで要件の分解と実装計画の策定を読み取り専用で実行し、実装前に設計を検証
- Anthropic Claude をバックエンドモデルとして使用し、高品質なコード生成と推論を実現