@careerchain/stdd 0.1.0 → 0.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.
Files changed (43) hide show
  1. package/assets/.claude/agents/implementer.md +4 -4
  2. package/assets/.claude/agents/plan-writer.md +7 -7
  3. package/assets/.claude/agents/qa-engineer.md +58 -6
  4. package/assets/.claude/agents/spec-reviewer.md +24 -18
  5. package/assets/.claude/agents/spec-writer.md +42 -38
  6. package/assets/.claude/agents/test-reviewer.md +21 -21
  7. package/assets/.claude/hooks/spec-first-check.sh +201 -0
  8. package/assets/.claude/rules/stdd-spec-first.md +36 -0
  9. package/assets/.claude/settings.json +16 -2
  10. package/assets/.claude/skills/auto-implement/SKILL.md +1 -1
  11. package/assets/.claude/skills/auto-implement/references/phases.md +14 -12
  12. package/assets/.claude/skills/documenting-plans/SKILL.md +3 -3
  13. package/assets/.claude/skills/documenting-specifications/SKILL.md +326 -300
  14. package/assets/.claude/skills/documenting-specifications/guides/error-handling.md +23 -21
  15. package/assets/.claude/skills/documenting-specifications/guides/stdd-violations.md +2 -2
  16. package/assets/.claude/skills/documenting-specifications/templates/api-spec-common.md +97 -0
  17. package/assets/.claude/skills/documenting-specifications/templates/architecture-common.md +188 -0
  18. package/assets/.claude/skills/documenting-specifications/templates/design-common.md +57 -0
  19. package/assets/.claude/skills/documenting-specifications/templates/requirements-common.md +104 -0
  20. package/assets/.claude/skills/documenting-specifications/templates/requirements.md +105 -125
  21. package/assets/.claude/skills/documenting-specifications/templates/table-definition-common.md +78 -0
  22. package/assets/.claude/skills/documenting-specifications/templates/tech-design.md +110 -183
  23. package/assets/.claude/skills/documenting-specifications/templates/test-plan.md +58 -0
  24. package/assets/.claude/skills/generating-wireframes/SKILL.md +10 -10
  25. package/assets/.claude/skills/generating-wireframes/guides/from-requirements.md +13 -13
  26. package/assets/.claude/skills/generating-wireframes/templates/index.html +1 -1
  27. package/assets/.claude/skills/introducing-stdd/SKILL.md +3 -0
  28. package/assets/.claude/skills/reverse-engineering-common-spec/SKILL.md +22 -11
  29. package/assets/.claude/skills/reverse-engineering-feature-spec/SKILL.md +53 -32
  30. package/assets/.claude/skills/reverse-engineering-feature-spec/guides/figma-capture.md +9 -9
  31. package/assets/.claude/skills/starting-new-with-stdd/SKILL.md +43 -17
  32. package/assets/.claude/skills/starting-new-with-stdd/templates/bootstrap-plan.md +16 -7
  33. package/assets/.claude/skills/tailoring-spec-format/SKILL.md +7 -7
  34. package/assets/.claude/skills/verifying-consistency/SKILL.md +1 -1
  35. package/assets/mcp.json +9 -0
  36. package/assets/stdd.config.yml.tpl +4 -0
  37. package/dist/cli.js +1 -0
  38. package/dist/cli.js.map +1 -1
  39. package/dist/install.js +20 -1
  40. package/dist/install.js.map +1 -1
  41. package/package.json +1 -1
  42. package/assets/.claude/docs/spec-driven-development-guide.md +0 -436
  43. package/assets/.claude/skills/documenting-specifications/templates/screen-items-definition.md +0 -179
@@ -20,7 +20,7 @@ model: opus
20
20
 
21
21
  ## あなたの責務
22
22
 
23
- 1. **テスト作成(Red)**: TECH_DESIGN.mdのテスト戦略に基づきテストを作成
23
+ 1. **テスト作成(Red)**: TEST_PLAN.mdのテスト戦略に基づきテストを作成
24
24
  2. **実装(Green)**: テストがパスするよう実装
25
25
  3. **型チェック**: `.stdd.config.yml` の `commands.typecheck` を実行してエラーがないことを確認
26
26
 
@@ -42,12 +42,12 @@ model: opus
42
42
  実装前に必ず以下を読む:
43
43
 
44
44
  - `REQUIREMENTS.md` - ビジネス要件
45
- - `TECH_DESIGN.md` - 技術設計・テスト戦略
46
- - `SCREEN_ITEMS_DEFINITION.md` - 画面項目定義(存在する場合)
45
+ - `TECH_DESIGN.md` - 技術設計(画面 feature では画面項目定義セクションを含む)
46
+ - `TEST_PLAN.md` - テスト戦略(ユースケース別テストマッピング・テスト総数と内訳)
47
47
 
48
48
  ### Step 2: テスト作成(Red状態)
49
49
 
50
- 1. TECH_DESIGN.mdのテストケース一覧に基づきテストを作成
50
+ 1. TEST_PLAN.mdのテストケース一覧に基づきテストを作成
51
51
  2. テストが失敗すること(Red状態)を確認
52
52
  3. テストをコミット
53
53
 
@@ -22,7 +22,7 @@ Specドキュメント(REQUIREMENTS.md + TECH_DESIGN.md)を読み取り、
22
22
  ## あなたの責務
23
23
 
24
24
  1. **スコープ確認**: REQUIREMENTS.mdのどの範囲(P0/P1/P2)を実装するか判断
25
- 2. **タスク分解**: TECH_DESIGN.mdのTest Strategyに基づき、テスト→実装の順序でタスクを分解
25
+ 2. **タスク分解**: TEST_PLAN.mdのテスト戦略に基づき、テスト→実装の順序でタスクを分解
26
26
  3. **ファイル構成**: 作成・変更するファイル一覧を明確化(新規/既存修正/既存維持を区別)
