はじめに
最近、SpecKit という「仕様駆動開発(Specification-Driven Development)」のフレームワークが話題になっています。
最初は、
「AI がコードを書いてくれるツールなのかな?」
くらいの認識でした。
しかし調べてみると、SpecKit はコードを書くツールではありません。
仕様を起点としてAIと一緒に設計・実装を進めるためのフレームワーク でした。
今回は実際に Cursor + SpecKit を使って Terraform で AWS WAF を構築するところまで試してみました。
この記事では、第1回として SpecKit の導入から Constitution(開発方針)の作成まで を紹介します。
SpecKit とは
従来の AI 開発では、
という流れになることが多いと思います。
SpecKit では違います。
まず仕様を作ります。
つまり、
コードを書く前に仕様を固める
という考え方です。
今回の環境
今回は以下の環境で試しました。
- Cursor
- SpecKit
- Terraform
- AWS
- macOS
なお、Node.js はすでにインストール済みでした。
node -v
v25.4.0
npm -v
11.7.0
Cursor で SpecKit を導入
最初は手動でインストールするつもりでした。
しかし今回は Cursor Agent に任せてみました。
入力した内容はこちらです。
SpecKitを導入したいです。
このプロジェクトにSpecKitをセットアップしてください。
公式の導入方法を確認しながら実施してください。
するとAgentは、
- SpecKitのインストール
- Cursor連携
- プロジェクト初期化
まで一気に実施してくれました。
生成された構成は以下です。
.specify/
.cursor/
memory/
templates/
ここまで数分です。
正直かなり驚きました。
最初にやることは実装ではない
私は最初、
「じゃあ Terraform を書こう」
と思っていました。
しかし SpecKit では違います。
最初に実施するのは
/speckit-constitution
です。
最初は
「constitution って何?」
という状態でした。
調べてみると、
このプロジェクトで守るルールを定義する
という意味でした。
つまり、
- コーディング規約
- 設計方針
- 品質方針
を AI と共有するためのものです。
Terraform 向けに Constitution を作る
最初は CloudFormation 向けの例が多かったので、今回は Terraform 向けに変更しました。
Agent へ依頼した内容です。
このプロジェクトでは、AWSインフラ/IaC開発を主目的とします。
IaC は Terraform を優先します。
以下の方針で constitution を作成してください。
- Terraform を優先する
- HCL形式で実装する
- AWS Provider を利用する
- module 化を意識する
- state 管理方針を明記する
- 日本語で仕様・設計・タスクを作成する
すると Agent は、
7 つの原則をまとめた Constitution を作成してくれました。
例えば、
- Terraform First
- モジュール化
- 環境分離
- State 管理
- セキュリティ理由の記録
などです。
Cursor Agent とのやり取りで感じたこと
今回一番印象的だったのは、
Agent に「何をやりたいか」を伝えるだけで良かった
ということです。
例えば、
私は
「cd して Terraform 実行した方がいいのかな?」
と考えていました。
しかし実際には、
stg 環境で terraform plan してください
と依頼するだけで、
Agentが
- cd
- terraform init
- terraform plan
まで自動で判断して実行してくれました。
つまり、
コマンドを指示するのではなく、目的を伝える
という使い方になります。
これは従来の CLI 操作とはかなり感覚が違いました。
ここまででまだ Terraform は書いていない
この記事ではまだ
Terraform は 1 行も書いていません。
実施したのは、
だけです。
しかし、これだけでも
- プロジェクト方針
- AI との共通ルール
が出来上がりました。
ここが SpecKit 最大の特徴だと感じました。
次回予告
次回は実際に
/speckit-specify
を使って、AWS WAF の仕様を作成します。
ここから
- Requirements
- User Story
- Acceptance Criteria
が AI によって生成され、
本格的に仕様駆動開発が始まります。
Terraform を書く前に仕様を書くという体験を紹介したいと思います。
おわりに
これまで私は、
AI には
「Terraform を書いて」
とお願いすることがほとんどでした。
しかし SpecKit では、
最初に仕様や設計を固めることで、
後から要件変更があってもブレにくい進め方ができます。
今回の導入だけでも、
「AI にコードを書かせる」のではなく、
「AI と一緒に開発を進める」
という感覚に変わりました。
次回は、実際に AWS WAF を題材として Specification を作成していきます。