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,132 +1,108 @@
1
- ---
2
- name: a-012-define-api-spec
3
- description: データモデルと画面設計からAPI仕様を定義し、認証方式、エンドポイント一覧、共通レスポンス形式を明確化するワークフロー
4
- ---
5
-
6
- # DefineAPISpec (a-012)
7
-
8
- ## 目的
9
-
10
- - データモデルと画面設計を基に、API仕様の基本設計を定義する。
11
- - API設計スタイル(REST、GraphQL、gRPC、tRPC)を決定する。
12
- - 認証・認可方式を明確化する。
13
- - エンドポイント一覧(メソッド、パス、説明、認証要否)を定義する。
14
- - 共通レスポンス形式(成功/エラー)を定義する。
15
-
16
- ## 前提
17
-
18
- - `docs/project/design/01-tech-stack.md` が作成されていること(APIスタイル選定済み)。
19
- - `docs/project/design/05-data-model.md` が作成されていること。
20
- - `docs/project/design/03-screen-design.md` が作成されていること。
21
- - `docs/project/design/` ディレクトリが存在すること。
22
-
23
- ## 手順
24
-
25
- ### 1. ドキュメントと前提条件の確認
26
-
27
- - 必要なドキュメントを読み込む:
28
- - `docs/project/design/01-tech-stack.md`
29
- - `docs/project/design/05-data-model.md`
30
- - `docs/project/design/03-screen-design.md`
31
-
32
- - ドキュメントが不足している場合、対応するワークフローの実行を促す。
33
-
34
- ### 2. テンプレートの準備
35
-
36
- - テンプレートをコピーして作業用ファイルを作成する:
37
-
38
- ```bash
39
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
40
- cp "$SCRIPT_DIR/templates/project/04-design/06-api-spec.md" "docs/project/design/06-api-spec.md"
41
- ```
42
-
43
- ### 3. APIスタイルの確認と提案
44
-
45
- - 技術スタック(01-tech-stack.md)で選定されたAPIスタイル(REST, GraphQL等)を確認する。
46
- - データモデル(05-data-model.md)と画面設計(03-screen-design.md)から、必要なリソースと操作を抽出する。
47
- - **エンドポイント案の提示**:
48
- - 「以下のリソースに対するエンドポイントを定義します:」
49
- - 「Users: 一覧, 詳細, 作成, 更新, 削除」
50
- - 「Auth: ログイン, 登録, リフレッシュ」
51
-
52
- ### 4. 詳細定義(インタビュー)
53
-
54
- ユーザーからのフィードバックを受け、詳細を定義する。
55
-
56
- #### 4.1 認証・認可
57
-
58
- - 認証方式(JWT, OAuth等)、トークンの扱い(Cookie vs Header)
59
- - 認可スコープやロールの定義
60
-
61
- #### 4.2 エンドポイント詳細
62
-
63
- - 各リソースのパス設計(RESTful原則の適用)
64
- - 認証の要否(Public vs Private)
65
- - CRUD以外の特殊なアクション(`/cancel`, `/publish` 等)
66
-
67
- #### 4.3 共通レスポンス形式
68
-
69
- - 成功時のレスポンス構造(`{ data: ... }` ラップの有無)
70
- - エラー時のレスポンス構造(`{ error: { code, message } }` 等)
71
- - ページネーションの仕様
72
-
73
- ### 5. ドキュメント作成
74
-
75
- - `docs/project/design/06-api-spec.md` に決定事項を記入する。
76
- - **必須項目**:
77
- - 認証・認可仕様
78
- - エンドポイント一覧(リソース別)
79
- - 共通レスポンス形式
80
-
81
- ### 6. 完了条件と構造の確認
82
-
83
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
84
- 1. **構造確認**:
85
-
86
- ```bash
87
- # 認証セクションの確認
88
- grep "## 認証・認可" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Auth section"
89
- # エンドポイント一覧の確認
90
- grep "## エンドポイント一覧" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Endpoints"
91
- # レスポンス形式の確認
92
- grep "## 共通レスポンス形式" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Response format"
93
- ```
94
-
95
- 2. **チェックリスト**:
96
- - [ ] `docs/project/design/06-api-spec.md` が作成されている
97
- - [ ] 認証方式が明確に定義されている
98
- - [ ] 主要なリソースのCRUDエンドポイントが網羅されている
99
-
100
- ### 7. Git への追加(オプション)
101
-
102
- - ユーザーに確認:「作成したAPI仕様ドキュメントを Git に追加しますか?」
103
- - 「はい」の場合、以下を実行:
104
-
105
- ```bash
106
- git add docs/project/design/06-api-spec.md
107
- git status
108
- ```
109
-
110
- - 推奨コミットメッセージ:
111
-
112
- ```
113
- docs: API仕様(基本設計)の作成
114
-
115
- - 認証・認可方式の定義
116
- - エンドポイント一覧と共通レスポンス形式を定義
117
- ```
118
-
119
- ## 完了条件
120
-
121
- - `docs/project/design/06-api-spec.md` が作成されている。
122
- - 認証・認可の仕組みが定義されている。
123
- - エンドポイント一覧(メソッド、パス、認証要否)が定義されている。
124
- - 共通レスポンス形式(成功/エラー)が定義されている。
125
- - ユーザーが内容を承認している。
126
-
127
- ## エスカレーション
128
-
129
- - APIスタイル(REST/GraphQL)が未定の場合:
130
- - 「APIスタイルが未定です。`DefineTechStack` (a-007) に戻って選定してください。」
131
- - データモデルとの不整合がある場合:
132
- - 「データモデルに存在しないリソースのエンドポイントが要求されています。データモデルを見直すか、APIだけの概念として定義するか確認してください。」
1
+ ---
2
+ name: a-012-define-api-spec
3
+ description: データモデルと画面設計から API 仕様(認証方式・エンドポイント一覧・共通レスポンス形式)を定義する。データモデル確定後、フロント/バック間のインターフェースを固める際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineAPISpec (a-012)
9
+
10
+ ## 目的
11
+
12
+ - データモデルと画面設計を基に、API 仕様の基本設計を定義する。
13
+ - API 設計スタイル(REST、GraphQL、gRPC、tRPC)を決定する。
14
+ - 認証・認可方式を明確化する。
15
+ - エンドポイント一覧(メソッド、パス、説明、認証要否)を定義する。
16
+ - 共通レスポンス形式(成功/エラー)を定義する。
17
+
18
+ ## 前提
19
+
20
+ - `docs/project/design/01-tech-stack.md` が作成されていること(API スタイル選定済み)。
21
+ - `docs/project/design/05-data-model.md` が作成されていること。
22
+ - `docs/project/design/03-screen-design.md` が作成されていること。
23
+ - `docs/project/design/` ディレクトリが存在すること。
24
+
25
+ ## 手順
26
+
27
+ ### 1. ドキュメントと前提条件の確認
28
+
29
+ 以下を読み込む:
30
+
31
+ - `docs/project/design/01-tech-stack.md`
32
+ - `docs/project/design/05-data-model.md`
33
+ - `docs/project/design/03-screen-design.md`
34
+
35
+ 不足があれば対応スキルの実行を促す。
36
+
37
+ ### 2. テンプレートの準備
38
+
39
+ ```bash
40
+ SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
41
+ cp "$SCRIPT_DIR/templates/project/04-design/06-api-spec.md" "docs/project/design/06-api-spec.md"
42
+ ```
43
+
44
+ ### 3. API スタイルの確認と提案
45
+
46
+ 技術スタックで選定された API スタイル(REST, GraphQL 等)を確認し、データモデルと画面設計から必要なリソースと操作を抽出する。スタイル別の特徴は [examples/api-templates.md](examples/api-templates.md#api-スタイル別の特徴) を参照。
47
+
48
+ - 「Users: 一覧, 詳細, 作成, 更新, 削除」
49
+ - 「Auth: ログイン, 登録, リフレッシュ」
50
+
51
+ ### 4. 詳細定義(インタビュー)
52
+
53
+ #### 4.1 認証・認可
54
+
55
+ 認証方式(JWT / OAuth 等)、トークンの保存先(Cookie vs Header)、ロール・スコープ定義。テンプレートは [examples/api-templates.md](examples/api-templates.md#認証認可仕様のテンプレート) を参照。
56
+
57
+ #### 4.2 エンドポイント詳細
58
+
59
+ 各リソースのパス設計(RESTful 原則)、認証の要否、特殊アクション(`/cancel`, `/publish` 等)。一覧テーブルとパス設計原則は [examples/api-templates.md](examples/api-templates.md#エンドポイント一覧テーブル) を参照。
60
+
61
+ #### 4.3 共通レスポンス形式
62
+
63
+ 成功・エラー構造、ページネーション、エラーコード体系。JSON サンプルは [examples/api-templates.md](examples/api-templates.md#共通レスポンス形式) を参照。
64
+
65
+ ### 5. ドキュメント作成
66
+
67
+ `docs/project/design/06-api-spec.md` に以下を記入する:
68
+
69
+ - 認証・認可仕様
70
+ - エンドポイント一覧(リソース別)
71
+ - 共通レスポンス形式
72
+ - エラーコード体系
73
+
74
+ ### 6. 構造チェック
75
+
76
+ ```bash
77
+ grep "## 認証・認可" docs/project/design/06-api-spec.md \
78
+ && grep "## エンドポイント一覧" docs/project/design/06-api-spec.md \
79
+ && grep "## 共通レスポンス形式" docs/project/design/06-api-spec.md \
80
+ && echo "OK" || echo "MISSING SECTION"
81
+ ```
82
+
83
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
84
+
85
+ ### 7. Git への追加(任意)
86
+
87
+ ```bash
88
+ git add docs/project/design/06-api-spec.md
89
+ git commit -m "docs: API 仕様(基本設計)の作成"
90
+ ```
91
+
92
+ ## 完了条件
93
+
94
+ - `docs/project/design/06-api-spec.md` が作成されている。
95
+ - 認証・認可の仕組みが定義されている。
96
+ - エンドポイント一覧(メソッド、パス、認証要否)が定義されている。
97
+ - 共通レスポンス形式(成功/エラー)が定義されている。
98
+ - ユーザーが内容を承認している。
99
+
100
+ ## エスカレーション
101
+
102
+ - **API スタイルが未定**: 「`/a-007-define-tech-stack` に戻って選定してください。」
103
+ - **データモデルとの不整合**: 「データモデルに存在しないリソースのエンドポイントが要求されています。データモデルを見直すか、API だけの概念として定義するか確認してください。」
104
+
105
+ ## 参考
106
+
107
+ - [examples/api-templates.md](examples/api-templates.md) — API スタイル比較、認証・認可テンプレート、エンドポイント一覧、共通レスポンス、エラーコード体系
108
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
@@ -0,0 +1,117 @@
1
+ # API 仕様のテンプレート
2
+
3
+ SKILL.md 手順3〜5 で使用するエンドポイント・認証・共通レスポンスのサンプル。
4
+
5
+ ## API スタイル別の特徴
6
+
7
+ | スタイル | 特徴 | 適合シーン |
8
+ |:--|:--|:--|
9
+ | REST | シンプル、キャッシュ活用、HTTP 標準 | CRUD 中心の Web/モバイル API |
10
+ | GraphQL | クライアント駆動、過剰取得回避 | 複雑な集約、多様なクライアント |
11
+ | gRPC | 高速、強い型、ストリーム | 内部 Microservice 通信 |
12
+ | tRPC | TS で型共有、開発高速 | TypeScript フルスタック |
13
+
14
+ ## 認証・認可仕様のテンプレート
15
+
16
+ ```markdown
17
+ ### 認証方式
18
+
19
+ - プロトコル: JWT(HS256)
20
+ - トークン種別: Access Token(15 分)+ Refresh Token(14 日)
21
+ - 保存先: Access = Memory, Refresh = HttpOnly Secure Cookie
22
+ - ログインエンドポイント: `POST /api/auth/login`
23
+ - リフレッシュ: `POST /api/auth/refresh`
24
+
25
+ ### 認可
26
+
27
+ - ロール: `admin`, `staff`, `user`
28
+ - スコープ: `orders:read`, `orders:write`, `users:admin`
29
+ - Guard 方針: ロール + 所有者確認(例: `/orders/:id` は本人 or admin のみ)
30
+ ```
31
+
32
+ ## エンドポイント一覧テーブル
33
+
34
+ | メソッド | パス | 説明 | 認証 | 認可 |
35
+ |:--|:--|:--|:--|:--|
36
+ | POST | `/api/auth/login` | ログイン | 不要 | - |
37
+ | POST | `/api/auth/refresh` | トークン更新 | Refresh | - |
38
+ | POST | `/api/auth/logout` | ログアウト | Access | - |
39
+ | GET | `/api/users/me` | 自身のプロフィール取得 | Access | user |
40
+ | GET | `/api/users` | ユーザー一覧 | Access | admin |
41
+ | GET | `/api/orders` | 注文一覧 | Access | user(自分の注文) |
42
+ | POST | `/api/orders` | 注文作成 | Access | user |
43
+ | GET | `/api/orders/:id` | 注文詳細 | Access | 本人 or admin |
44
+ | POST | `/api/orders/:id/cancel` | 注文取消 | Access | 本人 or admin |
45
+
46
+ ### RESTful パス設計の原則
47
+
48
+ - リソースは複数形の名詞(`/users`, `/orders`)
49
+ - 動作は HTTP メソッドで表現(GET / POST / PATCH / DELETE)
50
+ - 動詞が必要な特殊アクションは `/resource/:id/action` 形式(`/orders/:id/cancel`)
51
+
52
+ ## 共通レスポンス形式
53
+
54
+ ### 成功レスポンス
55
+
56
+ ```json
57
+ {
58
+ "data": {
59
+ "id": "ord_01HXXXXX",
60
+ "status": "confirmed",
61
+ "total": 12800
62
+ },
63
+ "meta": {
64
+ "requestId": "req_01HXXXXX"
65
+ }
66
+ }
67
+ ```
68
+
69
+ ### エラーレスポンス
70
+
71
+ ```json
72
+ {
73
+ "error": {
74
+ "code": "VALIDATION_ERROR",
75
+ "message": "入力値に誤りがあります",
76
+ "details": [
77
+ { "field": "email", "message": "メール形式が不正です" }
78
+ ]
79
+ },
80
+ "meta": {
81
+ "requestId": "req_01HXXXXX"
82
+ }
83
+ }
84
+ ```
85
+
86
+ ### ページネーション(Cursor 方式)
87
+
88
+ ```json
89
+ {
90
+ "data": [ { "id": "ord_01" }, { "id": "ord_02" } ],
91
+ "pageInfo": {
92
+ "hasNextPage": true,
93
+ "endCursor": "eyJpZCI6Im9yZF8wMiJ9"
94
+ }
95
+ }
96
+ ```
97
+
98
+ ## エラーコード体系の例
99
+
100
+ | HTTP | code | 用途 |
101
+ |:--|:--|:--|
102
+ | 400 | VALIDATION_ERROR | 入力値不正 |
103
+ | 401 | UNAUTHENTICATED | 未認証 |
104
+ | 403 | FORBIDDEN | 権限不足 |
105
+ | 404 | NOT_FOUND | リソース未存在 |
106
+ | 409 | CONFLICT | 競合(重複登録等) |
107
+ | 429 | RATE_LIMITED | レート制限 |
108
+ | 500 | INTERNAL_ERROR | サーバー内部エラー |
109
+
110
+ ## コミットメッセージ例
111
+
112
+ ```text
113
+ docs: API 仕様(基本設計)の作成
114
+
115
+ - 認証・認可方式の定義
116
+ - エンドポイント一覧と共通レスポンス形式を定義
117
+ ```
@@ -0,0 +1,49 @@
1
+ # 構造チェックとレビュー観点
2
+
3
+ SKILL.md 手順6〜7 で使う確認コマンドとレビュー観点。
4
+
5
+ ## セクション存在確認
6
+
7
+ ```bash
8
+ # 認証セクションの確認
9
+ grep "## 認証・認可" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Auth section"
10
+ # エンドポイント一覧の確認
11
+ grep "## エンドポイント一覧" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Endpoints"
12
+ # レスポンス形式の確認
13
+ grep "## 共通レスポンス形式" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Response format"
14
+ ```
15
+
16
+ ## チェックリスト
17
+
18
+ - [ ] `docs/project/design/06-api-spec.md` が作成されている
19
+ - [ ] 認証方式(JWT / OAuth 等)が明確に定義されている
20
+ - [ ] トークンの保存先(Cookie / Header)が決まっている
21
+ - [ ] ロール・スコープが定義されている
22
+ - [ ] 主要リソースの CRUD エンドポイントが網羅されている
23
+ - [ ] 特殊アクション(cancel, publish 等)が適切な命名で定義されている
24
+ - [ ] 成功時・エラー時の共通レスポンス形式が定義されている
25
+ - [ ] ページネーション方式(Offset / Cursor)が決まっている
26
+ - [ ] エラーコード体系が定義されている
27
+
28
+ ## レビュー確認質問
29
+
30
+ - 「データモデルのエンティティすべてに必要な API が揃っていますか?」
31
+ - 「画面設計で必要なデータ取得に対応するエンドポイントはありますか?」
32
+ - 「認証・認可のフローにセキュリティリスクはありませんか?」
33
+ - 「エラー応答のフォーマットはクライアントで扱いやすいですか?」
34
+
35
+ ## Git への追加(任意)
36
+
37
+ ```bash
38
+ git add docs/project/design/06-api-spec.md
39
+ git status
40
+ ```
41
+
42
+ 推奨コミットメッセージ:
43
+
44
+ ```text
45
+ docs: API 仕様(基本設計)の作成
46
+
47
+ - 認証・認可方式の定義
48
+ - エンドポイント一覧と共通レスポンス形式を定義
49
+ ```
@@ -1,128 +1,101 @@
1
- ---
2
- name: a-013-define-architecture
3
- description: 技術スタック、リポジトリ構造、データモデル、API仕様を統合し、システム全体のアーキテクチャ設計とADRを定義するワークフロー
4
- ---
5
-
6
- # DefineArchitecture (a-013)
7
-
8
- ## 目的
9
-
10
- - これまでに定義された設計(技術スタック、リポジトリ構造、データモデル、API仕様)を統合する。
11
- - システム全体の構造をMermaid図で視覚化する。
12
- - 採用したアーキテクチャパターン(レイヤード、クリーンアーキテクチャなど)を明確化する。
13
- - 重要なアーキテクチャ決定(ADR: Architecture Decision Record)を記録する。
14
-
15
- ## 前提
16
-
17
- - `docs/project/design/01-tech-stack.md` が作成されていること。
18
- - `docs/project/design/02-repository-structure.md` が作成されていること。
19
- - `docs/project/design/05-data-model.md` が作成されていること。
20
- - `docs/project/design/06-api-spec.md` が作成されていること。
21
- - `docs/project/design/` ディレクトリが存在すること。
22
-
23
- ## 手順
24
-
25
- ### 1. ドキュメントと前提条件の確認
26
-
27
- - 必要なドキュメントを読み込む:
28
- - `docs/project/design/01-tech-stack.md`
29
- - `docs/project/design/02-repository-structure.md`
30
- - `docs/project/design/05-data-model.md`
31
- - `docs/project/design/06-api-spec.md`
32
-
33
- - ドキュメントが不足している場合、対応するワークフローの実行を促す。
34
-
35
- ### 2. テンプレートの準備
36
-
37
- - テンプレートをコピーして作業用ファイルを作成する:
38
-
39
- ```bash
40
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
41
- cp "$SCRIPT_DIR/templates/project/04-design/07-architecture.md" "docs/project/design/07-architecture.md"
42
- ```
43
-
44
- ### 3. アーキテクチャの提案
45
-
46
- - 技術スタックとリポジトリ構造から、システムの主要コンポーネント(クライアント、API、DB、外部サービス)を抽出する。
47
- - **システム全体図の構成案を提示**:
48
- - 「以下のコンポーネントとデータフローを図示します:」
49
- - 「[Web] -> [API Server] -> [DB]」
50
- - 「[API Server] -> [External Service]」
51
-
52
- ### 4. 詳細定義(インタビュー)
53
-
54
- ユーザーからのフィードバックを受け、詳細を定義する。
55
-
56
- #### 4.1 システムアーキテクチャ図
57
-
58
- - コンポーネント間の接続、プロトコル(HTTP/gRPC)、データフローをMermaid図で表現する。
59
- - スケーラビリティや冗長化構成(ロードバランサー、レプリカDB)を反映する。
60
-
61
- #### 4.2 アーキテクチャパターン
62
-
63
- - 採用したパターン(レイヤード、クリーン、マイクロサービス等)とその選定理由を明確にする。
64
-
65
- #### 4.3 ADR (Architecture Decision Records)
66
-
67
- - 重要な技術的決定(DB選定、認証方式、フレームワーク選定など)を抽出する。
68
- - 各決定について、背景・代替案・決定理由・影響を記録する。
69
-
70
- ### 5. ドキュメント作成
71
-
72
- - `docs/project/design/07-architecture.md` に決定事項を記入する。
73
- - **必須項目**:
74
- - システムアーキテクチャ図 (Mermaid)
75
- - 採用アーキテクチャパターンの説明
76
- - ADR一覧
77
-
78
- ### 6. 完了条件と構造の確認
79
-
80
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
81
- 1. **構造確認**:
82
-
83
- ```bash
84
- # アーキテクチャ図の確認
85
- grep "\`\`\`mermaid" docs/project/design/07-architecture.md && echo "OK" || echo "MISSING: Architecture Diagram"
86
- # パターン定義の確認
87
- grep "## 採用アーキテクチャパターン" docs/project/design/07-architecture.md && echo "OK" || echo "MISSING: Pattern definition"
88
- # ADRセクションの確認
89
- grep "## ADR" docs/project/design/07-architecture.md && echo "OK" || echo "MISSING: ADR section"
90
- ```
91
-
92
- 2. **チェックリスト**:
93
- - [ ] `docs/project/design/07-architecture.md` が作成されている
94
- - [ ] システム全体像が視覚化されている
95
- - [ ] 重要な技術選定の理由(ADR)が記録されている
96
-
97
- ### 7. Git への追加(オプション)
98
-
99
- - ユーザーに確認:「作成したアーキテクチャ設計ドキュメントを Git に追加しますか?」
100
- - 「はい」の場合、以下を実行:
101
-
102
- ```bash
103
- git add docs/project/design/07-architecture.md
104
- git status
105
- ```
106
-
107
- - 推奨コミットメッセージ:
108
-
109
- ```
110
- docs: アーキテクチャ設計の定義
111
-
112
- - システム全体図(Mermaid)の作成
113
- - アーキテクチャパターンとADRの記録
114
- ```
115
-
116
- ## 完了条件
117
-
118
- - `docs/project/design/07-architecture.md` が作成されている。
119
- - システム全体の構成要素と関係性が可視化されている。
120
- - 技術選定の背景(ADR)が文書化され、将来の参照用に残されている。
121
- - ユーザーが内容を承認している。
122
-
123
- ## エスカレーション
124
-
125
- - アーキテクチャが複雑すぎる場合:
126
- - 「コンポーネント数が多すぎます。概要図と詳細図に分割するか、主要なフローに絞って図示することを検討しましょう。」と提案する。
127
- - 決定理由が不明確な場合:
128
- - 「[技術名]の選定理由が曖昧です。後で振り返れるよう、比較検討した代替案も含めてADRに記録しましょう。」と促す。
1
+ ---
2
+ name: a-013-define-architecture
3
+ description: 技術スタック・リポジトリ構造・データモデル・API 仕様を統合し、システムアーキテクチャと ADR を定義する。各設計ドキュメント確定後、全体像と意思決定を文書化する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineArchitecture (a-013)
9
+
10
+ ## 目的
11
+
12
+ - これまでに定義された設計(技術スタック、リポジトリ構造、データモデル、API 仕様)を統合する。
13
+ - システム全体の構造を Mermaid 図で視覚化する。
14
+ - 採用したアーキテクチャパターン(レイヤード、クリーンアーキテクチャなど)を明確化する。
15
+ - 重要なアーキテクチャ決定(ADR: Architecture Decision Record)を記録する。
16
+
17
+ ## 前提
18
+
19
+ - 以下が作成されていること:
20
+ - `docs/project/design/01-tech-stack.md`
21
+ - `docs/project/design/02-repository-structure.md`
22
+ - `docs/project/design/05-data-model.md`
23
+ - `docs/project/design/06-api-spec.md`
24
+ - `docs/project/design/` ディレクトリが存在すること。
25
+
26
+ ## 手順
27
+
28
+ ### 1. ドキュメントと前提条件の確認
29
+
30
+ 上記 4 ドキュメントを読み込む。不足があれば対応スキル(`/a-007`, `/a-008`, `/a-011`, `/a-012`)の実行を促す。
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/07-architecture.md" "docs/project/design/07-architecture.md"
37
+ ```
38
+
39
+ ### 3. アーキテクチャの提案
40
+
41
+ 技術スタックとリポジトリ構造からシステムの主要コンポーネント(クライアント、API、DB、外部サービス)を抽出し、全体図の構成案を提示する。
42
+
43
+ - 「[Web] -> [API Server] -> [DB]」
44
+ - 「[API Server] -> [External Service]」
45
+
46
+ ### 4. 詳細定義(インタビュー)
47
+
48
+ #### 4.1 システムアーキテクチャ図
49
+
50
+ コンポーネント間の接続、プロトコル(HTTP/gRPC)、データフロー、スケーラビリティ構成(LB、Replica)を Mermaid 図で表現する。記述例は [examples/architecture-templates.md](examples/architecture-templates.md#システムアーキテクチャ図mermaid) を参照。
51
+
52
+ #### 4.2 アーキテクチャパターン
53
+
54
+ 採用パターン(レイヤード、クリーン、マイクロサービス等)と選定理由を明確にする。選定ガイドは [examples/architecture-templates.md](examples/architecture-templates.md#アーキテクチャパターン選定ガイド) を参照。
55
+
56
+ #### 4.3 ADR (Architecture Decision Records)
57
+
58
+ 重要な技術的決定(DB 選定、認証方式、フレームワーク選定など)を背景・代替案・決定理由・影響の形で記録する。テンプレートは [examples/architecture-templates.md](examples/architecture-templates.md#adrarchitecture-decision-recordテンプレート) を参照。ADR 記録の基準は [reference/structure-check.md](reference/structure-check.md#adr-記録の基準) を参照。
59
+
60
+ ### 5. ドキュメント作成
61
+
62
+ `docs/project/design/07-architecture.md` に以下を記入する:
63
+
64
+ - システムアーキテクチャ図(Mermaid)
65
+ - 採用アーキテクチャパターンの説明
66
+ - ADR 一覧
67
+
68
+ ### 6. 構造チェック
69
+
70
+ ```bash
71
+ grep "\`\`\`mermaid" docs/project/design/07-architecture.md \
72
+ && grep "## 採用アーキテクチャパターン" docs/project/design/07-architecture.md \
73
+ && grep "## ADR" docs/project/design/07-architecture.md \
74
+ && echo "OK" || echo "MISSING SECTION"
75
+ ```
76
+
77
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
78
+
79
+ ### 7. Git への追加(任意)
80
+
81
+ ```bash
82
+ git add docs/project/design/07-architecture.md
83
+ git commit -m "docs: アーキテクチャ設計の定義"
84
+ ```
85
+
86
+ ## 完了条件
87
+
88
+ - `docs/project/design/07-architecture.md` が作成されている。
89
+ - システム全体の構成要素と関係性が可視化されている。
90
+ - 技術選定の背景(ADR)が文書化され、将来の参照用に残されている。
91
+ - ユーザーが内容を承認している。
92
+
93
+ ## エスカレーション
94
+
95
+ - **アーキテクチャが複雑すぎる**: 「コンポーネント数が多すぎます。概要図と詳細図に分割するか、主要フローに絞って図示することを検討しましょう。」
96
+ - **決定理由が不明確**: 「[技術名] の選定理由が曖昧です。後で振り返れるよう、比較検討した代替案も含めて ADR に記録しましょう。」
97
+
98
+ ## 参考
99
+
100
+ - [examples/architecture-templates.md](examples/architecture-templates.md) — システム全体図、冗長化構成、パターン選定ガイド、ADR テンプレート、ADR の典型例
101
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、ADR 記録基準