@sk8metal/michi-cli 0.8.7 → 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.
Files changed (116) hide show
  1. package/CHANGELOG.md +70 -1
  2. package/README.md +77 -847
  3. package/dist/scripts/config/config-schema.d.ts +3 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js +18 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -1
  7. package/dist/scripts/phase-runner.js +1 -1
  8. package/dist/scripts/phase-runner.js.map +1 -1
  9. package/dist/scripts/utils/multi-repo-validator.d.ts +38 -1
  10. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  11. package/dist/scripts/utils/multi-repo-validator.js +166 -1
  12. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  13. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  14. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  15. package/docs/README.md +20 -83
  16. package/docs/getting-started/configuration.md +379 -0
  17. package/docs/getting-started/installation.md +59 -0
  18. package/docs/getting-started/quick-start.md +76 -0
  19. package/docs/guides/ai-tools.md +311 -0
  20. package/docs/guides/atlassian-integration.md +116 -0
  21. package/docs/guides/claude-code.md +155 -0
  22. package/docs/guides/multi-repo.md +117 -0
  23. package/docs/guides/workflow.md +382 -0
  24. package/docs/reference/ai-commands.md +92 -0
  25. package/docs/reference/cli.md +756 -0
  26. package/docs/reference/environment-variables.md +192 -0
  27. package/docs/troubleshooting.md +543 -0
  28. package/package.json +1 -1
  29. package/scripts/__tests__/multi-repo-config-schema.test.ts +106 -0
  30. package/scripts/__tests__/multi-repo-validator.test.ts +229 -1
  31. package/scripts/config/config-schema.ts +20 -0
  32. package/scripts/phase-runner.ts +1 -1
  33. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  34. package/scripts/utils/multi-repo-validator.ts +210 -1
  35. package/scripts/utils/tasks-format-validator.ts +3 -3
  36. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  37. package/templates/claude/agents/mermaid-validator/AGENT.md +257 -0
  38. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  39. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  40. package/templates/claude/commands/michi/spec-design.md +2 -2
  41. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  42. package/templates/claude/commands/michi/test-planning.md +1 -1
  43. package/templates/claude/commands/michi/validate-design.md +3 -3
  44. package/templates/claude/commands/michi-multi-repo/impl-all.md +293 -0
  45. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +284 -0
  46. package/templates/claude/commands/michi-multi-repo/spec-design.md +66 -3
  47. package/templates/claude/commands/michi-multi-repo/spec-review.md +261 -0
  48. package/templates/claude/skills/mermaid-validator/SKILL.md +261 -0
  49. package/templates/claude-agent/agents/cross-repo-reviewer.md +194 -0
  50. package/templates/claude-agent/agents/repo-spec-executor.md +113 -0
  51. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  52. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  53. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  54. package/templates/codex/AGENTS.override.md +1 -1
  55. package/templates/codex/rules/README.md +2 -2
  56. package/templates/cursor/commands/michi/spec-tasks.md +117 -0
  57. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  58. package/docs/context.md +0 -59
  59. package/docs/michi-development/contributing/development.md +0 -341
  60. package/docs/michi-development/contributing/release.md +0 -365
  61. package/docs/michi-development/design/config-unification.md +0 -733
  62. package/docs/michi-development/design/design-config-current-state.md +0 -330
  63. package/docs/michi-development/design/design-config-implementation.md +0 -628
  64. package/docs/michi-development/design/design-config-migration.md +0 -952
  65. package/docs/michi-development/design/design-config-security.md +0 -771
  66. package/docs/michi-development/design/design-config-solution.md +0 -583
  67. package/docs/michi-development/design/design-config-testing.md +0 -892
  68. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  69. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  70. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  71. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  72. package/docs/michi-development/testing-strategy.md +0 -87
  73. package/docs/plan.md +0 -275
  74. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  75. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  76. package/docs/user-guide/getting-started/quick-start.md +0 -212
  77. package/docs/user-guide/getting-started/setup.md +0 -819
  78. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  79. package/docs/user-guide/guides/customization.md +0 -537
  80. package/docs/user-guide/guides/internationalization.md +0 -540
  81. package/docs/user-guide/guides/migration-guide.md +0 -138
  82. package/docs/user-guide/guides/multi-project.md +0 -368
  83. package/docs/user-guide/guides/multi-repo-guide.md +0 -1147
  84. package/docs/user-guide/guides/phase-automation.md +0 -419
  85. package/docs/user-guide/guides/workflow.md +0 -584
  86. package/docs/user-guide/hands-on/README.md +0 -142
  87. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  88. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  89. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  90. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  91. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  92. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -909
  93. package/docs/user-guide/reference/config.md +0 -589
  94. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  95. package/docs/user-guide/reference/quick-reference.md +0 -297
  96. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  97. package/docs/user-guide/reference/tasks-template.md +0 -550
  98. package/docs/user-guide/release/ci-setup-java.md +0 -114
  99. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  100. package/docs/user-guide/release/ci-setup-php.md +0 -102
  101. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  102. package/docs/user-guide/release/ci-setup.md +0 -188
  103. package/docs/user-guide/release/release-flow.md +0 -476
  104. package/docs/user-guide/templates/test-specs/README.md +0 -173
  105. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  106. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  107. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  108. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  109. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  110. package/docs/user-guide/testing/integration-tests.md +0 -312
  111. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  112. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  113. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  114. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  115. package/docs/user-guide/testing-strategy.md +0 -185
  116. package/docs/verification-guide.md +0 -518
