@sk8metal/michi-cli 0.8.6 → 0.10.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 (35) hide show
  1. package/CHANGELOG.md +95 -1
  2. package/README.md +4 -4
  3. package/dist/scripts/config/config-schema.d.ts +3 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js +18 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -1
  7. package/dist/scripts/constants/environments.js +3 -3
  8. package/dist/scripts/constants/environments.js.map +1 -1
  9. package/dist/scripts/utils/multi-repo-validator.d.ts +20 -1
  10. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  11. package/dist/scripts/utils/multi-repo-validator.js +124 -1
  12. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  13. package/docs/michi-development/testing/manual-verification-other-tools.md +10 -8
  14. package/docs/user-guide/getting-started/new-repository-setup.md +4 -3
  15. package/docs/user-guide/guides/migration-guide.md +138 -0
  16. package/docs/user-guide/guides/multi-repo-guide.md +573 -10
  17. package/docs/user-guide/guides/workflow.md +4 -14
  18. package/docs/user-guide/hands-on/workflow-walkthrough.md +173 -4
  19. package/package.json +1 -1
  20. package/scripts/__tests__/multi-repo-config-schema.test.ts +106 -0
  21. package/scripts/__tests__/multi-repo-validator.test.ts +229 -1
  22. package/scripts/config/config-schema.ts +20 -0
  23. package/scripts/constants/__tests__/environments.test.ts +3 -3
  24. package/scripts/constants/environments.ts +3 -3
  25. package/scripts/utils/multi-repo-validator.ts +160 -1
  26. package/templates/claude/agents/mermaid-validator/AGENT.md +257 -0
  27. package/templates/claude/commands/michi-multi-repo/impl-all.md +264 -0
  28. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +271 -0
  29. package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-design.md +69 -6
  30. package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-init.md +6 -6
  31. package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-requirements.md +2 -2
  32. package/templates/claude/commands/michi-multi-repo/spec-review.md +247 -0
  33. package/templates/claude/skills/mermaid-validator/SKILL.md +261 -0
  34. package/templates/claude-agent/agents/cross-repo-reviewer.md +194 -0
  35. package/templates/claude-agent/agents/repo-spec-executor.md +113 -0
