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
@@ -1,200 +1,200 @@
1
- # 実装タスクリスト
2
-
3
- <!--
4
- このドキュメントについて:
5
- - 格納場所: docs/tasks/task000001-{スラッグ}/c-implementation.md
6
- - 作成方法: /b-004-create-task-implementation スキルで作成
7
- - 実行方法: /c-001-implement-task スキルで各ステップを実行
8
- - 前提条件: a-definition.md と b-research.md が作成済みであること
9
- - 関連ドキュメント:
10
- - a-definition.md (タスク定義ドキュメント)
11
- - b-research.md (リサーチドキュメント)
12
-
13
- このドキュメントの目的:
14
- - 実装作業を段階的に分割して管理
15
- - 進捗の可視化とチーム共有
16
- - 各ステップの成果物を明確化
17
- - 実装漏れの防止
18
-
19
- 更新タイミング:
20
- - 実装開始前にフェーズ分割を計画
21
- - 各ステップ完了時にチェック(/c-001-implement-task が自動更新)
22
- - 新たな作業が発覚した際に追加
23
- - レビュー指摘事項を反映
24
- -->
25
-
26
- ---
27
-
28
- ## フェーズ 1: [フェーズ名]
29
-
30
- <!--
31
- フェーズの分け方:
32
- - 機能単位で分割(例: フロントエンド → バックエンド → 統合)
33
- - 依存関係で分割(例: データモデル → API → UI)
34
- - リスクで分割(例: 検証 → 本実装 → 最適化)
35
-
36
- ベストプラクティス:
37
- - 1フェーズは 1-3 日以内で完了できる粒度
38
- - フェーズごとに動作確認可能な状態にする
39
- - 各フェーズで小さくコミット・PR を作成(レビュー負荷軽減)
40
- -->
41
-
42
- **目的:** <!-- 例: データモデルと API エンドポイントの実装 -->
43
-
44
- **完了条件:** <!-- 例: API が期待通りのレスポンスを返し、ユニットテストが全て通る -->
45
-
46
- ### ステップ
47
-
48
- <!--
49
- ステップの粒度:
50
- - 1ステップは 1-3 時間程度で完了できる作業
51
- - コミット単位で分割すると管理しやすい
52
- - 成果物が明確であること(ファイル、機能、テスト)
53
-
54
- 記載のポイント:
55
- - 具体的なファイル名やコンポーネント名を含める
56
- - 実装の詳細にはアルゴリズムや技術的な注意点を記載
57
- - 依存関係があるステップは順序を意識
58
- -->
59
-
60
- - [ ] **ステップ 1:** データベーススキーマの定義
61
- - **成果物:** `migrations/001_create_users_table.sql`
62
- - **詳細:** User テーブルに `email_verified`, `verification_token`, `token_expires_at` を追加。インデックスは `verification_token` に作成
63
-
64
- - [ ] **ステップ 2:** TypeScript 型定義の追加
65
- - **成果物:** `src/types/User.ts`
66
- - **詳細:** `User` インターフェースに新しいフィールドを追加。Zod スキーマも同時に定義
67
-
68
- - [ ] **ステップ 3:** メール送信 API エンドポイントの実装
69
- - **成果物:** `src/api/auth/send-verification.ts`
70
- - **詳細:** トークン生成(UUID v4)、有効期限 24 時間、SendGrid API 呼び出し。エラーハンドリング実装
71
-
72
- - [ ] **ステップ 4:** メール認証 API エンドポイントの実装
73
- - **成果物:** `src/api/auth/verify-email.ts`
74
- - **詳細:** トークン検証、有効期限チェック、ユーザーステータス更新。無効トークンは 400 エラー
75
-
76
- ---
77
-
78
- ## フェーズ 2: [フェーズ名]
79
-
80
- **目的:** <!-- 例: フロントエンド UI の実装とユーザーフロー統合 -->
81
-
82
- **完了条件:** <!-- 例: ユーザー登録から認証完了までの一連の流れが動作し、E2E テストが通る -->
83
-
84
- ### ステップ
85
-
86
- - [ ] **ステップ 1:** メール認証ページの作成
87
- - **成果物:** `src/pages/EmailVerificationPage.tsx`
88
- - **詳細:** URL パラメータからトークンを取得、API 呼び出し、成功/失敗メッセージ表示
89
-
90
- - [ ] **ステップ 2:** ユーザー登録フォームにメール送信処理を追加
91
- - **成果物:** `src/features/auth/RegisterForm.tsx` を更新
92
- - **詳細:** 登録成功後にメール送信 API を呼び出し、「確認メールを送信しました」メッセージを表示
93
-
94
- - [ ] **ステップ 3:** 認証状態のガード実装
95
- - **成果物:** `src/middleware/requireEmailVerified.ts`
96
- - **詳細:** 未認証ユーザーは特定ページにアクセス不可。リダイレクト処理を実装
97
-
98
- ---
99
-
100
- ## フェーズ 3: テスト・ドキュメント
101
-
102
- <!--
103
- テストフェーズの重要性:
104
- - 実装と同時にテストを書くことでバグを早期発見
105
- - テストコードは仕様書の役割も果たす
106
- - リグレッション防止(今後の変更で既存機能が壊れない)
107
-
108
- 記載すべきテスト:
109
- - ユニットテスト(関数、コンポーネント単位)
110
- - 統合テスト(API、データベース連携)
111
- - E2E テスト(ユーザーフロー全体)
112
- - エッジケーステスト(異常系、境界値)
113
- -->
114
-
115
- **目的:** <!-- 例: テストコード作成とドキュメント整備 -->
116
-
117
- **完了条件:** <!-- 例: テストカバレッジ 80% 以上、README にセットアップ手順を記載 -->
118
-
119
- ### ステップ
120
-
121
- - [ ] **ステップ 1:** ユニットテストの作成
122
- - **成果物:** `src/api/auth/send-verification.test.ts`, `verify-email.test.ts`
123
- - **詳細:** トークン生成、有効期限検証、エラーハンドリングのテスト。モックを使用
124
-
125
- - [ ] **ステップ 2:** 統合テストの作成
126
- - **成果物:** `tests/integration/email-verification.test.ts`
127
- - **詳細:** API エンドポイントの実際の動作をテスト。テストデータベース使用
128
-
129
- - [ ] **ステップ 3:** E2E テストの作成
130
- - **成果物:** `tests/e2e/user-registration.spec.ts`
131
- - **詳細:** Playwright でユーザー登録→メール確認→ログインまでの流れをテスト
132
-
133
- - [ ] **ステップ 4:** ドキュメント更新
134
- - **成果物:** `README.md`, `docs/tasks/task000001-{スラッグ}/a-definition.md`
135
- - **詳細:** セットアップ手順、環境変数設定、API 仕様を記載
136
-
137
- ---
138
-
139
- ## 受け入れ基準
140
-
141
- <!--
142
- 受け入れ基準の記載ポイント:
143
- - 機能が正しく動作すること(正常系)
144
- - エラーハンドリングが適切に実装されていること(異常系)
145
- - エッジケースが処理されること(境界値、特殊な入力)
146
- - パフォーマンス要件を満たすこと(必要に応じて)
147
- - セキュリティ要件を満たすこと(XSS, CSRF, SQL Injection など)
148
- - ブラウザ互換性(必要に応じて)
149
- - テストが全て通ること
150
- - ドキュメントが更新されていること
151
-
152
- 各フェーズの完了を判断するための具体的な基準を記載します。
153
- 全ての基準を満たした時点でタスク完了とみなされます。
154
- -->
155
-
156
- ### フェーズ 1 の受け入れ基準
157
-
158
- - [ ] データベースマイグレーションが成功する
159
- - [ ] 型定義が正しく適用される(TypeScript コンパイルエラーなし)
160
- - [ ] メール送信 API がトークンを生成し、メールを送信する
161
- - [ ] 無効なトークンでアクセスした場合、エラーが返る
162
- - [ ] トークンの有効期限切れが正しく検出される
163
-
164
- ### フェーズ 2 の受け入れ基準
165
-
166
- - [ ] メール認証ページが正しく表示される
167
- - [ ] 認証成功時に成功メッセージが表示される
168
- - [ ] 認証失敗時にエラーメッセージが表示される
169
- - [ ] 未認証ユーザーは保護されたページにアクセスできない
170
- - [ ] 認証済みユーザーは全ての機能にアクセスできる
171
-
172
- ### フェーズ 3 の受け入れ基準
173
-
174
- - [ ] 全てのユニットテストが通る
175
- - [ ] 全ての統合テストが通る
176
- - [ ] E2E テストが通る(CI 環境でも実行)
177
- - [ ] テストカバレッジが 80% 以上
178
- - [ ] ドキュメントに記載された手順で環境構築できる
179
-
180
- ---
181
-
182
- ## メモ
183
-
184
- <!--
185
- 実装全体に関する補足情報
186
-
187
- 記載すべき内容:
188
- - 実装中に気づいた技術的な課題
189
- - リファクタリングが必要な箇所
190
- - パフォーマンス最適化の余地
191
- - セキュリティ上の注意点
192
- - 今後の拡張予定
193
- - チームメンバーへの引き継ぎ事項
194
-
195
- 例:
196
- - メール送信は現在同期処理だが、将来的にはジョブキューに移行予定
197
- - トークンの有効期限は現在 24 時間だが、設定ファイルで変更可能にする
198
- - SendGrid の API キーは環境変数で管理(.env.example に記載)
199
- - セキュリティレビュー完了(2025-01-15、レビュアー: @john)
200
- -->
1
+ # 実装タスクリスト
2
+
3
+ <!--
4
+ このドキュメントについて:
5
+ - 格納場所: docs/tasks/task000001-{スラッグ}/c-implementation.md
6
+ - 作成方法: /b-004-create-task-implementation スキルで作成
7
+ - 実行方法: /c-001-implement-task スキルで各ステップを実行
8
+ - 前提条件: a-definition.md と b-research.md が作成済みであること
9
+ - 関連ドキュメント:
10
+ - a-definition.md (タスク定義ドキュメント)
11
+ - b-research.md (リサーチドキュメント)
12
+
13
+ このドキュメントの目的:
14
+ - 実装作業を段階的に分割して管理
15
+ - 進捗の可視化とチーム共有
16
+ - 各ステップの成果物を明確化
17
+ - 実装漏れの防止
18
+
19
+ 更新タイミング:
20
+ - 実装開始前にフェーズ分割を計画
21
+ - 各ステップ完了時にチェック(/c-001-implement-task が自動更新)
22
+ - 新たな作業が発覚した際に追加
23
+ - レビュー指摘事項を反映
24
+ -->
25
+
26
+ ---
27
+
28
+ ## フェーズ 1: [フェーズ名]
29
+
30
+ <!--
31
+ フェーズの分け方:
32
+ - 機能単位で分割(例: フロントエンド → バックエンド → 統合)
33
+ - 依存関係で分割(例: データモデル → API → UI)
34
+ - リスクで分割(例: 検証 → 本実装 → 最適化)
35
+
36
+ ベストプラクティス:
37
+ - 1フェーズは 1-3 日以内で完了できる粒度
38
+ - フェーズごとに動作確認可能な状態にする
39
+ - 各フェーズで小さくコミット・PR を作成(レビュー負荷軽減)
40
+ -->
41
+
42
+ **目的:** <!-- 例: データモデルと API エンドポイントの実装 -->
43
+
44
+ **完了条件:** <!-- 例: API が期待通りのレスポンスを返し、ユニットテストが全て通る -->
45
+
46
+ ### ステップ
47
+
48
+ <!--
49
+ ステップの粒度:
50
+ - 1ステップは 1-3 時間程度で完了できる作業
51
+ - コミット単位で分割すると管理しやすい
52
+ - 成果物が明確であること(ファイル、機能、テスト)
53
+
54
+ 記載のポイント:
55
+ - 具体的なファイル名やコンポーネント名を含める
56
+ - 実装の詳細にはアルゴリズムや技術的な注意点を記載
57
+ - 依存関係があるステップは順序を意識
58
+ -->
59
+
60
+ - [ ] **ステップ 1:** データベーススキーマの定義
61
+ - **成果物:** `migrations/001_create_users_table.sql`
62
+ - **詳細:** User テーブルに `email_verified`, `verification_token`, `token_expires_at` を追加。インデックスは `verification_token` に作成
63
+
64
+ - [ ] **ステップ 2:** TypeScript 型定義の追加
65
+ - **成果物:** `src/types/User.ts`
66
+ - **詳細:** `User` インターフェースに新しいフィールドを追加。Zod スキーマも同時に定義
67
+
68
+ - [ ] **ステップ 3:** メール送信 API エンドポイントの実装
69
+ - **成果物:** `src/api/auth/send-verification.ts`
70
+ - **詳細:** トークン生成(UUID v4)、有効期限 24 時間、SendGrid API 呼び出し。エラーハンドリング実装
71
+
72
+ - [ ] **ステップ 4:** メール認証 API エンドポイントの実装
73
+ - **成果物:** `src/api/auth/verify-email.ts`
74
+ - **詳細:** トークン検証、有効期限チェック、ユーザーステータス更新。無効トークンは 400 エラー
75
+
76
+ ---
77
+
78
+ ## フェーズ 2: [フェーズ名]
79
+
80
+ **目的:** <!-- 例: フロントエンド UI の実装とユーザーフロー統合 -->
81
+
82
+ **完了条件:** <!-- 例: ユーザー登録から認証完了までの一連の流れが動作し、E2E テストが通る -->
83
+
84
+ ### ステップ
85
+
86
+ - [ ] **ステップ 1:** メール認証ページの作成
87
+ - **成果物:** `src/pages/EmailVerificationPage.tsx`
88
+ - **詳細:** URL パラメータからトークンを取得、API 呼び出し、成功/失敗メッセージ表示
89
+
90
+ - [ ] **ステップ 2:** ユーザー登録フォームにメール送信処理を追加
91
+ - **成果物:** `src/features/auth/RegisterForm.tsx` を更新
92
+ - **詳細:** 登録成功後にメール送信 API を呼び出し、「確認メールを送信しました」メッセージを表示
93
+
94
+ - [ ] **ステップ 3:** 認証状態のガード実装
95
+ - **成果物:** `src/middleware/requireEmailVerified.ts`
96
+ - **詳細:** 未認証ユーザーは特定ページにアクセス不可。リダイレクト処理を実装
97
+
98
+ ---
99
+
100
+ ## フェーズ 3: テスト・ドキュメント
101
+
102
+ <!--
103
+ テストフェーズの重要性:
104
+ - 実装と同時にテストを書くことでバグを早期発見
105
+ - テストコードは仕様書の役割も果たす
106
+ - リグレッション防止(今後の変更で既存機能が壊れない)
107
+
108
+ 記載すべきテスト:
109
+ - ユニットテスト(関数、コンポーネント単位)
110
+ - 統合テスト(API、データベース連携)
111
+ - E2E テスト(ユーザーフロー全体)
112
+ - エッジケーステスト(異常系、境界値)
113
+ -->
114
+
115
+ **目的:** <!-- 例: テストコード作成とドキュメント整備 -->
116
+
117
+ **完了条件:** <!-- 例: テストカバレッジ 80% 以上、README にセットアップ手順を記載 -->
118
+
119
+ ### ステップ
120
+
121
+ - [ ] **ステップ 1:** ユニットテストの作成
122
+ - **成果物:** `src/api/auth/send-verification.test.ts`, `verify-email.test.ts`
123
+ - **詳細:** トークン生成、有効期限検証、エラーハンドリングのテスト。モックを使用
124
+
125
+ - [ ] **ステップ 2:** 統合テストの作成
126
+ - **成果物:** `tests/integration/email-verification.test.ts`
127
+ - **詳細:** API エンドポイントの実際の動作をテスト。テストデータベース使用
128
+
129
+ - [ ] **ステップ 3:** E2E テストの作成
130
+ - **成果物:** `tests/e2e/user-registration.spec.ts`
131
+ - **詳細:** Playwright でユーザー登録→メール確認→ログインまでの流れをテスト
132
+
133
+ - [ ] **ステップ 4:** ドキュメント更新
134
+ - **成果物:** `README.md`, `docs/tasks/task000001-{スラッグ}/a-definition.md`
135
+ - **詳細:** セットアップ手順、環境変数設定、API 仕様を記載
136
+
137
+ ---
138
+
139
+ ## 受け入れ基準
140
+
141
+ <!--
142
+ 受け入れ基準の記載ポイント:
143
+ - 機能が正しく動作すること(正常系)
144
+ - エラーハンドリングが適切に実装されていること(異常系)
145
+ - エッジケースが処理されること(境界値、特殊な入力)
146
+ - パフォーマンス要件を満たすこと(必要に応じて)
147
+ - セキュリティ要件を満たすこと(XSS, CSRF, SQL Injection など)
148
+ - ブラウザ互換性(必要に応じて)
149
+ - テストが全て通ること
150
+ - ドキュメントが更新されていること
151
+
152
+ 各フェーズの完了を判断するための具体的な基準を記載します。
153
+ 全ての基準を満たした時点でタスク完了とみなされます。
154
+ -->
155
+
156
+ ### フェーズ 1 の受け入れ基準
157
+
158
+ - [ ] データベースマイグレーションが成功する
159
+ - [ ] 型定義が正しく適用される(TypeScript コンパイルエラーなし)
160
+ - [ ] メール送信 API がトークンを生成し、メールを送信する
161
+ - [ ] 無効なトークンでアクセスした場合、エラーが返る
162
+ - [ ] トークンの有効期限切れが正しく検出される
163
+
164
+ ### フェーズ 2 の受け入れ基準
165
+
166
+ - [ ] メール認証ページが正しく表示される
167
+ - [ ] 認証成功時に成功メッセージが表示される
168
+ - [ ] 認証失敗時にエラーメッセージが表示される
169
+ - [ ] 未認証ユーザーは保護されたページにアクセスできない
170
+ - [ ] 認証済みユーザーは全ての機能にアクセスできる
171
+
172
+ ### フェーズ 3 の受け入れ基準
173
+
174
+ - [ ] 全てのユニットテストが通る
175
+ - [ ] 全ての統合テストが通る
176
+ - [ ] E2E テストが通る(CI 環境でも実行)
177
+ - [ ] テストカバレッジが 80% 以上
178
+ - [ ] ドキュメントに記載された手順で環境構築できる
179
+
180
+ ---
181
+
182
+ ## メモ
183
+
184
+ <!--
185
+ 実装全体に関する補足情報
186
+
187
+ 記載すべき内容:
188
+ - 実装中に気づいた技術的な課題
189
+ - リファクタリングが必要な箇所
190
+ - パフォーマンス最適化の余地
191
+ - セキュリティ上の注意点
192
+ - 今後の拡張予定
193
+ - チームメンバーへの引き継ぎ事項
194
+
195
+ 例:
196
+ - メール送信は現在同期処理だが、将来的にはジョブキューに移行予定
197
+ - トークンの有効期限は現在 24 時間だが、設定ファイルで変更可能にする
198
+ - SendGrid の API キーは環境変数で管理(.env.example に記載)
199
+ - セキュリティレビュー完了(2025-01-15、レビュアー: @john)
200
+ -->
@@ -1,49 +0,0 @@
1
- # システム概要
2
-
3
- ## 背景
4
-
5
- <!--
6
- 何を書くか: このシステムで解決しようとしている問題を記述
7
-
8
- 文量: 2-4文程度(100-200文字)
9
- トーン: 客観的で事実ベース。感情的な表現は避ける
10
- 必須情報:
11
- - 現在直面している具体的な問題や課題
12
- - なぜその問題が重要なのか
13
- - 問題の影響を受けるステークホルダー
14
-
15
- ベストプラクティス:
16
- - 具体的な数値やデータがあれば含める(例: 「3ヶ月かかる」「70%が離脱」)
17
- - 「〜できない」「〜が困難」など問題を明確に表現
18
- - 誰が・いつ・どこで困っているかを具体的に示す
19
- - 現状の workaround や代替手段があればそれも言及
20
- - 抽象的な表現(「効率が悪い」)より具体的な表現(「手動で2時間かかる作業」)を使う
21
- -->
22
-
23
- **例:**
24
- 新入社員が既存社員とコミュニケーションを取る機会が限られており、チームに溶け込むまでに時間がかかる。また、リモートワークの増加により、雑談や自然な関係構築の場が減少している。
25
-
26
- ---
27
-
28
- ## 目的
29
-
30
- <!--
31
- 何を書くか: このシステムが提供する価値や解決策を記述
32
-
33
- 文量: 2-4文程度(100-200文字)
34
- トーン: ポジティブで具体的。実現可能な内容に留める
35
- 必須情報:
36
- - システムがどのように問題を解決するか
37
- - ユーザーや組織が得られる具体的な価値
38
- - 期待される成果や変化
39
-
40
- ベストプラクティス:
41
- - 「〜を可能にする」「〜を支援する」など能動的な表現を使う
42
- - 技術的な詳細(「React使用」)よりもビジネス価値(「開発速度2倍」)に焦点を当てる
43
- - 測定可能な成果があれば言及する(例: 「作業時間を50%削減」「離脱率を20%改善」)
44
- - どのように問題を解決するか、具体的なメカニズムを簡潔に示す
45
- - ユーザーにとっての before/after が想像できる表現を使う
46
- -->
47
-
48
- **例:**
49
- 社員がライフラインチャートを通じて自己紹介し、共通点を見つけやすくすることで、組織横断のコミュニケーションを活性化する。コメント機能により双方向の対話を促進し、早期の関係構築を支援する。
@@ -1,75 +0,0 @@
1
- # 未実装機能一覧
2
-
3
- <!--
4
- 何を書くか: 今後実装を検討・予定している機能のリスト
5
-
6
- 目的:
7
- - プロダクトのロードマップや将来ビジョンを可視化
8
- - ステークホルダーとの期待値調整
9
- - 技術的負債や機能gap の把握
10
- - 実装優先度の議論のベース資料
11
-
12
- 特徴:
13
- - 機能IDなし: まだ確定していないため識別子は不要
14
- - 優先度なし: 優先度は常に変動し混乱を招くため記載しない
15
- - 柔軟性重視: アイデア段階の機能も含めて良い
16
-
17
- 記載粒度: 実装済み機能一覧と同程度(ユーザーが認識できる機能単位)
18
-
19
- 更新頻度:
20
- - 機能を実装したら「実装済み機能一覧」に移動し、こちらから削除
21
- - 新しいアイデアや要望が出たら随時追加
22
- - 四半期ごとなど定期的に見直し、不要な機能は削除
23
- -->
24
-
25
- <!--
26
- テーブル構成:
27
-
28
- 【Category 1】(大分類)
29
- - 実装済み機能一覧と同じカテゴリ体系を使用
30
- - 既存カテゴリに当てはまらない場合は新カテゴリを追加
31
- - 例: ユーザー管理、コンテンツ、決済、通知、分析
32
-
33
- 【Category 2】(中分類)
34
- - 実装済み機能一覧と同じカテゴリ体系を使用
35
- - より具体的な機能領域で分類
36
- - 例: ユーザー管理 → 認証、プロフィール、権限
37
-
38
- 【機能名】
39
- - 簡潔で分かりやすい名称(2-5単語程度)
40
- - ユーザー視点の表現を使う
41
- - まだ確定していなくても仮の名称で記載OK
42
- - 例: 「二段階認証」「下書き保存」「AIレコメンド」
43
-
44
- 【説明】
45
- - 1-2文で機能の内容を記述(50-100文字程度)
46
- - 何を実現したいか(目的)を中心に記述
47
- - 「〜したい」「〜できるようにする」など意図が伝わる表現
48
- - 実装方法が未定でもユーザー価値を記述
49
-
50
- ベストプラクティス:
51
- - 実装の難易度や工数は記載しない(別途見積もりで管理)
52
- - 「いつか実装したい」程度のアイデアも含めて良い(柔軟に)
53
- - 競合製品の機能を参考にする場合は、自社プロダクトでの意義を明確に
54
- - カテゴリ分類により、特定領域の機能が不足していないか確認できる
55
- - 定期的に見直し、実装しない判断をした機能は削除(理由はGitコミットメッセージに残す)
56
- - 技術的な表現(「WebSocket実装」)より価値の表現(「リアルタイム通知」)を優先
57
- -->
58
-
59
- | Category 1 | Category 2 | 機能名 | 説明 |
60
- |-----------|-----------|--------|------|
61
- | <!-- カテゴリ1 --> | <!-- カテゴリ2 --> | <!-- 機能名 --> | <!-- 簡潔な説明 --> |
62
-
63
- ---
64
-
65
- **例:**
66
-
67
- | Category 1 | Category 2 | 機能名 | 説明 |
68
- |-----------|-----------|--------|------|
69
- | ユーザー管理 | 認証 | 二段階認証 | SMS/アプリでの二段階認証 |
70
- | ユーザー管理 | 認証 | ソーシャルログイン | Google/GitHubアカウントでログイン |
71
- | ユーザー管理 | プロフィール | バッジシステム | 実績に応じたバッジ表示 |
72
- | コンテンツ | 投稿 | 下書き保存 | 記事の下書き保存機能 |
73
- | コンテンツ | 投稿 | 予約投稿 | 指定日時での自動投稿 |
74
- | コンテンツ | コメント | 返信機能 | コメントへの返信スレッド |
75
- | コンテンツ | コメント | いいね機能 | コメントへのいいね |