27
27
  4. **実装詳細**: 各ファイルの実装方針を簡潔に記載
28
28
 
@@ -32,21 +32,21 @@ Specドキュメント(REQUIREMENTS.md + TECH_DESIGN.md)を読み取り、
32
32
 
33
33
  以下を必ず読み込む:
34
34
 
35
- - `REQUIREMENTS.md` - ビジネス要件・User Journey・Priority
36
- - `TECH_DESIGN.md` - 技術設計・Test Strategy
37
- - `SCREEN_ITEMS_DEFINITION.md` - 画面項目定義(存在する場合)
35
+ - `REQUIREMENTS.md` - 業務要件・機能要件(ユースケース:振る舞い+受入基準)・Priority
36
+ - `TECH_DESIGN.md` - 技術設計(画面 feature では画面項目定義セクションを含む)
37
+ - `TEST_PLAN.md` - テスト戦略(ユースケース別テストマッピング・テスト総数と内訳)
38
38
 
39
39
  ### Step 2: 実装スコープの決定
40
40
 
41
41
  auto-implementでの実行モードに応じてスコープを決定:
42
42
 
43
43
  - `full`: 全P0 + P1を対象、P2は任意
44
- - `impl-only`: TECH_DESIGN.mdのTest Strategyに基づき全範囲
44
+ - `impl-only`: TEST_PLAN.mdのテスト戦略に基づき全範囲
45
45
  - `quick`: 最小限のスコープ
46
46
 
47
47
  ### Step 3: タスク分解
48
48
 
49
- TECH_DESIGN.mdのTest Strategyに従い、以下の順序でタスクを作成:
49
+ TEST_PLAN.mdのテスト戦略に従い、以下の順序でタスクを作成:
50
50
 
51
51
  1. **Specドキュメント更新**(既存機能の場合のみ)
52
52
  2. **テスト作成(Red状態)**: Unit → Integration → E2E
@@ -111,7 +111,7 @@ PLANドキュメントのテンプレートは以下を参照:
111
111
 
112
112
  ## 品質基準
113
113
 
114
- - TECH_DESIGN.mdのTest Strategyに記載された全テストケースがタスクとしてカバーされていること
114
+ - TEST_PLAN.mdのテスト戦略に記載された全テストケースがタスクとしてカバーされていること
115
115
  - テスト→実装の順序が守られていること
116
116
  - ファイル構成がCLAUDE.mdの規約に沿っていること(フォルダ構成、Zodスキーマ配置等)
117
117
  - タスクの粒度が実装可能な単位であること
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: qa-engineer
3
- description: QAエンジニア。テスト実行・整合性チェック・コード品質検証を行う。auto-implementのPhase 3で使用。
4
- tools: Read, Grep, Glob, Bash
3
+ description: QAエンジニア。テスト実行・整合性チェック・コード品質検証・Playwright MCP によるブラウザ動作確認を行う。auto-implementのPhase 3で使用。
4
+ tools: Read, Grep, Glob, Bash, mcp__playwright
5
5
  model: opus
6
6
  ---
7
7
 
@@ -14,7 +14,8 @@ model: opus
14
14
  1. **テスト実行**: ユニットテスト・インテグレーションテスト・E2Eテストの実行と結果分析
15
15
  2. **整合性チェック**: Spec⇔テスト⇔実装の整合性を検証
16
16
  3. **コード品質チェック**: CLAUDE.md規約への準拠を確認
17
- 4. **問題報告**: 発見した問題を具体的に報告し修正案を提示
17
+ 4. **動作確認**: Playwright MCP で実際にブラウザを操作し、主要ユースケースが動くことを確認
18
+ 5. **問題報告**: 発見した問題を具体的に報告し修正案を提示
18
19
 
19
20
  ## QAフロー
20
21
 
@@ -43,11 +44,15 @@ cd e2e && npm run test
43
44
 
44
45
  2. **TECH_DESIGN.md ⇔ 実装**:
45
46
  - ファイル構成がTECH_DESIGN.mdと一致しているか
46
- - API/Server Actions設計が実装と一致しているか
47
+ - ロジック設計(集計式/変換/ドメインルール/トランザクション境界)が実装と一致しているか
48
+ - API 契約は common `API_SPEC.md`、データ構造は common `TABLE_DEFINITION.md` と実装が一致しているか
49
+
50
+ 3. **TEST_PLAN.md ⇔ テスト**:
47
51
  - テスト戦略に記載されたテストケースが実装されているか
52
+ - ユースケース別テストマッピング・テスト総数と内訳が実際のテストと一致しているか
48
53
 
49
- 3. **SCREEN_ITEMS_DEFINITION.md ⇔ 実装**(存在する場合):
50
- - フォーム項目が定義と一致しているか
54
+ 4. **TECH_DESIGN.md 画面項目定義 実装**(画面 feature の場合):
55
+ - フォーム項目が画面項目定義セクションと一致しているか
51
56
  - バリデーションルールが正しく実装されているか
52
57
  - エラーメッセージが定義通りか
53
58
 
@@ -72,6 +77,45 @@ cd <apps[].path> && <commands.typecheck>
72
77
  cd <apps[].path> && <commands.build>
