@sk8metal/michi-cli 0.10.1 → 0.12.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 (139) hide show
  1. package/README.md +71 -848
  2. package/dist/scripts/constants/environments.d.ts +1 -1
  3. package/dist/scripts/constants/environments.d.ts.map +1 -1
  4. package/dist/scripts/constants/environments.js +0 -20
  5. package/dist/scripts/constants/environments.js.map +1 -1
  6. package/dist/scripts/phase-runner.js +1 -1
  7. package/dist/scripts/phase-runner.js.map +1 -1
  8. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  9. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  10. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  11. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  12. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  13. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  14. package/dist/scripts/utils/template-finder.d.ts +2 -2
  15. package/dist/scripts/utils/template-finder.d.ts.map +1 -1
  16. package/dist/scripts/utils/template-finder.js +3 -8
  17. package/dist/scripts/utils/template-finder.js.map +1 -1
  18. package/dist/src/cli.d.ts.map +1 -1
  19. package/dist/src/cli.js +0 -8
  20. package/dist/src/cli.js.map +1 -1
  21. package/dist/src/commands/init.d.ts +0 -4
  22. package/dist/src/commands/init.d.ts.map +1 -1
  23. package/dist/src/commands/init.js +6 -30
  24. package/dist/src/commands/init.js.map +1 -1
  25. package/dist/src/commands/setup-existing.d.ts +2 -6
  26. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  27. package/dist/src/commands/setup-existing.js +8 -142
  28. package/dist/src/commands/setup-existing.js.map +1 -1
  29. package/docs/README.md +20 -83
  30. package/docs/getting-started/configuration.md +350 -0
  31. package/docs/getting-started/installation.md +59 -0
  32. package/docs/getting-started/quick-start.md +76 -0
  33. package/docs/guides/atlassian-integration.md +116 -0
  34. package/docs/guides/claude-code.md +155 -0
  35. package/docs/guides/multi-repo.md +117 -0
  36. package/docs/guides/workflow.md +382 -0
  37. package/docs/reference/ai-commands.md +92 -0
  38. package/docs/reference/cli.md +752 -0
  39. package/docs/reference/environment-variables.md +192 -0
  40. package/docs/troubleshooting.md +498 -0
  41. package/package.json +1 -3
  42. package/scripts/__tests__/create-project.test.ts +12 -12
  43. package/scripts/__tests__/setup-existing-project.test.ts +22 -22
  44. package/scripts/constants/__tests__/environments.test.ts +7 -50
  45. package/scripts/constants/environments.ts +1 -27
  46. package/scripts/phase-runner.ts +1 -1
  47. package/scripts/template/__tests__/renderer.test.ts +21 -21
  48. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  49. package/scripts/utils/multi-repo-validator.ts +50 -0
  50. package/scripts/utils/tasks-format-validator.ts +3 -3
  51. package/scripts/utils/template-finder.ts +5 -11
  52. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  53. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  54. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  55. package/templates/claude/commands/michi/spec-design.md +2 -2
  56. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  57. package/templates/claude/commands/michi/test-planning.md +1 -1
  58. package/templates/claude/commands/michi/validate-design.md +3 -3
  59. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  60. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  61. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  62. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  63. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  64. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  65. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  66. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  67. package/docs/context.md +0 -59
  68. package/docs/michi-development/contributing/development.md +0 -341
  69. package/docs/michi-development/contributing/release.md +0 -365
  70. package/docs/michi-development/design/config-unification.md +0 -733
  71. package/docs/michi-development/design/design-config-current-state.md +0 -330
  72. package/docs/michi-development/design/design-config-implementation.md +0 -628
  73. package/docs/michi-development/design/design-config-migration.md +0 -952
  74. package/docs/michi-development/design/design-config-security.md +0 -771
  75. package/docs/michi-development/design/design-config-solution.md +0 -583
  76. package/docs/michi-development/design/design-config-testing.md +0 -892
  77. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  78. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  79. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  80. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  81. package/docs/michi-development/testing-strategy.md +0 -87
  82. package/docs/plan.md +0 -275
  83. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  84. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  85. package/docs/user-guide/getting-started/quick-start.md +0 -212
  86. package/docs/user-guide/getting-started/setup.md +0 -819
  87. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  88. package/docs/user-guide/guides/customization.md +0 -537
  89. package/docs/user-guide/guides/internationalization.md +0 -540
  90. package/docs/user-guide/guides/migration-guide.md +0 -138
  91. package/docs/user-guide/guides/multi-project.md +0 -368
  92. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  93. package/docs/user-guide/guides/phase-automation.md +0 -419
  94. package/docs/user-guide/guides/workflow.md +0 -574
  95. package/docs/user-guide/hands-on/README.md +0 -142
  96. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  97. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  98. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  99. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  100. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  101. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  102. package/docs/user-guide/reference/config.md +0 -589
  103. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  104. package/docs/user-guide/reference/quick-reference.md +0 -297
  105. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  106. package/docs/user-guide/reference/tasks-template.md +0 -550
  107. package/docs/user-guide/release/ci-setup-java.md +0 -114
  108. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  109. package/docs/user-guide/release/ci-setup-php.md +0 -102
  110. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  111. package/docs/user-guide/release/ci-setup.md +0 -188
  112. package/docs/user-guide/release/release-flow.md +0 -476
  113. package/docs/user-guide/templates/test-specs/README.md +0 -173
  114. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  115. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  116. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  117. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  118. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  119. package/docs/user-guide/testing/integration-tests.md +0 -312
  120. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  121. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  122. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  123. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  124. package/docs/user-guide/testing-strategy.md +0 -185
  125. package/docs/verification-guide.md +0 -518
  126. package/templates/cline/rules/atlassian-integration.md +0 -36
  127. package/templates/cline/rules/michi-core.md +0 -56
  128. package/templates/codex/AGENTS.override.md +0 -277
  129. package/templates/codex/prompts/confluence-sync.md +0 -177
  130. package/templates/codex/rules/README.md +0 -210
  131. package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
  132. package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
  133. package/templates/cursor/commands/michi/confluence-sync.md +0 -76
  134. package/templates/cursor/commands/michi/project-switch.md +0 -69
  135. package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
  136. package/templates/cursor/rules/github-ssot.mdc +0 -151
  137. package/templates/cursor/rules/multi-project.mdc +0 -81
  138. package/templates/gemini/commands/README.md +0 -41
  139. package/templates/gemini/rules/GEMINI.md +0 -80
