yodogawa 2.0.0 → 2.1.1

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 (79) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +66 -22
  4. package/bin/cli.js +3 -7
  5. package/package.json +2 -2
  6. package/scripts/create-task.sh +77 -0
  7. package/scripts/init-project-docs.sh +90 -0
  8. package/scripts/init-task-doc.sh +77 -0
  9. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  10. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +48 -0
  11. package/skills/a-002-initialize-project/SKILL.md +125 -289
  12. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  13. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  14. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  15. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  16. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  17. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  18. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  19. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  20. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  21. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  22. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  23. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  24. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  25. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  26. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  27. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  28. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  29. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  30. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  31. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  32. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  33. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  34. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  35. package/skills/a-010-define-design-system/SKILL.md +134 -212
  36. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  37. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  38. package/skills/a-011-define-data-model/SKILL.md +121 -134
  39. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  40. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  41. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  42. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  43. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  44. package/skills/a-013-define-architecture/SKILL.md +101 -128
  45. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  46. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  47. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  48. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  49. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  50. package/skills/a-015-review-design/SKILL.md +88 -140
  51. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  52. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  53. package/skills/b-001-create-task-directory/SKILL.md +62 -78
  54. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  55. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  56. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  57. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  58. package/skills/b-003-create-task-research/SKILL.md +129 -454
  59. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  60. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  61. package/skills/b-004-create-task-implementation/SKILL.md +99 -100
  62. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  63. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  64. package/skills/b-005-review-task/SKILL.md +117 -324
  65. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  66. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  67. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  68. package/skills/c-001-implement-task/SKILL.md +186 -521
  69. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  70. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  71. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  72. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  73. package/skills/c-002-update-documentation/SKILL.md +159 -853
  74. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  75. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  76. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  77. package/templates/tasks/task-template/a-definition.md +1 -1
  78. package/templates/tasks/task-template/b-research.md +1 -1
  79. package/templates/tasks/task-template/c-implementation.md +2 -2
