@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.
- package/assets/.claude/agents/implementer.md +4 -4
- package/assets/.claude/agents/plan-writer.md +7 -7
- package/assets/.claude/agents/qa-engineer.md +58 -6
- package/assets/.claude/agents/spec-reviewer.md +24 -18
- package/assets/.claude/agents/spec-writer.md +42 -38
- package/assets/.claude/agents/test-reviewer.md +21 -21
- package/assets/.claude/hooks/spec-first-check.sh +201 -0
- package/assets/.claude/rules/stdd-spec-first.md +36 -0
- package/assets/.claude/settings.json +16 -2
- package/assets/.claude/skills/auto-implement/SKILL.md +1 -1
- package/assets/.claude/skills/auto-implement/references/phases.md +14 -12
- package/assets/.claude/skills/documenting-plans/SKILL.md +3 -3
- package/assets/.claude/skills/documenting-specifications/SKILL.md +326 -300
- package/assets/.claude/skills/documenting-specifications/guides/error-handling.md +23 -21
- package/assets/.claude/skills/documenting-specifications/guides/stdd-violations.md +2 -2
- package/assets/.claude/skills/documenting-specifications/templates/api-spec-common.md +97 -0
- package/assets/.claude/skills/documenting-specifications/templates/architecture-common.md +188 -0
- package/assets/.claude/skills/documenting-specifications/templates/design-common.md +57 -0
- package/assets/.claude/skills/documenting-specifications/templates/requirements-common.md +104 -0
- package/assets/.claude/skills/documenting-specifications/templates/requirements.md +105 -125
- package/assets/.claude/skills/documenting-specifications/templates/table-definition-common.md +78 -0
- package/assets/.claude/skills/documenting-specifications/templates/tech-design.md +110 -183
- package/assets/.claude/skills/documenting-specifications/templates/test-plan.md +58 -0
- package/assets/.claude/skills/generating-wireframes/SKILL.md +10 -10
- package/assets/.claude/skills/generating-wireframes/guides/from-requirements.md +13 -13
- package/assets/.claude/skills/generating-wireframes/templates/index.html +1 -1
- package/assets/.claude/skills/introducing-stdd/SKILL.md +3 -0
- package/assets/.claude/skills/reverse-engineering-common-spec/SKILL.md +22 -11
- package/assets/.claude/skills/reverse-engineering-feature-spec/SKILL.md +53 -32
- package/assets/.claude/skills/reverse-engineering-feature-spec/guides/figma-capture.md +9 -9
- package/assets/.claude/skills/starting-new-with-stdd/SKILL.md +43 -17
- package/assets/.claude/skills/starting-new-with-stdd/templates/bootstrap-plan.md +16 -7
- package/assets/.claude/skills/tailoring-spec-format/SKILL.md +7 -7
- package/assets/.claude/skills/verifying-consistency/SKILL.md +1 -1
- package/assets/mcp.json +9 -0
- package/assets/stdd.config.yml.tpl +4 -0
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/install.js +20 -1
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
- package/assets/.claude/docs/spec-driven-development-guide.md +0 -436
- package/assets/.claude/skills/documenting-specifications/templates/screen-items-definition.md +0 -179
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reverse-engineering-common-spec
|
|
3
3
|
description: |-
|
|
4
|
-
既存プロジェクトに STDD を導入する際、コードベース全体をリバースエンジニアリングして common ティアの Spec(docs/common/REQUIREMENTS.md +
|
|
4
|
+
既存プロジェクトに STDD を導入する際、コードベース全体をリバースエンジニアリングして common ティアの Spec(docs/common/REQUIREMENTS.md + ARCHITECTURE.md(システム概要)+ TABLE_DEFINITION.md(テーブル定義)+ API_SPEC.md(API がある場合))を作成する。サービス概要・システム構成・リポジトリ構成・レイヤ規約・データモデル・API 契約を俯瞰する正典を、導入時に一度だけ生成する。機能/ページ単位のリバースエンジニアリングには reverse-engineering-feature-spec を使用する。
|
|
5
5
|
when_to_use: |-
|
|
6
6
|
「STDD導入」「stdd導入」「共通spec生成」「commonティア」「プロジェクト全体のリバースエンジニアリング」「ARCHITECTURE.md作成」「アーキテクチャのドキュメント化」「既存プロジェクトにstdd」に関する作業のとき。
|
|
7
7
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
@@ -14,9 +14,11 @@ allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
|
14
14
|
| 出力 | 内容 |
|
|
15
15
|
| ---- | ---- |
|
|
16
16
|
| `docs/common/REQUIREMENTS.md` | サービス概要・登場アクター・アプリ構成(プロジェクト全体のビジネス要件) |
|
|
17
|
-
| `docs/common/ARCHITECTURE.md` |
|
|
17
|
+
| `docs/common/ARCHITECTURE.md` | システム概要(システム構成・リポジトリ構成・レイヤ規約・スタック・連携・セキュリティ・インフラ。データモデル/API は持たない) |
|
|
18
|
+
| `docs/common/TABLE_DEFINITION.md` | 全テーブル定義の正典(カード形式・ER図なし) |
|
|
19
|
+
| `docs/common/API_SPEC.md` | API 契約の正典(OpenAPI 風 Markdown。API がある場合) |
|
|
18
20
|
|
|
19
|
-
テンプレートは
|
|
21
|
+
テンプレートは `../documenting-specifications/templates/requirements-common.md` / `architecture-common.md` を参照する。
|
|
20
22
|
|
|
21
23
|
## 位置づけ — 導入時に一度だけ
|
|
22
24
|
|
|
@@ -33,7 +35,7 @@ STDD 導入フロー(既存プロジェクト)
|
|
|
33
35
|
3. auto-implement ← 以降の新機能は順行 STDD
|
|
34
36
|
```
|
|
35
37
|
|
|
36
|
-
**順序の理由**: 先に common
|
|
38
|
+
**順序の理由**: 先に common ティア(レイヤ規約・共有ドメインモデル・テーブル定義・API 契約)を固定しておくと、後続の機能単位リバース(`reverse-engineering-feature-spec`)の精度と速度が上がる。
|
|
37
39
|
|
|
38
40
|
---
|
|
39
41
|
|
|
@@ -48,14 +50,14 @@ feature ティアと違い、確認する一次情報は **UI 文言ではなく
|
|
|
48
50
|
| パッケージ分割 | `package.json` の workspaces / 依存定義 | モジュール境界を推測で書く |
|
|
49
51
|
| レイヤ規約・依存方向 | `domain/` 配下の実構成・lint ルール | 一般論の Clean Architecture を書く |
|
|
50
52
|
| 外部サービス連携 | 環境変数・SDK の import 箇所 | 使っていないサービスを書く/使用中を漏らす |
|
|
51
|
-
|
|
|
53
|
+
| テーブル一覧(TABLE_DEFINITION) | 生成された DB 型定義(`database.types.ts` 等) | テーブル名・カラム名を想像で書く |
|
|
52
54
|
| デプロイ・環境 | CI/CD 設定(`.github/workflows` 等) | ブランチ→環境マッピングを推測で書く |
|
|
53
55
|
|
|
54
56
|
---
|
|
55
57
|
|
|
56
58
|
## 読む順序とチェックリスト
|
|
57
59
|
|
|
58
|
-
`ARCHITECTURE.md`
|
|
60
|
+
`ARCHITECTURE.md`(システム概要)の目次がそのまま読む順序になる。データモデルは `TABLE_DEFINITION.md`、API 契約は `API_SPEC.md` に分離する。
|
|
59
61
|
|
|
60
62
|
### 1. システム構成(`REQUIREMENTS.md` のサービス概要・アクターもここで把握)
|
|
61
63
|
|
|
@@ -81,14 +83,21 @@ feature ティアと違い、確認する一次情報は **UI 文言ではなく
|
|
|
81
83
|
□ 代表的なデータフロー 1 本 (Server Action / API → Service → Repository)
|
|
82
84
|
```
|
|
83
85
|
|
|
84
|
-
### 4. データモデル・DB
|
|
86
|
+
### 4. データモデル・DB設計(→ `TABLE_DEFINITION.md` に記述)
|
|
85
87
|
|
|
86
88
|
```
|
|
87
89
|
□ 生成された DB 型定義 (database.types.ts 等) を正としてテーブルを列挙
|
|
88
|
-
□
|
|
90
|
+
□ ドメイングループへの分類(カード形式・ER 図は持たない)
|
|
89
91
|
□ 設計方針 (論理削除 / 主キー / 時系列カラム / マイグレーション規約)
|
|
90
92
|
```
|
|
91
93
|
|
|
94
|
+
### 5. API 契約(API がある場合 → `API_SPEC.md` に記述)
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
□ Server Actions / API Route / RPC のエンドポイントを列挙
|
|
98
|
+
□ 入出力(リクエスト / レスポンス)の型・契約を OpenAPI 風 Markdown で記述
|
|
99
|
+
```
|
|
100
|
+
|
|
92
101
|
---
|
|
93
102
|
|
|
94
103
|
## 確信が持てない箇所は要確認マーカーを残す
|
|
@@ -106,7 +115,9 @@ feature ティアと違い、確認する一次情報は **UI 文言ではなく
|
|
|
106
115
|
|
|
107
116
|
```
|
|
108
117
|
□ docs/common/REQUIREMENTS.md を作成(サービス概要 / アクター / アプリ構成)
|
|
109
|
-
□ docs/common/ARCHITECTURE.md
|
|
118
|
+
□ docs/common/ARCHITECTURE.md を作成(システム概要:システム構成 / リポジトリ / レイヤ。データモデル/API は持たない)
|
|
119
|
+
□ docs/common/TABLE_DEFINITION.md を作成(全テーブル定義・カード形式・ER 図なし)
|
|
120
|
+
□ docs/common/API_SPEC.md を作成(API がある場合・API 契約の正典)
|
|
110
121
|
□ テーブル一覧は生成された型定義ファイルと一致している
|
|
111
122
|
□ 固有名詞・社外秘の値を不要に含めていない(公開を想定する場合)
|
|
112
123
|
□ 要確認マーカーは「人間に確認すべき項目」としてレビュー依頼にまとめた
|
|
@@ -131,7 +142,7 @@ feature ティアと違い、確認する一次情報は **UI 文言ではなく
|
|
|
131
142
|
|
|
132
143
|
## 参照ファイル
|
|
133
144
|
|
|
134
|
-
- **common テンプレート**:
|
|
135
|
-
- **2 ティア構造の解説**: `packages/core/docs/stdd-methodology.md` §
|
|
145
|
+
- **common テンプレート**: `../documenting-specifications/templates/requirements-common.md` / `architecture-common.md`
|
|
146
|
+
- **2 ティア構造の解説**: `packages/core/docs/stdd-methodology.md` §2.0
|
|
136
147
|
- **機能単位リバース**: [reverse-engineering-feature-spec skill](../reverse-engineering-feature-spec/SKILL.md)
|
|
137
148
|
- **Specテンプレート**: [documenting-specifications skill](../documenting-specifications/SKILL.md)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reverse-engineering-feature-spec
|
|
3
3
|
description: |-
|
|
4
|
-
既存の機能/ページの実装から feature ティアの Spec ドキュメント(REQUIREMENTS.md + TECH_DESIGN.md)とテスト(E2E / Unit / Integration)をリバースエンジニアリングで作成するためのガイドライン。新規機能の仕様策定ではなく、既に動いている機能を正確にドキュメント化・テスト化する場合に使う。プロジェクト全体(common ティア)のリバースには reverse-engineering-common-spec を使用する。
|
|
4
|
+
既存の機能/ページの実装から feature ティアの Spec ドキュメント(REQUIREMENTS.md + TECH_DESIGN.md + TEST_PLAN.md)とテスト(E2E / Unit / Integration)をリバースエンジニアリングで作成するためのガイドライン。新規機能の仕様策定ではなく、既に動いている機能を正確にドキュメント化・テスト化する場合に使う。プロジェクト全体(common ティア)のリバースには reverse-engineering-common-spec を使用する。
|
|
5
5
|
when_to_use: |-
|
|
6
6
|
「リバースエンジニアリング」「既存コードからspec」「既存機能のドキュメント化」「機能のドキュメント化」「実装からテスト作成」「specカバー率向上」に関する作業のとき。
|
|
7
7
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
@@ -9,9 +9,9 @@ allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
|
9
9
|
|
|
10
10
|
# feature spec のリバースエンジニアリング
|
|
11
11
|
|
|
12
|
-
既に動いている **機能 / ページ単位**の実装コードを精読し、その挙動を正確に反映した feature ティアの Spec ドキュメント(REQUIREMENTS.md + TECH_DESIGN.md)とテスト(E2E / Unit / Integration)を作成する。
|
|
12
|
+
既に動いている **機能 / ページ単位**の実装コードを精読し、その挙動を正確に反映した feature ティアの Spec ドキュメント(REQUIREMENTS.md + TECH_DESIGN.md + TEST_PLAN.md)とテスト(E2E / Unit / Integration)を作成する。
|
|
13
13
|
|
|
14
|
-
> **前提(推奨)**: プロジェクト全体の **common ティア**(`docs/common/REQUIREMENTS.md` + `ARCHITECTURE.md`)が未作成なら、先に `reverse-engineering-common-spec`
|
|
14
|
+
> **前提(推奨)**: プロジェクト全体の **common ティア**(`docs/common/REQUIREMENTS.md` + `ARCHITECTURE.md` + `TABLE_DEFINITION.md` + `API_SPEC.md`)が未作成なら、先に `reverse-engineering-common-spec` スキルで作成しておくと、レイヤ規約・共有ドメインモデル・テーブル定義・API 契約を踏まえられて精度が上がる。既にある場合は本スキルから始める。データモデル・API は common ティアが正典のため、feature 側では common の `TABLE_DEFINITION.md` / `API_SPEC.md` を参照する。
|
|
15
15
|
|
|
16
16
|
## 最重要原則
|
|
17
17
|
|
|
@@ -51,7 +51,7 @@ allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
|
51
51
|
### 前提条件
|
|
52
52
|
|
|
53
53
|
- 対象機能が既に動いている実装コードがある
|
|
54
|
-
- 対応するSpecドキュメント(REQUIREMENTS.md / TECH_DESIGN.md)が存在しない、または不十分
|
|
54
|
+
- 対応するSpecドキュメント(REQUIREMENTS.md / TECH_DESIGN.md / TEST_PLAN.md)が存在しない、または不十分
|
|
55
55
|
|
|
56
56
|
### 作業フロー
|
|
57
57
|
|
|
@@ -62,7 +62,9 @@ allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
|
62
62
|
↓
|
|
63
63
|
3. Playwright MCPでUIキャプチャ → Figmaファイル作成
|
|
64
64
|
↓
|
|
65
|
-
4. TECH_DESIGN.md
|
|
65
|
+
4. TECH_DESIGN.md作成(ロジック設計中心の技術設計。データモデル/APIは common 参照)
|
|
66
|
+
↓
|
|
67
|
+
4.5 TEST_PLAN.md作成(テスト戦略)
|
|
66
68
|
↓
|
|
67
69
|
5. E2Eテスト作成
|
|
68
70
|
↓
|
|
@@ -156,15 +158,15 @@ supabase/generated/database.types.ts
|
|
|
156
158
|
|
|
157
159
|
### リバースエンジニアリング固有のルール
|
|
158
160
|
|
|
159
|
-
**1.
|
|
161
|
+
**1. ユースケース(振る舞い+受入基準)は実装の挙動から抽出する**
|
|
160
162
|
|
|
161
|
-
|
|
163
|
+
実装コードの条件分岐・状態遷移を元に、ユーザーが辿るパスを網羅的に洗い出す。主要フローは振る舞い(番号付き手順・主語明示)に、例外・境界・分岐は受入基準(EARS)に落とす。
|
|
162
164
|
|
|
163
165
|
```
|
|
164
|
-
# コードの条件分岐 →
|
|
165
|
-
if (form.isValid) →
|
|
166
|
-
if (error.type === 'validation') →
|
|
167
|
-
if (error.type === 'network') →
|
|
166
|
+
# コードの条件分岐 → ユースケースの振る舞い / 受入基準
|
|
167
|
+
if (form.isValid) → 正常系の振る舞い(手順)
|
|
168
|
+
if (error.type === 'validation') → 受入基準(IF:バリデーションエラー時)
|
|
169
|
+
if (error.type === 'network') → 受入基準(IF:ネットワークエラー時)
|
|
168
170
|
```
|
|
169
171
|
|
|
170
172
|
**2. UIテキストは実装から正確に転記する**
|
|
@@ -193,7 +195,7 @@ if (error.type === 'network') → ネットワークエラージャーニー
|
|
|
193
195
|
**4. 「備考」セクションにリバースエンジニアリングの注記を追加**
|
|
194
196
|
|
|
195
197
|
```markdown
|
|
196
|
-
##
|
|
198
|
+
## 5. 備考
|
|
197
199
|
|
|
198
200
|
このドキュメントは既存実装からリバースエンジニアリングで作成されました。
|
|
199
201
|
|
|
@@ -247,13 +249,15 @@ REQUIREMENTS.md作成後、Playwright MCPを使って実装済みUIのスクリ
|
|
|
247
249
|
|
|
248
250
|
## Phase 4: TECH_DESIGN.md作成
|
|
249
251
|
|
|
250
|
-
`documenting-specifications` skill
|
|
252
|
+
`documenting-specifications` skillのテンプレートに従って作成する。章構成は **1.概要 / 2.主要な設計判断(任意) / 3.画面項目定義(画面 feature のみ必須) / 4.ロジック設計(コア) / 5.エラーハンドリング戦略 / 6.非機能要件(任意)**。
|
|
253
|
+
|
|
254
|
+
> **データモデル / API は common ティアが正典**。TECH_DESIGN にはデータモデルや ER 図、API 設計を持たず、common の `TABLE_DEFINITION.md` / `API_SPEC.md` を**参照**する。TECH_DESIGN のコアはロジック設計。テスト戦略は別ファイル `TEST_PLAN.md`(Phase 4.5)。
|
|
251
255
|
|
|
252
256
|
### リバースエンジニアリング固有のルール
|
|
253
257
|
|
|
254
258
|
**1. 型定義は実装から正確にコピーする**
|
|
255
259
|
|
|
256
|
-
domain/models配下のEntity
|
|
260
|
+
domain/models配下のEntity型、スキーマの型をそのまま記載する。推測で型を書かない。テーブル定義そのものは common の `TABLE_DEFINITION.md` を参照する。
|
|
257
261
|
|
|
258
262
|
```typescript
|
|
259
263
|
// ❌ 想像で書いた型
|
|
@@ -284,9 +288,26 @@ const phoneSchema = z.string()
|
|
|
284
288
|
// - エラー: 「電話番号は10文字以上で入力してください」「数字とハイフンのみ入力可能です」
|
|
285
289
|
```
|
|
286
290
|
|
|
287
|
-
**3.
|
|
291
|
+
**3. ロジック設計は実装のフローを正確に反映する**
|
|
288
292
|
|
|
289
|
-
|
|
293
|
+
入力 → バリデーション → ビジネスロジック → 永続化 → 出力 の流れを、実装の Server Actions / service 層から正確に書き起こす。データモデル(テーブル・ER)は common の `TABLE_DEFINITION.md`、API 契約は common の `API_SPEC.md` を参照し、TECH_DESIGN では重複して持たない。
|
|
294
|
+
|
|
295
|
+
**4. データモデル / API への言及は common を参照する**
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
❌ TECH_DESIGN にテーブル定義・ER 図・API 設計を書く(common と二重管理になる)
|
|
299
|
+
✅ common の TABLE_DEFINITION.md / API_SPEC.md を参照し、supabase/generated/database.types.ts の定義と一致させる
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Phase 4.5: TEST_PLAN.md作成
|
|
305
|
+
|
|
306
|
+
テスト戦略は feature 単位の `TEST_PLAN.md` に記述する(TECH_DESIGN には書かない)。`documenting-specifications` skillのテンプレートに従う。
|
|
307
|
+
|
|
308
|
+
**テスト総数は作成後に正確にカウントする**
|
|
309
|
+
|
|
310
|
+
TEST_PLAN.mdにはテスト総数を記載するが、テストを実際に書いた後にitブロック数を正確にカウントして更新する。
|
|
290
311
|
|
|
291
312
|
```
|
|
292
313
|
# カウント方法(Jest)
|
|
@@ -296,20 +317,13 @@ grep -c "it(" path/to/test.test.tsx
|
|
|
296
317
|
grep -c "test(" e2e/tests/user-app/feature.spec.ts
|
|
297
318
|
```
|
|
298
319
|
|
|
299
|
-
**4. ER図はdatabase.types.tsを正確に反映する**
|
|
300
|
-
|
|
301
|
-
```
|
|
302
|
-
❌ テーブル名やカラム名を想像で書く
|
|
303
|
-
✅ supabase/generated/database.types.ts の定義を参照して書く
|
|
304
|
-
```
|
|
305
|
-
|
|
306
320
|
---
|
|
307
321
|
|
|
308
322
|
## Phase 5: テスト作成
|
|
309
323
|
|
|
310
324
|
### E2Eテスト
|
|
311
325
|
|
|
312
|
-
`e2e-testing` skillに従い、
|
|
326
|
+
`e2e-testing` skillに従い、TEST_PLAN.mdのテスト戦略に基づいて作成する。
|
|
313
327
|
|
|
314
328
|
**リバースエンジニアリング固有のポイント**:
|
|
315
329
|
|
|
@@ -333,7 +347,7 @@ grep -c "test(" e2e/tests/user-app/feature.spec.ts
|
|
|
333
347
|
|
|
334
348
|
### Unit / Integrationテスト
|
|
335
349
|
|
|
336
|
-
|
|
350
|
+
TEST_PLAN.mdのテスト戦略で定めたテストレベルに従って作成する。
|
|
337
351
|
|
|
338
352
|
---
|
|
339
353
|
|
|
@@ -362,7 +376,7 @@ TECH_DESIGN.mdのテスト戦略で定めたテストレベルに従って作成
|
|
|
362
376
|
|------|--------|------|
|
|
363
377
|
| **A: 1フロー = 1 Spec** | 開始〜完了まで一連の操作は1 Spec | パスワードリセット、新規登録 |
|
|
364
378
|
| **B: 関連画面はまとめる** | 同一データの一覧+詳細等は1 Spec | 通知一覧+詳細 |
|
|
365
|
-
| **C: 複雑時はサブ分割** |
|
|
379
|
+
| **C: 複雑時はサブ分割** | ユースケース 7つ以上 or 実装1000行超で分割 | ダッシュボード(タブ別) |
|
|
366
380
|
| **D: 機能追加は独立Spec可** | 既存画面への追加機能は独立Specとして配置可 | 評価ボタン追加 |
|
|
367
381
|
|
|
368
382
|
**⚠️ 作業開始前の確認**: 上記方針を踏まえたうえで、必ず開発者にSpec粒度(どの画面・機能を1 Specにまとめるか)とスコープ(どこまでを対象とするか)を確認してから作業を開始すること。
|
|
@@ -390,7 +404,7 @@ TECH_DESIGN.mdのテスト戦略で定めたテストレベルに従って作成
|
|
|
390
404
|
□ フォーム項目名は実装の<label>やaria-labelから転記した
|
|
391
405
|
□ エラーメッセージはZodスキーマのmessageから転記した
|
|
392
406
|
□ 画面遷移はrouter.push/redirectの実際のパスを記載した
|
|
393
|
-
□
|
|
407
|
+
□ すべてのユースケースにPriority(P0/P1/P2)+振る舞い(手順)+受入基準(EARS)を付与した
|
|
394
408
|
□ 「備考」セクションにリバースエンジニアリング注記を追加した
|
|
395
409
|
```
|
|
396
410
|
|
|
@@ -413,20 +427,27 @@ TECH_DESIGN.mdのテスト戦略で定めたテストレベルに従って作成
|
|
|
413
427
|
```
|
|
414
428
|
□ 型定義はdomain/models配下から正確にコピーした
|
|
415
429
|
□ バリデーションルールはschema.tsから正確に転記した
|
|
416
|
-
□
|
|
417
|
-
□
|
|
418
|
-
□
|
|
430
|
+
□ ロジック設計(入力→検証→ロジック→永続化→出力)を実装から書き起こした
|
|
431
|
+
□ データモデル/ER/API は common の TABLE_DEFINITION.md / API_SPEC.md を参照(TECH_DESIGN に重複して持っていない)
|
|
432
|
+
□ 画面 feature の場合、画面項目定義セクションを記載した
|
|
419
433
|
□ 実装例・コード例が含まれていないことを確認した(型定義・I/Fは除く)
|
|
420
434
|
```
|
|
421
435
|
|
|
436
|
+
### TEST_PLAN.md作成時
|
|
437
|
+
|
|
438
|
+
```
|
|
439
|
+
□ テスト戦略を記載した(ユースケース別テストマッピング)
|
|
440
|
+
□ テスト総数と内訳を記載した
|
|
441
|
+
```
|
|
442
|
+
|
|
422
443
|
### テスト作成時
|
|
423
444
|
|
|
424
445
|
```
|
|
425
446
|
□ E2EテストのLocatorは実装のJSXテキストから取得した
|
|
426
447
|
□ テストデータはseedファイルの内容を確認した
|
|
427
|
-
□
|
|
448
|
+
□ TEST_PLAN.mdのテスト戦略に記載されたテストケースを網羅した
|
|
428
449
|
□ テスト実行して全件パスした
|
|
429
|
-
□
|
|
450
|
+
□ TEST_PLAN.mdのテスト総数を実際のitブロック数で更新した
|
|
430
451
|
```
|
|
431
452
|
|
|
432
453
|
### 最終確認
|
|
@@ -186,18 +186,18 @@ Projects - 削除確認ダイアログ
|
|
|
186
186
|
### 記載フォーマット
|
|
187
187
|
|
|
188
188
|
```markdown
|
|
189
|
-
|
|
189
|
+
### 2.4 UI/UX・画面
|
|
190
190
|
|
|
191
|
-
|
|
191
|
+
#### Figmaデザイン
|
|
192
192
|
|
|
193
193
|
**Figmaファイル**: [<ファイル名>](<FigmaファイルURL>)
|
|
194
194
|
|
|
195
|
-
|
|
195
|
+
##### [画面名1]
|
|
196
196
|
|
|
197
197
|
- [状態A](<FigmaファイルURL>?node-id=<node-id>)
|
|
198
198
|
- [状態B](<FigmaファイルURL>?node-id=<node-id>)
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
##### [画面名2]
|
|
201
201
|
|
|
202
202
|
- [状態A](<FigmaファイルURL>?node-id=<node-id>)
|
|
203
203
|
- [状態B](<FigmaファイルURL>?node-id=<node-id>)
|
|
@@ -206,22 +206,22 @@ Projects - 削除確認ダイアログ
|
|
|
206
206
|
### 記載例(ダッシュボードの場合)
|
|
207
207
|
|
|
208
208
|
```markdown
|
|
209
|
-
|
|
209
|
+
### 2.4 UI/UX・画面
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
#### Figmaデザイン
|
|
212
212
|
|
|
213
213
|
**Figmaファイル**: [<app.id>-Dashboard-Common](https://www.figma.com/design/xxxxx/<app.id>-Dashboard-Common)
|
|
214
214
|
|
|
215
|
-
|
|
215
|
+
##### OverviewTab
|
|
216
216
|
|
|
217
217
|
- [実績サマリ表示](https://www.figma.com/design/xxxxx/<app.id>-Dashboard-Common?node-id=1-2)
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
##### タブ切り替え
|
|
220
220
|
|
|
221
221
|
- [Overviewタブ(アクティブ)](https://www.figma.com/design/xxxxx/<app.id>-Dashboard-Common?node-id=2-2)
|
|
222
222
|
- [Projectsタブ(アクティブ)](https://www.figma.com/design/xxxxx/<app.id>-Dashboard-Common?node-id=3-2)
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
##### WelcomeSection
|
|
225
225
|
|
|
226
226
|
- [ウェルカムバナー表示](https://www.figma.com/design/xxxxx/<app.id>-Dashboard-Common?node-id=4-2)
|
|
227
227
|
```
|
|
@@ -49,12 +49,13 @@ docs/common/plans/stdd-bootstrap.md
|
|
|
49
49
|
| step | 実行内容 | 呼ぶスキル | ★停止して確認 |
|
|
50
50
|
| ---- | -------- | ---------- | ------------- |
|
|
51
51
|
| 0 | scaffold / `.stdd.config.yml` 点検(common ティア前提) | — | 構成(単一/複数アプリ・パス規約) |
|
|
52
|
-
| 1 |
|
|
53
|
-
| 2 |
|
|
54
|
-
| 3 |
|
|
55
|
-
| 4 |
|
|
56
|
-
| 5 |
|
|
57
|
-
| 6 |
|
|
52
|
+
| 1 | **プロダクトコンセプトのヒアリング**(下記「step 1」詳細) | — | ★ どんなアプリ/要件の概要(最低 1 レスポンス) |
|
|
53
|
+
| 2 | **アプリ骨組みを対話駆動**(stack 固有) | (stack 手順へ委譲。下記「step 2」詳細) | ★ 構成・コマンド疎通 |
|
|
54
|
+
| 3 | **common ティアを前方設計**(docs/common を埋める) | `documenting-specifications` | ★ 目的・アクター・初期アーキ |
|
|
55
|
+
| 4 | 最初の feature を順行 spec 化(P0 コアから 1 本) | `documenting-specifications` → `generating-wireframes` | ★ Spec 粒度・スコープ |
|
|
56
|
+
| 5 | フォーマット策定 → テンプレ特化 | `tailoring-spec-format` | ★★ フォーマット決定 |
|
|
57
|
+
| 6 | feature を順行 STDD でループ | `documenting-plans` → `auto-implement` | ★ 機能ごとの粒度 |
|
|
58
|
+
| 7 | 通常運用へ移行 | `auto-implement`(以降) | 立ち上げ完了の確認 |
|
|
58
59
|
|
|
59
60
|
各 feature 実装後は `verifying-consistency` で spec ⇔ test ⇔ 実装 の整合を確認する。
|
|
60
61
|
|
|
@@ -63,11 +64,12 @@ docs/common/plans/stdd-bootstrap.md
|
|
|
63
64
|
## 初回フロー(立ち上げPLAN が無いとき)
|
|
64
65
|
|
|
65
66
|
1. **scaffold 確認**: `npx @careerchain/stdd init` の導入物(`.stdd.config.yml`・`.claude/`・`docs/`)が揃っているか点検。未導入なら `npx @careerchain/stdd init` を案内。
|
|
66
|
-
2. **step 1
|
|
67
|
-
3. **step 2
|
|
68
|
-
4. **step 3(★人間判断)**:
|
|
69
|
-
5.
|
|
70
|
-
6.
|
|
67
|
+
2. **step 1(★人間判断・最優先)**: 下記「step 1」手順で**プロダクトコンセプトをヒアリング**し、最低 1 レスポンスを得る。技術スタック等の確認より先に必ず実施する。
|
|
68
|
+
3. **step 2(アプリ骨組み)**: 下記「step 2」手順で stack 固有の骨組み生成を対話駆動。step 1 で得たコンセプトを stack 選定の判断材料に使う。
|
|
69
|
+
4. **step 3(★人間判断)**: `documenting-specifications` で `docs/common/REQUIREMENTS.md` + `ARCHITECTURE.md` を**前方設計**(step 1 のコンセプトを起点に、仮説として埋める)。
|
|
70
|
+
5. **step 4(★人間判断)**: P0 コア機能を 1 つ選び、順行で feature spec を作る。
|
|
71
|
+
6. **立ち上げPLAN 生成**: `templates/bootstrap-plan.md` を雛形に `docs/common/plans/stdd-bootstrap.md` を作成し、step 1 で得たコンセプトを「プロダクトコンセプト」セクションに転記、想定 feature を優先順で並べる。
|
|
72
|
+
7. 「次は step 5(フォーマット策定)」を提示して停止。
|
|
71
73
|
|
|
72
74
|
---
|
|
73
75
|
|
|
@@ -81,14 +83,38 @@ docs/common/plans/stdd-bootstrap.md
|
|
|
81
83
|
|
|
82
84
|
---
|
|
83
85
|
|
|
84
|
-
## step 1:
|
|
86
|
+
## step 1: プロダクトコンセプトのヒアリング(詳細)
|
|
87
|
+
|
|
88
|
+
**最初に必ず実施する**。技術スタック・骨組み・common ドキュメントなどあらゆる確認の**前に**ユーザーから 1 レスポンスを得る。
|
|
89
|
+
ここで得た内容は step 2(stack 選定の判断材料)と step 3(common ティアの前方設計の起点)の双方に流す。
|
|
90
|
+
|
|
91
|
+
### 1-1. 何を聞くか
|
|
92
|
+
|
|
93
|
+
「**どんなシステム/アプリ/サービスを作りたいですか?要件の概要を教えてください**」を起点に、ユーザーの言葉でフリーフォームに聞く。
|
|
94
|
+
箇条書きやフォームを強制しない。例示として以下を添えてもよいが、回答を縛らない:
|
|
95
|
+
|
|
96
|
+
- 解決したい問題 / 想定ユーザー / 中核機能 / 想定スケール 等
|
|
97
|
+
|
|
98
|
+
### 1-2. 進める条件(重要)
|
|
99
|
+
|
|
100
|
+
- **最低 1 レスポンス**を得たら、その**詳細度に関わらず**次ステップへ進む。追加質問で深掘りしない。
|
|
101
|
+
- 不足は step 3(common ティアの前方設計)以降で**仮説**として補い、feature 開発で検証して更新する前提。
|
|
102
|
+
|
|
103
|
+
### 1-3. 記録
|
|
104
|
+
|
|
105
|
+
- 立ち上げPLAN(`docs/common/plans/stdd-bootstrap.md`)の「プロダクトコンセプト」セクションにユーザーの 1 レスポンスを**そのまま転記**する(要約や勝手な拡張を加えない)。
|
|
106
|
+
- step 3 で common `REQUIREMENTS.md` を書く際の起点になる。
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## step 2: アプリ骨組みの対話駆動(詳細)
|
|
85
111
|
|
|
86
112
|
新規はアプリ本体がまだ無いので、stack 固有の骨組み(フレームワーク・DB・E2E)を立てる。
|
|
87
113
|
**本スキルは stack 非依存**なので、コマンドの実体は持たず、使用中の stack 手順を SSoT として参照・実行支援する。
|
|
88
114
|
|
|
89
|
-
###
|
|
115
|
+
### 2-1. stack の特定
|
|
90
116
|
|
|
91
|
-
`.stdd.config.yml` の `plugins` / `apps[].framework` を読み、骨組み手順の所在を決める。
|
|
117
|
+
`.stdd.config.yml` の `plugins` / `apps[].framework` を読み、骨組み手順の所在を決める。step 1 で得たコンセプトを stack 選定の判断材料に使う。
|
|
92
118
|
|
|
93
119
|
```
|
|
94
120
|
□ plugins に "nextjs-supabase" / "playwright" → nextjs+supabase+playwright スターター手順
|
|
@@ -96,18 +122,18 @@ docs/common/plans/stdd-bootstrap.md
|
|
|
96
122
|
□ それ以外 / 不明 → ユーザーに stack と骨組み手順を確認
|
|
97
123
|
```
|
|
98
124
|
|
|
99
|
-
###
|
|
125
|
+
### 2-2. 骨組み生成を対話駆動
|
|
100
126
|
|
|
101
127
|
該当手順のコマンド(例: `create-next-app` / `supabase init` / Playwright 導入)を**1つずつ提示し、ユーザーの確認のもと実行**する。具体コマンドは本スキルに書かず、参照先(テンプレート README / プラグイン guide)の記述に従う。
|
|
102
128
|
|
|
103
|
-
###
|
|
129
|
+
### 2-3. 設定の実体合わせ(★確認)
|
|
104
130
|
|
|
105
131
|
```
|
|
106
132
|
□ apps[].path / apps[].port が実体と一致
|
|
107
133
|
□ commands.test / typecheck / build / db_* が実際に動く
|
|
108
134
|
```
|
|
109
135
|
|
|
110
|
-
> 骨組みが既に用意されている場合は step
|
|
136
|
+
> 骨組みが既に用意されている場合は step 2 を飛ばして step 3 へ。
|
|
111
137
|
|
|
112
138
|
---
|
|
113
139
|
|
|
@@ -27,12 +27,13 @@
|
|
|
27
27
|
### 基盤
|
|
28
28
|
|
|
29
29
|
- [ ] step 0: `.stdd.config.yml` 点検(common ティア前提)
|
|
30
|
-
- [ ] step 1:
|
|
31
|
-
- [ ] step 2:
|
|
32
|
-
- [ ] step 3:
|
|
33
|
-
- [ ] step 4:
|
|
30
|
+
- [ ] step 1: プロダクトコンセプトのヒアリング(下記「プロダクトコンセプト」へ転記)
|
|
31
|
+
- [ ] step 2: アプリ骨組み生成(stack 固有。`apps[].path` / `commands.*` 疎通確認)
|
|
32
|
+
- [ ] step 3: common ティアを前方設計(`docs/common/REQUIREMENTS.md` + `ARCHITECTURE.md`。仮説)
|
|
33
|
+
- [ ] step 4: 最初の feature を順行 spec 化([機能名])
|
|
34
|
+
- [ ] step 5: フォーマット策定 → テンプレ特化(下記「決定ログ」へ)
|
|
34
35
|
|
|
35
|
-
### feature ループ(step
|
|
36
|
+
### feature ループ(step 6)
|
|
36
37
|
|
|
37
38
|
優先順(P0 → P1 → P2)。各 feature = `documenting-plans` → `auto-implement` → `verifying-consistency`。
|
|
38
39
|
|
|
@@ -43,11 +44,19 @@
|
|
|
43
44
|
|
|
44
45
|
### 移行
|
|
45
46
|
|
|
46
|
-
- [ ] step
|
|
47
|
+
- [ ] step 7: feature が回り始めた → 以降は `auto-implement`(通常運用)へ
|
|
47
48
|
|
|
48
49
|
---
|
|
49
50
|
|
|
50
|
-
##
|
|
51
|
+
## プロダクトコンセプト(step 1)
|
|
52
|
+
|
|
53
|
+
ユーザーの 1 レスポンスを**そのまま**転記する(要約・拡張を加えない)。詳細度に関わらずこれを起点にして step 2 以降へ進む。
|
|
54
|
+
|
|
55
|
+
> [step 1 でユーザーから得た 1 レスポンスをここに転記]
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## フォーマット決定ログ(step 5 / 運用中のブラッシュアップ)
|
|
51
60
|
|
|
52
61
|
このプロジェクト固有に決めた spec フォーマットの方針を記録する。
|
|
53
62
|
|
|
@@ -36,9 +36,9 @@ STDD 導入(既存プロジェクト, step 3-4)・立ち上げ(新規プ
|
|
|
36
36
|
|
|
37
37
|
```
|
|
38
38
|
□ docs/common/REQUIREMENTS.md / ARCHITECTURE.md(common ティアの構成)
|
|
39
|
-
□ 代表 feature spec(REQUIREMENTS.md / TECH_DESIGN.md)の実物
|
|
39
|
+
□ 代表 feature spec(REQUIREMENTS.md / TECH_DESIGN.md / TEST_PLAN.md)の実物
|
|
40
40
|
□ 現在の .stdd.config.yml(docs.layout / apps / commands)
|
|
41
|
-
□
|
|
41
|
+
□ 利用中のテンプレ(`.claude/skills/documenting-specifications/templates/` または プロジェクト側コピー)
|
|
42
42
|
□ (step 7 のみ) 運用中の全 feature spec のばらつき・過不足
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -48,11 +48,11 @@ STDD 導入(既存プロジェクト, step 3-4)・立ち上げ(新規プ
|
|
|
48
48
|
|
|
49
49
|
| 決定ポイント | 論点 | 反映先 |
|
|
50
50
|
| ------------ | ---- | ------ |
|
|
51
|
-
| **spec ファイル構成** |
|
|
51
|
+
| **spec ファイル構成** | feature 必須(REQUIREMENTS / TECH_DESIGN / TEST_PLAN)・任意(wireframes)と common(TABLE_DEFINITION / API_SPEC / DESIGN)をどう組むか | プロジェクトのテンプレ・運用ルール |
|
|
52
52
|
| **common 固有セクション** | common ARCHITECTURE に足す横断トピック(認証・認可 / RLS・権限 / 通知 / 監査ログ 等) | `docs/common/ARCHITECTURE.md` |
|
|
53
53
|
| **docs.layout パス規約** | 単一/複数アプリ、`feature_path` の切り方、common の置き場 | `.stdd.config.yml` の `docs.layout` |
|
|
54
54
|
| **Priority 基準** | このプロジェクトでの P0/P1/P2 の具体定義(何を Critical とするか) | テンプレ注記 + 決定ログ |
|
|
55
|
-
| **テスト層の責務分担** | E2E/Integration/Unit の線引き(既存テスト資産に合わせる) |
|
|
55
|
+
| **テスト層の責務分担** | E2E/Integration/Unit の線引き(既存テスト資産に合わせる) | TEST_PLAN テンプレのテスト戦略節 |
|
|
56
56
|
| **命名・用語** | プロジェクト固有語彙(アクター名・ドメイン用語)、テンプレのプレースホルダ実値化 | テンプレ・common spec |
|
|
57
57
|
|
|
58
58
|
### 3. 決定を記録
|
|
@@ -62,7 +62,7 @@ PLAN が無い文脈(ブラッシュアップ単体実行など)では、プ
|
|
|
62
62
|
|
|
63
63
|
### 4. テンプレ・設定へ反映(機械的)
|
|
64
64
|
|
|
65
|
-
決定に従って、**プロジェクト側**の成果物を更新する(STDD core の
|
|
65
|
+
決定に従って、**プロジェクト側**の成果物を更新する(STDD core の `.claude/skills/*/templates/` 本体は壊さない)。
|
|
66
66
|
|
|
67
67
|
```
|
|
68
68
|
□ .stdd.config.yml の docs.layout を更新(必要なら common_* を追加/変更)
|
|
@@ -81,7 +81,7 @@ PLAN が無い文脈(ブラッシュアップ単体実行など)では、プ
|
|
|
81
81
|
|
|
82
82
|
- **決定は人間**。skill は選択肢提示・記録・反映に徹する。
|
|
83
83
|
- 一度に全項目を片付けず、**決定ポイントごとに合意**を取る。
|
|
84
|
-
- **STDD core
|
|
84
|
+
- **STDD core テンプレ(`.claude/skills/*/templates/`)を直接編集しない**。反映先はプロジェクト側。
|
|
85
85
|
- 決定は決定ログに集約し、spec 本体に経緯・「変更前/後」を書かない(SSOT)。
|
|
86
86
|
|
|
87
87
|
---
|
|
@@ -98,6 +98,6 @@ PLAN が無い文脈(ブラッシュアップ単体実行など)では、プ
|
|
|
98
98
|
|
|
99
99
|
- **導入ガイド(なぜ/判断基準)**: [guide-for-existing-project.md](../../../packages/core/docs/guide-for-existing-project.md) §step 3-4
|
|
100
100
|
- **導入ドライバー**: [introducing-stdd skill](../introducing-stdd/SKILL.md)
|
|
101
|
-
- **spec テンプレ**:
|
|
101
|
+
- **spec テンプレ**: `../documenting-specifications/templates/`(feature / common) / `../documenting-plans/templates/`(PLAN)
|
|
102
102
|
- **spec 作成スキル**: [documenting-specifications skill](../documenting-specifications/SKILL.md)
|
|
103
103
|
- **設定スキーマ**: `packages/core/schema/.stdd.config.schema.json`
|
|
@@ -34,7 +34,7 @@ git diff origin/<primary_branch>...HEAD --name-only
|
|
|
34
34
|
|
|
35
35
|
### A. REQUIREMENTS.md ⇔ 実装
|
|
36
36
|
|
|
37
|
-
- [ ] REQUIREMENTS.md
|
|
37
|
+
- [ ] REQUIREMENTS.md のユースケース(振る舞い+受入基準)が実装で網羅されているか
|
|
38
38
|
- [ ] REQUIREMENTS.md の画面仕様(ボタン、フォーム、表示項目)が実装と一致しているか
|
|
39
39
|
- [ ] REQUIREMENTS.md に記載された機能要件が全て実装されているか
|
|
40
40
|
|
package/assets/mcp.json
ADDED
|
@@ -12,20 +12,24 @@ project:
|
|
|
12
12
|
apps:
|
|
13
13
|
- id: app
|
|
14
14
|
path: "."
|
|
15
|
+
# port: 3000 # dev サーバのポート。QA の Playwright MCP 動作確認で URL 構築に使う
|
|
15
16
|
|
|
16
17
|
commands:
|
|
17
18
|
typecheck: "npx tsc --noEmit"
|
|
18
19
|
test: "npm test"
|
|
19
20
|
build: "npm run build"
|
|
21
|
+
# dev: "npm run dev" # 任意。定義すると QA がブラウザ動作確認(Playwright MCP)を実施。未定義ならスキップ
|
|
20
22
|
|
|
21
23
|
docs:
|
|
22
24
|
layout:
|
|
23
25
|
requirements: "docs/{{feature_path}}/REQUIREMENTS.md"
|
|
24
26
|
tech_design: "docs/{{feature_path}}/TECH_DESIGN.md"
|
|
27
|
+
test_plan: "docs/{{feature_path}}/TEST_PLAN.md"
|
|
25
28
|
plan: "docs/{{feature_path}}/plans/{{date}}.md"
|
|
26
29
|
|
|
27
30
|
workflow:
|
|
28
31
|
branch_prefix: "claude/"
|
|
32
|
+
enforce_spec_first: "warn" # off | warn | block — 実装編集時に Spec→テスト→実装 の順序を促す PreToolUse フック
|
|
29
33
|
worktree:
|
|
30
34
|
enabled: false
|
|
31
35
|
devcontainer:
|
package/dist/cli.js
CHANGED
|
@@ -108,6 +108,7 @@ async function runInit(args) {
|
|
|
108
108
|
console.log(" ✔ STDD を導入しました");
|
|
109
109
|
console.log(` .claude/ : ${ACTION_LABEL[result.claude]}`);
|
|
110
110
|
console.log(` .stdd.config.yml : ${ACTION_LABEL[result.config]}`);
|
|
111
|
+
console.log(` .mcp.json : ${ACTION_LABEL[result.mcp]} # Playwright MCP(ブラウザ動作確認)`);
|
|
111
112
|
console.log(` docs/ : ${ACTION_LABEL[result.docs]}`);
|
|
112
113
|
console.log("");
|
|
113
114
|
console.log(" 次の手順:");
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|