yodogawa 2.0.0 → 2.1.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 (75) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +60 -22
  3. package/bin/cli.js +3 -7
  4. package/package.json +1 -1
  5. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  6. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
  7. package/skills/a-002-initialize-project/SKILL.md +124 -289
  8. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  9. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  10. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  11. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  12. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  13. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  14. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  15. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  16. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  17. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  18. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  19. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  20. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  21. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  22. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  23. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  24. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  25. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  26. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  27. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  28. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  29. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  30. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  31. package/skills/a-010-define-design-system/SKILL.md +134 -212
  32. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  33. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  34. package/skills/a-011-define-data-model/SKILL.md +121 -134
  35. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  36. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  37. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  38. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  39. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  40. package/skills/a-013-define-architecture/SKILL.md +101 -128
  41. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  42. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  43. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  44. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  45. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  46. package/skills/a-015-review-design/SKILL.md +88 -140
  47. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  48. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  49. package/skills/b-001-create-task-directory/SKILL.md +68 -78
  50. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  51. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  52. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  53. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  54. package/skills/b-003-create-task-research/SKILL.md +130 -454
  55. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  56. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  57. package/skills/b-004-create-task-implementation/SKILL.md +97 -100
  58. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  59. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  60. package/skills/b-005-review-task/SKILL.md +117 -324
  61. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  62. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  63. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  64. package/skills/c-001-implement-task/SKILL.md +186 -521
  65. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  66. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  67. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  68. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  69. package/skills/c-002-update-documentation/SKILL.md +159 -853
  70. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  71. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  72. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  73. package/templates/tasks/task-template/a-definition.md +1 -1
  74. package/templates/tasks/task-template/b-research.md +1 -1
  75. package/templates/tasks/task-template/c-implementation.md +2 -2
