😸

Kiroを使って、ドキュメントが存在しないプロジェクトに新機能を追加する

に公開

こんにちは。
突然ですが皆さん、ドキュメントはお好きですか?私は好きです。
しかし、好きな思いとは裏腹に、少しでも立て込むとドキュメントが後回しになってしまいがちな現実もあります。

皆さんがプロダクトを作る上でも、「ドキュメントがあったらキャッチアップが楽なのにな…」という機会は少なくないのではないでしょうか。
そんな悩みを解決してくれるかもしれないKiroというIDEがリリースされたので、ドキュメント好きとして早速触ってみました。

Kiroについて

Kiroを使うと、要件定義→設計→タスクリスト作成→実装という流れで、ドキュメント駆動でAIと一緒にドキュメント作成・コーディングをすることができます。
ドキュメント駆動のため、開発の流れで自然とドキュメントを残すことができます。

特徴や使い方については以下の記事がわかりやすかったです!
https://zenn.dev/sesere/articles/31d4b460c949e5

今回やること

今回はKiroを使って、ドキュメントが存在しない既存プロジェクトにドキュメントを作成した上で、新機能を追加してみようと思います。

使用するプロジェクト

過去に戯れで作った個人開発のプロジェクトを使用します。
https://github.com/hawkk9/katsuzetsu-checker

音声認識を使って滑舌をチェックするツールです。

コードが仕様だ!と言わんばかりの薄っぺらいREADME.md
本来であれば新機能の追加の前に、コードを読んでキャッチアップから始める必要があります。

プロジェクトのドキュメントをKiroに作成してもらう

新機能追加の前に、まずはプロジェクトのドキュメントの整備をKiroに依頼します。

プロジェクトをKiroで開く

リポジトリをクローンし、プロジェクトをKiroで開きます。

Steeringファイルを作成

KiroパネルからGenerate Steering Docsをポチり、Steeringファイル(Claude CodeでいうCLAUDE.md)を作成してもらいます。

現在のプロジェクトの内容を参照して、いい感じのSteeringファイルを作成してくれました。

日本語でやり取りしてもらいたかったので、その部分だけ追加で指示しました。

Specsを作成

次に、Specs(「要件」、「設計」、「タスクリスト」から成る、プロジェクトの仕様書)を作成してもらいます。
新機能追加はまだ行わないため、tasks.mdの作成はスキップします。

Steeringファイルのときと同じように、プロジェクトの内容をもとにKiroに作成してもらいます。

本来であればrequirements.mdから作成していくのですが、既存プロジェクトのドキュメントを作成する場合はボトムアップの方がいいのかなと思い、design.mdから作成しました。
また、本来の流れとは逆行しているせいかSpecセッションではうまくいかなかったため、Vibeセッションで行いました。

design.mdの作成を依頼。

requirements.mdの作成を依頼。

成果物。よさそう!

これで、「現在のプロジェクトの仕様書」が出来上がり、Kiroを使って新機能を追加する準備ができました。

プロジェクトに新機能を追加

Kiroのフローに従って、ドキュメント駆動で新機能を追加していきます。

Specセッションで追加したい機能を伝える

追加したい機能の要件を伝えます。

伝えた内容を汲み取って、Kiroがrequirements.mdを修正してくれます。

問題なさそうなので、設計に進みます。

設計のレビュー

設計に進むと、追加された要件をもとに、Kiroが自動で設計を考えてくれます。

こちらも問題なさそうなので、タスクリストの作成に進みます。

タスクリストのレビュー→実装

タスクリストもよさそうに見えたので、そのまま実装に進んでもらいました!
タスクリストに従ってKiroが実装を進めてくれます。

実装系のタスクが全て完了したようです!
動かしてみましょう。

動作チェック→修正

アプリケーションを動かそうとnpm run devすると、エラーが発生してしまいました。

エラーメッセージを貼り付けて、修正を試みてもらいます。

無事動くようになりました🎉

要望通り、難易度別のスクリプトテンプレートを読み込める機能が追加されていました。

まとめ

Kiroを使うことで、キャッチアップの必要なく、ドキュメントの存在しないプロジェクトに新機能の追加を行うことができました。
ドキュメントが整備されていないせいで改修の手が出せなくなっているプロジェクトに対して、有力なアプローチの一つとなり得るのではないでしょうか。

株式会社バニッシュ・スタンダード

Discussion