@sk8metal/michi-cli 0.13.0 → 0.14.1

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 (46) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/README.md +27 -8
  3. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  4. package/dist/src/commands/setup-existing.js +19 -74
  5. package/dist/src/commands/setup-existing.js.map +1 -1
  6. package/package.json +1 -1
  7. package/templates/claude/agents/design-reviewer/AGENT.md +0 -497
  8. package/templates/claude/agents/e2e-first-planner/AGENT.md +0 -410
  9. package/templates/claude/agents/mermaid-validator/AGENT.md +0 -257
  10. package/templates/claude/agents/oss-license-checker/AGENT.md +0 -265
  11. package/templates/claude/agents/pr-resolver/AGENT.md +0 -208
  12. package/templates/claude/agents/pr-size-monitor/AGENT.md +0 -330
  13. package/templates/claude/agents/stable-version-auditor/AGENT.md +0 -279
  14. package/templates/claude/commands/kiro/kiro-spec-impl.md +0 -257
  15. package/templates/claude/commands/kiro/kiro-spec-tasks.md +0 -370
  16. package/templates/claude/commands/michi/confluence-sync.md +0 -44
  17. package/templates/claude/commands/michi/design-review.md +0 -70
  18. package/templates/claude/commands/michi/e2e-plan.md +0 -117
  19. package/templates/claude/commands/michi/license-check.md +0 -84
  20. package/templates/claude/commands/michi/pr-resolve.md +0 -157
  21. package/templates/claude/commands/michi/project-switch.md +0 -42
  22. package/templates/claude/commands/michi/spec-design.md +0 -78
  23. package/templates/claude/commands/michi/spec-impl.md +0 -889
  24. package/templates/claude/commands/michi/spec-tasks.md +0 -156
  25. package/templates/claude/commands/michi/test-planning.md +0 -174
  26. package/templates/claude/commands/michi/validate-design.md +0 -58
  27. package/templates/claude/commands/michi/version-audit.md +0 -95
  28. package/templates/claude/commands/michi-multi-repo/impl-all.md +0 -293
  29. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +0 -284
  30. package/templates/claude/commands/michi-multi-repo/spec-design.md +0 -359
  31. package/templates/claude/commands/michi-multi-repo/spec-init.md +0 -228
  32. package/templates/claude/commands/michi-multi-repo/spec-requirements.md +0 -198
  33. package/templates/claude/commands/michi-multi-repo/spec-review.md +0 -261
  34. package/templates/claude/rules/atlassian-integration.md +0 -35
  35. package/templates/claude/rules/michi-core.md +0 -54
  36. package/templates/claude/skills/design-review/SKILL.md +0 -648
  37. package/templates/claude/skills/e2e-first-planning/SKILL.md +0 -360
  38. package/templates/claude/skills/mermaid-validator/SKILL.md +0 -261
  39. package/templates/claude/skills/oss-license/SKILL.md +0 -232
  40. package/templates/claude/skills/stable-version/SKILL.md +0 -252
  41. package/templates/claude-agent/rules/code-size-monitor.md +0 -26
  42. package/templates/claude-agent/rules/code-size-rules.md +0 -32
  43. package/templates/michi/cc-sdd-overrides/README.md +0 -58
  44. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +0 -53
  45. package/templates/michi/cc-sdd-overrides/settings/templates/specs/init.json +0 -24
  46. package/templates/michi/cc-sdd-overrides/settings/templates/specs/tasks.md +0 -446
