1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第1回】Cursor × SpecKitではじめる仕様駆動開発(導入編)~AIと一緒にTerraform開発を始めてみた~

1
Posted at

はじめに

最近、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 はすでにインストール済みでした。

ver.
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 を作成していきます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?