Open3

Cursorでkiroのようにスペック駆動開発(仕様駆動開発)する

redamoonredamoon

https://qiita.com/tequila0725/items/241be34f5069d6e57aa3

上記の記事を参考に、Cursorでスペック駆動開発ができるか検証してみました。

参考の記事では、起票されたtaskからghを使ってissue作成までを行っていた。

---
alwaysApply: false
---

# タスク実行の5段階フロー

## 実行ルール 

### github認証情報
- owner: [Githubのオーナ名] # Github MCPを使用するのに必要。定義しないと毎回確認するようになります。

### ファイル操作
- 新規タスク開始時: 既存ファイル、既存issueの**内容を全て削除して白紙から書き直す** # 既存ファイルが存在する状態で再実行する場合に必要
- ファイル編集前に必ず現在の内容を確認

### フェーズ管理
- 各段階開始時: 「前段階のmdファイルを読み込みました」と報告
- 各段階の最後に、期待通りの結果になっているか確認
- `.cursor_workflow/specs/{指定したディレクトリ名}/requirements.md`が存在しない場合は必ず要件定義フェーズから始める

### 実行方針
- 段階的に進める: 一度に全てを変更せず、小さな変更を積み重ねること
- 複数のタスクを同時並行で進めないこと
- エラーが発生した場合は、報告すること
- エラーを解決してから次へ進むこと
- ユーザからの指示に無い機能を勝手に追加しないこと

## 1. 要件定義フェーズ
- ユーザからの指示に対して **「何を作るのか」を明確に定める。**
- 目的の明確化、現状分析、機能要件の定義、非機能要件の定義、制約条件の定義を実行する
- `.cursor_workflow/specs/{指定したディレクトリ名}/requirements.md`に文書化
- **必須確認**: 「要件定義フェーズが完了しました。設計フェーズに進んでよろしいですか?」

### 2. 設計フェーズ
- **必ず`.cursor_workflow/specs/{指定したディレクトリ名}/requirements.md`を読み込んでから開始すること**
- 要件定義フェーズで決定したことをもとに **「どのようにつくるか」「内部でどのように処理するか」を設計する**
- プログラマーが実際にコーディングできるレベルまで詳細化すること
- `.cursor_workflow/specs/{指定したディレクトリ名}/design.md`に文書化
- **必須確認**: 「設計フェーズが完了しました。実装計画フェーズに進んでよろしいですか?」

### 3. 実装計画フェーズ
- **必ず`.cursor_workflow/specs/{指定したディレクトリ名}/design.md`を読み込んでから開始すること**
- アジャイル・スクラム開発をすることを前提とする
- タスクを実行可能なユーザーストーリー単位に分解、優先順位を設定する
- `.cursor_workflow/specs/{指定したディレクトリ名}/implementations.md`に文書化
- **必須確認**: 「実装計画フェーズが完了しました。issue作成フェーズに進んでよろしいですか?」

### 4. issue作成フェーズ
- **必ず`.cursor_workflow/specs/{指定したディレクトリ名}/implementations.md`を読み込んでから開始すること**
- Github Projectを現在のリポジトリに紐づける形で新規作成する
- Github Issuesに各タスクの内容でIssueを作成する。Issueは先程作成したProjectに紐づける
- **必須確認**: 「issue作成フェーズが完了しました。実行フェーズに進んでよろしいですか?」

### 5. 実行フェーズ
- **必ずopenになっているissueの一覧を確認してから開始**
- **必ず対応するissueの詳細を確認してから開始**
- **issueの対応開始時に必ずローカル環境で作業ブランチを新規作成してチェックアウトする**
- 実装完了後に適切な単位でコミットメッセージを作成する
- 実装完了後にpull requestを作成する
- **必須対応** pull requestまで作成したら報告すること
- 次のissueに進む場合も実行フェーズを最初から繰り返すこと
redamoonredamoon

上記のissueやpull request を Cursorで作成する場合は、事前に ghを入れておく必要があります。

Mac の場合

homebrewでインストールします。

brew install gh

Windows

Windows の場合、wsl上で操作することがほとんどのため、 以下の方法でインストールする
ubuntuでインストールするようです。

sudo apt update
sudo apt install gh

まだ、試していない。
https://qiita.com/kikutch/items/188462fdda893a520d9e

redamoonredamoon

前回から作ってる家計簿アプリを参考に仕様駆動を行ってみました。

家計簿アプリにメモ機能を追加したいといったプロンプトを投げる形で対応した。

メモ機能を追加したい

.cursor/rules/spec.mdc を作って先に挙げたルールを追加しました。
チャットでは、作成したspecをコンテクストとしてセットして指示をするだけになります。

GitHubと連携することで、作成したTaskリストからissueまで作成することができました。
(gh コマンドが入っていれば、mcp不要で動きました)