cursor-sdd 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# cursor-sdd
|
|
1
|
+
# cursor-sdd-package
|
|
2
2
|
|
|
3
3
|
Cursor IDE 向けの Spec-Driven Development (SDD) テンプレート、ルール、コマンド集。
|
|
4
4
|
|
|
@@ -12,35 +12,22 @@ npx cursor-sdd@latest
|
|
|
12
12
|
npm i -D cursor-sdd
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
実行時にプロジェクトの `.cursor/`
|
|
16
|
-
|
|
17
|
-
### モード指定
|
|
18
|
-
|
|
19
|
-
- 明示指定(おすすめ):
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npx cursor-sdd@latest --mode new
|
|
23
|
-
npx cursor-sdd@latest --mode assign
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
- 対話プロンプト: `npx cursor-sdd@latest` 実行時に `new` / `assign` を選択
|
|
27
|
-
- 非対話や CI: `npx cursor-sdd@latest --mode assign` または環境変数 `CURSOR_SDD_MODE=assign`
|
|
28
|
-
- 省略時デフォルト: `new`
|
|
15
|
+
実行時にプロジェクトの `.cursor/` フォルダにファイルがコピーされます。
|
|
29
16
|
|
|
30
17
|
### 依存として入れた場合の実行
|
|
31
18
|
|
|
32
19
|
`npm i -D cursor-sdd` しただけでは `.cursor/` は変更しません。セットアップは明示的に実行してください:
|
|
33
20
|
|
|
34
21
|
```bash
|
|
35
|
-
npx cursor-sdd
|
|
22
|
+
npx cursor-sdd
|
|
36
23
|
```
|
|
37
24
|
|
|
38
|
-
###
|
|
25
|
+
### 強制上書き
|
|
39
26
|
|
|
40
|
-
既存の `.cursor/`
|
|
27
|
+
既存の `.cursor/` がある場合は同名ファイルがスキップされます。強制上書きする場合:
|
|
41
28
|
|
|
42
29
|
```bash
|
|
43
|
-
npx cursor-sdd
|
|
30
|
+
npx cursor-sdd --force
|
|
44
31
|
```
|
|
45
32
|
|
|
46
33
|
## 使い方
|
|
@@ -51,11 +38,12 @@ Cursor IDE で以下のコマンドが使えるようになります:
|
|
|
51
38
|
|---------|------|
|
|
52
39
|
| `/init` | プロジェクト仕様の初期化 |
|
|
53
40
|
| `/requirements` | 要件定義書の生成 |
|
|
41
|
+
| `/requirements-import` | 既存要件のインポート |
|
|
54
42
|
| `/design` | 技術設計書の作成 |
|
|
43
|
+
| `/check-design` | 設計書の検証 |
|
|
55
44
|
| `/tasks` | タスクの生成 |
|
|
56
45
|
| `/impl` | 実装の開始 |
|
|
57
46
|
| `/status` | 進捗確認 |
|
|
58
|
-
| `/check-design` | 設計のレビュー |
|
|
59
47
|
| `/difference-check` | 差分チェック |
|
|
60
48
|
|
|
61
49
|
### `/init` の使い分け
|
|
@@ -69,35 +57,41 @@ Cursor IDE で以下のコマンドが使えるようになります:
|
|
|
69
57
|
|
|
70
58
|
```
|
|
71
59
|
.cursor/
|
|
72
|
-
├── (assign 用の内容をコピーする場合は assign/ 配下がコピーされます)
|
|
73
60
|
├── commands/ # Cursor コマンド定義
|
|
74
61
|
│ ├── init.md
|
|
75
62
|
│ ├── requirements.md
|
|
63
|
+
│ ├── requirements-import.md
|
|
76
64
|
│ ├── design.md
|
|
65
|
+
│ ├── check-design.md
|
|
77
66
|
│ ├── tasks.md
|
|
78
67
|
│ ├── impl.md
|
|
79
68
|
│ ├── status.md
|
|
80
|
-
│ ├── check-design.md
|
|
81
69
|
│ └── difference-check.md
|
|
82
70
|
├── rules/ # AI ルール・ガイドライン
|
|
71
|
+
│ ├── artifacts-generation.md
|
|
83
72
|
│ ├── design-principles.md
|
|
84
73
|
│ ├── design-review.md
|
|
85
74
|
│ ├── design-discovery-full.md
|
|
86
75
|
│ ├── design-discovery-light.md
|
|
87
76
|
│ ├── ears-format.md
|
|
77
|
+
│ ├── frontend.md
|
|
88
78
|
│ ├── gap-analysis.md
|
|
79
|
+
│ ├── implementation.md
|
|
89
80
|
│ ├── tasks-generation.md
|
|
90
81
|
│ └── tasks-parallel-analysis.md
|
|
91
|
-
└── templates/
|
|
92
|
-
|
|
82
|
+
└── templates/
|
|
83
|
+
├── artifacts/ # テーブル定義テンプレート
|
|
84
|
+
│ ├── artifacts_rules.md
|
|
85
|
+
│ ├── create-data-model.md
|
|
86
|
+
│ ├── create-feature-list.md
|
|
87
|
+
│ └── create-table-definition.md
|
|
88
|
+
└── specs/ # 仕様書テンプレート
|
|
93
89
|
├── init.json
|
|
94
90
|
├── requirements-init.md
|
|
95
91
|
├── requirements.md
|
|
96
92
|
├── design.md
|
|
97
93
|
├── tasks.md
|
|
98
94
|
└── research.md
|
|
99
|
-
|
|
100
|
-
assign モード時に配布したいファイルはリポジトリ直下の `assign/` に配置してください(例: `assign/commands`, `assign/rules`, `assign/templates`)。
|
|
101
95
|
```
|
|
102
96
|
|
|
103
97
|
## ワークフロー
|
|
@@ -107,10 +101,3 @@ assign モード時に配布したいファイルはリポジトリ直下の `as
|
|
|
107
101
|
↑ ↓
|
|
108
102
|
/status ←←←←←←←←←←←←←←←←
|
|
109
103
|
```
|
|
110
|
-
|
|
111
|
-
1. `/init` - プロジェクトの基本情報を設定
|
|
112
|
-
2. `/requirements` - ユーザーストーリーと要件を定義
|
|
113
|
-
3. `/design` - 技術設計書を作成
|
|
114
|
-
4. `/tasks` - 実装タスクを生成
|
|
115
|
-
5. `/impl` - タスクを実装
|
|
116
|
-
6. `/status` - 進捗を確認
|
package/now/commands/design.md
CHANGED
|
@@ -113,12 +113,10 @@ argument-hint: <feature-name:$1> [-y:$2]
|
|
|
113
113
|
- `updated_at` タイムスタンプを更新
|
|
114
114
|
|
|
115
115
|
## 重要な制約
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
- 動的型付け言語では、利用可能な型ヒント/アノテーション(例: Python型ヒント)を提供し、境界で入力を検証。
|
|
121
|
-
- 公開インターフェースと契約を明確に文書化し、コンポーネント間の型安全性を確保。
|
|
116
|
+
- **型定義は設計ドキュメントに含めない**:
|
|
117
|
+
- 設計ドキュメントでは責任・振る舞い・制約を自然言語で記述
|
|
118
|
+
- 型定義は実装時にコードで定義(Prisma等のORMを使用する場合は自動生成される型を活用)
|
|
119
|
+
- TypeScriptのインターフェースやコードブロックは設計ドキュメントに含めない
|
|
122
120
|
- **最新情報**: 外部依存関係とベストプラクティスには WebSearch/WebFetch を使用
|
|
123
121
|
- **テンプレート準拠**: specs/design.md テンプレート構造と生成指示に厳密に従う
|
|
124
122
|
- **設計フォーカス**: アーキテクチャとインターフェースのみ、実装コードなし
|
package/now/commands/impl.md
CHANGED
|
@@ -24,6 +24,7 @@ argument-hint: <feature-name:$1> [task-numbers:$2]
|
|
|
24
24
|
|
|
25
25
|
**必要なすべてのコンテキストを読み込み**:
|
|
26
26
|
- `.cursor/$1/spec.json`、`requirements.md`、`design.md`、`tasks.md`
|
|
27
|
+
- `.cursor/rules/implementation.md` からtaskに関するルール参照(必須)
|
|
27
28
|
- `.cursor/rules/frontend.md`(存在する場合)からフロントエンド実装ルール
|
|
28
29
|
|
|
29
30
|
**承認の検証**:
|
|
@@ -60,8 +61,10 @@ argument-hint: <feature-name:$1> [task-numbers:$2]
|
|
|
60
61
|
- 既存機能にリグレッションなし
|
|
61
62
|
- コードカバレッジを維持または改善
|
|
62
63
|
|
|
63
|
-
5.
|
|
64
|
-
- tasks.md でチェックボックスを `- [ ]` から `- [x]`
|
|
64
|
+
5. **完了マーク**(必須):
|
|
65
|
+
- tasks.md でチェックボックスを `- [ ]` から `- [x]` に**必ず**更新
|
|
66
|
+
- タスク完了時に即座に更新すること(後回しにしない)
|
|
67
|
+
- 親タスクは、すべての子タスクが完了した場合にのみチェック
|
|
65
68
|
|
|
66
69
|
## 重要な制約
|
|
67
70
|
- **TDD必須**: テストは実装コードより先に書かなければならない
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 実装ルール
|
|
2
|
+
|
|
3
|
+
## 必須: タスク完了時のチェックマーク更新
|
|
4
|
+
|
|
5
|
+
**タスクを実装完了したら、必ず即座に tasks.md のチェックボックスを更新すること。**
|
|
6
|
+
|
|
7
|
+
### ルール
|
|
8
|
+
|
|
9
|
+
1. タスク実装完了後、**同じターン内で** tasks.md の該当タスクを `- [ ]` から `- [x]` に更新
|
|
10
|
+
2. 後回しにしない、忘れない、例外なし
|
|
11
|
+
3. 親タスクは、すべての子タスクが完了した場合にのみチェック
|
|
12
|
+
|
|
13
|
+
### 例
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
# 実装前
|
|
17
|
+
- [ ] 2.1 アンケート一覧 API を実装
|
|
18
|
+
|
|
19
|
+
# 実装後(即座に更新)
|
|
20
|
+
- [x] 2.1 アンケート一覧 API を実装
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 理由
|
|
24
|
+
|
|
25
|
+
- タスクの進捗を正確に追跡するため
|
|
26
|
+
- ユーザーが何度も指摘する必要がないようにするため
|
|
@@ -126,14 +126,9 @@
|
|
|
126
126
|
**契約**: Service [ ] / API [ ] / Event [ ] / Batch [ ] / State [ ] ← 該当するもののみチェック。
|
|
127
127
|
|
|
128
128
|
##### サービスインターフェース
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
- 事前条件:
|
|
135
|
-
- 事後条件:
|
|
136
|
-
- 不変条件:
|
|
129
|
+
- 提供するメソッドと責任を自然言語で記述
|
|
130
|
+
- 事前条件 / 事後条件 / 不変条件を箇条書きで明記
|
|
131
|
+
- 型定義はコードで実装時に定義(Prisma等のORMを使用する場合は自動生成される型を活用)
|
|
137
132
|
|
|
138
133
|
##### API契約
|
|
139
134
|
| メソッド | エンドポイント | リクエスト | レスポンス | エラー |
|