@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,733 +0,0 @@
1
- # Michi 設定統合設計書
2
-
3
- **バージョン**: 1.0
4
- **作成日**: 2025-01-11
5
- **ステータス**: Draft
6
- **対象リリース**: v0.5.0 - v1.0.0
7
-
8
- ---
9
-
10
- ## 目次
11
-
12
- 1. [エグゼクティブサマリー](#1-エグゼクティブサマリー)
13
- 2. [現状分析](#2-現状分析)
14
- 3. [問題点の特定](#3-問題点の特定)
15
- 4. [解決策の提案](#4-解決策の提案)
16
- 5. [新アーキテクチャ](#5-新アーキテクチャ)
17
- 6. [実装詳細](#6-実装詳細)
18
- 7. [マイグレーション戦略](#7-マイグレーション戦略)
19
- 8. [テスト戦略](#8-テスト戦略)
20
- 9. [セキュリティとパフォーマンス](#9-セキュリティとパフォーマンス)
21
- 10. [後方互換性](#10-後方互換性)
22
- 11. [ロードマップ](#11-ロードマップ)
23
- 12. [付録](#12-付録)
24
-
25
- ---
26
-
27
- ## 1. エグゼクティブサマリー
28
-
29
- ### 1.1 背景
30
-
31
- Michiプロジェクトでは、現在3つのコマンド(`michi init`、`npx @sk8metal/michi-cli setup-existing`、`npm run config:global`)がプロジェクトの初期設定を担当しています。しかし、これらのコマンドには以下の問題があります:
32
-
33
- - **重複する対話的プロンプト**: プロジェクト名、JIRAキー、環境の入力が複数のコマンドで重複
34
- - **設定項目の分散**: 組織レベルで共通の設定が `.env` に分散し、プロジェクトごとに重複入力が必要
35
- - **使い分けの不明瞭さ**: どのコマンドをいつ使うべきか、ユーザーにとって不明確
36
-
37
- ### 1.2 目的
38
-
39
- 本設計書では、以下を達成する統一的な設定管理システムを提案します:
40
-
41
- 1. **設定の階層化**: グローバル設定(組織レベル)とプロジェクト設定(プロジェクトレベル)の明確な分離
42
- 2. **コマンドの統一**: `init` と `setup-existing` を統合し、使い分けをシンプルに
43
- 3. **自動マイグレーション**: 既存ユーザーが簡単に新形式に移行できるツールの提供
44
- 4. **後方互換性**: 段階的な移行により、既存ユーザーへの影響を最小化
45
-
46
- ### 1.3 期待される効果
47
-
48
- - **ユーザー体験の向上**: 組織設定を一度だけ入力すれば、全プロジェクトで共有
49
- - **保守性の向上**: 設定の一元管理により、変更が容易に
50
- - **セキュリティの向上**: 認証情報を適切なファイル(`~/.michi/.env`)に集約し、パーミッション管理を強化
51
-
52
- ---
53
-
54
-
55
- ---
56
-
57
- ## 詳細ドキュメント
58
-
59
- 本設計書は、可読性と保守性を向上させるため、以下のドキュメントに分割されています:
60
-
61
- ### 現状分析と課題
62
- - [現状分析と問題点](./design-config-current-state.md)
63
- - 現在の3つのコマンド分析
64
- - 設定ファイルと設定項目の一覧
65
- - データフロー図
66
- - 特定された問題点
67
-
68
- ### 解決策と設計
69
- - [解決策と新アーキテクチャ](./design-config-solution.md)
70
- - 統一的な設定管理システムの提案
71
- - 新しいアーキテクチャ設計
72
- - 設定の階層化と優先順位
73
-
74
- ### 実装とマイグレーション
75
- - [実装詳細](./design-config-implementation.md)
76
- - コマンド実装詳細
77
- - 設定管理ライブラリ
78
- - ファイル構造
79
-
80
- - [マイグレーション戦略と後方互換性](./design-config-migration.md)
81
- - 段階的マイグレーション計画
82
- - マイグレーションツール
83
- - 後方互換性の維持
84
-
85
- ### 品質保証
86
- - [テスト戦略](./design-config-testing.md)
87
- - 統合テスト計画
88
- - マイグレーションテスト
89
- - パフォーマンステスト
90
-
91
- - [セキュリティとパフォーマンス](./design-config-security.md)
92
- - セキュリティ考慮事項
93
- - パーミッション管理
94
- - パフォーマンス最適化
95
-
96
- ---
97
-
98
- ## 11. ロードマップ
99
-
100
- 設定統一機能の今後の開発計画です。
101
-
102
- ### 11.1 短期(v0.5.0 - v0.6.0)
103
-
104
- **v0.5.0: 設定統一の導入(Breaking Change)(2025 Q1)**
105
-
106
- - [x] 3層設定階層の実装
107
- - [x] `~/.michi/.env` グローバル設定
108
- - [x] `michi migrate` 移行ツール
109
- - [x] `michi init --existing` 自動検出
110
- - [x] ConfigLoader のキャッシュ機構
111
- - [x] セキュリティ強化(パーミッション、バリデーション)
112
- - [x] **Breaking Change**: `GITHUB_REPO` 削除
113
- - [x] **Breaking Change**: `setup-existing` 削除
114
- - [ ] テストカバレッジ 95%
115
- - [ ] ドキュメント整備
116
-
117
- **v0.5.1: バグ修正とフィードバック対応(2025 Q1)**
118
-
119
- - [ ] ユーザーフィードバックに基づくバグ修正
120
- - [ ] エラーメッセージの改善
121
- - [ ] パフォーマンス最適化
122
- - [ ] ドキュメントの改善
123
-
124
- **v0.6.0: 機能拡張(2025 Q2)**
125
-
126
- - [ ] 移行ツールの改善
127
- - [ ] CI/CD テンプレートの提供
128
- - [ ] 設定のバリデーション強化
129
- - [ ] 設定のインポート/エクスポート機能
130
-
131
- ### 11.2 中期(v0.7.0 - v0.9.0)
132
-
133
- **v0.7.0: マルチ組織サポート(2025 Q2-Q3)**
134
-
135
- 現在の制限事項:グローバル設定は1つの組織のみサポート
136
-
137
- **提案される解決策:プロファイル機能**
138
-
139
- ```bash
140
- # プロファイルの作成
141
- $ michi profile create work
142
- $ michi profile create personal
143
-
144
- # プロファイルの切り替え
145
- $ michi profile use work
146
-
147
- # プロファイル一覧
148
- $ michi profile list
149
- * work (active)
150
- personal
151
-
152
- # プロファイルごとの設定
153
- ~/.michi/profiles/work/.env
154
- ~/.michi/profiles/personal/.env
155
- ```
156
-
157
- **設定ファイル構造**:
158
-
159
- ```
160
- ~/.michi/
161
- ├── .env (デフォルトプロファイル)
162
- ├── profiles/
163
- │ ├── work/
164
- │ │ └── .env
165
- │ └── personal/
166
- │ └── .env
167
- └── config.json (アクティブなプロファイル情報)
168
- ```
169
-
170
- **v0.8.0: 設定のバリデーション強化(2025 Q3)**
171
-
172
- - [ ] より詳細なエラーメッセージ
173
- - [ ] 設定の自動修復機能
174
- - [ ] 設定のインポート/エクスポート
175
- - [ ] 設定のバックアップ/復元
176
-
177
- **v0.9.0: パフォーマンス最適化(2025 Q4)**
178
-
179
- - [ ] 設定読み込みの高速化(目標: <50ms)
180
- - [ ] メモリ使用量の削減(目標: <30MB)
181
- - [ ] 大規模プロジェクトでのパフォーマンステスト
182
- - [ ] ベンチマーク結果の公開
183
-
184
- ### 11.3 長期(v1.0.0+)
185
-
186
- **v1.0.0: 安定版リリース(2026 Q1)**
187
-
188
- - [ ] API の安定化
189
- - [ ] セマンティックバージョニングの厳格化
190
- - [ ] 長期サポート(LTS)の開始
191
- - [ ] パフォーマンスの最終最適化
192
- - [ ] セキュリティ監査の実施
193
-
194
- **v1.1.0: 高度な設定管理(2026 Q2)**
195
-
196
- - [ ] 設定の暗号化サポート
197
- - [ ] 環境変数の動的置換(`${VAR}` 構文)
198
- - [ ] 設定のテンプレート機能
199
- - [ ] チーム間での設定共有機能
200
-
201
- **v1.2.0: クラウド統合(2026 Q3)**
202
-
203
- - [ ] 設定のクラウド同期(オプション)
204
- - [ ] シークレット管理サービスとの統合
205
- - AWS Secrets Manager
206
- - Google Secret Manager
207
- - HashiCorp Vault
208
- - [ ] チーム設定の一元管理
209
-
210
- ### 11.4 検討中の機能
211
-
212
- 以下の機能は将来的に検討されていますが、実装は未定です:
213
-
214
- **設定のGUI管理**
215
- - Webベースの設定管理インターフェース
216
- - 視覚的な設定エディタ
217
- - 設定の差分表示
218
-
219
- **AI支援設定**
220
- - プロジェクトの自動検出と推奨設定
221
- - 設定エラーの自動修正
222
- - 最適な設定の提案
223
-
224
- **マルチプラットフォーム対応**
225
- - Windows での完全サポート
226
- - Dockerコンテナでの使用最適化
227
- - CI/CD環境での専用サポート
228
-
229
- ### 11.5 コミュニティフィードバック
230
-
231
- ロードマップは以下の方法でフィードバックを受け付けています:
232
-
233
- - **GitHub Discussions**: 機能リクエスト、質問
234
- - **GitHub Issues**: バグレポート、改善提案
235
- - **Pull Requests**: 機能実装、ドキュメント改善
236
-
237
- 優先順位は以下の基準で決定されます:
238
-
239
- 1. ユーザーからの要望の多さ
240
- 2. セキュリティへの影響
241
- 3. 実装の複雑さ
242
- 4. 既存機能との互換性
243
-
244
- ---
245
-
246
- ## 付録 A: 用語集
247
-
248
- このドキュメントで使用される主要な用語の定義です。
249
-
250
- | 用語 | 定義 |
251
- |------|------|
252
- | **グローバル設定** | `~/.michi/.env` に保存される、すべてのプロジェクトで共有される設定 |
253
- | **プロジェクト設定** | `.michi/config.json` に保存される、プロジェクト固有の設定 |
254
- | **プロジェクト環境** | `.env` に保存される、プロジェクトの環境変数 |
255
- | **3層マージ** | グローバル設定、プロジェクト設定、プロジェクト環境を統合するプロセス |
256
- | **ConfigLoader** | 設定を読み込み、マージ、バリデーションを行うクラス |
257
- | **マイグレーション** | 旧形式の設定を新形式に変換するプロセス |
258
- | **後方互換性** | 既存のコードや設定が新バージョンでも動作すること |
259
- | **非推奨(Deprecated)** | 将来削除される予定の機能 |
260
-
261
- ---
262
-
263
- ## 付録 B: FAQ(よくある質問)
264
-
265
- ### B.1 一般的な質問
266
-
267
- **Q: なぜグローバル設定が必要なのですか?**
268
-
269
- A: 複数のMichiプロジェクトを管理している場合、Confluence/JIRA/GitHubの認証情報は組織で共通です。グローバル設定により、これらを1箇所で管理でき、各プロジェクトで重複して設定する必要がなくなります。
270
-
271
- **Q: グローバル設定を使わずに、プロジェクトごとに設定したい場合は?**
272
-
273
- A: グローバル設定は任意です。`.env` ファイルにすべての設定を記述すれば、グローバル設定なしでも動作します。
274
-
275
- **Q: 複数の組織に所属している場合はどうすればいいですか?**
276
-
277
- A: 現在(v0.5.0)はグローバル設定は1つの組織のみサポートしています。他の組織のプロジェクトでは `.env` に直接認証情報を記述してください。v0.7.0 でプロファイル機能を追加予定です(Section 11参照)。
278
-
279
- ### B.2 移行に関する質問
280
-
281
- **Q: v0.5.0 にアップグレードする必要がありますか?**
282
-
283
- A: v0.5.0 は Breaking Change を含むため、アップグレード時には `michi migrate` を実行する必要があります。v0.4.0 のまま使用を続けることも可能ですが、新機能やバグ修正は v0.5.0 以降で提供されます。
284
-
285
- **Q: 移行に失敗した場合、元に戻せますか?**
286
-
287
- A: はい、`michi migrate` は自動的にバックアップを作成します。`michi migrate --rollback <backup-dir>` で元に戻せます。
288
-
289
- **Q: GITHUB_REPO はどうなりますか?**
290
-
291
- A: v0.5.0 で削除されます。代わりに `.kiro/project.json` の `repository` フィールドを使用します。`michi migrate` が自動的に変換します。
292
-
293
- ### B.3 セキュリティに関する質問
294
-
295
- **Q: ~/.michi/.env のパーミッションはどうすればいいですか?**
296
-
297
- A: 600 (rw-------) が推奨です。`michi migrate` が自動的に設定します。手動で作成した場合は `chmod 600 ~/.michi/.env` を実行してください。
298
-
299
- **Q: .env ファイルを Git にコミットしてしまいました。どうすればいいですか?**
300
-
301
- A: 以下の手順で対処してください:
302
-
303
- 1. `.env` を `.gitignore` に追加
304
- 2. Git履歴から `.env` を削除: `git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch .env' --prune-empty --tag-name-filter cat -- --all`
305
- 3. 認証情報をすべて再生成(漏洩したものとして扱う)
306
- 4. 新しい認証情報で `.env` を更新
307
-
308
- **Q: パスワードやトークンはどのように保存されますか?**
309
-
310
- A: 平文で `.env` ファイルに保存されます。ファイルパーミッション(600)により、他のユーザーからの読み取りは防止されますが、暗号化はされません。より高度なセキュリティが必要な場合は、v1.2.0 で実装予定のシークレット管理サービス統合をお待ちください。
311
-
312
- ### B.4 パフォーマンスに関する質問
313
-
314
- **Q: 設定の読み込みが遅いのですが?**
315
-
316
- A: ConfigLoader はキャッシュ機構を持っており、2回目以降の読み込みは高速です。それでも遅い場合は、以下を確認してください:
317
- - ネットワークドライブ上のプロジェクトではないか
318
- - アンチウイルスソフトが `.env` ファイルをスキャンしていないか
319
-
320
- **Q: メモリ使用量が多いのですが?**
321
-
322
- A: 通常、設定読み込みは 5MB 未満のメモリを使用します。異常に多い場合は、キャッシュをクリアしてみてください:`ConfigLoader.clearCache()`
323
-
324
- ### B.5 トラブルシューティング
325
-
326
- **Q: "CONFLUENCE_URL is required" エラーが出ます**
327
-
328
- A: グローバル設定またはプロジェクト設定に `CONFLUENCE_URL` が設定されているか確認してください。`npm run config:validate` で設定を検証できます。
329
-
330
- **Q: "Invalid repository URL" エラーが出ます**
331
-
332
- A: `project.json` の `repository` フィールドが正しい形式か確認してください。有効な形式:
333
- - `https://github.com/org/repo.git`
334
- - `git@github.com:org/repo.git`
335
-
336
- **Q: 設定ファイルが見つからないと言われます**
337
-
338
- A: 現在のディレクトリがMichiプロジェクトのルートか確認してください。`ls .michi` でディレクトリが存在するか確認できます。
339
-
340
- ---
341
-
342
- ## 付録 C: トラブルシューティング
343
-
344
- 詳細なトラブルシューティングガイドです。Section 7.7 も参照してください。
345
-
346
- ### C.1 診断コマンド
347
-
348
- **設定の確認**
349
-
350
- ```bash
351
- # 設定のバリデーション
352
- michi config:validate
353
-
354
- # 設定の詳細表示(機密情報はマスクされる)
355
- michi config:show
356
-
357
- # 現在読み込まれている設定のパスを表示
358
- michi config:paths
359
- ```
360
-
361
- **ファイルの確認**
362
-
363
- ```bash
364
- # グローバル設定の存在確認
365
- ls -la ~/.michi/.env
366
-
367
- # プロジェクト設定の確認
368
- ls -la .michi/config.json .michi/project.json .env
369
-
370
- # パーミッションの確認
371
- stat -f "%A %N" ~/.michi/.env .env
372
- ```
373
-
374
- ### C.2 一般的な問題と解決策
375
-
376
- **問題: "Permission denied" エラー**
377
-
378
- ```bash
379
- # パーミッションを確認
380
- ls -l ~/.michi/.env
381
-
382
- # 600 に修正
383
- chmod 600 ~/.michi/.env
384
- ```
385
-
386
- **問題: "File not found" エラー**
387
-
388
- ```bash
389
- # ファイルが存在するか確認
390
- test -f ~/.michi/.env && echo "存在する" || echo "存在しない"
391
-
392
- # 存在しない場合は作成
393
- mkdir -p ~/.michi
394
- touch ~/.michi/.env
395
- chmod 600 ~/.michi/.env
396
- ```
397
-
398
- **問題: "Invalid configuration" エラー**
399
-
400
- ```bash
401
- # 設定をバリデーション
402
- michi config:validate
403
-
404
- # エラーメッセージを確認し、該当する項目を修正
405
- ```
406
-
407
- ### C.3 ログの確認
408
-
409
- **移行ログ**
410
-
411
- ```bash
412
- # 移行の詳細ログを確認
413
- cat .michi/migration.log
414
-
415
- # 最新10件のエラーを表示
416
- grep ERROR .michi/migration.log | tail -10
417
- ```
418
-
419
- **監査ログ**
420
-
421
- ```bash
422
- # 設定変更の履歴を確認
423
- cat .michi/audit.log | jq '.'
424
-
425
- # 最新の変更を表示
426
- cat .michi/audit.log | jq '.' | tail -1
427
- ```
428
-
429
- **セキュリティログ**
430
-
431
- ```bash
432
- # セキュリティイベントを確認
433
- cat ~/.michi/security.log | jq '.'
434
- ```
435
-
436
- ### C.4 デバッグモード
437
-
438
- **環境変数でデバッグログを有効化**
439
-
440
- ```bash
441
- # デバッグログを有効化
442
- export MICHI_DEBUG=true
443
-
444
- # コマンド実行
445
- michi config:validate
446
-
447
- # 詳細ログが出力される
448
- ```
449
-
450
- ### C.5 サポート
451
-
452
- 問題が解決しない場合は、以下の情報とともに GitHub Issues で報告してください:
453
-
454
- 1. **環境情報**
455
- ```bash
456
- michi --version
457
- node --version
458
- npm --version
459
- uname -a
460
- ```
461
-
462
- 2. **エラーメッセージ全文**
463
-
464
- 3. **再現手順**
465
-
466
- 4. **設定ファイル**(機密情報は削除してください)
467
-
468
- ---
469
-
470
- ## 付録 D: 設定例集
471
-
472
- 実際のプロジェクトでの設定例です。
473
-
474
- ### D.1 シンプルな構成
475
-
476
- **~/.michi/.env**
477
-
478
- ```bash
479
- # 組織共通設定
480
- CONFLUENCE_URL=https://mycompany.atlassian.net
481
- CONFLUENCE_USERNAME=developer@mycompany.com
482
- CONFLUENCE_API_TOKEN=your-api-token-here
483
-
484
- JIRA_URL=https://mycompany.atlassian.net
485
- JIRA_USERNAME=developer@mycompany.com
486
- JIRA_API_TOKEN=your-api-token-here
487
-
488
- GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
489
- GITHUB_USERNAME=myusername
490
- GITHUB_EMAIL=developer@mycompany.com
491
- GITHUB_ORG=mycompany
492
- ```
493
-
494
- **.michi/project.json**
495
-
496
- ```json
497
- {
498
- "projectId": "web-app",
499
- "repository": "https://github.com/mycompany/web-app.git"
500
- }
501
- ```
502
-
503
- **.env**
504
-
505
- ```bash
506
- # プロジェクト固有の設定(なし)
507
- ```
508
-
509
- ### D.2 複雑な構成
510
-
511
- **~/.michi/.env**
512
-
513
- ```bash
514
- # 組織共通設定
515
- CONFLUENCE_URL=https://mycompany.atlassian.net
516
- CONFLUENCE_USERNAME=developer@mycompany.com
517
- CONFLUENCE_API_TOKEN=your-api-token-here
518
- CONFLUENCE_SPACE=DEV
519
-
520
- JIRA_URL=https://mycompany.atlassian.net
521
- JIRA_USERNAME=developer@mycompany.com
522
- JIRA_API_TOKEN=your-api-token-here
523
-
524
- GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
525
- GITHUB_USERNAME=myusername
526
- GITHUB_EMAIL=developer@mycompany.com
527
- GITHUB_ORG=mycompany
528
- ```
529
-
530
- **.michi/config.json**
531
-
532
- ```json
533
- {
534
- "confluence": {
535
- "pageCreationGranularity": "by-section",
536
- "pageTitleFormat": "[Web App] {featureName}",
537
- "hierarchy": {
538
- "mode": "nested",
539
- "parentPageTitle": "[{projectName}] {featureName}"
540
- }
541
- },
542
- "jira": {
543
- "createEpic": true,
544
- "storyCreationGranularity": "by-phase",
545
- "selectedPhases": ["implementation", "testing"],
546
- "storyPoints": "auto"
547
- },
548
- "workflow": {
549
- "enabledPhases": ["requirements", "design", "tasks"],
550
- "approvalGates": {
551
- "requirements": ["pm", "architect"],
552
- "design": ["architect", "tech-lead"],
553
- "release": ["pm", "director"]
554
- }
555
- }
556
- }
557
- ```
558
-
559
- **.michi/project.json**
560
-
561
- ```json
562
- {
563
- "projectId": "web-app",
564
- "repository": "https://github.com/mycompany/web-app.git"
565
- }
566
- ```
567
-
568
- **.env**
569
-
570
- ```bash
571
- # プロジェクト固有の Confluence スペース
572
- CONFLUENCE_SPACE=WEBAPP
573
-
574
- # プロジェクト固有の JIRA プロジェクト
575
- JIRA_PROJECT=WEB
576
- ```
577
-
578
- ### D.3 マルチ環境構成
579
-
580
- 本番環境と開発環境で異なる設定を使用する例:
581
-
582
- **~/.michi/.env** (共通)
583
-
584
- ```bash
585
- GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
586
- GITHUB_USERNAME=myusername
587
- GITHUB_EMAIL=developer@mycompany.com
588
- GITHUB_ORG=mycompany
589
- ```
590
-
591
- **.env.development**
592
-
593
- ```bash
594
- CONFLUENCE_URL=https://dev.atlassian.net
595
- CONFLUENCE_SPACE=DEV
596
- JIRA_URL=https://dev.atlassian.net
597
- JIRA_PROJECT=DEV
598
- ```
599
-
600
- **.env.production**
601
-
602
- ```bash
603
- CONFLUENCE_URL=https://prod.atlassian.net
604
- CONFLUENCE_SPACE=PROD
605
- JIRA_URL=https://prod.atlassian.net
606
- JIRA_PROJECT=PROD
607
- ```
608
-
609
- **使用方法**:
610
-
611
- ```bash
612
- # 開発環境
613
- cp .env.development .env
614
- michi confluence:sync my-feature
615
-
616
- # 本番環境
617
- cp .env.production .env
618
- michi confluence:sync my-feature
619
- ```
620
-
621
- ---
622
-
623
- ## 付録 E: 移行チェックリスト
624
-
625
- v0.4.0 から v0.5.0 への移行時に確認すべき項目のチェックリストです。
626
-
627
- ### E.1 移行前の準備
628
-
629
- - [ ] 現在の Michi バージョンを確認: `michi --version`
630
- - [ ] すべての変更をコミット: `git status` で確認
631
- - [ ] バックアップを作成
632
- - [ ] `.michi/` ディレクトリ
633
- - [ ] `.env` ファイル
634
- - [ ] `project.json` ファイル
635
-
636
- ### E.2 アップグレード
637
-
638
- - [ ] Michi を最新版にアップグレード: `npm install -g @sk8metal/michi-cli@latest`
639
- - [ ] バージョンを確認: `michi --version` が v0.5.0 以上であること
640
-
641
- ### E.3 グローバル設定の作成
642
-
643
- - [ ] グローバル設定ディレクトリを作成: `mkdir -p ~/.michi`
644
- - [ ] グローバル .env を作成: `touch ~/.michi/.env`
645
- - [ ] パーミッションを設定: `chmod 600 ~/.michi/.env`
646
- - [ ] 認証情報をグローバル .env に記入
647
- - [ ] CONFLUENCE_URL
648
- - [ ] CONFLUENCE_USERNAME
649
- - [ ] CONFLUENCE_API_TOKEN
650
- - [ ] JIRA_URL
651
- - [ ] JIRA_USERNAME
652
- - [ ] JIRA_API_TOKEN
653
- - [ ] GITHUB_TOKEN
654
- - [ ] GITHUB_USERNAME
655
- - [ ] GITHUB_EMAIL
656
- - [ ] GITHUB_ORG
657
-
658
- ### E.4 プロジェクトごとの移行
659
-
660
- 各プロジェクトで以下を実行:
661
-
662
- - [ ] プロジェクトディレクトリに移動
663
- - [ ] 移行を実行: `michi migrate`
664
- - または、最初にドライランで確認: `michi migrate --dry-run`
665
- - [ ] バックアップが作成されたことを確認: `ls .michi-backup-*`
666
- - [ ] グローバル設定が作成されたことを確認: `ls ~/.michi/.env`
667
- - [ ] プロジェクト .env から組織設定が削除されたことを確認
668
- - [ ] `grep CONFLUENCE_URL .env` が何も返さない
669
- - [ ] `grep GITHUB_TOKEN .env` が何も返さない
670
- - [ ] project.json に repository が追加されたことを確認
671
- - [ ] `cat .michi/project.json | grep repository`
672
-
673
- ### E.5 動作確認
674
-
675
- - [ ] 設定のバリデーション: `michi config:validate`
676
- - [ ] Confluence同期テスト: `michi confluence:sync test-feature --dry-run`
677
- - [ ] JIRA同期テスト: `michi jira:sync test-feature --dry-run`
678
- - [ ] GitHub PRテスト: `michi github:pr --info`
679
-
680
- ### E.6 クリーンアップ
681
-
682
- - [ ] バックアップが不要なら削除: `rm -rf .michi-backup-*`
683
- - [ ] 古い .env.backup が不要なら削除: `rm .env.backup`
684
- - [ ] .gitignore に機密ファイルが追加されていることを確認
685
- - [ ] `.env`
686
- - [ ] `.michi-backup-*/`
687
- - [ ] `.michi/migration.log`
688
-
689
- ### E.7 ドキュメント更新
690
-
691
- - [ ] README に新しい設定方法を記載
692
- - [ ] チームメンバーに移行方法を共有
693
- - [ ] CI/CD パイプラインの更新(必要な場合)
694
-
695
- ---
696
-
697
- ## まとめ
698
-
699
- この設計ドキュメントでは、Michiプロジェクトの設定統一について詳細に説明しました。
700
-
701
- ### 主要な変更点
702
-
703
- 1. **3層設定階層**: グローバル → プロジェクト → 環境の3層で設定を管理
704
- 2. **グローバル設定**: `~/.michi/.env` で組織共通の認証情報を一元管理
705
- 3. **リポジトリURL統一**: `GITHUB_REPO` を廃止し、`project.json.repository` に統一
706
- 4. **コマンド統一**: `setup-existing` を廃止し、`michi init --existing` に統一
707
- 5. **自動移行ツール**: `michi migrate` で既存プロジェクトを簡単に移行
708
-
709
- ### 次のステップ
710
-
711
- 1. **v0.5.0 リリース**: このドキュメントに基づいて実装
712
- 2. **ユーザーフィードバック収集**: 実際の使用感を確認
713
- 3. **v0.6.0 準備**: 非推奨機能の削除計画
714
- 4. **長期計画**: マルチ組織サポート、暗号化、クラウド統合
715
-
716
- ### 貢献
717
-
718
- このプロジェクトへの貢献を歓迎します:
719
-
720
- - **バグレポート**: GitHub Issues
721
- - **機能リクエスト**: GitHub Discussions
722
- - **コード貢献**: Pull Requests
723
- - **ドキュメント改善**: Pull Requests
724
-
725
- ---
726
-
727
- **Document Version**: 1.0.0
728
- **Last Updated**: 2025-01-12
729
- **Authors**: Michi Development Team
730
- **Status**: Final Draft
731
-
732
- ---
733
-