@sk8metal/michi-cli 0.10.1 → 0.11.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.
- package/README.md +77 -847
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +379 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/ai-tools.md +311 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +756 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +543 -0
- package/package.json +1 -1
- package/scripts/phase-runner.ts +1 -1
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/codex/AGENTS.override.md +1 -1
- package/templates/codex/rules/README.md +2 -2
- package/templates/cursor/commands/michi/spec-tasks.md +117 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
|
@@ -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
|
-
|