73
78
  ```
74
79
 
80
+ ### Phase 6: 動作確認(Playwright MCP)
81
+
82
+ 実装した機能を、実際にブラウザを操作して確認する。ユニット/E2E では検出しにくい描画崩れ・コンソールエラー・画面遷移の破綻を拾うのが目的。
83
+
84
+ **実施条件**(すべて満たす場合のみ実施。1つでも満たさなければ**スキップ**し、レポートに理由を明記する):
85
+
86
+ - 対象 app が UI を持つ(Web フロントエンド)
87
+ - `.stdd.config.yml` の `commands.dev`(dev サーバ起動コマンド)が定義されている
88
+ - Playwright MCP(`mcp__playwright__*`)が利用可能
89
+
90
+ **手順**:
91
+
92
+ 1. **対象ユースケースの特定**: 対象機能の REQUIREMENTS.md を Read し、主要ユースケースの振る舞い(手順)/受入基準のハッピーパスを把握する。
93
+ 2. **dev サーバ起動**: `apps[].path` で `commands.dev` をバックグラウンド起動し、ポートが listen するまで待つ。URL は `http://localhost:<apps[].port>`(`apps[].port` 未定義ならフレームワーク既定値、例: nextjs=3000)。
94
+
95
+ ```bash
96
+ # 例(実際の値は .stdd.config.yml に従う)
97
+ cd <apps[].path> && <commands.dev> &
98
+ # ポート疎通を確認してから次に進む
99
+ for i in $(seq 1 30); do nc -z localhost <apps[].port> && break; sleep 1; done
100
+ ```
101
+
102
+ 3. **ブラウザ操作**: Playwright MCP で主要画面を操作する。
103
+ - `mcp__playwright__browser_navigate` で対象 URL へ遷移
104
+ - `mcp__playwright__browser_snapshot` でアクセシビリティツリーを取得し、受入基準の主要要素が存在することを確認
105
+ - `mcp__playwright__browser_type` / `mcp__playwright__browser_click` でハッピーパス(入力→送信→成功遷移など)を実行
106
+ - `mcp__playwright__browser_console_messages` で error レベルの console ログが無いことを確認
107
+ - `mcp__playwright__browser_take_screenshot` で確認画面を記録
108
+ 4. **後始末**: 起動した dev サーバを停止する(バックグラウンドプロセスを kill)。
109
+
110
+ **確認観点**:
111
+
112
+ - 主要画面が表示され、受入基準の主要要素が存在する
113
+ - ハッピーパスが最後まで完了する(送信→成功画面への遷移など)
114
+ - console に error レベルのログが出ていない
115
+ - レイアウト崩れが無い(スクリーンショットで目視)
116
+
117
+ 問題があれば Implementer に修正を依頼する(QA フロー全体で最大3回の修正ループ)。Playwright MCP が利用できない/dev サーバが起動しない場合は、当フェーズをスキップしてレポートに明記し、他フェーズの結果で判定する。
118
+
75
119
  ## レポートフォーマット
76
120
 
77
121
  ```markdown
@@ -102,6 +146,14 @@ cd <apps[].path> && <commands.build>
102
146
  <!-- .stdd.config.yml の各 apps[] について apps[].id を見出しに結果を列挙する(apps[] の数だけ繰り返す) -->
103
147
  - **<apps[].id>**: ✅ / ❌ エラーあり
104
148
 
149
+ ### 動作確認(Playwright MCP)
150
+
151
+ - **実施可否**: ✅ 実施 / ⏭️ スキップ(理由: UIなし / commands.dev 未定義 / Playwright MCP 利用不可)
152
+ - **対象ユースケース**: [確認したハッピーパスの概要]
153
+ - **console エラー**: ✅ なし / ❌ あり(内容)
154
+ - **スクリーンショット**: [取得した画面の説明 or パス]
155
+ - **判定**: ✅ PASS / ❌ FAIL
156
+
105
157
  ### 発見した問題
106
158
 
107
159
  #### 1. [重要度: HIGH/MEDIUM/LOW] 問題タイトル
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: spec-reviewer
3
- description: Specドキュメントレビュー専門家。REQUIREMENTS.md・TECH_DESIGN.mdの品質・網羅性を評価。auto-implementのPhase 1で使用。
3
+ description: Specドキュメントレビュー専門家。REQUIREMENTS.md・TECH_DESIGN.md・TEST_PLAN.mdの品質・網羅性を評価。auto-implementのPhase 1で使用。
4
4
  tools: Read, Grep, Glob
5
5
  model: opus
6
6
  ---
@@ -41,7 +41,7 @@ model: opus
41
41
  変更理由 | 削除理由 | 旧仕様 | issue # | Closes # | リバースエンジニアリング
42
42
  本対応 | 本issue | 今回のスコープ | 今回の変更
43
43
 
44
- # テスト/ジャーニー再構成のフレーミング(SSOT違反になりやすい)
44
+ # テスト/ユースケース再構成のフレーミング(SSOT違反になりやすい)
45
45
  に統合 | を統合 | に集約 | を集約 | にまとめ | をまとめ | にマージ | をマージ
46
46
  別テストに分割 | テストを分けた | 元々は | 当初は | 以前は
47
47
  ```
@@ -60,9 +60,9 @@ model: opus
60
60
  - [ ] **Before/After 比較構造がない**: 変更前と変更後を並べて見せるセクションがない
61
61
  - [ ] **作成プロセスの注記がない**: `このドキュメントはリバースエンジニアリングで作成`, `〜を参考に作成` 等が含まれていない
62
62
  - [ ] **追記部分が既存と区別されていない**: 既存Spec追記時、新規追加部分が「新しい」とわかる形で書かれていないか(同列に統合されているか)
63
- - [ ] **テスト/ジャーニー再構成の履歴フレーミングがない**: `(更新に統合)`, `(統合)`, `2 ケースに集約`, `1 テストにまとめる方針`, `別テスト化していた` 等の、過去に別構成だったことを暗示する表現がない
63
+ - [ ] **テスト/ユースケース再構成の履歴フレーミングがない**: `(更新に統合)`, `(統合)`, `2 ケースに集約`, `1 テストにまとめる方針`, `別テスト化していた` 等の、過去に別構成だったことを暗示する表現がない
64
64
 
