@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.
Files changed (104) hide show
  1. package/README.md +77 -847
  2. package/dist/scripts/phase-runner.js +1 -1
  3. package/dist/scripts/phase-runner.js.map +1 -1
  4. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  5. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  6. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  7. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  8. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  9. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  10. package/docs/README.md +20 -83
  11. package/docs/getting-started/configuration.md +379 -0
  12. package/docs/getting-started/installation.md +59 -0
  13. package/docs/getting-started/quick-start.md +76 -0
  14. package/docs/guides/ai-tools.md +311 -0
  15. package/docs/guides/atlassian-integration.md +116 -0
  16. package/docs/guides/claude-code.md +155 -0
  17. package/docs/guides/multi-repo.md +117 -0
  18. package/docs/guides/workflow.md +382 -0
  19. package/docs/reference/ai-commands.md +92 -0
  20. package/docs/reference/cli.md +756 -0
  21. package/docs/reference/environment-variables.md +192 -0
  22. package/docs/troubleshooting.md +543 -0
  23. package/package.json +1 -1
  24. package/scripts/phase-runner.ts +1 -1
  25. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  26. package/scripts/utils/multi-repo-validator.ts +50 -0
  27. package/scripts/utils/tasks-format-validator.ts +3 -3
  28. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  29. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  30. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  31. package/templates/claude/commands/michi/spec-design.md +2 -2
  32. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  33. package/templates/claude/commands/michi/test-planning.md +1 -1
  34. package/templates/claude/commands/michi/validate-design.md +3 -3
  35. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  36. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  37. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  38. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  39. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  40. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  41. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  42. package/templates/codex/AGENTS.override.md +1 -1
  43. package/templates/codex/rules/README.md +2 -2
  44. package/templates/cursor/commands/michi/spec-tasks.md +117 -0
  45. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  46. package/docs/context.md +0 -59
  47. package/docs/michi-development/contributing/development.md +0 -341
  48. package/docs/michi-development/contributing/release.md +0 -365
  49. package/docs/michi-development/design/config-unification.md +0 -733
  50. package/docs/michi-development/design/design-config-current-state.md +0 -330
  51. package/docs/michi-development/design/design-config-implementation.md +0 -628
  52. package/docs/michi-development/design/design-config-migration.md +0 -952
  53. package/docs/michi-development/design/design-config-security.md +0 -771
  54. package/docs/michi-development/design/design-config-solution.md +0 -583
  55. package/docs/michi-development/design/design-config-testing.md +0 -892
  56. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  57. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  58. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  59. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  60. package/docs/michi-development/testing-strategy.md +0 -87
  61. package/docs/plan.md +0 -275
  62. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  63. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  64. package/docs/user-guide/getting-started/quick-start.md +0 -212
  65. package/docs/user-guide/getting-started/setup.md +0 -819
  66. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  67. package/docs/user-guide/guides/customization.md +0 -537
  68. package/docs/user-guide/guides/internationalization.md +0 -540
  69. package/docs/user-guide/guides/migration-guide.md +0 -138
  70. package/docs/user-guide/guides/multi-project.md +0 -368
  71. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  72. package/docs/user-guide/guides/phase-automation.md +0 -419
  73. package/docs/user-guide/guides/workflow.md +0 -574
  74. package/docs/user-guide/hands-on/README.md +0 -142
  75. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  76. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  77. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  78. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  79. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  80. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  81. package/docs/user-guide/reference/config.md +0 -589
  82. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  83. package/docs/user-guide/reference/quick-reference.md +0 -297
  84. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  85. package/docs/user-guide/reference/tasks-template.md +0 -550
  86. package/docs/user-guide/release/ci-setup-java.md +0 -114
  87. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  88. package/docs/user-guide/release/ci-setup-php.md +0 -102
  89. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  90. package/docs/user-guide/release/ci-setup.md +0 -188
  91. package/docs/user-guide/release/release-flow.md +0 -476
  92. package/docs/user-guide/templates/test-specs/README.md +0 -173
  93. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  94. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  95. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  96. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  97. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  98. package/docs/user-guide/testing/integration-tests.md +0 -312
  99. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  100. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  101. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  102. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  103. package/docs/user-guide/testing-strategy.md +0 -185
  104. 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
-