@@ -1,100 +1,67 @@
1
- ---
2
- name: a-001-setup-doc-structure
3
- description: プロジェクトのドキュメントディレクトリ構造を作成し、README で構成を説明する軽量セットアップワークフロー
4
- auto_execution_mode: 1
5
- ---
6
-
7
- # SetupDocStructure (a-001)
8
-
9
- ## 目的
10
-
11
- - プロジェクトルートに標準化されたドキュメントディレクトリ構造を作成する。
12
- - `docs/README.md` を作成し、ドキュメント構成と更新方針を明文化する。
13
-
14
- ## 前提
15
-
16
- - プロジェクトのルートディレクトリへの書き込み権限があること。
17
- - `docs/` ディレクトリが存在しない、または既存の構造を拡張したいこと。
18
-
19
- ## 手順
20
-
21
- ### 1. スクリプトの実行
22
-
23
- - ドキュメント構造セットアップのために、環境に応じたスクリプトを実行してください。
24
-
25
- ```bash
26
- # 環境を自動検出してスクリプトを実行
27
- if [ -d ".agent" ]; then
28
- SCRIPT_DIR=".agent"
29
- elif [ -d ".cursor" ]; then
30
- SCRIPT_DIR=".cursor"
31
- elif [ -d ".claude" ]; then
32
- SCRIPT_DIR=".claude"
33
- elif [ -d ".codex" ]; then
34
- SCRIPT_DIR=".codex"
35
- else
36
- echo "エラー: AI coding assistant ディレクトリが見つかりません"
37
- exit 1
38
- fi
39
-
40
- bash "$SCRIPT_DIR/scripts/setup-docs.sh"
41
- ```
42
-
43
- ### 2. 結果の確認
44
-
45
- - スクリプトの実行結果を確認し、エラーがないことを確認してください。
46
- - 生成された構造:
47
-
48
- ```
49
- docs/
50
- ├── README.md
51
- ├── project/
52
- │ ├── 01-requirements/
53
- │ ├── 02-behavior/
54
- │ ├── 03-domain/
55
- │ └── 04-design/
56
- └── tasks/
57
- ```
58
-
59
- ### 3. Git への追加(オプション)
60
-
61
- - ユーザーに確認:「作成したディレクトリ構造を Git に追加しますか?」
62
- - 「はい」の場合、以下を実行:
63
-
64
- ```bash
65
- git add docs/
66
- git status
67
- ```
68
-
69
- - Git status の結果を表示し、コミットメッセージの提案をする:
70
-
71
- ```
72
- 推奨コミットメッセージ:
73
- ドキュメント構造の初期化
74
-
75
- - 標準的な構造を持つ docs/ ディレクトリを追加
76
- - ドキュメント構成を説明する docs/README.md を追加
77
- ```
78
-
79
- ### 4. 完了条件の確認
80
-
81
- - 以下の完了条件を満たしているか、チェックリストで確認してください:
82
- - [ ] スクリプトが正常に終了した
83
- - [ ] `docs/` ディレクトリ構造が正しく作成されている
84
-
85
- ## 完了条件
86
-
87
- - プロジェクトルートに `docs/` ディレクトリが作成されている。
88
- - `docs/project/` 配下に `01-requirements/`, `02-behavior/`, `03-domain/`, `04-design/` ディレクトリが存在する。
89
- - `docs/tasks/` ディレクトリが存在する。
90
- - `docs/README.md` が作成されている。
91
- - ユーザーに作成結果が報告されている。
92
-
93
- ## エスカレーション
94
-
95
- - 既存の `docs/` ディレクトリが存在し、重要なファイルが含まれている場合:
96
- - 「既存のドキュメント構造が検出されました。上書きや削除のリスクがあるため、手動で確認してください。」と警告し、処理を中断する。
97
- - ファイルシステムの権限エラーが発生した場合:
98
- - 「ディレクトリの作成に失敗しました。書き込み権限を確認してください。」とユーザーに通知する。
99
- - Git リポジトリでない場合に Git 追加を試みた場合:
100
- - 「このディレクトリは Git リポジトリではありません。Git の初期化が必要な場合は `git init` を実行してください。」と案内する。
1
+ ---
2
+ name: a-001-setup-doc-structure
3
+ description: docs/ 配下にプロジェクト/タスク用のディレクトリ構造と README を作成する。新規リポジトリでドキュメント基盤を初期化する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Bash, Glob
6
+ ---
7
+
8
+ # SetupDocStructure (a-001)
9
+
10
+ ## 目的
11
+
12
+ - プロジェクトルートに標準化されたドキュメントディレクトリ構造を作成する。
13
+ - `docs/README.md` を作成し、ドキュメント構成と更新方針を明文化する。
14
+
15
+ ## 前提
16
+
17
+ - プロジェクトのルートディレクトリへの書き込み権限があること
18
+ - `docs/` ディレクトリが存在しない、または既存の構造を拡張したいこと
19
+
20
+ ## 手順
21
+
22
+ ### 1. スクリプトの実行
23
+
24
+ 環境に応じたスクリプトを実行。スクリプト本体とフォールバック実装は [reference/directory-structure.md](reference/directory-structure.md#スクリプト実行コマンド) を参照。
25
+
26
+ ```bash
27
+ SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
28
+ bash "$SCRIPT_DIR/scripts/setup-docs.sh"
29
+ ```
30
+
31
+ ### 2. 結果の確認
32
+
33
+ スクリプト実行結果にエラーがないこと、および期待した構造が生成されていることを確認。生成構造と各ディレクトリの用途は [reference/directory-structure.md](reference/directory-structure.md#生成されるディレクトリ構造) を参照。
34
+
35
+ ### 3. Git への追加(オプション)
36
+
37
+ ユーザーに確認し、「はい」なら:
38
+
39
+ ```bash
40
+ git add docs/
41
+ git status
42
+ ```
43
+
44
+ 推奨コミットメッセージは [reference/directory-structure.md](reference/directory-structure.md#git-追加時の推奨コミットメッセージ) を参照。
45
+
46
+ ### 4. 完了条件の確認
47
+
48
+ - [ ] スクリプトが正常に終了した
49
+ - [ ] `docs/` ディレクトリ構造が正しく作成されている
50
+
51
+ ## 完了条件
52
+
53
+ - プロジェクトルートに `docs/` ディレクトリが作成されている
54
+ - `docs/project/` 配下に `01-requirements/`, `02-behavior/`, `03-domain/`, `04-design/` が存在する
55
+ - `docs/tasks/` ディレクトリが存在する
56
+ - `docs/README.md` が作成されている
57
+ - ユーザーに作成結果が報告されている
58
+
59
+ ## エスカレーション
60
+
61
+ - **既存の `docs/` が存在し重要ファイルを含む**: 「既存のドキュメント構造が検出されました。上書きや削除のリスクがあるため、手動で確認してください。」と警告し処理を中断
62
+ - **権限エラー**: 「ディレクトリの作成に失敗しました。書き込み権限を確認してください。」
63
+ - **Git リポジトリでない**: 「このディレクトリは Git リポジトリではありません。必要なら `git init` を実行してください。」
64
+
65
+ ## 参考
66
+
67
+ - [reference/directory-structure.md](reference/directory-structure.md) — 生成構造、各ディレクトリの用途、スクリプト詳細、推奨コミットメッセージ
@@ -0,0 +1,48 @@
1
+ # docs ディレクトリ構造とコミットメッセージ
2
+
3
+ SKILL.md 手順2〜3で参照する生成構造とコミットメッセージテンプレート。
4
+
5
+ ## 生成されるディレクトリ構造
6
+
7
+ ```
8
+ docs/
9
+ ├── README.md
10
+ ├── project/
11
+ │ ├── 01-requirements/
12
+ │ ├── 02-behavior/
13
+ │ ├── 03-domain/
14
+ │ └── 04-design/
15
+ └── tasks/
16
+ ```
17
+
18
+ ### 各ディレクトリの用途
19
+
20
+ - `project/01-requirements/` — 要件定義(システム概要、機能要件、非機能要件、ユーザーストーリー)
21
+ - `project/02-behavior/` — 振る舞い定義(Gherkin シナリオ)
22
+ - `project/03-domain/` — ドメインモデル、ユビキタス言語
23
+ - `project/04-design/` — 画面設計、データモデル、API 仕様、アーキテクチャ等
24
+ - `tasks/` — 個別タスク(`task{ID}-{SLUG}/` 形式)
25
+
26
+ ## Git 追加時の推奨コミットメッセージ
27
+
28
+ ```
29
+ ドキュメント構造の初期化
30
+
31
+ - 標準的な構造を持つ docs/ ディレクトリを追加
32
+ - ドキュメント構成を説明する docs/README.md を追加
33
+ ```
34
+
35
+ ## スクリプト実行コマンド
36
+
37
+ ```bash
38
+ if [ -d ".claude" ]; then
39
+ SCRIPT_DIR=".claude"
40
+ elif [ -d ".agents" ]; then
41
+ SCRIPT_DIR=".agents"
42
+ else
43
+ echo "エラー: .claude または .agents ディレクトリが見つかりません"
44
+ exit 1
45
+ fi
46
+
47
+ bash "$SCRIPT_DIR/scripts/setup-docs.sh"
48
+ ```
@@ -1,289 +1,125 @@
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/01-requirements/` ディレクトリが存在すること(なければ先に `/a-001-setup-doc-structure` を実行)
19
+ - `docs/` に書き込み権限があること
20
+ - ユーザーがプロジェクト概要と主要機能の基本情報を提供できること
21
+
22
+ ## 手順
23
+
24
+ ### 1. ドキュメントディレクトリの確認
25
+
26
+ ```bash
27
+ ls -la docs/project/01-requirements/ 2>/dev/null || echo "ディレクトリが存在しません"
28
+ ```
29
+
30
+ 存在しない場合: 「`docs/project/01-requirements/` がありません。先に `/a-001-setup-doc-structure` を実行してください。」
31
+
32
+ ### 2. テンプレート一括コピー
33
+
34
+ 要件定義に必要な 5 ファイルのテンプレートを `docs/project/01-requirements/` に一括コピーする。既存ファイルはスキップされる(冪等)。
35
+
36
+ ```bash
37
+ SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
38
+ bash "$SCRIPT_DIR/scripts/init-project-docs.sh" requirements
39
+ ```
40
+
41
+ コピーされるファイル:
42
+
43
+ - `01-system-overview.md`
44
+ - `02-features-implemented.md`
45
+ - `03-features-planned.md`
46
+ - `04-non-functional-requirements.md`
47
+ - `05-user-stories.md`
48
+
49
+ ### 3. コードベースの自動分析と提案
50
+
51
+ **規模確認**:
52
+
53
+ ```bash
54
+ ls -F
55
+ ```
56
+
57
+ ファイルがほとんど無い/ソースコードが無い場合はスキップし、ユーザーへ通知。
58
+
59
+ **詳細調査**(コードがある場合):
60
+
61
+ ```bash
62
+ cat package.json 2>/dev/null
63
+ cat README.md 2>/dev/null
64
+ find src app lib -maxdepth 2 2>/dev/null
65
+ ```
66
+
67
+ 結果から以下を推測・提示: システム概要(目的・技術スタック)、実装済み機能(ファイル構造からの推測)、想定ユーザー像。
68
+
69
+ ### 4. システム概要の記入
70
+
71
+ `01-system-overview.md` を開き、「背景」「目的」をヒアリングして記入する。質問例は [reference/hearing-questions.md](reference/hearing-questions.md) を参照。
72
+
73
+ ### 5. 実装済み機能一覧の記入
74
+
75
+ `02-features-implemented.md` に、コードベース調査で検出したディレクトリ/ファイル名から機能を提案し、ヒアリング結果をテーブルに記入する(Category 1/2、機能名、説明、機能 ID)。
76
+
77
+ コード調査コマンドとヒアリング項目は [reference/hearing-questions.md](reference/hearing-questions.md#手順4-実装済み機能一覧) を参照。
78
+
79
+ ### 6. 予定機能一覧の記入
80
+
81
+ `03-features-planned.md` に、システム概要と実装済み機能のギャップを分析して未実装機能を提案し、ヒアリング結果をテーブルに記入する(機能 ID・優先度は未確定のまま)。
82
+
83
+ ### 7. 非機能要件の記入
84
+
85
+ `04-non-functional-requirements.md` に、詳細定義が必要か確認の上、パフォーマンス/セキュリティ/可用性/スケーラビリティ/ユーザビリティ・保守性の観点で**定量的な目標**をヒアリングして記入する。不要なら標準ベースライン([examples/nfr-baseline.md](examples/nfr-baseline.md))で仮置きする。
86
+
87
+ ### 8. ユーザーストーリーの記入
88
+
89
+ `05-user-stories.md` に、作成済みドキュメントから主要ユーザージャーニーを抽出してストーリー案を提示し、ヒアリング結果をテーブルに記入する(優先度・受け入れ基準含む)。
90
+
91
+ ストーリーテンプレート: 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
92
+
93
+ ### 9. 全体レビュー
94
+
95
+ - 作成した全ドキュメントをユーザーに提示し、以下を確認:
96
+ - 「記載内容に誤りや漏れはありませんか?」
97
+ - 「抽象的すぎる記述や、解釈が分かれそうな表現はありますか?」
98
+ - 「テンプレートのコメントや不要な例示は適切に処理されていますか?」
99
+
100
+ ### 10. 完了条件と構造の確認
101
+
102
+ - ファイルの存在と主要セクション/テーブル構造を検証。
103
+ - 検証コマンド・チェックリスト・Git コミット手順は [reference/structure-check.md](reference/structure-check.md) を参照。
104
+
105
+ ### 11. Git への追加(オプション)
106
+
107
+ 詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加オプション) を参照。
108
+
109
+ ## 完了条件
110
+
111
+ - `docs/project/01-requirements/` に 5 つの要件定義ドキュメントが作成されている
112
+ - すべてのドキュメントで抽象的表現が最小化され、具体的な数値・期限・制約が記載されている
113
+ - ユーザーがドキュメント内容を確認し、承認またはフィードバックを提供している
114
+
115
+ ## エスカレーション
116
+
117
+ - **ユーザーが重要な情報を提供できない**: 「この情報は後続の設計・実装で必須です。確認できる担当者や資料はありますか?」と確認し、TODO として記録。
118
+ - **競合する要件や矛盾**: 「以下の要件が競合しています: [詳細]。優先順位や調整方針を確認させてください。」と報告。
119
+ - **想定工数が非現実的に大きい**: 「現在の計画では実現が困難です。スコープ縮小や優先度調整を検討しませんか?」と提案。
120
+
121
+ ## 参考
122
+
123
+ - [reference/hearing-questions.md](reference/hearing-questions.md) — 手順4〜8のヒアリング質問集
124
+ - [reference/structure-check.md](reference/structure-check.md) — 手順10の構造チェックコマンドと Git コミット手順
125
+ - [examples/nfr-baseline.md](examples/nfr-baseline.md) — 非機能要件の標準ベースライン提案値