Amazon Web Services ブログ

チャットから仕様へ : Kiro を用いた AI 支援開発の深掘り

本記事は米国時間 2025 年 7 月 15 日に公開された From Chat to Specs: A Deep Dive into AI-Assisted Development with Kiro を翻訳したものです。

開発者であれば誰もが経験したことがあるでしょう。新しい機能やアプリケーションの素晴らしいアイデアを思いつき、お気に入りの AI コーディングアシスタントを立ち上げます。ところが…その後 1 時間を要件の洗い出しやエッジケースの明確化に費やし、コードを 1 行も書く前にコンテキストウィンドウが探索的な会話で埋め尽くされてしまいます。

Kiro という新しい IDE は、この問題を Spec-Driven Development(仕様駆動型開発) によって根本から変えます。

現在の AI コーディングアシスタントの限界

現在の AI コーディングアシスタントの限界は予測可能で非効率的なパターンに従う傾向があります。開発者が高レベルのプロンプトを与えると、AI は要件を完全に理解する前に即座にコード生成へ飛びついてしまいます。この時期尚早な行動は、「いや、実際にはこういう意味だった…」という明確化の繰り返しを招きます。初期の要件が十分に明確でなかったためです。こうした探索的対話が続くにつれ、コンテキストウィンドウは往復の議論でますます散らかり、最終的なコード生成に残るスペースは限られます。その結果、最終的なアウトプットの品質と完全性に影響が出てしまい、プロセス全体が本来よりも非効率になります。つまり、このアプローチは LLM をまずコードジェネレーターとして扱ってしまっており、本来は開発ライフサイクル全体を通して「思考のパートナー」として位置づけるべきなのです。

仕様駆動型開発: 設計意図と実装をつなぐ

難しい機能に取り組むとき、Kiro はあなたのインテリジェントな相談相手として、コードベースの理解、問題の明確化、効率的な品質解決を助けます。

Kiro と協力して、明確な要件、システムアーキテクチャ、技術スタックの考慮、実装アプローチを含む簡潔な仕様を作成できます。Kiro はすべての要件や制約を明示化し、それをコンテキストとして利用して、少ない反復回数で高精度にタスクを完了します。これこそが 仕様駆動型開発の力 です。

それでは、Kiro のアプローチがもたらす主な利点をさらに詳しく見ていきましょう。

1. 既存コードベースの理解

新開発に着手する前に、Kiro は既存コードを解析し、3 つの基礎ドキュメントである structure.md (コードベースのアーキテクチャ)、tech.md (技術スタックとパターン)、product.md (ビジネス文脈と要件) を生成します。これにより、チーム全員が今後の仕様策定を支える明確な基盤を共有できます。

2. プロジェクトの分析と計画

プロジェクトプロンプトを spec モードで与えると、Kiro はすぐにコーディングを始めるのではなく、要件を深く分析し、潜在的な課題を特定し、包括的な計画ドキュメントを作成します。

3. 包括的な計画ドキュメントの生成

シンプルなプロンプトから、Kiro は以下の詳細仕様ファイルを生成します。

  • 要件分析: プロンプトを具体的で実行可能な要件に分解
  • 技術設計: アーキテクチャ判断、技術選択、実装アプローチ
  • タスク分解: 明確な受け入れ基準を伴う粒度の細かい開発タスク

4. AI との効果的な協働

Kiro は仕様ファイルを Markdown 形式でプロジェクトディレクトリに保存します。コードが書かれる前にレビュー・編集・改善が可能になり、チームや関係者との自然なコラボレーションのチェックポイントを生み出します。

5. コーディング効率とコンテキストの最大化

実際にコーディング段階に入ると、Kiro は仕様ファイルを参照するため、探索的会話でコンテキストを圧迫することがありません。これにより、実際のコーディングタスクに最大限のコンテキストスペースを確保できます。

仕様駆動型開発の力

仕様駆動型開発は、ソフトウェアの設計・構築・維持の方法を根本から改善する重要な利点をもたらします。計画を「余計な負担」と見なすのではなく、競争優位性へと変えます。このアプローチは開発プロセスを次のように変革します。

高コストになる前に問題を発見

開発途中で要件の問題に気づくのではなく、Kiro が事前にあいまいさを特定して解消します。これによりコストのかかる手戻りを防ぎ、実装前にアラインメントが取れます。