@@ -1,289 +1,124 @@
1
- ---
2
- name: a-002-initialize-project
3
- description: プロジェクトのシステム概要・機能要件・非機能要件・ユーザーストーリーを体系的にヒアリングし、詳細なドキュメントを作成するワークフロー
4
- auto_execution_mode: 1
5
- ---
6
-
7
- # InitializeProject (a-002)
8
-
9
- ## 目的
10
-
11
- - プロジェクトの目的・背景・機能要件を詳細にヒアリングし、具体的で実装可能なドキュメントを作成する。
12
- - システム概要・実装済み機能・予定機能・非機能要件・ユーザーストーリーを網羅する。
13
- - 抽象的・曖昧な表現を避け、ユーザーとの対話を通じて具体的な数値・期限・制約・優先度を明確化する。
14
- - 後続の設計・実装フェーズで参照できる、チーム全体が理解できる要件定義書を整備する。
15
-
16
- ## 前提
17
-
18
- - `docs/project/requirements/` ディレクトリが存在すること(存在しない場合は先に `SetupDocStructure` (a-001) ワークフローを実行)。
19
- - プロジェクトリポジトリの `docs/` ディレクトリに書き込み権限があること。
20
- - ユーザーがプロジェクトの概要と主要な機能について基本的な情報を提供できること。
21
-
22
- ## 手順
23
-
24
- ### 1. ドキュメントディレクトリの確認
25
-
26
- - `docs/project/requirements/` ディレクトリの存在を確認:
27
-
28
- ```bash
29
- ls -la docs/project/requirements/ 2>/dev/null || echo "ディレクトリが存在しません"
30
- ```
31
-
32
- - ディレクトリが存在しない場合:
33
- - ユーザーに通知:「`docs/project/requirements/` ディレクトリが見つかりません。先に `SetupDocStructure` (a-001) を実行してディレクトリ構造を作成してください。」
34
-
35
- ### 2. コードベースの自動分析と提案
36
-
37
- 1. **コードベースの規模確認**:
38
-
39
- - プロジェクトのルートにあるファイルやディレクトリを確認する。
40
-
41
- ```bash
42
- ls -F
43
- ```
44
-
45
- - **スキップ判断**:
46
- - ファイルがほとんど存在しない(例: `.git` ディレクトリのみ、あるいは `README.md` だけなど)、または有意なソースコードが見当たらない場合は、このステップをスキップする。
47
- - スキップする場合、ユーザーに「コードベースが空、または十分な情報がないため、自動分析をスキップします。」と通知し、次のステップへ進む。
48
-
49
- 2. **詳細調査と分析(コードが存在する場合)**:
50
- - `README.md`, `package.json`, および主要なソースコードを読み込む。
51
-
52
- ```bash
53
- cat package.json 2>/dev/null
54
- cat README.md 2>/dev/null
55
- find src app lib -maxdepth 2 2>/dev/null
56
- ```
57
-
58
- - 読み込んだ情報を基に、以下の内容を分析・推測し、ユーザーに提示する。
59
- - **システム概要**: プロジェクトの目的、主要な技術スタック。
60
- - **実装済み機能**: ファイル構造やコードから推測される機能。
61
- - **ユーザーストーリー**: 想定されるユーザー像と利用シーン。
62
- - この分析結果は、後続のステップ(システム概要の作成、機能一覧の作成など)の基礎情報として活用する。
63
-
64
- ### 3. システム概要の作成
65
-
66
- 1. **テンプレートの準備**:
67
-
68
- ```bash
69
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
70
- cp "$SCRIPT_DIR/templates/project/01-requirements/01-system-overview.md" "docs/project/requirements/01-system-overview.md"
71
- ```
72
-
73
- 2. **ヒアリングと記入**:
74
- 以下の質問を行い、その回答で `docs/project/requirements/01-system-overview.md` を更新する。
75
-
76
- #### 背景
77
-
78
- - 「このシステムで解決しようとしている**具体的な問題や課題**は何ですか?」
79
- - 「その問題はなぜ重要ですか?放置した場合のリスクは?」
80
- - 「問題の影響を受けるステークホルダー(ユーザー、組織、チームなど)は誰ですか?」
81
- - 「具体的な数値やデータ(例:作業時間、コスト、離脱率など)があれば教えてください。」
82
-
83
- #### 目的
84
-
85
- - 「このシステムが提供する**具体的な価値や解決策**は何ですか?」
86
- - 「期待される成果や変化を、測定可能な形で表現できますか?(例:作業時間 50%削減)」
87
- - 「どのように問題を解決するか、具体的なメカニズムや仕組みを教えてください。」
88
-
89
- ### 4. 実装済み機能一覧の作成
90
-
91
- 1. **テンプレートの準備**:
92
-
93
- ```bash
94
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
95
- cp "$SCRIPT_DIR/templates/project/01-requirements/02-features-implemented.md" "docs/project/requirements/02-features-implemented.md"
96
- ```
97
-
98
- 2. **コードベースの調査と提案**:
99
-
100
- - プロジェクト内のソースコードを簡易検索し、実装済みの兆候を探す。
101
-
102
- ```bash
103
- # 主要なソースディレクトリの構造を確認(例)
104
- find src app lib -maxdepth 2 -type d 2>/dev/null
105
- # 特徴的なファイル名を検索
106
- find . -type f -name "*Controller*" -o -name "*Service*" -o -name "*Component*" | head -n 20
107
- ```
108
-
109
- - 検出されたディレクトリ名やファイル名から機能を推測し、ユーザーに提案する。
110
- - 「`src/auth` ディレクトリが見つかりました。認証機能(ログイン、登録など)は実装済みですか?」
111
- - 「`PaymentController` があります。決済機能は稼働していますか?」
112
-
113
- 3. **ヒアリングと記入**:
114
- 提案内容へのフィードバックを含め、以下の質問を行う。回答をテーブル形式で `docs/project/requirements/02-features-implemented.md` に記入する(該当なしの場合は「なし」と記載)。
115
-
116
- - 「既に実装済みの機能はありますか?(提案した機能含む)ある場合、以下の情報を教えてください:」
117
- - **Category 1**(大分類:ユーザー管理、コンテンツなど)
118
- - **Category 2**(中分類:認証、プロフィールなど)
119
- - **機能名**(ユーザー視点の名称)
120
- - **説明**(何ができるか)
121
- - **機能 ID**(FN-XXX 形式、連番)
122
-
123
- ### 5. 予定機能一覧の作成
124
-
125
- 1. **テンプレートの準備**:
126
-
127
- ```bash
128
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
129
- cp "$SCRIPT_DIR/templates/project/01-requirements/03-features-planned.md" "docs/project/requirements/03-features-planned.md"
130
- ```
131
-
132
- 2. **要件ギャップ分析と提案**:
133
-
134
- - 「システム概要」で確認した目的・スコープと、「実装済み機能」の差分を分析する。
135
- - 未実装と思われる主要機能をリストアップし、ユーザーに提案する。
136
- - 「システム概要で『〇〇機能』への言及がありましたが、まだ実装されていないようです。これを予定機能に追加しますか?」
137
- - 「現在の実装には『××』が含まれていますが、これに関連する『△△ 機能』は将来的に必要になりますか?」
138
-
139
- 3. **ヒアリングと記入**:
140
- 提案内容へのフィードバックを含め、以下の質問を行う。回答をテーブル形式で `docs/project/requirements/03-features-planned.md` に記入する。
141
-
142
- - 「今後実装予定の機能をリストアップしてください(提案した機能含む)。各機能について以下を明確にします:」
143
-
144
- - **Category 1**(大分類)
145
- - **Category 2**(中分類)
146
- - **機能名**(アイデア段階でも可)
147
- - **説明**(目的や価値を中心に)
148
-
149
- ※テンプレートの方針に従い、**機能 ID**や**優先度**はこの段階では確定させず、柔軟性を重視して記載しない。
150
-
151
- ### 6. 非機能要件一覧の作成
152
-
153
- 1. **テンプレートの準備**:
154
-
155
- ```bash
156
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
157
- cp "$SCRIPT_DIR/templates/project/01-requirements/04-non-functional-requirements.md" "docs/project/requirements/04-non-functional-requirements.md"
158
- ```
159
-
160
- 2. **必要性の確認と標準提案**:
161
-
162
- - ユーザーに定義の必要性を確認する:
163
-
164
- - 「現段階で非機能要件(パフォーマンス、セキュリティなど)を詳細に定義する必要がありますか?『標準的な設定』で仮置きして後で調整することも可能です。」
165
-
166
- - 必要または仮置きの場合、一般的なベストプラクティスを提案する:
167
- - 「Web アプリケーションの標準的な目標値として、以下を提案します。これで問題ないか確認してください:」
168
- - **パフォーマンス**: ページ読み込み 3 秒以内、API 応答 500ms 以内
169
- - **セキュリティ**: HTTPS 必須、パスワードはハッシュ化、基本認証/OAuth
170
- - **可用性**: 日次バックアップ、稼働率 99.5%(平日日中)
171
-
172
- 3. **ヒアリングと記入**:
173
- 提案内容への合意、または独自の要件がある場合、以下の観点で**定量的な目標**を確認し、回答で `docs/project/requirements/04-non-functional-requirements.md` の各テーブルを更新する。
174
-
175
- #### パフォーマンス
176
-
177
- - 「ページ読み込み時間の目標は?」
178
- - 「API レスポンス時間の目標は?」
179
- - 「想定される同時接続ユーザー数、データ量は?」
180
-
181
- #### セキュリティ
182
-
183
- - 「認証方式、機密データの扱い、コンプライアンス要件は?」
184
-
185
- #### 可用性・信頼性
186
-
187
- - 「稼働率目標、許容ダウンタイム、バックアップ要件は?」
188
-
189
- #### スケーラビリティ
190
-
191
- - 「ユーザー数の成長予測、ピーク時のトラフィック想定は?」
192
-
193
- #### ユーザビリティ・保守性
194
-
195
- - 「アクセシビリティ、対応言語、デバイス、ブラウザは?」
196
- - 「ログ・監視要件、デプロイ頻度は?」
197
-
198
- ### 7. ユーザーストーリーの作成
199
-
200
- 1. **テンプレートの準備**:
201
-
202
- ```bash
203
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
204
- cp "$SCRIPT_DIR/templates/project/01-requirements/05-user-stories.md" "docs/project/requirements/05-user-stories.md"
205
- ```
206
-
207
- 2. **分析と提案**:
208
-
209
- - ここまで作成した「システム概要」「機能一覧(実装済み/予定)」を分析し、主要なユーザージャーニーを抽出する。
210
- - ユーザーに代表的なストーリーを提案する:
211
- - 「『〇〇機能』に基づき、以下のストーリーが考えられますが、いかがでしょうか?」
212
- - 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
213
-
214
- 3. **ヒアリングと記入**:
215
- 提案内容へのフィードバックを含め、以下の質問を行う。回答をテーブル形式で `docs/project/requirements/05-user-stories.md` に記入する。
216
-
217
- - 「他に主要なユーザージャーニーがあれば教えてください([役割]として、[目的]がしたい、なぜなら[理由])。」
218
- - 各ストーリーの優先度、受け入れ基準を確認する。
219
-
220
- ### 8. 全体レビュー
221
-
222
- - 作成した全てのドキュメントをユーザーに提示し、内容の正確性を確認する。
223
- - 「記載内容に誤りや漏れはありませんか?」
224
- - 「抽象的すぎる記述や、後で解釈が分かれそうな表現はありますか?」
225
- - 「テンプレートのコメントや不要な例示は適切に処理(残す/削除)されていますか?」
226
-
227
- ### 9. 完了条件と構造の確認
228
-
229
- - 以下の完了条件を満たしていて、且つドキュメントの構造が適切であることを確認します。
230
-
231
- 1. **ファイルの存在と構造確認**:
232
- 各ファイルが存在し、テンプレートの主要な構造(見出しやテーブル)が維持されているか検証する。
233
-
234
- ```bash
235
- # 01-system-overview.md: 主要セクションの確認
236
- grep "## 背景" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
237
- grep "## 目的" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
238
-
239
- # 02-features-implemented.md: テーブルヘッダーの確認
240
- grep "| 機能ID | Category 1 |" docs/project/requirements/02-features-implemented.md && echo "OK" || echo "MISSING: Table Header"
241
-
242
- # 03-features-planned.md: テーブルヘッダーの確認
243
- grep "| Category 1 | Category 2 |" docs/project/requirements/03-features-planned.md && echo "OK" || echo "MISSING: Table Header"
244
-
245
- # 04-non-functional-requirements.md: テーブルヘッダーの確認
246
- grep "| カテゴリ | 要件 |" docs/project/requirements/04-non-functional-requirements.md && echo "OK" || echo "MISSING: Table Header"
247
-
248
- # 05-user-stories.md: テーブルヘッダーの確認
249
- grep "| ストーリーID | ストーリー |" docs/project/requirements/05-user-stories.md && echo "OK" || echo "MISSING: Table Header"
250
- ```
251
-
252
- 2. **チェックリスト**:
253
- - [ ] すべてのファイルが存在する
254
- - [ ] 各ファイルがテンプレートの基本構造を維持していて、主要なセクションやテーブルが適切に記載されている
255
- - [ ] プレースホルダーが適切な内容に置き換わっていいる
256
-
257
- ### 10. Git への追加(オプション)
258
-
259
- - ユーザーに確認:「作成した要件定義ドキュメントを Git に追加しますか?」
260
- - 「はい」の場合、以下を実行:
261
-
262
- ```bash
263
- git add docs/project/requirements/
264
- git status
265
- ```
266
-
267
- - Git status の結果を表示し、コミットメッセージの提案をする:
268
-
269
- ```
270
- 推奨コミットメッセージ:
271
- docs: 要件定義ドキュメントの作成
272
-
273
- - システム概要、機能要件、非機能要件、ユーザーストーリーを追加
274
- ```
275
-
276
- ## 完了条件
277
-
278
- - `docs/project/requirements/` 配下に一連の要件定義ドキュメントが作成されている。
279
- - すべてのドキュメントで抽象的な表現が最小化され、具体的な数値・期限・制約が記載されている。
280
- - ユーザーがドキュメント内容を確認し、承認またはフィードバックを提供している。
281
-
282
- ## エスカレーション
283
-
284
- - ユーザーが重要な情報を提供できない場合:
285
- - 「この情報は後続の設計・実装で必須です。確認できる担当者や資料はありますか?」と確認し、TODO として記録する。
286
- - 競合する要件や矛盾が発見された場合:
287
- - 「以下の要件が競合しています:[詳細]。優先順位や調整方針を確認させてください。」と報告する。
288
- - 想定工数が非現実的に大きい場合:
289
- - 「現在の計画では実現が困難です。スコープ縮小や優先度調整を検討しませんか?」と提案する。
1
+ ---
2
+ name: a-002-initialize-project
3
+ description: プロジェクトの要件を対話形式で収集し、システム概要・機能要件・非機能要件・ユーザーストーリーのドキュメントを生成する。新規プロジェクト開始時、または要件が未整備の場合に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # InitializeProject (a-002)
9
+
10
+ ## 目的
11
+
12
+ - プロジェクトの目的・背景・機能要件を詳細にヒアリングし、具体的で実装可能なドキュメントを作成する。
13
+ - システム概要・実装済み機能・予定機能・非機能要件・ユーザーストーリーを網羅する。
14
+ - 抽象的・曖昧な表現を避け、対話を通じて具体的な数値・期限・制約・優先度を明確化する。
15
+
16
+ ## 前提
17
+
18
+ - `docs/project/requirements/` ディレクトリが存在すること(なければ先に `/a-001-setup-doc-structure` を実行)
19
+ - `docs/` に書き込み権限があること
20
+ - ユーザーがプロジェクト概要と主要機能の基本情報を提供できること
21
+
22
+ ## 手順
23
+
24
+ ### 1. ドキュメントディレクトリの確認
25
+
26
+ ```bash
27
+ ls -la docs/project/requirements/ 2>/dev/null || echo "ディレクトリが存在しません"
28
+ ```
29
+
30
+ 存在しない場合: 「`docs/project/requirements/` がありません。先に `/a-001-setup-doc-structure` を実行してください。」
31
+
32
+ ### 2. コードベースの自動分析と提案
33
+
34
+ **規模確認**:
35
+
36
+ ```bash
37
+ ls -F
38
+ ```
39
+
40
+ ファイルがほとんど無い/ソースコードが無い場合はスキップし、ユーザーへ通知。
41
+
42
+ **詳細調査**(コードがある場合):
43
+
44
+ ```bash
45
+ cat package.json 2>/dev/null
46
+ cat README.md 2>/dev/null
47
+ find src app lib -maxdepth 2 2>/dev/null
48
+ ```
49
+
50
+ 結果から以下を推測・提示: システム概要(目的・技術スタック)、実装済み機能(ファイル構造からの推測)、想定ユーザー像。
51
+
52
+ ### 3. システム概要の作成
53
+
54
+ 1. テンプレートをコピー:
55
+
56
+ ```bash
57
+ SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
58
+ cp "$SCRIPT_DIR/templates/project/01-requirements/01-system-overview.md" \
59
+ "docs/project/requirements/01-system-overview.md"
60
+ ```
61
+
62
+ 2. 「背景」「目的」をヒアリングして記入。質問例は [reference/hearing-questions.md](reference/hearing-questions.md) を参照。
63
+
64
+ ### 4. 実装済み機能一覧
65
+
66
+ 1. `02-features-implemented.md` をテンプレートからコピー。
67
+ 2. コードベースを調査し、検出したディレクトリ/ファイル名から機能を提案。
68
+ 3. ヒアリング結果をテーブルに記入(Category 1/2、機能名、説明、機能 ID)。
69
+
70
+ コード調査コマンドとヒアリング項目は [reference/hearing-questions.md](reference/hearing-questions.md#手順4-実装済み機能一覧) を参照。
71
+
72
+ ### 5. 予定機能一覧
73
+
74
+ 1. `03-features-planned.md` をテンプレートからコピー。
75
+ 2. システム概要と実装済み機能のギャップを分析し、未実装機能を提案。
76
+ 3. ヒアリング結果をテーブルに記入(機能 ID・優先度は未確定のまま)。
77
+
78
+ ### 6. 非機能要件一覧
79
+
80
+ 1. `04-non-functional-requirements.md` をテンプレートからコピー。
81
+ 2. 詳細定義が必要か確認。不要なら標準ベースラインで仮置き([examples/nfr-baseline.md](examples/nfr-baseline.md))。
82
+ 3. パフォーマンス/セキュリティ/可用性/スケーラビリティ/ユーザビリティ・保守性の観点で**定量的な目標**をヒアリング。
83
+
84
+ ### 7. ユーザーストーリー
85
+
86
+ 1. `05-user-stories.md` をテンプレートからコピー。
87
+ 2. 作成済みドキュメントから主要ユーザージャーニーを抽出し、ストーリー案を提示。
88
+ 3. ヒアリング結果をテーブルに記入(優先度・受け入れ基準含む)。
89
+
90
+ ストーリーテンプレート: 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
91
+
92
+ ### 8. 全体レビュー
93
+
94
+ - 作成した全ドキュメントをユーザーに提示し、以下を確認:
95
+ - 「記載内容に誤りや漏れはありませんか?」
96
+ - 「抽象的すぎる記述や、解釈が分かれそうな表現はありますか?」
97
+ - 「テンプレートのコメントや不要な例示は適切に処理されていますか?」
98
+
99
+ ### 9. 完了条件と構造の確認
100
+
101
+ - ファイルの存在と主要セクション/テーブル構造を検証。
102
+ - 検証コマンド・チェックリスト・Git コミット手順は [reference/structure-check.md](reference/structure-check.md) を参照。
103
+
104
+ ### 10. Git への追加(オプション)
105
+
106
+ 詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加オプション) を参照。
107
+
108
+ ## 完了条件
109
+
110
+ - `docs/project/requirements/` に 5 つの要件定義ドキュメントが作成されている
111
+ - すべてのドキュメントで抽象的表現が最小化され、具体的な数値・期限・制約が記載されている
112
+ - ユーザーがドキュメント内容を確認し、承認またはフィードバックを提供している
113
+
114
+ ## エスカレーション
115
+
116
+ - **ユーザーが重要な情報を提供できない**: 「この情報は後続の設計・実装で必須です。確認できる担当者や資料はありますか?」と確認し、TODO として記録。
117
+ - **競合する要件や矛盾**: 「以下の要件が競合しています: [詳細]。優先順位や調整方針を確認させてください。」と報告。
118
+ - **想定工数が非現実的に大きい**: 「現在の計画では実現が困難です。スコープ縮小や優先度調整を検討しませんか?」と提案。
119
+
120
+ ## 参考
121
+
122
+ - [reference/hearing-questions.md](reference/hearing-questions.md) — 手順3〜7のヒアリング質問集
123
+ - [reference/structure-check.md](reference/structure-check.md) — 手順9の構造チェックコマンドと Git コミット手順
124
+ - [examples/nfr-baseline.md](examples/nfr-baseline.md) — 非機能要件の標準ベースライン提案値
@@ -0,0 +1,38 @@
1
+ # 非機能要件の標準ベースライン
2
+
3
+ SKILL.md 手順6で「標準的な設定で仮置き」する際の提案値。
4
+
5
+ ## Web アプリケーションの一般的な目標値
6
+
7
+ ### パフォーマンス
8
+
9
+ - ページ読み込み: 3 秒以内
10
+ - API 応答: 500ms 以内
11
+
12
+ ### セキュリティ
13
+
14
+ - HTTPS 必須
15
+ - パスワードはハッシュ化(bcrypt 推奨)
16
+ - 認証方式: 基本認証 / OAuth
17
+
18
+ ### 可用性
19
+
20
+ - 稼働率: 99.5%(平日日中)
21
+ - 日次バックアップ
22
+
23
+ ### スケーラビリティ
24
+
25
+ - 想定同時接続数の 2 倍のバースト耐性
26
+ - 水平スケーリング可能なアーキテクチャ
27
+
28
+ ### ユーザビリティ
29
+
30
+ - WCAG 2.1 レベル AA 準拠(アクセシビリティ)
31
+ - 対応ブラウザ: 最新 2 バージョン(Chrome / Safari / Edge / Firefox)
32
+ - レスポンシブデザイン(PC / タブレット / モバイル)
33
+
34
+ ### 保守性
35
+
36
+ - 構造化ログ(JSON 形式)
37
+ - 監視: APM + アラート通知
38
+ - デプロイ: 日次 or オンデマンド
@@ -0,0 +1,92 @@
1
+ # ヒアリング質問集
2
+
3
+ SKILL.md 手順3〜7で各テンプレートに記入する際のヒアリング質問一覧。
4
+
5
+ ## 手順3: システム概要
6
+
7
+ ### 背景
8
+
9
+ - 「このシステムで解決しようとしている**具体的な問題や課題**は何ですか?」
10
+ - 「その問題はなぜ重要ですか?放置した場合のリスクは?」
11
+ - 「問題の影響を受けるステークホルダー(ユーザー、組織、チームなど)は誰ですか?」
12
+ - 「具体的な数値やデータ(作業時間、コスト、離脱率など)があれば教えてください。」
13
+
14
+ ### 目的
15
+
16
+ - 「このシステムが提供する**具体的な価値や解決策**は何ですか?」
17
+ - 「期待される成果や変化を、測定可能な形で表現できますか?(例: 作業時間 50%削減)」
18
+ - 「どのように問題を解決するか、具体的なメカニズムや仕組みを教えてください。」
19
+
20
+ ## 手順4: 実装済み機能一覧
21
+
22
+ ### コード調査のヒントと提案
23
+
24
+ ```bash
25
+ find src app lib -maxdepth 2 -type d 2>/dev/null
26
+ find . -type f -name "*Controller*" -o -name "*Service*" -o -name "*Component*" | head -n 20
27
+ ```
28
+
29
+ 提案例:
30
+
31
+ - 「`src/auth` ディレクトリが見つかりました。認証機能(ログイン、登録など)は実装済みですか?」
32
+ - 「`PaymentController` があります。決済機能は稼働していますか?」
33
+
34
+ ### ヒアリング項目
35
+
36
+ - 「既に実装済みの機能はありますか?(提案した機能含む)」
37
+ - **Category 1**(大分類: ユーザー管理、コンテンツなど)
38
+ - **Category 2**(中分類: 認証、プロフィールなど)
39
+ - **機能名**(ユーザー視点の名称)
40
+ - **説明**(何ができるか)
41
+ - **機能 ID**(FN-XXX 形式、連番)
42
+
43
+ ## 手順5: 予定機能一覧
44
+
45
+ ### 差分分析からの提案例
46
+
47
+ - 「システム概要で『〇〇機能』への言及がありましたが、まだ実装されていないようです。予定機能に追加しますか?」
48
+ - 「現在の実装に『××』が含まれていますが、関連する『△△機能』は将来的に必要ですか?」
49
+
50
+ ### ヒアリング項目
51
+
52
+ - **Category 1** / **Category 2**
53
+ - **機能名**(アイデア段階でも可)
54
+ - **説明**(目的や価値を中心に)
55
+
56
+ ※ 機能 ID・優先度はこの段階では確定させず、柔軟性を重視して記載しない。
57
+
58
+ ## 手順6: 非機能要件
59
+
60
+ ### パフォーマンス
61
+
62
+ - 「ページ読み込み時間の目標は?」
63
+ - 「API レスポンス時間の目標は?」
64
+ - 「想定される同時接続ユーザー数、データ量は?」
65
+
66
+ ### セキュリティ
67
+
68
+ - 「認証方式、機密データの扱い、コンプライアンス要件は?」
69
+
70
+ ### 可用性・信頼性
71
+
72
+ - 「稼働率目標、許容ダウンタイム、バックアップ要件は?」
73
+
74
+ ### スケーラビリティ
75
+
76
+ - 「ユーザー数の成長予測、ピーク時のトラフィック想定は?」
77
+
78
+ ### ユーザビリティ・保守性
79
+
80
+ - 「アクセシビリティ、対応言語、デバイス、ブラウザは?」
81
+ - 「ログ・監視要件、デプロイ頻度は?」
82
+
83
+ ## 手順7: ユーザーストーリー
84
+
85
+ ### 提案テンプレート
86
+
87
+ 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
88
+
89
+ ### ヒアリング項目
90
+
91
+ - 「他に主要なユーザージャーニーがあれば教えてください([役割]として、[目的]がしたい、なぜなら[理由])」
92
+ - 各ストーリーの優先度、受け入れ基準
@@ -0,0 +1,48 @@
1
+ # 構造チェックコマンド集
2
+
3
+ SKILL.md 手順9で使う、生成済みドキュメントの構造確認用コマンド。
4
+
5
+ ## 5ドキュメントの必須セクション/テーブル検証
6
+
7
+ ```bash
8
+ # 01-system-overview.md: 主要セクションの確認
9
+ grep "## 背景" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
10
+ grep "## 目的" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
11
+
12
+ # 02-features-implemented.md: テーブルヘッダー
13
+ grep "| 機能ID | Category 1 |" docs/project/requirements/02-features-implemented.md \
14
+ && echo "OK" || echo "MISSING: Table Header"
15
+
16
+ # 03-features-planned.md: テーブルヘッダー
17
+ grep "| Category 1 | Category 2 |" docs/project/requirements/03-features-planned.md \
18
+ && echo "OK" || echo "MISSING: Table Header"
19
+
20
+ # 04-non-functional-requirements.md: テーブルヘッダー
21
+ grep "| カテゴリ | 要件 |" docs/project/requirements/04-non-functional-requirements.md \
22
+ && echo "OK" || echo "MISSING: Table Header"
23
+
24
+ # 05-user-stories.md: テーブルヘッダー
25
+ grep "| ストーリーID | ストーリー |" docs/project/requirements/05-user-stories.md \
26
+ && echo "OK" || echo "MISSING: Table Header"
27
+ ```
28
+
29
+ ## チェックリスト
30
+
31
+ - [ ] すべてのファイルが存在する
32
+ - [ ] 各ファイルがテンプレートの基本構造を維持している(主要セクション・テーブル)
33
+ - [ ] プレースホルダーが適切な内容に置き換わっている
34
+
35
+ ## Git への追加(オプション)
36
+
37
+ ```bash
38
+ git add docs/project/requirements/
39
+ git status
40
+ ```
41
+
42
+ 推奨コミットメッセージ:
43
+
44
+ ```
45
+ docs: 要件定義ドキュメントの作成
46
+
47
+ - システム概要、機能要件、非機能要件、ユーザーストーリーを追加
48
+ ```