yodogawa 1.0.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 (61) hide show
  1. package/.windsurf/templates/documentation-rules.md +143 -0
  2. package/.windsurf/templates/project/01-requirements/01-system-overview.md +49 -0
  3. package/.windsurf/templates/project/01-requirements/02-features-implemented.md +73 -0
  4. package/.windsurf/templates/project/01-requirements/03-features-planned.md +75 -0
  5. package/.windsurf/templates/project/01-requirements/04-non-functional-requirements.md +115 -0
  6. package/.windsurf/templates/project/01-requirements/05-user-stories.md +124 -0
  7. package/.windsurf/templates/project/02-behavior/01-scenarios.md +406 -0
  8. package/.windsurf/templates/project/03-domain/01-domain-model.md +338 -0
  9. package/.windsurf/templates/project/03-domain/02-ubiquitous-language.md +153 -0
  10. package/.windsurf/templates/project/04-design/01-tech-stack.md +360 -0
  11. package/.windsurf/templates/project/04-design/02-repository-structure.md +390 -0
  12. package/.windsurf/templates/project/04-design/03-screen-design.md +586 -0
  13. package/.windsurf/templates/project/04-design/04-data-model.md +211 -0
  14. package/.windsurf/templates/project/04-design/05-api-spec.md +221 -0
  15. package/.windsurf/templates/project/04-design/06-architecture.md +183 -0
  16. package/.windsurf/templates/project/04-design/07-infrastructure.md +180 -0
  17. package/.windsurf/templates/tasks/task-template/a-definition.md +143 -0
  18. package/.windsurf/templates/tasks/task-template/b-research.md +185 -0
  19. package/.windsurf/templates/tasks/task-template/c-implementation.md +197 -0
  20. package/.windsurf/workflows/a-001-SetupDocStructure.md +165 -0
  21. package/.windsurf/workflows/a-002-InitializeProject.md +229 -0
  22. package/.windsurf/workflows/a-003-CreateScenarios.md +130 -0
  23. package/.windsurf/workflows/a-004-DefineDomainModel.md +133 -0
  24. package/.windsurf/workflows/a-005-CreateDomainDiagram.md +114 -0
  25. package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +132 -0
  26. package/.windsurf/workflows/a-007-DefineTechStack.md +121 -0
  27. package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +118 -0
  28. package/.windsurf/workflows/a-009-DefineScreenDesign.md +121 -0
  29. package/.windsurf/workflows/a-010-DefineDataModel.md +125 -0
  30. package/.windsurf/workflows/a-011-DefineAPISpec.md +123 -0
  31. package/.windsurf/workflows/a-012-DefineArchitecture.md +119 -0
  32. package/.windsurf/workflows/a-013-DefineInfrastructure.md +120 -0
  33. package/.windsurf/workflows/a-014-ReviewDesign.md +122 -0
  34. package/.windsurf/workflows/b-001-CreateTaskDirectory.md +71 -0
  35. package/.windsurf/workflows/b-002-CreateTaskDefinition.md +165 -0
  36. package/.windsurf/workflows/b-003-CreateTaskResearch.md +412 -0
  37. package/.windsurf/workflows/b-004-CreateTaskImplementation.md +97 -0
  38. package/.windsurf/workflows/b-005-ReviewTask.md +312 -0
  39. package/.windsurf/workflows/c-001-ImplementTask.md +493 -0
  40. package/.windsurf/workflows/c-002-UpdateDocumentation.md +797 -0
  41. package/.windsurf/workflows/x-Accessibility-Check.md +469 -0
  42. package/.windsurf/workflows/x-Bundle-Optimize.md +386 -0
  43. package/.windsurf/workflows/x-CI-FixFailure.md +636 -0
  44. package/.windsurf/workflows/x-CI-Setup.md +641 -0
  45. package/.windsurf/workflows/x-Code-Refactor.md +71 -0
  46. package/.windsurf/workflows/x-Code-ResearchAndReview.md +78 -0
  47. package/.windsurf/workflows/x-Component-Create.md +359 -0
  48. package/.windsurf/workflows/x-Context-CatchUp.md +63 -0
  49. package/.windsurf/workflows/x-Database-Seed.md +300 -0
  50. package/.windsurf/workflows/x-Dependencies-Update.md +315 -0
  51. package/.windsurf/workflows/x-DevEnvironment-Setup.md +437 -0
  52. package/.windsurf/workflows/x-Logging-Add.md +682 -0
  53. package/.windsurf/workflows/x-Migration-Create.md +354 -0
  54. package/.windsurf/workflows/x-Problem-RootCauseAnalysis.md +65 -0
  55. package/.windsurf/workflows/x-Repository-Push.md +375 -0
  56. package/.windsurf/workflows/x-Repository-PushToGithub.md +72 -0
  57. package/.windsurf/workflows/x-Requirements-Clarify.md +61 -0
  58. package/.windsurf/workflows/z-CreateWorkflow.md +77 -0
  59. package/README.md +280 -0
  60. package/bin/cli.js +74 -0
  61. package/package.json +28 -0
