yodogawa 2.1.0 → 2.1.3

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 (48) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +27 -4
  4. package/bin/cli.js +0 -1
  5. package/package.json +3 -4
  6. package/skills/a-001-setup-doc-structure/SKILL.md +68 -67
  7. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -52
  8. package/skills/a-002-initialize-project/SKILL.md +118 -124
  9. package/skills/a-002-initialize-project/reference/structure-check.md +7 -7
  10. package/skills/a-003-create-scenarios/SKILL.md +96 -99
  11. package/skills/a-003-create-scenarios/reference/structure-check.md +5 -5
  12. package/skills/a-004-define-domain-model/SKILL.md +98 -99
  13. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +3 -3
  14. package/skills/a-005-create-domain-diagram/SKILL.md +7 -7
  15. package/skills/a-005-create-domain-diagram/reference/structure-check.md +4 -4
  16. package/skills/a-006-review-requirements-domain/SKILL.md +4 -4
  17. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +5 -5
  18. package/skills/a-007-define-tech-stack/SKILL.md +99 -102
  19. package/skills/a-007-define-tech-stack/reference/structure-check.md +5 -5
  20. package/skills/a-008-define-repository-structure/SKILL.md +96 -99
  21. package/skills/a-008-define-repository-structure/reference/structure-check.md +5 -5
  22. package/skills/a-009-define-screen-design/SKILL.md +103 -106
  23. package/skills/a-009-define-screen-design/reference/structure-check.md +5 -5
  24. package/skills/a-010-define-design-system/SKILL.md +130 -134
  25. package/skills/a-011-define-data-model/SKILL.md +118 -121
  26. package/skills/a-011-define-data-model/reference/structure-check.md +5 -5
  27. package/skills/a-012-define-api-spec/SKILL.md +105 -108
  28. package/skills/a-012-define-api-spec/reference/structure-check.md +5 -5
  29. package/skills/a-013-define-architecture/SKILL.md +98 -101
  30. package/skills/a-013-define-architecture/reference/structure-check.md +5 -5
  31. package/skills/a-014-define-infrastructure/SKILL.md +110 -113
  32. package/skills/a-014-define-infrastructure/reference/structure-check.md +5 -5
  33. package/skills/a-015-review-design/SKILL.md +8 -8
  34. package/skills/a-015-review-design/reference/consistency-checks.md +2 -2
  35. package/skills/b-001-create-task-directory/SKILL.md +68 -68
  36. package/skills/b-002-create-task-definition/SKILL.md +114 -115
  37. package/skills/b-003-create-task-research/SKILL.md +128 -130
  38. package/skills/b-004-create-task-implementation/SKILL.md +98 -97
  39. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
  40. package/skills/c-001-implement-task/SKILL.md +186 -186
  41. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
  42. package/skills/c-002-update-documentation/SKILL.md +159 -159
  43. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +97 -100
  44. package/templates/tasks/task-template/a-definition.md +1 -1
  45. package/templates/tasks/task-template/b-research.md +1 -1
  46. package/templates/tasks/task-template/c-implementation.md +3 -3
  47. package/scripts/setup-docs.sh +0 -92
  48. package/templates/documentation-rules.md +0 -143
