yodogawa 2.1.3 → 2.2.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 (80) hide show
  1. package/CHANGELOG.md +134 -94
  2. package/LICENSE +1 -1
  3. package/README.md +351 -263
  4. package/bin/checks/id-trace.js +137 -0
  5. package/bin/checks/links.js +59 -0
  6. package/bin/checks/placeholder.js +132 -0
  7. package/bin/checks/structure.js +127 -0
  8. package/bin/cli.js +51 -67
  9. package/bin/commands/doctor.js +128 -0
  10. package/bin/commands/install.js +58 -0
  11. package/bin/commands/new-task.js +117 -0
  12. package/bin/lib/check-cli.js +19 -0
  13. package/bin/lib/findings.js +31 -0
  14. package/bin/lib/markdown.js +103 -0
  15. package/bin/lib/project-spec.js +138 -0
  16. package/bin/lib/walk-md.js +23 -0
  17. package/package.json +68 -55
  18. package/skills/a-001-setup-doc-structure/SKILL.md +68 -68
  19. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -75
  20. package/skills/a-002-initialize-project/SKILL.md +145 -118
  21. package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
  22. package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
  23. package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
  24. package/skills/a-002b-define-user-stories/SKILL.md +80 -0
  25. package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
  26. package/skills/a-003-create-scenarios/SKILL.md +97 -96
  27. package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
  28. package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
  29. package/skills/a-004-define-domain-model/SKILL.md +107 -98
  30. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
  31. package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
  32. package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
  33. package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
  34. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
  35. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
  36. package/skills/a-007-define-tech-stack/SKILL.md +99 -99
  37. package/skills/a-008-define-repository-structure/SKILL.md +96 -96
  38. package/skills/a-009-define-screen-design/SKILL.md +103 -103
  39. package/skills/a-010-define-design-system/SKILL.md +130 -130
  40. package/skills/a-011-define-data-model/SKILL.md +118 -118
  41. package/skills/a-012-define-api-spec/SKILL.md +105 -105
  42. package/skills/a-013-define-architecture/SKILL.md +98 -98
  43. package/skills/a-014-define-infrastructure/SKILL.md +118 -110
  44. package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
  45. package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
  46. package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
  47. package/skills/b-001-create-task-directory/SKILL.md +68 -68
  48. package/skills/b-002-create-task-definition/SKILL.md +114 -114
  49. package/skills/b-003-create-task-research/SKILL.md +128 -128
  50. package/skills/b-004-create-task-implementation/SKILL.md +98 -98
  51. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
  52. package/skills/c-001-implement-task/SKILL.md +186 -186
  53. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
  54. package/skills/c-002-update-documentation/SKILL.md +159 -159
  55. package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
  56. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +99 -97
  57. package/templates/project/01-requirements/01-product-brief.md +186 -0
  58. package/templates/project/01-requirements/02-mvp-scope.md +64 -0
  59. package/templates/project/01-requirements/03-parking-lot.md +29 -0
  60. package/templates/project/01-requirements/05-user-stories.md +28 -124
  61. package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
  62. package/templates/project/02-behavior/01-core-scenarios.md +80 -0
  63. package/templates/project/03-domain/01-domain-model.md +120 -339
  64. package/templates/project/03-domain/01-domain-sketch.md +90 -0
  65. package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
  66. package/templates/project/04-design/01-tech-stack.md +367 -367
  67. package/templates/project/04-design/02-repository-structure.md +391 -391
  68. package/templates/project/04-design/03-screen-design.md +596 -596
  69. package/templates/project/04-design/04-design-system.md +261 -261
  70. package/templates/project/04-design/05-data-model.md +211 -211
  71. package/templates/project/04-design/06-api-spec.md +226 -226
  72. package/templates/project/04-design/07-architecture.md +183 -183
  73. package/templates/project/04-design/08-infrastructure.md +180 -180
  74. package/templates/project/AI_CONTEXT.md +55 -0
  75. package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
  76. package/templates/tasks/task-template/a-definition.md +143 -143
  77. package/templates/tasks/task-template/b-research.md +185 -185
  78. package/templates/tasks/task-template/c-implementation.md +200 -200
  79. package/templates/project/01-requirements/01-system-overview.md +0 -49
  80. package/templates/project/01-requirements/03-features-planned.md +0 -75