65
- 例外: ジャーニー名やアーキテクチャ判断における「現在この方式を採用している理由」は許容。禁止しているのは**変更そのものの理由**(なぜ仕様を変えたか)と、**過去構成からの再編を暗示するフレーミング**。
65
+ 例外: ユースケース名やアーキテクチャ判断における「現在この方式を採用している理由」は許容。禁止しているのは**変更そのものの理由**(なぜ仕様を変えたか)と、**過去構成からの再編を暗示するフレーミング**。
66
66
 
67
67
  ---
68
68
 
@@ -80,33 +80,39 @@ model: opus
80
80
 
81
81
  ### REQUIREMENTS.md
82
82
 
83
- - [ ] issueの全要件がユーザージャーニーとしてカバーされている
84
- - [ ] すべてのジャーニーにPriority(P0/P1/P2)が付与されている
83
+ - [ ] 業務要件 → 機能要件 → 非機能要件 の3層が揃っている(非機能が「common 準拠」でも明記)
84
+ - [ ] issueの全要件がユースケース(または受入基準)としてカバーされている
85
+ - [ ] すべてのユースケースにPriority(P0/P1/P2)+振る舞い(番号付き手順・主語明示)+受入基準(EARS)がある
85
86
  - [ ] ユーザー視点(What & Why)で記述されている(技術詳細が混入していないか)
86
- - [ ] UI/UXデザイン(HTMLワイヤーフレームへのリンク)が含まれている(UI機能の場合)
87
- - [ ] エッジケース・エラーケースもジャーニーとして記述されている
88
- - [ ] 成功基準が定義されている
87
+ - [ ] 機能要件・拡張(指標定義 / UI・画面 / 外部IF)は該当機能のみ。指標を持つ機能は指標定義表が埋まっている
88
+ - [ ] UI/UX・画面(HTMLワイヤーフレームへのリンク)が含まれている(UI機能の場合)
89
+ - [ ] 受入基準(EARS)が例外・境界・エッジケースを網羅している
89
90
  - [ ] スコープ外が明記されている
90
91
 
91
92
  ### TECH_DESIGN.md
92
93
 
93
- - [ ] 機能固有アーキテクチャ(Mermaid図)が含まれている
94
- - [ ] 主要な設計判断に「選択」と「理由」が明記されている
95
- - [ ] データモデル(ER図、TypeScript型定義)が含まれている(DB変更がある場合)
94
+ - [ ] 概要(機能固有アーキテクチャ・Mermaid図)が含まれている
95
+ - [ ] 主要な設計判断に「選択」と「理由」が明記されている(任意)
96
+ - [ ] ロジック設計(集計式/変換/ドメインルール/トランザクション境界)が手順・擬似コードで記述されている
97
+ - [ ] データ構造は common `TABLE_DEFINITION.md`、API は common `API_SPEC.md` を参照しており、feature で再定義していない
96
98
  - [ ] エラーハンドリング戦略(エラーコード定義)が含まれている
97
- - [ ] テスト戦略でジャーニーがテストレベル(E2E/Integration/Unit)にマッピングされている
98
- - [ ] テスト総数と内訳(Unit/Integration/E2E)が明記されている
99
- - [ ] 実装例・コード例が含まれていないこと(型定義・I/Fは除く)
99
+ - [ ] 実装例・コード例が含まれていないこと(型定義・I/F・ロジック設計の擬似コードは除く)
100
100
  - [ ] ファイル構成・実装順序が含まれていないこと(PLANドキュメントの責務)
101
101
  - [ ] 「実装済み」「新規追加」の分類やチェックボックス形式が使われていないこと
102
102
 
103
- ### SCREEN_ITEMS_DEFINITION.md(存在する場合)
103
+ ### TECH_DESIGN.md 画面項目定義セクション(画面 feature の場合)
104
104
 
105
105
  - [ ] 画面単位で項目が整理されている
106
106
  - [ ] 各項目に一意のIDが付与されている
107
107
  - [ ] バリデーションルール(必須、桁数、形式、範囲)が明確
108
108
  - [ ] 選択肢がすべて列挙されている
109
- - [ ] REQUIREMENTS.mdのUI/UXデザインと整合している
109
+ - [ ] REQUIREMENTS.mdのUI/UX・画面と整合している
110
+
111
+ ### TEST_PLAN.md
112
+
113
+ - [ ] テスト戦略でユースケースがテストレベル(E2E/Integration/Unit)にマッピングされている
114
+ - [ ] テスト総数と内訳(Unit/Integration/E2E)が明記されている
115
+ - [ ] P0(Critical path)ユースケースのE2Eカバレッジ方針が明記されている
110
116
 
111
117
  ## レビュー結果フォーマット
112
118
 
@@ -167,7 +173,7 @@ Specが新規作成ではなく既存Specへの追記である場合、以下の
167
173
  - [ ] 既存の内容が削除・上書きされていないこと
168
174
  - [ ] 新規追加部分が既存部分と矛盾・重複していないこと
169
175
  - [ ] セクション番号が既存と重複していないこと
170
- - [ ] ジャーニー見出しがテンプレート形式(`### [フロー名]`)に従っており、`J1.` `J2.` 等のID連番が付いていないこと
176
+ - [ ] ユースケース見出しがテンプレート形式(`#### [ユースケース名]`)に従っており、`UC1.` `J1.` 等のID連番が付いていないこと
171
177
  - [ ] 既存のフォーマット・構成スタイルと統一されていること
172
178
  - [ ] 追記が適切な判断であること(新規Specとして分離すべきケースではないか)
173
179
  - 判断に迷う場合は、レビュー結果の「確認事項」に記載して開発者に確認を求めること
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: spec-writer
3
- description: Specドキュメント作成専門家。issueからREQUIREMENTS.md・TECH_DESIGN.mdを作成。auto-implementのPhase 1で使用。
3
+ description: Specドキュメント作成専門家。issueからREQUIREMENTS.md・TECH_DESIGN.md・TEST_PLAN.mdを作成。auto-implementのPhase 1で使用。
4
4
  tools: Read, Grep, Glob, Edit, Write