@@ -0,0 +1,143 @@
1
+ ### Documents
2
+
3
+ ドキュメンテーション構造
4
+
5
+ ---
6
+
7
+ ## プロジェクト単位
8
+
9
+ #### 1. 要件(何を作るか)
10
+
11
+ - **要件定義**
12
+ - システム概要:背景(解決する課題)と目的(提供する価値、解決策)
13
+ - 実装済み機能一覧:既に実装されている機能
14
+ - 未実装機能一覧:今後実装予定の機能
15
+ - 非機能要件一覧:性能、セキュリティ、可用性、スケーラビリティなど
16
+ - **ユーザーストーリー**
17
+ - ユーザーストーリー一覧:各ユーザーストーリー
18
+
19
+ #### 2. 振る舞い(どう動くか)
20
+
21
+ - **振る舞い**
22
+ - Gherkinシナリオ一覧:Given-When-Then形式の理想的な動作シナリオ
23
+
24
+ #### 3. ドメイン(ドメインモデルと用語)
25
+
26
+ - **ドメインモデル**
27
+ - Event Storming形式のドメインモデル:Bounded Context、Actors、Commands、Events、Policies、Aggregatesなど
28
+ - Context Map:Bounded Context間の関係性
29
+ - **ユビキタス言語**
30
+ - ユビキタス言語一覧:プロジェクト共通の用語定義、Bounded Contextごとの用語
31
+
32
+ #### 4. 設計(どう作るか)
33
+
34
+ - **テックスタック**
35
+ - 技術スタック一覧:使用する言語、フレームワーク、ライブラリ、ツール
36
+ - **リポジトリ構造**
37
+ - ディレクトリ構造:プロジェクトのフォルダとファイルの整理方法
38
+ - **画面設計**
39
+ - 画面遷移図:画面間の遷移フローと条件
40
+ - 各画面の役割:各画面の目的と主要な機能
41
+ - **データモデル**
42
+ - ERD(Entity Relationship Diagram):エンティティ、属性、関係性
43
+ - **API仕様**
44
+ - API仕様書:エンドポイント、リクエスト/レスポンス形式、認証方式
45
+ - **アーキテクチャ設計**
46
+ - システムアーキテクチャ図:システム全体の構成とコンポーネントの関係
47
+ - **インフラ設計**
48
+ - インフラ構成図:サーバー構成、ネットワーク、環境設定
49
+
50
+ ---
51
+
52
+ ## タスク単位
53
+
54
+ 作成順序:A → B → C
55
+
56
+ ### A. タスク定義ドキュメント
57
+
58
+ #### 1. 目的
59
+
60
+ - 解決する問題:具体的な課題や不便
61
+ - 提供する価値:ユーザーやシステムが得られる利益
62
+
63
+ #### 2. ユーザーストーリー一覧
64
+
65
+ - [役割]として、[目的]がしたい、なぜなら[理由]
66
+
67
+ #### 3. 変更内容一覧
68
+
69
+ - 画面:追加・変更する画面とUIコンポーネント
70
+ - データモデル:エンティティ、テーブル、フィールドの追加・変更
71
+ - API:エンドポイント、リクエスト/レスポンス形式の追加・変更
72
+ - その他:環境設定、インフラ、ツール設定
73
+
74
+ #### 4. 受け入れ基準
75
+
76
+ - タスク完了の判断条件(例:画面表示の確認、APIの応答確認、Gherkinシナリオ)
77
+
78
+ ### B. リサーチドキュメント
79
+
80
+ #### 1. ベストプラクティス
81
+
82
+ - 技術的なベストプラクティス
83
+ - 設計パターンとアーキテクチャの妥当性
84
+
85
+ #### 2. 既存コードの調査
86
+
87
+ - 類似機能の実装箇所と実装パターン
88
+ - 再利用可能なコンポーネントや関数
89
+ - 参考にすべきコード構造
90
+
91
+ ### C. 実装タスクリスト
92
+
93
+ #### フェーズとステップ
94
+
95
+ テスト可能なフェーズに分割し、各フェーズ内にチェック可能なステップを配置
96
+
97
+ - **フェーズ 1**:[フェーズ名](例:データモデルの実装)
98
+ - [ ] ステップ 1:[タスク内容]
99
+ - 成果物:[生成されるもの]
100
+ - [ ] ステップ 2:[タスク内容]
101
+ - 成果物:[生成されるもの]
102
+ - **フェーズ 2**:[フェーズ名](例:API実装とテスト)
103
+ - [ ] ステップ 1:[タスク内容]
104
+ - 成果物:[生成されるもの]
105
+
106
+ ---
107
+
108
+ ## ディレクトリ構造
109
+
110
+ ```
111
+ docs/
112
+ ├── README.md # ドキュメント構造の説明
113
+ ├── project/ # プロジェクト単位
114
+ │ ├── 01-requirements/ # 要件
115
+ │ │ ├── 01-system-overview.md # システム概要
116
+ │ │ ├── 02-features-implemented.md # 実装済み機能一覧
117
+ │ │ ├── 03-features-planned.md # 未実装機能一覧
118
+ │ │ ├── 04-non-functional-requirements.md # 非機能要件
119
+ │ │ └── 05-user-stories.md # ユーザーストーリー
120
+ │ ├── 02-behavior/ # 振る舞い
121
+ │ │ └── 01-scenarios.md # Gherkinシナリオ一覧
122
+ │ ├── 03-domain/ # ドメイン
123
+ │ │ ├── 01-domain-model.md # ドメインモデル(Event Storming形式)
124
+ │ │ └── 02-ubiquitous-language.md # ユビキタス言語
125
+ │ └── 04-design/ # 設計
126
+ │ ├── 01-tech-stack.md # テックスタック
127
+ │ ├── 02-repository-structure.md # リポジトリ構造
128
+ │ ├── 03-ui-design.md # 画面設計
129
+ │ ├── 04-data-model.md # データモデル(ERD)
130
+ │ ├── 05-api-spec.md # API仕様
131
+ │ ├── 06-architecture.md # アーキテクチャ設計
132
+ │ └── 07-infrastructure.md # インフラ設計
133
+ └── tasks/ # タスク単位
134
+ ├── TASK-001-feature-name/
135
+ │ ├── a-definition.md # タスク定義ドキュメント
136
+ │ ├── b-research.md # リサーチドキュメント
137
+ │ └── c-implementation.md # 実装タスクリスト
138
+ ├── TASK-002-another-feature/
139
+ │ ├── a-definition.md
140
+ │ ├── b-research.md
141
+ │ └── c-implementation.md
142
+ └── ...
143
+ ```
@@ -0,0 +1,49 @@
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
+ 社員がライフラインチャートを通じて自己紹介し、共通点を見つけやすくすることで、組織横断のコミュニケーションを活性化する。コメント機能により双方向の対話を促進し、早期の関係構築を支援する。
@@ -0,0 +1,73 @@
1
+ # 実装済み機能一覧
2
+
3
+ <!--
4
+ 何を書くか: 既に実装・リリース済みの機能を体系的に整理した一覧
5
+
6
+ 目的:
7
+ - プロダクトの現在の機能範囲を明確にする
8
+ - 新規メンバーへのオンボーディング資料として活用
9
+ - 機能追加・変更時の影響範囲把握に役立てる
10
+ - ドキュメントと実装の同期を保つ
11
+
12
+ 記載粒度: ユーザーが認識できる機能単位(APIエンドポイントレベルではなく、ユーザー機能レベル)
13
+
14
+ 更新頻度: 機能リリース時に必ず更新(living documentとして維持)
15
+ -->
16
+
17
+ <!--
18
+ テーブル構成:
19
+
20
+ 【機能ID】
21
+ - 形式: FN-XXX(Feature Number)
22
+ - 採番ルール: 連番、欠番は作らない
23
+ - 用途: 機能の一意識別、他ドキュメントでの参照、変更履歴の追跡
24
+
25
+ 【Category 1】(大分類)
26
+ - プロダクトの主要な機能領域で分類
27
+ - 例: ユーザー管理、コンテンツ、決済、通知、分析
28
+ - 5-10個程度に収める(多すぎると管理が困難)
29
+
30
+ 【Category 2】(中分類)
31
+ - Category 1 をさらに細分化
32
+ - 例: ユーザー管理 → 認証、プロフィール、権限
33
+ - Category 1 と合わせて機能の所在が即座に分かるように
34
+
35
+ 【機能名】
36
+ - 簡潔で分かりやすい名称(2-5単語程度)
37
+ - ユーザー視点の表現を使う(実装用語ではなく)
38
+ - 例: 「ログイン」「記事作成」「パスワードリセット」
39
+
40
+ 【説明】
41
+ - 1-2文で機能の内容を記述(50-100文字程度)
42
+ - 何ができるか(What)を中心に、必要に応じてどう動くか(How)を補足
43
+ - ユーザーへの価値や利点が分かる表現を心がける
44
+ - 技術的詳細は避け、ユーザー機能として記述
45
+
46
+ ベストプラクティス:
47
+ - カテゴリは一貫性を保つ(表記ゆれを避ける)
48
+ - 機能の粒度を揃える(ある機能だけ詳細すぎる/粗すぎるを避ける)
49
+ - 説明は能動態で書く(「〜できる」「〜する」)
50
+ - 内部実装の変更では更新せず、ユーザー体験が変わった時のみ更新
51
+ - 削除された機能は一覧から削除(履歴はGitで管理)
52
+ -->
53
+
54
+ | 機能ID | Category 1 | Category 2 | 機能名 | 説明 |
55
+ |--------|-----------|-----------|--------|------|
56
+ | <!-- FN-001 --> | <!-- カテゴリ1 --> | <!-- カテゴリ2 --> | <!-- 機能名 --> | <!-- 簡潔な説明 --> |
57
+
58
+ ---
59
+
60
+ **例:**
61
+
62
+ | 機能ID | Category 1 | Category 2 | 機能名 | 説明 |
63
+ |--------|-----------|-----------|--------|------|
64
+ | FN-001 | ユーザー管理 | 認証 | ログイン | メールアドレスとパスワードでログイン |
65
+ | FN-002 | ユーザー管理 | 認証 | ログアウト | セッション終了 |
66
+ | FN-003 | ユーザー管理 | 認証 | パスワードリセット | メールでリセットリンク送信 |
67
+ | FN-004 | ユーザー管理 | プロフィール | プロフィール編集 | 名前、アバター、自己紹介の編集 |
68
+ | FN-005 | ユーザー管理 | プロフィール | プロフィール閲覧 | 他ユーザーのプロフィール表示 |
69
+ | FN-006 | コンテンツ | 投稿 | 記事作成 | Markdown形式での記事作成 |
70
+ | FN-007 | コンテンツ | 投稿 | 記事編集 | 既存記事の編集 |
71
+ | FN-008 | コンテンツ | 投稿 | 記事削除 | 記事の削除 |
72
+ | FN-009 | コンテンツ | コメント | コメント投稿 | 記事へのコメント |
73
+ | FN-010 | コンテンツ | コメント | コメント削除 | 自分のコメント削除 |
@@ -0,0 +1,75 @@
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
+ | コンテンツ | コメント | いいね機能 | コメントへのいいね |
@@ -0,0 +1,115 @@
1
+ # 非機能要件一覧
2
+
3
+ <!--
4
+ 何を書くか: システムが「どう動くべきか」を定義する品質要件
5
+
6
+ 目的:
7
+ - システムの性能基準、セキュリティレベル、信頼性を明確化
8
+ - アーキテクチャ設計の指針を提供
9
+ - テスト計画の基準値を設定
10
+ - ステークホルダーとのSLA(サービスレベル合意)の根拠
11
+
12
+ 特徴:
13
+ - 機能要件(何ができるか)に対し、非機能要件は「どれくらい良く動くか」を規定
14
+ - 測定可能で検証可能な基準を設定
15
+ - プロジェクト初期に定義し、開発全体を通じて継続的に検証
16
+
17
+ 記載のポイント:
18
+ - 具体的な数値目標を含める(「高速」ではなく「200ms以内」)
19
+ - 現実的で達成可能な基準を設定
20
+ - ビジネス要件と技術的実現可能性のバランスを取る
21
+
22
+ 更新頻度:
23
+ - プロジェクト初期に定義、要件変更時に見直し
24
+ - システム規模拡大時に再評価(ユーザー数増加など)
25
+ - 定期的な監視結果に基づいて調整
26
+ -->
27
+
28
+ <!--
29
+ テーブル構成:
30
+
31
+ 【カテゴリ】
32
+ 主要なカテゴリと内容:
33
+
34
+ 性能(Performance)
35
+ - 応答時間: ユーザー操作からレスポンスまでの時間
36
+ - スループット: 単位時間あたりの処理件数
37
+ - リソース使用率: CPU、メモリ、ディスク、ネットワーク
38
+ - 同時接続数: 同時にアクセス可能なユーザー数
39
+
40
+ セキュリティ(Security)
41
+ - 認証・認可: ログイン方式、アクセス制御
42
+ - 暗号化: 通信・データの暗号化方式
43
+ - 監査: ログ記録、アクセス履歴
44
+ - 脆弱性対策: OWASP Top 10対応など
45
+ - データ保護: GDPR、個人情報保護法などのコンプライアンス
46
+
47
+ 可用性(Availability)
48
+ - 稼働率: システムが利用可能な時間の割合(例: 99.9%)
49
+ - MTBF: 平均故障間隔
50
+ - MTTR: 平均復旧時間
51
+ - バックアップ: バックアップ頻度と保持期間
52
+ - 障害対応: 検知から復旧までの目標時間
53
+
54
+ スケーラビリティ(Scalability)
55
+ - ユーザー数: 対応可能な最大ユーザー数
56
+ - データ量: 保存可能なデータの上限
57
+ - 拡張性: 水平/垂直スケーリングの方式
58
+ - エラスティシティ: 負荷に応じた自動スケーリング
59
+
60
+ ユーザビリティ(Usability)
61
+ - アクセシビリティ: WCAG準拠レベル
62
+ - 学習容易性: 新規ユーザーが操作を習得する時間
63
+ - 多言語対応: サポートする言語
64
+ - モバイル対応: レスポンシブデザイン、PWA
65
+
66
+ 保守性(Maintainability)
67
+ - コード品質: テストカバレッジ、静的解析基準
68
+ - デプロイ頻度: リリースサイクル
69
+ - ロールバック時間: 問題発生時の巻き戻し時間
70
+
71
+ 互換性(Compatibility)
72
+ - ブラウザ対応: サポートするブラウザとバージョン
73
+ - デバイス対応: PC、タブレット、スマートフォン
74
+ - API互換性: 後方互換性の保証期間
75
+
76
+ 【要件】
77
+ - カテゴリ内の具体的な要件項目名
78
+ - 簡潔で明確な名称(2-5単語程度)
79
+ - 例: 「応答時間」「認証方式」「稼働率」
80
+
81
+ 【説明】
82
+ - 要件の具体的な基準値や条件を記述
83
+ - 測定可能な数値を含める(必須)
84
+ - 測定条件や前提条件も必要に応じて記載
85
+ - 例: 「API応答は95パーセンタイルで200ms以内(通常負荷時)」
86
+
87
+ ベストプラクティス:
88
+ - 「速い」「安全」など曖昧な表現を避け、具体的な数値や基準を使う
89
+ - テスト可能な要件にする(どう検証するか明確にする)
90
+ - 優先度の高い要件から記載(すべてを満たす必要はない場合もある)
91
+ - ビジネス影響を考慮した現実的な基準を設定(過度に厳しい基準は開発コストを増大させる)
92
+ - 競合他社や業界標準を参考にする
93
+ - システムの成長に応じて要件を見直す(初期は緩く、成熟に伴い厳格化も可)
94
+ -->
95
+
96
+ | カテゴリ | 要件 | 説明 |
97
+ |----------|------|------|
98
+ | <!-- カテゴリ名 --> | <!-- 要件名 --> | <!-- 要件の詳細 --> |
99
+
100
+ ---
101
+
102
+ **例:**
103
+
104
+ | カテゴリ | 要件 | 説明 |
105
+ |----------|------|------|
106
+ | 性能 | 応答時間 | API応答は200ms以内 |
107
+ | 性能 | 処理能力 | 同時接続1000ユーザーまで対応 |
108
+ | セキュリティ | 認証 | OAuth 2.0 + JWT認証 |
109
+ | セキュリティ | 暗号化 | TLS 1.3による通信暗号化 |
110
+ | セキュリティ | 監査 | 全API呼び出しのログ記録 |
111
+ | 可用性 | 稼働率 | 99.9%の稼働率を維持 |
112
+ | 可用性 | 障害対応 | 検知から復旧まで4時間以内 |
113
+ | スケーラビリティ | ユーザー数 | 10万ユーザーまで対応可能 |
114
+ | スケーラビリティ | データ量 | 1TBまでのデータ保存 |
115
+ | ユーザビリティ | アクセシビリティ | WCAG 2.1 AA準拠 |
@@ -0,0 +1,124 @@
1
+ # ユーザーストーリー一覧
2
+
3
+ <!--
4
+ 何を書くか: ユーザー視点での機能要求を物語形式で記述したバックログ
5
+
6
+ 目的:
7
+ - ユーザーの課題とニーズを明確化
8
+ - 開発チームとステークホルダーの共通理解を構築
9
+ - 開発優先度の判断材料を提供
10
+ - スプリント計画の基礎資料として活用
11
+
12
+ 特徴:
13
+ - ユーザー中心設計: 実装方法ではなく、ユーザーの「なぜ」に焦点
14
+ - Living Document: 継続的に追加・更新・削除される動的なドキュメント
15
+ - 会話のきっかけ: 詳細仕様ではなく、議論の出発点として機能
16
+ - INVEST原則: Independent(独立)、Negotiable(交渉可能)、Valuable(価値)、Estimable(見積可能)、Small(小さい)、Testable(テスト可能)
17
+
18
+ 記載粒度:
19
+ - 1-2週間のスプリントで完了できるサイズ
20
+ - 大きすぎる場合はEpicとして分割を検討
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
+ <!-- ユーザーストーリーに関する補足情報や依存関係 -->