近年、開発手法として仕様駆動開発が注目されています。
仕様を開発の中心として、要件➔設計➔実装と同期させ続ける開発手法です。
以前、仕様駆動開発ツールとしてcc-sdd、SpecDrivenCodexをご紹介しました。
今回は「OpenSpec」でCodexを使用した仕様駆動開発を試してみたいと思います。
Open Spec とは
Open Specは仕様駆動開発を行うためのフレームワークです。
他の仕様駆動開発ツールと比べて、対応するAIサービスが多いことが特徴です。
2025年10月時点でClaude Code、Cursor、Codex、Github Copilotなど計10サービスがサポートされており、バージョンアップで増えていっているようです。
Open Spec のセットアップ
まずはOpenSpecのインストールを行います。
npmで管理されており、Node.jsのバージョン20.19.0以降が必要になります。
npm install -g @fission-ai/openspec@latestプロジェクトのルートフォルダで下記の初期化コマンドを実行します。
openspec initOpenSpecの初期設定画面が表示されるため、Enterを押下します。

使用するAIツールの選択画面に切り替わります。
今回は「Codex」を使用するため、Codexを選んでEnterを押下します。
スペースでOn/Offが切り替わり、複数選択することも可能なようです。

確認画面に切り替わるので、再度Enterを押下します。

下記の画面が表示されれば初期設定は完了です。

初期化が終了すると、プロジェクトフォルダに下記のファイルが作成されます。

Open Spec の使い方
OpenSpecの基本的な流れは下記になります。
- 構築要件の作成
- 仕様のレビューと修正
- 実装と確認
以降の作業はCodex上で行うため、Codexを起動します。
codex今回は新規プロジェクトの構築のため割愛していますが、構築途中のソースがあって続きをOpenSpecで行いたい場合があると思います。
その場合、現在の情報をproject.mdに記録することで、AIが現状を理解しやすくなります。project.mdに記録するためには、codexで下記のプロンプトを入力します。
openspec/project.md を読んで、プロジェクト、技術スタック、規約の詳細を記入してください。構築案の作成
最初に構築案を作成するため、Codex上で下記のスプラッシュコマンドを実行します。
/openspec-proposal(回答が返ってきますが、英語なので日本語に変換してもらいます。)


今回構築する内容を聞かれるので、プロンプトに入力します。
この部分が要件にあたり、仕様に展開する際に重要になってくるので、なるべく明確に記載しておいた方がよい気がします。
基本的な商品情報と在庫数を管理するシンプルな在庫管理システムを作成したいです。
担当者が商品登録やメンテナンスを行い、日々の入出庫処理を通じて在庫数量を把握する業務。
ロケーション管理などの複雑さを排し、必要最低限の在庫管理機能に集中することで運用負荷を抑える。
主要機能(何れも画面あり)1.商品マスタの登録・更新・削除 2.在庫の入庫・出庫記録 3.在庫状況の照会回答があり、proposal.md、tasks.md、spec.mdファイルが作成されます。


仕様のレビューと修正
作成されたproposal.md、tasks.md、spec.mdの内容を確認し、修正するフェーズになります。
各ファイルには下記の内容が記載されるため、内容を確認して指摘があれば修正します。
・proposal.md : 構築の理由と内容
・tasks.md : 実装チェックリスト
・spec.md : 機能仕様
修正はプロンプトに入力して依頼してもよいですし、ファイルを直接修正することも可能です。
機能分割が想定と違ったり、曖昧な部分を指摘して想定どおりにしてもらいます。
今回は項目があいまいだったため、指摘して修正してもらいます。
商品マスタは商品コード、商品名、単位、備考を管理します。これを納得できるまで、繰り返し行います。
次の実装までに詳細に詰めておくことが望ましいですが、実装後に修正することも可能です。
実装と確認
作成した仕様から、実際にコーディングを行うフェーズです。
ソースファイルが作成され、tasks.mdに進捗が記録されます。
Codexで下記のスプラッシュコマンドを実行します。
/openspec-applyソース生成が完了し、動作確認依頼の回答がありました。

今回作成した機能の動作は、下記のようになりました。

まとめ
開発手法が同じため、操作方法については他の仕様駆動開発ツールと差異は特になく、使いやすいツールでした。
※機能的な差異はGitHubに記載されているので、興味のある方はご確認ください。
(https://github.com/Fission-AI/OpenSpec#how-openspec-compares)
今回ご紹介できていませんが、アーカイブ機能やダッシュボード機能などのコマンドも用意されています。
2025年9月にリリースされたばかりですが、頻繁にアップデートも行われているため、今後にも期待できそうです。




コメント