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/` フォルダにファイルがコピーされます。対話可能な環境では「新規のPJを立ち上げる / 既存PJにアサインする」を選択できます。
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 --mode new
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@latest --force
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
- └── specs/
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` - 進捗を確認
@@ -113,12 +113,10 @@ argument-hint: <feature-name:$1> [-y:$2]
113
113
  - `updated_at` タイムスタンプを更新
114
114
 
115
115
  ## 重要な制約
116
- - **型安全性**:
117
- - プロジェクトの技術スタックに合わせた強い型付けを適用。
118
- - 静的型付け言語では、明示的な型/インターフェースを定義し、安全でないキャストを避ける。
119
- - TypeScriptでは、`any` を使用しない。正確な型とジェネリクスを優先。
120
- - 動的型付け言語では、利用可能な型ヒント/アノテーション(例: Python型ヒント)を提供し、境界で入力を検証。
121
- - 公開インターフェースと契約を明確に文書化し、コンポーネント間の型安全性を確保。
116
+ - **型定義は設計ドキュメントに含めない**:
117
+ - 設計ドキュメントでは責任・振る舞い・制約を自然言語で記述
118
+ - 型定義は実装時にコードで定義(Prisma等のORMを使用する場合は自動生成される型を活用)
119
+ - TypeScriptのインターフェースやコードブロックは設計ドキュメントに含めない
122
120
  - **最新情報**: 外部依存関係とベストプラクティスには WebSearch/WebFetch を使用
123
121
  - **テンプレート準拠**: specs/design.md テンプレート構造と生成指示に厳密に従う
124
122
  - **設計フォーカス**: アーキテクチャとインターフェースのみ、実装コードなし
@@ -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
- ```typescript
130
- interface [ComponentName]Service {
131
- methodName(input: InputType): Result<OutputType, ErrorType>;
132
- }
133
- ```
134
- - 事前条件:
135
- - 事後条件:
136
- - 不変条件:
129
+ - 提供するメソッドと責任を自然言語で記述
130
+ - 事前条件 / 事後条件 / 不変条件を箇条書きで明記
131
+ - 型定義はコードで実装時に定義(Prisma等のORMを使用する場合は自動生成される型を活用)
137
132
 
138
133
  ##### API契約
139
134
  | メソッド | エンドポイント | リクエスト | レスポンス | エラー |
@@ -5,6 +5,7 @@
5
5
 
6
6
  ## 要件
7
7
  <!-- /kiro:spec-requirements フェーズで生成 -->
8
+ <!-- もし既存PJにアサインされる場合、ここに記載してください-->
8
9
 
9
10
  ---
10
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cursor-sdd",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Cursor SDD (Spec-Driven Development) - AI-powered spec templates, rules and commands for Cursor IDE",
5
5
  "bin": {
6
6
  "cursor-sdd": "bin/setup.ts"