@sk8metal/michi-cli 0.1.0 → 0.2.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 (52) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +1 -0
  3. package/dist/scripts/__tests__/validate-phase.test.js +83 -0
  4. package/dist/scripts/__tests__/validate-phase.test.js.map +1 -1
  5. package/dist/scripts/config/config-schema.d.ts +14 -0
  6. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  7. package/dist/scripts/config/config-schema.js +9 -0
  8. package/dist/scripts/config/config-schema.js.map +1 -1
  9. package/dist/scripts/phase-runner.d.ts.map +1 -1
  10. package/dist/scripts/phase-runner.js +2 -2
  11. package/dist/scripts/phase-runner.js.map +1 -1
  12. package/dist/scripts/validate-phase.d.ts.map +1 -1
  13. package/dist/scripts/validate-phase.js +18 -3
  14. package/dist/scripts/validate-phase.js.map +1 -1
  15. package/dist/src/__tests__/integration/setup/claude.test.js +82 -0
  16. package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -1
  17. package/dist/src/cli.d.ts.map +1 -1
  18. package/dist/src/cli.js +1 -0
  19. package/dist/src/cli.js.map +1 -1
  20. package/dist/src/commands/setup-existing.d.ts +1 -0
  21. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  22. package/dist/src/commands/setup-existing.js +33 -0
  23. package/dist/src/commands/setup-existing.js.map +1 -1
  24. package/docs/user-guide/guides/agent-skills-integration.md +217 -0
  25. package/docs/user-guide/guides/customization.md +2 -2
  26. package/docs/user-guide/guides/multi-project.md +2 -2
  27. package/docs/user-guide/guides/phase-automation.md +25 -25
  28. package/docs/user-guide/guides/workflow.md +8 -20
  29. package/docs/user-guide/reference/config.md +2 -2
  30. package/docs/user-guide/reference/tasks-template.md +2 -2
  31. package/docs/user-guide/testing/test-planning-flow.md +1 -1
  32. package/package.json +2 -3
  33. package/scripts/__tests__/validate-phase.test.ts +100 -0
  34. package/scripts/config/config-schema.ts +11 -0
  35. package/scripts/phase-runner.ts +12 -3
  36. package/scripts/validate-phase.ts +21 -3
  37. package/templates/claude/agents/design-reviewer/AGENT.md +497 -0
  38. package/templates/claude/agents/e2e-first-planner/AGENT.md +410 -0
  39. package/templates/claude/agents/oss-license-checker/AGENT.md +265 -0
  40. package/templates/claude/agents/pr-resolver/AGENT.md +196 -0
  41. package/templates/claude/agents/stable-version-auditor/AGENT.md +279 -0
  42. package/templates/claude/commands/kiro/kiro-spec-impl.md +13 -4
  43. package/templates/claude/commands/kiro/kiro-spec-tasks.md +17 -3
  44. package/templates/claude/commands/michi/design-review.md +66 -0
  45. package/templates/claude/commands/michi/e2e-plan.md +113 -0
  46. package/templates/claude/commands/michi/license-check.md +80 -0
  47. package/templates/claude/commands/michi/pr-resolve.md +153 -0
  48. package/templates/claude/commands/michi/version-audit.md +91 -0
  49. package/templates/claude/skills/design-review/SKILL.md +648 -0
  50. package/templates/claude/skills/e2e-first-planning/SKILL.md +360 -0
  51. package/templates/claude/skills/oss-license/SKILL.md +232 -0
  52. package/templates/claude/skills/stable-version/SKILL.md +252 -0
