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
@@ -0,0 +1,58 @@
1
+ # レビュー結果レポートテンプレート
2
+
3
+ SKILL.md 手順3 で作成する `docs/project/REVIEW-REPORT-*.md` のフォーマット例。
4
+
5
+ ## レポートフォーマット
6
+
7
+ ```markdown
8
+ # ドキュメント一貫性レビュー結果
9
+
10
+ **実施日**: YYYY-MM-DD
11
+
12
+ ## サマリー
13
+
14
+ - OK: X 項目
15
+ - Warning: X 項目
16
+ - Error: X 項目
17
+
18
+ ## 詳細
19
+
20
+ ### 1. ユーザーストーリー ↔ シナリオ
21
+
22
+ - **Error**: US-005 に対応するシナリオが見つかりません。
23
+ - OK: 優先度 High のストーリーはすべてカバーされています。
24
+
25
+ ### 2. 機能要件・非機能要件
26
+
27
+ - **Warning**: 実装済み機能「決済」のシナリオが不足しています。
28
+ - OK: パフォーマンス要件に対応する Read Model が定義されています。
29
+
30
+ ### 3. シナリオ ↔ ドメインモデル
31
+
32
+ - **Warning**: シナリオ SC-003 の Command「在庫を引き当てる」がドメインモデルに未定義です。
33
+
34
+ ### 4. ユビキタス言語
35
+
36
+ - **Error**: 用語「ShippingAddress」がユビキタス言語一覧にありません。
37
+ - **Warning**: 禁止用語「User Data」が `01-domain-model.md` で使用されています。
38
+
39
+ ## 推奨アクション
40
+
41
+ 1. `/a-003-create-scenarios` で US-005 のシナリオを追加する。
42
+ 2. `/a-004-define-domain-model` で「在庫を引き当てる」コマンドを定義する。
43
+ 3. `01-domain-model.md` の「User Data」を「User Profile」に修正する。
44
+ ```
45
+
46
+ ## 重大度記号の使い方
47
+
48
+ | 記号 | 意味 | 対応 |
49
+ |:--|:--|:--|
50
+ | OK | 問題なし | 記録のみ |
51
+ | Warning | 軽微な不整合 | 計画的に修正 |
52
+ | Error | 重大な不整合 | 実装前に必ず修正 |
53
+
54
+ ## コミットメッセージ例
55
+
56
+ ```text
57
+ docs: 要件・ドメイン整合性レビューレポートの作成
58
+ ```
@@ -0,0 +1,60 @@
1
+ # 一貫性チェック項目詳細
2
+
3
+ SKILL.md 手順2 で実施する各チェック項目の詳細。自動検索(grep 等)と手動確認を組み合わせる。
4
+
5
+ ## 2.1 ユーザーストーリー ↔ シナリオ
6
+
7
+ - **カバレッジ**: すべての US-XXX に対応する SC-XXX が存在するか。
8
+ - **整合性**: ストーリーの「価値」とシナリオの「結果(Then)」が一致しているか。
9
+
10
+ ```bash
11
+ # 全ユーザーストーリーの ID 抽出
12
+ grep -oE "US-[0-9]+" docs/project/requirements/05-user-stories.md | sort -u
13
+ # シナリオ側の参照
14
+ grep -oE "US-[0-9]+" docs/project/behavior/01-scenarios.md | sort -u
15
+ ```
16
+
17
+ ## 2.2 実装済み機能・予定機能 ↔ シナリオ
18
+
19
+ - **実装済み機能**: `02-features-implemented.md` の機能にリグレッション用シナリオが存在するか。
20
+ - **予定機能**: `03-features-planned.md` の優先度 High 機能にシナリオが存在するか。
21
+
22
+ ## 2.3 非機能要件 ↔ ドメインモデル
23
+
24
+ - **パフォーマンス**: `04-non-functional-requirements.md` の要件(読み込み速度、スループット等)に対し、Read Model や CQRS が検討されているか。
25
+ - **セキュリティ**: 認証・権限要件が Policy や Guard としてドメインモデルに含まれているか。
26
+
27
+ ## 2.4 シナリオ ↔ ドメインモデル
28
+
29
+ - **Command**: シナリオの When(アクション)がドメインモデルの Command として定義されているか。
30
+ - **Event**: シナリオの Then(結果)が Domain Event として定義されているか。
31
+ - **Actor**: シナリオの Actor がドメインモデルに存在するか。
32
+
33
+ ## 2.5 ユビキタス言語の遵守
34
+
35
+ - **用語定義**: ドメインモデルの主要要素(Aggregate, Command, Event)がユビキタス言語一覧にあるか。
36
+ - **禁止用語**: 各ドキュメントに禁止用語(Data, Process, Manager 等)が使われていないか。
37
+
38
+ ```bash
39
+ # 禁止用語の簡易検索
40
+ grep -rn "Data" docs/project/domain/ || echo "No 'Data' found"
41
+ grep -rn "Process" docs/project/domain/ || echo "No 'Process' found"
42
+ grep -rn "Manager" docs/project/domain/ || echo "No 'Manager' found"
43
+ ```
44
+
45
+ ## 2.6 目的との整合性
46
+
47
+ - システム概要(`01-system-overview.md`)の「目的」とドメインモデルの「Core Domain」が一致しているか。
48
+ - ビジネス価値の提供元が Core に寄っているか(Generic に偏っていないか)。
49
+
50
+ ## エスカレーションの判断材料
51
+
52
+ - **多数の Error が検出された場合**: ドキュメント信頼性が低い → 関係者を集めた大規模レビュー会議を推奨。
53
+ - **Core Domain での不整合**: リスクが高い → 実装前に必ず解消。
54
+
55
+ ## Git への追加(任意)
56
+
57
+ ```bash
58
+ git add docs/project/REVIEW-REPORT-*.md
59
+ git commit -m "docs: 要件・ドメイン整合性レビューレポートの作成"
60
+ ```
@@ -1,130 +1,102 @@
1
- ---
2
- name: a-007-define-tech-stack
3
- description: 要件を分析して推奨技術スタックを提案し、ユーザーとの詳細なインタビューを通じて最適な技術選定を行うワークフロー
4
- ---
5
-
6
- # DefineTechStack (a-007)
7
-
8
- ## 目的
9
-
10
- - 既存の要件ドキュメント(システム概要、非機能要件、ドメインモデル)を分析し、適合する技術スタックを推奨する。
11
- - 推奨案を提示した上で、ユーザーと詳細なインタビューを行い、すべての技術選定を明確化する。
12
- - 技術選定の理由、バージョン、選定タイミング(初期/中期/後期/随時)を明確に記録する。
13
-
14
- ## 前提
15
-
16
- - `docs/project/requirements/` 配下のドキュメントが作成されていること。
17
- - `docs/project/domain/` 配下のドキュメントが作成されていること。
18
- - `docs/project/design/` ディレクトリが存在すること(存在しない場合は先に `SetupDocStructure` (a-001) を実行)。
19
-
20
- ## 手順
21
-
22
- ### 1. ドキュメントと前提条件の確認
23
-
24
- - `docs/project/design/` ディレクトリの存在を確認
25
-
26
- ```bash
27
- ls -la docs/project/design/ 2>/dev/null || echo "ディレクトリが存在しません"
28
- ```
29
-
30
- - 存在しない場合:ユーザーに通知し、`SetupDocStructure` (a-001) を実行するよう促す。
31
-
32
- - 必要な要件ドキュメントを読み込む:
33
- - `docs/project/requirements/01-system-overview.md`
34
- - `docs/project/requirements/03-features-planned.md`
35
- - `docs/project/requirements/04-non-functional-requirements.md`
36
- - `docs/project/domain/01-domain-model.md`
37
-
38
- ### 2. テンプレートの準備
39
-
40
- - テンプレートをコピーして作業用ファイルを作成する:
41
-
42
- ```bash
43
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
44
- cp "$SCRIPT_DIR/templates/project/04-design/01-tech-stack.md" "docs/project/design/01-tech-stack.md"
45
- ```
46
-
47
- ### 3. 要件分析と推奨技術スタックの生成
48
-
49
- - **システム特性の分析**: アプリケーションタイプ(SPA/SSR等)、非機能要件(パフォーマンス/セキュリティ)、ドメイン複雑度を分析する。
50
- - **推奨案の作成**: 以下のレイヤーごとに推奨技術を選定する。
51
- 1. フロントエンド
52
- 2. バックエンド
53
- 3. データベース
54
- 4. インフラ・CI/CD
55
- 5. 監視・テスト
56
-
57
- - **推奨案の提示**:
58
- - 「要件分析の結果、以下の技術スタックを推奨します:」
59
- - 各技術について「推奨理由」と「代替案」を提示する。
60
-
61
- ### 4. 詳細インタビューと選定
62
-
63
- ユーザーからのフィードバックを受け、各レイヤーについて詳細を確認する。
64
-
65
- - **フロントエンド**: フレームワーク(React/Vue等)、TypeScript利用、状態管理、スタイリング。
66
- - **バックエンド**: 言語、フレームワーク、APIスタイル(REST/GraphQL)。
67
- - **データベース**: RDBMS/NoSQL、ORM、マイグレーション戦略。
68
- - **インフラ**: クラウド/PaaS、コンテナ化(Docker)、IaC。
69
- - **開発ツール**: リンター/フォーマッター、テストツール、CI/CD。
70
-
71
- ### 5. ドキュメント作成
72
-
73
- - ヒアリング結果を `docs/project/design/01-tech-stack.md` に記入する。
74
- - **必須項目**:
75
- - 技術名、バージョン
76
- - 選定理由(要件とのマッピング)
77
- - 選定タイミング(初期/中期/後期)
78
-
79
- ### 6. 完了条件と構造の確認
80
-
81
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
82
-
83
- 1. **構造確認**:
84
-
85
- ```bash
86
- # フロントエンドセクションの確認
87
- grep "### フロントエンド" docs/project/design/01-tech-stack.md && echo "OK" || echo "MISSING: Frontend section"
88
- # バックエンドセクションの確認
89
- grep "### バックエンド" docs/project/design/01-tech-stack.md && echo "OK" || echo "MISSING: Backend section"
90
- # 技術選定理由の確認(メモ欄など)
91
- grep "|" docs/project/design/01-tech-stack.md | head -n 5
92
- ```
93
-
94
- 2. **チェックリスト**:
95
- - [ ] `docs/project/design/01-tech-stack.md` が作成されている
96
- - [ ] 主要なレイヤー(FE, BE, DB, Infra)の技術が選定されている
97
- - [ ] 選定理由が明確に記載されている
98
-
99
- ### 7. Git への追加(オプション)
100
-
101
- - ユーザーに確認:「作成した技術スタックドキュメントを Git に追加しますか?」
102
- - 「はい」の場合、以下を実行:
103
-
104
- ```bash
105
- git add docs/project/design/01-tech-stack.md
106
- git status
107
- ```
108
-
109
- - 推奨コミットメッセージ:
110
-
111
- ```
112
- docs: 技術スタック選定ドキュメントの作成
113
-
114
- - フロントエンド、バックエンド、インフラ等の技術選定を定義
115
- - 選定理由と導入フェーズを明記
116
- ```
117
-
118
- ## 完了条件
119
-
120
- - `docs/project/design/01-tech-stack.md` が作成されている。
121
- - すべてのレイヤーについて技術選定が完了している(または「保留」として記録されている)。
122
- - 選定理由とバージョンが明確になっている。
123
- - ユーザーが内容を承認している。
124
-
125
- ## エスカレーション
126
-
127
- - ユーザーが決められない場合:
128
- - 「要件に基づき、最も標準的でリスクの少ない[技術名]を仮採用とし、実装フェーズで再評価しませんか?」と提案する。
129
- - コストや学習コストの懸念がある場合:
130
- - 「初期フェーズは慣れた技術([技術名])を採用し、複雑な要件が出てきた段階で移行を検討しましょう。」と提案する。
1
+ ---
2
+ name: a-007-define-tech-stack
3
+ description: 要件とドメインモデルを踏まえて推奨技術スタックを提案し、対話で最終確定する。ドメイン設計完了後、実装技術を選定する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineTechStack (a-007)
9
+
10
+ ## 目的
11
+
12
+ - 既存の要件ドキュメント(システム概要、非機能要件、ドメインモデル)を分析し、適合する技術スタックを推奨する。
13
+ - 推奨案を提示した上で、ユーザーと詳細なインタビューを行い、すべての技術選定を明確化する。
14
+ - 技術選定の理由、バージョン、選定タイミング(初期/中期/後期/随時)を明確に記録する。
15
+
16
+ ## 前提
17
+
18
+ - `docs/project/requirements/` 配下のドキュメントが作成されていること。
19
+ - `docs/project/domain/` 配下のドキュメントが作成されていること。
20
+ - `docs/project/design/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
21
+
22
+ ## 手順
23
+
24
+ ### 1. ドキュメントと前提条件の確認
25
+
26
+ ```bash
27
+ ls -la docs/project/design/ 2>/dev/null || echo "ディレクトリが存在しません"
28
+ ```
29
+
30
+ 要件ドキュメント(`01-system-overview.md`, `03-features-planned.md`, `04-non-functional-requirements.md`)とドメインモデル(`01-domain-model.md`)を読み込む。
31
+
32
+ ### 2. テンプレートの準備
33
+
34
+ ```bash
35
+ SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
36
+ cp "$SCRIPT_DIR/templates/project/04-design/01-tech-stack.md" "docs/project/design/01-tech-stack.md"
37
+ ```
38
+
39
+ ### 3. 要件分析と推奨技術スタックの生成
40
+
41
+ - **システム特性の分析**: アプリケーションタイプ(SPA/SSR 等)、非機能要件、ドメイン複雑度
42
+ - **レイヤー別推奨**: フロントエンド / バックエンド / データベース / インフラ・CI/CD / 監視・テスト
43
+ - **提示形式**: 各技術に「推奨理由」と「代替案」を付ける
44
+
45
+ 提案フォーマットと各層の候補一覧は [examples/stack-interview.md](examples/stack-interview.md#推奨案提示フォーマット) を参照。
46
+
47
+ ### 4. 詳細インタビューと選定
48
+
49
+ フィードバックを受けてレイヤーごとに詳細確認する。各レイヤーの具体的な質問項目は [examples/stack-interview.md](examples/stack-interview.md#レイヤー別インタビュー項目) を参照。
50
+
51
+ - フロントエンド: フレームワーク、TypeScript、状態管理、スタイリング
52
+ - バックエンド: 言語、フレームワーク、API スタイル
53
+ - データベース: RDBMS/NoSQL、ORM、マイグレーション
54
+ - インフラ: クラウド、コンテナ、IaC
55
+ - 開発ツール: リンター、テスト、CI/CD
56
+
57
+ ### 5. ドキュメント作成
58
+
59
+ ヒアリング結果を `docs/project/design/01-tech-stack.md` に記入する。必須項目:
60
+
61
+ - 技術名、バージョン
62
+ - 選定理由(要件とのマッピング)
63
+ - 選定タイミング(初期/中期/後期/随時)
64
+
65
+ 記入例は [examples/stack-interview.md](examples/stack-interview.md#記入例表形式) を参照。
66
+
67
+ ### 6. 構造チェック
68
+
69
+ ```bash
70
+ grep "### フロントエンド" docs/project/design/01-tech-stack.md \
71
+ && grep "### バックエンド" docs/project/design/01-tech-stack.md \
72
+ && echo "OK" || echo "MISSING SECTION"
73
+ ```
74
+
75
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
76
+
77
+ ### 7. Git への追加(任意)
78
+
79
+ ```bash
80
+ git add docs/project/design/01-tech-stack.md
81
+ git commit -m "docs: 技術スタック選定ドキュメントの作成"
82
+ ```
83
+
84
+ 詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加任意) を参照。
85
+
86
+ ## 完了条件
87
+
88
+ - `docs/project/design/01-tech-stack.md` が作成されている。
89
+ - すべてのレイヤーについて技術選定が完了している(または「保留」として記録されている)。
90
+ - 選定理由とバージョンが明確になっている。
91
+ - ユーザーが内容を承認している。
92
+
93
+ ## エスカレーション
94
+
95
+ - **ユーザーが決められない**: 「要件に基づき、最も標準的でリスクの少ない [技術名] を仮採用とし、実装フェーズで再評価しませんか?」
96
+ - **コスト・学習コストの懸念**: 「初期フェーズは慣れた技術([技術名])を採用し、複雑要件が出てから移行検討しましょう。」
97
+ - 詳細応答例は [reference/structure-check.md](reference/structure-check.md#エスカレーション時の推奨応答) を参照。
98
+
99
+ ## 参考
100
+
101
+ - [examples/stack-interview.md](examples/stack-interview.md) 推奨案フォーマット、レイヤー別インタビュー項目、選定タイミング区分、記入例
102
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
@@ -0,0 +1,83 @@
1
+ # 推奨スタックとインタビュー項目
2
+
3
+ SKILL.md 手順3〜4 で使用する提案テンプレートと詳細ヒアリング項目。
4
+
5
+ ## 推奨案提示フォーマット
6
+
7
+ ```markdown
8
+ ### 推奨技術スタック
9
+
10
+ **フロントエンド**: React 18 + TypeScript 5 + Vite
11
+ - 推奨理由: SPA 要件、エコシステム、TypeScript による型安全性
12
+ - 代替案: Vue 3 + Nuxt(SSR が必要な場合)
13
+
14
+ **バックエンド**: Node.js 20 + NestJS + TypeScript
15
+ - 推奨理由: FE と言語統一、DDD 志向のモジュール構成が標準装備
16
+ - 代替案: Go + Gin(高スループットが必要な場合)
17
+
18
+ **データベース**: PostgreSQL 16 + Prisma
19
+ - 推奨理由: リレーショナルデータ、JSON 型、強い整合性
20
+ - 代替案: MySQL 8(既存資産がある場合)
21
+ ```
22
+
23
+ ## レイヤー別インタビュー項目
24
+
25
+ ### フロントエンド
26
+
27
+ - フレームワーク: React / Vue / Svelte / SolidJS
28
+ - レンダリング: SPA / SSR / SSG / Islands
29
+ - TypeScript 利用の有無
30
+ - 状態管理: React Query / Zustand / Redux Toolkit / Pinia
31
+ - スタイリング: Tailwind / CSS Modules / styled-components
32
+
33
+ ### バックエンド
34
+
35
+ - 言語: TypeScript / Go / Python / Rust / Kotlin
36
+ - フレームワーク: NestJS / Fastify / Gin / FastAPI / Spring Boot
37
+ - API スタイル: REST / GraphQL / gRPC / tRPC
38
+ - バリデーション: Zod / class-validator / Pydantic
39
+
40
+ ### データベース
41
+
42
+ - 種別: RDBMS(PostgreSQL / MySQL)/ NoSQL(MongoDB / DynamoDB)
43
+ - ORM / クエリビルダー: Prisma / TypeORM / Drizzle / sqlc
44
+ - マイグレーション戦略: 自動生成 / 手書き
45
+
46
+ ### インフラ・CI/CD
47
+
48
+ - クラウド: AWS / GCP / Azure / Cloudflare / Vercel
49
+ - コンテナ: Docker / Kubernetes / ECS / Cloud Run
50
+ - IaC: Terraform / Pulumi / CDK
51
+ - CI/CD: GitHub Actions / GitLab CI / CircleCI
52
+
53
+ ### 監視・テスト
54
+
55
+ - ログ/メトリクス: Datadog / New Relic / Grafana + Prometheus
56
+ - エラートラッキング: Sentry
57
+ - テスト: Vitest / Jest / Playwright / Cypress
58
+ - リンター: ESLint + Prettier / Biome
59
+
60
+ ## 選定タイミング区分
61
+
62
+ - **初期**: MVP 構築時点から導入
63
+ - **中期**: ユーザー増加に合わせて導入
64
+ - **後期**: スケール・運用安定化で導入
65
+ - **随時**: 必要に応じて導入
66
+
67
+ ## 記入例(表形式)
68
+
69
+ | 層 | 技術 | バージョン | 選定理由 | タイミング |
70
+ |:--|:--|:--|:--|:--|
71
+ | FE | React | 18.x | SPA・エコシステム | 初期 |
72
+ | BE | NestJS | 10.x | DDD 構成 | 初期 |
73
+ | DB | PostgreSQL | 16.x | 整合性 | 初期 |
74
+ | 監視 | Datadog | - | 統合監視 | 中期 |
75
+
76
+ ## コミットメッセージ例
77
+
78
+ ```text
79
+ docs: 技術スタック選定ドキュメントの作成
80
+
81
+ - フロントエンド、バックエンド、インフラ等の技術選定を定義
82
+ - 選定理由と導入フェーズを明記
83
+ ```
@@ -0,0 +1,51 @@
1
+ # 構造チェックとレビュー観点
2
+
3
+ SKILL.md 手順6〜7 で使う確認コマンドとレビュー観点。
4
+
5
+ ## セクション存在確認
6
+
7
+ ```bash
8
+ # フロントエンドセクションの確認
9
+ grep "### フロントエンド" docs/project/design/01-tech-stack.md && echo "OK" || echo "MISSING: Frontend section"
10
+ # バックエンドセクションの確認
11
+ grep "### バックエンド" docs/project/design/01-tech-stack.md && echo "OK" || echo "MISSING: Backend section"
12
+ # 技術選定理由の確認(表形式)
13
+ grep "|" docs/project/design/01-tech-stack.md | head -n 5
14
+ ```
15
+
16
+ ## チェックリスト
17
+
18
+ - [ ] `docs/project/design/01-tech-stack.md` が作成されている
19
+ - [ ] 主要レイヤー(FE, BE, DB, Infra, 監視/テスト)の技術が選定されている
20
+ - [ ] 各技術にバージョンが記載されている
21
+ - [ ] 選定理由が要件とマッピングされている
22
+ - [ ] 選定タイミング(初期/中期/後期/随時)が明記されている
23
+ - [ ] 保留項目は「保留」として記録されている
24
+
25
+ ## レビュー確認質問
26
+
27
+ - 「各技術の選定理由は要件に基づいていますか?」
28
+ - 「チームの習熟度に対して無理のない選定ですか?」
29
+ - 「バージョンは LTS や安定版が選ばれていますか?」
30
+ - 「監視・テスト戦略も含まれていますか?」
31
+
32
+ ## エスカレーション時の推奨応答
33
+
34
+ - **ユーザーが決められない**: 「最も標準的でリスクの少ない [技術名] を仮採用とし、実装フェーズで再評価しませんか?」
35
+ - **コスト・学習コストの懸念**: 「初期フェーズは慣れた技術([技術名])を採用し、複雑要件が出てから移行検討しましょう。」
36
+
37
+ ## Git への追加(任意)
38
+
39
+ ```bash
40
+ git add docs/project/design/01-tech-stack.md
41
+ git status
42
+ ```
43
+
44
+ 推奨コミットメッセージ:
45
+
46
+ ```text
47
+ docs: 技術スタック選定ドキュメントの作成
48
+
49
+ - フロントエンド、バックエンド、インフラ等の技術選定を定義
50
+ - 選定理由と導入フェーズを明記
51
+ ```