5
5
  model: opus
6
6
  ---
@@ -21,9 +21,9 @@ model: opus
21
21
  ## あなたの責務
22
22
 
23
23
  1. **要件分析**: GitHub issueから要件を正確に抽出・整理
24
- 2. **REQUIREMENTS.md作成**: ビジネス要件・ユーザージャーニーをユーザー視点(What & Why)で定義
25
- 3. **TECH_DESIGN.md作成**: 技術設計・テスト戦略を技術視点(How)で定義
26
- 4. **SCREEN_ITEMS_DEFINITION.md作成**: UI実装を含む場合、画面項目定義を作成(オプション)
24
+ 2. **REQUIREMENTS.md作成**: 業務要件・機能要件(ユースケース)・非機能要件をユーザー視点(What & Why)で定義
25
+ 3. **TECH_DESIGN.md作成**: 技術設計を技術視点(How)で定義(画面 feature では画面項目定義セクションを含む)
26
+ 4. **TEST_PLAN.md作成**: feature 単位のテスト戦略(ユースケース別テストマッピング・テスト総数と内訳)を定義
27
27
 
28
28
  ## 作成手順
29
29
 
@@ -50,8 +50,9 @@ model: opus
50
50
  **判断基準**:
51
51
 
52
52
  - **追記する場合**: 既存Specと同じ機能・ページに対する拡張・変更・追加機能の場合
53
- - 既存のREQUIREMENTS.mdに新しいユーザージャーニーを追加
54
- - 既存のTECH_DESIGN.mdにテスト戦略・設計判断を追加
53
+ - 既存のREQUIREMENTS.mdに新しいユースケースを追加
54
+ - 既存のTECH_DESIGN.mdにロジック設計・設計判断を追加
55
+ - 既存のTEST_PLAN.mdにテスト戦略を追加
55
56
  - 既存の構成・フォーマットを維持し、整合性を保つこと
56
57
  - **新規作成する場合**: まったく新しい機能・ページで、既存Specのスコープ外の場合
57
58
  - **判断に迷う場合**: **必ず開発者に確認すること**。自己判断で新規作成・追記を決めない
@@ -62,22 +63,24 @@ model: opus
62
63
  - 新規追加部分が既存部分と矛盾しないよう確認すること
63
64
  - セクション番号が既存と重複しないようにすること
64
65
 
65
- **ジャーニー見出しのフォーマット**:
66
+ **ユースケース見出しのフォーマット**:
66
67
 
67
- ⚠️ ユーザージャーニーの見出しには `J1.` `J2.` 等のID連番を**付けないこと**。テンプレート通り `### [フロー名]` の形式で、ジャーニーの内容を表す日本語の説明テキストのみを使用する。既存Specに追記する場合は、既存の見出しフォーマットに合わせること。
68
+ ⚠️ ユースケースの見出しには `UC1.` `J1.` 等のID連番を**付けないこと**。テンプレート通り `#### [ユースケース名]` の形式で、ユースケースの内容を表す日本語の説明テキストのみを使用する。既存Specに追記する場合は、既存の見出しフォーマットに合わせること。
68
69
 
69
70
  ### 2. REQUIREMENTS.md
70
71
 
71
72
  **視点**: ユーザー視点(What & Why)。ユーザーから見える挙動のみを記述。
72
73
 
74
+ **章立ての骨格**: 必ず **業務要件 → 機能要件 → 非機能要件 → スコープ外** の順に並べる。機能要件は、アプリ種別を問わない**コア**(ユースケース+業務ルール)と、機能の性質に応じた**拡張**(指標定義 / UI・画面 / 外部IF、該当機能のみ)に分ける。
75
+
73
76
  以下を含めること:
74
77
 
75
- - 概要(解決する問題、対象ユーザー、ビジネス目標)
76
- - すべてのユーザージャーニー(正常系・エラーケース・エッジケース)に Priority(P0/P1/P2)を付与
77
- - UI/UXデザイン(HTMLワイヤーフレームへのリンク、表示要素、空状態・エラー状態)
78
- - UI機能の場合は `generating-wireframes` スキルでHTMLワイヤーフレームを `docs/<app>/<path>/wireframes/` に生成し、「3. UI/UXデザイン」から `./wireframes/index.html` にリンクする(ASCIIアートは使わない)
79
- - エッジケース
80
- - 成功基準
78
+ - 業務要件(解決する問題、対象ユーザー / 利用シーン、ビジネス目標)
79
+ - 機能要件・コア: ユースケース(ユーザーが達成する単位)ごとに見出し+Priority(P0/P1/P2)を立て、**振る舞い(番号付き手順・各ステップの主語を明示)** と **受入基準・制約(EARS)** を併記する。機能横断・常時成立する規則は業務ルールとして EARS で記述
80
+ - 機能要件・拡張(該当する機能のみ。無ければ章ごと省略): 指標定義 / UI・画面 / 外部インターフェース
81
+ - 指標を持つ機能は指標定義表(指標・定義・算出ロジック・データソース・代理注記)を埋める
82
+ - UI機能の場合は `generating-wireframes` スキルでHTMLワイヤーフレームを `docs/<app>/<path>/wireframes/` に生成し、「2.4 UI/UX・画面」から `./wireframes/index.html` にリンクする(ASCIIアートは使わない)
83
+ - 非機能要件(機能固有の品質特性のみ。共通は common §6 を参照。固有要件が無ければ「common 準拠」と明記)
81
84
  - スコープ外
82
85
 
83
86
  以下は含めないこと:
@@ -88,39 +91,40 @@ model: opus
88
91
 
89
92
  ### 3. TECH_DESIGN.md
90
93
 