package/CHANGELOG.md CHANGED
@@ -5,7 +5,101 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [Unreleased]
8
+ ## [0.10.0] - 2025-12-23
9
+
10
+ ### Added
11
+
12
+ - **Multi-Repo Cross-Repository Reviewer Agent**: リポジトリ間の仕様整合性を自動レビュー
13
+ - **エージェント**: `templates/claude-agent/agents/cross-repo-reviewer.md`
14
+ - **機能**: API契約、データモデル、イベントスキーマの一貫性チェック
15
+ - **用途**: multi-repo環境でのspec-review時にPROACTIVELY使用
16
+
17
+ - **Multi-Repo Spec Executor Agent**: 個別リポジトリで仕様コマンドを実行
18
+ - **エージェント**: `templates/claude-agent/agents/repo-spec-executor.md`
19
+ - **機能**: `/kiro:*`、`/michi:*` コマンドの個別リポジトリでの実行
20
+ - **用途**: multi-repo環境での仕様展開時にPROACTIVELY使用
21
+
22
+ - **Multi-Repo Implementation Command**: 全リポジトリで並行実装を実行
23
+ - **コマンド**: `/michi-multi-repo:impl-all`
24
+ - **機能**: test-developer エージェントを使用したTDD実装の並行実行
25
+ - **用途**: multi-repo環境での一括実装自動化
26
+
27
+ - **Multi-Repo Spec Propagation Command**: プロジェクトから各リポジトリへ仕様展開
28
+ - **コマンド**: `/michi-multi-repo:propagate-specs`
29
+ - **機能**: repo-spec-executor を使用した仕様の並行展開
30
+ - **用途**: multi-repo環境での仕様配布自動化
31
+
32
+ - **Multi-Repo Spec Review Command**: クロスリポジトリ仕様整合性レビュー
33
+ - **コマンド**: `/michi-multi-repo:spec-review`
34
+ - **機能**: cross-repo-reviewer を使用した整合性レビュー
35
+ - **用途**: multi-repo環境でのspec-review自動化
36
+
37
+ ### Changed
38
+
39
+ - **Multi-Repo Guide大幅更新**: 443行の詳細ガイドを追加
40
+ - `.michi/config.json` の Repository スキーマ詳細解説
41
+ - ワークフロー(プロジェクト初期化→仕様展開→実装→レビュー)の追加
42
+ - エージェント・コマンドの使い方を網羅
43
+
44
+ - **Workflow Walkthrough更新**: multi-repo対応の実践的ガイドを追加(177行追加)
45
+ - multi-repo環境でのハンズオン手順を追加
46
+
47
+ - **Multi-Repo Validator強化**: localPath品質検証機能を追加(161行追加)
48
+ - 絶対パス検証(Unix/Windows両対応)
49
+ - 重複パス検出
50
+ - パストラバーサル攻撃防止
51
+ - テストケース230行追加
52
+
53
+ ## [0.9.0] - 2025-12-23
54
+
55
+ ### Added
56
+
57
+ - **Multi-Repo Repository localPath管理**: リポジトリのローカルクローンパスを`.michi/config.json`で管理
58
+ - **フィールド**: `Repository.localPath` (optional, 絶対パスのみ許可)
59
+ - **バリデーション**: Unix (`/path/to/repo`) と Windows (`C:\path\to\repo`) の絶対パス形式をサポート
60
+ - **セキュリティ**: 相対パス(`./`, `../`)と空文字列を禁止
61
+ - **後方互換性**: オプショナルフィールドのため既存データに影響なし
62
+ - **テスト**: 8件の新規テストケース追加(正常3件、異常5件)
63
+ - **用途**: multi-repo環境で各リポジトリへのドキュメント配置や詳細調査に活用
64
+
65
+ - **Mermaid Validatorスキル/エージェント**: architecture.md生成時のMermaid図構文エラーを自動検証・修正
66
+ - **スキル**: `templates/claude/skills/mermaid-validator/SKILL.md`
67
+ - **エージェント**: `templates/claude/agents/mermaid-validator/AGENT.md`
68
+ - **統合**: `/michi-multi-repo:spec-design` コマンドに自動実行を追加(Step 4.5.1)
69
+ - **機能**: C4モデル、シーケンス図、グラフ、ER図の構文検証と自動修正
70
+ - **検出エラー**: タイトル記法、矢印記法、インデント、リレーションシップ記法
71
+ - **効果**: architecture.md生成時のMermaidパースエラーを防止
72
+
73
+ - **Stable Version Auditor統合強化**: 技術スタックバージョン監査を設計フェーズに統合
74
+ - **統合**: `/michi-multi-repo:spec-design` コマンドに自動実行を追加(Step 4.5.2)
75
+ - **機能**: architecture.mdに記載された技術スタック(Node.js、Java、Python、PHP等)のバージョンを自動監査
76
+ - **監査内容**: EOLリスク評価、最新LTS/安定版の推奨、アップグレードパス提示
77
+ - **効果**: 設計時点で技術スタックの最新化を促進、技術的負債を削減
78
+
79
+ ### Changed
80
+
81
+ - **Multi-Repo AIコマンド名変更**: `michi_multi_repo:*` → `michi-multi-repo:*`
82
+ - `/michi-multi-repo:spec-init`: プロジェクト初期化コマンド(旧: `/michi_multi_repo:spec-init`)
83
+ - `/michi-multi-repo:spec-requirements`: 要件定義書生成コマンド(旧: `/michi_multi_repo:spec-requirements`)
84
+ - `/michi-multi-repo:spec-design`: 設計書生成コマンド(旧: `/michi_multi_repo:spec-design`)
85
+ - **理由**: Claude Codeのスキル検出でアンダースコアが正しく処理されない問題に対応
86
+ - **`michi init` コマンドの配布先修正**
87
+ - `commandsDir` を `.claude/commands/kiro` から `.claude/commands` に変更
88
+ - これにより `kiro/`, `michi/`, `michi-multi-repo/` が正しい階層にコピーされるようになった
89
+ - **影響**: 既存の二重ネスト(`.claude/commands/kiro/kiro/`)問題を解決
90
+
91
+ ### Fixed
92
+
93
+ - **Multi-Repo AIコマンドがユーザープロジェクトにコピーされない問題を修正**
94
+ - `environments.ts` の設定により、`templates/claude/commands/` が `/kiro` サブディレクトリにコピーされていた
95
+ - 修正により、各コマンドディレクトリ(`kiro/`, `michi/`, `michi-multi-repo/`)が `.claude/commands/` 直下に正しく配置されるようになった
96
+ - **存在しない `michi config:init` コマンドの参照を修正**
97
+ - spec-init.md のエラーメッセージで参照されていた `michi config:init` を `michi init` に修正
98
+ - **注意**: `michi config:init` コマンドは実装されておらず、正しくは `michi init` を使用
99
+
100
+ ### Added
101
+
102
+ - **マイグレーションガイド**: v0.8.6 → v0.8.7 の移行手順を文書化(docs/user-guide/guides/migration-guide.md)
9
103
 
