はじめに
参考にした記事の内容やリンクは文中に記載した。
当サイトに掲載している記事は個人の見解であり、所属する組織の公式見解ではない。
目的と背景
Kiroを使用してSpec Driven Developmentがどのようなものか、概要を理解する。
作ったアプリ
マルチモーダルコンテンツビューアを作った。アプリの説明は以下の通り。
マルチモーダルコンテンツビューアは、ウェブベースのアプリケーションであり、ユーザーがAWS Bedrock Agentsにクエリを投げ、Bedrock Knowledge Basesから返されるマルチモーダルコンテンツを可視化できるようにします。本システムは、ユーザーがAIエージェントと直感的に対話し、テキスト、画像、動画、その他さまざまなメディアタイプをウェブブラウザ上で閲覧できるインターフェースを提供します。
これは、Kiroのrequirements.mdのIntroductionにある記述を日本語に翻訳したものである。Kiroは執筆時点は日本語に対応していないので、翻訳は別の方法で行った。
KiroのSpec定義用ドキュメント
- requirements.md
- ビジネス要件を記述する
- design.md
- システム要件を記述する。Mermaidでアーキテクチャ図がPreviewできる。
- task.md
- システム構築のためのタスクを記載する。
design.mdから抜粋したアーキテクチャ図はこちら
tasks.mdが作成したカテゴリーはこちら
Task Categories
🏗️ Foundation Tasks
Tasks that establish the basic project structure and testing framework.
🔧 Backend Implementation Tasks
Tasks for implementing the Node.js backend services and AWS integration.
🎨 Frontend Implementation Tasks
Tasks for implementing the React.js frontend components and user interface.
🔗 Integration Tasks
Tasks for connecting frontend and backend components.
✅ Validation Tasks
Tasks for testing and validating the complete system.
Backend Implementation Tasks
Foundation Tasksを完了させた後、Backend Implemetationに着手した。最初はAPI Gateway経由でBedrock Agentにアクセスしようとしたが、Amazon Qに聞いたところAgentCore Gatewayというのが推奨だったので、そちらに切り替えた。AgentCore Gatewayを使ってAgentからレスポンスを取得するフローが複雑だったので、作成時に学んだ内容をアーキテクチャ図に補記してほしく、Kiroに指示したらアーキテクチャ図が以下のように変わった!!プロンプトを入れるだけでデザインドキュメントを書き換えてくれるので、非常に便利だと思った。
変更後のdesign.mdはこちら。Authentication Flowまで自動で作ってくれた!
Architecture
Authentication Flow
指示すれば、次にKiroを開いたところから何をすればいいかをまとめてドキュメント化してくれるので、急に作業を中断する必要ある時も便利だった!
Backend APIをテストする
- Backend Implementation Tasksを進める前に、まずはBedrock AgentCore GatewayのAPIをテストした。CognitoでTokenを取得してから、それを使ってAPIを実行して確認した。開発用のサーバがWindowsだったので、PowerShellを利用した。
- Backend Applicationが完成したら、LocalにExpressサーバを起動してAPIを実行した。
上記のテスト手順をKiroにお願いして作成してもらった。API_TESTING.mdとしてコードのプロジェクト内に保存された。Windows PowerShellで書いて欲しいと頼めばそれをしてくれるので便利だった。
この辺で無料枠のトークンを使いきり、追加で月20ドルのKiro Proを購入。。。生成AIを使うとお金がかかるので、便利だからと無関係な質問をしないほうがいい。
Documentation guide
SDDを進めるには複数のドキュメントを用意する必要がある。Kiroに概要をまとめてもらった。Steeringドキュメントを最初に詳細に定義しておかないと、Kiroが暴走する印象を受けた。
🎯 ドキュメント完了順序
| フェーズ | 目的 | ドキュメント |
|---|---|---|
| 1. プロジェクト基盤 | プロジェクト構造と開発標準の確立 | ステアリングルール(7ファイル) AGENTS.md |
| 2. 機能仕様 | 仕様駆動開発手法を使用して構築内容を定義 | requirements.md design.md tasks.md |
📋 仕様ドキュメント(仕様駆動開発)
| ドキュメント | 役割 | 主要な責任 | 目的 | 対象者 |
|---|---|---|---|---|
| requirements.md | 正式な要件 | • ビジネス価値を持つユーザーストーリー • EARS受け入れ基準 • 技術用語集 • 要件のトレーサビリティ |
• システムが何をすべきかを定義 • テスト可能な基準を提供 • プロパティベーステストを可能にする |
プロダクトオーナー、開発者 |
| design.md | 技術設計 | • システムアーキテクチャ • データモデルとインターフェース • 正確性プロパティ • エラーハンドリング戦略 |
• システムがどのように構築されるかを定義 • 要件から実装への橋渡し • 自動化された検証を可能にする |
アーキテクト、シニア開発者 |
| tasks.md | 実装計画 | • 個別のコーディングタスク • タスクの依存関係 • プロパティベーステストタスク • 進捗追跡 |
• 設計を管理可能なステップに分解 • 段階的開発を可能にする • 実装進捗を追跡 |
開発者、実装チーム |
🎯 ステアリングルール(開発標準)
| ドキュメント | 焦点領域 | 主要な責任 | 対象者 |
|---|---|---|---|
| development-standards.md | コアプラクティス | TypeScriptベストプラクティス、コード品質、アーキテクチャ原則 | 全開発者 |
| frontend-development.md | React.js | コンポーネント標準、状態管理、パフォーマンス、アクセシビリティ | フロントエンド開発者 |
| testing-and-quality.md | テスト戦略 | プロパティベーステスト、ユニットテスト、統合テスト、カバレッジ | 全開発者、QA |
| security-rules.md | セキュリティ | 認証、入力検証、データ保護、セキュリティテスト | 全開発者、セキュリティチーム |
| aws-bedrock-integration.md | AWS統合 | Bedrock Gateway、Cognito認証、エラーハンドリング、パフォーマンス | バックエンド開発者、AWS専門家 |
| code-review-rules.md | コードレビュー | レビューチェックリスト、品質標準、プロセスガイドライン | 全開発者、チームリード |
| deployment-rules.md | デプロイメント | デプロイメントプロセス、環境設定、監視 | DevOpsチーム |
Frontend Implementation Tasks
To be continued...
今後やってみたいこと
- AgentCoreのGatewayを使ってみたが、その他のMemory, Tools等もKiroのコード生成を通して触ってみたい。
- Strands SDKとAgentCoreには密接な関係がありそうなので、そちらについても検証したい。
- MCP Serverを使うと何ができるのか理解する。