yodogawa 2.1.1 → 2.2.0
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/CHANGELOG.md +134 -82
- package/LICENSE +1 -1
- package/README.md +351 -246
- package/bin/checks/id-trace.js +137 -0
- package/bin/checks/links.js +59 -0
- package/bin/checks/placeholder.js +132 -0
- package/bin/checks/structure.js +127 -0
- package/bin/cli.js +51 -68
- package/bin/commands/doctor.js +128 -0
- package/bin/commands/install.js +58 -0
- package/bin/commands/new-task.js +117 -0
- package/bin/lib/check-cli.js +19 -0
- package/bin/lib/findings.js +31 -0
- package/bin/lib/markdown.js +103 -0
- package/bin/lib/project-spec.js +138 -0
- package/bin/lib/walk-md.js +23 -0
- package/package.json +68 -56
- package/skills/a-001-setup-doc-structure/SKILL.md +7 -6
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +40 -13
- package/skills/a-002-initialize-project/SKILL.md +72 -52
- package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
- package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
- package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
- package/skills/a-002b-define-user-stories/SKILL.md +80 -0
- package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
- package/skills/a-003-create-scenarios/SKILL.md +37 -39
- package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
- package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
- package/skills/a-004-define-domain-model/SKILL.md +44 -36
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
- package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
- package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
- package/skills/a-007-define-tech-stack/SKILL.md +4 -7
- package/skills/a-008-define-repository-structure/SKILL.md +2 -5
- package/skills/a-009-define-screen-design/SKILL.md +3 -6
- package/skills/a-010-define-design-system/SKILL.md +1 -5
- package/skills/a-011-define-data-model/SKILL.md +4 -7
- package/skills/a-012-define-api-spec/SKILL.md +1 -4
- package/skills/a-013-define-architecture/SKILL.md +1 -4
- package/skills/a-014-define-infrastructure/SKILL.md +9 -4
- package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
- package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
- package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
- package/skills/b-001-create-task-directory/SKILL.md +14 -8
- package/skills/b-002-create-task-definition/SKILL.md +4 -5
- package/skills/b-003-create-task-research/SKILL.md +4 -5
- package/skills/b-004-create-task-implementation/SKILL.md +4 -5
- package/skills/b-005-review-task/reference/assessment-criteria.md +3 -3
- package/skills/c-001-implement-task/SKILL.md +1 -1
- package/skills/c-001-implement-task/reference/implementation-loop.md +1 -1
- package/skills/c-002-update-documentation/SKILL.md +7 -7
- package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +8 -9
- package/templates/project/01-requirements/01-product-brief.md +186 -0
- package/templates/project/01-requirements/02-mvp-scope.md +64 -0
- package/templates/project/01-requirements/03-parking-lot.md +29 -0
- package/templates/project/01-requirements/05-user-stories.md +28 -124
- package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
- package/templates/project/02-behavior/01-core-scenarios.md +80 -0
- package/templates/project/03-domain/01-domain-model.md +120 -339
- package/templates/project/03-domain/01-domain-sketch.md +90 -0
- package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
- package/templates/project/04-design/01-tech-stack.md +367 -367
- package/templates/project/04-design/02-repository-structure.md +391 -391
- package/templates/project/04-design/03-screen-design.md +596 -596
- package/templates/project/04-design/04-design-system.md +261 -261
- package/templates/project/04-design/05-data-model.md +211 -211
- package/templates/project/04-design/06-api-spec.md +226 -226
- package/templates/project/04-design/07-architecture.md +183 -183
- package/templates/project/04-design/08-infrastructure.md +180 -180
- package/templates/project/AI_CONTEXT.md +55 -0
- package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
- package/templates/tasks/task-template/a-definition.md +143 -143
- package/templates/tasks/task-template/b-research.md +185 -185
- package/templates/tasks/task-template/c-implementation.md +200 -200
- package/scripts/create-task.sh +0 -77
- package/scripts/init-project-docs.sh +0 -90
- package/scripts/init-task-doc.sh +0 -77
- package/scripts/setup-docs.sh +0 -92
- package/templates/documentation-rules.md +0 -143
- package/templates/project/01-requirements/01-system-overview.md +0 -49
- package/templates/project/01-requirements/03-features-planned.md +0 -75
|
@@ -1,124 +1,28 @@
|
|
|
1
|
-
# ユーザーストーリー一覧
|
|
2
|
-
|
|
3
|
-
<!--
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<!--
|
|
30
|
-
テーブル構成:
|
|
31
|
-
|
|
32
|
-
【ストーリーID】
|
|
33
|
-
- 形式: US-XXX(User Story)
|
|
34
|
-
- 採番ルール: 連番、一意の識別子
|
|
35
|
-
- 用途: タスク管理ツール(Jira、Asanaなど)との紐付け、コミットメッセージでの参照
|
|
36
|
-
|
|
37
|
-
【ストーリー】
|
|
38
|
-
- 標準フォーマット: 「[役割]として、[目的]がしたい、なぜなら[理由]」
|
|
39
|
-
- 英語フォーマット: "As a [role], I want [goal] so that [benefit]"
|
|
40
|
-
|
|
41
|
-
構成要素:
|
|
42
|
-
• 役割(Who): ユーザーの種類やペルソナ
|
|
43
|
-
例: 「新入社員として」「管理者として」「エンドユーザーとして」
|
|
44
|
-
|
|
45
|
-
• 目的(What): 実現したい機能や行動
|
|
46
|
-
例: 「プロフィールを編集したい」「売上レポートを閲覧したい」
|
|
47
|
-
|
|
48
|
-
• 理由(Why): その機能が必要な理由、得られる価値
|
|
49
|
-
例: 「自分の情報を最新に保つため」「意思決定に活用するため」
|
|
50
|
-
|
|
51
|
-
書き方のコツ:
|
|
52
|
-
- 技術用語を避け、ユーザーの言葉で記述
|
|
53
|
-
- 実装方法(How)ではなく、目的(What/Why)に集中
|
|
54
|
-
- 1つのストーリーは1つの価値に焦点を当てる
|
|
55
|
-
- 曖昧な表現を避け、具体的に記述
|
|
56
|
-
|
|
57
|
-
【受け入れ基準(Acceptance Criteria)】
|
|
58
|
-
- 目的: ストーリーが「完了」と判断できる明確な基準
|
|
59
|
-
- 特徴: 測定可能、テスト可能、Yes/Noで判定可能
|
|
60
|
-
|
|
61
|
-
推奨フォーマット1: Given-When-Then(BDD形式)
|
|
62
|
-
Given [前提条件]
|
|
63
|
-
When [アクション]
|
|
64
|
-
Then [期待される結果]
|
|
65
|
-
|
|
66
|
-
例:
|
|
67
|
-
- [ ] Given ログイン済みユーザーが自分のプロフィールページにいる時
|
|
68
|
-
When 「編集」ボタンをクリックし、名前を変更して保存すると
|
|
69
|
-
Then 変更された名前が表示される
|
|
70
|
-
|
|
71
|
-
推奨フォーマット2: チェックリスト形式
|
|
72
|
-
- [ ] 条件1が満たされている
|
|
73
|
-
- [ ] 条件2が満たされている
|
|
74
|
-
|
|
75
|
-
例:
|
|
76
|
-
- [ ] ユーザーは名前、メールアドレス、プロフィール画像を編集できる
|
|
77
|
-
- [ ] 保存時にバリデーションエラーが表示される
|
|
78
|
-
- [ ] 保存成功時に確認メッセージが表示される
|
|
79
|
-
|
|
80
|
-
書き方のベストプラクティス:
|
|
81
|
-
- 最低1つ、通常3-7個の基準を設定
|
|
82
|
-
- UIの細かい仕様ではなく、ビジネス価値の検証に焦点
|
|
83
|
-
- 「意図」を記述し、「実装方法」は記述しない
|
|
84
|
-
- 開発者とテスターが明確にテストできる内容にする
|
|
85
|
-
- スプリント計画前に明確化(遅くても開発開始前)
|
|
86
|
-
|
|
87
|
-
【優先度】
|
|
88
|
-
- 目的: 開発順序の判断材料
|
|
89
|
-
- 一般的な分類:
|
|
90
|
-
• High: 必須機能、ビジネス価値が高い、依存関係が多い
|
|
91
|
-
• Medium: 重要だが緊急ではない、代替手段がある
|
|
92
|
-
• Low: あると良い機能、将来的に検討
|
|
93
|
-
|
|
94
|
-
優先度付けの考慮要素:
|
|
95
|
-
- ビジネス価値(ユーザーへのインパクト)
|
|
96
|
-
- 緊急性(リリース期限、市場動向)
|
|
97
|
-
- リスク(技術的不確実性、依存関係)
|
|
98
|
-
- 工数(開発コスト、ROI)
|
|
99
|
-
- 依存関係(他のストーリーとの関連)
|
|
100
|
-
|
|
101
|
-
注意:
|
|
102
|
-
- 優先度は変動する(定期的に見直す)
|
|
103
|
-
- すべてがHighになる状況は避ける(真の優先順位をつける)
|
|
104
|
-
- プロダクトオーナーが最終決定権を持つ
|
|
105
|
-
|
|
106
|
-
ベストプラクティス:
|
|
107
|
-
- 3C原則: Card(カード)、Conversation(会話)、Confirmation(確認)
|
|
108
|
-
- ストーリーはチーム全員で作成(プロダクトオーナー、開発者、デザイナー、QA)
|
|
109
|
-
- 定期的なリファインメントで詳細化・分割・統合
|
|
110
|
-
- 完了の定義(DoD: Definition of Done)を明確にする
|
|
111
|
-
- 実装後のフィードバックを次のストーリーに反映
|
|
112
|
-
- テクニカルストーリー(リファクタリング、技術的負債解消)も含めて良い
|
|
113
|
-
-->
|
|
114
|
-
|
|
115
|
-
| ストーリーID | ストーリー | 受け入れ基準 | 優先度 |
|
|
116
|
-
|--------------|-----------|--------------|--------|
|
|
117
|
-
| <!-- US-001 --> | <!-- [役割]として、[目的]がしたい、なぜなら[理由] --> | <!-- - [ ] 基準1<br>- [ ] 基準2 --> | <!-- High/Medium/Low --> |
|
|
118
|
-
| <!-- US-002 --> | <!-- [役割]として、[目的]がしたい、なぜなら[理由] --> | <!-- - [ ] 基準1<br>- [ ] 基準2 --> | <!-- High/Medium/Low --> |
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## メモ
|
|
123
|
-
|
|
124
|
-
<!-- ユーザーストーリーに関する補足情報や依存関係 -->
|
|
1
|
+
# ユーザーストーリー一覧
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
何のドキュメントか: ユーザー視点の機能要求を物語形式で記述したバックログ。詳細仕様ではなく議論の出発点。
|
|
5
|
+
使い方:
|
|
6
|
+
- 各行は「[役割]として、[目的]がしたい、なぜなら[理由]」で書く。実装方法(How)ではなく目的(What/Why)に集中。
|
|
7
|
+
- 「ペルソナ」列に 01-product-brief.md のペルソナ表の ID(P-XXX)を記入し、ストーリーの [役割] と一致させる。
|
|
8
|
+
該当するペルソナが無い場合は、勝手に役割を増やさず 01-product-brief.md のペルソナ表に追加してから参照する。
|
|
9
|
+
- 受け入れ基準は Given-When-Then かチェックリストで、テスト可能に。通常 3〜7 個。
|
|
10
|
+
- INVEST 原則・優先度付け・3C 等の詳しい考え方は skills/a-002b-define-user-stories/reference/user-stories-guide.md を参照。
|
|
11
|
+
- MVP の取捨選択(Must / Not Now / Won't)は 02-mvp-scope.md(/a-002a)が担う。本書の優先度は実装順の目安。
|
|
12
|
+
-->
|
|
13
|
+
|
|
14
|
+
| ストーリーID | ペルソナ | ストーリー | 受け入れ基準 | 優先度 |
|
|
15
|
+
|--------------|----------|-----------|--------------|--------|
|
|
16
|
+
| <!-- US-001 --> | <!-- P-001 --> | <!-- [役割]として、[目的]がしたい、なぜなら[理由] --> | <!-- - [ ] 基準1<br>- [ ] 基準2 --> | <!-- High/Medium/Low --> |
|
|
17
|
+
| <!-- US-002 --> | <!-- P-001 --> | <!-- [役割]として、[目的]がしたい、なぜなら[理由] --> | <!-- - [ ] 基準1<br>- [ ] 基準2 --> | <!-- High/Medium/Low --> |
|
|
18
|
+
|
|
19
|
+
**例:**
|
|
20
|
+
|
|
21
|
+
| ストーリーID | ペルソナ | ストーリー | 受け入れ基準 | 優先度 |
|
|
22
|
+
|--------------|----------|-----------|--------------|--------|
|
|
23
|
+
| US-001 | P-001 | 新入社員として、自己紹介を作成したい、なぜなら早くチームに馴染みたいから | - [ ] 名前・経歴・趣味を入力して公開できる<br>- [ ] 公開後に一覧へ表示される | High |
|
|
24
|
+
| US-002 | P-002 | 受け入れ側として、新人の自己紹介にコメントしたい、なぜなら接点を作りたいから | - [ ] 公開済みプロフィールにコメントできる<br>- [ ] 投稿者へ通知される | Medium |
|
|
25
|
+
|
|
26
|
+
## メモ
|
|
27
|
+
|
|
28
|
+
<!-- ユーザーストーリーに関する補足情報や依存関係。命名・優先度の運用ルールは user-stories-guide.md 参照。 -->
|
package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md}
RENAMED
|
@@ -1,73 +1,77 @@
|
|
|
1
|
-
# 実装済み機能一覧
|
|
2
|
-
|
|
3
|
-
<!--
|
|
4
|
-
何を書くか: 既に実装・リリース済みの機能を体系的に整理した一覧
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
|
67
|
-
|
|
68
|
-
| FN-
|
|
69
|
-
| FN-
|
|
70
|
-
| FN-
|
|
71
|
-
| FN-
|
|
72
|
-
| FN-
|
|
73
|
-
| FN-
|
|
1
|
+
# 実装済み機能一覧
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
何を書くか: 既に実装・リリース済みの機能を体系的に整理した一覧
|
|
5
|
+
|
|
6
|
+
モード別の扱い:
|
|
7
|
+
- existing(既存プロダクト): 必須。既存コード分析と棚卸しで埋める。
|
|
8
|
+
- greenfield(新規プロダクト): 任意。実装済み機能が無いため、空のまま/未生成で構わない。
|
|
9
|
+
|
|
10
|
+
目的:
|
|
11
|
+
- プロダクトの現在の機能範囲を明確にする
|
|
12
|
+
- 新規メンバーへのオンボーディング資料として活用
|
|
13
|
+
- 機能追加・変更時の影響範囲把握に役立てる
|
|
14
|
+
- ドキュメントと実装の同期を保つ
|
|
15
|
+
|
|
16
|
+
記載粒度: ユーザーが認識できる機能単位(APIエンドポイントレベルではなく、ユーザー機能レベル)
|
|
17
|
+
|
|
18
|
+
更新頻度: 機能リリース時に必ず更新(living documentとして維持)
|
|
19
|
+
-->
|
|
20
|
+
|
|
21
|
+
<!--
|
|
22
|
+
テーブル構成:
|
|
23
|
+
|
|
24
|
+
【機能ID】
|
|
25
|
+
- 形式: FN-XXX(Feature Number)
|
|
26
|
+
- 採番ルール: 連番、欠番は作らない
|
|
27
|
+
- 用途: 機能の一意識別、他ドキュメントでの参照、変更履歴の追跡
|
|
28
|
+
|
|
29
|
+
【Category 1】(大分類)
|
|
30
|
+
- プロダクトの主要な機能領域で分類
|
|
31
|
+
- 例: ユーザー管理、コンテンツ、決済、通知、分析
|
|
32
|
+
- 5-10個程度に収める(多すぎると管理が困難)
|
|
33
|
+
|
|
34
|
+
【Category 2】(中分類)
|
|
35
|
+
- Category 1 をさらに細分化
|
|
36
|
+
- 例: ユーザー管理 → 認証、プロフィール、権限
|
|
37
|
+
- Category 1 と合わせて機能の所在が即座に分かるように
|
|
38
|
+
|
|
39
|
+
【機能名】
|
|
40
|
+
- 簡潔で分かりやすい名称(2-5単語程度)
|
|
41
|
+
- ユーザー視点の表現を使う(実装用語ではなく)
|
|
42
|
+
- 例: 「ログイン」「記事作成」「パスワードリセット」
|
|
43
|
+
|
|
44
|
+
【説明】
|
|
45
|
+
- 1-2文で機能の内容を記述(50-100文字程度)
|
|
46
|
+
- 何ができるか(What)を中心に、必要に応じてどう動くか(How)を補足
|
|
47
|
+
- ユーザーへの価値や利点が分かる表現を心がける
|
|
48
|
+
- 技術的詳細は避け、ユーザー機能として記述
|
|
49
|
+
|
|
50
|
+
ベストプラクティス:
|
|
51
|
+
- カテゴリは一貫性を保つ(表記ゆれを避ける)
|
|
52
|
+
- 機能の粒度を揃える(ある機能だけ詳細すぎる/粗すぎるを避ける)
|
|
53
|
+
- 説明は能動態で書く(「〜できる」「〜する」)
|
|
54
|
+
- 内部実装の変更では更新せず、ユーザー体験が変わった時のみ更新
|
|
55
|
+
- 削除された機能は一覧から削除(履歴はGitで管理)
|
|
56
|
+
-->
|
|
57
|
+
|
|
58
|
+
| 機能ID | Category 1 | Category 2 | 機能名 | 説明 |
|
|
59
|
+
|--------|-----------|-----------|--------|------|
|
|
60
|
+
| <!-- FN-001 --> | <!-- カテゴリ1 --> | <!-- カテゴリ2 --> | <!-- 機能名 --> | <!-- 簡潔な説明 --> |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
**例:**
|
|
65
|
+
|
|
66
|
+
| 機能ID | Category 1 | Category 2 | 機能名 | 説明 |
|
|
67
|
+
|--------|-----------|-----------|--------|------|
|
|
68
|
+
| FN-001 | ユーザー管理 | 認証 | ログイン | メールアドレスとパスワードでログイン |
|
|
69
|
+
| FN-002 | ユーザー管理 | 認証 | ログアウト | セッション終了 |
|
|
70
|
+
| FN-003 | ユーザー管理 | 認証 | パスワードリセット | メールでリセットリンク送信 |
|
|
71
|
+
| FN-004 | ユーザー管理 | プロフィール | プロフィール編集 | 名前、アバター、自己紹介の編集 |
|
|
72
|
+
| FN-005 | ユーザー管理 | プロフィール | プロフィール閲覧 | 他ユーザーのプロフィール表示 |
|
|
73
|
+
| FN-006 | コンテンツ | 投稿 | 記事作成 | Markdown形式での記事作成 |
|
|
74
|
+
| FN-007 | コンテンツ | 投稿 | 記事編集 | 既存記事の編集 |
|
|
75
|
+
| FN-008 | コンテンツ | 投稿 | 記事削除 | 記事の削除 |
|
|
76
|
+
| FN-009 | コンテンツ | コメント | コメント投稿 | 記事へのコメント |
|
|
77
|
+
| FN-010 | コンテンツ | コメント | コメント削除 | 自分のコメント削除 |
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Core Scenarios
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
何のドキュメントか: MVP の「価値提供が成立する最小行動」を定義する軽量資料。
|
|
5
|
+
全ケース網羅(ハッピー / エラー / 境界値)の BDD ではない。
|
|
6
|
+
Day 1 に必ず通る成功体験と、価値を壊す重大失敗だけを固定する。
|
|
7
|
+
|
|
8
|
+
使い方:
|
|
9
|
+
- 対象は MVP Scope の Must 機能のみ(02-mvp-scope.md)。Not Now / Won't は扱わない。
|
|
10
|
+
- 各シナリオは「ユーザーの意図」で書く。UI 操作(ボタン名・画面遷移)の詳細には踏み込まない。
|
|
11
|
+
- 網羅したくなったら止める。MVP で対応しない行動・エラーは「Not Covered in MVP」へ逃がす。
|
|
12
|
+
|
|
13
|
+
SSoT の住み分け:
|
|
14
|
+
- User Story(05-user-stories.md)= 要約レベルの受け入れ基準(AC)。
|
|
15
|
+
- Core Scenario(本書)= 実行時の主要行動(誰が・何をして・何が起きれば成功か)。
|
|
16
|
+
- 詳細な Gherkin / 境界値 / Scenario Outline / タグ戦略が必要になったら、実装直前または
|
|
17
|
+
テスト設計時に任意で `skills/a-003-create-scenarios/reference/detailed-gherkin-template.md` を使う。
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
## 参照: MVP Scope
|
|
21
|
+
|
|
22
|
+
<!-- 02-mvp-scope.md の Must 機能のうち、本書で主要行動を固定する対象を列挙する。 -->
|
|
23
|
+
|
|
24
|
+
- 対象 Must 機能: <!-- 例: FN-001 プロフィール作成 / FN-002 コメント投稿 -->
|
|
25
|
+
|
|
26
|
+
## Core Flow 一覧
|
|
27
|
+
|
|
28
|
+
<!--
|
|
29
|
+
何を書くか: MVP の中核となるユーザー行動の流れ(1〜3本)。価値が成立する最短経路。
|
|
30
|
+
記法: 表で「フロー / 主アクター / 提供価値(So that)/ 対応 Must」を一覧化する。
|
|
31
|
+
-->
|
|
32
|
+
|
|
33
|
+
| フロー | 主アクター | 提供価値(So that) | 対応 Must |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| <!-- 例: 自己紹介を作り共通点を見つける --> | <!-- 例: 新入社員 --> | <!-- 例: 早くチームに馴染める --> | <!-- 例: FN-001 --> |
|
|
36
|
+
|
|
37
|
+
## Day 1 Happy Path(1〜3本)
|
|
38
|
+
|
|
39
|
+
<!--
|
|
40
|
+
何を書くか: リリース初日に「必ず通る」成功シナリオ。MVP の価値検証の中心。
|
|
41
|
+
記法: Given-When-Then を1〜数文で。ユーザーの意図を書き、UI 詳細は避ける。
|
|
42
|
+
-->
|
|
43
|
+
|
|
44
|
+
### CS-001: <!-- シナリオ名 -->
|
|
45
|
+
|
|
46
|
+
- **対応フロー / Must**: <!-- 例: 自己紹介フロー / FN-001 -->
|
|
47
|
+
- **Given**: <!-- 前提(例: 新入社員がログイン済み) -->
|
|
48
|
+
- **When**: <!-- 行動(例: ライフラインチャートを入力して公開する) -->
|
|
49
|
+
- **Then**: <!-- 成功条件(例: プロフィールが一覧に表示され、他者が閲覧できる) -->
|
|
50
|
+
|
|
51
|
+
## Critical Failure(価値を壊す重大失敗)
|
|
52
|
+
|
|
53
|
+
<!--
|
|
54
|
+
何を書くか: 起きると MVP の価値そのものが崩れる失敗だけ。網羅ではなく「致命傷」に限定。
|
|
55
|
+
法務・課金・権限・データ消失など、外すと危険な境界条件を優先する。
|
|
56
|
+
-->
|
|
57
|
+
|
|
58
|
+
### CF-001: <!-- 失敗名 -->
|
|
59
|
+
|
|
60
|
+
- **何が起きると価値が壊れるか**: <!-- 例: 公開範囲を誤り社外に個人情報が漏れる -->
|
|
61
|
+
- **MVP での扱い**: <!-- 例: 公開範囲は社内固定(設定不可)にして発生源を断つ -->
|
|
62
|
+
|
|
63
|
+
## Not Covered in MVP(MVP で対応しない行動・エラー)
|
|
64
|
+
|
|
65
|
+
<!--
|
|
66
|
+
何を書くか: 「今回は対応しない」行動・エラーを明示する。スコープ膨張の防止弁。
|
|
67
|
+
02-mvp-scope.md の Not Now / Won't と整合させる。
|
|
68
|
+
-->
|
|
69
|
+
|
|
70
|
+
- <!-- 例: 退職者プロフィールの自動アーカイブ → Not Now -->
|
|
71
|
+
- <!-- 例: 多言語対応 → Won't -->
|
|
72
|
+
|
|
73
|
+
## AI 実装時の振る舞い注意点
|
|
74
|
+
|
|
75
|
+
<!--
|
|
76
|
+
何を書くか: 実装エージェント(Vibe coding / AI)が踏みやすい落とし穴と、固定すべき振る舞い。
|
|
77
|
+
-->
|
|
78
|
+
|
|
79
|
+
- <!-- 例: エラーケースを勝手に網羅実装しない。Not Covered のものは作らない。 -->
|
|
80
|
+
- <!-- 例: 公開範囲のような Critical Failure 対策は仕様どおり固定で実装する。 -->
|