👻

Kiroの仕様書駆動開発プロセスをClaude Codeで徹底的に再現した

に公開
  • Kiroの仕様駆動開発のワークフロー全体をClaude CodeのSlash Commands(8ファイル)で再現できるようにした
  • Kiroのフォルダ構成、ドキュメント構成をトレースし全く同じ構成で出力されるように再現したため、Claude Codeで作成したプロジェクトをKiroでそのまま利用することが可能(互換性あり)

KiroはSpec-Driven Development (仕様駆動開発)に沿った開発プロセスが組み込まれたAIコーディングエージェントで、本番環境でシニアソフトウェアエンジニアが行う開発プロセスが落とし込まれています。

この仕様駆動開発プロセスはなかなか理想的で、仕様書の作成方法やドキュメント構成等が今後の開発プロセスのデファクトスタンダードになるはず...というかなってほしい

Kiroの仕様駆動開発を完全に再現できれば、「オレオレフレームワーク」ではなく、(AIコーディングエージェントは好きなものを使いながら)本番環境でもチームで同一の開発プロセスやドキュメント品質を維持出来るのではないか...

alt text

ということで普段メインで利用しているClaude CodeでKiroの仕様駆動開発プロセスを完全に再現できないかをリバースエンジニアリング(リバースコンテキストエンジニアリング?)しました。

https://github.com/gotalab/claude-code-spec

これでKiroがWaitlistでダウンロード出来なくとも、Claude Codeで同じことが実現できます!

よかったら実際に使ってみてフィードバックください。


alt text
↑こんな感じ(実装計画書): Claude Codeで作成した設計書はKiroのIDE上でもちゃんと表示され、「Start Task」ボタンも使えました!


Kiroって何?

KiroはAmazonが発表したAIコーディングエージェントが組み込まれたIDEです。

Kiroはバイブコーディングだけでなく、Specsによる仕様駆動開発で本番環境でも利用出来ることを想定して開発されました。
Kiroはすぐにコーディングを開始するのではなく、詳細な分析を行って要件を理解し、潜在的な課題を特定し、包括的な設計書を作成したあとに実装を開始します。

詳しくはおすすめの記事を貼っておきます!

https://zenn.dev/sesere/articles/31d4b460c949e5

https://kiro.dev/blog/introducing-kiro/

Kiroでやれば良くない?

Kiroはユーザー体験が非常に良いので仕様駆動開発をKiroで行っても良いですが、いくつか問題があります。

  • KiroはOpus4が使えない。Claude CodeではOpus4の利用が可能
  • KiroはWebSerachとWebFetchがデフォルトでは組み込まれていない。Claude Codeはデフォルトで組み込まれているため最新情報を要件や詳細設計に反映させることが出来る
  • KiroのSpecは現時点では要件定義を好き勝手カスタマイズするのが大変(それが良さではあり改善ポイントでもある)
  • (Kiroのプレビュー期間が終了後、Claude Maxプランに追い打ちをかけてさらにお金が飛んでいく!?)

KiroをClaude Codeで再現するために理解すべき2つの概念

Specs

Specsは仕様駆動開発の根幹です。Specsにより複雑な機能を曖昧なプロンプトから実際の開発プロセスに沿った実装計画に落とし込むことが可能になります。

具体的には仕様を実装する前に下記の詳細3つの詳細な設計書を作成し、フィードバック後に実装が開始されます。

  1. 要件定義書(requirements.md
  2. 技術設計書(design.md
  3. 実装計画(tasks.md

alt text

詳しくは公式ドキュメントを読んでください。

Steering

Steeringは、プロジェクト全体の知識を.kiro/steering/配下にmarkdownファイルとして永続的に記録し、コード生成の一貫性を確保する機能です。

Claude CodeでいうところのClaude.md、CursorのProject Rulesに近いです。

Claude.mdは、開発を進めていくにつれてコンテキスト肥大を起こすことや毎回巨大ファイルを読むことによるコンテキストウィンドウの圧迫、更新するとぶっ壊されることが問題としてありました。Steeringでは、各項目ごとにファイルを分けることが可能のため、Claude.mdで直面した問題が緩和されます。

Steeringでは3つのドキュメントがデフォルトで自動生成されます。

  1. プロダクト概要(product.md
  2. 技術スタック(tech.md
  3. プロジェクト構成(structure.md

それに加えて必要になった際にカスタムでファイルを作成することも可能です。

alt text

詳しくは公式ドキュメントを読んでください。


Kiroでは仕様駆動開発プロセスとして、仕様ごとに仕様書とプロジェクト全体の知識の両方が決まった形式でドキュメント作成・管理されることが分かりました。

今回はこれらのドキュメントがClaude Code上でKiroと同じように生成されるように仕様駆動開発プロセスを再現しています。

Claude Codeで再現したスペック駆動開発全体のワークフロー

Kiroの設計思想に従って仕様駆動開発を再現しようとすると下記のかなり長いフローになってしまいました。
Slash Commandsと簡単なプロンプトから始まり、要件定義書、技術設計、実装計画のドキュメントを順に作成していき、それぞれの段階で人間の承認を得る必要があるようなワークフローになっています。

備考

  • /spec-init 等がClaude CodeのSlash Commands
  • ステアリング文書は、プロジェクトに関する永続的な知識(アーキテクチャ、技術スタック、コード規約など)を記録するドキュメント。Claude.mdのようなもの。プロジェクトの長期的な保守性を高めるために必要。

詳細はGithubのREADMEに書いてます。

https://github.com/gotalab/claude-code-spec

使い方とセットアップ

現状Slash CommandsとClaude.mdのみで制御しているので、簡単にKiroの仕様駆動開発のプロセスをClaude Codeに導入可能です!

自分のClaude Codeプロジェクトに導入する

Githubから以下の2つのファイル/ディレクトリをコピーしてプロジェクトの同じディレクトリに置くだけです。

  1. .claude/commands/ ディレクトリ - Slash Commandsの定義。.claude/commands配下に置く。
  2. CLAUDE.md ファイル - Claude Codeの設定とプロジェクト指示

初回セットアップ手順

  1. Slash Commandsをコピー(上記参照)
  2. CLAUDE.mdをコピーしてプロジェクトに合わせて調整
  3. 最初のコマンドを実行
    # オプション: ステアリング文書を作成
    /steering-init
    
    # 最初の機能仕様を作成
    /spec-init "あなたのプロジェクトややりたいことの詳細な説明"
    
  4. その後はClaude Codeからの返答に従って進めれば大丈夫...なはず。(Claude.mdを独自のものに統合して利用するときに英語になる場合は、チャットの返答を日本語にしろという指示を入れると日本語になるはずです)

このように進めていけます!
alt text

Claude Codeならultrathink等でthinkingモードでも使える!
alt text

まとめ

Kiroの仕様駆動開発プロセス全体を正確に再現するのは思っていたより大変でしたが、良い感じに再現できたはず!

ただKiroの良さはIDE上に仕様駆動開発のワークフローが完全に統合されている「体験の良さ」です。Kiroの開発ワークフローは再現できてもUXのなめらかさの再現はさすがに厳しかった、、、

改善しつつ実務でもガンガン使っていく予定です!Hooksの整備やタスクをGithubイシューに登録してClaude CodeのGithub Actionsでやらせるワークフローの整備を進めていこうかなーと考えています。

良かったら使ってみてフィードバックください!

https://github.com/gotalab/claude-code-spec

X(@gota_bara)もやってますので、お気軽に絡んでもらえればと思います。

Discussion