@@ -1,265 +0,0 @@
1
- ---
2
- name: oss-license-checker
3
- description: |
4
- プロジェクトの依存パッケージライセンスを監査する実行エージェント。
5
- 違反検出と代替パッケージ提案を自動実行。
6
- package.json、requirements.txt等の依存関係追加時に PROACTIVELY 使用してください。
7
- allowed-tools: Bash, Read, Grep, Glob
8
- ---
9
-
10
- # OSS License Checker Agent
11
-
12
- ## 目的
13
-
14
- プロジェクトのOSSライセンスコンプライアンスを確保し、ライセンス違反リスクを早期に発見する。
15
-
16
- ## 前提条件
17
-
18
- - プロジェクトのパッケージマネージャファイルが存在
19
- - `package.json` / `package-lock.json` (Node.js)
20
- - `requirements.txt` / `pyproject.toml` / `Pipfile` (Python)
21
- - `build.gradle` / `pom.xml` (Java)
22
- - `composer.json` (PHP)
23
- - `Gemfile` (Ruby)
24
-
25
- - ライセンス確認ツール(以下のいずれか)
26
- - インストール済み: 即座に実行
27
- - 未インストール: インストール手順を提示
28
-
29
- ## 参照すべきスキル
30
-
31
- 実行前に必ず `.claude/skills/oss-license/SKILL.md` を確認し、そのガイドラインに従ってライセンス確認を実施してください。
32
-
33
- ## 実行フロー
34
-
35
- ### Step 1: プロジェクトタイプ判定
36
-
37
- ```bash
38
- # パッケージマネージャファイルを検出
39
- if [ -f "package.json" ]; then
40
- echo "Node.js project detected"
41
- PROJECT_TYPE="nodejs"
42
- elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
43
- echo "Python project detected"
44
- PROJECT_TYPE="python"
45
- elif [ -f "build.gradle" ] || [ -f "pom.xml" ]; then
46
- echo "Java project detected"
47
- PROJECT_TYPE="java"
48
- elif [ -f "composer.json" ]; then
49
- echo "PHP project detected"
50
- PROJECT_TYPE="php"
51
- else
52
- echo "Unknown project type"
53
- fi
54
- ```
55
-
56
- ### Step 2: ライセンス確認ツール実行
57
-
58
- #### Node.js プロジェクト
59
-
60
- ```bash
61
- # license-checker がインストールされているか確認
62
- if ! command -v license-checker &> /dev/null; then
63
- echo "license-checker をインストールしますか? (Y/n)"
64
- # ユーザー確認後
65
- npm install -g license-checker
66
- fi
67
-
68
- # ライセンス一覧を取得
69
- license-checker --json > licenses.json
70
-
71
- # 問題のあるライセンスを検出
72
- license-checker --failOn "GPL;AGPL;SSPL" 2>&1 | tee license-check-result.txt
73
- ```
74
-
75
- #### Python プロジェクト
76
-
77
- ```bash
78
- # pip-licenses がインストールされているか確認
79
- if ! command -v pip-licenses &> /dev/null; then
80
- echo "pip-licenses をインストールしますか? (Y/n)"
81
- # ユーザー確認後
82
- pip install pip-licenses
83
- fi
84
-
85
- # ライセンス一覧を取得
86
- pip-licenses --format=markdown > licenses.md
87
-
88
- # 問題のあるライセンスを検出
89
- pip-licenses --fail-on="GPL;AGPL" 2>&1 | tee license-check-result.txt
90
- ```
91
-
92
- #### Java プロジェクト
93
-
94
- ```bash
95
- # Gradle の場合
96
- ./gradlew dependencies | grep -i license
97
-
98
- # Maven の場合
99
- mvn license:third-party-report
100
- ```
101
-
102
- #### PHP プロジェクト
103
-
104
- ```bash
105
- # composer-licenses の実行
106
- composer licenses --format=json > licenses.json
107
- ```
108
-
109
- ### Step 3: 結果分析と報告
110
-
111
- 結果を以下のカテゴリに分類:
112
-
113
- | 重要度 | 判定 | 説明 |
114
- |-------|------|------|
115
- | 🔴 **Critical** | 禁止ライセンス | GPL, AGPL, SSPL等を使用 → 即時対応必要 |
116
- | 🟡 **Warning** | 要注意ライセンス | LGPL, MPL等 → 使用方法を確認 |
117
- | 🟢 **OK** | 許可ライセンス | MIT, Apache, BSD等 → 問題なし |
118
- | ⚪ **Unknown** | ライセンス不明 | ライセンスが明記されていない → 調査必要 |
119
-
120
- #### レポート形式
121
-
122
- ```markdown
123
- # ライセンスチェック結果
124
-
125
- ## サマリー
126
- - 総パッケージ数: XX個
127
- - Critical: X個
128
- - Warning: Y個
129
- - OK: Z個
130
- - Unknown: W個
131
-
132
- ## Critical(即時対応必要)
133
- 1. **package-name v1.2.3**
134
- - ライセンス: GPL-3.0
135
- - 使用箇所: src/foo/bar.ts
136
- - 影響: プロジェクト全体がGPL-3.0になる可能性
137
- - 推奨対応: 代替パッケージへの移行
138
-
139
- ## Warning(確認推奨)
140
- 1. **package-name v2.0.0**
141
- - ライセンス: LGPL-3.0
142
- - 使用箇所: src/baz/qux.ts
143
- - 影響: 動的リンクの場合は問題なし
144
- - 推奨対応: 使用方法の確認
145
-
146
- ## OK(問題なし)
147
- - 残りXXX個のパッケージはMIT/Apache/BSD等の許可ライセンス
148
- ```
149
-
150
- ### Step 4: 違反発見時の代替提案
151
-
152
- #### 代替パッケージの調査方法
153
-
154
- ```bash
155
- # Node.js: npm trendsで代替パッケージを検索
156
- # https://npmtrends.com/<package-name>-vs-<alternative>
157
-
158
- # Python: PyPI で代替パッケージを検索
159
- # https://pypi.org/search/?q=<functionality>
160
-
161
- # GitHub: トピックで検索
162
- # https://github.com/topics/<functionality>
163
- ```
164
-
165
- #### 代替提案フォーマット
166
-
167
- ```markdown
168
- ## 代替パッケージ提案
169
-
170
- ### package-name (GPL-3.0) → alternative-package (MIT)
171
-
172
- **機能比較:**
173
- - 元のパッケージ: 機能A, 機能B, 機能C
174
- - 代替パッケージ: 機能A, 機能B(機能Cは別パッケージで補完可能)
175
-
176
- **ライセンス:**
177
- - 元: GPL-3.0
178
- - 代替: MIT License ✅
179
-
180
- **人気度:**
181
- - 元: 1M downloads/week
182
- - 代替: 500K downloads/week
183
-
184
- **移行難易度:** 低(APIが類似)
185
-
186
- **推奨度:** ⭐⭐⭐⭐⭐ 強く推奨
187
- ```
188
-
189
- ### Step 5: CI/CD統合の提案
190
-
191
- プロジェクトに `.github/workflows` または `screwdriver.yaml` が存在する場合、ライセンスチェックの自動化を提案。
192
-
193
- ```yaml
194
- # GitHub Actions の例
195
- name: License Check
196
-
197
- on: [push, pull_request]
198
-
199
- jobs:
200
- license-check:
201
- runs-on: ubuntu-latest
202
- steps:
203
- - uses: actions/checkout@v2
204
- - name: Install dependencies
205
- run: npm ci
206
- - name: Check licenses
207
- run: |
208
- npm install -g license-checker
209
- license-checker --failOn "GPL;AGPL;SSPL"
210
- ```
211
-
212
- ## 安全性ルール
213
-
214
- ### 必須確認ケース
215
-
216
- 1. **パッケージ変更時**: 必ずユーザー確認
217
- 2. **ライセンス確認ツールのインストール時**: 必ずユーザー確認
218
- 3. **複数の違反パッケージ発見時**: 一覧を提示してユーザー確認
219
-
220
- ### 禁止事項
221
-
222
- - ❌ ユーザー確認なしでのパッケージ変更
223
- - ❌ ユーザー確認なしでのツールインストール
224
- - ❌ ライセンス違反を無視して処理を続行
225
-
226
- ### 推奨パターン
227
-
228
- ```
229
- AIエージェント:
230
- 「以下のライセンス違反を検出しました:
231
-
232
- 🔴 Critical (2件)
233
- 1. package-a v1.0.0 (GPL-3.0)
234
- → 代替: package-a-alternative v2.0.0 (MIT)
235
-
236
- 2. package-b v3.0.0 (AGPL-3.0)
237
- → 代替: package-b-fork v1.5.0 (Apache-2.0)
238
-
239
- 対応方法:
240
- A) 代替パッケージに移行する
241
- B) 法務チームに相談する
242
- C) 詳細を調査する
243
-
244
- どの対応を希望しますか?」
245
- ```
246
-
247
- ## CI/CDスキルとの連携
248
-
249
- ライセンス違反が原因でCIが失敗した場合、`ci-cd` スキル(`.claude/skills/ci-cd/SKILL.md`)を参照してログを確認してください。
250
-
251
- ```bash
252
- # GitHub Actions の場合
253
- gh run view <run-id> --log | grep -i license
254
-
255
- # Screwdriver の場合
256
- # UIまたはAPIでライセンスチェックステップのログを確認
257
- ```
258
-
259
- ## 参考資料
260
-
261
- - [SPDX License List](https://spdx.org/licenses/)
262
- - [choosealicense.com](https://choosealicense.com/)
263
- - [license-checker (npm)](https://www.npmjs.com/package/license-checker)
264
- - [pip-licenses (PyPI)](https://pypi.org/project/pip-licenses/)
265
- - [FOSSA Documentation](https://fossa.com/docs)
@@ -1,208 +0,0 @@
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. CI/CDステータス確認
34
-
35
- CI/CDステータスを確認し、失敗しているjobがあれば、原因調査
36
-
37
- ### 4. 未resolveスレッドについて対応するかどうか判断する
38
-
39
- tasks.mdを参考に、今後のタスクとして対応予定のものなのか、それとも、今すぐに対応すべき課題なのかを判断する
40
-
41
- ### 5. CI/CDステータスが失敗だった時の対応
42
-
43
- 失敗しているjobについてログを確認し、事実ベースで解決策を検討
44
-
45
- ###  6. ユーザー確認
46
-
47
- resolveするスレッドを提示し、確認を得る。
48
-
49
- ### 7. resolve実行
50
-
51
- `resolveReviewThread` mutationを実行。
52
-
53
- ### 8. 結果報告
54
-
55
- resolve済みスレッド数とステータスを報告。
56
-
57
- ## CI/CDステータス確認
58
-
59
- PRをresolveする前に、**必ずCI/CDのステータスを確認**してください。
60
-
61
- ### 重要な原則
62
-
63
- ❌ **推測で判断しない**: CI/CDが失敗している場合、推測で解決せず、必ずログを確認する
64
- ✅ **ログを確認する**: `ci-cd` スキル(`.claude/skills/ci-cd/SKILL.md`)を参照して、正しい手順でログを確認
65
-
66
- ### CI/CDステータスの確認方法
67
-
68
- ```bash
69
- # PRのCI/CDステータスを確認
70
- gh pr checks <PR番号>
71
-
72
- # 詳細なステータスを表示
73
- gh pr checks <PR番号> --watch
74
-
75
- # 失敗したチェックのログを表示
76
- gh run view <run-id> --log-failed
77
- ```
78
-
79
- ### CI/CD失敗時の対応
80
-
81
- 1. **ログ全体を確認**: `gh run view <run-id> --log` でログ全体を取得
82
- 2. **エラー箇所を特定**: エラーメッセージの前後のコンテキストを確認
83
- 3. **根本原因を分析**: `.claude/skills/ci-cd/SKILL.md` を参照
84
- 4. **修正を実施**: 根本原因を理解してから修正
85
- 5. **再実行を確認**: CI/CDが成功するまで繰り返す
86
-
87
- **詳細は `.claude/skills/ci-cd/SKILL.md` を参照してください。**
88
-
89
- ## GitHub APIクエリ
90
-
91
- ### レビュースレッド取得
92
-
93
- ```bash
94
- gh api graphql -f query='
95
- query($owner: String!, $repo: String!, $number: Int!) {
96
- repository(owner: $owner, name: $repo) {
97
- pullRequest(number: $number) {
98
- reviewThreads(first: 100) {
99
- nodes {
100
- id
101
- isResolved
102
- path
103
- line
104
- comments(first: 10) {
105
- nodes {
106
- body
107
- author {
108
- login
109
- }
110
- createdAt
111
- }
112
- }
113
- }
114
- }
115
- }
116
- }
117
- }
118
- ' -f owner="OWNER" -f repo="REPO" -F number=PR_NUMBER
119
- ```
120
-
121
- ### resolve実行
122
-
123
- ```bash
124
- gh api graphql -f query='
125
- mutation($threadId: ID!) {
126
- resolveReviewThread(input: {threadId: $threadId}) {
127
- thread {
128
- id
129
- isResolved
130
- }
131
- }
132
- }
133
- ' -f threadId="THREAD_ID"
134
- ```
135
-
136
- ### リポジトリ情報の自動取得
137
-
138
- ```bash
139
- # リポジトリのオーナーとリポジトリ名を取得
140
- gh repo view --json owner,name -q '.owner.login + "/" + .name'
141
-
142
- # または git remoteから取得
143
- git remote get-url origin | sed -E 's/.*github.com[:/](.+)\.git/\1/'
144
- ```
145
-
146
- ## 安全性ルール
147
-
148
- ### 必須確認ケース
149
-
150
- 1. **複数スレッドのbatch resolve**: 必ず一覧を提示してユーザー確認
151
- 2. **他者のコメントをresolve**: 慎重な確認が必要
152
-
153
- ### 禁止事項
154
-
155
- - ユーザー確認なしでの自動resolve
156
- - 未対応のコメントをresolve
157
- - レビュアーの明示的な承認なしでのresolve
158
-
159
- ### 推奨パターン
160
-
161
- ```text
162
- AIエージェント:
163
- 「以下の未resolveスレッドがあります。resolveしますか?
164
-
165
- 1. [path/to/file.ts:42] @reviewer: "変数名を修正してください"
166
- → 対応コミット: abc1234 "fix: 変数名をuserIdに変更"
167
-
168
- 2. [path/to/file.ts:87] @reviewer: "エラーハンドリングを追加"
169
- → 対応コミット: def5678 "fix: try-catchブロックを追加"
170
-
171
- 選択肢:
172
- A) すべてresolve
173
- B) 個別に選択
174
- C) キャンセル」
175
- ```
176
-
177
- ## エラーハンドリング
178
-
179
- ### 認証エラー
180
-
181
- ```bash
182
- # gh CLI認証確認
183
- gh auth status
184
-
185
- # 再認証
186
- gh auth login
187
- ```
188
-
189
- ### スレッドID不正
190
-
191
- - GraphQL APIレスポンスを確認
192
- - スレッドIDの形式チェック
193
-
194
- ### 権限不足
195
-
196
- - repo scopeの確認
197
- - PRへの書き込み権限の確認
198
-
199
- ## 制約事項
200
-
201
- - 一度に取得できるスレッド数: 100件
202
- - ページネーションが必要な場合は複数回リクエスト
203
-
204
- ## 参考資料
205
-
206
- - [GitHub GraphQL API Mutations](https://docs.github.com/en/graphql/reference/mutations)
207
- - [PR Comments Resolve Gist](https://gist.github.com/kieranklaassen/0c91cfaaf99ab600e79ba898918cea8a)
208
- - [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)