@@ -1,952 +0,0 @@
1
- # Michi 設定統合設計書 - マイグレーション戦略と後方互換性
2
-
3
- **バージョン**: 1.0
4
- **作成日**: 2025-01-11
5
- **ステータス**: Draft
6
- **親ドキュメント**: [config-unification.md](./config-unification.md)
7
-
8
- ---
9
-
10
- ## 7. マイグレーション戦略
11
-
12
- ### 7.1 移行の概要
13
-
14
- #### 7.1.1 移行が必要な理由
15
-
16
- 新しい設定システムへの移行により、以下の利点が得られます:
17
-
18
- - **設定の一元管理**: 組織レベルの認証情報を全プロジェクトで共有
19
- - **セキュリティの強化**: 認証情報を適切なファイル(`~/.michi/.env`)に集約し、パーミッション管理を強化
20
- - **メンテナンス性の向上**: 設定変更が容易になり、チーム全体での管理が簡素化
21
- - **将来の拡張性**: 新機能(暗号化、複数組織サポート等)の基盤を構築
22
-
23
- #### 7.1.2 移行しない場合のリスク
24
-
25
- - **v1.0.0以降でサポート終了**: 旧形式(`global.env`、`GITHUB_REPO`)は完全に削除されます
26
- - **セキュリティ警告の継続表示**: 非推奨機能使用時に警告が表示され続けます
27
- - **新機能が利用不可**: v1.1.0以降の新機能(暗号化等)が使用できません
28
- - **互換性の問題**: 将来のバージョンで動作しなくなる可能性があります
29
-
30
- ### 7.2 移行パターン
31
-
32
- #### 7.2.1 パターンA: 単一プロジェクトの移行(最も一般的)
33
-
34
- **対象**: 1つのプロジェクトで Michi を使用しているユーザー
35
-
36
- **手順**:
37
- 1. グローバル設定を作成: `michi config:global`
38
- 2. プロジェクト設定を移行: `michi migrate`
39
- 3. 動作確認
40
-
41
- **推定時間**: 10-15分
42
-
43
- **詳細手順**:
44
- ```bash
45
- # ステップ1: グローバル設定の作成
46
- $ michi config:global
47
- # 対話的プロンプトに従って、組織共通の設定を入力
48
-
49
- # ステップ2: プロジェクトディレクトリに移動
50
- $ cd /path/to/your/project
51
-
52
- # ステップ3: 移行ツールを実行
53
- $ michi migrate
54
- # 変更内容を確認し、承認
55
-
56
- # ステップ4: 動作確認
57
- $ michi init --help
58
- # コマンドが正常に動作することを確認
59
- ```
60
-
61
- #### 7.2.2 パターンB: 複数プロジェクトの一括移行
62
-
63
- **対象**: 複数のプロジェクトで Michi を使用しているユーザー
64
-
65
- **手順**:
66
- 1. グローバル設定を一度作成
67
- 2. 各プロジェクトで `migrate` を実行
68
- 3. (オプション)スクリプト化して自動実行
69
-
70
- **推定時間**: 5分/プロジェクト
71
-
72
- **一括移行スクリプト例**:
73
- ```bash
74
- #!/bin/bash
75
-
76
- # グローバル設定を一度だけ作成
77
- michi config:global
78
-
79
- # プロジェクトリスト
80
- PROJECTS=(
81
- "/path/to/project-a"
82
- "/path/to/project-b"
83
- "/path/to/project-c"
84
- )
85
-
86
- # 各プロジェクトで移行を実行
87
- for project in "${PROJECTS[@]}"; do
88
- echo "Migrating $project..."
89
- cd "$project" || exit
90
- michi migrate --force # 自動承認
91
- echo "✅ $project migrated"
92
- done
93
-
94
- echo "🎉 All projects migrated successfully!"
95
- ```
96
-
97
- #### 7.2.3 パターンC: 新規プロジェクトの開始
98
-
99
- **対象**: これから Michi を使い始めるユーザー
100
-
101
- **手順**:
102
- 1. グローバル設定を作成
103
- 2. `michi init` で新規プロジェクト作成
104
-
105
- **推定時間**: 5分
106
-
107
- ```bash
108
- # ステップ1: グローバル設定
109
- $ michi config:global
110
-
111
- # ステップ2: 新規プロジェクト作成
112
- $ mkdir my-new-project
113
- $ cd my-new-project
114
- $ michi init
115
-
116
- # または、既存プロジェクトに追加
117
- $ cd /path/to/existing-project
118
- $ michi init --existing
119
- ```
120
-
121
- ### 7.3 自動移行ツール: `michi migrate`
122
-
123
- #### 7.3.1 コマンド構文
124
-
125
- ```bash
126
- michi migrate [options]
127
-
128
- Options:
129
- --dry-run 実際には変更せず、変更内容をプレビュー
130
- --backup-dir DIR バックアップディレクトリを指定
131
- (デフォルト: .michi-backup-YYYYMMDDHHMMSS)
132
- --force 確認プロンプトをスキップ
133
- --verbose 詳細なログを表示
134
- --help ヘルプを表示
135
- ```
136
-
137
- #### 7.3.2 実行フロー
138
-
139
- ```
140
- [1. 現状のスキャン]
141
- ├─ ~/.michi/config.json の存在確認
142
- ├─ ~/.michi/.env の存在確認(新形式)
143
- ├─ ~/.michi/global.env の存在確認(旧形式)
144
- ├─ .kiro/project.json の存在確認
145
- └─ .env の存在確認
146
-
147
- [2. 変更内容のプレビュー]
148
- ├─ 組織共通設定の抽出(N項目)
149
- ├─ プロジェクト固有設定の保持(M項目)
150
- ├─ 旧形式ファイルのリネーム(該当する場合)
151
- └─ 変更内容の表示
152
-
153
- [3. ユーザー確認]
154
- ├─ 変更内容の確認
155
- └─ 続行するか確認(--force でスキップ)
156
-
157
- [4. バックアップ作成]
158
- ├─ .michi-backup-YYYYMMDDHHMMSS/ ディレクトリ作成
159
- ├─ 既存ファイルをすべてコピー
160
- └─ バックアップの場所を表示
161
-
162
- [5. 設定の分離・移行]
163
- ├─ .env から組織共通設定を抽出
164
- ├─ ~/.michi/.env に書き込み(chmod 600)
165
- ├─ .env を更新(プロジェクト固有設定のみ)
166
- └─ 旧形式ファイルのリネーム(該当する場合)
167
-
168
- [6. バリデーション]
169
- ├─ ConfigLoader で設定を読み込み
170
- ├─ 必須項目のチェック
171
- └─ エラーがあれば表示
172
-
173
- [7. 完了レポート]
174
- ├─ 変更内容のサマリー
175
- ├─ バックアップの場所
176
- ├─ 次のステップ
177
- └─ トラブルシューティングへのリンク
178
- ```
179
-
180
- ##### 7.3.3 実行例
181
-
182
- **例1: 単一プロジェクトの移行(Pattern A)**
183
-
184
- ```bash
185
- $ cd /Users/username/Work/git/my-project
186
- $ michi migrate
187
-
188
- 🔄 Michi 設定移行ツール
189
- ================================================
190
-
191
- [1] 現在の設定を検出中...
192
- ✓ プロジェクトディレクトリ: /Users/username/Work/git/my-project
193
- ✓ .michi/config.json 検出
194
- ✓ .env 検出
195
- ✓ project.json 検出
196
-
197
- [2] 移行が必要な設定を分析中...
198
- ℹ 以下の設定をグローバル化します:
199
- - CONFLUENCE_URL
200
- - CONFLUENCE_USERNAME
201
- - CONFLUENCE_API_TOKEN
202
- - JIRA_URL
203
- - JIRA_USERNAME
204
- - JIRA_API_TOKEN
205
- - GITHUB_TOKEN
206
- - GITHUB_USERNAME
207
- - GITHUB_EMAIL
208
- - GITHUB_ORG
209
-
210
- ℹ 以下の設定はプロジェクト固有のままです:
211
- - GITHUB_REPO (→ project.json.repository に統合)
212
- - PROJECT_NAME (→ project.json.projectId)
213
-
214
- [3] 変更内容の確認
215
- 変更されるファイル:
216
- - ~/.michi/.env (新規作成)
217
- - .env (更新: 10項目削除、1項目追加)
218
- - project.json (更新: repository フィールド追加)
219
-
220
- 続行しますか? (y/n): y
221
-
222
- [4] バックアップ作成中...
223
- ✓ バックアップ作成: .michi-backup-20250112143022/
224
-
225
- [5] 設定の分離・移行中...
226
- ✓ ~/.michi/.env に組織設定を書き込みました
227
- ✓ .env を更新しました
228
- ✓ project.json を更新しました
229
-
230
- [6] バリデーション実行中...
231
- ✓ ConfigLoader で設定を読み込みました
232
- ✓ すべての必須項目が設定されています
233
-
234
- [7] 移行完了!
235
- ================================================
236
- ✅ 設定の移行が完了しました
237
-
238
- 変更内容:
239
- - グローバル設定ファイル作成: ~/.michi/.env (10項目)
240
- - プロジェクト.env更新: 10項目削除
241
- - project.json更新: repository フィールド追加
242
-
243
- バックアップ:
244
- - 場所: .michi-backup-20250112143022/
245
- - 復元方法: michi migrate --rollback .michi-backup-20250112143022
246
-
247
- 次のステップ:
248
- 1. 設定を確認: michi config:validate
249
- 2. 動作確認: michi confluence:sync {feature} --dry-run
250
- 3. 問題があれば: docs/michi-development/design/config-unification.md#7.7
251
-
252
- 移行ログ: .michi/migration.log
253
- ```
254
-
255
- **例2: 強制実行(確認スキップ)**
256
-
257
- ```bash
258
- $ michi migrate --force
259
-
260
- 🔄 Michi 設定移行ツール
261
- ================================================
262
- ⚠️ --force オプションが指定されています。確認をスキップします。
263
-
264
- [1] 現在の設定を検出中...
265
- ✓ プロジェクトディレクトリ: /Users/username/Work/git/my-project
266
- ...
267
-
268
- [4] バックアップ作成中...
269
- ✓ バックアップ作成: .michi-backup-20250112143105/
270
-
271
- [5] 設定の分離・移行中...
272
- ...
273
-
274
- ✅ 設定の移行が完了しました
275
- ```
276
-
277
- **例3: ドライラン(変更なし)**
278
-
279
- ```bash
280
- $ michi migrate --dry-run
281
-
282
- 🔄 Michi 設定移行ツール (ドライランモード)
283
- ================================================
284
- ⚠️ このモードでは実際の変更は行われません
285
-
286
- [1] 現在の設定を検出中...
287
- ✓ プロジェクトディレクトリ: /Users/username/Work/git/my-project
288
- ✓ .michi/config.json 検出
289
- ✓ .env 検出
290
- ✓ project.json 検出
291
-
292
- [2] 移行が必要な設定を分析中...
293
- ℹ 以下の設定をグローバル化します:
294
- - CONFLUENCE_URL
295
- - CONFLUENCE_USERNAME
296
- - ...
297
-
298
- [予定される変更]
299
- 作成: ~/.michi/.env
300
- CONFLUENCE_URL=https://example.atlassian.net
301
- CONFLUENCE_USERNAME=admin@example.com
302
- ...
303
-
304
- 更新: .env (10行削除)
305
-
306
- 更新: project.json
307
- + "repository": "https://github.com/myorg/my-project.git"
308
-
309
- [3] ドライラン完了
310
- ================================================
311
- ⚠️ --dry-run モードのため、実際の変更は行われませんでした
312
-
313
- 実際に移行を実行する場合:
314
- $ michi migrate
315
- ```
316
-
317
- #### 7.4 手動移行手順
318
-
319
- 自動移行ツールを使用しない場合や、カスタマイズが必要な場合の手動移行手順です。
320
-
321
- ##### 7.4.1 グローバル設定の作成
322
-
323
- **ステップ1: ~/.michi/.env の作成**
324
-
325
- ```bash
326
- # ディレクトリ作成
327
- mkdir -p ~/.michi
328
-
329
- # .env ファイル作成
330
- cat > ~/.michi/.env << 'EOF'
331
- # Michi グローバル設定(組織共通)
332
-
333
- # Confluence設定
334
- CONFLUENCE_URL=https://your-domain.atlassian.net
335
- CONFLUENCE_USERNAME=your-email@example.com
336
- CONFLUENCE_API_TOKEN=your-confluence-api-token
337
-
338
- # JIRA設定
339
- JIRA_URL=https://your-domain.atlassian.net
340
- JIRA_USERNAME=your-email@example.com
341
- JIRA_API_TOKEN=your-jira-api-token
342
-
343
- # GitHub設定
344
- GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
345
- GITHUB_USERNAME=your-github-username
346
- GITHUB_EMAIL=your-email@example.com
347
- GITHUB_ORG=your-organization
348
- EOF
349
-
350
- # パーミッション設定
351
- chmod 600 ~/.michi/.env
352
- ```
353
-
354
- **ステップ2: 既存プロジェクトの .env を更新**
355
-
356
- ```bash
357
- # プロジェクトディレクトリに移動
358
- cd /path/to/your/project
359
-
360
- # バックアップ作成
361
- cp .env .env.backup
362
-
363
- # グローバル化される項目を削除
364
- # (以下は sed コマンドの例、実際には手動編集を推奨)
365
- sed -i '' '/^CONFLUENCE_URL=/d' .env
366
- sed -i '' '/^CONFLUENCE_USERNAME=/d' .env
367
- sed -i '' '/^CONFLUENCE_API_TOKEN=/d' .env
368
- sed -i '' '/^JIRA_URL=/d' .env
369
- sed -i '' '/^JIRA_USERNAME=/d' .env
370
- sed -i '' '/^JIRA_API_TOKEN=/d' .env
371
- sed -i '' '/^GITHUB_TOKEN=/d' .env
372
- sed -i '' '/^GITHUB_USERNAME=/d' .env
373
- sed -i '' '/^GITHUB_EMAIL=/d' .env
374
- sed -i '' '/^GITHUB_ORG=/d' .env
375
- ```
376
-
377
- ##### 7.4.2 プロジェクト設定の更新
378
-
379
- **ステップ3: project.json の更新**
380
-
381
- ```bash
382
- # .env から GITHUB_REPO を取得
383
- GITHUB_REPO=$(grep GITHUB_REPO .env | cut -d= -f2)
384
-
385
- # project.json に repository フィールドを追加
386
- # (jq コマンドを使用する例)
387
- jq --arg repo "https://github.com/$GITHUB_REPO.git" \
388
- '.repository = $repo' \
389
- .michi/project.json > .michi/project.json.tmp
390
-
391
- mv .michi/project.json.tmp .michi/project.json
392
-
393
- # または手動で編集
394
- # {
395
- # "projectId": "my-project",
396
- # "repository": "https://github.com/myorg/my-project.git",
397
- # ...
398
- # }
399
- ```
400
-
401
- **ステップ4: .env から GITHUB_REPO を削除**
402
-
403
- ```bash
404
- sed -i '' '/^GITHUB_REPO=/d' .env
405
- ```
406
-
407
- ##### 7.4.3 設定の検証
408
-
409
- ```bash
410
- # ConfigLoader でバリデーション
411
- npm run config:validate
412
-
413
- # または
414
- npx tsx scripts/utils/config-validator.ts
415
-
416
- # Michi CLIで動作確認(ドライラン)
417
- michi confluence:sync my-feature --dry-run
418
- ```
419
-
420
- #### 7.5 検証方法
421
-
422
- 移行後の設定が正しいことを確認するためのチェックリストです。
423
-
424
- ##### 7.5.1 ファイル存在チェック
425
-
426
- ```bash
427
- # グローバル設定の確認
428
- [ -f ~/.michi/.env ] && echo "✓ ~/.michi/.env 存在" || echo "✗ ~/.michi/.env が見つかりません"
429
-
430
- # パーミッション確認
431
- ls -l ~/.michi/.env | grep "^-rw-------" && echo "✓ パーミッション正常 (600)" || echo "⚠️ パーミッションを確認してください"
432
-
433
- # プロジェクト設定の確認
434
- [ -f .michi/project.json ] && echo "✓ .michi/project.json 存在" || echo "✗ .michi/project.json が見つかりません"
435
- [ -f .env ] && echo "✓ .env 存在" || echo "✗ .env が見つかりません"
436
- ```
437
-
438
- ##### 7.5.2 設定内容チェック
439
-
440
- **グローバル設定のチェック**
441
-
442
- ```bash
443
- # 必須項目が含まれているか確認
444
- grep -q "CONFLUENCE_URL=" ~/.michi/.env && echo "✓ CONFLUENCE_URL" || echo "✗ CONFLUENCE_URL が見つかりません"
445
- grep -q "JIRA_URL=" ~/.michi/.env && echo "✓ JIRA_URL" || echo "✗ JIRA_URL が見つかりません"
446
- grep -q "GITHUB_TOKEN=" ~/.michi/.env && echo "✓ GITHUB_TOKEN" || echo "✗ GITHUB_TOKEN が見つかりません"
447
- ```
448
-
449
- **プロジェクト設定のチェック**
450
-
451
- ```bash
452
- # GITHUB_REPO が削除されているか確認
453
- ! grep -q "GITHUB_REPO=" .env && echo "✓ GITHUB_REPO は削除されています" || echo "⚠️ GITHUB_REPO がまだ残っています"
454
-
455
- # project.json に repository が追加されているか確認
456
- grep -q '"repository"' .michi/project.json && echo "✓ project.json に repository フィールド追加済み" || echo "✗ repository フィールドが見つかりません"
457
- ```
458
-
459
- ##### 7.5.3 バリデーション実行
460
-
461
- ```bash
462
- # Michi の設定バリデーション
463
- npm run config:validate
464
-
465
- # 期待される出力:
466
- # ✅ 設定ファイルは有効です
467
- # ✅ グローバル設定: ~/.michi/.env
468
- # ✅ プロジェクト設定: .michi/config.json
469
- # ✅ プロジェクト環境: .env
470
- # ✅ すべての必須項目が設定されています
471
- ```
472
-
473
- ##### 7.5.4 機能テスト
474
-
475
- **Confluence同期のテスト**
476
-
477
- ```bash
478
- # ドライランで確認(実際にページは作成されない)
479
- michi confluence:sync my-feature requirements --dry-run
480
-
481
- # 期待される動作:
482
- # - Confluence URLに接続できる
483
- # - 認証が成功する
484
- # - スペースにアクセスできる
485
- # - ページ作成のシミュレーションが成功する
486
- ```
487
-
488
- **JIRA同期のテスト**
489
-
490
- ```bash
491
- # ドライランで確認
492
- michi jira:sync my-feature --dry-run
493
-
494
- # 期待される動作:
495
- # - JIRA URLに接続できる
496
- # - プロジェクトが見つかる
497
- # - Epic/Story作成のシミュレーションが成功する
498
- ```
499
-
500
- **GitHub PR作成のテスト**
501
-
502
- ```bash
503
- # 現在のブランチ情報を確認
504
- michi github:pr --info
505
-
506
- # 期待される動作:
507
- # - リポジトリ情報が正しく取得できる
508
- # - ブランチ情報が表示される
509
- # - PR作成の準備ができている
510
- ```
511
-
512
- #### 7.6 ロールバック手順
513
-
514
- 移行後に問題が発生した場合の復元手順です。
515
-
516
- ##### 7.6.1 自動バックアップからの復元
517
-
518
- `michi migrate` コマンドは自動的にバックアップを作成します。
519
-
520
- ```bash
521
- # バックアップディレクトリの確認
522
- ls -la .michi-backup-*
523
-
524
- # 例: .michi-backup-20250112143022/
525
-
526
- # ロールバック実行
527
- michi migrate --rollback .michi-backup-20250112143022
528
-
529
- # または手動で復元
530
- cp -r .michi-backup-20250112143022/.michi .michi
531
- cp .michi-backup-20250112143022/.env .env
532
- cp .michi-backup-20250112143022/project.json .michi/project.json
533
- ```
534
-
535
- ##### 7.6.2 手動バックアップからの復元
536
-
537
- 手動移行を行った場合のロールバック手順:
538
-
539
- **ステップ1: バックアップファイルを確認**
540
-
541
- ```bash
542
- # バックアップファイルの確認
543
- ls -la *.backup
544
-
545
- # 例:
546
- # .env.backup
547
- # project.json.backup
548
- ```
549
-
550
- **ステップ2: ファイルを復元**
551
-
552
- ```bash
553
- # .env の復元
554
- cp .env.backup .env
555
-
556
- # project.json の復元
557
- cp .michi/project.json.backup .michi/project.json
558
-
559
- # 権限の確認
560
- chmod 600 .env
561
- ```
562
-
563
- **ステップ3: グローバル設定の削除(オプション)**
564
-
565
- ```bash
566
- # グローバル設定をロールバックする場合
567
- rm ~/.michi/.env
568
-
569
- # または、グローバル設定は残して .env を旧形式に戻すのみでもOK
570
- ```
571
-
572
- **ステップ4: 動作確認**
573
-
574
- ```bash
575
- # 設定が正しく復元されたか確認
576
- npm run config:validate
577
-
578
- # 実際の機能をテスト
579
- michi confluence:sync my-feature --dry-run
580
- ```
581
-
582
- ##### 7.6.3 部分的なロールバック
583
-
584
- グローバル設定のみ、またはプロジェクト設定のみをロールバックする場合:
585
-
586
- **グローバル設定のみロールバック**
587
-
588
- ```bash
589
- # グローバル設定を削除
590
- rm ~/.michi/.env
591
-
592
- # .env に組織設定を復元
593
- # (バックアップから CONFLUENCE_*, JIRA_*, GITHUB_* をコピー)
594
- ```
595
-
596
- **プロジェクト設定のみロールバック**
597
-
598
- ```bash
599
- # project.json の repository フィールドを削除
600
- jq 'del(.repository)' .michi/project.json > .michi/project.json.tmp
601
- mv .michi/project.json.tmp .michi/project.json
602
-
603
- # .env に GITHUB_REPO を復元
604
- echo "GITHUB_REPO=myorg/my-project" >> .env
605
- ```
606
-
607
- #### 7.7 トラブルシューティング
608
-
609
- 移行中または移行後に発生する可能性のある問題と解決策です。
610
-
611
- ##### 7.7.1 移行ツールのエラー
612
-
613
- **エラー: "No .env file found"**
614
-
615
- ```
616
- 原因: プロジェクトディレクトリに .env ファイルが存在しない
617
-
618
- 解決策:
619
- 1. 現在のディレクトリを確認: pwd
620
- 2. .env ファイルを作成: cp env.example .env
621
- 3. 必要な設定を記入
622
- 4. 再度移行を実行: michi migrate
623
- ```
624
-
625
- **エラー: "~/.michi/.env already exists"**
626
-
627
- ```
628
- 原因: グローバル設定ファイルが既に存在する
629
-
630
- 解決策:
631
- 1. 既存のファイルを確認: cat ~/.michi/.env
632
- 2. バックアップを作成: cp ~/.michi/.env ~/.michi/.env.backup
633
- 3. --force オプションで上書き: michi migrate --force
634
- または
635
- 4. 手動でマージ: 既存の ~/.michi/.env に不足している項目を追加
636
- ```
637
-
638
- **エラー: "Invalid repository URL in project.json"**
639
-
640
- ```
641
- 原因: project.json の repository フィールドが不正な形式
642
-
643
- 解決策:
644
- 1. project.json を確認: cat .michi/project.json
645
- 2. repository フィールドを修正:
646
- 正しい形式: "https://github.com/org/repo.git"
647
- または "git@github.com:org/repo.git"
648
- 3. 再度移行を実行: michi migrate
649
- ```
650
-
651
- ##### 7.7.2 バリデーションエラー
652
-
653
- **エラー: "CONFLUENCE_URL is required"**
654
-
655
- ```
656
- 原因: グローバル設定に必須項目が不足している
657
-
658
- 解決策:
659
- 1. ~/.michi/.env を編集
660
- 2. 不足している項目を追加:
661
- CONFLUENCE_URL=https://your-domain.atlassian.net
662
- 3. パーミッションを確認: chmod 600 ~/.michi/.env
663
- 4. 再度バリデーション: npm run config:validate
664
- ```
665
-
666
- **エラー: "Repository URL does not match GITHUB_REPO"**
667
-
668
- ```
669
- 原因: project.json.repository と .env.GITHUB_REPO が一致しない
670
-
671
- 解決策:
672
- 1. どちらが正しいか確認
673
- 2. 正しい値を project.json に設定
674
- 3. .env から GITHUB_REPO を削除
675
- 4. 再度バリデーション: npm run config:validate
676
- ```
677
-
678
- ##### 7.7.3 機能テストの失敗
679
-
680
- **エラー: "Confluence authentication failed"**
681
-
682
- ```
683
- 原因: Confluence の認証情報が間違っている、または期限切れ
684
-
685
- 解決策:
686
- 1. ~/.michi/.env の認証情報を確認
687
- 2. Atlassian でAPIトークンを再生成:
688
- https://id.atlassian.com/manage-profile/security/api-tokens
689
- 3. ~/.michi/.env を更新
690
- 4. 再度テスト: michi confluence:sync my-feature --dry-run
691
- ```
692
-
693
- **エラー: "GitHub repository not found"**
694
-
695
- ```
696
- 原因: リポジトリURLが間違っている、またはアクセス権限がない
697
-
698
- 解決策:
699
- 1. project.json の repository を確認
700
- 2. GitHub でリポジトリの存在とアクセス権限を確認
701
- 3. 必要に応じて GITHUB_TOKEN の権限を確認
702
- 4. 正しいURLに修正
703
- 5. 再度テスト: michi github:pr --info
704
- ```
705
-
706
- ##### 7.7.4 パーミッションの問題
707
-
708
- **エラー: "Permission denied: ~/.michi/.env"**
709
-
710
- ```
711
- 原因: ファイルのパーミッションが正しくない
712
-
713
- 解決策:
714
- 1. 現在のパーミッションを確認: ls -l ~/.michi/.env
715
- 2. 正しいパーミッションに修正: chmod 600 ~/.michi/.env
716
- 3. 所有者を確認: ls -l ~/.michi/.env
717
- 4. 必要に応じて所有者を変更: sudo chown $USER ~/.michi/.env
718
- ```
719
-
720
- ##### 7.7.5 マルチプロジェクトでの問題
721
-
722
- **問題: "複数プロジェクトで異なる組織設定が必要"**
723
-
724
- ```
725
- 原因: 複数の組織に跨ってプロジェクトを管理している
726
-
727
- 解決策(現在の制限事項):
728
- 1. グローバル設定は1つの組織のみをサポート
729
- 2. 別の組織のプロジェクトでは .env に組織設定を直接記述
730
- 3. 将来的にはプロファイル機能で複数組織をサポート予定(Section 11参照)
731
-
732
- 一時的な回避策:
733
- - 主に使用する組織を ~/.michi/.env に設定
734
- - 他の組織のプロジェクトでは .env に全設定を記述(グローバル設定を使用しない)
735
- ```
736
-
737
- **問題: "プロジェクトAの変更がプロジェクトBに影響する"**
738
-
739
- ```
740
- 原因: グローバル設定を誤って変更した
741
-
742
- 解決策:
743
- 1. グローバル設定の変更は慎重に行う
744
- 2. プロジェクト固有の設定は必ず .env または .michi/config.json に記述
745
- 3. 設定の優先順位を理解する:
746
- プロジェクト .env > プロジェクト config.json > グローバル .env
747
- ```
748
-
749
- ##### 7.7.6 ロールバック失敗
750
-
751
- **エラー: "Backup directory not found"**
752
-
753
- ```
754
- 原因: バックアップディレクトリが見つからない
755
-
756
- 解決策:
757
- 1. バックアップディレクトリを検索: find . -name ".michi-backup-*"
758
- 2. 見つからない場合は手動バックアップを使用: .env.backup など
759
- 3. 最悪の場合は Git で復元: git checkout .env .michi/
760
- ```
761
-
762
- **エラー: "Cannot restore: files are modified"**
763
-
764
- ```
765
- 原因: 復元先のファイルが変更されている
766
-
767
- 解決策:
768
- 1. 現在の変更を確認: git status
769
- 2. 変更を保存: git stash
770
- 3. ロールバックを実行
771
- 4. 必要に応じて変更を復元: git stash pop
772
- ```
773
-
774
- ---
775
-
776
- ### 参考情報
777
-
778
- - **移行ログの確認**: `.michi/migration.log` に詳細なログが記録されます
779
- - **バックアップの保管期間**: 自動バックアップは30日後に自動削除されます(設定で変更可能)
780
- - **サポート**: 問題が解決しない場合は GitHub Issues で報告してください
781
-
782
- ---
783
-
784
-
785
- ---
786
-
787
- ## 10. 後方互換性
788
-
789
- 既存ユーザーへの影響を最小限に抑えるための後方互換性戦略です。
790
-
791
- ### 10.1 互換性レベル
792
-
793
- #### 10.1.1 完全互換(継続サポート)
794
-
795
- 以下の機能は引き続きサポートされます:
796
-
797
- | 機能 | 動作 | サポート期限 |
798
- |------|------|------------|
799
- | `.env` ファイル(プロジェクト) | 引き続き使用可能 | 無期限 |
800
- | `.michi/config.json` | 引き続き使用可能 | 無期限 |
801
- | `.michi/project.json` | 引き続き使用可能 | 無期限 |
802
- | `npm run config:global` | グローバル設定作成 | 無期限 |
803
- | 既存のCLIコマンド | すべて継続動作 | 無期限 |
804
-
805
- #### 10.1.2 破壊的変更(v0.5.0)
806
-
807
- **重要**: v0.5.0 では、シンプルな設計を実現するために破壊的変更が含まれます。
808
-
809
- **削除される機能:**
810
- - `GITHUB_REPO` 環境変数(`.env` 内)
811
- - `setup-existing` コマンド(`michi init --existing` に統一)
812
-
813
- **移行が必要なユーザー:**
814
- - `.env` で `GITHUB_REPO` を使用しているユーザー
815
- - `setup-existing` コマンドを使用しているユーザー
816
-
817
- **移行方法:**
818
- `michi migrate` コマンドで自動移行が可能です。
819
-
820
- ### 10.2 移行ガイド
821
-
822
- #### 10.2.1 GITHUB_REPO の移行
823
-
824
- v0.5.0 では、`GITHUB_REPO` 環境変数は削除されます。代わりに `.kiro/project.json` の `repository` フィールドを使用します。
825
-
826
- **移行方法:**
827
-
828
- 1. **自動移行(推奨):**
829
- ```bash
830
- michi migrate
831
- ```
832
-
833
- 2. **手動移行:**
834
- - `.env` から `GITHUB_REPO` を削除
835
- - `.kiro/project.json` に `repository` を追加:
836
- ```json
837
- {
838
- "repository": "https://github.com/myorg/myrepo"
839
- }
840
- ```
841
-
842
- **ConfigLoader の実装:**
843
-
844
- ```typescript
845
- // ConfigLoader は repository から org/repo 形式を自動抽出
846
- const parsed = this.parseGitHubRepository(merged.project.repository);
847
- merged.github = {
848
- ...merged.github,
849
- repository: parsed.url,
850
- repositoryShort: parsed.shortForm, // "org/repo"
851
- repositoryOrg: parsed.org,
852
- repositoryName: parsed.repo,
853
- };
854
- ```
855
-
856
- #### 10.2.2 setup-existing コマンドの移行
857
-
858
- v0.5.0 では、`setup-existing` コマンドは削除されます。代わりに `michi init --existing` を使用します。
859
-
860
- **移行方法:**
861
-
862
- すべての `setup-existing` の使用を `michi init --existing` に置き換えてください。
863
-
864
- ```bash
865
- # 変更前
866
- npx @sk8metal/michi-cli setup-existing
867
-
868
- # 変更後
869
- michi init --existing
870
- ```
871
-
872
- ### 10.3 バージョン間の互換性マトリクス
873
-
874
- | 機能 | v0.4.0 (現在) | v0.5.0 (Breaking Change) | v1.0.0 |
875
- |------|-------------|------------------------|--------|
876
- | **GITHUB_REPO** | ✅ サポート | ❌ **削除** | - |
877
- | **setup-existing** | ✅ サポート | ❌ **削除** | - |
878
- | **~/.michi/.env** | ❌ 未サポート | ✅ **新規追加** | ✅ サポート |
879
- | **project.json.repository** | ❌ 未サポート | ✅ **必須** | ✅ 必須 |
880
- | **michi migrate** | ❌ 未サポート | ✅ **新規追加** | ✅ サポート |
881
- | **michi init --existing** | ❌ 未サポート | ✅ **新規追加** | ✅ サポート |
882
-
883
- ### 10.4 アップグレードガイド
884
-
885
- #### 10.4.1 v0.4.0 → v0.5.0 (Breaking Change)
886
-
887
- **重要**: v0.5.0 は Breaking Change を含むため、移行が必須です。
888
-
889
- **アップグレード手順**:
890
-
891
- 1. **バックアップ作成**
892
- ```bash
893
- cp -r .michi .michi.backup
894
- cp -r .kiro .kiro.backup
895
- cp .env .env.backup
896
- ```
897
-
898
- 2. **Michi をアップグレード**
899
- ```bash
900
- npm install -g @sk8metal/michi-cli@0.5.0
901
- ```
902
-
903
- 3. **移行ツールを実行(必須)**
904
- ```bash
905
- michi migrate
906
- ```
907
-
908
- 移行ツールは以下を自動的に行います:
909
- - `GITHUB_REPO` を `.kiro/project.json` の `repository` に移行
910
- - `.env` から組織共通設定を `~/.michi/.env` に抽出
911
- - `.env` にプロジェクト固有設定のみを残す
912
-
913
- 4. **動作確認**
914
- ```bash
915
- michi config:validate
916
- michi confluence:sync my-feature --dry-run
917
- ```
918
-
919
- 5. **コマンド使用の更新**
920
- - `setup-existing` → `michi init --existing` に変更
921
- - スクリプトやドキュメントを更新
922
-
923
- **移行しない場合**:
924
-
925
- v0.4.0 のまま使用を続けることを推奨します。v0.5.0 は Breaking Change のため、移行なしではエラーが発生します。
926
-
927
- ### 10.5 ダウングレード
928
-
929
- v0.5.0 から v0.4.0 へのダウングレードは可能ですが、以下の制限があります:
930
-
931
- **ダウングレード手順**:
932
-
933
- ```bash
934
- # 1. グローバル設定を .env に戻す
935
- cat ~/.michi/.env >> .env
936
-
937
- # 2. project.json から GITHUB_REPO を .env に追加
938
- echo "GITHUB_REPO=myorg/myrepo" >> .env
939
-
940
- # 3. Michi をダウングレード
941
- npm install -g @sk8metal/michi-cli@0.4.0
942
-
943
- # 4. グローバル設定を削除(オプション)
944
- rm ~/.michi/.env
945
- ```
946
-
947
- **注意**:
948
- - 一度 v0.5.0 で作成した設定は、v0.4.0 では一部認識されません
949
- - ダウングレードは緊急時のみ推奨されます
950
-
951
- ---
952
-