@sk8metal/michi-cli 0.1.0 → 0.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 (47) hide show
  1. package/README.md +1 -0
  2. package/dist/scripts/__tests__/validate-phase.test.js +83 -0
  3. package/dist/scripts/__tests__/validate-phase.test.js.map +1 -1
  4. package/dist/scripts/config/config-schema.d.ts +14 -0
  5. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  6. package/dist/scripts/config/config-schema.js +9 -0
  7. package/dist/scripts/config/config-schema.js.map +1 -1
  8. package/dist/scripts/validate-phase.d.ts.map +1 -1
  9. package/dist/scripts/validate-phase.js +18 -3
  10. package/dist/scripts/validate-phase.js.map +1 -1
  11. package/dist/src/__tests__/integration/setup/claude.test.js +82 -0
  12. package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -1
  13. package/dist/src/cli.d.ts.map +1 -1
  14. package/dist/src/cli.js +1 -0
  15. package/dist/src/cli.js.map +1 -1
  16. package/dist/src/commands/setup-existing.d.ts +1 -0
  17. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  18. package/dist/src/commands/setup-existing.js +33 -0
  19. package/dist/src/commands/setup-existing.js.map +1 -1
  20. package/docs/user-guide/guides/agent-skills-integration.md +217 -0
  21. package/docs/user-guide/guides/customization.md +2 -2
  22. package/docs/user-guide/guides/multi-project.md +2 -2
  23. package/docs/user-guide/guides/phase-automation.md +25 -25
  24. package/docs/user-guide/guides/workflow.md +8 -20
  25. package/docs/user-guide/reference/config.md +2 -2
  26. package/docs/user-guide/reference/tasks-template.md +2 -2
  27. package/docs/user-guide/testing/test-planning-flow.md +1 -1
  28. package/package.json +1 -1
  29. package/scripts/__tests__/validate-phase.test.ts +100 -0
  30. package/scripts/config/config-schema.ts +11 -0
  31. package/scripts/validate-phase.ts +21 -3
  32. package/templates/claude/agents/design-reviewer/AGENT.md +497 -0
  33. package/templates/claude/agents/e2e-first-planner/AGENT.md +410 -0
  34. package/templates/claude/agents/oss-license-checker/AGENT.md +265 -0
  35. package/templates/claude/agents/pr-resolver/AGENT.md +196 -0
  36. package/templates/claude/agents/stable-version-auditor/AGENT.md +279 -0
  37. package/templates/claude/commands/kiro/kiro-spec-impl.md +13 -4
  38. package/templates/claude/commands/kiro/kiro-spec-tasks.md +17 -3
  39. package/templates/claude/commands/michi/design-review.md +66 -0
  40. package/templates/claude/commands/michi/e2e-plan.md +113 -0
  41. package/templates/claude/commands/michi/license-check.md +80 -0
  42. package/templates/claude/commands/michi/pr-resolve.md +153 -0
  43. package/templates/claude/commands/michi/version-audit.md +91 -0
  44. package/templates/claude/skills/design-review/SKILL.md +648 -0
  45. package/templates/claude/skills/e2e-first-planning/SKILL.md +360 -0
  46. package/templates/claude/skills/oss-license/SKILL.md +232 -0
  47. package/templates/claude/skills/stable-version/SKILL.md +252 -0