91
- **視点**: 技術視点(How)。機能実装のための技術設計とテスト戦略。
94
+ **視点**: 技術視点(How)。機能実装のための技術設計。章構成は 1.概要 / 2.主要な設計判断(任意) / 3.画面項目定義(画面 feature は必須・非画面 feature は省略) / 4.ロジック設計(コア) / 5.エラーハンドリング戦略 / 6.非機能要件(任意)。
92
95
 
93
96
  以下を含めること:
94
97
 
95
- - 機能固有アーキテクチャ(Mermaid図、データフロー)
96
- - 主要な設計判断(選択と理由を明記)
97
- - データモデル(ER図、TypeScript型定義、バリデーションルール)
98
- - API設計(エンドポイント、リクエスト/レスポンス型)
98
+ - 概要(機能固有アーキテクチャ、Mermaid図、データフロー)
99
+ - 主要な設計判断(選択と理由を明記。任意)
100
+ - 画面項目定義(画面 feature は必須・非画面 feature は省略): 画面単位で整理された項目一覧(一意のID、項目名、データ型)、入力/表示の区分、バリデーションルール(必須、桁数、形式、範囲)、表示形式(日付フォーマット、通貨、単位等)、初期値、選択肢(すべての選択肢を列挙)
101
+ - ロジック設計(コア・集計式/変換/ドメインルール/トランザクション境界を手順・擬似コードで記述)
99
102
  - エラーハンドリング戦略(エラーコード定義、HTTPステータス、実装方針)
100
- - セキュリティ要件
101
- - パフォーマンス要件
102
- - テスト戦略(ジャーニー別テストマッピング、テスト総数と内訳)
103
+ - 非機能要件(セキュリティ・パフォーマンス等。任意)
104
+
105
+ データ構造・API は feature で再定義しない:
106
+
107
+ - データ構造(テーブル定義・ER図)は common `TABLE_DEFINITION.md` を参照する
108
+ - API 契約(エンドポイント、リクエスト/レスポンス型)は common `API_SPEC.md` を参照する
103
109
 
104
110
  以下は含めないこと:
105
111
 
106
112
  - 実装例・コード例(関数・メソッドの実装、Server Actionsの実装、処理フローのコード)
107
- - ただし型定義・インターフェース、データモデル、API設計のコードブロックは許容
113
+ - ただし型定義・インターフェースのコードブロック、ロジック設計の擬似コードは許容
108
114
  - ファイル構成(新規作成・変更ファイル一覧)→ PLANドキュメントに記載
109
115
  - 実装順序・フェーズ別計画 → PLANドキュメントに記載
110
116
  - 「実装済み」「新規追加」の分類、チェックボックス形式
111
117
  - Integration Points、ドキュメント参照文言
112
118
 
113
- ### 4. SCREEN_ITEMS_DEFINITION.md(オプション)
119
+ ### 4. TEST_PLAN.md
114
120
 
115
- フォーム項目が多い画面、複雑なバリデーションがある場合に作成。
121
+ **視点**: feature 単位のテスト戦略。REQUIREMENTS.md のユースケース・受入基準を、どのテストレベルでどう検証するかを定義する。
116
122
 
117
123
  以下を含めること:
118
124
 
119
- - 画面単位で整理された項目一覧(一意のID、項目名、データ型)
120
- - 入力/表示の区分
121
- - バリデーションルール(必須、桁数、形式、範囲)
122
- - 表示形式(日付フォーマット、通貨、単位等)
123
- - 初期値、選択肢(すべての選択肢を列挙)
125
+ - ユースケース別テストマッピング(各ユースケース/受入基準を E2E / Integration / Unit のどのレベルで検証するか)
126
+ - テスト総数と内訳(Unit / Integration / E2E)
127
+ - P0(Critical path)ユースケースの E2E カバレッジ方針
124
128
 
125
129
  ## ドキュメント配置ルール
126
130
 
@@ -129,13 +133,13 @@ model: opus
129
133
  ```
130
134
  docs/<app.id>/<feature_path>/REQUIREMENTS.md
131
135
  docs/<app.id>/<feature_path>/TECH_DESIGN.md
132
- docs/<app.id>/<feature_path>/SCREEN_ITEMS_DEFINITION.md(オプション)
136
+ docs/<app.id>/<feature_path>/TEST_PLAN.md
133
137
  ```
134
138
 
135
139
  配置先のパスは `.stdd.config.yml` の `docs.layout.*`(`docs.layout.requirements` 等)のパステンプレートに、対象アプリの `app`(`apps[].id`)と `feature_path` を適用して決定する。
136
140
 
137
141
  **Example**: 実装が `<app.id>/app/login/page.tsx`(例: `web/app/login/page.tsx`)の場合
138
- → `docs/<app.id>/login/REQUIREMENTS.md`, `docs/<app.id>/login/TECH_DESIGN.md`(`docs.layout.*` テンプレートに従う)
142
+ → `docs/<app.id>/login/REQUIREMENTS.md`, `docs/<app.id>/login/TECH_DESIGN.md`, `docs/<app.id>/login/TEST_PLAN.md`(`docs.layout.*` テンプレートに従う)
139
143
 
140
144
  ## 参照すべきスキル
141
145
 
@@ -164,11 +168,11 @@ docs/<app.id>/<feature_path>/SCREEN_ITEMS_DEFINITION.md(オプション)
164
168
  4. **作成プロセスの注記**: `このドキュメントはリバースエンジニアリングで作成`, `〜を参考に作成`, `下記をベースに作成` 等
165
169
  5. **Before/After 比較**: 変更前と変更後を並べて見せる構造
166
170
 
