@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.
- package/README.md +1 -0
- package/dist/scripts/__tests__/validate-phase.test.js +83 -0
- package/dist/scripts/__tests__/validate-phase.test.js.map +1 -1
- package/dist/scripts/config/config-schema.d.ts +14 -0
- package/dist/scripts/config/config-schema.d.ts.map +1 -1
- package/dist/scripts/config/config-schema.js +9 -0
- package/dist/scripts/config/config-schema.js.map +1 -1
- package/dist/scripts/validate-phase.d.ts.map +1 -1
- package/dist/scripts/validate-phase.js +18 -3
- package/dist/scripts/validate-phase.js.map +1 -1
- package/dist/src/__tests__/integration/setup/claude.test.js +82 -0
- package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +1 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +1 -0
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +33 -0
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/user-guide/guides/agent-skills-integration.md +217 -0
- package/docs/user-guide/guides/customization.md +2 -2
- package/docs/user-guide/guides/multi-project.md +2 -2
- package/docs/user-guide/guides/phase-automation.md +25 -25
- package/docs/user-guide/guides/workflow.md +8 -20
- package/docs/user-guide/reference/config.md +2 -2
- package/docs/user-guide/reference/tasks-template.md +2 -2
- package/docs/user-guide/testing/test-planning-flow.md +1 -1
- package/package.json +1 -1
- package/scripts/__tests__/validate-phase.test.ts +100 -0
- package/scripts/config/config-schema.ts +11 -0
- package/scripts/validate-phase.ts +21 -3
- package/templates/claude/agents/design-reviewer/AGENT.md +497 -0
- package/templates/claude/agents/e2e-first-planner/AGENT.md +410 -0
- package/templates/claude/agents/oss-license-checker/AGENT.md +265 -0
- package/templates/claude/agents/pr-resolver/AGENT.md +196 -0
- package/templates/claude/agents/stable-version-auditor/AGENT.md +279 -0
- package/templates/claude/commands/kiro/kiro-spec-impl.md +13 -4
- package/templates/claude/commands/kiro/kiro-spec-tasks.md +17 -3
- package/templates/claude/commands/michi/design-review.md +66 -0
- package/templates/claude/commands/michi/e2e-plan.md +113 -0
- package/templates/claude/commands/michi/license-check.md +80 -0
- package/templates/claude/commands/michi/pr-resolve.md +153 -0
- package/templates/claude/commands/michi/version-audit.md +91 -0
- package/templates/claude/skills/design-review/SKILL.md +648 -0
- package/templates/claude/skills/e2e-first-planning/SKILL.md +360 -0
- package/templates/claude/skills/oss-license/SKILL.md +232 -0
- 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. **
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
340
|
-
4.
|
|
341
|
-
5.
|
|
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 の設定に従います。
|