10
104
  ## [0.8.6] - 2025-12-22
11
105
 
package/README.md CHANGED
@@ -25,7 +25,7 @@ Michiは、開発フロー全体(要件定義→設計→タスク分割→実
25
25
  - ✅ **マルチプロジェクト対応**: 3-5プロジェクト同時進行
26
26
  - ✅ **自動化スクリプト**: Markdown↔Confluence同期、JIRA連携、PR自動化
27
27
  - ✅ **フェーズバリデーション**: フェーズ抜け漏れ防止の自動チェック
28
- - ✅ **スキル・サブエージェント**: デザインレビュー、ライセンスチェック、バージョン監査、E2Eプランニング、PRレビュー対応
28
+ - ✅ **スキル・サブエージェント**: デザインレビュー、ライセンスチェック、バージョン監査、E2Eプランニング、PRレビュー対応、Mermaid図検証
29
29
 
30
30
  ### アーキテクチャ
31
31
 
@@ -467,17 +467,17 @@ APPROVAL_GATES_RELEASE=SM,部長
467
467
 
468
468
  ```bash
469
469
  # 1. AIでプロジェクト初期化(プロジェクト説明から自動生成)
470
- /michi_multi_repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
470
+ /michi-multi-repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
471
471
 
472
472
  # 2. リポジトリ登録(CLIコマンド)
473
473
  michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/org/frontend --branch main
474
474
  michi multi-repo:add-repo my-microservices --name backend --url https://github.com/org/backend --branch main
475
475
 
476
476
  # 3. AIで要件定義書生成
477
- /michi_multi_repo:spec-requirements my-microservices
477
+ /michi-multi-repo:spec-requirements my-microservices
478
478
 
479
479
  # 4. AIで設計書生成(アーキテクチャ図含む)
480
- /michi_multi_repo:spec-design my-microservices
480
+ /michi-multi-repo:spec-design my-microservices
481
481
 
482
482
  # 5. Confluence同期
483
483
  michi multi-repo:confluence-sync my-microservices
@@ -185,6 +185,7 @@ export declare const RepositorySchema: z.ZodObject<{
185
185
  name: z.ZodString;
186
186
  url: z.ZodString;
187
187
  branch: z.ZodDefault<z.ZodString>;
188
+ localPath: z.ZodOptional<z.ZodString>;
188
189
  }, z.core.$strip>;
189
190
  /**
190
191
  * Multi-Repo プロジェクトスキーマ
@@ -198,6 +199,7 @@ export declare const MultiRepoProjectSchema: z.ZodObject<{
198
199
  name: z.ZodString;
199
200
  url: z.ZodString;
200
201
  branch: z.ZodDefault<z.ZodString>;
202
+ localPath: z.ZodOptional<z.ZodString>;
201
203
  }, z.core.$strip>>>;
202
204
  }, z.core.$strip>;
203
205
  /**
@@ -306,6 +308,7 @@ export declare const AppConfigSchema: z.ZodObject<{
306
308
  name: z.ZodString;
307
309
  url: z.ZodString;
308
310
  branch: z.ZodDefault<z.ZodString>;
311
+ localPath: z.ZodOptional<z.ZodString>;
309
312
  }, z.core.$strip>>>;
310
313
  }, z.core.$strip>>>;
311
314
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
@@ -161,6 +161,24 @@ export const RepositorySchema = z.object({
161
161
  message: 'GitHub URL must be in format: https://github.com/{owner}/{repo}',
162
162
  }),
163
163
  branch: z.string().default('main'),
164
+ localPath: z
165
+ .string()
166
+ .optional()
167
+ .refine((path) => {
168
+ // localPath が指定されていない場合は検証スキップ
169
+ if (path === undefined)
170
+ return true;
171
+ // 空文字列はエラー
172
+ if (path === '')
173
+ return false;
174
+ // 絶対パスであることを検証(セキュリティ考慮)
175
+ // Unix系: '/' で始まる、Windows系: 'C:\' 等で始まる
176
+ const isUnixAbsolutePath = path.startsWith('/');
177
+ const isWindowsAbsolutePath = /^[A-Za-z]:\\/.test(path);
178
+ return isUnixAbsolutePath || isWindowsAbsolutePath;
179
+ }, {
180
+ message: 'localPath must be an absolute path (Unix: /path/to/repo, Windows: C:\\path\\to\\repo)',
181
+ }),
164
182
  });
165
183
  /**
166
184
  * Multi-Repo プロジェクトスキーマ
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../scripts/config/config-schema.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,17 @@
6
6
  export const ENV_CONFIG = {
7
7
  claude: {
8
8
  rulesDir: '.claude/rules',
9
- commandsDir: '.claude/commands/kiro',
9
+ commandsDir: '.claude/commands',
10
10
  templateSource: 'claude',
11
11
  },
12
12
  'claude-agent': {
13
13
  rulesDir: '.claude/agents',
14
- commandsDir: '.claude/commands/kiro',
14
+ commandsDir: '.claude/commands',
15
15
  templateSource: 'claude-agent',
16
16
  },
17
17
  cursor: {
18
18
  rulesDir: '.cursor/rules',
19
- commandsDir: '.cursor/commands/kiro',
19
+ commandsDir: '.cursor/commands',
20
20
  templateSource: 'cursor',
21
21
  },
22
22
  gemini: {
@@ -1 +1 @@
1
- {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../scripts/constants/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,QAAQ;KACzB;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,cAAc;KAC/B;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,QAAQ;KACzB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,oBAAoB;QACjC,cAAc,EAAE,QAAQ;KACzB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,OAAO;KACxB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,sBAAsB;QACnC,cAAc,EAAE,OAAO;KACxB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAgB,EAAqB,EAAE;IAC1E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAsB,EAAE;IACxE,OAAO,GAAG,IAAI,UAAU,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAkB,EAAE;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB,CAAC;AAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../scripts/constants/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,QAAQ;KACzB;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,cAAc;KAC/B;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,QAAQ;KACzB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,oBAAoB;QACjC,cAAc,EAAE,QAAQ;KACzB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,OAAO;KACxB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,sBAAsB;QACnC,cAAc,EAAE,OAAO;KACxB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAgB,EAAqB,EAAE;IAC1E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAsB,EAAE;IACxE,OAAO,GAAG,IAAI,UAAU,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAkB,EAAE;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB,CAAC;AAClD,CAAC,CAAC"}
@@ -2,8 +2,9 @@
2
2
  * multi-repo-validator.ts
3
3
  * Multi-Repo機能のバリデーションユーティリティ
4
4
  *
5
- * プロジェクト名、JIRAキー、リポジトリURLのバリデーションとセキュリティチェックを行います。
5
+ * プロジェクト名、JIRAキー、リポジトリURL、localPathのバリデーションとセキュリティチェックを行います。
6
6
  */
7
+ import type { Repository } from '../config/config-schema.js';
7
8
  /**
8
9
  * バリデーション結果
9
10
  */
@@ -12,6 +13,16 @@ export interface ValidationResult {
12
13
  errors: string[];
13
14
  warnings: string[];
14
15
  }
16
+ /**
17
+ * LocalPathバリデーション結果(詳細情報付き)
18
+ */
19
+ export interface LocalPathValidationResult extends ValidationResult {
20
+ exists: boolean;
21
+ isGitRepository: boolean;
22
+ currentBranch: string | null;
23
+ branchMatches: boolean;
24
+ hasUncommittedChanges: boolean;
25
+ }
15
26
  /**
16
27
  * プロジェクト名のバリデーション
17
28
  * セキュリティ対策: パストラバーサル、相対パス、制御文字をチェック
@@ -27,4 +38,12 @@ export declare function validateJiraKey(key: string): ValidationResult;
27
38
  * GitHub HTTPS URL形式のみ許可
28
39
  */
29
40
  export declare function validateRepositoryUrl(url: string): ValidationResult;
41
+ /**
42
+ * LocalPathのバリデーション
43
+ * ディレクトリ存在、Gitリポジトリ、ブランチ、未コミット変更をチェック
44
+ *
45
+ * @param repository - リポジトリ設定
46
+ * @returns バリデーション結果(詳細情報付き)
47
+ */
48
+ export declare function validateLocalPath(repository: Repository): LocalPathValidationResult;
30
49
  //# sourceMappingURL=multi-repo-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-repo-validator.d.ts","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAmClE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAyDnE"}
1
+ {"version":3,"file":"multi-repo-validator.d.ts","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAmClE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAyDnE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,GACrB,yBAAyB,CAoI3B"}
@@ -2,8 +2,11 @@
2
2
  * multi-repo-validator.ts
3
3
  * Multi-Repo機能のバリデーションユーティリティ
4
4
  *
5
- * プロジェクト名、JIRAキー、リポジトリURLのバリデーションとセキュリティチェックを行います。
5
+ * プロジェクト名、JIRAキー、リポジトリURL、localPathのバリデーションとセキュリティチェックを行います。
6
6
  */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import { execSync } from 'child_process';
7
10
  /**
8
11
  * プロジェクト名のバリデーション
9
12
  * セキュリティ対策: パストラバーサル、相対パス、制御文字をチェック
@@ -102,4 +105,124 @@ export function validateRepositoryUrl(url) {
102
105
  warnings,
103
106
  };
104
107
  }
108
+ /**
109
+ * LocalPathのバリデーション
110
+ * ディレクトリ存在、Gitリポジトリ、ブランチ、未コミット変更をチェック
111
+ *
112
+ * @param repository - リポジトリ設定
113
+ * @returns バリデーション結果(詳細情報付き)
114
+ */
115
+ export function validateLocalPath(repository) {
116
+ const errors = [];
117
+ const warnings = [];
118
+ // 初期値
119
+ let exists = false;
120
+ let isGitRepository = false;
121
+ let currentBranch = null;
122
+ let branchMatches = false;
123
+ let hasUncommittedChanges = false;
124
+ // 1. localPath設定確認
125
+ if (!repository.localPath) {
126
+ warnings.push(`Repository '${repository.name}' does not have localPath configured`);
127
+ return {
128
+ isValid: false,
129
+ errors,
130
+ warnings,
131
+ exists,
132
+ isGitRepository,
133
+ currentBranch,
134
+ branchMatches,
135
+ hasUncommittedChanges,
136
+ };
137
+ }
138
+ const localPath = repository.localPath;
139
+ // 2. ディレクトリ存在確認
140
+ try {
141
+ const stats = fs.statSync(localPath);
142
+ if (!stats.isDirectory()) {
143
+ errors.push(`localPath '${localPath}' exists but is not a directory`);
144
+ return {
145
+ isValid: false,
146
+ errors,
147
+ warnings,
148
+ exists: true,
149
+ isGitRepository,
150
+ currentBranch,
151
+ branchMatches,
152
+ hasUncommittedChanges,
153
+ };
154
+ }
155
+ exists = true;
156
+ }
157
+ catch (_error) {
158
+ errors.push(`localPath '${localPath}' does not exist`);
159
+ return {
160
+ isValid: false,
161
+ errors,
162
+ warnings,
163
+ exists,
164
+ isGitRepository,
165
+ currentBranch,
166
+ branchMatches,
167
+ hasUncommittedChanges,
168
+ };
169
+ }
170
+ // 3. Gitリポジトリ確認
171
+ const gitDir = path.join(localPath, '.git');
172
+ if (!fs.existsSync(gitDir)) {
173
+ errors.push(`localPath '${localPath}' is not a Git repository (no .git directory)`);
174
+ return {
175
+ isValid: false,
176
+ errors,
177
+ warnings,
178
+ exists,
179
+ isGitRepository,
180
+ currentBranch,
181
+ branchMatches,
182
+ hasUncommittedChanges,
183
+ };
184
+ }
185
+ isGitRepository = true;
186
+ // 4. ブランチ確認
187
+ try {
188
+ currentBranch = execSync('git branch --show-current', {
189
+ cwd: localPath,
190
+ encoding: 'utf-8',
191
+ }).trim();
192
+ if (currentBranch !== repository.branch) {
193
+ warnings.push(`Current branch '${currentBranch}' does not match configured branch '${repository.branch}'`);
194
+ branchMatches = false;
195
+ }
196
+ else {
197
+ branchMatches = true;
198
+ }
199
+ }
200
+ catch (error) {
201
+ warnings.push(`Failed to get current branch: ${error instanceof Error ? error.message : String(error)}`);
202
+ }
203
+ // 5. 未コミット変更確認
204
+ try {
205
+ const statusOutput = execSync('git status --porcelain', {
206
+ cwd: localPath,
207
+ encoding: 'utf-8',
208
+ }).trim();
209
+ if (statusOutput.length > 0) {
210
+ warnings.push(`Repository '${repository.name}' has uncommitted changes`);
211
+ hasUncommittedChanges = true;
212
+ }
213
+ }
214
+ catch (error) {
215
+ warnings.push(`Failed to check uncommitted changes: ${error instanceof Error ? error.message : String(error)}`);
216
+ }
217
+ return {
218
+ isValid: errors.length === 0,
219
+ errors,
220
+ warnings,
221
+ exists,
222
+ isGitRepository,
223
+ currentBranch,
224
+ branchMatches,
225
+ hasUncommittedChanges,
226
+ };
227
+ }
105
228
  //# sourceMappingURL=multi-repo-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-repo-validator.js","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-repo-validator.js","sourceRoot":"","sources":["../../../scripts/utils/multi-repo-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAuBzC;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,kBAAkB;IAClB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACnE,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CACT,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CACT,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,qBAAqB;IACrB,MAAM,YAAY,GAAG,eAAe,CAAC;IAErC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,WAAW;IACX,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,+BAA+B;IAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CACT,4EAA4E,CAC7E,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,YAAY;IACZ,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/B,iBAAiB;QACjB,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QAED,sDAAsD;QACtD,MAAM,aAAa,GAAG,uCAAuC,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CACT,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,cAAc;QACd,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QAED,aAAa;QACb,IACE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACxB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAsB;IAEtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM;IACN,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAElC,mBAAmB;IACnB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CACX,eAAe,UAAU,CAAC,IAAI,sCAAsC,CACrE,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM;YACN,QAAQ;YACR,MAAM;YACN,eAAe;YACf,aAAa;YACb,aAAa;YACb,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IAEvC,gBAAgB;IAChB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CACT,cAAc,SAAS,iCAAiC,CACzD,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,QAAQ;gBACR,MAAM,EAAE,IAAI;gBACZ,eAAe;gBACf,aAAa;gBACb,aAAa;gBACb,qBAAqB;aACtB,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,kBAAkB,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM;YACN,QAAQ;YACR,MAAM;YACN,eAAe;YACf,aAAa;YACb,aAAa;YACb,qBAAqB;SACtB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CACT,cAAc,SAAS,+CAA+C,CACvE,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM;YACN,QAAQ;YACR,MAAM;YACN,eAAe;YACf,aAAa;YACb,aAAa;YACb,qBAAqB;SACtB,CAAC;IACJ,CAAC;IACD,eAAe,GAAG,IAAI,CAAC;IAEvB,YAAY;IACZ,IAAI,CAAC;QACH,aAAa,GAAG,QAAQ,CAAC,2BAA2B,EAAE;YACpD,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,aAAa,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CACX,mBAAmB,aAAa,uCAAuC,UAAU,CAAC,MAAM,GAAG,CAC5F,CAAC;YACF,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IAED,eAAe;IACf,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,QAAQ,CAAC,wBAAwB,EAAE;YACtD,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CACX,eAAe,UAAU,CAAC,IAAI,2BAA2B,CAC1D,CAAC;YACF,qBAAqB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM;QACN,QAAQ;QACR,MAAM;QACN,eAAe;QACf,aAAa;QACb,aAAa;QACb,qBAAqB;KACtB,CAAC;AACJ,CAAC"}
@@ -83,7 +83,7 @@ npx tsx ~/Work/git/michi/src/cli.ts setup-existing --claude --lang ja
83
83
  実行後、Michiのコマンドが追加されることを確認:
84
84
 
85
85
  ```bash
86
- ls -la /tmp/michi-manual-test-claude-code/.claude/commands/kiro/michi
86
+ ls -la /tmp/michi-manual-test-claude-code/.claude/commands/michi
87
87
  # Michiのコマンドが追加されている:
88
88
  # michi-confluence-sync.md
89
89
  # michi-project-switch.md
@@ -407,13 +407,15 @@ npx tsx ~/Work/git/michi/src/cli.ts phase:run java-calculator-webapp phase-b
407
407
  ├── .claude/
408
408
  │ ├── CLAUDE.md
409
409
  │ └── commands/
410
- │ ├── kiro-spec-init.md (cc-sdd)
411
- │ ├── kiro-spec-requirements.md (cc-sdd)
412
- │ ├── kiro-spec-design.md (cc-sdd)
413
- │ ├── kiro-spec-tasks.md (cc-sdd)
414
- │ ├── ... (cc-sdd提供の他のコマンド)
415
- ├── michi-confluence-sync.md (Michi)
416
- │ └── michi-project-switch.md (Michi)
410
+ │ ├── kiro/ (cc-sdd)
411
+ ├── kiro-spec-init.md
412
+ ├── kiro-spec-requirements.md
413
+ ├── kiro-spec-design.md
414
+ ├── kiro-spec-tasks.md
415
+ │ └── ... (cc-sdd提供の他のコマンド)
416
+ │ └── michi/ (Michi)
417
+ │ ├── michi-confluence-sync.md
418
+ │ └── michi-project-switch.md
417
419
  └── .kiro/
418
420
  └── specs/
419
421
  └── java-calculator-webapp/
@@ -259,9 +259,10 @@ cp $MICHI_PATH/.cursor/rules/multi-project.mdc .cursor/rules/
259
259
  cp $MICHI_PATH/.cursor/rules/github-ssot.mdc .cursor/rules/
260
260
  cp $MICHI_PATH/.cursor/rules/atlassian-mcp.mdc .cursor/rules/
261
261
 
262
- # カスタムコマンドをコピー
263
- cp $MICHI_PATH/.cursor/commands/kiro/confluence-sync.md .cursor/commands/kiro/
264
- cp $MICHI_PATH/.cursor/commands/kiro/project-switch.md .cursor/commands/kiro/
262
+ # カスタムコマンドをコピー(v0.8.7以降の構造)
263
+ mkdir -p .cursor/commands/michi
264
+ cp $MICHI_PATH/.cursor/commands/michi/confluence-sync.md .cursor/commands/michi/
265
+ cp $MICHI_PATH/.cursor/commands/michi/project-switch.md .cursor/commands/michi/
265
266
 
266
267
  # Steeringテンプレートをコピー
267
268
  mkdir -p .kiro/steering
@@ -0,0 +1,138 @@
1
+ # Michi マイグレーションガイド
2
+
3
+ このドキュメントは、Michi の異なるバージョン間での移行手順を説明します。
4
+
5
+ ---
6
+
7
+ ## v0.8.6 → v0.8.7 (Unreleased)
8
+
9
+ ### 重要な変更点
10
+
11
+ #### 1. Multi-Repo AIコマンド名の変更
12
+
13
+ **変更内容**:
14
+ - `/michi_multi_repo:*` → `/michi-multi-repo:*`
15
+
16
+ **影響を受けるコマンド**:
17
+
18
+ | 旧コマンド | 新コマンド |
19
+ |-----------|-----------|
20
+ | `/michi_multi_repo:spec-init` | `/michi-multi-repo:spec-init` |
21
+ | `/michi_multi_repo:spec-requirements` | `/michi-multi-repo:spec-requirements` |
22
+ | `/michi_multi_repo:spec-design` | `/michi-multi-repo:spec-design` |
23
+
24
+ **移行手順**:
25
+ 1. スクリプトやドキュメントで `/michi_multi_repo:` を使用している箇所を `/michi-multi-repo:` に置換してください
26
+ 2. 特に以下のファイルを確認:
27
+ - プロジェクトの README.md
28
+ - 開発ドキュメント
29
+ - 自動化スクリプト
30
+
31
+ #### 2. コマンド配布先の修正
32
+
33
+ **変更内容**:
34
+ - `michi init` コマンドが作成するディレクトリ構造が変更されました
35
+
36
+ **変更前**:
37
+ ```
38
+ .claude/commands/kiro/
39
+ ├── kiro/ # 二重ネスト(バグ)
40
+ ├── michi/
41
+ └── michi_multi_repo/
42
+ ```
43
+
44
+ **変更後**:
45
+ ```
46
+ .claude/commands/
47
+ ├── kiro/ # 正しい階層
48
+ ├── michi/
49
+ └── michi-multi-repo/
50
+ ```
51
+
52
+ **移行手順**:
53
+
54
+ ##### 既存プロジェクトの場合
55
+
56
+ 1. **二重ネストディレクトリの削除**:
57
+ ```bash
58
+ # プロジェクトルートで実行
59
+ rm -rf .claude/commands/kiro/kiro
60
+ rm -rf .claude/commands/kiro/michi
61
+ rm -rf .claude/commands/kiro/michi_multi_repo
62
+ ```
63
+
64
+ 2. **新しい構造でコマンドを再配置**:
65
+ ```bash
66
+ # michi init を再実行(上書き確認なし)
67
+ michi init --claude
68
+ ```
69
+
70
+ 3. **確認**:
71
+ ```bash
72
+ ls -la .claude/commands/
73
+ # 以下が表示されること:
74
+ # - kiro/
75
+ # - michi/
76
+ # - michi-multi-repo/
77
+ ```
78
+
79
+ ##### 新規プロジェクトの場合
80
+
81
+ v0.8.7 以降では、`michi init` を実行すると自動的に正しい構造が作成されます。
82
+
83
+ ```bash
84
+ michi init --claude
85
+ ```
86
+
87
+ ### その他の変更点
88
+
89
+ #### `michi config:init` コマンドの参照を修正
90
+
91
+ **問題**:
92
+ - spec-init.md のエラーメッセージで `michi config:init` コマンドが参照されていましたが、このコマンドは実装されていませんでした
93
+
94
+ **修正内容**:
95
+ - `michi config:init` → `michi init`
96
+
97
+ **影響**:
98
+ - エラーメッセージで正しいコマンドが案内されるようになりました
99
+
100
+ ---
101
+
102
+ ## トラブルシューティング
103
+
104
+ ### Q1: 既存の `.claude/commands/kiro/kiro/` が残っている
105
+
106
+ **回答**: 手動で削除してください:
107
+ ```bash
108
+ rm -rf .claude/commands/kiro/kiro
109
+ ```
110
+
111
+ ### Q2: `/michi_multi_repo:*` コマンドが認識されなくなった
112
+
113
+ **回答**: v0.8.7 では `/michi-multi-repo:*` に変更されました。新しいコマンド名を使用してください。
114
+
115
+ ### Q3: `michi init` を実行してもコマンドがコピーされない
116
+
117
+ **回答**:
118
+ 1. Michi を最新版(v0.8.7以降)にアップデートしてください:
119
+ ```bash
120
+ npm install -g michi-cli@latest
121
+ ```
122
+
123
+ 2. 再度 `michi init --claude` を実行してください
124
+
125
+ ### Q4: 二重ネストディレクトリが残っているとどうなる?
126
+
127
+ **回答**:
128
+ - 機能的な問題はありませんが、混乱を招く可能性があります
129
+ - 新しい構造(`.claude/commands/kiro/`)が優先されます
130
+ - クリーンな状態にするため、削除を推奨します
131
+
132
+ ---
133
+
134
+ ## 参考リンク
135
+
136
+ - [Multi-Repo管理ガイド](multi-repo-guide.md)
137
+ - [CHANGELOG](../../../CHANGELOG.md)
138
+ - [README](../../../README.md)