@@ -1,261 +1,261 @@
1
- # デザインシステム
2
-
3
- > 最終更新: YYYY-MM-DD
4
-
5
- ## 概要
6
-
7
- このドキュメントでは、プロジェクト全体で使用するデザインシステムを定義します。
8
-
9
- ---
10
-
11
- ## カラーパレット
12
-
13
- ### Primary Colors
14
-
15
- | 名前 | HEX | 用途 |
16
- | ----------- | --------- | -------------- |
17
- | primary-50 | `#eff6ff` | 背景(薄) |
18
- | primary-100 | `#dbeafe` | ホバー状態 |
19
- | primary-500 | `#3b82f6` | メインカラー |
20
- | primary-600 | `#2563eb` | ホバー(濃) |
21
- | primary-900 | `#1e3a8a` | テキスト(濃) |
22
-
23
- ### Secondary Colors
24
-
25
- | 名前 | HEX | 用途 |
26
- | ------------- | --------- | ---------- |
27
- | secondary-500 | `#8b5cf6` | アクセント |
28
-
29
- ### Semantic Colors
30
-
31
- | 名前 | HEX | 用途 |
32
- | ------- | --------- | ------------ |
33
- | success | `#22c55e` | 成功、完了 |
34
- | warning | `#f59e0b` | 警告、注意 |
35
- | error | `#ef4444` | エラー、削除 |
36
- | info | `#0ea5e9` | 情報、ヘルプ |
37
-
38
- ### Neutral Colors
39
-
40
- | 名前 | HEX | 用途 |
41
- | -------- | --------- | ---------------- |
42
- | gray-50 | `#f9fafb` | 背景(明) |
43
- | gray-100 | `#f3f4f6` | カード背景 |
44
- | gray-200 | `#e5e7eb` | ボーダー |
45
- | gray-400 | `#9ca3af` | プレースホルダー |
46
- | gray-500 | `#6b7280` | サブテキスト |
47
- | gray-700 | `#374151` | 本文テキスト |
48
- | gray-900 | `#111827` | 見出しテキスト |
49
-
50
- ### Dark Mode(必要な場合)
51
-
52
- <!-- Dark Mode用のカラー定義 -->
53
-
54
- ---
55
-
56
- ## タイポグラフィ
57
-
58
- ### フォントファミリー
59
-
60
- | 用途 | フォント |
61
- | ------ | ----------------------------- |
62
- | 見出し | `Inter`, `Noto Sans JP` |
63
- | 本文 | `Inter`, `Noto Sans JP` |
64
- | コード | `JetBrains Mono`, `monospace` |
65
-
66
- ### フォントサイズ
67
-
68
- | 名前 | サイズ | 行間 | 用途 |
69
- | ---- | ------ | ---- | ---------------- |
70
- | xs | 12px | 1.5 | キャプション |
71
- | sm | 14px | 1.5 | 補足テキスト |
72
- | base | 16px | 1.5 | 本文 |
73
- | lg | 18px | 1.5 | リード文 |
74
- | xl | 20px | 1.4 | 小見出し |
75
- | 2xl | 24px | 1.3 | セクション見出し |
76
- | 3xl | 30px | 1.2 | ページタイトル |
77
- | 4xl | 36px | 1.1 | ヒーロー見出し |
78
-
79
- ### フォントウェイト
80
-
81
- | 名前 | 値 | 用途 |
82
- | -------- | --- | ------------ |
83
- | normal | 400 | 本文 |
84
- | medium | 500 | 強調 |
85
- | semibold | 600 | 見出し |
86
- | bold | 700 | 重要な見出し |
87
-
88
- ---
89
-
90
- ## スペーシング
91
-
92
- ### スケール(4px ベース)
93
-
94
- | 名前 | 値 | ピクセル |
95
- | ---- | ------- | -------- |
96
- | 0 | 0 | 0px |
97
- | 1 | 0.25rem | 4px |
98
- | 2 | 0.5rem | 8px |
99
- | 3 | 0.75rem | 12px |
100
- | 4 | 1rem | 16px |
101
- | 5 | 1.25rem | 20px |
102
- | 6 | 1.5rem | 24px |
103
- | 8 | 2rem | 32px |
104
- | 10 | 2.5rem | 40px |
105
- | 12 | 3rem | 48px |
106
- | 16 | 4rem | 64px |
107
-
108
- ### 使用ガイドライン
109
-
110
- - **コンポーネント内部**: 2〜4 (8〜16px)
111
- - **セクション間**: 8〜12 (32〜48px)
112
- - **ページ余白**: 4〜6 (16〜24px)
113
-
114
- ---
115
-
116
- ## コンポーネントスタイル
117
-
118
- ### ボタン
119
-
120
- #### バリアント
121
-
122
- | バリアント | 背景 | テキスト | 用途 |
123
- | ---------- | ----------- | ----------- | ------------------ |
124
- | Primary | primary-500 | white | 主要アクション |
125
- | Secondary | gray-100 | gray-700 | 副次アクション |
126
- | Outline | transparent | primary-500 | 代替アクション |
127
- | Ghost | transparent | gray-700 | 控えめなアクション |
128
- | Danger | error | white | 削除、危険操作 |
129
-
130
- #### サイズ
131
-
132
- | サイズ | パディング | フォント |
133
- | ------ | ---------- | -------- |
134
- | sm | 8px 12px | 14px |
135
- | md | 10px 16px | 16px |
136
- | lg | 12px 20px | 18px |
137
-
138
- #### ステート
139
-
140
- - **Default**: 通常状態
141
- - **Hover**: 明度を10%変更
142
- - **Active**: 明度を20%変更
143
- - **Disabled**: opacity: 0.5, cursor: not-allowed
144
- - **Loading**: スピナー表示
145
-
146
- ### フォーム要素
147
-
148
- #### Input
149
-
150
- | プロパティ | 値 |
151
- | ---------- | ------------------ |
152
- | 高さ | 40px (md) |
153
- | ボーダー | 1px solid gray-200 |
154
- | 角丸 | 6px |
155
- | Focus | ring-2 primary-500 |
156
- | Error | border-error |
157
-
158
- #### その他
159
-
160
- - **Textarea**: Inputと同様、min-height: 100px
161
- - **Select**: Inputと同様 + ドロップダウンアイコン
162
- - **Checkbox/Radio**: 20px × 20px
163
-
164
- ### カード
165
-
166
- | プロパティ | 値 |
167
- | ---------- | ------------------------- |
168
- | 背景 | white |
169
- | ボーダー | 1px solid gray-200 |
170
- | 角丸 | 8px |
171
- | シャドウ | 0 1px 3px rgba(0,0,0,0.1) |
172
- | パディング | 16px〜24px |
173
-
174
- ---
175
-
176
- ## アイコン
177
-
178
- ### ライブラリ
179
-
180
- - **推奨**: Lucide Icons / Heroicons
181
-
182
- ### サイズ
183
-
184
- | 名前 | サイズ | 用途 |
185
- | ---- | ------ | -------------- |
186
- | sm | 16px | インライン |
187
- | md | 20px | ボタン内 |
188
- | lg | 24px | 単独表示 |
189
- | xl | 32px | 特徴セクション |
190
-
191
- ### スタイル
192
-
193
- - **統一**: Outline または Solid(混在させない)
194
-
195
- ---
196
-
197
- ## アニメーション
198
-
199
- ### Duration
200
-
201
- | 名前 | 値 | 用途 |
202
- | ------ | ----- | ------------------ |
203
- | fast | 150ms | ホバー、フォーカス |
204
- | normal | 300ms | パネル開閉 |
205
- | slow | 500ms | ページ遷移 |
206
-
207
- ### Easing
208
-
209
- - **デフォルト**: `ease-in-out`
210
- - **入場**: `ease-out`
211
- - **退場**: `ease-in`
212
-
213
- ### 使用例
214
-
215
- ```css
216
- .button {
217
- transition: background-color 150ms ease-in-out;
218
- }
219
-
220
- .modal {
221
- transition:
222
- opacity 300ms ease-out,
223
- transform 300ms ease-out;
224
- }
225
- ```
226
-
227
- ---
228
-
229
- ## CSS変数(参考実装)
230
-
231
- ```css
232
- :root {
233
- /* Colors */
234
- --color-primary-500: #3b82f6;
235
- --color-success: #22c55e;
236
- --color-warning: #f59e0b;
237
- --color-error: #ef4444;
238
-
239
- /* Typography */
240
- --font-sans: "Inter", "Noto Sans JP", sans-serif;
241
- --font-mono: "JetBrains Mono", monospace;
242
-
243
- /* Spacing */
244
- --space-1: 0.25rem;
245
- --space-2: 0.5rem;
246
- --space-4: 1rem;
247
- --space-8: 2rem;
248
-
249
- /* Transitions */
250
- --transition-fast: 150ms ease-in-out;
251
- --transition-normal: 300ms ease-in-out;
252
- }
253
- ```
254
-
255
- ---
256
-
257
- ## 変更履歴
258
-
259
- | バージョン | 日付 | 変更内容 |
260
- | ---------- | ---------- | -------- |
261
- | 1.0 | YYYY-MM-DD | 初版作成 |
1
+ # デザインシステム
2
+
3
+ > 最終更新: YYYY-MM-DD
4
+
5
+ ## 概要
6
+
7
+ このドキュメントでは、プロジェクト全体で使用するデザインシステムを定義します。
8
+
9
+ ---
10
+
11
+ ## カラーパレット
12
+
13
+ ### Primary Colors
14
+
15
+ | 名前 | HEX | 用途 |
16
+ | ----------- | --------- | -------------- |
17
+ | primary-50 | `#eff6ff` | 背景(薄) |
18
+ | primary-100 | `#dbeafe` | ホバー状態 |
19
+ | primary-500 | `#3b82f6` | メインカラー |
20
+ | primary-600 | `#2563eb` | ホバー(濃) |
21
+ | primary-900 | `#1e3a8a` | テキスト(濃) |
22
+
23
+ ### Secondary Colors
24
+
25
+ | 名前 | HEX | 用途 |
26
+ | ------------- | --------- | ---------- |
27
+ | secondary-500 | `#8b5cf6` | アクセント |
28
+
29
+ ### Semantic Colors
30
+
31
+ | 名前 | HEX | 用途 |
32
+ | ------- | --------- | ------------ |
33
+ | success | `#22c55e` | 成功、完了 |
34
+ | warning | `#f59e0b` | 警告、注意 |
35
+ | error | `#ef4444` | エラー、削除 |
36
+ | info | `#0ea5e9` | 情報、ヘルプ |
37
+
38
+ ### Neutral Colors
39
+
40
+ | 名前 | HEX | 用途 |
41
+ | -------- | --------- | ---------------- |
42
+ | gray-50 | `#f9fafb` | 背景(明) |
43
+ | gray-100 | `#f3f4f6` | カード背景 |
44
+ | gray-200 | `#e5e7eb` | ボーダー |
45
+ | gray-400 | `#9ca3af` | プレースホルダー |
46
+ | gray-500 | `#6b7280` | サブテキスト |
47
+ | gray-700 | `#374151` | 本文テキスト |
48
+ | gray-900 | `#111827` | 見出しテキスト |
49
+
50
+ ### Dark Mode(必要な場合)
51
+
52
+ <!-- Dark Mode用のカラー定義 -->
53
+
54
+ ---
55
+
56
+ ## タイポグラフィ
57
+
58
+ ### フォントファミリー
59
+
60
+ | 用途 | フォント |
61
+ | ------ | ----------------------------- |
62
+ | 見出し | `Inter`, `Noto Sans JP` |
63
+ | 本文 | `Inter`, `Noto Sans JP` |
64
+ | コード | `JetBrains Mono`, `monospace` |
65
+
66
+ ### フォントサイズ
67
+
68
+ | 名前 | サイズ | 行間 | 用途 |
69
+ | ---- | ------ | ---- | ---------------- |
70
+ | xs | 12px | 1.5 | キャプション |
71
+ | sm | 14px | 1.5 | 補足テキスト |
72
+ | base | 16px | 1.5 | 本文 |
73
+ | lg | 18px | 1.5 | リード文 |
74
+ | xl | 20px | 1.4 | 小見出し |
75
+ | 2xl | 24px | 1.3 | セクション見出し |
76
+ | 3xl | 30px | 1.2 | ページタイトル |
77
+ | 4xl | 36px | 1.1 | ヒーロー見出し |
78
+
79
+ ### フォントウェイト
80
+
81
+ | 名前 | 値 | 用途 |
82
+ | -------- | --- | ------------ |
83
+ | normal | 400 | 本文 |
84
+ | medium | 500 | 強調 |
85
+ | semibold | 600 | 見出し |
86
+ | bold | 700 | 重要な見出し |
87
+
88
+ ---
89
+
90
+ ## スペーシング
91
+
92
+ ### スケール(4px ベース)
93
+
94
+ | 名前 | 値 | ピクセル |
95
+ | ---- | ------- | -------- |
96
+ | 0 | 0 | 0px |
97
+ | 1 | 0.25rem | 4px |
98
+ | 2 | 0.5rem | 8px |
99
+ | 3 | 0.75rem | 12px |
100
+ | 4 | 1rem | 16px |
101
+ | 5 | 1.25rem | 20px |
102
+ | 6 | 1.5rem | 24px |
103
+ | 8 | 2rem | 32px |
104
+ | 10 | 2.5rem | 40px |
105
+ | 12 | 3rem | 48px |
106
+ | 16 | 4rem | 64px |
107
+
108
+ ### 使用ガイドライン
109
+
110
+ - **コンポーネント内部**: 2〜4 (8〜16px)
111
+ - **セクション間**: 8〜12 (32〜48px)
112
+ - **ページ余白**: 4〜6 (16〜24px)
113
+
114
+ ---
115
+
116
+ ## コンポーネントスタイル
117
+
118
+ ### ボタン
119
+
120
+ #### バリアント
121
+
122
+ | バリアント | 背景 | テキスト | 用途 |
123
+ | ---------- | ----------- | ----------- | ------------------ |
124
+ | Primary | primary-500 | white | 主要アクション |
125
+ | Secondary | gray-100 | gray-700 | 副次アクション |
126
+ | Outline | transparent | primary-500 | 代替アクション |
127
+ | Ghost | transparent | gray-700 | 控えめなアクション |
128
+ | Danger | error | white | 削除、危険操作 |
129
+
130
+ #### サイズ
131
+
132
+ | サイズ | パディング | フォント |
133
+ | ------ | ---------- | -------- |
134
+ | sm | 8px 12px | 14px |
135
+ | md | 10px 16px | 16px |
136
+ | lg | 12px 20px | 18px |
137
+
138
+ #### ステート
139
+
140
+ - **Default**: 通常状態
141
+ - **Hover**: 明度を10%変更
142
+ - **Active**: 明度を20%変更
143
+ - **Disabled**: opacity: 0.5, cursor: not-allowed
144
+ - **Loading**: スピナー表示
145
+
146
+ ### フォーム要素
147
+
148
+ #### Input
149
+
150
+ | プロパティ | 値 |
151
+ | ---------- | ------------------ |
152
+ | 高さ | 40px (md) |
153
+ | ボーダー | 1px solid gray-200 |
154
+ | 角丸 | 6px |
155
+ | Focus | ring-2 primary-500 |
156
+ | Error | border-error |
157
+
158
+ #### その他
159
+
160
+ - **Textarea**: Inputと同様、min-height: 100px
161
+ - **Select**: Inputと同様 + ドロップダウンアイコン
162
+ - **Checkbox/Radio**: 20px × 20px
163
+
164
+ ### カード
165
+
166
+ | プロパティ | 値 |
167
+ | ---------- | ------------------------- |
168
+ | 背景 | white |
169
+ | ボーダー | 1px solid gray-200 |
170
+ | 角丸 | 8px |
171
+ | シャドウ | 0 1px 3px rgba(0,0,0,0.1) |
172
+ | パディング | 16px〜24px |
173
+
174
+ ---
175
+
176
+ ## アイコン
177
+
178
+ ### ライブラリ
179
+
180
+ - **推奨**: Lucide Icons / Heroicons
181
+
182
+ ### サイズ
183
+
184
+ | 名前 | サイズ | 用途 |
185
+ | ---- | ------ | -------------- |
186
+ | sm | 16px | インライン |
187
+ | md | 20px | ボタン内 |
188
+ | lg | 24px | 単独表示 |
189
+ | xl | 32px | 特徴セクション |
190
+
191
+ ### スタイル
192
+
193
+ - **統一**: Outline または Solid(混在させない)
194
+
195
+ ---
196
+
197
+ ## アニメーション
198
+
199
+ ### Duration
200
+
201
+ | 名前 | 値 | 用途 |
202
+ | ------ | ----- | ------------------ |
203
+ | fast | 150ms | ホバー、フォーカス |
204
+ | normal | 300ms | パネル開閉 |
205
+ | slow | 500ms | ページ遷移 |
206
+
207
+ ### Easing
208
+
209
+ - **デフォルト**: `ease-in-out`
210
+ - **入場**: `ease-out`
211
+ - **退場**: `ease-in`
212
+
213
+ ### 使用例
214
+
215
+ ```css
216
+ .button {
217
+ transition: background-color 150ms ease-in-out;
218
+ }
219
+
220
+ .modal {
221
+ transition:
222
+ opacity 300ms ease-out,
223
+ transform 300ms ease-out;
224
+ }
225
+ ```
226
+
227
+ ---
228
+
229
+ ## CSS変数(参考実装)
230
+
231
+ ```css
232
+ :root {
233
+ /* Colors */
234
+ --color-primary-500: #3b82f6;
235
+ --color-success: #22c55e;
236
+ --color-warning: #f59e0b;
237
+ --color-error: #ef4444;
238
+
239
+ /* Typography */
240
+ --font-sans: "Inter", "Noto Sans JP", sans-serif;
241
+ --font-mono: "JetBrains Mono", monospace;
242
+
243
+ /* Spacing */
244
+ --space-1: 0.25rem;
245
+ --space-2: 0.5rem;
246
+ --space-4: 1rem;
247
+ --space-8: 2rem;
248
+
249
+ /* Transitions */
250
+ --transition-fast: 150ms ease-in-out;
251
+ --transition-normal: 300ms ease-in-out;
252
+ }
253
+ ```
254
+
255
+ ---
256
+
257
+ ## 変更履歴
258
+
259
+ | バージョン | 日付 | 変更内容 |
260
+ | ---------- | ---------- | -------- |
261
+ | 1.0 | YYYY-MM-DD | 初版作成 |