cursor-sdd 1.0.11 → 1.0.12

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.
@@ -0,0 +1,275 @@
1
+ # 設計ドキュメントテンプレート
2
+
3
+ ---
4
+ **目的**: 実装者が異なる場合でも一貫した実装を保証するために、十分な詳細を提供し、解釈のズレを防ぐ。
5
+
6
+ **アプローチ**:
7
+ - 実装の判断に直接影響する必須セクションを含める
8
+ - 実装エラーの防止に重要でない限り、オプションセクションは省略
9
+ - 機能の複雑さに応じた詳細レベル
10
+ - 長い文章よりも図表やテーブルを使用
11
+
12
+ **警告**: 1000行に近づくと機能の複雑さが過度であり、設計の簡素化が必要な可能性がある。
13
+ ---
14
+
15
+ > セクションの順序は、明確さが向上する場合に変更可能(例:要件トレーサビリティを前方に配置、データモデルをアーキテクチャの近くに移動)。各セクション内では **概要 → スコープ → 決定事項 → 影響/リスク** の流れを維持し、レビュアーが一貫してスキャンできるようにする。
16
+
17
+ ## 概要
18
+ 2-3段落以内
19
+ **目的**: この機能は[対象ユーザー]に[具体的な価値]を提供する。
20
+ **ユーザー**: [対象ユーザーグループ]が[特定のワークフロー]でこれを利用する。
21
+ **影響**(該当する場合): 現在の[システム状態]を[具体的な変更]によって変更する。
22
+
23
+ ### ゴール
24
+ - 主要目標1
25
+ - 主要目標2
26
+ - 成功基準
27
+
28
+ ### 非ゴール
29
+ - 明示的に除外する機能
30
+ - 現在のスコープ外の将来の検討事項
31
+ - 延期する連携ポイント
32
+
33
+ ## アーキテクチャ
34
+
35
+ > 詳細な調査ノートは`research.md`を参照(背景情報のみ)。レビュアーのために設計ドキュメントを自己完結型に保ち、すべての決定事項と契約をここに記載する。
36
+ > 重要な決定事項はテキストで記述し、図で構造の詳細を伝える—同じ情報を文章で繰り返さない。
37
+
38
+ ### 既存アーキテクチャ分析(該当する場合)
39
+ 既存システムを変更する場合:
40
+ - 現在のアーキテクチャパターンと制約
41
+ - 尊重すべき既存のドメイン境界
42
+ - 維持すべき連携ポイント
43
+ - 対処または回避する技術的負債
44
+
45
+ ### アーキテクチャパターン&境界マップ
46
+ **推奨**: 選択したアーキテクチャパターンとシステム境界を示すMermaid図を含める(複雑な機能では必須、単純な追加ではオプション)
47
+
48
+ **アーキテクチャ統合**:
49
+ - 選択パターン: [名前と簡潔な理由]
50
+ - ドメイン/機能境界: [競合を避けるための責任分離方法]
51
+ - 維持する既存パターン: [主要パターンのリスト]
52
+ - 新コンポーネントの理由: [各コンポーネントが必要な理由]
53
+ - ステアリング準拠: [維持する原則]
54
+
55
+ ### 技術スタック
56
+
57
+ | レイヤー | 選択 / バージョン | 機能での役割 | 備考 |
58
+ |---------|-----------------|-------------|------|
59
+ | フロントエンド / CLI | | | |
60
+ | バックエンド / サービス | | | |
61
+ | データ / ストレージ | | | |
62
+ | メッセージング / イベント | | | |
63
+ | インフラ / ランタイム | | | |
64
+
65
+ > 理由は簡潔に。より深い内容(トレードオフ、ベンチマーク)が必要な場合は、短い要約と参照セクションおよび`research.md`の調査ノートへのポインタを追加。
66
+
67
+ ## システムフロー
68
+
69
+ 非自明なフローを説明するために必要な図のみを提供。純粋なMermaid構文を使用。一般的なパターン:
70
+ - シーケンス(複数パーティのインタラクション)
71
+ - プロセス/状態(分岐ロジックまたはライフサイクル)
72
+ - データ/イベントフロー(パイプライン、非同期メッセージング)
73
+
74
+ 単純なCRUD変更ではこのセクション全体をスキップ。
75
+ > フローレベルの決定(例:ゲート条件、リトライ)は図の後に簡潔に記述し、各ステップを繰り返さない。
76
+
77
+ ## 要件トレーサビリティ
78
+
79
+ 要件が複数のドメインにまたがる複雑な機能やコンプライアンス重視の機能に使用。単純な1:1マッピングはコンポーネント概要テーブルに依存可能。
80
+
81
+ 各要件ID(例:`2.1`)を実現する設計要素にマッピング。
82
+
83
+ | 要件 | 概要 | コンポーネント | インターフェース | フロー |
84
+ |------|------|--------------|----------------|--------|
85
+ | 1.1 | | | | |
86
+ | 1.2 | | | | |
87
+
88
+ > 単一のコンポーネントが横断的な関心事なしに単一の要件を満たす場合のみ、このセクションを省略。
89
+
90
+ ## コンポーネントとインターフェース
91
+
92
+ コンポーネント別の詳細に入る前のクイックリファレンス。
93
+
94
+ - 概要はテーブルまたはコンパクトなリスト形式。テーブル例:
95
+ | コンポーネント | ドメイン/レイヤー | 意図 | 要件カバレッジ | 主要な依存関係 (P0/P1) | 契約 |
96
+ |--------------|----------------|------|--------------|----------------------|------|
97
+ | ExampleComponent | UI | XYZを表示 | 1, 2 | GameProvider (P0), MapPanel (P1) | Service, State |
98
+ - 新しい境界を導入するコンポーネント(例:ロジックフック、外部連携、永続化)のみが完全な詳細ブロックを必要とする。単純なプレゼンテーションコンポーネントは概要行と短い実装ノートで十分。
99
+
100
+ ドメインまたはアーキテクチャレイヤーごとに詳細ブロックをグループ化。各詳細コンポーネントについて、要件IDを`2.1, 2.3`としてリスト(「要件」は省略)。複数のUIコンポーネントが同じ契約を共有する場合、コードブロックを重複させずに基本インターフェース/props定義を参照。
101
+
102
+ ### [ドメイン / レイヤー]
103
+
104
+ #### [コンポーネント名]
105
+
106
+ | フィールド | 詳細 |
107
+ |----------|------|
108
+ | 意図 | 責任の1行説明 |
109
+ | 要件 | 2.1, 2.3 |
110
+ | オーナー / レビュアー | (オプション) |
111
+
112
+ **責任と制約**
113
+ - 主な責任
114
+ - ドメイン境界とトランザクションスコープ
115
+ - データ所有権 / 不変条件
116
+
117
+ **依存関係**
118
+ - インバウンド: コンポーネント/サービス名 — 目的 (重要度)
119
+ - アウトバウンド: コンポーネント/サービス名 — 目的 (重要度)
120
+ - 外部: サービス/ライブラリ — 目的 (重要度)
121
+
122
+ 外部依存関係の調査結果をここに要約。より深い調査(APIシグネチャ、レート制限、移行ノート)は`research.md`に記載。
123
+
124
+ **契約**: Service [ ] / API [ ] / Event [ ] / Batch [ ] / State [ ] ← 該当するもののみチェック。
125
+
126
+ ##### サービスインターフェース
127
+ ```typescript
128
+ interface [ComponentName]Service {
129
+ methodName(input: InputType): Result<OutputType, ErrorType>;
130
+ }
131
+ ```
132
+ - 事前条件:
133
+ - 事後条件:
134
+ - 不変条件:
135
+
136
+ ##### API契約
137
+ | メソッド | エンドポイント | リクエスト | レスポンス | エラー |
138
+ |---------|--------------|-----------|----------|--------|
139
+ | POST | /api/resource | CreateRequest | Resource | 400, 409, 500 |
140
+
141
+ ##### イベント契約
142
+ - 発行イベント:
143
+ - 購読イベント:
144
+ - 順序 / 配信保証:
145
+
146
+ ##### バッチ / ジョブ契約
147
+ - トリガー:
148
+ - 入力 / 検証:
149
+ - 出力 / 宛先:
150
+ - 冪等性 & 復旧:
151
+
152
+ ##### 状態管理
153
+ - 状態モデル:
154
+ - 永続化 & 一貫性:
155
+ - 並行性戦略:
156
+
157
+ **実装ノート**
158
+ - 統合:
159
+ - 検証:
160
+ - リスク:
161
+
162
+ ## データモデル
163
+
164
+ この機能で変更されるデータ環境の部分に焦点を当てる。
165
+
166
+ ### ドメインモデル
167
+ - 集約とトランザクション境界
168
+ - エンティティ、値オブジェクト、ドメインイベント
169
+ - ビジネスルール & 不変条件
170
+ - 複雑な関係のオプションMermaid図
171
+
172
+ ### 論理データモデル
173
+
174
+ **構造定義**:
175
+ - エンティティ関係とカーディナリティ
176
+ - 属性とその型
177
+ - 自然キーと識別子
178
+ - 参照整合性ルール
179
+
180
+ **一貫性 & 整合性**:
181
+ - トランザクション境界
182
+ - カスケードルール
183
+ - 時間的側面(バージョニング、監査)
184
+
185
+ ### 物理データモデル
186
+ **含める場合**: 実装で特定のストレージ設計決定が必要な場合
187
+
188
+ **リレーショナルデータベースの場合**:
189
+ - データ型を含むテーブル定義
190
+ - 主キー/外部キーと制約
191
+ - インデックスとパフォーマンス最適化
192
+ - スケールのためのパーティショニング戦略
193
+
194
+ **ドキュメントストアの場合**:
195
+ - コレクション構造
196
+ - 埋め込み vs 参照の決定
197
+ - シャーディングキー設計
198
+ - インデックス定義
199
+
200
+ **イベントストアの場合**:
201
+ - イベントスキーマ定義
202
+ - ストリーム集約戦略
203
+ - スナップショットポリシー
204
+ - プロジェクション定義
205
+
206
+ **Key-Value/ワイドカラムストアの場合**:
207
+ - キー設計パターン
208
+ - カラムファミリーまたは値構造
209
+ - TTLとコンパクション戦略
210
+
211
+ ### データ契約 & 連携
212
+
213
+ **APIデータ転送**
214
+ - リクエスト/レスポンススキーマ
215
+ - バリデーションルール
216
+ - シリアライゼーション形式(JSON、Protobufなど)
217
+
218
+ **イベントスキーマ**
219
+ - 発行イベント構造
220
+ - スキーマバージョニング戦略
221
+ - 後方/前方互換性ルール
222
+
223
+ **クロスサービスデータ管理**
224
+ - 分散トランザクションパターン(Saga、2PC)
225
+ - データ同期戦略
226
+ - 結果整合性の処理
227
+
228
+ この機能に関連しないサブセクションはスキップ。
229
+
230
+ ## エラーハンドリング
231
+
232
+ ### エラー戦略
233
+ 各エラータイプの具体的なエラーハンドリングパターンと復旧メカニズム。
234
+
235
+ ### エラーカテゴリとレスポンス
236
+ **ユーザーエラー** (4xx): 無効な入力 → フィールドレベル検証; 未認証 → 認証ガイダンス; 未検出 → ナビゲーションヘルプ
237
+ **システムエラー** (5xx): インフラ障害 → グレースフルデグラデーション; タイムアウト → サーキットブレーカー; 枯渇 → レート制限
238
+ **ビジネスロジックエラー** (422): ルール違反 → 条件説明; 状態競合 → 遷移ガイダンス
239
+
240
+ **プロセスフロー可視化**(複雑なビジネスロジックが存在する場合):
241
+ 複雑なビジネスワークフローを伴うエラーシナリオのみMermaidフローチャートを含める。
242
+
243
+ ### モニタリング
244
+ エラー追跡、ロギング、ヘルスモニタリングの実装。
245
+
246
+ ## テスト戦略
247
+
248
+ ### デフォルトセクション(ドメインに合わせて名前/セクションを調整)
249
+ - ユニットテスト: コア機能/モジュールから3〜5項目(例:認証メソッド、サブスクリプションロジック)
250
+ - 統合テスト: 3〜5のクロスコンポーネントフロー(例:Webhookハンドリング、通知)
251
+ - E2E/UIテスト(該当する場合): 3〜5の重要なユーザーパス(例:フォーム、ダッシュボード)
252
+ - パフォーマンス/負荷テスト(該当する場合): 3〜4項目(例:並行性、大量操作)
253
+
254
+ ## オプションセクション(関連する場合に含める)
255
+
256
+ ### セキュリティ考慮事項
257
+ _認証、機密データ、外部連携、またはユーザー権限を扱う機能に使用。この機能に固有の決定のみを記載。ベースラインコントロールはステアリングドキュメントに委ねる。_
258
+ - 脅威モデリング、セキュリティコントロール、コンプライアンス要件
259
+ - 認証・認可パターン
260
+ - データ保護とプライバシーの考慮事項
261
+
262
+ ### パフォーマンス & スケーラビリティ
263
+ _パフォーマンス目標、高負荷、またはスケーリングの懸念がある場合に使用。機能固有の目標やトレードオフのみを記録し、一般的なプラクティスはステアリングドキュメントに依存。_
264
+ - 目標メトリクスと測定戦略
265
+ - スケーリングアプローチ(水平/垂直)
266
+ - キャッシュ戦略と最適化技術
267
+
268
+ ### 移行戦略
269
+ スキーマ/データ移動が必要な場合、移行フェーズを示すMermaidフローチャートを含める。
270
+ - フェーズ分割、ロールバックトリガー、検証チェックポイント
271
+
272
+ ## 参考資料(オプション)
273
+ - メイン本文に情報を残すと可読性が損なわれる場合のみこのセクションを作成(例:非常に長いTypeScript定義、ベンダーオプションマトリックス、網羅的なスキーマテーブル)。意思決定のコンテキストはメインセクションに残し、設計を自己完結型に保つ。
274
+ - 大きなスニペットをインラインで含めず、メインテキストから参考資料へのリンクを張る。
275
+ - 背景調査ノートと比較は引き続き`research.md`に記載するが、その結論はメイン設計に要約する必要がある。
@@ -0,0 +1,29 @@
1
+ {
2
+ "project_name": "{{PROJECT_NAME}}",
3
+ "feature_name": "{{FEATURE_NAME}}",
4
+ "feature_key": "{{FEATURE_KEY}}",
5
+ "feature_path": "{{FEATURE_PATH}}",
6
+ "mode": "{{INIT_MODE}}",
7
+ "project_summary": "{{PROJECT_DESCRIPTION}}",
8
+ "created_at": "{{TIMESTAMP}}",
9
+ "updated_at": "{{TIMESTAMP}}",
10
+ "language": "ja",
11
+ "phase": "initialized",
12
+ "approvals": {
13
+ "requirements": {
14
+ "generated": false,
15
+ "approved": false
16
+ },
17
+ "design": {
18
+ "generated": false,
19
+ "approved": false
20
+ },
21
+ "tasks": {
22
+ "generated": false,
23
+ "approved": false
24
+ }
25
+ },
26
+ "ready_for_implementation": false
27
+ }
28
+
29
+
@@ -0,0 +1,8 @@
1
+ # 要件ドキュメント
2
+
3
+ ## プロジェクト説明(入力)
4
+ {{PROJECT_DESCRIPTION}}
5
+
6
+ ## 要件
7
+ <!-- /kiro:spec-requirements フェーズで生成 -->
8
+
@@ -0,0 +1,26 @@
1
+ # 要件ドキュメント
2
+
3
+ ## はじめに
4
+ {{INTRODUCTION}}
5
+
6
+ ## 要件
7
+
8
+ ### 要件 1: {{REQUIREMENT_AREA_1}}
9
+ <!-- 要件の見出しには必ず数字のIDを先頭に付ける(例:「要件 1: ...」、「1. 概要」、「2 機能: ...」)。「要件 A」のようなアルファベットIDは許可されていない。 -->
10
+ **目的:** {{ROLE}}として、{{CAPABILITY}}したい。それにより{{BENEFIT}}を得られる。
11
+
12
+ #### 受け入れ基準
13
+ 1. [イベント]が発生した場合、[システム]は[レスポンス/アクション]を行う
14
+ 2. [トリガー]の場合、[システム]は[レスポンス/アクション]を行う
15
+ 3. [前提条件]の間、[システム]は[レスポンス/アクション]を行う
16
+ 4. [機能が含まれる]場合、[システム]は[レスポンス/アクション]を行う
17
+ 5. [システム]は[レスポンス/アクション]を行う
18
+
19
+ ### 要件 2: {{REQUIREMENT_AREA_2}}
20
+ **目的:** {{ROLE}}として、{{CAPABILITY}}したい。それにより{{BENEFIT}}を得られる。
21
+
22
+ #### 受け入れ基準
23
+ 1. [イベント]が発生した場合、[システム]は[レスポンス/アクション]を行う
24
+ 2. [イベント]かつ[条件]の場合、[システム]は[レスポンス/アクション]を行う
25
+
26
+ <!-- 追加の要件は同じパターンに従う -->
@@ -0,0 +1,61 @@
1
+ # 調査 & 設計決定テンプレート
2
+
3
+ ---
4
+ **目的**: 技術設計に情報を提供する発見結果、アーキテクチャ調査、および根拠を記録する。
5
+
6
+ **使い方**:
7
+ - 発見フェーズ中に調査活動と結果を記録。
8
+ - `design.md`には詳細すぎる設計決定のトレードオフを文書化。
9
+ - 将来の監査や再利用のための参照と証拠を提供。
10
+ ---
11
+
12
+ ## 概要
13
+ - **機能**: `<feature-name>`
14
+ - **発見スコープ**: 新機能 / 拡張 / 単純な追加 / 複雑な連携
15
+ - **主な発見事項**:
16
+ - 発見1
17
+ - 発見2
18
+ - 発見3
19
+
20
+ ## 調査ログ
21
+ 注目すべき調査ステップとその結果を文書化。読みやすさのためにトピックごとにグループ化。
22
+
23
+ ### [トピックまたは質問]
24
+ - **コンテキスト**: この調査のきっかけは何か?
25
+ - **参照したソース**: リンク、ドキュメント、APIリファレンス、ベンチマーク
26
+ - **発見事項**: 洞察を要約した簡潔な箇条書き
27
+ - **影響**: これがアーキテクチャ、契約、または実装にどう影響するか
28
+
29
+ _各主要トピックについてサブセクションを繰り返す。_
30
+
31
+ ## アーキテクチャパターン評価
32
+ 検討した候補パターンまたはアプローチをリスト。必要に応じてテーブル形式を使用。
33
+
34
+ | オプション | 説明 | 強み | リスク / 制限 | 備考 |
35
+ |----------|------|------|--------------|------|
36
+ | ヘキサゴナル | コアドメイン周りのポート & アダプター抽象化 | 明確な境界、テスト可能なコア | アダプターレイヤーの構築が必要 | 既存のステアリング原則Xに合致 |
37
+
38
+ ## 設計決定
39
+ `design.md`に影響を与える主要な決定を記録。重要なトレードオフのある選択に焦点を当てる。
40
+
41
+ ### 決定: `<タイトル>`
42
+ - **コンテキスト**: 決定を促した問題または要件
43
+ - **検討した代替案**:
44
+ 1. オプションA — 短い説明
45
+ 2. オプションB — 短い説明
46
+ - **選択したアプローチ**: 何を選択し、どう機能するか
47
+ - **根拠**: このアプローチが現在のプロジェクトコンテキストに適する理由
48
+ - **トレードオフ**: メリット vs 妥協点
49
+ - **フォローアップ**: 実装またはテスト中に確認すべき事項
50
+
51
+ _各決定についてサブセクションを繰り返す。_
52
+
53
+ ## リスク & 軽減策
54
+ - リスク1 — 提案する軽減策
55
+ - リスク2 — 提案する軽減策
56
+ - リスク3 — 提案する軽減策
57
+
58
+ ## 参考文献
59
+ 正規のリンクと引用を提供(公式ドキュメント、標準、ADR、内部ガイドライン)。
60
+ - [タイトル](https://example.com) — 関連性の簡単なメモ
61
+ - ...
@@ -0,0 +1,21 @@
1
+ # 実装計画
2
+
3
+ ## タスク形式テンプレート
4
+
5
+ 作業分解に適したパターンを使用:
6
+
7
+ ### メジャータスクのみ
8
+ - [ ] {{NUMBER}}. {{TASK_DESCRIPTION}}{{PARALLEL_MARK}}
9
+ - {{DETAIL_ITEM_1}} *(必要な場合のみ詳細を含める。タスクが単独で成立する場合は箇条書きを省略。)*
10
+ - _要件: {{REQUIREMENT_IDS}}_
11
+
12
+ ### メジャー + サブタスク構造
13
+ - [ ] {{MAJOR_NUMBER}}. {{MAJOR_TASK_SUMMARY}}
14
+ - [ ] {{MAJOR_NUMBER}}.{{SUB_NUMBER}} {{SUB_TASK_DESCRIPTION}}{{SUB_PARALLEL_MARK}}
15
+ - {{DETAIL_ITEM_1}}
16
+ - {{DETAIL_ITEM_2}}
17
+ - _要件: {{REQUIREMENT_IDS}}_ *(IDのみ。説明や括弧を追加しない。)*
18
+
19
+ > **並列マーカー**: 並列実行可能なタスクにのみ` (P)`を付加。`--sequential`モードで実行する場合はマーカーを省略。
20
+ >
21
+ > **オプションのテストカバレッジ**: 受け入れ基準に関連する延期可能なテスト作業のサブタスクの場合、チェックボックスを`- [ ]*`としてマークし、詳細の箇条書きで参照要件を説明。
package/package.json CHANGED
@@ -1,15 +1,13 @@
1
1
  {
2
2
  "name": "cursor-sdd",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
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"
7
7
  },
8
8
  "files": [
9
9
  "bin",
10
- "templates",
11
- "rules",
12
- "commands",
10
+ "new",
13
11
  "assign"
14
12
  ],
15
13
  "scripts": {