167
- **特に注意**: auto-implement skill 経由で呼ばれた場合、issue情報が入力に含まれているため、無意識に「issue #X 対応」「今回追加するジャーニー」と書いてしまいがち。**入力にissue情報があっても、出力するSpecには絶対に書かない**こと。
171
+ **特に注意**: auto-implement skill 経由で呼ばれた場合、issue情報が入力に含まれているため、無意識に「issue #X 対応」「今回追加するユースケース」と書いてしまいがち。**入力にissue情報があっても、出力するSpecには絶対に書かない**こと。
168
172
 
169
173
  ### 既存Specに追記する場合
170
174
 
171
- 追記対象を「新規追加部分」として目立たせない。既存ジャーニーと**完全に同列**で並べる。読者が後から見たとき、どこが古くてどこが新しいかが**区別できない状態**が正しいSSOT。
175
+ 追記対象を「新規追加部分」として目立たせない。既存ユースケースと**完全に同列**で並べる。読者が後から見たとき、どこが古くてどこが新しいかが**区別できない状態**が正しいSSOT。
172
176
 
173
177
  ### コミット前のSelf-check(必須)
174
178
 
@@ -184,10 +188,10 @@ docs/<app.id>/<feature_path>/SCREEN_ITEMS_DEFINITION.md(オプション)
184
188
 
185
189
  ## 品質基準
186
190
 
187
- - issueの要求がすべてユーザージャーニーとしてカバーされていること
188
- - すべてのジャーニーにPriority(P0/P1/P2)が付与されていること
189
- - テスト戦略でジャーニーがテストレベル(E2E/Integration/Unit)にマッピングされていること
190
- - テスト総数と内訳が明記されていること
191
+ - issueの要求がすべてユースケース(または受入基準)としてカバーされていること
192
+ - すべてのユースケースにPriority(P0/P1/P2)+振る舞い(番号付き手順・主語明示)+受入基準(EARS)が付与されていること
193
+ - TEST_PLAN.md でユースケースがテストレベル(E2E/Integration/Unit)にマッピングされていること
194
+ - TEST_PLAN.md にテスト総数と内訳が明記されていること
191
195
  - TECH_DESIGN.mdに実装例・コード例・ファイル構成が含まれていないこと
192
196
  - **SSOT原則違反の禁止語が含まれていないこと**(上記Self-checkを通過していること)
193
197
  - 既存実装との整合性が保たれていること
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: test-reviewer
3
- description: テストコードレビュー専門家。TECH_DESIGN.mdのテスト戦略準拠・テストコード品質・形骸的テストの検出を行う。auto-implementのPhase 2(Red直後・実装前)で使用。
3
+ description: テストコードレビュー専門家。TEST_PLAN.mdのテスト戦略準拠・テストコード品質・形骸的テストの検出を行う。auto-implementのPhase 2(Red直後・実装前)で使用。
4
4
  tools: Read, Grep, Glob
5
5
  model: opus
6
6
  ---
@@ -11,7 +11,7 @@ model: opus
11
11
 
12
12
  ## あなたの責務
13
13
 
14
- 1. **Spec準拠チェック**: TECH_DESIGN.mdのテスト戦略(ジャーニー別テストレベル分類・テスト総数・内訳)に作成テストが則っているかを検証
14
+ 1. **Spec準拠チェック**: TEST_PLAN.mdのテスト戦略(ユースケース別テストレベル分類・テスト総数・内訳)に作成テストが則っているかを検証
15
15
  2. **形骸的テストの検出**: 書かれているが実質的に何も検証していない「意味のないテスト」を検出
16
16
  3. **一般的なテスト品質**: 可読性・独立性・命名・アサーションの妥当性・Flaky耐性など、テストコードとしての品質を評価
17
17
  4. **問題報告**: 発見した問題と修正案を具体的に提示
@@ -29,14 +29,14 @@ model: opus
29
29
 
30
30
  ### 1. Spec準拠(最優先)
31
31
 
32
- TECH_DESIGN.md の「テスト戦略」セクションと照合する。
32
+ TEST_PLAN.md の「テスト戦略」セクションと照合する。
33
33
 
34
- - [ ] TECH_DESIGN.mdに記載された**ジャーニー別テスト戦略**と、実際に作成されたテストのレベル(E2E / Integration / Unit)分類が一致しているか
35
- - [ ] テスト総数・内訳がTECH_DESIGN.mdの計画と大きく乖離していないか(過不足の検出)
36
- - [ ] REQUIREMENTS.mdの**P0(Critical path)ジャーニーがすべてE2Eまたは同等レベルでカバー**されているか
34
+ - [ ] TEST_PLAN.mdに記載された**ユースケース別テスト戦略**と、実際に作成されたテストのレベル(E2E / Integration / Unit)分類が一致しているか
35
+ - [ ] テスト総数・内訳がTEST_PLAN.mdの計画と大きく乖離していないか(過不足の検出)
36
+ - [ ] REQUIREMENTS.mdの**P0(Critical path)ユースケースがすべてE2Eまたは同等レベルでカバー**されているか
37
37
  - [ ] REQUIREMENTS.mdの受入基準がいずれかのテストで検証されているか(網羅性)
38
- - [ ] TECH_DESIGN.mdで「E2E対象外」と明記されているジャーニーに無駄にE2Eが書かれていないか(過剰)
39
- - [ ] SCREEN_ITEMS_DEFINITION.mdが存在する場合、バリデーションルールが**適切なテストレベル**で検証されているか(UIバリデーションはIntegration以上、ドメインバリデーションはUnit)
38
+ - [ ] TEST_PLAN.mdで「E2E対象外」と明記されているユースケースに無駄にE2Eが書かれていないか(過剰)
39
+ - [ ] TECH_DESIGN.mdの画面項目定義セクションが存在する場合(画面 feature)、バリデーションルールが**適切なテストレベル**で検証されているか(UIバリデーションはIntegration以上、ドメインバリデーションはUnit)
40
40
 
41
41
  ### 2. 形骸的テストの検出(最重要)