@@ -1,330 +0,0 @@
1
- # Michi 設定統合設計書 - 現状分析と問題点
2
-
3
- **バージョン**: 1.0
4
- **作成日**: 2025-01-11
5
- **ステータス**: Draft echo **親ドキュメント**: [config-unification.md](./config-unification.md)
6
-
7
- ---
8
-
9
- ## 2. 現状分析
10
-
11
- ### 2.1 現在の3つのコマンド
12
-
13
- #### 2.1.1 `michi init` (新規プロジェクト用)
14
-
15
- **対話的に取得する情報:**
16
- - `projectId`: プロジェクトID
17
- - `projectName`: プロジェクト名
18
- - `jiraKey`: JIRAプロジェクトキー
19
- - `environment`: 開発環境 (cursor/claude/gemini/codex/cline)
20
- - `langCode`: ドキュメント言語 (ja/en)
21
-
22
- **作成するファイル:**
23
- - `.kiro/project.json`: プロジェクトメタデータ
24
- - `.env`: 環境変数(テンプレート)
25
- - `.michi/config.json`: ワークフロー設定(グローバル設定から自動コピーまたは対話的作成)
26
- - テンプレート/ルール (--michi-path 指定時)
27
-
28
- **動作フロー:**
29
- ```
30
- [開始]
31
-
32
- [環境を決定] (cursor/claude/etc)
33
-
34
- [対話的プロンプト] (projectId, projectName, jiraKey)
35
-
36
- [確認]
37
-
38
- [.kiro/ ディレクトリ作成]
39
-
40
- [.kiro/project.json 作成]
41
-
42
- [.env テンプレート作成]
43
-
44
- [テンプレート/ルールコピー] (--michi-path 指定時)
45
-
46
- [ワークフロー設定] (.michi/config.json)
47
- ├─ グローバル設定がある場合: 自動コピー
48
- └─ グローバル設定がない場合: 対話的作成 or デフォルト設定
49
-
50
- [完了]
51
- ```
52
-
53
- #### 2.1.2 `npx @sk8metal/michi-cli setup-existing` (既存プロジェクト用)
54
-
55
- **対話的に取得する情報:**
56
- - `projectName`: プロジェクト名
57
- - `jiraKey`: JIRAプロジェクトキー
58
- - `environment`: 開発環境
59
- - `langCode`: ドキュメント言語
60
-
61
- **作成するファイル:**
62
- - `.kiro/project.json`: プロジェクトメタデータ
63
- - `.env`: 環境変数(対話的設定またはテンプレート)
64
- - テンプレート/ルール
65
- - スキル/サブエージェント (Claude環境の場合)
66
-
67
- **動作フロー:**
68
- ```
69
- [開始]
70
-
71
- [環境を決定]
72
-
73
- [対話的プロンプト] (projectName, jiraKey)
74
-
75
- [確認]
76
-
77
- [.kiro/ ディレクトリ作成]
78
-
79
- [.kiro/project.json 作成]
80
-
81
- [Codex環境の場合]
82
- └─ cc-sdd インストールプロンプト
83
-
84
- [テンプレート/ルールコピー]
85
- ├─ 環境別テンプレート
86
- ├─ Steeringテンプレート
87
- ├─ Specテンプレート
88
- └─ cc-sdd オーバーライド
89
-
90
- [.env 対話的設定]
91
- ├─ 既存の .env がある場合: 上書き確認
92
- └─ 新規の場合: 対話的設定 or テンプレート作成
93
-
94
- [.gitignore 更新]
95
-
96
- [スキル/サブエージェントインストール] (Claude環境)
97
-
98
- [バリデーション]
99
-
100
- [完了]
101
- ```
102
-
103
- #### 2.1.3 `npm run config:global` (グローバル設定)
104
-
105
- **対話的に取得する情報:**
106
- - Confluence設定
107
- - `pageCreationGranularity`: ページ作成粒度
108
- - `pageTitleFormat`: ページタイトル形式 (optional)
109
- - `hierarchy`: 階層構造設定 (optional)
110
- - JIRA設定
111
- - `createEpic`: Epic作成有無
112
- - `storyCreationGranularity`: Story作成粒度
113
- - `selectedPhases`: 選択フェーズ (optional)
114
- - `storyPoints`: Story Points設定
115
- - ワークフロー設定
116
- - `enabledPhases`: 有効フェーズ
117
- - `approvalGates`: 承認ゲート (optional)
118
-
119
- **作成するファイル:**
120
- - `~/.michi/config.json`: グローバル設定
121
-
122
- **動作フロー:**
123
- ```
124
- [開始]
125
-
126
- [既存のグローバル設定を確認]
127
- ├─ 存在する場合: 上書き確認
128
- └─ 存在しない場合: 新規作成
129
-
130
- [対話的に設定を取得]
131
- ├─ Confluence設定をカスタマイズするか?
132
- ├─ JIRA設定をカスタマイズするか?
133
- └─ ワークフロー設定をカスタマイズするか?
134
-
135
- [設定内容の確認表示]
136
-
137
- [保存確認]
138
-
139
- [~/.michi/ディレクトリ作成]
140
-
141
- [~/.michi/config.json 保存]
142
-
143
- [バリデーション]
144
-
145
- [完了]
146
- ```
147
-
148
- ### 2.2 設定ファイルと設定項目
149
-
150
- #### 2.2.1 設定ファイルの一覧
151
-
152
- | ファイル | パス | 役割 | 作成コマンド |
153
- |---------|------|------|------------|
154
- | **グローバル設定** | `~/.michi/config.json` | Confluence/JIRA/ワークフロー設定 | `config:global` |
155
- | **プロジェクト設定** | `.michi/config.json` | プロジェクト固有のオーバーライド | `init` (optional) |
156
- | **プロジェクトメタデータ** | `.kiro/project.json` | プロジェクトID、名前、JIRA キーなど | `init`, `setup-existing` |
157
- | **環境変数** | `.env` | 認証情報、プロジェクト固有の環境変数 | `init`, `setup-existing` |
158
-
159
- #### 2.2.2 設定項目の完全一覧 (51項目)
160
-
161
- **A. ~/.michi/config.json (15項目)**
162
-
163
- | 項目 | 型 | 必須 | デフォルト | 説明 |
164
- |------|-----|------|-----------|------|
165
- | `confluence.pageCreationGranularity` | enum | No | `'single'` | ページ作成粒度 (`'single'` \| `'by-section'` \| `'by-hierarchy'` \| `'manual'`) |
166
- | `confluence.pageTitleFormat` | string | No | - | ページタイトル形式 (例: `{projectName} - {featureName}`) |
167
- | `confluence.hierarchy.mode` | enum | No | - | 階層モード (`'simple'` \| `'nested'`) |
168
- | `confluence.hierarchy.parentPageTitle` | string | No | - | 親ページタイトル形式 |
169
- | `confluence.hierarchy.structure` | object | No | - | カスタム階層構造 |
170
- | `jira.createEpic` | boolean | No | `true` | Epic作成有無 |
171
- | `jira.storyCreationGranularity` | enum | No | `'all'` | Story作成粒度 (`'all'` \| `'by-phase'` \| `'selected-phases'`) |
172
- | `jira.selectedPhases` | array | No | - | 選択フェーズ(`storyCreationGranularity='selected-phases'` の場合) |
173
- | `jira.storyPoints` | enum | No | `'auto'` | Story Points設定 (`'auto'` \| `'manual'` \| `'disabled'`) |
174
- | `workflow.enabledPhases` | array | Yes | `['requirements', 'design', 'tasks']` | 有効フェーズ |
175
- | `workflow.approvalGates.requirements` | array | No | - | 要件定義フェーズの承認者 |
176
- | `workflow.approvalGates.design` | array | No | - | 設計フェーズの承認者 |
177
- | `workflow.approvalGates.release` | array | No | - | リリースフェーズの承認者 |
178
-
179
- **B. .kiro/project.json (10項目)**
180
-
181
- | 項目 | 型 | 必須 | 例 | 説明 |
182
- |------|-----|------|-----|------|
183
- | `projectId` | string | Yes | `'my-project'` | プロジェクトID |
184
- | `projectName` | string | Yes | `'マイプロジェクト'` | プロジェクト名 |
185
- | `language` | enum | Yes | `'ja'` | ドキュメント言語 (`'ja'` \| `'en'`) |
186
- | `jiraProjectKey` | string | Yes | `'MYPRJ'` | JIRAプロジェクトキー |
187
- | `confluenceLabels` | array | Yes | `['project:my-project']` | Confluenceラベル |
188
- | `status` | string | Yes | `'active'` | プロジェクトステータス |
189
- | `team` | array | No | `[]` | チームメンバー |
190
- | `stakeholders` | array | No | `['@企画', '@部長']` | ステークホルダー |
191
- | `repository` | string | Yes | `'https://github.com/org/repo'` | リポジトリURL |
192
- | `description` | string | Yes | `'プロジェクトの説明'` | プロジェクト説明 |
193
-
194
- **C. .env (11項目)**
195
-
196
- | 項目 | 型 | 必須 | 例 | 説明 | スコープ |
197
- |------|-----|------|-----|------|----------|
198
- | `ATLASSIAN_URL` | string | Yes | `'https://org.atlassian.net'` | AtlassianベースURL | 組織 |
199
- | `ATLASSIAN_EMAIL` | string | Yes | `'user@company.com'` | Atlassian認証用メールアドレス | 組織 |
200
- | `ATLASSIAN_API_TOKEN` | string | Yes | `'token123'` | Atlassian APIトークン | 組織 |
201
- | `GITHUB_ORG` | string | Yes | `'my-org'` | GitHub組織名 | 組織 |
202
- | `GITHUB_TOKEN` | string | Yes | `'ghp_xxx'` | GitHubアクセストークン | 組織 |
203
- | `CONFLUENCE_PRD_SPACE` | string | No | `'PRD'` | 要件定義書スペース | 組織 |
204
- | `CONFLUENCE_QA_SPACE` | string | No | `'QA'` | テスト仕様書スペース | 組織 |
205
- | `CONFLUENCE_RELEASE_SPACE` | string | No | `'RELEASE'` | リリースノートスペース | 組織 |
206
- | `JIRA_PROJECT_KEYS` | string | Yes | `'MYPRJ'` | JIRAプロジェクトキー | プロジェクト |
207
- | `JIRA_ISSUE_TYPE_STORY` | string | Yes | `'10036'` | Story Issue Type ID | 組織 |
208
- | `JIRA_ISSUE_TYPE_SUBTASK` | string | Yes | `'10037'` | Subtask Issue Type ID | 組織 |
209
-
210
- **注**: `GITHUB_REPO` は削除されました。リポジトリ情報は `.kiro/project.json` の `repository` フィールドから自動的に抽出されます。
211
-
212
- ### 2.3 データフロー図
213
-
214
- **現状のデータフロー:**
215
-
216
- ```
217
- [ユーザー入力]
218
- ├─ config:global
219
- │ └─ ~/.michi/config.json (Confluence/JIRA/ワークフロー設定)
220
-
221
- ├─ init / setup-existing
222
- │ ├─ .kiro/project.json (プロジェクトメタデータ)
223
- │ ├─ .env (全環境変数)
224
- │ └─ .michi/config.json (プロジェクト固有設定、optional)
225
-
226
- └─ [既存の.envを手動編集]
227
-
228
- [設定の読み込み]
229
- ├─ スクリプト実行時
230
- │ ├─ dotenv.config() で .env を読み込み
231
- │ ├─ .michi/config.json を読み込み (存在する場合)
232
- │ └─ ~/.michi/config.json を読み込み (存在する場合)
233
-
234
- └─ 優先順位が不明確(明示的なマージロジックなし)
235
- ```
236
-
237
- **問題点:**
238
- 1. グローバル設定の自動読み込みがない
239
- 2. 設定の優先順位が不明確
240
- 3. .env に組織レベルの設定が分散
241
- 4. 各スクリプトが独自に設定を読み込み(一元化されていない)
242
-
243
- ---
244
-
245
- ## 3. 問題点の特定
246
-
247
- ### 3.1 重複する対話的プロンプト
248
-
249
- **現状:**
250
- - `init` と `setup-existing` の両方で、以下の情報を対話的に取得:
251
- - `projectName`
252
- - `jiraKey`
253
- - `environment`
254
- - `langCode`
255
-
256
- **問題:**
257
- - ユーザー体験の低下(同じ情報を複数回入力)
258
- - コードの重複(同じプロンプトロジックが2箇所に存在)
259
- - 保守性の低下(変更時に2箇所を修正する必要)
260
-
261
- **影響範囲:**
262
- - src/commands/init.ts:195-242
263
- - src/commands/setup-existing.ts:180-229
264
-
265
- ### 3.2 グローバル化できる項目の分散
266
-
267
- **現状:**
268
- `.env` ファイルに以下の組織レベルの設定が含まれている:
269
-
270
- | 項目 | スコープ | 変更頻度 |
271
- |------|----------|----------|
272
- | `ATLASSIAN_URL` | 組織 | 低 |
273
- | `ATLASSIAN_EMAIL` | 組織/ユーザー | 低 |
274
- | `ATLASSIAN_API_TOKEN` | 組織/ユーザー | 低 |
275
- | `GITHUB_ORG` | 組織 | 低 |
276
- | `GITHUB_TOKEN` | 組織/ユーザー | 低 |
277
- | `CONFLUENCE_*_SPACE` | 組織 | 低 |
278
- | `JIRA_ISSUE_TYPE_*` | 組織 | 低 |
279
-
280
- **問題:**
281
- - プロジェクトごとに同じ情報を重複入力
282
- - 組織の設定変更時に全プロジェクトの .env を更新する必要
283
- - セキュリティリスク(認証情報が各プロジェクトに分散)
284
-
285
- **影響:**
286
- - 新規プロジェクト作成時の手間が大きい
287
- - 設定の一貫性が保たれにくい
288
- - パーミッション管理が煩雑
289
-
290
- ### 3.3 コマンドの使い分けの不明瞭さ
291
-
292
- **現状:**
293
- 3つのコマンドの使い分けが不明確:
294
-
295
- | コマンド | 用途 | 実行タイミング | ユーザーの理解度 |
296
- |---------|------|--------------|----------------|
297
- | `config:global` | グローバル設定 | 初回のみ(組織で一度) | 低 (いつ使うべきか不明) |
298
- | `init` | 新規プロジェクト | プロジェクト作成時 | 中 |
299
- | `setup-existing` | 既存プロジェクト | 既存プロジェクトに追加 | 中 |
300
-
301
- **問題:**
302
- - ドキュメントを読まないと使い分けが分からない
303
- - `init` と `setup-existing` の違いが微妙(内部実装はほぼ同じ)
304
- - `config:global` がオプション扱いで、重要性が伝わらない
305
-
306
- **ユーザーの混乱例:**
307
- 1. 「config:global を実行せずに init を実行 → .env の手動編集が必要に」
308
- 2. 「新規プロジェクトで setup-existing を使用 → 問題なく動作するが、推奨ではない」
309
- 3. 「各プロジェクトで .env を個別に編集 → 組織設定の一元管理ができていない」
310
-
311
- ### 3.4 ドキュメントのタイポ
312
-
313
- **問題:**
314
- `docs/user-guide/getting-started/quick-start.md:35` に以下のタイポ:
315
-
316
- ```markdown
317
- npx @sk8metal/michi-cli setup-existin
318
- ```
319
-
320
- 正しくは:
321
- ```markdown
322
- npx @sk8metal/michi-cli setup-existing
323
- ```
324
-
325
- **影響:**
326
- - ユーザーがコマンドをコピー&ペーストした際にエラー
327
- - ドキュメントの信頼性低下
328
-
329
- ---
330
-