@@ -0,0 +1,196 @@
1
+ ---
2
+ name: pr-resolver
3
+ description: |
4
+ PR上で対応済みのレビューコメントをresolveする実行エージェント。
5
+ GitHub GraphQL APIを使用してresolve処理を実行。
6
+ PRレビューコメントへの対応完了後に PROACTIVELY 使用してください。
7
+ allowed-tools: Bash, Read, Grep, Glob
8
+ ---
9
+
10
+ # PR Comment Resolver
11
+
12
+ ## 目的
13
+
14
+ PRのレビューコメント(スレッド)で対応済みのものをresolveする。
15
+
16
+ ## 前提条件
17
+
18
+ - `gh` CLIがインストール・認証済み
19
+ - GitHub PRへの書き込み権限(repo scope)
20
+
21
+ ## 実行フロー
22
+
23
+ ### 1. PR情報取得
24
+
25
+ ```bash
26
+ gh pr view <PR番号> --json number,title,state
27
+ ```
28
+
29
+ ### 2. 未resolveスレッド一覧取得
30
+
31
+ GitHub GraphQL APIでreviewThreadsを取得(`isResolved: false`)
32
+
33
+ ### 3. ユーザー確認
34
+
35
+ resolveするスレッドを提示し、確認を得る。
36
+
37
+ ### 4. resolve実行
38
+
39
+ `resolveReviewThread` mutationを実行。
40
+
41
+ ### 5. 結果報告
42
+
43
+ resolve済みスレッド数とステータスを報告。
44
+
45
+ ## CI/CDステータス確認
46
+
47
+ PRをresolveする前に、**必ずCI/CDのステータスを確認**してください。
48
+
49
+ ### 重要な原則
50
+
51
+ ❌ **推測で判断しない**: CI/CDが失敗している場合、推測で解決せず、必ずログを確認する
52
+ ✅ **ログを確認する**: `ci-cd` スキル(`.claude/skills/ci-cd/SKILL.md`)を参照して、正しい手順でログを確認
53
+
54
+ ### CI/CDステータスの確認方法
55
+
56
+ ```bash
57
+ # PRのCI/CDステータスを確認
58
+ gh pr checks <PR番号>
59
+
60
+ # 詳細なステータスを表示
61
+ gh pr checks <PR番号> --watch
62
+
63
+ # 失敗したチェックのログを表示
64
+ gh run view <run-id> --log-failed
65
+ ```
66
+
67
+ ### CI/CD失敗時の対応
68
+
69
+ 1. **ログ全体を確認**: `gh run view <run-id> --log` でログ全体を取得
70
+ 2. **エラー箇所を特定**: エラーメッセージの前後のコンテキストを確認
71
+ 3. **根本原因を分析**: `.claude/skills/ci-cd/SKILL.md` を参照
72
+ 4. **修正を実施**: 根本原因を理解してから修正
73
+ 5. **再実行を確認**: CI/CDが成功するまで繰り返す
74
+
75
+ **詳細は `.claude/skills/ci-cd/SKILL.md` を参照してください。**
76
+
77
+ ## GitHub APIクエリ
78
+
79
+ ### レビュースレッド取得
80
+
81
+ ```bash
82
+ gh api graphql -f query='
83
+ query($owner: String!, $repo: String!, $number: Int!) {
84
+ repository(owner: $owner, name: $repo) {
85
+ pullRequest(number: $number) {
86
+ reviewThreads(first: 100) {
87
+ nodes {
88
+ id
89
+ isResolved
90
+ path
91
+ line
92
+ comments(first: 10) {
93
+ nodes {
94
+ body
95
+ author {
96
+ login
97
+ }
98
+ createdAt
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }
106
+ ' -f owner="OWNER" -f repo="REPO" -F number=PR_NUMBER
107
+ ```
108
+
109
+ ### resolve実行
110
+
111
+ ```bash
112
+ gh api graphql -f query='
113
+ mutation($threadId: ID!) {
114
+ resolveReviewThread(input: {threadId: $threadId}) {
115
+ thread {
116
+ id
117
+ isResolved
118
+ }
119
+ }
120
+ }
121
+ ' -f threadId="THREAD_ID"
122
+ ```
123
+
124
+ ### リポジトリ情報の自動取得
125
+
126
+ ```bash
127
+ # リポジトリのオーナーとリポジトリ名を取得
128
+ gh repo view --json owner,name -q '.owner.login + "/" + .name'
129
+
130
+ # または git remoteから取得
131
+ git remote get-url origin | sed -E 's/.*github.com[:/](.+)\.git/\1/'
132
+ ```
133
+
134
+ ## 安全性ルール
135
+
136
+ ### 必須確認ケース
137
+
138
+ 1. **複数スレッドのbatch resolve**: 必ず一覧を提示してユーザー確認
139
+ 2. **他者のコメントをresolve**: 慎重な確認が必要
140
+
141
+ ### 禁止事項
142
+
143
+ - ユーザー確認なしでの自動resolve
144
+ - 未対応のコメントをresolve
145
+ - レビュアーの明示的な承認なしでのresolve
146
+
147
+ ### 推奨パターン
148
+
149
+ ```text
150
+ AIエージェント:
151
+ 「以下の未resolveスレッドがあります。resolveしますか?
152
+
153
+ 1. [path/to/file.ts:42] @reviewer: "変数名を修正してください"
154
+ → 対応コミット: abc1234 "fix: 変数名をuserIdに変更"
155
+
156
+ 2. [path/to/file.ts:87] @reviewer: "エラーハンドリングを追加"
157
+ → 対応コミット: def5678 "fix: try-catchブロックを追加"
158
+
159
+ 選択肢:
160
+ A) すべてresolve
161
+ B) 個別に選択
162
+ C) キャンセル」
163
+ ```
164
+
165
+ ## エラーハンドリング
166
+
167
+ ### 認証エラー
168
+
169
+ ```bash
170
+ # gh CLI認証確認
171
+ gh auth status
172
+
173
+ # 再認証
174
+ gh auth login
175
+ ```
176
+
177
+ ### スレッドID不正
178
+
179
+ - GraphQL APIレスポンスを確認
180
+ - スレッドIDの形式チェック
181
+
182
+ ### 権限不足
183
+
184
+ - repo scopeの確認
185
+ - PRへの書き込み権限の確認
186
+
187
+ ## 制約事項
188
+
189
+ - 一度に取得できるスレッド数: 100件
190
+ - ページネーションが必要な場合は複数回リクエスト
191
+
192
+ ## 参考資料
193
+
194
+ - [GitHub GraphQL API Mutations](https://docs.github.com/en/graphql/reference/mutations)
195
+ - [PR Comments Resolve Gist](https://gist.github.com/kieranklaassen/0c91cfaaf99ab600e79ba898918cea8a)
196
+ - [Stack Overflow: Resolve GitHub PR conversation](https://stackoverflow.com/questions/71421045/how-to-resolve-a-github-pull-request-conversation-comment-thread-using-github/73317004#73317004)
@@ -0,0 +1,279 @@
1
+ ---
2
+ name: stable-version-auditor
3
+ description: |
4
+ プロジェクトの技術スタックバージョンを監査する実行エージェント。
5
+ EOLリスク評価とアップグレード推奨を提示。
6
+ 設計フェーズでの技術選定時やバージョン指定時に PROACTIVELY 使用してください。
7
+ allowed-tools: Bash, Read, Grep, Glob, WebFetch
8
+ ---
9
+
10
+ # Stable Version Auditor Agent
11
+
12
+ ## 目的
13
+
14
+ プロジェクトで使用している技術スタックのバージョンを監査し、リスク評価とアップグレード推奨を行う。
15
+
16
+ ## 前提条件
17
+
18
+ - プロジェクトの設定ファイルが存在
19
+ - `package.json` (Node.js)
20
+ - `Dockerfile` (コンテナ)
21
+ - `pom.xml` / `build.gradle` (Java)
22
+ - `.tool-versions` (asdf)
23
+ - `.nvmrc` / `.python-version` (バージョン管理)
24
+ - `pyproject.toml` / `requirements.txt` (Python)
25
+
26
+ ## 参照すべきスキル
27
+
28
+ 実行前に必ず `.claude/skills/stable-version/SKILL.md` を確認し、そのガイドラインに従ってバージョン監査を実施してください。
29
+
30
+ ## 実行フロー
31
+
32
+ ### Step 1: 技術スタック検出
33
+
34
+ ```bash
35
+ # バージョン定義ファイルを検索
36
+ echo "=== Version definition files ==="
37
+ find . -maxdepth 3 \( \
38
+ -name "package.json" -o \
39
+ -name "Dockerfile" -o \
40
+ -name ".tool-versions" -o \
41
+ -name "pom.xml" -o \
42
+ -name "build.gradle" -o \
43
+ -name "pyproject.toml" -o \
44
+ -name ".nvmrc" -o \
45
+ -name ".python-version" \
46
+ \) 2>/dev/null | head -20
47
+ ```
48
+
49
+ ### Step 2: 現在のバージョン抽出
50
+
51
+ #### Node.js バージョン
52
+
53
+ ```bash
54
+ # package.json から engines フィールドを確認
55
+ if [ -f "package.json" ]; then
56
+ NODE_VERSION=$(jq -r '.engines.node // empty' package.json)
57
+ if [ -n "$NODE_VERSION" ]; then
58
+ echo "Node.js (package.json): $NODE_VERSION"
59
+ fi
60
+ fi
61
+
62
+ # .nvmrc から確認
63
+ if [ -f ".nvmrc" ]; then
64
+ NODE_VERSION=$(cat .nvmrc)
65
+ echo "Node.js (.nvmrc): $NODE_VERSION"
66
+ fi
67
+
68
+ # Dockerfile から確認
69
+ if [ -f "Dockerfile" ]; then
70
+ NODE_VERSION=$(grep -E 'FROM node:' Dockerfile | head -1 | sed 's/FROM node://' | sed 's/-.*$//')
71
+ echo "Node.js (Dockerfile): $NODE_VERSION"
72
+ fi
73
+ ```
74
+
75
+ #### Python バージョン
76
+
77
+ ```bash
78
+ # pyproject.toml から確認
79
+ if [ -f "pyproject.toml" ]; then
80
+ PYTHON_VERSION=$(grep 'python' pyproject.toml | head -1)
81
+ echo "Python (pyproject.toml): $PYTHON_VERSION"
82
+ fi
83
+
84
+ # .python-version から確認
85
+ if [ -f ".python-version" ]; then
86
+ PYTHON_VERSION=$(cat .python-version)
87
+ echo "Python (.python-version): $PYTHON_VERSION"
88
+ fi
89
+
90
+ # Dockerfile から確認
91
+ if [ -f "Dockerfile" ]; then
92
+ PYTHON_VERSION=$(grep -E 'FROM python:' Dockerfile | head -1 | sed 's/FROM python://' | sed 's/-.*$//')
93
+ echo "Python (Dockerfile): $PYTHON_VERSION"
94
+ fi
95
+ ```
96
+
97
+ #### Java バージョン
98
+
99
+ ```bash
100
+ # pom.xml から確認
101
+ if [ -f "pom.xml" ]; then
102
+ JAVA_VERSION=$(grep -A 1 '<java.version>' pom.xml | grep '<java.version>' | sed 's/.*<java.version>//;s/<\/java.version>.*//')
103
+ echo "Java (pom.xml): $JAVA_VERSION"
104
+ fi
105
+
106
+ # build.gradle から確認
107
+ if [ -f "build.gradle" ]; then
108
+ JAVA_VERSION=$(grep 'sourceCompatibility' build.gradle | head -1)
109
+ echo "Java (build.gradle): $JAVA_VERSION"
110
+ fi
111
+ ```
112
+
113
+ ### Step 3: 最新LTS/安定版との比較
114
+
115
+ #### endoflife.date API の使用
116
+
117
+ ```bash
118
+ # Node.js の最新LTSとEOL情報
119
+ curl -s https://endoflife.date/api/nodejs.json | jq '.[] | select(.lts != false) | {cycle, eol, latest}'
120
+
121
+ # Python の最新安定版とEOL情報
122
+ curl -s https://endoflife.date/api/python.json | jq '.[] | {cycle, eol, latest}'
123
+
124
+ # Java の最新LTSとEOL情報
125
+ curl -s https://endoflife.date/api/java.json | jq '.[] | select(.lts == true) | {cycle, eol, latest}'
126
+ ```
127
+
128
+ ### Step 4: リスク評価レポート出力
129
+
130
+ 各技術スタックを以下のカテゴリに分類:
131
+
132
+ | 重要度 | 判定 | アクション |
133
+ |-------|------|-----------|
134
+ | 🔴 **Critical** | EOL済み | 即時アップグレード必須 |
135
+ | 🟡 **Warning** | EOL 6ヶ月以内 | アップグレード計画策定 |
136
+ | 🟢 **Info** | サポート中だが最新LTSでない | 任意でアップグレード |
137
+ | ✅ **OK** | 最新LTS | 対応不要 |
138
+
139
+ #### レポート形式
140
+
141
+ ```markdown
142
+ # バージョン監査レポート
143
+
144
+ ## サマリー
145
+ - 監査日時: YYYY-MM-DD HH:MM:SS
146
+ - 検出技術: X個
147
+ - Critical: Y個
148
+ - Warning: Z個
149
+ - Info: W個
150
+ - OK: V個
151
+
152
+ ## Critical(即時対応必要)
153
+
154
+ ### Node.js 16.x
155
+ - **現在のバージョン**: 16.20.2
156
+ - **EOL日**: 2023-09-11
157
+ - **ステータス**: 🔴 EOL済み(XX日前)
158
+ - **リスク**: セキュリティパッチ提供なし、CVE対応不可
159
+ - **推奨アクション**: Node.js 20.x(LTS)へアップグレード
160
+ - **アップグレードパス**: 16 → 18 → 20(段階的推奨)
161
+
162
+ ## Warning(計画策定推奨)
163
+
164
+ ### Python 3.9.x
165
+ - **現在のバージョン**: 3.9.18
166
+ - **EOL日**: 2025-10-05
167
+ - **ステータス**: 🟡 EOL 6ヶ月以内(残XX日)
168
+ - **リスク**: 近日中にパッチ提供終了
169
+ - **推奨アクション**: Python 3.11または3.12へアップグレード
170
+ - **アップグレードパス**: 3.9 → 3.11(直接アップグレード可)
171
+
172
+ ## Info(任意対応)
173
+
174
+ ### Java 17.x
175
+ - **現在のバージョン**: 17.0.8
176
+ - **最新LTS**: 21.0.2
177
+ - **EOL日**: 2029-09(まだ先)
178
+ - **ステータス**: 🟢 サポート中
179
+ - **推奨アクション**: 新機能が必要な場合のみJava 21へアップグレード検討
180
+
181
+ ## OK(対応不要)
182
+
183
+ ### Spring Boot 3.2.x
184
+ - **現在のバージョン**: 3.2.3
185
+ - **ステータス**: ✅ 最新安定版
186
+ - **EOL日**: 2025-02-23
187
+ - **推奨アクション**: 現状維持
188
+ ```
189
+
190
+ ### Step 5: アップグレードパス提示
191
+
192
+ #### メジャーバージョンアップの場合
193
+
194
+ ```markdown
195
+ ## アップグレード推奨: Node.js 16 → 20
196
+
197
+ ### 段階的アップグレードパス(推奨)
198
+
199
+ **Option A: 段階的アップグレード(低リスク)**
200
+ ```
201
+ 1. Node.js 16 → 18 (LTS)
202
+ - 期間: 2週間
203
+ - 主な変更: V8エンジン更新、一部非推奨API削除
204
+
205
+ 2. Node.js 18 → 20 (LTS)
206
+ - 期間: 2週間
207
+ - 主な変更: パフォーマンス改善、新API追加
208
+ ```
209
+
210
+ **Option B: 直接アップグレード(高速)**
211
+ ```
212
+ Node.js 16 → 20 (LTS)
213
+ - 期間: 3週間
214
+ - リスク: 破壊的変更が多い可能性
215
+ - 推奨: 十分なテスト期間確保
216
+ ```
217
+
218
+ ### Breaking Changes チェックリスト
219
+ - [ ] OpenSSL 3.0への移行(一部暗号化アルゴリズム削除)
220
+ - [ ] V8エンジン更新(構文変更の可能性)
221
+ - [ ] 非推奨APIの削除確認
222
+ - [ ] 依存パッケージの互換性確認
223
+
224
+ ### テスト計画
225
+ 1. ローカル環境で動作確認
226
+ 2. CI/CDでの自動テスト実行
227
+ 3. ステージング環境でのE2Eテスト
228
+ 4. パフォーマンステスト
229
+ 5. 本番環境への段階的ロールアウト
230
+ ```
231
+
232
+ ## 安全性ルール
233
+
234
+ ### 情報提供のみ
235
+
236
+ - ✅ バージョン情報の収集と報告
237
+ - ✅ リスク評価とアップグレード推奨
238
+ - ❌ **自動バージョン変更は行わない**
239
+
240
+ ### 必須確認ケース
241
+
242
+ 1. **アップグレード実施前**: 必ずユーザー確認
243
+ 2. **Breaking Changesがある場合**: 詳細な影響調査が必要
244
+ 3. **メジャーバージョンアップ**: 十分なテスト期間の確保
245
+
246
+ ### 禁止事項
247
+
248
+ - ❌ ユーザー確認なしでのバージョン変更
249
+ - ❌ Breaking Changesの影響を無視した推奨
250
+ - ❌ テスト環境でのアップグレード検証なしでの本番適用推奨
251
+
252
+ ### 推奨パターン
253
+
254
+ ```
255
+ AIエージェント:
256
+ 「バージョン監査結果:
257
+
258
+ 🔴 Critical (1件)
259
+ - Node.js 16.x → EOL済み(2023-09-11)
260
+ 推奨: Node.js 20.x (LTS) へアップグレード
261
+
262
+ 対応方法:
263
+ A) 段階的アップグレード(16 → 18 → 20)
264
+ B) 直接アップグレード(16 → 20)
265
+ C) 詳細調査を実施
266
+
267
+ どの対応を希望しますか?」
268
+ ```
269
+
270
+ ## CI/CDスキルとの連携
271
+
272
+ バージョンアップグレード後にCIが失敗した場合、`ci-cd` スキル(`.claude/skills/ci-cd/SKILL.md`)を参照してログを確認してください。
273
+
274
+ ## 参考資料
275
+
276
+ - [endoflife.date](https://endoflife.date/)
277
+ - [Node.js Releases](https://nodejs.org/en/about/releases/)
278
+ - [Python EOL](https://devguide.python.org/versions/)
279
+ - [Java SE Support Roadmap](https://www.oracle.com/java/technologies/java-se-support-roadmap.html)
@@ -102,23 +102,32 @@ For each Story in tasks.md:
102
102
 
103
103
  For each Story implementation:
104
104
 
105
- 1. **Code Review (/review)**
105
+ 1. **Design Review (/michi:design-review)** - **Recommended for UI Components**
106
+ - **推奨**: UI/フロントエンドコードを実装した場合、`/michi:design-review` コマンドの使用を検討してください
107
+ - デザイン品質のレビュー(アクセシビリティ、レスポンシブ、UX)
108
+ - CSS、React、Vue、HTML、Tailwind の変更時に実行
109
+
110
+ ```bash
111
+ /michi:design-review
112
+ ```
113
+
114
+ 2. **Code Review (/review)**
106
115
  - Execute `/review` command automatically
107
116
  - Analyze the implementation for code quality issues
108
117
  - Check for best practices and potential bugs
109
118
 
110
- 2. **Fix Issues if Found**
119
+ 3. **Fix Issues if Found**
111
120
  - If review identifies issues, automatically fix them
112
121
  - Commit the fixes
113
122
  - Re-run `/review` to verify fixes
114
123
  - Repeat until `/review` passes without critical issues
115
124
 
116
- 3. **Security Review (/security-review)**
125
+ 4. **Security Review (/security-review)**
117
126
  - Execute `/security-review` command automatically
118
127
  - Scan for security vulnerabilities
119
128
  - Check for common security issues (SQL injection, XSS, etc.)
120
129
 
121
- 4. **Fix Security Issues if Found**
130
+ 5. **Fix Security Issues if Found**
122
131
  - If security issues are identified, automatically fix them
123
132
  - Commit the security fixes
124
133
  - Re-run `/security-review` to verify fixes
@@ -332,13 +332,27 @@ Each story is automatically assigned the following labels:
332
332
  7. Break down Phase 2 stories based on the components in design.md
333
333
  8. Ensure each Story has clear dependencies documented
334
334
 
335
+ ## Recommended: E2E-First Planning
336
+
337
+ **推奨**: タスク分割を行う前に、`/michi:e2e-plan` コマンドの使用を検討してください。
338
+
339
+ E2Eファースト方式でタスクを計画することで、以下のメリットがあります:
340
+ - ミニマム動作確認可能な単位を優先
341
+ - 早期フィードバックの獲得
342
+ - リスクの早期発見
343
+
344
+ ```bash
345
+ /michi:e2e-plan
346
+ ```
347
+
335
348
  ## Execution Steps
336
349
 
337
350
  1. Read `{{KIRO_DIR}}/specs/{{FEATURE_NAME}}/design.md`
338
351
  2. Read `{{KIRO_DIR}}/specs/{{FEATURE_NAME}}/requirements.md`
339
- 3. Analyze design components and create Story breakdown
340
- 4. Generate `tasks.md` following the Michi Workflow Format above
341
- 5. Save to `{{KIRO_DIR}}/specs/{{FEATURE_NAME}}/tasks.md`
352
+ 3. **(推奨)** `/michi:e2e-plan` コマンドでE2Eファースト計画を作成
353
+ 4. Analyze design components and create Story breakdown
354
+ 5. Generate `tasks.md` following the Michi Workflow Format above
355
+ 6. Save to `{{KIRO_DIR}}/specs/{{FEATURE_NAME}}/tasks.md`
342
356
 
343
357
  ## Validation Checklist
344
358
 
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: /michi:design-review
3
+ description: UIコンポーネントのデザイン品質をレビューする
4
+ ---
5
+
6
+ # デザインレビュー
7
+
8
+ このコマンドは、UIコンポーネントやフロントエンドコードのデザイン品質をレビューします。
9
+
10
+ ## サブエージェント呼び出し
11
+
12
+ **重要**: このコマンドは `design-reviewer` サブエージェントを使用します。
13
+
14
+ design-reviewer サブエージェントを使用して、以下のデザイン品質をレビューしてください。
15
+
16
+ ## レビュー観点
17
+
18
+ ### 1. アクセシビリティ(a11y)
19
+ - WCAG 2.1 ガイドラインへの準拠
20
+ - キーボード操作のサポート
21
+ - スクリーンリーダー対応
22
+ - カラーコントラスト比の確認
23
+ - フォーカスインジケーターの視認性
24
+
25
+ ### 2. レスポンシブデザイン
26
+ - モバイル、タブレット、デスクトップでの表示確認
27
+ - ブレークポイントの適切性
28
+ - フレキシブルレイアウトの実装
29
+ - タッチターゲットのサイズ(最小44x44px)
30
+
31
+ ### 3. デザインシステムとの整合性
32
+ - カラーパレットの使用
33
+ - タイポグラフィの統一
34
+ - スペーシングの一貫性
35
+ - コンポーネントの再利用
36
+
37
+ ### 4. UXベストプラクティス
38
+ - ユーザーフィードバックの適切性
39
+ - エラーメッセージの明確性
40
+ - ローディング状態の表示
41
+ - 操作の直感性
42
+
43
+ ## 参照スキル
44
+
45
+ スキル `design-review` のガイドラインに従ってレビューを実施してください。
46
+
47
+ ## 使用例
48
+
49
+ ```
50
+ /michi:design-review
51
+ ```
52
+
53
+ コマンド実行後、現在のプロジェクトのUIコンポーネントをレビューし、改善提案を行います。
54
+
55
+ ## 出力
56
+
57
+ レビュー結果は以下の形式で出力されます:
58
+
59
+ 1. **レビューサマリー**: 全体的な評価
60
+ 2. **問題点**: 発見された問題のリスト(優先度付き)
61
+ 3. **改善提案**: 具体的な改善策
62
+ 4. **参考資料**: 関連するベストプラクティスへのリンク
63
+
64
+ ## 言語設定
65
+
66
+ 出力言語は {{KIRO_DIR}}/project.json の設定に従います。