株式会社OMJテクノソリューションズ Advent Calendar 2025の記事3日目になります。
こんにちは、kugiiiiiです。Bloomixにインターンとして参加させていただいている大学院1年の学生です。
今回はPoCアプリを作成に利用しているSpec Kitの失敗について記事にまとめてみました。
初めて記事を書くので、拙い文章でもご容赦ください。
Spec Kitの簡単な説明
Spec KitはGithubが公開したAIエージェントのフレームワークです。
自然言語で作成された文章をもとに仕様書の作成やタスクの生成、実装までを行ってくれるツールになっています。
基本機能
ここではSpec Kitの5つの主な機能について紹介します。
1. Constitution(定義の作成)
/constitutionを実行することでプロダクトのルールを生成することができます。(constitution.md)
Spec Kitはこのルールを守って開発を進めていきます。
2. Specify(要件定義)
/specifyを実行することでconstitution.mdや要件に則って要件定義書を作成します。(specify.md)
要件やMVP、ユーザーストーリなどを生成してくれます。
3. Plan(方針の作成)
/planを実行することで選択した技術スタックを用いた技術的な実装計画を作成することができます。(plan.md)
4. Task(タスクの切り分け)
/taskを実行することで実際に行うタスクをplan.mdをベースに切り分けて作成をします。(task.md)
5. Implement(コードの実装)
/implementを実行することでtask.mdで分けられたタスクを順番に実装し始めます。
コードのルールに則ったコードの生成を行ってくれます。
失敗した事
ここからが本番です。
Spec kitを利用した開発をしていた中で失敗した....と思ったことを書いていきます。
1.Spec kitを利用しているつもりがいつの間にかAgent機能を利用していた
実装を行う祭はimplementを利用しますが、コードの修正は対話形式で行っていました。
しかし、そこまで深く考えずに利用していたこともあり、気がつくとspec kitでは無く通常のAgent機能を利用していました。(今回はCopilotのAgent機能でした)
これにどのような問題があるかというと、specify.mdやplan.mdに記述されている規約を無視した修正を行ってしまう可能性があるということです。
実際に起きた問題として、当初予定していたディレクトリ構成から逸脱したファイルの発生や、要件に存在していない機能が生えてきたという事がありました。
2.結局レビューをするのに知識がいる
これは当たり前のことではあるのですが、私はそこまで意識していませんでした。
今まで個人で制作していたものにはAIを利用してきた事はありますが、自分の書いたコードをベースとしてAIに修正をお願いする程度のものでした。
しかし今回の開発では要件定義を人間が行い、AIに書いてもらうという工程の違いがあります。
これによって発生する問題として、自分の持っていない知識を平然と利用されることがありました。動作は正しいっぽいけどコードの中身が読めない....というような事が起こりかねないということです。
これはちょっとした個人の開発であれば問題ないかもしれないですが、継続的に開発していくプロダクトやチームで制作していく際には重大な問題になります。
実際に起きた問題は、DBの修正まわりでした。私はSQLの知識があまりなくエラーの修正をAIに聞きながら行っていたのですが、1つ目の失敗点を思いだしもしやと思いDBの要件を確認しました。
それを基に修正案を確認した所、確かにその修正を行えば動作としては問題なく動くようになりますが、DBのルールを逸脱する可能性があることに気が付きました。
修正案の確認にも、もちろん知識が必要ですが要件等の設計部分の知識も持っていないとこのようなミスに気付けないことがありと思います。
終わりに
上記の失敗は私の認識の甘さが引き起こした部分であると思います。
この記事を通して認識を改めると共に、よりよい開発方法をみつける足ががりになればと思います。
初めて書いたこともあり、伝えたいことが何なのか分かりづらい文章だったかもしれません。
今後も記事としてアウトプットしていくことで、人に伝える能力も鍛えていきたいと思います。
読んでいただきありがとうございました。