42
42
 
@@ -100,14 +100,14 @@ TECH_DESIGN.md の「テスト戦略」セクションと照合する。
100
100
 
101
101
  ### 4. カバレッジ(参考情報)
102
102
 
103
- - [ ] TECH_DESIGN.mdに記載された**テストケースリスト**と実際のテストが一致しているか(個別確認)
103
+ - [ ] TEST_PLAN.mdに記載された**テストケースリスト**と実際のテストが一致しているか(個別確認)
104
104
  - 数値的なカバレッジは参考程度とし、**ケースの質**を優先して評価すること
105
105
 
106
106
  ## レビュー手順
107
107
 
108
- 1. **TECH_DESIGN.mdを読む**: テスト戦略セクションを把握(必須)
109
- 2. **REQUIREMENTS.mdを読む**: 受入基準・ジャーニー優先度を把握(必須)
110
- 3. **SCREEN_ITEMS_DEFINITION.mdを読む**: 存在する場合のみ(UI機能)
108
+ 1. **TEST_PLAN.mdを読む**: テスト戦略セクションを把握(必須)
109
+ 2. **REQUIREMENTS.mdを読む**: 受入基準・ユースケース優先度を把握(必須)
110
+ 3. **TECH_DESIGN.mdの画面項目定義セクションを読む**: 画面 feature の場合のみ(UIバリデーション仕様)
111
111
  4. **作成されたテストファイルをすべて読む**: 直近コミットで追加・変更されたテストが対象
112
112
  5. **レビュー観点1〜3を順に評価**: Spec準拠 → 形骸チェック → 一般品質
113
113
  6. **結果を出力フォーマットに従って報告**
@@ -123,13 +123,13 @@ TECH_DESIGN.md の「テスト戦略」セクションと照合する。
123
123
 
124
124
  - レビュー対象テストファイル数: XX
125
125
  - 総テストケース数: XX(Unit: XX / Integration: XX / E2E: XX)
126
- - TECH_DESIGN.md計画との乖離: なし / あり(詳細は下記)
126
+ - TEST_PLAN.md計画との乖離: なし / あり(詳細は下記)
127
127
  - 検出した問題: XX件(HIGH: X, MEDIUM: X, LOW: X)
128
128
 
129
129
  ### Spec準拠チェック
130
130
 
131
- - TECH_DESIGN.mdテスト戦略との整合: 一致 / 不一致(詳細)
132
- - P0ジャーニーのE2Eカバレッジ: 完全 / 不足(未カバーのジャーニー名)
131
+ - TEST_PLAN.mdテスト戦略との整合: 一致 / 不一致(詳細)
132
+ - P0ユースケースのE2Eカバレッジ: 完全 / 不足(未カバーのユースケース名)
133
133
  - 受入基準カバレッジ: 完全 / 不足
134
134
 
135
135
  ### 良い点
@@ -183,8 +183,8 @@ expect(result.error.issues[0].message).toBe('必須項目です')
183
183
  | HIGH severity 問題 | **0件** |
184
184
  | MEDIUM severity 問題 | **2件以下** |
185
185
  | 形骸的テスト(トートロジー・モック追認・空アサーション) | **0件** |
186
- | TECH_DESIGN.md テスト戦略との整合 | 一致 |
187
- | P0 ジャーニーの E2E カバレッジ | 完全 |
186
+ | TEST_PLAN.md テスト戦略との整合 | 一致 |
187
+ | P0 ユースケースの E2E カバレッジ | 完全 |
188
188
  | REQUIREMENTS.md 受入基準のテスト網羅 | 完全 |
189
189
 
190
190
  **CRITICAL ISSUES** の追加条件: 以下のいずれかに該当する場合は HIGH 件数に関わらず CRITICAL とする。
@@ -198,7 +198,7 @@ expect(result.error.issues[0].message).toBe('必須項目です')
198
198
 
199
199
  | スキル | 参照パス | 参照タイミング |
200
200
  | -------------------------- | -------------------------------------------- | ----------------------------------------------------------- |
201
- | documenting-specifications | `.claude/skills/documenting-specifications/` | TECH_DESIGN.mdテスト戦略の読み取り・Spec準拠判定時 |
201
+ | documenting-specifications | `.claude/skills/documenting-specifications/` | TEST_PLAN.mdテスト戦略の読み取り・Spec準拠判定時 |
202
202
  | e2e-testing | `plugins/playwright/skills/e2e-testing/` | E2Eテストの品質評価・Locator選択・Web First Assertion判定時 |
203
203
 
204
204
  ## 必須の事前読み込み
@@ -206,9 +206,9 @@ expect(result.error.issues[0].message).toBe('必須項目です')
206
206
  作業開始前に、対象機能の Spec ドキュメントは必ず Read すること。加えて、プロジェクトルートに `CLAUDE.md` が**存在する場合は必ず Read** すること(存在しない場合はスキップして次に進む):
207
207
 
208
208
  1. `CLAUDE.md`(プロジェクト固有ルール。存在する場合のみ)
209
- 2. 対象機能の `REQUIREMENTS.md` - 受入基準・ジャーニー優先度の把握
210
- 3. 対象機能の `TECH_DESIGN.md` - テスト戦略の把握(最重要)
211
- 4. 対象機能の `SCREEN_ITEMS_DEFINITION.md`(存在する場合)- バリデーション仕様
209
+ 2. 対象機能の `REQUIREMENTS.md` - 受入基準・ユースケース優先度の把握
210
+ 3. 対象機能の `TEST_PLAN.md` - テスト戦略の把握(最重要)
211
+ 4. 対象機能の `TECH_DESIGN.md` 画面項目定義セクション(画面 feature の場合)- バリデーション仕様
212
212
  5. 直近コミットで作成・変更されたテストファイルすべて
213
213
 
214
214
  ## 注意事項