記事公開日
【Kiro入門】Kiro Getting Startedを受講②仕様駆動開発(SDD)を実践してみた!

この記事のポイント
本記事では、AIコードエディタ「Kiro」のSpecモードを活用し、自然言語のアイデアから要件定義・設計を経て実装を行う「仕様駆動開発」のプロセスを解説します。手戻りの少ない開発フローと、環境依存エラーさえも自律的に解決するAIの高い対応力を検証しました。
- 仕様駆動による手戻りのない開発:
いきなりコードを書くのではなく、requirements.md(要件)、design.md(設計)、tasks.md(タスク)という3段階のドキュメント生成を経て実装に進むことで、論理的で手戻りの少ない開発フローを実現しています。 - 環境依存エラーの自律的な解決:
実装フェーズにおいて、実行環境にpipコマンドが見つからないエラーが発生した際、Kiroが自律的にpython -m pipへの切り替えを提案・実行し、ユーザーの介入なしにトラブルシューティングを完遂しました。 - 外部API連携ツールの実動作検証:
作成したPythonスクリプトにより、千代田区(デフォルト)や北広島市(引数指定)の天気情報取得に成功。さらに「低温注意報(予想気温-8.0℃)」といった詳細な気象警報の表示要件も正確に実装・動作することを確認しました。
前回のおさらい:KiroのSpecモードとは
DXソリューション営業本部の三浦です。前回に引き続き、注目のAIコードエディタ/エージェント「Kiro」のGetting Started(入門)コースを受講していきます 。
前回はKiroのセットアップと基本的なインターフェースを確認しました。今回は、Kiroの大きな特徴である「Spec(仕様)モード」を使って、実際に動くアプリケーションを作っていきます。
Specモードは、「いきなりコードを書く」のではなく、「アイデアを構造化された仕様書(requirements.md)に落とし込み、それを計画(design.md / tasks.md)に変えてから実装する」という、開発プロセスをAIがリードしてくれる機能です 。
↓前回のブログはこちら
1. requirements.md(要件定義)の作成
今回は、デモのシナリオに沿って「郵便番号から現在の気温と降水確率を取得するクロスプラットフォーム対応のスクリプト」を作成します。
プロジェクトの作成と要件のヒアリング
まず、KiroのSpecパネルで作りたいツールの概要を伝えます。「ターミナルで実行できるスクリプトを計画したい...」と自然言語で伝えると、Kiroがプロジェクト名を提案し、最初の requirements.md を生成してくれます。
自然言語による指示で、構造化されたドキュメントが生成されます。
生成された requirements.md には、以下の内容が含まれていました。
自然言語での会話から、構造化されたドキュメントが生成されます。
生成された requirements.md には、以下の内容が含まれていました。
- User Story(ユーザーストーリー)
- Acceptance Criteria(受け入れ基準)
- 主要機能(デフォルト郵便番号、引数指定、エラーハンドリング等)
会話による仕様の追加
ここで、わざと要件を追加してみます。「私のエリアに関する注意報(熱、寒さ、風など)がある場合は詳細を表示したい」と伝えると、Kiroは即座に requirements.md を更新し、気象警報・注意報の表示機能を追加してくれました。
変更内容は差分で表示され、ユーザーが「Accept」することで確定します。
変更内容は差分で表示され、ユーザーが「Accept」することで確定します。
2. design.md(設計)とtasks.md(実装計画)
要件が固まったら、「Move to design phase」に進みます。ここがKiroの凄いところですが、実装に必要な技術情報を自律的にWeb検索(Web search)し始めます。
- 日本の郵便番号APIの調査
- 気象データ取得APIの選定
- クロスプラットフォーム対応ライブラリの比較
これらの調査結果に基づき、design.md が生成されました。今回はPythonを採用し、モジュラー設計で実装する方針が示されました。
実装に必要な技術情報の調査結果に基づく設計書(design.md)
タスクリストの生成
設計承認後、次は tasks.md が生成されます。実装プロセスが細かいタスクに分割され、各タスクに「テスト作成」「ドキュメント更新」などが紐付いています。今回は「Keep optional tasks」を選択し、コア機能の実装を優先する進め方を選びました。
実装プロセスが詳細化されたタスクリスト(tasks.md)
3. Kiroによる自律コーディングとトラブルシューティング
いよいよ実装フェーズです。tasks.md のリストに従って「Start task」をクリックするだけで、Kiroがコーディングを開始します。
ここで特筆すべきは、エラー発生時の対応力です。
環境依存エラーの自動解決
タスクの途中でライブラリをインストールしようとした際、私の環境には pip コマンドへのパスが通っておらずエラーが発生しました。しかし、私が原因を調査する前に、Kiroが自律的に代替案を提示してきました。
ユーザーは提示された解決策を「Trust」または「Accept」するだけです。
ユーザーは提示された解決策を「Trust」または「Accept」するだけです。
このように、単純にコードを書くだけでなく、実行環境のエラーに対しても「トラシュー」→「再実行」のループをAI側で回してくれます。ユーザーは基本的に承認ボタン(Accept command)を押していくだけで、タスクが次々と「Completed」になっていきました。
4. 完成したCLIツールの動作確認
すべてのタスクが完了し、テストもパスしました。README.md も自動生成されています。
全タスク完了後の画面。テストもパスし、READMEが生成されている
実際に出来上がったツール weather_lookup.py をKiroのTerminal上で動かしてみましょう。
デフォルト実行(千代田区)
引数なしで実行すると、デフォルト設定の千代田区の天気が表示されました。
Location: 千代田区 Temperature: 8.1°C Precipitation Probability: 0% No active weather alerts.
郵便番号指定(北広島市)
次に、引数で郵便番号(エスコンフィールド付近)を指定してみます。
> python weather_lookup.py 061-1112 Location: 北広島市 Temperature: -2.7°C Precipitation Probability: 0% Weather Alerts: - Cold Warning (Advisory) Description: Freezing temperature advisory: -8.0°C expected Effective: 2025-12-26 06:55 Expires: 2025-12-26 23:59
しっかりと指定した場所の天気が取得でき、追加要件で入れた「低温注意報(Cold Warning)」も表示されています。
まとめ:仕様書駆動開発のメリット
Kiro Getting Startedのデモを通じて、仕様書(Spec)から実装までを一気通貫で行いました。
感想としては、「手戻りの少なさ」に尽きます。requirements.md で要件を固め、design.md で構造を決めてからコーディングに入るため、AIによくある「動くけど中身がぐちゃぐちゃ」「直そうとすると壊れる」といった現象が起きにくいです。目的から逸れずに一直線に完成まで進む感覚は、Kiroならではの強みだと感じました。
一方で、プロセスのほとんどが自動化されているため、最初の要件定義(Spec)の段階でユーザーが成果物をイメージした明確な指示を出せるかが品質を左右します。PowersやSteering、Hooksといった高度な機能も使いこなせば、さらに複雑な開発も効率化できそうです。
QESでは、こうした最新のAI開発ツールの検証や導入支援も行っています。ご興味があれば、ぜひご相談ください。
もし「このサービスについて知りたい」「AWS環境の構築、移行」などのリクエストがございましたら、弊社お問合せフォームまでお気軽にご連絡ください。 複雑な内容に関するお問い合わせの場合には直接営業からご連絡を差し上げます。 また、よろしければ以下のリンクもご覧ください!
<QES関連ソリューション/ブログ>
<QESが参画しているAWSのセキュリティ推進コンソーシアムがホワイトペーパーを公開しました>
※Amazon Web Services、”Powered by Amazon Web Services”ロゴ、およびブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。


