yodogawa 2.1.3 → 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.
Files changed (80) hide show
  1. package/CHANGELOG.md +134 -94
  2. package/LICENSE +1 -1
  3. package/README.md +351 -263
  4. package/bin/checks/id-trace.js +137 -0
  5. package/bin/checks/links.js +59 -0
  6. package/bin/checks/placeholder.js +132 -0
  7. package/bin/checks/structure.js +127 -0
  8. package/bin/cli.js +51 -67
  9. package/bin/commands/doctor.js +128 -0
  10. package/bin/commands/install.js +58 -0
  11. package/bin/commands/new-task.js +117 -0
  12. package/bin/lib/check-cli.js +19 -0
  13. package/bin/lib/findings.js +31 -0
  14. package/bin/lib/markdown.js +103 -0
  15. package/bin/lib/project-spec.js +138 -0
  16. package/bin/lib/walk-md.js +23 -0
  17. package/package.json +68 -55
  18. package/skills/a-001-setup-doc-structure/SKILL.md +68 -68
  19. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -75
  20. package/skills/a-002-initialize-project/SKILL.md +145 -118
  21. package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
  22. package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
  23. package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
  24. package/skills/a-002b-define-user-stories/SKILL.md +80 -0
  25. package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
  26. package/skills/a-003-create-scenarios/SKILL.md +97 -96
  27. package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
  28. package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
  29. package/skills/a-004-define-domain-model/SKILL.md +107 -98
  30. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
  31. package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
  32. package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
  33. package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
  34. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
  35. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
  36. package/skills/a-007-define-tech-stack/SKILL.md +99 -99
  37. package/skills/a-008-define-repository-structure/SKILL.md +96 -96
  38. package/skills/a-009-define-screen-design/SKILL.md +103 -103
  39. package/skills/a-010-define-design-system/SKILL.md +130 -130
  40. package/skills/a-011-define-data-model/SKILL.md +118 -118
  41. package/skills/a-012-define-api-spec/SKILL.md +105 -105
  42. package/skills/a-013-define-architecture/SKILL.md +98 -98
  43. package/skills/a-014-define-infrastructure/SKILL.md +118 -110
  44. package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
  45. package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
  46. package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
  47. package/skills/b-001-create-task-directory/SKILL.md +68 -68
  48. package/skills/b-002-create-task-definition/SKILL.md +114 -114
  49. package/skills/b-003-create-task-research/SKILL.md +128 -128
  50. package/skills/b-004-create-task-implementation/SKILL.md +98 -98
  51. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
  52. package/skills/c-001-implement-task/SKILL.md +186 -186
  53. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
  54. package/skills/c-002-update-documentation/SKILL.md +159 -159
  55. package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
  56. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +99 -97
  57. package/templates/project/01-requirements/01-product-brief.md +186 -0
  58. package/templates/project/01-requirements/02-mvp-scope.md +64 -0
  59. package/templates/project/01-requirements/03-parking-lot.md +29 -0
  60. package/templates/project/01-requirements/05-user-stories.md +28 -124
  61. package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
  62. package/templates/project/02-behavior/01-core-scenarios.md +80 -0
  63. package/templates/project/03-domain/01-domain-model.md +120 -339
  64. package/templates/project/03-domain/01-domain-sketch.md +90 -0
  65. package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
  66. package/templates/project/04-design/01-tech-stack.md +367 -367
  67. package/templates/project/04-design/02-repository-structure.md +391 -391
  68. package/templates/project/04-design/03-screen-design.md +596 -596
  69. package/templates/project/04-design/04-design-system.md +261 -261
  70. package/templates/project/04-design/05-data-model.md +211 -211
  71. package/templates/project/04-design/06-api-spec.md +226 -226
  72. package/templates/project/04-design/07-architecture.md +183 -183
  73. package/templates/project/04-design/08-infrastructure.md +180 -180
  74. package/templates/project/AI_CONTEXT.md +55 -0
  75. package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
  76. package/templates/tasks/task-template/a-definition.md +143 -143
  77. package/templates/tasks/task-template/b-research.md +185 -185
  78. package/templates/tasks/task-template/c-implementation.md +200 -200
  79. package/templates/project/01-requirements/01-system-overview.md +0 -49
  80. package/templates/project/01-requirements/03-features-planned.md +0 -75
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: a-002b-define-user-stories
3
+ description: Product Brief と MVP スコープ確定後に、Must 機能を起点としたユーザーストーリー(役割・目的・価値)を作成し、要約レベルの受け入れ基準と優先度を付与する。a-002a(MVP スコープ)の後、a-003(シナリオ)の前に実行。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineUserStories (a-002b)
9
+
10
+ ## 目的
11
+
12
+ - MVP スコープで Must と判定した機能を、ユーザー視点のストーリー([役割]として[目的]がしたい、なぜなら[価値]だから)に翻訳する。
13
+ - 各ストーリーに要約レベルの受け入れ基準(AC)と優先度を付与し、後続の Core Scenarios(a-003)の入力にする。
14
+ - 実行順は a-002a(MVP スコープ)の後、a-003(シナリオ)の前。
15
+
16
+ ## 前提
17
+
18
+ - `docs/project/01-requirements/01-product-brief.md` と `02-mvp-scope.md` が作成されていること(なければ先に `/a-002-initialize-project` → `/a-002a-slice-mvp-scope` を実行)。
19
+ - Must 機能が `02-mvp-scope.md` に確定していること。
20
+
21
+ ## 手順
22
+
23
+ ### 1. 前提の確認
24
+
25
+ ```bash
26
+ ls -l docs/project/01-requirements/01-product-brief.md docs/project/01-requirements/02-mvp-scope.md 2>/dev/null \
27
+ || echo "MISSING: 01-product-brief.md または 02-mvp-scope.md"
28
+ ```
29
+
30
+ 不足時: 「先に `/a-002-initialize-project`(Product Brief)→ `/a-002a-slice-mvp-scope`(MVP スコープ)を実行してください。」と促して中断。
31
+
32
+ ### 2. テンプレートの準備
33
+
34
+ このスキルの配置ディレクトリ(`skills/a-002b-define-user-stories/`)を起点に、`../../templates/project/01-requirements/05-user-stories.md` を Read→Write で `docs/project/01-requirements/05-user-stories.md` へコピーする。出力先に既に存在する場合は上書きせずスキップして報告する(冪等)。
35
+
36
+ ### 3. ストーリーの抽出と記入
37
+
38
+ `01-product-brief.md`(ターゲットユーザー・価値提案)と `02-mvp-scope.md`(Must 機能)を読み込み、Must 機能ごとに主要ユーザージャーニーを抽出する。
39
+
40
+ FOR EACH 主要ジャーニー: `05-user-stories.md` のテーブルに記入する。
41
+
42
+ - テンプレート: 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
43
+ - **ペルソナ列を必ず埋める**: `01-product-brief.md` の「ターゲットユーザー / 主要ペルソナ」表の ID(P-XXX)を「ペルソナ」列に記入し、ストーリーの `[役割]` を**その ID のペルソナと一致**させる(役割が宙に浮かないようにする)。
44
+ - **役割が既存ペルソナに無い場合**: 勝手に新しい役割を増やさず、`01-product-brief.md` のペルソナ表に追加してから参照する(ペルソナの SSoT は Product Brief)。
45
+ - ヒアリング: 「他に主要なユーザージャーニーがあれば教えてください」「各ストーリーの優先度・受け入れ基準は?」
46
+ - **Must 機能に紐づかないストーリーは作らない**(スコープ外。Parking Lot / Won't に倒す)。
47
+
48
+ > ストーリーの書き方・INVEST・受け入れ基準(AC)・優先度付け・3C の詳細は [reference/user-stories-guide.md](reference/user-stories-guide.md) を参照。
49
+
50
+ ### 4. SSoT の住み分け確認
51
+
52
+ User Story は**要約レベルの受け入れ基準(AC)**を担い、実行時の主要行動は次スキル `/a-003-create-scenarios` の Core Scenario が担う。同じ振る舞いを二重に Gherkin 化しない。
53
+
54
+ ### 5. レビューと構造チェック
55
+
56
+ ユーザーにストーリー一覧を提示し、INVEST(独立・交渉可能・価値・見積可能・小さい・テスト可能)の観点で確認する。
57
+
58
+ ```bash
59
+ grep "| ストーリーID | ペルソナ | ストーリー |" docs/project/01-requirements/05-user-stories.md \
60
+ && echo "OK" || echo "MISSING: Table Header"
61
+ ```
62
+
63
+ ## 完了条件
64
+
65
+ - `docs/project/01-requirements/05-user-stories.md` が作成され、各ストーリーに役割・目的・価値・優先度・受け入れ基準が記入されている。
66
+ - 各ストーリーの「ペルソナ」列が `01-product-brief.md` のペルソナ表の ID(P-XXX)を参照し、`[役割]` がその記載と一致している(役割が宙に浮いていない)。
67
+ - すべてのストーリーが `02-mvp-scope.md` の Must 機能に紐づいている。
68
+ - ユーザーがストーリー内容を確認し、承認またはフィードバックを提供している。
69
+
70
+ ## エスカレーション
71
+
72
+ - **Must に紐づかないストーリーが出る**: 「このストーリーは MVP の Must 機能に対応しません。Parking Lot へ回すか、スコープを見直しますか?」と確認。
73
+ - **役割に対応するペルソナが Product Brief に無い**: 「この役割は `01-product-brief.md` のペルソナ表にありません。新しいペルソナとして追加しますか?それとも既存ペルソナに寄せますか?」と確認し、ストーリー側で役割を勝手に増やさない。
74
+ - **AC が曖昧**: 「『正しく動く』では検証できません。観測可能な条件(〜が表示される / 〜が保存される)で書けますか?」と促す。
75
+
76
+ ## 参考
77
+
78
+ - [reference/user-stories-guide.md](reference/user-stories-guide.md) — INVEST・受け入れ基準・優先度付け・3C の詳しい考え方
79
+ - `01-product-brief.md` — ターゲットユーザー・価値提案の参照元
80
+ - `02-mvp-scope.md` — Must 機能の参照元
@@ -0,0 +1,78 @@
1
+ # ユーザーストーリー作成ガイド
2
+
3
+ `05-user-stories.md` を書くときの原則・フォーマット・ベストプラクティス集。テンプレートは記入欄中心に保ち、
4
+ 詳しい考え方が必要なときに本ガイドを参照する。
5
+
6
+ ## ユーザーストーリーとは
7
+
8
+ ユーザー視点の機能要求を物語形式で記述したバックログ。詳細仕様ではなく**議論の出発点(会話のきっかけ)**として機能する。
9
+
10
+ - **目的**: ユーザーの課題とニーズの明確化 / 開発チームとステークホルダーの共通理解 / 開発優先度の判断材料 / スプリント計画の基礎資料。
11
+ - **特徴**: 実装方法ではなくユーザーの「なぜ」に焦点。継続的に追加・更新・削除される Living Document。
12
+
13
+ ## INVEST 原則
14
+
15
+ 良いストーリーの 6 条件。
16
+
17
+ - **Independent(独立)**: 他ストーリーへの依存が少ない
18
+ - **Negotiable(交渉可能)**: 詳細は会話で詰められる余地がある
19
+ - **Valuable(価値)**: ユーザー/ビジネスに価値がある
20
+ - **Estimable(見積可能)**: 規模を見積もれる
21
+ - **Small(小さい)**: 1〜2 週間のスプリントで完了できるサイズ
22
+ - **Testable(テスト可能)**: 完了を検証できる
23
+
24
+ 記載粒度: 大きすぎる場合は Epic として分割、小さすぎる場合は他ストーリーと統合を検討する。
25
+
26
+ ## ストーリーのフォーマット
27
+
28
+ 標準: 「**[役割]として、[目的]がしたい、なぜなら[理由]**」(英: "As a [role], I want [goal] so that [benefit]")。
29
+
30
+ - **役割(Who)**: ユーザーの種類やペルソナ(例: 新入社員 / 管理者 / エンドユーザー)。`01-product-brief.md` のペルソナ表の ID(P-XXX)を「ペルソナ」列で参照し、役割名をその記載と一致させる(役割を宙に浮かせない)。該当ペルソナが無ければ Product Brief 側に追加する。
31
+ - **目的(What)**: 実現したい機能や行動(例: プロフィールを編集したい)
32
+ - **理由(Why)**: その機能が必要な理由・得られる価値(例: 自分の情報を最新に保つため)
33
+
34
+ 書き方のコツ: 技術用語を避けユーザーの言葉で書く / 実装方法(How)ではなく目的(What・Why)に集中 / 1 ストーリー 1 価値 / 曖昧さを避け具体的に。
35
+
36
+ ## 受け入れ基準(Acceptance Criteria)
37
+
38
+ ストーリーが「完了」と判断できる明確な基準。測定可能・テスト可能・Yes/No で判定可能であること。
39
+
40
+ **フォーマット1: Given-When-Then(BDD 形式)**
41
+
42
+ ```
43
+ Given [前提条件]
44
+ When [アクション]
45
+ Then [期待される結果]
46
+ ```
47
+
48
+ 例: `Given ログイン済みユーザーが自分のプロフィールページにいる時 / When 「編集」して保存すると / Then 変更後の名前が表示される`
49
+
50
+ **フォーマット2: チェックリスト形式**
51
+
52
+ - [ ] ユーザーは名前・メール・画像を編集できる
53
+ - [ ] 保存時にバリデーションエラーが表示される
54
+
55
+ 書き方のベストプラクティス: 最低 1 個、通常 3〜7 個 / UI の細かい仕様ではなくビジネス価値の検証に焦点 / 「意図」を書き「実装方法」は書かない / 開発者とテスターが明確にテストできる内容にする。
56
+
57
+ ## 優先度
58
+
59
+ 開発順序の判断材料。一般的な分類:
60
+
61
+ - **High**: 必須機能、ビジネス価値が高い、依存が多い
62
+ - **Medium**: 重要だが緊急ではない、代替手段がある
63
+ - **Low**: あると良い、将来検討
64
+
65
+ 考慮要素: ビジネス価値 / 緊急性 / リスク / 工数(ROI)/ 依存関係。
66
+
67
+ 注意: 優先度は変動する(定期見直し)。すべてが High になる状況を避け、真の優先順位をつける。最終決定権はプロダクトオーナー。
68
+
69
+ > MVP の取捨選択(Must / Not Now / Won't)と検証仮説への紐づけは `/a-002a-slice-mvp-scope`(`02-mvp-scope.md`)が担う。
70
+ > 本ガイドの「優先度」は実装順の目安であり、MVP スコープ判断とは役割を分ける。
71
+
72
+ ## 全体のベストプラクティス
73
+
74
+ - **3C 原則**: Card(カード)/ Conversation(会話)/ Confirmation(確認)。
75
+ - ストーリーはチーム全員(PO・開発・デザイナー・QA)で作成する。
76
+ - 定期的なリファインメントで詳細化・分割・統合する。
77
+ - 完了の定義(DoD)を明確にする。実装後のフィードバックを次のストーリーに反映する。
78
+ - テクニカルストーリー(リファクタリング・技術的負債解消)も含めてよい。
@@ -1,96 +1,97 @@
1
- ---
2
- name: a-003-create-scenarios
3
- description: ユーザーストーリーから Gherkin 形式のシナリオを生成し、BDD で振る舞いを定義する。要件定義後、ドメインモデル設計前の振る舞い明確化に使用。
4
- disable-model-invocation: true
5
- allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
- ---
7
-
8
- # CreateScenarios (a-003)
9
-
10
- ## 目的
11
-
12
- - ユーザーストーリーから具体的なシナリオ(振る舞い)を抽出し、Gherkin 形式で記述する。
13
- - Given-When-Then 構造で、開発者・QA・ステークホルダーが共通理解できる実行可能なドキュメントを作成する。
14
- - ハッピーパス(正常系)からエラーケース、境界値テストまでを網羅的に定義する。
15
-
16
- ## 前提
17
-
18
- - `docs/project/01-requirements/05-user-stories.md` が作成されていること(`/a-002-initialize-project` 実行済み)。
19
- - `docs/project/02-behavior/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
20
- - ユーザーが各機能の具体的な動作例を説明できること。
21
-
22
- ## 手順
23
-
24
- ### 1. ディレクトリと前提条件の確認
25
-
26
- ```bash
27
- ls -la docs/project/02-behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
28
- ```
29
-
30
- `docs/project/01-requirements/05-user-stories.md` を読み込み、シナリオ化対象を把握する。
31
-
32
- ### 2. テンプレートの準備
33
-
34
- このスキルの配置ディレクトリ(`skills/a-003-create-scenarios/`)を起点に、相対パス `../../templates/project/02-behavior/01-scenarios.md` を Read で読み込み、その内容を `docs/project/02-behavior/01-scenarios.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/02-behavior/`)が無ければ作成する。
35
-
36
- ### 3. 分析と提案
37
-
38
- ユーザーストーリーを機能(Feature)単位にグルーピングし、ハッピーパスと代表的なエラーケースの案を提示。
39
-
40
- - 「機能: [機能名] (US-XXX)」
41
- - 「シナリオ案1: [ハッピーパス] / シナリオ案2: [エラーケース]」
42
-
43
- ### 4. ヒアリングと記入
44
-
45
- 機能ごとに以下を詰めて `docs/project/02-behavior/01-scenarios.md` を更新する。Gherkin 記述例は [examples/gherkin-templates.md](examples/gherkin-templates.md) を参照。
46
-
47
- - **Feature 情報**: 機能名、As a/I want/So that、Background(共通前提)
48
- - **ハッピーパス**: Given-When-Then で最も基本的な成功シナリオ
49
- - **エラーケース・境界値**: 必要に応じて Scenario Outline(Examples テーブル)を使用
50
- - **タグ付け**: `@SC-XXX` ID 採番、`@smoke` `@happy-path` `@error-handling`
51
-
52
- UI 操作の詳細ではなく、ユーザーの意図を記述するよう注意する。
53
-
54
- ### 5. シナリオ一覧テーブルの更新
55
-
56
- ドキュメント冒頭の一覧テーブルに、全シナリオの ID・機能・シナリオ名・優先度を記載する。テーブル例は [examples/gherkin-templates.md](examples/gherkin-templates.md#シナリオ一覧テーブル例) を参照。
57
-
58
- ### 6. レビューと確認
59
-
60
- ユーザーに提示し、実際の動作の正確性、抜け漏れ、非技術者への理解可能性を確認する。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。
61
-
62
- ### 7. 構造チェック
63
-
64
- ```bash
65
- grep "Feature:" docs/project/02-behavior/01-scenarios.md \
66
- && grep "Scenario:" docs/project/02-behavior/01-scenarios.md \
67
- && echo "OK" || echo "MISSING SECTION"
68
- ```
69
-
70
- 詳細なチェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
71
-
72
- ### 8. Git への追加(任意)
73
-
74
- ```bash
75
- git add docs/project/02-behavior/
76
- git commit -m "docs: 振る舞い仕様(シナリオ)の作成"
77
- ```
78
-
79
- 詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加任意) を参照。
80
-
81
- ## 完了条件
82
-
83
- - `docs/project/02-behavior/01-scenarios.md` が作成されている。
84
- - ユーザーストーリーに対応する具体的なシナリオ(Given-When-Then)が記述されている。
85
- - シナリオ一覧テーブルがメンテナンスされている。
86
- - ユーザーが内容を承認している。
87
-
88
- ## エスカレーション
89
-
90
- - **ユーザーストーリーが不明確でシナリオ化できない**: 「`/a-002-initialize-project` に戻って要件を明確にしましょう。」
91
- - **実装詳細への依存が強すぎる**: 「UI 操作(ボタンクリック等)ではなく、ユーザーの意図(登録する等)に焦点を当てた記述に変更しましょう。」
92
-
93
- ## 参考
94
-
95
- - [examples/gherkin-templates.md](examples/gherkin-templates.md) — Feature / Scenario / Scenario Outline の記述例、タグ付けガイド、一覧テーブル例
96
- - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、Git 追加例
1
+ ---
2
+ name: a-003-create-scenarios
3
+ description: MVP Scope の Must 機能から「価値提供が成立する最小行動(Core Scenarios)」を定義する。Day 1 の成功体験・価値を壊す重大失敗・MVP で対応しない範囲を固定する。詳細な Gherkin は任意。要件定義後、ドメイン設計前の振る舞い明確化に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # CreateScenarios (a-003)
9
+
10
+ ## 目的
11
+
12
+ - MVP Scope の Must 機能から、価値提供が成立する**最小の主要行動**を Core Scenarios として定義する。
13
+ - Day 1 に必ず通る成功体験(Happy Path 1〜3 本)と、価値を壊す重大失敗(Critical Failure)を固定する。
14
+ - MVP で対応しない行動・エラー(Not Covered in MVP)を明示し、スコープ膨張を防ぐ。
15
+ - 全ケース網羅の BDD(ハッピー / エラー / 境界値)は目的としない。詳細 Gherkin は実装直前・テスト設計時の任意作業に降格する。
16
+
17
+ ## 前提
18
+
19
+ - `docs/project/01-requirements/01-product-brief.md` / `02-mvp-scope.md` / `05-user-stories.md` が作成されていること(`/a-002-initialize-project` → `/a-002a-slice-mvp-scope` → `/a-002b-define-user-stories` 実行済み)。
20
+ - `docs/project/02-behavior/` ディレクトリが存在すること(未作成なら本スキルが作成する)。
21
+ - ユーザーが Must 機能の主要な利用シーンを説明できること。
22
+
23
+ ## 手順
24
+
25
+ ### 1. 前提ドキュメントの確認
26
+
27
+ ```bash
28
+ ls -la docs/project/02-behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
29
+ ```
30
+
31
+ `02-mvp-scope.md` の **Must 機能**と `01-product-brief.md` の成功指標・クリティカル制約を読み込み、Core Scenario 化の対象(Must のみ)を把握する。Not Now / Won't は対象にしない。
32
+
33
+ ### 2. テンプレートの準備
34
+
35
+ このスキルの配置ディレクトリ(`skills/a-003-create-scenarios/`)を起点に、相対パス `../../templates/project/02-behavior/01-core-scenarios.md` を Read で読み込み、その内容を `docs/project/02-behavior/01-core-scenarios.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/02-behavior/`)が無ければ作成する。
36
+
37
+ ### 3. Core Flow の抽出と提案
38
+
39
+ Must 機能から、価値が成立する中核行動の流れ(Core Flow)を 1〜3 本提案する。各フローは「主アクター / 提供価値(So that)/ 対応 Must」で一覧化する。
40
+
41
+ - 「フロー: [フロー名](対応 Must: FN-XXX)」
42
+ - 「主アクター: [誰] / 提供価値: [So that ...]」
43
+
44
+ ### 4. Day 1 Happy Path と Critical Failure の記入
45
+
46
+ `01-core-scenarios.md` を更新する。ユーザーの意図を Given-When-Then で簡潔に書き、UI 操作の詳細には踏み込まない。
47
+
48
+ - **Day 1 Happy Path**(CS-XXX, 1〜3 本): リリース初日に必ず通る成功シナリオ。
49
+ - **Critical Failure**(CF-XXX): 起きると MVP の価値が崩れる失敗だけ(法務・課金・権限・データ消失など)。各失敗に「MVP での扱い」を書く。
50
+ - 網羅したくなったら止める。詳細な境界値・エラー網羅は任意で [reference/detailed-gherkin-template.md](reference/detailed-gherkin-template.md) を使う。
51
+
52
+ ### 5. Not Covered in MVP と SSoT の整合
53
+
54
+ - **Not Covered in MVP**: MVP で対応しない行動・エラーを明示し、`02-mvp-scope.md` の Not Now / Won't と整合させる。
55
+ - **SSoT の住み分け**: User Story(`05-user-stories.md`)は要約レベルの受け入れ基準(AC)、Core Scenario は実行時の主要行動。同じ振る舞いを二重に詳細化しない。
56
+
57
+ ### 6. レビューと確認
58
+
59
+ ユーザーに提示し、(1) Day 1 の成功体験が正しいか、(2) Critical Failure に漏れがないか、(3) Not Covered が MVP Scope と矛盾しないかを確認する。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。
60
+
61
+ ### 7. 構造チェック
62
+
63
+ ```bash
64
+ grep "## Day 1 Happy Path" docs/project/02-behavior/01-core-scenarios.md \
65
+ && grep "## Critical Failure" docs/project/02-behavior/01-core-scenarios.md \
66
+ && grep "## Not Covered in MVP" docs/project/02-behavior/01-core-scenarios.md \
67
+ && echo "OK" || echo "MISSING SECTION"
68
+ ```
69
+
70
+ 詳細なチェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
71
+
72
+ ### 8. Git への追加(任意)
73
+
74
+ ```bash
75
+ git add docs/project/02-behavior/
76
+ git commit -m "docs: Core Scenarios(MVP 主要行動)の作成"
77
+ ```
78
+
79
+ ## 完了条件
80
+
81
+ - `docs/project/02-behavior/01-core-scenarios.md` が作成されている。
82
+ - Must 機能に対する Day 1 Happy Path(1〜3 本)と Critical Failure が記述されている。
83
+ - Not Covered in MVP が明示され、`02-mvp-scope.md` の Not Now / Won't と整合している。
84
+ - User Story と Core Scenario の二重管理が避けられている(要約 AC ↔ 実行時主要行動)。
85
+ - ユーザーが内容を承認している。
86
+
87
+ ## エスカレーション
88
+
89
+ - **MVP Scope が未確定でシナリオ化できない**: 「`/a-002a-slice-mvp-scope` に戻って Must 機能を確定しましょう。」
90
+ - **全ケースを網羅したくなる**: 「MVP 初期は網羅不要です。価値を壊す Critical Failure に限定し、残りは Not Covered in MVP へ逃がしましょう。詳細 Gherkin はテスト設計時に任意で作成できます。」
91
+ - **実装詳細への依存が強すぎる**: 「UI 操作(ボタンクリック等)ではなくユーザーの意図(登録する等)に焦点を当てた記述に変更しましょう。」
92
+
93
+ ## 参考
94
+
95
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、Git 追加例
96
+ - [reference/detailed-gherkin-template.md](reference/detailed-gherkin-template.md) — (任意)詳細な Gherkin / Scenario Outline / タグ運用テンプレート。実装直前・テスト設計時に使用
97
+ - [examples/gherkin-templates.md](examples/gherkin-templates.md) — (任意)Feature / Scenario / Scenario Outline の記述例、タグ付けガイド