@@ -1,121 +1,118 @@
1
- ---
2
- name: a-011-define-data-model
3
- description: ドメインモデルと画面設計からデータベース構造(ERD・エンティティ・属性・リレーションシップ・制約)を定義する。画面設計後、永続化層を設計する際に使用。
4
- disable-model-invocation: true
5
- allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
- ---
7
-
8
- # DefineDataModel (a-011)
9
-
10
- ## 目的
11
-
12
- - ドメインモデル(Aggregates)と画面設計を基に、データベース構造を定義する。
13
- - エンティティ(テーブル)、属性(カラム)、リレーションシップを明確化する。
14
- - データ型、制約(NOT NULL、UNIQUE、CHECK)、インデックス戦略を決定する。
15
- - Mermaid ERD(Entity Relationship Diagram)で視覚化し、開発者間の認識を統一する。
16
-
17
- ## 前提
18
-
19
- - `docs/project/domain/01-domain-model.md` が作成されていること。
20
- - `docs/project/design/01-tech-stack.md` が作成されていること(DB 選定済み)。
21
- - `docs/project/design/03-screen-design.md` が作成されていること。
22
- - `docs/project/design/` ディレクトリが存在すること。
23
-
24
- ## 手順
25
-
26
- ### 1. ドキュメントと前提条件の確認
27
-
28
- 以下を読み込む:
29
-
30
- - `docs/project/domain/01-domain-model.md`
31
- - `docs/project/design/01-tech-stack.md`
32
- - `docs/project/design/03-screen-design.md`
33
-
34
- 不足があれば対応スキルの実行を促す。
35
-
36
- ### 2. テンプレートの準備
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/05-data-model.md" "docs/project/design/05-data-model.md"
41
- ```
42
-
43
- ### 3. エンティティの抽出と提案
44
-
45
- - **ドメインモデルから**: Aggregate Root および内部エンティティを抽出
46
- - **画面設計から**: 表示・入力項目から必要なデータ構造(履歴、設定、ログ等)を抽出
47
- - 「[エンティティ名] (対応 Aggregate: [名前])」形式で一覧化
48
-
49
- エンティティ一覧の記述例は [examples/erd-templates.md](examples/erd-templates.md#エンティティ一覧テーブル) を参照。
50
-
51
- ### 4. 詳細定義(インタビュー)
52
-
53
- #### 4.1 基本定義
54
-
55
- - テーブル名(物理名)、論理名、説明
56
- - 主キー戦略(Auto Increment / UUID / CUID)— 選択ガイドは [examples/erd-templates.md](examples/erd-templates.md#主キー戦略) を参照
57
-
58
- #### 4.2 属性(カラム)
59
-
60
- - カラム名、データ型(DB 製品に合わせて具体化)
61
- - 制約(NOT NULL, UNIQUE, DEFAULT, CHECK)
62
- - 監査カラム(created_at, updated_at)の有無
63
-
64
- カラム定義の例は [examples/erd-templates.md](examples/erd-templates.md#カラム定義テンプレート) を参照。
65
-
66
- #### 4.3 リレーションシップ
67
-
68
- - 関連(1:1 / 1:N / N:M)
69
- - 外部キー制約(ON DELETE CASCADE / SET NULL / RESTRICT)— 選択基準は [examples/erd-templates.md](examples/erd-templates.md#外部キー削除動作の選択) を参照
70
-
71
- ### 5. ERD の作成と正規化
72
-
73
- - Mermaid ERD 形式で記述(テンプレートは [examples/erd-templates.md](examples/erd-templates.md#mermaid-erd-記述例) を参照)
74
- - 正規化(1NF-3NF)を確認。意図的な非正規化があれば理由を記録
75
- - インデックス戦略(検索頻度、UNIQUE、複合インデックス)を定義
76
-
77
- 正規化の目安は [reference/structure-check.md](reference/structure-check.md#正規化レベルの目安) を参照。
78
-
79
- ### 6. ドキュメント作成
80
-
81
- `docs/project/design/05-data-model.md` に以下を記入する:
82
-
83
- - エンティティ一覧
84
- - リレーションシップ定義
85
- - ERD(Mermaid)
86
- - インデックス戦略・非正規化の記録
87
-
88
- ### 7. 構造チェック
89
-
90
- ```bash
91
- grep "## エンティティ一覧" docs/project/design/05-data-model.md \
92
- && grep "\`\`\`mermaid" docs/project/design/05-data-model.md \
93
- && grep "## リレーションシップ" docs/project/design/05-data-model.md \
94
- && echo "OK" || echo "MISSING SECTION"
95
- ```
96
-
97
- 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
98
-
99
- ### 8. Git への追加(任意)
100
-
101
- ```bash
102
- git add docs/project/design/05-data-model.md
103
- git commit -m "docs: データモデル(ERD)の定義"
104
- ```
105
-
106
- ## 完了条件
107
-
108
- - `docs/project/design/05-data-model.md` が作成されている。
109
- - データベーススキーマ(テーブル、カラム、型、制約)が定義されている。
110
- - エンティティ間の関係性が可視化(ERD)されている。
111
- - ユーザーが内容を承認している。
112
-
113
- ## エスカレーション
114
-
115
- - **ドメインモデルとの不整合**: 「Aggregate 構造とデータモデルが乖離しています。ORM のマッピング戦略を確認するか、ドメインモデルを見直してください。」
116
- - **パフォーマンス懸念**: 「正規化により JOIN が多発する可能性があります。Read Model や意図的な非正規化を検討しませんか?」
117
-
118
- ## 参考
119
-
120
- - [examples/erd-templates.md](examples/erd-templates.md) — エンティティ一覧、カラム定義、主キー戦略、外部キー動作、Mermaid ERD、インデックス・非正規化の例
121
- - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、正規化レベル、レビュー質問
1
+ ---
2
+ name: a-011-define-data-model
3
+ description: ドメインモデルと画面設計からデータベース構造(ERD・エンティティ・属性・リレーションシップ・制約)を定義する。画面設計後、永続化層を設計する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineDataModel (a-011)
9
+
10
+ ## 目的
11
+
12
+ - ドメインモデル(Aggregates)と画面設計を基に、データベース構造を定義する。
13
+ - エンティティ(テーブル)、属性(カラム)、リレーションシップを明確化する。
14
+ - データ型、制約(NOT NULL、UNIQUE、CHECK)、インデックス戦略を決定する。
15
+ - Mermaid ERD(Entity Relationship Diagram)で視覚化し、開発者間の認識を統一する。
16
+
17
+ ## 前提
18
+
19
+ - `docs/project/03-domain/01-domain-model.md` が作成されていること。
20
+ - `docs/project/04-design/01-tech-stack.md` が作成されていること(DB 選定済み)。
21
+ - `docs/project/04-design/03-screen-design.md` が作成されていること。
22
+ - `docs/project/04-design/` ディレクトリが存在すること。
23
+
24
+ ## 手順
25
+
26
+ ### 1. ドキュメントと前提条件の確認
27
+
28
+ 以下を読み込む:
29
+
30
+ - `docs/project/03-domain/01-domain-model.md`
31
+ - `docs/project/04-design/01-tech-stack.md`
32
+ - `docs/project/04-design/03-screen-design.md`
33
+
34
+ 不足があれば対応スキルの実行を促す。
35
+
36
+ ### 2. テンプレートの準備
37
+
38
+ このスキルの配置ディレクトリ(`skills/a-011-define-data-model/`)を起点に、相対パス `../../templates/project/04-design/05-data-model.md` を Read で読み込み、その内容を `docs/project/04-design/05-data-model.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
39
+
40
+ ### 3. エンティティの抽出と提案
41
+
42
+ - **ドメインモデルから**: Aggregate Root および内部エンティティを抽出
43
+ - **画面設計から**: 表示・入力項目から必要なデータ構造(履歴、設定、ログ等)を抽出
44
+ - 「[エンティティ名] (対応 Aggregate: [名前])」形式で一覧化
45
+
46
+ エンティティ一覧の記述例は [examples/erd-templates.md](examples/erd-templates.md#エンティティ一覧テーブル) を参照。
47
+
48
+ ### 4. 詳細定義(インタビュー)
49
+
50
+ #### 4.1 基本定義
51
+
52
+ - テーブル名(物理名)、論理名、説明
53
+ - 主キー戦略(Auto Increment / UUID / CUID)— 選択ガイドは [examples/erd-templates.md](examples/erd-templates.md#主キー戦略) を参照
54
+
55
+ #### 4.2 属性(カラム)
56
+
57
+ - カラム名、データ型(DB 製品に合わせて具体化)
58
+ - 制約(NOT NULL, UNIQUE, DEFAULT, CHECK)
59
+ - 監査カラム(created_at, updated_at)の有無
60
+
61
+ カラム定義の例は [examples/erd-templates.md](examples/erd-templates.md#カラム定義テンプレート) を参照。
62
+
63
+ #### 4.3 リレーションシップ
64
+
65
+ - 関連(1:1 / 1:N / N:M)
66
+ - 外部キー制約(ON DELETE CASCADE / SET NULL / RESTRICT)— 選択基準は [examples/erd-templates.md](examples/erd-templates.md#外部キー削除動作の選択) を参照
67
+
68
+ ### 5. ERD の作成と正規化
69
+
70
+ - Mermaid ERD 形式で記述(テンプレートは [examples/erd-templates.md](examples/erd-templates.md#mermaid-erd-記述例) を参照)
71
+ - 正規化(1NF-3NF)を確認。意図的な非正規化があれば理由を記録
72
+ - インデックス戦略(検索頻度、UNIQUE、複合インデックス)を定義
73
+
74
+ 正規化の目安は [reference/structure-check.md](reference/structure-check.md#正規化レベルの目安) を参照。
75
+
76
+ ### 6. ドキュメント作成
77
+
78
+ `docs/project/04-design/05-data-model.md` に以下を記入する:
79
+
80
+ - エンティティ一覧
81
+ - リレーションシップ定義
82
+ - ERD(Mermaid)
83
+ - インデックス戦略・非正規化の記録
84
+
85
+ ### 7. 構造チェック
86
+
87
+ ```bash
88
+ grep "## エンティティ一覧" docs/project/04-design/05-data-model.md \
89
+ && grep "\`\`\`mermaid" docs/project/04-design/05-data-model.md \
90
+ && grep "## リレーションシップ" docs/project/04-design/05-data-model.md \
91
+ && echo "OK" || echo "MISSING SECTION"
92
+ ```
93
+
94
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
95
+
96
+ ### 8. Git への追加(任意)
97
+
98
+ ```bash
99
+ git add docs/project/04-design/05-data-model.md
100
+ git commit -m "docs: データモデル(ERD)の定義"
101
+ ```
102
+
103
+ ## 完了条件
104
+
105
+ - `docs/project/04-design/05-data-model.md` が作成されている。
106
+ - データベーススキーマ(テーブル、カラム、型、制約)が定義されている。
107
+ - エンティティ間の関係性が可視化(ERD)されている。
108
+ - ユーザーが内容を承認している。
109
+
110
+ ## エスカレーション
111
+
112
+ - **ドメインモデルとの不整合**: 「Aggregate 構造とデータモデルが乖離しています。ORM のマッピング戦略を確認するか、ドメインモデルを見直してください。」
113
+ - **パフォーマンス懸念**: 「正規化により JOIN が多発する可能性があります。Read Model や意図的な非正規化を検討しませんか?」
114
+
115
+ ## 参考
116
+
117
+ - [examples/erd-templates.md](examples/erd-templates.md) — エンティティ一覧、カラム定義、主キー戦略、外部キー動作、Mermaid ERD、インデックス・非正規化の例
118
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、正規化レベル、レビュー質問
@@ -6,16 +6,16 @@ SKILL.md 手順7〜8 で使う確認コマンドとレビュー観点。
6
6
 
7
7
  ```bash
8
8
  # エンティティ一覧の確認
9
- grep "## エンティティ一覧" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: Entities"
9
+ grep "## エンティティ一覧" docs/project/04-design/05-data-model.md && echo "OK" || echo "MISSING: Entities"
10
10
  # ERD の確認
11
- grep "\`\`\`mermaid" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: ERD"
11
+ grep "\`\`\`mermaid" docs/project/04-design/05-data-model.md && echo "OK" || echo "MISSING: ERD"
12
12
  # リレーションシップ定義の確認
13
- grep "## リレーションシップ" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: Relationships"
13
+ grep "## リレーションシップ" docs/project/04-design/05-data-model.md && echo "OK" || echo "MISSING: Relationships"
14
14
  ```
15
15
 
16
16
  ## チェックリスト
17
17
 
18
- - [ ] `docs/project/design/05-data-model.md` が作成されている
18
+ - [ ] `docs/project/04-design/05-data-model.md` が作成されている
19
19
  - [ ] 全エンティティの物理名・論理名が定義されている
20
20
  - [ ] 各カラムの型・制約・デフォルト値が定義されている
21
21
  - [ ] 主キー戦略(Auto Increment / UUID / CUID)が明記されている
@@ -42,7 +42,7 @@ grep "## リレーションシップ" docs/project/design/05-data-model.md && ec
42
42
  ## Git への追加(任意)
43
43
 
44
44
  ```bash
45
- git add docs/project/design/05-data-model.md
45
+ git add docs/project/04-design/05-data-model.md
46
46
  git status
47
47
  ```
48
48
 
@@ -1,108 +1,105 @@
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 追加例
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/04-design/01-tech-stack.md` が作成されていること(API スタイル選定済み)。
21
+ - `docs/project/04-design/05-data-model.md` が作成されていること。
22
+ - `docs/project/04-design/03-screen-design.md` が作成されていること。
23
+ - `docs/project/04-design/` ディレクトリが存在すること。
24
+
25
+ ## 手順
26
+
27
+ ### 1. ドキュメントと前提条件の確認
28
+
29
+ 以下を読み込む:
30
+
31
+ - `docs/project/04-design/01-tech-stack.md`
32
+ - `docs/project/04-design/05-data-model.md`
33
+ - `docs/project/04-design/03-screen-design.md`
34
+
35
+ 不足があれば対応スキルの実行を促す。
36
+
37
+ ### 2. テンプレートの準備
38
+
39
+ このスキルの配置ディレクトリ(`skills/a-012-define-api-spec/`)を起点に、相対パス `../../templates/project/04-design/06-api-spec.md` を Read で読み込み、その内容を `docs/project/04-design/06-api-spec.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
40
+
41
+ ### 3. API スタイルの確認と提案
42
+
43
+ 技術スタックで選定された API スタイル(REST, GraphQL 等)を確認し、データモデルと画面設計から必要なリソースと操作を抽出する。スタイル別の特徴は [examples/api-templates.md](examples/api-templates.md#api-スタイル別の特徴) を参照。
44
+
45
+ - 「Users: 一覧, 詳細, 作成, 更新, 削除」
46
+ - 「Auth: ログイン, 登録, リフレッシュ」
47
+
48
+ ### 4. 詳細定義(インタビュー)
49
+
50
+ #### 4.1 認証・認可
51
+
52
+ 認証方式(JWT / OAuth 等)、トークンの保存先(Cookie vs Header)、ロール・スコープ定義。テンプレートは [examples/api-templates.md](examples/api-templates.md#認証認可仕様のテンプレート) を参照。
53
+
54
+ #### 4.2 エンドポイント詳細
55
+
56
+ 各リソースのパス設計(RESTful 原則)、認証の要否、特殊アクション(`/cancel`, `/publish` 等)。一覧テーブルとパス設計原則は [examples/api-templates.md](examples/api-templates.md#エンドポイント一覧テーブル) を参照。
57
+
58
+ #### 4.3 共通レスポンス形式
59
+
60
+ 成功・エラー構造、ページネーション、エラーコード体系。JSON サンプルは [examples/api-templates.md](examples/api-templates.md#共通レスポンス形式) を参照。
61
+
62
+ ### 5. ドキュメント作成
63
+
64
+ `docs/project/04-design/06-api-spec.md` に以下を記入する:
65
+
66
+ - 認証・認可仕様
67
+ - エンドポイント一覧(リソース別)
68
+ - 共通レスポンス形式
69
+ - エラーコード体系
70
+
71
+ ### 6. 構造チェック
72
+
73
+ ```bash
74
+ grep "## 認証・認可" docs/project/04-design/06-api-spec.md \
75
+ && grep "## エンドポイント一覧" docs/project/04-design/06-api-spec.md \
76
+ && grep "## 共通レスポンス形式" docs/project/04-design/06-api-spec.md \
77
+ && echo "OK" || echo "MISSING SECTION"
78
+ ```
79
+
80
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
81
+
82
+ ### 7. Git への追加(任意)
83
+
84
+ ```bash
85
+ git add docs/project/04-design/06-api-spec.md
86
+ git commit -m "docs: API 仕様(基本設計)の作成"
87
+ ```
88
+
89
+ ## 完了条件
90
+
91
+ - `docs/project/04-design/06-api-spec.md` が作成されている。
92
+ - 認証・認可の仕組みが定義されている。
93
+ - エンドポイント一覧(メソッド、パス、認証要否)が定義されている。
94
+ - 共通レスポンス形式(成功/エラー)が定義されている。
95
+ - ユーザーが内容を承認している。
96
+
97
+ ## エスカレーション
98
+
99
+ - **API スタイルが未定**: 「`/a-007-define-tech-stack` に戻って選定してください。」
100
+ - **データモデルとの不整合**: 「データモデルに存在しないリソースのエンドポイントが要求されています。データモデルを見直すか、API だけの概念として定義するか確認してください。」
101
+
102
+ ## 参考
103
+
104
+ - [examples/api-templates.md](examples/api-templates.md) — API スタイル比較、認証・認可テンプレート、エンドポイント一覧、共通レスポンス、エラーコード体系
105
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
@@ -6,16 +6,16 @@ SKILL.md 手順6〜7 で使う確認コマンドとレビュー観点。
6
6
 
7
7
  ```bash
8
8
  # 認証セクションの確認
9
- grep "## 認証・認可" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Auth section"
9
+ grep "## 認証・認可" docs/project/04-design/06-api-spec.md && echo "OK" || echo "MISSING: Auth section"
10
10
  # エンドポイント一覧の確認
11
- grep "## エンドポイント一覧" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Endpoints"
11
+ grep "## エンドポイント一覧" docs/project/04-design/06-api-spec.md && echo "OK" || echo "MISSING: Endpoints"
12
12
  # レスポンス形式の確認
13
- grep "## 共通レスポンス形式" docs/project/design/06-api-spec.md && echo "OK" || echo "MISSING: Response format"
13
+ grep "## 共通レスポンス形式" docs/project/04-design/06-api-spec.md && echo "OK" || echo "MISSING: Response format"
14
14
  ```
15
15
 
16
16
  ## チェックリスト
17
17
 
18
- - [ ] `docs/project/design/06-api-spec.md` が作成されている
18
+ - [ ] `docs/project/04-design/06-api-spec.md` が作成されている
19
19
  - [ ] 認証方式(JWT / OAuth 等)が明確に定義されている
20
20
  - [ ] トークンの保存先(Cookie / Header)が決まっている
21
21
  - [ ] ロール・スコープが定義されている
@@ -35,7 +35,7 @@ grep "## 共通レスポンス形式" docs/project/design/06-api-spec.md && echo
35
35
  ## Git への追加(任意)
36
36
 
37
37
  ```bash
38
- git add docs/project/design/06-api-spec.md
38
+ git add docs/project/04-design/06-api-spec.md
39
39
  git status
40
40
  ```
41
41