プロジェクトの方向性を制御

仕様策定フェーズは自然な停止ポイントを作り、人間がレビュー・修正・承認できるため、リソースを投資する前に方向性を確認できます。

進捗を失わずに反復可能

要件定義でミスがあっても問題なし。仕様ファイルを修正し、実装計画を再生成できます。会話履歴をすべてやり直す必要はありません。

AI を重要な部分に集中させる

計画フェーズをファイルに外部化することで、AI のコンテキストは目の前のコーディングタスクに集中します。その結果、より高品質なコード生成が可能です。

シームレスなチームコラボレーション

仕様ファイルは生きたドキュメントとして、標準的な開発ワークフローの中でレビュー・コメント・貢献が可能です。

組織的ナレッジの構築

あらゆる決定や要件が文書化され、なぜ特定の技術選択が行われたのかという明確な監査証跡を残し、将来のチームメンバーにコンテキストを提供します。

Kiro スペックを実際に見てみよう

仕様駆動型開発を理解する最良の方法は、実際のワークフローを観察することです。新規プロジェクトでも既存コードベースでも、Kiro の体系的アプローチは堅実な基盤上で構築を可能にします。典型的なワークフローは、最初のコンセプトから実装準備の整った仕様書まで、次のように展開されます。

図1: Kiro は「仕様駆動開発」モードを使用して、要件、設計、タスクを含む詳細な出力を生成します

ステップ 1: プロジェクトの開始

新機能に取り掛かる前に、まずプロジェクトのコンテキストを確立します。

ユーザー: 「このプロジェクトの steering をセットアップして」

Kiro は既存コードベースを分析し、次の 3 つの基礎ドキュメントを生成します:

  • structure.md – 現在のアーキテクチャ、主要コンポーネント、コード構成
  • tech.md – 技術スタック、パターン、技術的制約
  • product.md – ビジネス文脈、既存機能、ユーザーワークフロー

これにより、構築する対象の明確な基盤理解が得られます。

ステップ 2: プロジェクト仕様の生成

次に、構築したいプロジェクトの詳細を整理していきます。

ユーザー: 「小規模チーム向けのリアルタイム協働機能を持つタスク管理アプリを作りたい」

ここで仕様駆動型開発の真価が現れます。Kiro はフレームワーク選択や DB 設計に飛びつくのではなく、一歩下がって本当に達成したいことを理解します。既存アーキテクチャや制約を踏まえ、この新機能がどう収まるかを考えます。

Kiro は順を追って以下のドキュメントを作成します。

  • requirements.md – ユーザーストーリーや受け入れ基準を含む詳細な要件分解
  • design.md – フレームワーク、アーキテクチャ図、構造を含む技術設計
  • tasks.md – 実装フェーズと順序立てられたタスク一覧

図2:Kiro は3つの主要文書(要件、設計、タスクリスト)を作成します

ステップ 3: レビューと改良

仕様をレビューし、例えば以下のような要件を追加できます。

## Additional Requirements
- Slack 通知との統合
- モバイル対応デザインを優先
- GDPR 準拠の考慮

ステップ 4: 情報に基づく開発

こうして Kiro がコーディングを始めるとき、参照するのは会話履歴ではなく、これらの包括的な仕様です。すべての実装判断は、文書化された要件と設計選択に基づいて行われます。

開発の未来は仕様から始まる

仕様駆動型開発は、受動的なコーディングから能動的な仕様策定への移行を意味します。これは単なるワークフロー改善ではなく、AI と協働してソフトウェアを構築する方法の根本的な進化です。AI を高度なオートコンプリートツールとして扱うのではなく、戦略的な思考のパートナーとして位置づけることで、変更コストが高くなる前により良い意思決定を行えるようになります。結果として、開発サイクルはより速くなり、コードの品質は向上し、予期せぬ事態は減少し、ドキュメントはプロセスに統合されているため後付けではなく常に最新の状態に保たれます。次に新しい機能を構築するときは、コードではなく仕様から始めてみてください。将来の自分(そしてチームメイト)はその明確さに感謝するでしょう。そして、最高のコードとは書く前に計画されたコードであると気づくかもしれません。

準備はできましたか?違いを体験してみましょう。ウェイトリストに参加してください。