@@ -0,0 +1,360 @@
1
+ ---
2
+ name: e2e-first-planning
3
+ description: |
4
+ E2Eファースト開発計画策定ガイド。
5
+ Walking Skeleton、MVP計画、縦割りタスク分割をサポート。
6
+ allowed-tools: Read, Grep, Glob
7
+ ---
8
+
9
+ # E2Eファースト計画策定スキル
10
+
11
+ ## 目的
12
+
13
+ E2E(End-to-End)ファーストの開発計画を策定し、リスクを早期発見し、価値を段階的に提供する。
14
+
15
+ ## E2Eファーストとは
16
+
17
+ ### 定義
18
+
19
+ **E2Eファースト**: ユーザーの視点から始めて終わりまで動作する最小限の機能を最優先で実装するアプローチ。
20
+
21
+ ### 重要な原則
22
+
23
+ 1. **価値の早期提供**: ユーザーが触れる機能を優先
24
+ 2. **リスクの早期発見**: インテグレーション問題を早期に検出
25
+ 3. **継続的なフィードバック**: 動くものを見せて方向性を確認
26
+ 4. **技術的実現可能性の検証**: 最初から本番環境を意識
27
+
28
+ ### なぜE2Eファーストが重要か
29
+
30
+ | 利点 | 説明 |
31
+ |------|------|
32
+ | 🎯 **ユーザー価値重視** | 常に動作する機能を提供 |
33
+ | 🚨 **早期リスク発見** | 統合の問題を早期に検出 |
34
+ | 🔄 **継続的フィードバック** | ステークホルダーとの早期合意 |
35
+ | 🏗️ **技術的実現可能性** | アーキテクチャの妥当性を検証 |
36
+ | 📊 **進捗の可視化** | 動作する機能 = 進捗 |
37
+
38
+ ## アンチパターン: 横割り開発
39
+
40
+ ### ❌ 避けるべき開発順序
41
+
42
+ ```
43
+ Phase 1: UI全体を作る
44
+ Phase 2: API全体を作る
45
+ Phase 3: DB全体を作る
46
+ Phase 4: 統合(← ここで大量の問題発見)
47
+ ```
48
+
49
+ **問題点:**
50
+ - 統合まで動作する機能がゼロ
51
+ - リスクが最後に集中
52
+ - ユーザーフィードバックが遅い
53
+ - 見積もりの精度が低い
54
+
55
+ ### ✅ 推奨: 縦割り開発(E2Eスライス)
56
+
57
+ ```
58
+ Phase 1: ログイン機能(UI + API + DB)← 動作する
59
+ Phase 2: ダッシュボード(UI + API + DB)← 動作する
60
+ Phase 3: データ編集(UI + API + DB)← 動作する
61
+ ```
62
+
63
+ **利点:**
64
+ - 各フェーズで動作する機能を提供
65
+ - リスクを段階的に管理
66
+ - 継続的なフィードバック
67
+ - 見積もりの精度向上
68
+
69
+ ## 計画策定フレームワーク
70
+
71
+ ### フェーズ1: Skeleton(骨組み)
72
+
73
+ **目的**: プロジェクトの基本構造を定義
74
+
75
+ **成果物:**
76
+ - システムアーキテクチャ図
77
+ - 主要コンポーネントの識別
78
+ - 技術スタックの決定
79
+ - 開発環境のセットアップ
80
+
81
+ **期間**: 1-3日
82
+
83
+ **チェックリスト:**
84
+ - [ ] プロジェクト構造が明確か
85
+ - [ ] 技術スタックが決定したか
86
+ - [ ] 開発環境が構築できたか
87
+ - [ ] チーム全員が構造を理解したか
88
+
89
+ ### フェーズ2: Walking Skeleton(歩く骨組み)
90
+
91
+ **目的**: 最小限のE2E機能を実装
92
+
93
+ **成果物:**
94
+ - ユーザーから見て動作する最小機能
95
+ - CI/CD パイプラインの構築
96
+ - 本番環境へのデプロイ
97
+ - 監視・ログの基本設定
98
+
99
+ **期間**: 1-2週間
100
+
101
+ **例: Webアプリケーション**
102
+ ```
103
+ ユーザー → ログイン → 簡単なダッシュボード表示 → ログアウト
104
+ (UI + API + DB + デプロイ)
105
+ ```
106
+
107
+ **チェックリスト:**
108
+ - [ ] E2Eで動作するか
109
+ - [ ] 本番環境にデプロイできるか
110
+ - [ ] CI/CDが機能するか
111
+ - [ ] 監視が動作するか
112
+
113
+ ### フェーズ3: MVP(Minimum Viable Product)
114
+
115
+ **目的**: 実際のユーザーに価値を提供できる最小限の機能セット
116
+
117
+ **成果物:**
118
+ - コア機能の実装
119
+ - ユーザーが実際に利用できる状態
120
+ - フィードバック収集の仕組み
121
+ - ドキュメント
122
+
123
+ **期間**: 4-8週間
124
+
125
+ **チェックリスト:**
126
+ - [ ] ユーザーが価値を感じるか
127
+ - [ ] フィードバックを収集できるか
128
+ - [ ] スケールするアーキテクチャか
129
+ - [ ] 運用可能な状態か
130
+
131
+ ## タスク分割の原則
132
+
133
+ ### 縦割り(推奨)
134
+
135
+ **定義**: 機能単位でUI→API→DBまで完結させる
136
+
137
+ **例:**
138
+ ```
139
+ タスク1: ユーザー登録機能
140
+ - UI: 登録フォーム
141
+ - API: POST /api/users
142
+ - DB: usersテーブル作成
143
+ - Test: E2Eテスト
144
+
145
+ タスク2: ログイン機能
146
+ - UI: ログインフォーム
147
+ - API: POST /api/auth/login
148
+ - DB: sessionsテーブル
149
+ - Test: E2Eテスト
150
+ ```
151
+
152
+ **利点:**
153
+ - 各タスク完了時に動作する機能ができる
154
+ - 統合の問題を早期発見
155
+ - 進捗が可視化しやすい
156
+
157
+ ### 横割り(非推奨)
158
+
159
+ **定義**: レイヤー単位で全機能を作る
160
+
161
+ **例:**
162
+ ```
163
+ タスク1: UI全画面作成
164
+ タスク2: API全エンドポイント作成
165
+ タスク3: DB全テーブル作成
166
+ タスク4: 統合(← ここで問題発覚)
167
+ ```
168
+
169
+ **問題点:**
170
+ - 最後まで動作する機能がゼロ
171
+ - 統合時に大量の問題
172
+ - 進捗が見えにくい
173
+
174
+ ## E2Eスライスの特定方法
175
+
176
+ ### Step 1: ユーザーストーリーから始める
177
+
178
+ ```
179
+ ユーザーストーリー:
180
+ 「ECサイトの管理者として、商品を登録したい」
181
+
182
+ E2Eスライス:
183
+ 1. 商品登録フォームを表示(UI)
184
+ 2. 入力データを受け取る(API)
185
+ 3. データベースに保存(DB)
186
+ 4. 成功メッセージを表示(UI)
187
+ ```
188
+
189
+ ### Step 2: 最小限の実装を定義
190
+
191
+ ```
192
+ Phase 1 (Walking Skeleton):
193
+ - 商品名のみ登録可能
194
+ - 画像・説明・価格は後回し
195
+ - バリデーションは最小限
196
+
197
+ Phase 2 (MVP):
198
+ - 画像アップロード追加
199
+ - 価格・在庫管理追加
200
+ - 詳細なバリデーション
201
+ ```
202
+
203
+ ### Step 3: 依存関係を整理
204
+
205
+ ```
206
+ 優先度1: ログイン機能(他の機能の前提)
207
+ 優先度2: 商品一覧表示(データ確認のため)
208
+ 優先度3: 商品登録(メイン機能)
209
+ 優先度4: 商品編集(登録の拡張)
210
+ ```
211
+
212
+ ## マイルストーン設計
213
+
214
+ ### マイルストーン1: Walking Skeleton
215
+
216
+ **目標**: 基本的なE2E動作を確認
217
+
218
+ **成果物:**
219
+ - ログイン → ダッシュボード表示 → ログアウト
220
+ - CI/CDパイプライン
221
+ - デプロイ自動化
222
+
223
+ **期間**: 1-2週間
224
+
225
+ **完了条件:**
226
+ - [ ] 本番環境にデプロイ済み
227
+ - [ ] E2Eテストが通る
228
+ - [ ] CI/CDが動作する
229
+
230
+ ### マイルストーン2: MVP
231
+
232
+ **目標**: ユーザーに価値を提供
233
+
234
+ **成果物:**
235
+ - コア機能3つ
236
+ - ユーザードキュメント
237
+ - フィードバック収集の仕組み
238
+
239
+ **期間**: 4-6週間
240
+
241
+ **完了条件:**
242
+ - [ ] ユーザーが実際に利用できる
243
+ - [ ] フィードバックを収集できる
244
+ - [ ] パフォーマンステスト済み
245
+
246
+ ### マイルストーン3: 機能拡張
247
+
248
+ **目標**: ユーザーフィードバックを基に機能追加
249
+
250
+ **成果物:**
251
+ - 追加機能
252
+ - パフォーマンス最適化
253
+ - セキュリティ強化
254
+
255
+ **期間**: 継続的
256
+
257
+ ## 計画ドキュメントフォーマット
258
+
259
+ ### E2E計画テンプレート
260
+
261
+ ```markdown
262
+ # プロジェクト名 - E2E計画
263
+
264
+ ## 概要
265
+ - プロジェクトの目的
266
+ - ターゲットユーザー
267
+ - 提供価値
268
+
269
+ ## Walking Skeleton(1-2週間)
270
+
271
+ ### 目標
272
+ 最小限のE2E機能を動作させる
273
+
274
+ ### E2Eスライス
275
+ 1. ログイン機能(UI + API + DB)
276
+ 2. ダッシュボード表示(UI + API + DB)
277
+
278
+ ### 技術的準備
279
+ - [ ] CI/CDパイプライン構築
280
+ - [ ] デプロイ自動化
281
+ - [ ] 監視設定
282
+
283
+ ## MVP(4-6週間)
284
+
285
+ ### 目標
286
+ ユーザーに価値を提供できる最小機能セット
287
+
288
+ ### E2Eスライス(優先順)
289
+ 1. ユーザー登録(UI + API + DB)
290
+ 2. データ一覧表示(UI + API + DB)
291
+ 3. データ編集(UI + API + DB)
292
+
293
+ ### 完了条件
294
+ - [ ] ユーザーが実際に利用できる
295
+ - [ ] フィードバック収集可能
296
+ - [ ] パフォーマンステスト済み
297
+
298
+ ## リスク管理
299
+
300
+ | リスク | 対策 | 担当 |
301
+ |--------|------|------|
302
+ | 外部API統合の遅延 | モックAPIを先行実装 | チームA |
303
+ | パフォーマンス問題 | 早期負荷テスト | チームB |
304
+
305
+ ## タイムライン
306
+
307
+ ```
308
+ Week 1-2: Walking Skeleton
309
+ Week 3-4: MVP Core機能
310
+ Week 5-6: MVP追加機能
311
+ Week 7+: フィードバック対応
312
+ ```
313
+ ```
314
+
315
+ ## チームへの共有方法
316
+
317
+ ### キックオフミーティング
318
+
319
+ 1. **E2Eファーストの説明**(15分)
320
+ - なぜ横割りではなく縦割りか
321
+ - 各フェーズの目標
322
+
323
+ 2. **Walking Skeletonのデモ**(10分)
324
+ - どこまで動くものを作るか
325
+ - 技術的な準備作業
326
+
327
+ 3. **タスク分割の確認**(15分)
328
+ - 各E2Eスライスの説明
329
+ - 依存関係の確認
330
+
331
+ ### 定期レビュー
332
+
333
+ - **毎週**: E2Eスライス単位でデモ
334
+ - **隔週**: マイルストーン進捗確認
335
+ - **月次**: ユーザーフィードバック共有
336
+
337
+ ## よくある質問
338
+
339
+ ### Q1: すべてを最初から完璧に作る必要はないか?
340
+
341
+ A: **不要です**。Walking Skeletonは最小限の実装で十分。重要なのは「E2Eで動作すること」。
342
+
343
+ ### Q2: 横割りの方が効率的では?
344
+
345
+ A: **短期的には効率的に見えますが**、統合時の問題で結果的に遅延します。E2Eファーストは早期リスク発見により全体効率を向上します。
346
+
347
+ ### Q3: レガシーシステムでもE2Eファーストは可能か?
348
+
349
+ A: **可能です**。まず新機能を小さなE2Eスライスで実装し、段階的に既存システムと統合します。
350
+
351
+ ### Q4: チームメンバーがフルスタック対応できない場合は?
352
+
353
+ A: **ペアプログラミングや知識共有**で対応。または、E2Eスライス単位でフロント/バック担当を決めて密に連携。
354
+
355
+ ## 参考資料
356
+
357
+ - [Walking Skeleton - Alistair Cockburn](https://alistair.cockburn.us/walking-skeleton/)
358
+ - [Vertical Slice Architecture - Jimmy Bogard](https://jimmybogard.com/vertical-slice-architecture/)
359
+ - [Shape Up - Basecamp](https://basecamp.com/shapeup)
360
+ - [The Lean Startup - Eric Ries](http://theleanstartup.com/)
@@ -0,0 +1,232 @@
1
+ ---
2
+ name: oss-license
3
+ description: |
4
+ OSSライセンス確認とコンプライアンスガイド。
5
+ 許可/禁止ライセンス一覧、確認ツール使用法をガイド。
6
+ allowed-tools: Bash, Read, Grep, Glob
7
+ ---
8
+
9
+ # OSSライセンス確認スキル
10
+
11
+ ## 目的
12
+
13
+ 依存パッケージのライセンスを確認し、ライセンス違反リスクを早期発見する。
14
+
15
+ ## 重要な原則
16
+
17
+ ### ✅ 許可ライセンス(一般的に使用可能)
18
+
19
+ - **MIT License** - 最も寛容なライセンス
20
+ - **Apache License 2.0** - 特許条項付き
21
+ - **BSD 2-Clause / 3-Clause** - シンプルな寛容ライセンス
22
+ - **ISC License** - MITと同等
23
+ - **CC0 / Public Domain** - 著作権放棄
24
+
25
+ ### ⚠️ 要注意ライセンス(条件付き使用)
26
+
27
+ - **LGPL v2.1 / v3.0** - 動的リンクのみ許可(静的リンクは要注意)
28
+ - **MPL 2.0 (Mozilla Public License)** - ファイル単位のコピーレフト
29
+ - **CC BY-SA** - ドキュメント用(ShareAlike条項あり)
30
+ - **EPL (Eclipse Public License)** - 弱いコピーレフト
31
+
32
+ ### ❌ 禁止ライセンス(商用利用時に要確認)
33
+
34
+ - **GPL v2 / v3** - 強いコピーレフト(全体がGPLになる)
35
+ - **AGPL v3** - ネットワーク経由でも適用される最も強いコピーレフト
36
+ - **SSPL (Server Side Public License)** - MongoDBなどで使用
37
+ - **CPAL (Common Public Attribution License)** - 帰属表示要求
38
+
39
+ ## ライセンス確認ツール
40
+
41
+ ### Node.js プロジェクト
42
+
43
+ ```bash
44
+ # license-checker インストール
45
+ npm install -g license-checker
46
+
47
+ # 依存関係のライセンス一覧
48
+ license-checker --summary
49
+
50
+ # 問題のあるライセンスを検出
51
+ license-checker --failOn "GPL;AGPL;SSPL"
52
+
53
+ # JSON出力(詳細分析用)
54
+ license-checker --json > licenses.json
55
+
56
+ # 特定ライセンスのみ表示
57
+ license-checker --onlyAllow "MIT;Apache-2.0;BSD"
58
+ ```
59
+
60
+ ### Python プロジェクト
61
+
62
+ ```bash
63
+ # pip-licenses インストール
64
+ pip install pip-licenses
65
+
66
+ # 一覧表示
67
+ pip-licenses
68
+
69
+ # Markdown形式で出力
70
+ pip-licenses --format=markdown
71
+
72
+ # 許可リスト形式(違反を検出)
73
+ pip-licenses --allow-only="MIT;Apache 2.0;BSD"
74
+
75
+ # 禁止リスト形式
76
+ pip-licenses --fail-on="GPL;AGPL"
77
+ ```
78
+
79
+ ### Java プロジェクト(Gradle)
80
+
81
+ ```gradle
82
+ // build.gradleに追加
83
+ plugins {
84
+ id 'com.github.hierynomus.license' version '0.16.1'
85
+ }
86
+
87
+ license {
88
+ header rootProject.file('LICENSE_HEADER')
89
+ strictCheck true
90
+ }
91
+ ```
92
+
93
+ または Maven:
94
+
95
+ ```xml
96
+ <plugin>
97
+ <groupId>org.codehaus.mojo</groupId>
98
+ <artifactId>license-maven-plugin</artifactId>
99
+ <version>2.0.0</version>
100
+ </plugin>
101
+ ```
102
+
103
+ ### PHP プロジェクト(Composer)
104
+
105
+ ```bash
106
+ # composer-licenses インストール
107
+ composer require dominikzogg/composer-licenses --dev
108
+
109
+ # ライセンス一覧
110
+ ./vendor/bin/composer-licenses
111
+ ```
112
+
113
+ ### 汎用ツール
114
+
115
+ ```bash
116
+ # FOSSA CLI(多言語対応)
117
+ fossa analyze
118
+ fossa test
119
+
120
+ # Snyk(セキュリティ + ライセンス)
121
+ snyk test --all-projects
122
+ snyk monitor
123
+
124
+ # Black Duck(エンタープライズ)
125
+ # GitHub App: License Compliance Action
126
+ ```
127
+
128
+ ## ライセンス違反発見時の対応フロー
129
+
130
+ ### Step 1: 問題のある依存関係を特定
131
+
132
+ ```bash
133
+ # Node.js の例
134
+ license-checker --json | jq '.[] | select(.licenses | contains("GPL"))'
135
+
136
+ # Python の例
137
+ pip-licenses --fail-on="GPL"
138
+ ```
139
+
140
+ ### Step 2: 依存関係の調査
141
+
142
+ 1. **直接依存か間接依存か確認**
143
+ ```bash
144
+ # Node.js
145
+ npm ls <package-name>
146
+
147
+ # Python
148
+ pipdeptree -p <package-name>
149
+ ```
150
+
151
+ 2. **使用箇所を特定**
152
+ ```bash
153
+ grep -r "import <package-name>" .
154
+ ```
155
+
156
+ ### Step 3: 代替パッケージを調査
157
+
158
+ - **同等機能のパッケージを検索**
159
+ - npmtrends.com(Node.js)
160
+ - pypi.org(Python)
161
+ - Maven Central(Java)
162
+
163
+ - **ライセンス互換性を確認**
164
+ - 代替パッケージのライセンスをチェック
165
+ - 依存関係も確認
166
+
167
+ ### Step 4: 対応策の実施
168
+
169
+ **A) 代替パッケージに置換**
170
+ ```bash
171
+ npm uninstall <問題パッケージ>
172
+ npm install <代替パッケージ>
173
+ ```
174
+
175
+ **B) 除外(使用していない場合)**
176
+ ```bash
177
+ npm uninstall <問題パッケージ>
178
+ ```
179
+
180
+ **C) 法務/コンプライアンスチームに相談**
181
+ - GPLライセンスの影響範囲を評価
182
+ - デュアルライセンスの可能性を確認
183
+ - 商用ライセンス購入の検討
184
+
185
+ ## ライセンス互換性マトリクス
186
+
187
+ | 使用するライセンス | 依存先で許可されるライセンス |
188
+ |------------------|--------------------------|
189
+ | MIT/BSD/Apache | ほぼすべて(GPL除く) |
190
+ | GPL v2 | GPL v2のみ |
191
+ | GPL v3 | GPL v3, AGPL v3 |
192
+ | LGPL | すべて(動的リンク時) |
193
+ | 商用ライセンス | MIT/BSD/Apache推奨 |
194
+
195
+ ## CI/CDへの組み込み
196
+
197
+ ### GitHub Actions 例
198
+
199
+ ```yaml
200
+ name: License Check
201
+
202
+ on: [push, pull_request]
203
+
204
+ jobs:
205
+ license-check:
206
+ runs-on: ubuntu-latest
207
+ steps:
208
+ - uses: actions/checkout@v2
209
+
210
+ - name: Install license-checker
211
+ run: npm install -g license-checker
212
+
213
+ - name: Check licenses
214
+ run: license-checker --failOn "GPL;AGPL;SSPL"
215
+ ```
216
+
217
+ ### Screwdriver 例
218
+
219
+ ```yaml
220
+ jobs:
221
+ main:
222
+ steps:
223
+ - license-check: npm run license-check
224
+ ```
225
+
226
+ ## 参考資料
227
+
228
+ - [SPDX License List](https://spdx.org/licenses/) - 標準ライセンス一覧
229
+ - [choosealicense.com](https://choosealicense.com/) - ライセンス選択ガイド
230
+ - [OSS Watch License Compliance](https://www.oss-watch.ac.uk/) - コンプライアンスガイド
231
+ - [FOSSA Documentation](https://fossa.com/docs) - ライセンス管理ツール
232
+ - [GNU License List](https://www.gnu.org/licenses/license-list.html) - GPLとの互換性情報