spec-runner 1.0.0 → 1.0.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 +64 -24
- package/bin/spec-runner.js +23 -5
- package/package.json +1 -1
- package/templates/base/.github/PULL_REQUEST_TEMPLATE.md +11 -11
- package/templates/base/.github/workflows/phase-gate-check.yml +22 -22
- package/templates/base/scripts/spec-runner.sh +158 -71
- package/templates/base/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210//343/202/244/343/203/263/343/203/225/343/203/251.md +14 -0
- package/templates/base/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210//343/203/206/343/203/274/343/203/226/343/203/253.md +17 -0
- package/templates/base/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210//343/203/211/343/203/241/343/202/244/343/203/263.md +18 -0
- package/templates/base/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +12 -0
- package/templates/base/{docs/adr/TEMPLATE.md → templates/99_/350/250/255/350/250/210/345/210/244/346/226/255/350/250/230/351/214/262//343/201/262/343/201/252/345/275/242.md} +1 -1
- package/templates/base/templates/README.md +32 -0
- package/templates/base/templates//345/210/235/346/234/237/343/203/211/343/202/255/343/203/245/343/203/241/343/203/263/343/203/210/01_/346/206/262/347/253/240.md +48 -0
- package/templates/base/templates//345/210/235/346/234/237/343/203/211/343/202/255/343/203/245/343/203/241/343/203/263/343/203/210/02_/344/273/225/346/247/230.md +39 -0
- package/templates/base/{docs/glossary.md → templates//345/210/235/346/234/237/343/203/211/343/202/255/343/203/245/343/203/241/343/203/263/343/203/210/03_/347/224/250/350/252/236/351/233/206.md} +1 -1
- package/templates/base/templates//345/210/235/346/234/237/343/203/211/343/202/255/343/203/245/343/203/241/343/203/263/343/203/210/99_/350/250/255/350/250/210/345/210/244/346/226/255/350/250/230/351/214/262/.gitkeep +0 -0
- package/templates/base/templates//345/210/235/346/234/237/343/203/211/343/202/255/343/203/245/343/203/241/343/203/263/343/203/210//343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210/344/270/200/350/246/247.md +14 -0
- package/templates/claude/.claude/commands/{sr-set-gate.md → sr-/343/202/262/343/203/274/343/203/210/350/250/255/345/256/232.md} +2 -2
- package/templates/{cursor/.cursor/commands/sr-test-design.md → claude/.claude/commands/sr-/343/203/206/343/202/271/343/203/210/350/250/255/350/250/210.md} +1 -1
- package/templates/claude/.claude/commands/sr-/343/203/254/343/203/223/343/203/245/343/203/274.md +9 -0
- package/templates/claude/.claude/commands/sr-/344/273/225/346/247/230.md +9 -0
- package/templates/claude/.claude/commands/{sr-fix.md → sr-/344/277/256/346/255/243.md} +2 -2
- package/templates/claude/.claude/commands/{sr-init.md → sr-/345/210/235/346/234/237/345/214/226.md} +3 -3
- package/templates/claude/.claude/commands/{sr-complete.md → sr-/345/256/214/344/272/206.md} +1 -1
- package/templates/claude/.claude/commands/{sr-implement.md → sr-/345/256/237/350/243/205.md} +1 -1
- package/templates/claude/.claude/commands/sr-/346/206/262/347/253/240.md +9 -0
- package/templates/claude/.claude/commands/sr-/346/246/202/350/246/201/350/250/255/350/250/210.md +9 -0
- package/templates/{cursor/.cursor/commands/sr-status.md → claude/.claude/commands/sr-/347/212/266/346/205/213.md} +1 -1
- package/templates/claude/.claude/commands/{sr-hotfix.md → sr-/347/267/212/346/200/245/344/277/256/346/255/243.md} +2 -2
- package/templates/{cursor/.cursor/commands/sr-configure.md → claude/.claude/commands/sr-/350/250/255/345/256/232.md} +2 -2
- package/templates/claude/.claude/commands/{sr-design-detail.md → sr-/350/251/263/347/264/260/350/250/255/350/250/210.md} +2 -2
- package/templates/claude/.claude/hooks/pre-tool-use.sh +1 -1
- package/templates/claude/CLAUDE.md +22 -22
- package/templates/copilot/.github/copilot-instructions.md +1 -1
- package/templates/copilot/.github/prompts/{sr-set-gate.prompt.md → sr-/343/202/262/343/203/274/343/203/210/350/250/255/345/256/232.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-test-design.prompt.md → sr-/343/203/206/343/202/271/343/203/210/350/250/255/350/250/210.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-review.prompt.md → sr-/343/203/254/343/203/223/343/203/245/343/203/274.prompt.md} +2 -2
- package/templates/copilot/.github/prompts/sr-/344/273/225/346/247/230.prompt.md +13 -0
- package/templates/copilot/.github/prompts/{sr-fix.prompt.md → sr-/344/277/256/346/255/243.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-init.prompt.md → sr-/345/210/235/346/234/237/345/214/226.prompt.md} +3 -3
- package/templates/copilot/.github/prompts/{sr-complete.prompt.md → sr-/345/256/214/344/272/206.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-implement.prompt.md → sr-/345/256/237/350/243/205.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/sr-/346/206/262/347/253/240.prompt.md +13 -0
- package/templates/copilot/.github/prompts/{sr-design-high.prompt.md → sr-/346/246/202/350/246/201/350/250/255/350/250/210.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-status.prompt.md → sr-/347/212/266/346/205/213.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-hotfix.prompt.md → sr-/347/267/212/346/200/245/344/277/256/346/255/243.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-configure.prompt.md → sr-/350/250/255/345/256/232.prompt.md} +1 -1
- package/templates/copilot/.github/prompts/{sr-design-detail.prompt.md → sr-/350/251/263/347/264/260/350/250/255/350/250/210.prompt.md} +1 -1
- package/templates/cursor/.cursor/commands/sr-/343/202/262/343/203/274/343/203/210/350/250/255/345/256/232.md +9 -0
- package/templates/{claude/.claude/commands/sr-test-design.md → cursor/.cursor/commands/sr-/343/203/206/343/202/271/343/203/210/350/250/255/350/250/210.md} +1 -1
- package/templates/cursor/.cursor/commands/sr-/343/203/254/343/203/223/343/203/245/343/203/274.md +9 -0
- package/templates/cursor/.cursor/commands/sr-/344/273/225/346/247/230.md +9 -0
- package/templates/cursor/.cursor/commands/{sr-fix.md → sr-/344/277/256/346/255/243.md} +2 -2
- package/templates/cursor/.cursor/commands/{sr-init.md → sr-/345/210/235/346/234/237/345/214/226.md} +3 -3
- package/templates/cursor/.cursor/commands/{sr-complete.md → sr-/345/256/214/344/272/206.md} +1 -1
- package/templates/cursor/.cursor/commands/{sr-implement.md → sr-/345/256/237/350/243/205.md} +1 -1
- package/templates/cursor/.cursor/commands/sr-/346/206/262/347/253/240.md +9 -0
- package/templates/cursor/.cursor/commands/sr-/346/246/202/350/246/201/350/250/255/350/250/210.md +9 -0
- package/templates/{claude/.claude/commands/sr-status.md → cursor/.cursor/commands/sr-/347/212/266/346/205/213.md} +1 -1
- package/templates/cursor/.cursor/commands/{sr-hotfix.md → sr-/347/267/212/346/200/245/344/277/256/346/255/243.md} +2 -2
- package/templates/{claude/.claude/commands/sr-configure.md → cursor/.cursor/commands/sr-/350/250/255/345/256/232.md} +2 -2
- package/templates/cursor/.cursor/commands/{sr-design-detail.md → sr-/350/251/263/347/264/260/350/250/255/350/250/210.md} +2 -2
- package/templates/claude/.claude/commands/sr-design-high.md +0 -9
- package/templates/claude/.claude/commands/sr-review.md +0 -9
- package/templates/cursor/.cursor/commands/sr-design-high.md +0 -9
- package/templates/cursor/.cursor/commands/sr-review.md +0 -9
- package/templates/cursor/.cursor/commands/sr-set-gate.md +0 -9
- /package/templates/base/templates/{requirement/template.md → 01_/350/246/201/344/273/266/345/256/232/347/276/251//343/201/262/343/201/252/345/275/242.md"} +0 -0
- /package/templates/base/{docs/review/debt.md → templates//345/210/235/346/234/237/343/203/211/343/202/255/343/203/245/343/203/241/343/203/263/343/203/210//346/214/257/343/202/212/350/277/224/343/202/212//350/262/240/345/202/265.md"} +0 -0
package/templates/claude/.claude/commands/sr-/343/203/254/343/203/223/343/203/245/343/203/274.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# /sr-レビュー
|
|
2
|
+
|
|
3
|
+
**チャットで使うコマンド**。$ARGUMENTS にレビュー通過させるファイルパスを指定し、以下を**ターミナルで実行**してください(例: `/sr-レビュー docs/01_要件/顧客登録.md`)。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
./scripts/spec-runner.sh review-pass $ARGUMENTS
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
引数が空の場合は、ユーザーに「レビュー通過させるファイルパスを指定してください(例: docs/01_要件/顧客登録.md)」と伝えてください。
|
package/templates/claude/.claude/commands/{sr-init.md → sr-/345/210/235/346/234/237/345/214/226.md}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# /sr
|
|
1
|
+
# /sr-初期化
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**チャットで使うコマンド**。$ARGUMENTS にはユーザーがスラッシュの後に続けて入力した文字列が入ります。以下を**ターミナルで実行**してください(例: ユーザーが `/sr-初期化 顧客登録 顧客管理` と入力した場合)。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
./scripts/spec-runner.sh init $ARGUMENTS
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
- **引数あり**(例: `顧客登録 顧客管理`): 未設定なら詳細設定の対話 → 続けてユースケース作成。
|
|
10
|
-
- **引数が空**の場合は、ユーザーに「ユースケース名(と任意で集約名)を指定してください」と伝えるか、**設定対話だけ**したい場合は `/sr
|
|
10
|
+
- **引数が空**の場合は、ユーザーに「ユースケース名(と任意で集約名)を指定してください」と伝えるか、**設定対話だけ**したい場合は `/sr-設定` を案内してください。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# /sr
|
|
1
|
+
# /sr-設定
|
|
2
2
|
|
|
3
3
|
詳細設定(パス・TDD・DDD 等)の**対話のみ**を実行します。ユースケースは作成しません。
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
./scripts/spec-runner.sh init
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
引数なしの init のため、対話で Domain/UseCase のパスやテスト設定を聞かれたあと「最初のユースケースを開始するには…」と表示されて終わります。ユースケースを作る場合は `/sr
|
|
11
|
+
引数なしの init のため、対話で Domain/UseCase のパスやテスト設定を聞かれたあと「最初のユースケースを開始するには…」と表示されて終わります。ユースケースを作る場合は `/sr-初期化 ユースケース名 集約名` を使ってください。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# /sr
|
|
1
|
+
# /sr-詳細設計
|
|
2
2
|
|
|
3
|
-
以下を**必ずターミナルで実行**してください。$ARGUMENTS にはサブフェーズ(domain / usecase / table / infra)のいずれかを指定します(例: `/sr
|
|
3
|
+
以下を**必ずターミナルで実行**してください。$ARGUMENTS にはサブフェーズ(domain / usecase / table / infra)のいずれかを指定します(例: `/sr-詳細設計 domain`)。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
./scripts/spec-runner.sh design-detail $ARGUMENTS
|
|
@@ -39,7 +39,7 @@ esac
|
|
|
39
39
|
# 設計ドキュメントや設定ファイルへの書き込みは常に許可
|
|
40
40
|
case "$file_path" in
|
|
41
41
|
*/docs/*|*/CLAUDE.md|*/.spec-runner/state.json|*/scripts/*|*/.github/*|\
|
|
42
|
-
*/templates/*|*/
|
|
42
|
+
*/templates/*|*/03_用語集.md|*.json|*.yml|*.yaml|*.sh|*.lock|\
|
|
43
43
|
*/.spec-runner/*|*/node_modules/*|*/vendor/*)
|
|
44
44
|
exit 0
|
|
45
45
|
;;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
**何かを実装する前に必ず実行せよ:**
|
|
11
11
|
|
|
12
|
-
`./scripts/spec-runner.sh status`(チャットでは `/sr
|
|
12
|
+
`./scripts/spec-runner.sh status`(チャットでは `/sr-状態`)で現在のフェーズを確認する。
|
|
13
13
|
|
|
14
14
|
`phase` が `implement` でない場合、実装コードを生成してはならない。
|
|
15
15
|
代わりに「現在のフェーズを確認してください」と伝えてユーザーに委ねよ。
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**実装フェーズに進むまでに、テストを必ず含める。**
|
|
22
22
|
|
|
23
|
-
1. **テスト設計** … `docs/
|
|
23
|
+
1. **テスト設計** … `docs/04_テスト設計/<UC名>.md` を書く
|
|
24
24
|
2. **テストを先に書く(Red)** … 実装より前にテストコードを書き、失敗することを確認する
|
|
25
25
|
3. **テストコードをコミット** … `./scripts/spec-runner.sh set-gate test_code_committed` でゲート通過
|
|
26
26
|
4. **実装で Green** … `implement` フェーズでテストを通す実装を書く
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
### .claude/commands/(Claude Code カスタムスラッシュコマンド)
|
|
38
38
|
|
|
39
|
-
`.claude/commands/` に Markdown を置くと、チャット欄で `/sr
|
|
39
|
+
`.claude/commands/` に Markdown を置くと、チャット欄で `/sr-憲章` や `/sr-状態` などのスラッシュコマンドとして呼び出せる。各ファイルは「spec-runner.sh を実行せよ」という指示になっており、**ハード強制**に繋がる。コマンド一覧は **README の「スラッシュコマンド」** を参照。各 .md 内の `$ARGUMENTS` には、ユーザーがスラッシュの後に続けて入力した文字列が入る。
|
|
40
40
|
|
|
41
41
|
### 自然言語・短いスラッシュでの依頼
|
|
42
42
|
|
|
@@ -47,46 +47,46 @@
|
|
|
47
47
|
## フェーズ別の行動規則
|
|
48
48
|
|
|
49
49
|
### require(要件定義)フェーズ
|
|
50
|
-
- `docs/
|
|
50
|
+
- `docs/01_要件/<UC名>.md` を編集する
|
|
51
51
|
- 実装・設計・テーブル定義は書かない
|
|
52
|
-
- 完了後: `./scripts/spec-runner.sh review-pass docs/
|
|
52
|
+
- 完了後: `./scripts/spec-runner.sh review-pass docs/01_要件/<UC名>.md`
|
|
53
53
|
|
|
54
54
|
### design-high(概要設計)フェーズ
|
|
55
|
-
- `docs/
|
|
55
|
+
- `docs/02_概要設計/<UC名>.md` を編集する
|
|
56
56
|
- ユースケース記述とドメインモデル候補の洗い出しのみ
|
|
57
57
|
- **具体的なメソッド定義・テーブルカラムは書かない**
|
|
58
|
-
- 新しい概念が出たら先に `docs/
|
|
59
|
-
- 完了後: `./scripts/spec-runner.sh review-pass docs/
|
|
58
|
+
- 新しい概念が出たら先に `docs/03_用語集.md` に追加する
|
|
59
|
+
- 完了後: `./scripts/spec-runner.sh review-pass docs/02_概要設計/<UC名>.md`
|
|
60
60
|
|
|
61
61
|
### design-detail(詳細設計)フェーズ
|
|
62
62
|
この順序で作業する:
|
|
63
63
|
|
|
64
|
-
1. **domain** → `docs/
|
|
64
|
+
1. **domain** → `docs/03_詳細設計/<UC名>/ドメイン.md`
|
|
65
65
|
- エンティティ・値オブジェクト・ドメインイベント・集約・リポジトリIF
|
|
66
66
|
- 振る舞い(メソッド)の定義
|
|
67
67
|
- ← レビュー通過後に次へ
|
|
68
68
|
|
|
69
|
-
2. **usecase** → `docs/
|
|
69
|
+
2. **usecase** → `docs/03_詳細設計/<UC名>/ユースケース.md`
|
|
70
70
|
- ドメインモデルを使う設計(ドメインモデルを参照して書く)
|
|
71
71
|
- Command/Query の入出力・シーケンス図
|
|
72
72
|
- ← レビュー通過後に次へ
|
|
73
73
|
|
|
74
|
-
3. **table** → `docs/
|
|
74
|
+
3. **table** → `docs/03_詳細設計/<UC名>/テーブル.md`
|
|
75
75
|
- ドメインモデル ≠ テーブル(用途で分けてOK)
|
|
76
76
|
- ER図(Mermaid)
|
|
77
77
|
- ← レビュー通過後に次へ
|
|
78
78
|
|
|
79
|
-
4. **infra** → `docs/
|
|
79
|
+
4. **infra** → `docs/03_詳細設計/<UC名>/インフラ.md`
|
|
80
80
|
- APIエンドポイント定義
|
|
81
81
|
- リポジトリ実装方針
|
|
82
82
|
- フロントエンドコンポーネント構成
|
|
83
83
|
- ← レビュー通過後に次へ
|
|
84
84
|
|
|
85
85
|
### test-design(テスト設計)フェーズ
|
|
86
|
-
- `docs/
|
|
86
|
+
- `docs/04_テスト設計/<UC名>.md` を編集する
|
|
87
87
|
- **TDD: テストコードを実装より先に書く(Red 状態で OK)**
|
|
88
88
|
- テストコードをコミットしてから次へ: `./scripts/spec-runner.sh set-gate test_code_committed`
|
|
89
|
-
- 完了後: `./scripts/spec-runner.sh review-pass docs/
|
|
89
|
+
- 完了後: `./scripts/spec-runner.sh review-pass docs/04_テスト設計/<UC名>.md`
|
|
90
90
|
|
|
91
91
|
### implement(実装)フェーズ
|
|
92
92
|
- **TDD: テストを Green にする実装を書く**
|
|
@@ -100,21 +100,21 @@
|
|
|
100
100
|
|
|
101
101
|
| 変更内容 | 必ず同時更新するもの |
|
|
102
102
|
|---------|-------------------|
|
|
103
|
-
| `Domain/` 配下のクラス変更 | `docs/
|
|
104
|
-
| `UseCase/` 配下のクラス変更 | `docs/
|
|
105
|
-
| `Infrastructure/Api/` の変更 | `docs/
|
|
106
|
-
| DBマイグレーション | `docs/
|
|
107
|
-
| 新しいエンティティ/値オブジェクト | `docs/
|
|
108
|
-
| アーキテクチャ判断 | `docs/
|
|
103
|
+
| `Domain/` 配下のクラス変更 | `docs/03_詳細設計/<UC名>/ドメイン.md` |
|
|
104
|
+
| `UseCase/` 配下のクラス変更 | `docs/03_詳細設計/<UC名>/ユースケース.md` |
|
|
105
|
+
| `Infrastructure/Api/` の変更 | `docs/03_詳細設計/<UC名>/インフラ.md` |
|
|
106
|
+
| DBマイグレーション | `docs/03_詳細設計/<UC名>/テーブル.md` |
|
|
107
|
+
| 新しいエンティティ/値オブジェクト | `docs/03_用語集.md` |
|
|
108
|
+
| アーキテクチャ判断 | `docs/99_設計判断記録/<番号>-<タイトル>.md` |
|
|
109
109
|
|
|
110
110
|
---
|
|
111
111
|
|
|
112
112
|
## ユビキタス言語ルール
|
|
113
113
|
|
|
114
|
-
- 設計ドキュメント → `docs/
|
|
114
|
+
- 設計ドキュメント → `docs/03_用語集.md` の **日本語** 列を使う
|
|
115
115
|
- コード(クラス名・メソッド名・変数名)→ **英語** 列を使う
|
|
116
116
|
- PHPDoc/JSDoc → 日本語のユビキタス言語を `@description` に併記する
|
|
117
|
-
- 新しい概念が登場 → **まず `docs/
|
|
117
|
+
- 新しい概念が登場 → **まず `docs/03_用語集.md` に追加してから**設計・実装に入る
|
|
118
118
|
|
|
119
119
|
---
|
|
120
120
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
- 実装コードを書く前に **必ず** `./scripts/spec-runner.sh status` を実行する。
|
|
8
8
|
- `phase` が `implement` でないときは実装コードを生成しない。ユーザーに「現在のフェーズを確認してください」と伝える。
|
|
9
9
|
- ユーザーが「init して」「status 確認して」「design-high で進めて」などと言ったら、対応する `./scripts/spec-runner.sh` をターミナルで実行する。
|
|
10
|
-
- スラッシュコマンド `/sr
|
|
10
|
+
- スラッシュコマンド `/sr-初期化` などは `.github/prompts/*.prompt.md` に定義済み(コマンド名は日本語)。`tools: [shell]` でシェル実行される。
|
|
11
11
|
|
|
12
12
|
## TDD(テスト駆動)— デフォルトで有効
|
|
13
13
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
agent: 'agent'
|
|
3
3
|
description: 'spec-runner: レビュー通過を記録'
|
|
4
|
-
argument-hint: 'ファイルパス(例: docs/
|
|
4
|
+
argument-hint: 'ファイルパス(例: docs/01_要件/顧客登録.md)'
|
|
5
5
|
tools: ['shell']
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -11,4 +11,4 @@ tools: ['shell']
|
|
|
11
11
|
./scripts/spec-runner.sh review-pass ${input:path:レビュー通過させるファイルパス}
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
引数が空の場合は、ユーザーに「ファイルパスを指定してください」と伝えてください。
|
|
14
|
+
引数が空の場合は、ユーザーに「ファイルパスを指定してください」と伝えてください。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: 'agent'
|
|
3
|
+
description: 'spec-runner: プロジェクト仕様を編集。何を作るか・なぜか・スコープを docs/02_仕様.md に書く'
|
|
4
|
+
tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**チャットで使うプロンプト**。プロジェクト仕様を編集します。
|
|
8
|
+
|
|
9
|
+
1. `docs/02_仕様.md` の内容を読み、必要なら開く。
|
|
10
|
+
2. ユーザーと一緒に「このプロジェクトで作るもの」「作る理由」「スコープ(含む/含まない)」「想定ユーザー」を書き足す・修正する。
|
|
11
|
+
3. 曖昧な点があれば質問して解消する。
|
|
12
|
+
|
|
13
|
+
init の前に書いておくと、最初のユースケースを決めやすくなる。
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
agent: 'agent'
|
|
3
|
-
description: 'spec-runner:
|
|
3
|
+
description: 'spec-runner: ユースケースを初期化(未設定なら詳細設定の対話から)。チャットで /sr-初期化 ユースケース名 集約名 と入力して使う'
|
|
4
4
|
argument-hint: 'ユースケース名 集約名(例: 顧客登録 顧客管理)。空なら設定対話のみ'
|
|
5
5
|
tools: ['shell']
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
**チャットで /sr-初期化 と入力して使う**。以下を**必ずシェルで実行**してください。
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
./scripts/spec-runner.sh init ${input:args:ユースケース名 集約名(スペース区切り。集約名は省略可)}
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
- **引数あり**: 未設定なら詳細設定の対話 → ユースケース作成。
|
|
15
|
-
- **引数が空**: 設定対話のみ。ユースケースを作らない場合はこのまま実行でよい。ユースケースを作る場合は引数で名前を指定するよう伝えてください。
|
|
15
|
+
- **引数が空**: 設定対話のみ。ユースケースを作らない場合はこのまま実行でよい。ユースケースを作る場合は引数で名前を指定するよう伝えてください。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: 'agent'
|
|
3
|
+
description: 'spec-runner: プロジェクト憲章を編集。不変原則・品質ルールを docs/01_憲章.md に書く'
|
|
4
|
+
tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**チャットで使うプロンプト**。プロジェクト憲章を編集します。
|
|
8
|
+
|
|
9
|
+
1. `docs/01_憲章.md` の内容を読み、必要なら開く。
|
|
10
|
+
2. ユーザーと一緒に「このプロジェクトで守る開発ルール」「品質基準」「フォルダ・成果物の原則」を書き足す・修正する。
|
|
11
|
+
3. 憲章は技術やツールに依存しない抽象的なルールに留める。
|
|
12
|
+
|
|
13
|
+
init の前に書いておくと、その後のユースケース開発で参照できる。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# /sr-ゲート設定
|
|
2
|
+
|
|
3
|
+
**チャットで使うコマンド**。ユーザーが `/sr-ゲート設定` の後に続けて入力したゲート名で、以下を**ターミナルで実行**してください(例: `/sr-ゲート設定 glossary_checked`)。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
./scripts/spec-runner.sh set-gate <ユーザーが入力したゲート名>
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
引数が空の場合は、ユーザーに「ゲート名を指定してください(例: glossary_checked, test_code_committed)」と伝えてください。
|
package/templates/cursor/.cursor/commands/{sr-init.md → sr-/345/210/235/346/234/237/345/214/226.md}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# /sr
|
|
1
|
+
# /sr-初期化
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**チャットで使うコマンド**。ユーザーが `/sr-初期化` の後に続けて入力した文字列を引数として、以下を**ターミナルで実行**してください(例: ユーザーが `/sr-初期化 顧客登録 顧客管理` と入力した場合)。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
./scripts/spec-runner.sh init <ユーザーが入力した引数>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
- **引数あり**(例: `顧客登録 顧客管理`): 未設定なら詳細設定の対話 → 続けてユースケース作成。
|
|
10
|
-
- **引数が空**の場合は、ユーザーに「ユースケース名(と任意で集約名)を指定してください」と伝えるか、**設定対話だけ**したい場合は `/sr
|
|
10
|
+
- **引数が空**の場合は、ユーザーに「ユースケース名(と任意で集約名)を指定してください」と伝えるか、**設定対話だけ**したい場合は `/sr-設定` を案内してください。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# /sr
|
|
1
|
+
# /sr-設定
|
|
2
2
|
|
|
3
3
|
詳細設定(パス・TDD・DDD 等)の**対話のみ**を実行します。ユースケースは作成しません。
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
./scripts/spec-runner.sh init
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
引数なしの init のため、対話で Domain/UseCase のパスやテスト設定を聞かれたあと「最初のユースケースを開始するには…」と表示されて終わります。ユースケースを作る場合は `/sr
|
|
11
|
+
引数なしの init のため、対話で Domain/UseCase のパスやテスト設定を聞かれたあと「最初のユースケースを開始するには…」と表示されて終わります。ユースケースを作る場合は `/sr-初期化 ユースケース名 集約名` を使ってください。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# /sr
|
|
1
|
+
# /sr-詳細設計
|
|
2
2
|
|
|
3
|
-
以下を**必ずターミナルで実行**してください。ユーザーが続けて入力したサブフェーズ(domain / usecase / table / infra)を渡します(例: `/sr
|
|
3
|
+
以下を**必ずターミナルで実行**してください。ユーザーが続けて入力したサブフェーズ(domain / usecase / table / infra)を渡します(例: `/sr-詳細設計 domain`)。
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
./scripts/spec-runner.sh design-detail <ユーザーが入力したサブフェーズ>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# /sr-review
|
|
2
|
-
|
|
3
|
-
以下を**必ずターミナルで実行**してください。$ARGUMENTS にレビュー通過させるファイルパスを指定します(例: `/sr-review docs/requirements/顧客登録.md`)。
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
./scripts/spec-runner.sh review-pass $ARGUMENTS
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
引数が空の場合は、ユーザーに「レビュー通過させるファイルパスを指定してください(例: docs/requirements/顧客登録.md)」と伝えてください。
|
|
File without changes
|