@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,583 +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
|
-
## 4. 解決策の提案
|
|
11
|
-
|
|
12
|
-
### 4.1 3層の設定階層
|
|
13
|
-
|
|
14
|
-
新しいアーキテクチャでは、設定を3つのレイヤーに分離します:
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
Layer 1: グローバル設定 (~/.michi/)
|
|
18
|
-
├─ config.json - Confluence/JIRA/ワークフロー設定
|
|
19
|
-
└─ .env - 認証情報・組織共通設定
|
|
20
|
-
↓ (低優先度)
|
|
21
|
-
|
|
22
|
-
Layer 2: プロジェクト設定 (.michi/)
|
|
23
|
-
└─ config.json - プロジェクト固有のオーバーライド(optional)
|
|
24
|
-
↓ (中優先度)
|
|
25
|
-
|
|
26
|
-
Layer 3: プロジェクトメタデータ (.kiro/, .env)
|
|
27
|
-
├─ .kiro/project.json - projectId, projectName, jiraProjectKey
|
|
28
|
-
└─ .env - プロジェクト固有の環境変数のみ
|
|
29
|
-
↓ (高優先度)
|
|
30
|
-
|
|
31
|
-
[マージされた設定]
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**利点:**
|
|
35
|
-
1. **明確な階層**: どのレベルで設定を管理すべきか明確
|
|
36
|
-
2. **設定の共有**: グローバル設定は全プロジェクトで自動的に共有
|
|
37
|
-
3. **柔軟なオーバーライド**: プロジェクト固有の要件にも対応可能
|
|
38
|
-
|
|
39
|
-
### 4.2 設定項目の再分類
|
|
40
|
-
|
|
41
|
-
**Category A: 組織レベル (グローバル設定)**
|
|
42
|
-
|
|
43
|
-
| 項目 | ファイル | 説明 |
|
|
44
|
-
|------|---------|------|
|
|
45
|
-
| `ATLASSIAN_URL` | `~/.michi/.env` | AtlassianベースURL |
|
|
46
|
-
| `ATLASSIAN_EMAIL` | `~/.michi/.env` | Atlassian認証用メールアドレス |
|
|
47
|
-
| `ATLASSIAN_API_TOKEN` | `~/.michi/.env` | Atlassian APIトークン |
|
|
48
|
-
| `GITHUB_ORG` | `~/.michi/.env` | GitHub組織名 |
|
|
49
|
-
| `GITHUB_TOKEN` | `~/.michi/.env` | GitHubアクセストークン |
|
|
50
|
-
| `CONFLUENCE_PRD_SPACE` | `~/.michi/.env` | 要件定義書スペース |
|
|
51
|
-
| `CONFLUENCE_QA_SPACE` | `~/.michi/.env` | テスト仕様書スペース |
|
|
52
|
-
| `CONFLUENCE_RELEASE_SPACE` | `~/.michi/.env` | リリースノートスペース |
|
|
53
|
-
| `JIRA_ISSUE_TYPE_STORY` | `~/.michi/.env` | Story Issue Type ID |
|
|
54
|
-
| `JIRA_ISSUE_TYPE_SUBTASK` | `~/.michi/.env` | Subtask Issue Type ID |
|
|
55
|
-
| `confluence.*` | `~/.michi/config.json` | Confluence設定(pageCreationGranularity等) |
|
|
56
|
-
| `jira.*` | `~/.michi/config.json` | JIRA設定(createEpic等) |
|
|
57
|
-
| `workflow.*` | `~/.michi/config.json` | ワークフロー設定 |
|
|
58
|
-
|
|
59
|
-
**Category B: プロジェクトレベル (プロジェクト設定)**
|
|
60
|
-
|
|
61
|
-
| 項目 | ファイル | 説明 |
|
|
62
|
-
|------|---------|------|
|
|
63
|
-
| `projectId` | `.kiro/project.json` | プロジェクトID |
|
|
64
|
-
| `projectName` | `.kiro/project.json` | プロジェクト名 |
|
|
65
|
-
| `jiraProjectKey` | `.kiro/project.json` | JIRAプロジェクトキー |
|
|
66
|
-
| `JIRA_PROJECT_KEYS` | `.env` | JIRAプロジェクトキー |
|
|
67
|
-
| `language` | `.kiro/project.json` | ドキュメント言語 |
|
|
68
|
-
| `confluenceLabels` | `.kiro/project.json` | Confluenceラベル |
|
|
69
|
-
| `repository` | `.kiro/project.json` | リポジトリURL(ConfigLoaderが自動的に org/repo 形式に変換) |
|
|
70
|
-
| `description` | `.kiro/project.json` | プロジェクト説明 |
|
|
71
|
-
| `confluence.*` | `.michi/config.json` (optional) | プロジェクト固有のオーバーライド |
|
|
72
|
-
| `jira.*` | `.michi/config.json` (optional) | プロジェクト固有のオーバーライド |
|
|
73
|
-
| `workflow.*` | `.michi/config.json` (optional) | プロジェクト固有のオーバーライド |
|
|
74
|
-
|
|
75
|
-
**注**: `repository` から `org/repo` 形式が必要な場合、ConfigLoaderが自動的にパースして提供します。
|
|
76
|
-
|
|
77
|
-
### 4.3 コマンド統一案
|
|
78
|
-
|
|
79
|
-
**新しいコマンド構成:**
|
|
80
|
-
|
|
81
|
-
1. **`michi config:global`** (初回のみ、組織で一度)
|
|
82
|
-
- ~/.michi/config.json 作成
|
|
83
|
-
- ~/.michi/.env 作成(認証情報を安全に保存)
|
|
84
|
-
- 全プロジェクトで共通の設定を一元管理
|
|
85
|
-
|
|
86
|
-
2. **`michi init`** (新規・既存プロジェクト統一)
|
|
87
|
-
- `--existing` フラグで既存プロジェクトモードを切り替え
|
|
88
|
-
- 自動検出機能により、既存プロジェクトを自動判別
|
|
89
|
-
- プロジェクトメタデータのみ対話的に取得
|
|
90
|
-
- グローバル設定を自動参照
|
|
91
|
-
|
|
92
|
-
3. **`michi migrate`** (既存ユーザー向け)
|
|
93
|
-
- 既存の .env を新形式に自動変換
|
|
94
|
-
- バックアップを作成して安全に移行
|
|
95
|
-
|
|
96
|
-
4. **`setup-existing` の即時非推奨化**
|
|
97
|
-
- v0.5.0以降、setup-existing は警告を表示して `michi init --existing` に委譲
|
|
98
|
-
- 完全な後方互換性を維持しつつ、新しいコマンドへの移行を促す
|
|
99
|
-
- コマンド実行時に明確な移行メッセージを表示
|
|
100
|
-
|
|
101
|
-
**michi init vs michi init --existing の違い:**
|
|
102
|
-
|
|
103
|
-
| 項目 | `michi init` | `michi init --existing` |
|
|
104
|
-
|------|-------------|------------------------|
|
|
105
|
-
| **用途** | 新規プロジェクトの作成 | 既存プロジェクトにMichiを追加 |
|
|
106
|
-
| **プロジェクトID** | 対話的に入力を要求 | ディレクトリ名から自動生成 |
|
|
107
|
-
| **リポジトリURL** | Git設定から取得、なければ対話的入力 | Git設定から取得(必須) |
|
|
108
|
-
| **.gitディレクトリ** | なくてもOK(警告のみ) | 必須(なければエラー) |
|
|
109
|
-
| **既存ファイルの扱い** | .envが存在する場合は警告 | .envが存在する場合はマージ |
|
|
110
|
-
| **テンプレート** | すべてのテンプレートをコピー | 必要なテンプレートのみ追加 |
|
|
111
|
-
| **自動検出** | 既存プロジェクトを検出した場合、--existing モードを提案 | - |
|
|
112
|
-
|
|
113
|
-
**プロジェクトID自動生成の具体例:**
|
|
114
|
-
|
|
115
|
-
`michi init --existing` を実行した際、プロジェクトIDはカレントディレクトリ名から自動生成されます:
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# 例1: Node.jsプロジェクト
|
|
119
|
-
$ pwd
|
|
120
|
-
/Users/username/Work/git/my-awesome-project
|
|
121
|
-
|
|
122
|
-
$ michi init --existing
|
|
123
|
-
# → projectId: "my-awesome-project" として自動設定
|
|
124
|
-
|
|
125
|
-
# 例2: Javaプロジェクト
|
|
126
|
-
$ pwd
|
|
127
|
-
/home/developer/projects/ecommerce-api
|
|
128
|
-
|
|
129
|
-
$ michi init --existing
|
|
130
|
-
# → projectId: "ecommerce-api" として自動設定
|
|
131
|
-
|
|
132
|
-
# 例3: PHPプロジェクト
|
|
133
|
-
$ pwd
|
|
134
|
-
/var/www/customer-portal
|
|
135
|
-
|
|
136
|
-
$ michi init --existing
|
|
137
|
-
# → projectId: "customer-portal" として自動設定
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**注**: 自動生成された projectId は、対話的プロンプトで確認され、必要に応じて変更可能です。
|
|
141
|
-
|
|
142
|
-
**自動検出ロジック:**
|
|
143
|
-
|
|
144
|
-
`michi init` 実行時、以下のファイル/ディレクトリが存在する場合、自動的に既存プロジェクトと判断:
|
|
145
|
-
- `.git/` ディレクトリ
|
|
146
|
-
- `package.json` (Node.js)
|
|
147
|
-
- `pom.xml` または `build.gradle` (Java)
|
|
148
|
-
- `composer.json` (PHP)
|
|
149
|
-
|
|
150
|
-
検出された場合、以下のプロンプトを表示:
|
|
151
|
-
```
|
|
152
|
-
⚠️ 既存のプロジェクトが検出されました
|
|
153
|
-
既存プロジェクトモードで初期化しますか? (Y/n)
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**使い方のシンプル化:**
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
# 1. グローバル設定(初回のみ、組織で一度)
|
|
160
|
-
michi config:global
|
|
161
|
-
|
|
162
|
-
# 2a. 新規プロジェクト初期化
|
|
163
|
-
cd /path/to/new-project
|
|
164
|
-
michi init
|
|
165
|
-
|
|
166
|
-
# 2b. 既存プロジェクトにMichiを追加
|
|
167
|
-
cd /path/to/existing-project
|
|
168
|
-
michi init --existing
|
|
169
|
-
# または、自動検出により michi init でもOK(確認プロンプトが表示される)
|
|
170
|
-
|
|
171
|
-
# 3. (非推奨) 既存の setup-existing も引き続き動作(警告付き)
|
|
172
|
-
npx @sk8metal/michi-cli setup-existing
|
|
173
|
-
# → 警告: "このコマンドは非推奨です。michi init --existing を使用してください"
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## 5. 新アーキテクチャ
|
|
179
|
-
|
|
180
|
-
### 5.1 ファイル構成
|
|
181
|
-
|
|
182
|
-
```
|
|
183
|
-
~/.michi/ # グローバル設定ディレクトリ
|
|
184
|
-
├── config.json # Confluence/JIRA/ワークフロー設定
|
|
185
|
-
└── .env # 認証情報・組織共通設定 (chmod 600)
|
|
186
|
-
|
|
187
|
-
<project-root>/
|
|
188
|
-
├── .michi/
|
|
189
|
-
│ └── config.json # プロジェクト固有のオーバーライド(optional)
|
|
190
|
-
├── .kiro/
|
|
191
|
-
│ ├── project.json # プロジェクトメタデータ
|
|
192
|
-
│ ├── settings/
|
|
193
|
-
│ ├── steering/
|
|
194
|
-
│ └── specs/
|
|
195
|
-
└── .env # プロジェクト固有の環境変数 (chmod 600)
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### 5.2 各ファイルの内容例
|
|
199
|
-
|
|
200
|
-
#### 5.2.1 `~/.michi/config.json`
|
|
201
|
-
|
|
202
|
-
```json
|
|
203
|
-
{
|
|
204
|
-
"version": "0.5.0",
|
|
205
|
-
"confluence": {
|
|
206
|
-
"pageCreationGranularity": "single",
|
|
207
|
-
"pageTitleFormat": "{projectName} - {featureName}",
|
|
208
|
-
"hierarchy": {
|
|
209
|
-
"mode": "simple",
|
|
210
|
-
"parentPageTitle": "[{projectName}] {featureName}"
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
"jira": {
|
|
214
|
-
"createEpic": true,
|
|
215
|
-
"storyCreationGranularity": "all",
|
|
216
|
-
"storyPoints": "auto"
|
|
217
|
-
},
|
|
218
|
-
"workflow": {
|
|
219
|
-
"enabledPhases": ["requirements", "design", "tasks"],
|
|
220
|
-
"approvalGates": {
|
|
221
|
-
"requirements": ["pm", "director"],
|
|
222
|
-
"design": ["architect", "director"],
|
|
223
|
-
"release": ["sm", "director"]
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
#### 5.2.2 `~/.michi/.env`
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
# Atlassian認証
|
|
233
|
-
ATLASSIAN_URL=https://your-org.atlassian.net
|
|
234
|
-
ATLASSIAN_EMAIL=your-email@company.com
|
|
235
|
-
ATLASSIAN_API_TOKEN=your-api-token
|
|
236
|
-
|
|
237
|
-
# GitHub認証
|
|
238
|
-
GITHUB_ORG=your-org
|
|
239
|
-
GITHUB_TOKEN=ghp_xxx
|
|
240
|
-
|
|
241
|
-
# Confluence共有スペース
|
|
242
|
-
CONFLUENCE_PRD_SPACE=PRD
|
|
243
|
-
CONFLUENCE_QA_SPACE=QA
|
|
244
|
-
CONFLUENCE_RELEASE_SPACE=RELEASE
|
|
245
|
-
|
|
246
|
-
# JIRA Issue Type IDs(組織固有)
|
|
247
|
-
JIRA_ISSUE_TYPE_STORY=10036
|
|
248
|
-
JIRA_ISSUE_TYPE_SUBTASK=10037
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
#### 5.2.3 `.kiro/project.json`
|
|
252
|
-
|
|
253
|
-
```json
|
|
254
|
-
{
|
|
255
|
-
"projectId": "my-project",
|
|
256
|
-
"projectName": "マイプロジェクト",
|
|
257
|
-
"language": "ja",
|
|
258
|
-
"jiraProjectKey": "MYPRJ",
|
|
259
|
-
"confluenceLabels": ["project:my-project"],
|
|
260
|
-
"status": "active",
|
|
261
|
-
"team": [],
|
|
262
|
-
"stakeholders": ["@企画", "@部長"],
|
|
263
|
-
"repository": "https://github.com/org/my-project",
|
|
264
|
-
"description": "マイプロジェクトの開発"
|
|
265
|
-
}
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
#### 5.2.4 `.env` (新形式)
|
|
269
|
-
|
|
270
|
-
```bash
|
|
271
|
-
# プロジェクト固有の環境変数のみ
|
|
272
|
-
JIRA_PROJECT_KEYS=MYPRJ
|
|
273
|
-
|
|
274
|
-
# (必要に応じて) プロジェクト固有のオーバーライド
|
|
275
|
-
# CONFLUENCE_PRD_SPACE=CUSTOM_PRD
|
|
276
|
-
|
|
277
|
-
# 注: GITHUB_REPO は不要です
|
|
278
|
-
# リポジトリ情報は .kiro/project.json の repository から自動的に抽出されます
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
#### 5.2.5 `.michi/config.json` (optional)
|
|
282
|
-
|
|
283
|
-
```json
|
|
284
|
-
{
|
|
285
|
-
"confluence": {
|
|
286
|
-
"pageCreationGranularity": "by-hierarchy"
|
|
287
|
-
},
|
|
288
|
-
"jira": {
|
|
289
|
-
"storyPoints": "manual"
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
### 5.3 設定の読み込み順序と優先度
|
|
295
|
-
|
|
296
|
-
**読み込み順序(優先度: 低 → 高):**
|
|
297
|
-
|
|
298
|
-
1. `~/.michi/.env` (組織レベルの環境変数)
|
|
299
|
-
2. `~/.michi/config.json` (組織レベルの設定)
|
|
300
|
-
3. `.kiro/project.json` (プロジェクトメタデータ)
|
|
301
|
-
4. `.michi/config.json` (プロジェクト固有のオーバーライド)
|
|
302
|
-
5. `.env` (プロジェクト固有の環境変数)
|
|
303
|
-
|
|
304
|
-
**マージロジック:**
|
|
305
|
-
|
|
306
|
-
- 後に読み込まれた設定が、前の設定を上書き
|
|
307
|
-
- オブジェクトはディープマージ
|
|
308
|
-
- 配列は完全置換(マージしない)
|
|
309
|
-
|
|
310
|
-
**例:**
|
|
311
|
-
|
|
312
|
-
```javascript
|
|
313
|
-
// ~/.michi/config.json
|
|
314
|
-
{
|
|
315
|
-
"confluence": {
|
|
316
|
-
"pageCreationGranularity": "single",
|
|
317
|
-
"pageTitleFormat": "{projectName}"
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// .michi/config.json (プロジェクト固有)
|
|
322
|
-
{
|
|
323
|
-
"confluence": {
|
|
324
|
-
"pageCreationGranularity": "by-hierarchy"
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
// マージ結果
|
|
329
|
-
{
|
|
330
|
-
"confluence": {
|
|
331
|
-
"pageCreationGranularity": "by-hierarchy", // プロジェクト設定で上書き
|
|
332
|
-
"pageTitleFormat": "{projectName}" // グローバル設定を継承
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
### 5.4 各コマンドの新しい動作フロー
|
|
338
|
-
|
|
339
|
-
#### 5.4.1 `michi config:global`
|
|
340
|
-
|
|
341
|
-
```
|
|
342
|
-
[開始]
|
|
343
|
-
↓
|
|
344
|
-
[既存のグローバル設定を確認]
|
|
345
|
-
├─ ~/.michi/config.json の存在確認
|
|
346
|
-
└─ ~/.michi/.env の存在確認
|
|
347
|
-
↓
|
|
348
|
-
[存在する場合]
|
|
349
|
-
↓
|
|
350
|
-
[上書き確認]
|
|
351
|
-
├─ No → [終了]
|
|
352
|
-
└─ Yes → [続行]
|
|
353
|
-
↓
|
|
354
|
-
[対話的に設定を取得]
|
|
355
|
-
├─ Atlassian認証情報
|
|
356
|
-
│ ├─ ATLASSIAN_URL
|
|
357
|
-
│ ├─ ATLASSIAN_EMAIL
|
|
358
|
-
│ └─ ATLASSIAN_API_TOKEN
|
|
359
|
-
├─ GitHub認証情報
|
|
360
|
-
│ ├─ GITHUB_ORG
|
|
361
|
-
│ └─ GITHUB_TOKEN
|
|
362
|
-
├─ Confluenceスペース設定
|
|
363
|
-
│ ├─ CONFLUENCE_PRD_SPACE
|
|
364
|
-
│ ├─ CONFLUENCE_QA_SPACE
|
|
365
|
-
│ └─ CONFLUENCE_RELEASE_SPACE
|
|
366
|
-
├─ JIRA Issue Type IDs
|
|
367
|
-
│ ├─ JIRA_ISSUE_TYPE_STORY
|
|
368
|
-
│ └─ JIRA_ISSUE_TYPE_SUBTASK
|
|
369
|
-
├─ Confluence設定
|
|
370
|
-
│ ├─ pageCreationGranularity
|
|
371
|
-
│ ├─ pageTitleFormat (optional)
|
|
372
|
-
│ └─ hierarchy (optional)
|
|
373
|
-
├─ JIRA設定
|
|
374
|
-
│ ├─ createEpic
|
|
375
|
-
│ ├─ storyCreationGranularity
|
|
376
|
-
│ ├─ selectedPhases (optional)
|
|
377
|
-
│ └─ storyPoints
|
|
378
|
-
└─ ワークフロー設定
|
|
379
|
-
├─ enabledPhases
|
|
380
|
-
└─ approvalGates (optional)
|
|
381
|
-
↓
|
|
382
|
-
[設定内容の確認表示]
|
|
383
|
-
↓
|
|
384
|
-
[保存確認]
|
|
385
|
-
├─ No → [終了]
|
|
386
|
-
└─ Yes → [続行]
|
|
387
|
-
↓
|
|
388
|
-
[~/.michi/ディレクトリ作成]
|
|
389
|
-
↓
|
|
390
|
-
[~/.michi/config.json 保存]
|
|
391
|
-
↓
|
|
392
|
-
[~/.michi/.env 保存]
|
|
393
|
-
└─ chmod 600 (セキュリティ)
|
|
394
|
-
↓
|
|
395
|
-
[バリデーション実行]
|
|
396
|
-
↓
|
|
397
|
-
[完了メッセージ表示]
|
|
398
|
-
├─ 作成されたファイルの一覧
|
|
399
|
-
├─ セキュリティに関する注意事項
|
|
400
|
-
│ └─ ~/.michi/.env と <project>/.env の違いを明記
|
|
401
|
-
└─ 次のステップ(michi init の実行)
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
#### 5.4.2 `michi init`
|
|
405
|
-
|
|
406
|
-
```
|
|
407
|
-
[開始]
|
|
408
|
-
↓
|
|
409
|
-
[オプション解析]
|
|
410
|
-
└─ --existing フラグの有無を確認
|
|
411
|
-
↓
|
|
412
|
-
[グローバル設定の存在確認]
|
|
413
|
-
├─ ~/.michi/config.json
|
|
414
|
-
└─ ~/.michi/.env
|
|
415
|
-
↓
|
|
416
|
-
[グローバル設定がない場合]
|
|
417
|
-
↓
|
|
418
|
-
[警告表示]
|
|
419
|
-
「グローバル設定が未作成です」
|
|
420
|
-
「michi config:global を先に実行することを推奨します」
|
|
421
|
-
「組織共通の認証情報(Atlassian, GitHub)を全プロジェクトで共有できます」
|
|
422
|
-
↓
|
|
423
|
-
[続行確認]
|
|
424
|
-
├─ No → [終了]
|
|
425
|
-
└─ Yes → [後方互換モードで続行]
|
|
426
|
-
↓
|
|
427
|
-
[environment の決定]
|
|
428
|
-
├─ --cursor, --claude 等のフラグをチェック
|
|
429
|
-
├─ 環境変数 (CLAUDE_CODE=1 等) をチェック
|
|
430
|
-
├─ 自動検出を試みる
|
|
431
|
-
└─ 対話的プロンプト (自動検出できない場合)
|
|
432
|
-
↓
|
|
433
|
-
[プロジェクトメタデータの対話的取得]
|
|
434
|
-
├─ projectId
|
|
435
|
-
│ └─ --existing の場合はディレクトリ名を使用
|
|
436
|
-
├─ projectName
|
|
437
|
-
├─ jiraProjectKey
|
|
438
|
-
└─ language (デフォルト: ja)
|
|
439
|
-
↓
|
|
440
|
-
[設定内容の確認表示]
|
|
441
|
-
├─ projectId
|
|
442
|
-
├─ projectName
|
|
443
|
-
├─ jiraProjectKey
|
|
444
|
-
├─ environment
|
|
445
|
-
├─ language
|
|
446
|
-
└─ (グローバル設定が読み込まれることを明示)
|
|
447
|
-
↓
|
|
448
|
-
[続行確認]
|
|
449
|
-
├─ No → [終了]
|
|
450
|
-
└─ Yes → [続行]
|
|
451
|
-
↓
|
|
452
|
-
[リポジトリルートの検出]
|
|
453
|
-
├─ .git ディレクトリを探索
|
|
454
|
-
└─ 見つからない場合は警告(Gitリポジトリでない)
|
|
455
|
-
↓
|
|
456
|
-
[.kiro/ ディレクトリ構造作成]
|
|
457
|
-
├─ .kiro/settings/templates/
|
|
458
|
-
├─ .kiro/steering/
|
|
459
|
-
└─ .kiro/specs/
|
|
460
|
-
↓
|
|
461
|
-
[.kiro/project.json 作成]
|
|
462
|
-
├─ projectId, projectName, jiraProjectKey
|
|
463
|
-
├─ repository URL (git config から取得)
|
|
464
|
-
├─ confluenceLabels (自動生成)
|
|
465
|
-
└─ 他のメタデータ
|
|
466
|
-
↓
|
|
467
|
-
[.env 作成]
|
|
468
|
-
├─ 既存の .env をチェック
|
|
469
|
-
│ └─ 存在する場合: マージ(既存値を優先)
|
|
470
|
-
├─ プロジェクト固有設定のみを追加
|
|
471
|
-
│ ├─ GITHUB_REPO (git config から取得)
|
|
472
|
-
│ └─ JIRA_PROJECT_KEYS
|
|
473
|
-
└─ テンプレートコメントを追加
|
|
474
|
-
↓
|
|
475
|
-
[テンプレート/ルールのコピー]
|
|
476
|
-
├─ 環境別テンプレート
|
|
477
|
-
│ └─ cursor/claude/gemini/codex/cline
|
|
478
|
-
├─ Steeringテンプレート
|
|
479
|
-
├─ Specテンプレート
|
|
480
|
-
└─ cc-sdd オーバーライド
|
|
481
|
-
↓
|
|
482
|
-
[環境別の追加処理]
|
|
483
|
-
├─ Claude環境
|
|
484
|
-
│ └─ スキル/サブエージェントのインストール
|
|
485
|
-
├─ Codex環境
|
|
486
|
-
│ └─ cc-sdd インストールプロンプト
|
|
487
|
-
└─ 他の環境
|
|
488
|
-
└─ 環境固有の処理
|
|
489
|
-
↓
|
|
490
|
-
[.gitignore 更新]
|
|
491
|
-
├─ .env エントリの追加
|
|
492
|
-
└─ 既に含まれている場合はスキップ
|
|
493
|
-
↓
|
|
494
|
-
[バリデーション実行]
|
|
495
|
-
├─ 設定ファイルのスキーマチェック
|
|
496
|
-
├─ 必須ファイルの存在確認
|
|
497
|
-
└─ パーミッションのチェック (.env = 600)
|
|
498
|
-
↓
|
|
499
|
-
[完了メッセージ表示]
|
|
500
|
-
├─ 作成されたファイルの一覧
|
|
501
|
-
├─ 環境別の次のステップ
|
|
502
|
-
└─ ドキュメントへのリンク
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
#### 5.4.3 `michi migrate`
|
|
506
|
-
|
|
507
|
-
```
|
|
508
|
-
[開始]
|
|
509
|
-
↓
|
|
510
|
-
[現在の設定を検出]
|
|
511
|
-
├─ ~/.michi/config.json の存在確認
|
|
512
|
-
├─ ~/.michi/.env の存在確認(新形式)
|
|
513
|
-
├─ ~/.michi/global.env の存在確認(旧形式、マイグレーション対象)
|
|
514
|
-
├─ .michi/config.json の存在確認
|
|
515
|
-
├─ .kiro/project.json の存在確認
|
|
516
|
-
└─ .env の存在確認
|
|
517
|
-
↓
|
|
518
|
-
[検出された設定の表示]
|
|
519
|
-
├─ ✓ ~/.michi/config.json
|
|
520
|
-
├─ ✓ .kiro/project.json
|
|
521
|
-
└─ ✓ .env
|
|
522
|
-
↓
|
|
523
|
-
[移行内容の説明]
|
|
524
|
-
1. .env から組織共通設定を抽出 → ~/.michi/.env
|
|
525
|
-
2. プロジェクト固有設定のみを .env に残す
|
|
526
|
-
3. 既存の ~/.michi/global.env を ~/.michi/.env にリネーム(存在する場合)
|
|
527
|
-
4. 既存の設定ファイルはすべてバックアップを作成
|
|
528
|
-
↓
|
|
529
|
-
[実行確認]
|
|
530
|
-
├─ No → [終了]
|
|
531
|
-
└─ Yes → [続行]
|
|
532
|
-
↓
|
|
533
|
-
[バックアップ作成]
|
|
534
|
-
├─ .michi-backup-YYYYMMDDHHMMSS/ ディレクトリ作成
|
|
535
|
-
├─ 既存の設定ファイルをコピー
|
|
536
|
-
└─ 成功メッセージ表示
|
|
537
|
-
↓
|
|
538
|
-
[.env を分析]
|
|
539
|
-
├─ 全環境変数を読み込み
|
|
540
|
-
├─ 組織共通設定を抽出
|
|
541
|
-
│ └─ ATLASSIAN_*, GITHUB_ORG, GITHUB_TOKEN, CONFLUENCE_*, JIRA_ISSUE_TYPE_*
|
|
542
|
-
└─ プロジェクト固有設定を抽出
|
|
543
|
-
└─ GITHUB_REPO, JIRA_PROJECT_KEYS
|
|
544
|
-
↓
|
|
545
|
-
[組織共通設定の項目数を表示]
|
|
546
|
-
└─ "✓ 組織共通設定: N 項目"
|
|
547
|
-
↓
|
|
548
|
-
[プロジェクト固有設定の項目数を表示]
|
|
549
|
-
└─ "✓ プロジェクト固有設定: M 項目"
|
|
550
|
-
↓
|
|
551
|
-
[旧形式からのマイグレーション]
|
|
552
|
-
├─ ~/.michi/global.env が存在する場合
|
|
553
|
-
│ └─ ~/.michi/.env にリネーム
|
|
554
|
-
└─ 成功メッセージ表示
|
|
555
|
-
↓
|
|
556
|
-
[~/.michi/.env 作成または更新]
|
|
557
|
-
├─ 既存の ~/.michi/.env をチェック
|
|
558
|
-
│ ├─ 存在する場合: 上書き確認
|
|
559
|
-
│ └─ 存在しない場合: 新規作成
|
|
560
|
-
├─ 組織共通設定を書き込み
|
|
561
|
-
├─ chmod 600 (セキュリティ)
|
|
562
|
-
└─ 成功メッセージ表示
|
|
563
|
-
↓
|
|
564
|
-
[.env を更新]
|
|
565
|
-
├─ プロジェクト固有設定のみを書き込み
|
|
566
|
-
├─ コメントを追加
|
|
567
|
-
│ └─ 「組織共通設定は ~/.michi/.env を参照」
|
|
568
|
-
│ └─ 「このファイルにはプロジェクト固有の設定のみを記載してください」
|
|
569
|
-
└─ 成功メッセージ表示
|
|
570
|
-
↓
|
|
571
|
-
[バリデーション実行]
|
|
572
|
-
├─ ConfigLoader で設定を読み込み
|
|
573
|
-
├─ 必須項目のチェック
|
|
574
|
-
└─ エラーがあれば表示
|
|
575
|
-
↓
|
|
576
|
-
[完了メッセージ表示]
|
|
577
|
-
├─ 変更内容のサマリー
|
|
578
|
-
├─ バックアップの場所
|
|
579
|
-
└─ 次のステップ
|
|
580
|
-
```
|
|
581
|
-
|
|
582
|
-
---
|
|
583
|
-
|