@sk8metal/michi-cli 0.3.0 → 0.4.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 (157) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/scripts/config-global.d.ts +10 -0
  3. package/dist/scripts/config-global.d.ts.map +1 -0
  4. package/dist/scripts/config-global.js +111 -0
  5. package/dist/scripts/config-global.js.map +1 -0
  6. package/dist/scripts/confluence-sync.d.ts +22 -4
  7. package/dist/scripts/confluence-sync.d.ts.map +1 -1
  8. package/dist/scripts/confluence-sync.js +22 -12
  9. package/dist/scripts/confluence-sync.js.map +1 -1
  10. package/dist/scripts/jira-sync.d.ts.map +1 -1
  11. package/dist/scripts/jira-sync.js +201 -167
  12. package/dist/scripts/jira-sync.js.map +1 -1
  13. package/dist/scripts/list-projects.js.map +1 -1
  14. package/dist/scripts/multi-project-estimate.js.map +1 -1
  15. package/dist/scripts/phase-runner.d.ts +1 -1
  16. package/dist/scripts/phase-runner.d.ts.map +1 -1
  17. package/dist/scripts/phase-runner.js +295 -522
  18. package/dist/scripts/phase-runner.js.map +1 -1
  19. package/dist/scripts/pre-flight-check.d.ts.map +1 -1
  20. package/dist/scripts/pre-flight-check.js +10 -6
  21. package/dist/scripts/pre-flight-check.js.map +1 -1
  22. package/dist/scripts/resource-dashboard.js.map +1 -1
  23. package/dist/scripts/spec-impl-workflow.js +1 -1
  24. package/dist/scripts/spec-impl-workflow.js.map +1 -1
  25. package/dist/scripts/template/renderer.d.ts +1 -1
  26. package/dist/scripts/template/renderer.d.ts.map +1 -1
  27. package/dist/scripts/test-interactive.d.ts.map +1 -1
  28. package/dist/scripts/test-interactive.js +0 -15
  29. package/dist/scripts/test-interactive.js.map +1 -1
  30. package/dist/scripts/test-new-features.js +6 -3
  31. package/dist/scripts/test-new-features.js.map +1 -1
  32. package/dist/scripts/test-spec-generator.d.ts.map +1 -1
  33. package/dist/scripts/test-spec-generator.js +1 -2
  34. package/dist/scripts/test-spec-generator.js.map +1 -1
  35. package/dist/scripts/utils/config-loader.d.ts +7 -2
  36. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  37. package/dist/scripts/utils/config-loader.js +79 -8
  38. package/dist/scripts/utils/config-loader.js.map +1 -1
  39. package/dist/scripts/utils/config-sections.d.ts +54 -0
  40. package/dist/scripts/utils/config-sections.d.ts.map +1 -0
  41. package/dist/scripts/utils/config-sections.js +178 -0
  42. package/dist/scripts/utils/config-sections.js.map +1 -0
  43. package/dist/scripts/utils/config-validator.d.ts +4 -0
  44. package/dist/scripts/utils/config-validator.d.ts.map +1 -1
  45. package/dist/scripts/utils/config-validator.js +57 -1
  46. package/dist/scripts/utils/config-validator.js.map +1 -1
  47. package/dist/scripts/utils/confluence-approval.d.ts.map +1 -1
  48. package/dist/scripts/utils/confluence-approval.js +5 -3
  49. package/dist/scripts/utils/confluence-approval.js.map +1 -1
  50. package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
  51. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
  52. package/dist/scripts/utils/interactive-helpers.d.ts +32 -0
  53. package/dist/scripts/utils/interactive-helpers.d.ts.map +1 -0
  54. package/dist/scripts/utils/interactive-helpers.js +92 -0
  55. package/dist/scripts/utils/interactive-helpers.js.map +1 -0
  56. package/dist/scripts/utils/jira-issue-type-fetcher.d.ts.map +1 -1
  57. package/dist/scripts/utils/jira-issue-type-fetcher.js +27 -18
  58. package/dist/scripts/utils/jira-issue-type-fetcher.js.map +1 -1
  59. package/dist/scripts/utils/release-notes-generator.d.ts.map +1 -1
  60. package/dist/scripts/utils/release-notes-generator.js +2 -1
  61. package/dist/scripts/utils/release-notes-generator.js.map +1 -1
  62. package/dist/scripts/utils/spec-updater.d.ts +19 -0
  63. package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
  64. package/dist/scripts/utils/spec-updater.js.map +1 -1
  65. package/dist/scripts/utils/tasks-converter.d.ts.map +1 -1
  66. package/dist/scripts/utils/tasks-converter.js +2 -2
  67. package/dist/scripts/utils/tasks-converter.js.map +1 -1
  68. package/dist/scripts/utils/tasks-format-validator.d.ts.map +1 -1
  69. package/dist/scripts/utils/tasks-format-validator.js +0 -12
  70. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  71. package/dist/scripts/utils/test-runner.d.ts.map +1 -1
  72. package/dist/scripts/utils/test-runner.js +3 -2
  73. package/dist/scripts/utils/test-runner.js.map +1 -1
  74. package/dist/scripts/validate-phase.d.ts +1 -1
  75. package/dist/scripts/validate-phase.d.ts.map +1 -1
  76. package/dist/scripts/validate-phase.js +12 -62
  77. package/dist/scripts/validate-phase.js.map +1 -1
  78. package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
  79. package/dist/scripts/workflow-orchestrator.js +11 -16
  80. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  81. package/dist/src/__tests__/integration/setup/init.test.d.ts +5 -0
  82. package/dist/src/__tests__/integration/setup/init.test.d.ts.map +1 -0
  83. package/dist/src/__tests__/integration/setup/init.test.js +352 -0
  84. package/dist/src/__tests__/integration/setup/init.test.js.map +1 -0
  85. package/dist/src/cli.d.ts.map +1 -1
  86. package/dist/src/cli.js +28 -20
  87. package/dist/src/cli.js.map +1 -1
  88. package/dist/src/commands/init.d.ts +28 -0
  89. package/dist/src/commands/init.d.ts.map +1 -0
  90. package/dist/src/commands/init.js +490 -0
  91. package/dist/src/commands/init.js.map +1 -0
  92. package/docs/user-guide/getting-started/setup.md +31 -3
  93. package/docs/user-guide/guides/customization.md +64 -11
  94. package/docs/user-guide/guides/workflow.md +35 -21
  95. package/docs/user-guide/reference/config.md +30 -5
  96. package/docs/user-guide/reference/quick-reference.md +68 -74
  97. package/docs/user-guide/testing/test-planning-flow.md +4 -0
  98. package/package.json +2 -4
  99. package/scripts/config-global.ts +160 -0
  100. package/scripts/confluence-sync.ts +91 -27
  101. package/scripts/jira-sync.ts +284 -218
  102. package/scripts/list-projects.ts +2 -2
  103. package/scripts/multi-project-estimate.ts +3 -3
  104. package/scripts/phase-runner.ts +391 -594
  105. package/scripts/pre-flight-check.ts +20 -9
  106. package/scripts/pre-publish-check.sh +3 -34
  107. package/scripts/resource-dashboard.ts +4 -4
  108. package/scripts/spec-impl-workflow.ts +1 -1
  109. package/scripts/template/renderer.ts +1 -1
  110. package/scripts/test-interactive.ts +0 -19
  111. package/scripts/test-new-features.ts +10 -7
  112. package/scripts/test-npm-package.sh +3 -34
  113. package/scripts/test-spec-generator.ts +3 -7
  114. package/scripts/utils/config-loader.ts +107 -26
  115. package/scripts/utils/config-sections.ts +316 -0
  116. package/scripts/utils/config-validator.ts +66 -1
  117. package/scripts/utils/confluence-approval.ts +8 -6
  118. package/scripts/utils/confluence-hierarchy.ts +27 -27
  119. package/scripts/utils/interactive-helpers.ts +135 -0
  120. package/scripts/utils/jira-issue-type-fetcher.ts +29 -21
  121. package/scripts/utils/release-notes-generator.ts +3 -2
  122. package/scripts/utils/spec-updater.ts +37 -15
  123. package/scripts/utils/tasks-converter.ts +4 -6
  124. package/scripts/utils/tasks-format-validator.ts +0 -13
  125. package/scripts/utils/test-runner.ts +4 -3
  126. package/scripts/validate-phase.ts +21 -80
  127. package/scripts/workflow-orchestrator.ts +16 -25
  128. package/templates/claude/commands/kiro/kiro-spec-impl.md +4 -0
  129. package/templates/claude/commands/kiro/kiro-spec-tasks.md +3 -1
  130. package/templates/claude/commands/michi/confluence-sync.md +8 -2
  131. package/templates/claude/commands/michi/design-review.md +4 -0
  132. package/templates/claude/commands/michi/e2e-plan.md +4 -0
  133. package/templates/claude/commands/michi/license-check.md +4 -0
  134. package/templates/claude/commands/michi/pr-resolve.md +4 -0
  135. package/templates/claude/commands/michi/project-switch.md +8 -2
  136. package/templates/claude/commands/michi/spec-design.md +78 -0
  137. package/templates/claude/commands/michi/spec-impl.md +716 -0
  138. package/templates/claude/commands/michi/test-planning.md +174 -0
  139. package/templates/claude/commands/michi/validate-design.md +58 -0
  140. package/templates/claude/commands/michi/version-audit.md +4 -0
  141. package/templates/michi/cc-sdd-overrides/README.md +8 -0
  142. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +53 -0
  143. package/dist/scripts/config-interactive.d.ts +0 -10
  144. package/dist/scripts/config-interactive.d.ts.map +0 -1
  145. package/dist/scripts/config-interactive.js +0 -372
  146. package/dist/scripts/config-interactive.js.map +0 -1
  147. package/dist/scripts/setup-existing-project.d.ts +0 -15
  148. package/dist/scripts/setup-existing-project.d.ts.map +0 -1
  149. package/dist/scripts/setup-existing-project.js +0 -455
  150. package/dist/scripts/setup-existing-project.js.map +0 -1
  151. package/dist/scripts/setup-interactive.d.ts +0 -10
  152. package/dist/scripts/setup-interactive.d.ts.map +0 -1
  153. package/dist/scripts/setup-interactive.js +0 -413
  154. package/dist/scripts/setup-interactive.js.map +0 -1
  155. package/scripts/config-interactive.ts +0 -550
  156. package/scripts/setup-existing-project.ts +0 -585
  157. package/scripts/setup-interactive.ts +0 -565
@@ -6,7 +6,7 @@
6
6
  import { config } from 'dotenv';
7
7
  import { loadProjectMeta } from './utils/project-meta.js';
8
8
  import { syncToConfluence, getConfluenceConfig } from './confluence-sync.js';
9
- import { syncTasksToJIRA, JIRAClient } from './jira-sync.js';
9
+ import { syncTasksToJIRA } from './jira-sync.js';
10
10
  import { analyzeLanguage } from './utils/language-detector.js';
11
11
  import { executeTests, generateTestReport } from './utils/test-runner.js';
12
12
  import { createReleaseNotes } from './utils/release-notes-generator.js';
@@ -61,8 +61,9 @@ export class WorkflowOrchestrator {
61
61
  }
62
62
 
63
63
  console.log(`✅ Stage completed: ${stage}`);
64
- } catch (error: any) {
65
- console.error(`❌ Stage failed: ${stage}`, error.message);
64
+ } catch (error: unknown) {
65
+ const message = error instanceof Error ? error.message : String(error);
66
+ console.error(`❌ Stage failed: ${stage}`, message);
66
67
  throw error;
67
68
  }
68
69
  }
@@ -140,10 +141,6 @@ export class WorkflowOrchestrator {
140
141
 
141
142
  // Confluenceにレポートをアップロード
142
143
  try {
143
- const confluenceConfig = getConfluenceConfig();
144
- const projectMeta = loadProjectMeta();
145
- const spaceKey = confluenceConfig.space;
146
-
147
144
  // レポートをConfluenceに同期(テスト用のページとして)
148
145
  console.log(' Uploading test report to Confluence...');
149
146
 
@@ -160,8 +157,9 @@ export class WorkflowOrchestrator {
160
157
  if (!testResult.success) {
161
158
  throw new Error('Tests failed. Please fix the issues before proceeding.');
162
159
  }
163
- } catch (error: any) {
164
- console.error(' ❌ Test execution failed:', error.message);
160
+ } catch (error: unknown) {
161
+ const message = error instanceof Error ? error.message : String(error);
162
+ console.error(' ❌ Test execution failed:', message);
165
163
  throw error;
166
164
  }
167
165
  }
@@ -170,8 +168,6 @@ export class WorkflowOrchestrator {
170
168
  * リリースフェーズを実行
171
169
  */
172
170
  private async executeReleasePhase(): Promise<void> {
173
- const projectMeta = loadProjectMeta();
174
-
175
171
  // リリースバージョンを決定(環境変数またはデフォルト)
176
172
  const version = process.env.RELEASE_VERSION || 'v1.0.0';
177
173
 
@@ -192,14 +188,6 @@ export class WorkflowOrchestrator {
192
188
 
193
189
  // JIRA Releaseを作成
194
190
  try {
195
- const jiraConfig = {
196
- url: process.env.ATLASSIAN_URL || '',
197
- email: process.env.ATLASSIAN_EMAIL || '',
198
- apiToken: process.env.ATLASSIAN_API_TOKEN || ''
199
- };
200
-
201
- const jiraClient = new JIRAClient(jiraConfig);
202
-
203
191
  console.log(' Creating JIRA Release...');
204
192
 
205
193
  // JIRA Release作成APIを呼び出し
@@ -207,8 +195,9 @@ export class WorkflowOrchestrator {
207
195
  console.log(' ℹ️ JIRA Release creation is pending JIRAClient enhancement');
208
196
  console.log(` 📋 Manual action required: Create release ${version} in JIRA`);
209
197
  console.log(` 📄 Release notes: ${releaseNotesPath}`);
210
- } catch (error: any) {
211
- console.warn(' ⚠️ Failed to create JIRA Release:', error.message);
198
+ } catch (error: unknown) {
199
+ const message = error instanceof Error ? error.message : String(error);
200
+ console.warn(' ⚠️ Failed to create JIRA Release:', message);
212
201
  console.log(' 📋 Please create the release manually in JIRA');
213
202
  }
214
203
  }
@@ -246,8 +235,9 @@ export class WorkflowOrchestrator {
246
235
  const status = await pollForApproval(pageId, confluenceConfig);
247
236
 
248
237
  console.log(` ✅ Approved by: ${status.approvers.join(', ')}`);
249
- } catch (error: any) {
250
- console.error(' ❌ Approval polling failed:', error.message);
238
+ } catch (error: unknown) {
239
+ const message = error instanceof Error ? error.message : String(error);
240
+ console.error(' ❌ Approval polling failed:', message);
251
241
  throw error;
252
242
  }
253
243
  } else {
@@ -289,8 +279,9 @@ if (import.meta.url === `file://${process.argv[1]}`) {
289
279
 
290
280
  orchestrator.run()
291
281
  .then(() => process.exit(0))
292
- .catch((error) => {
293
- console.error('❌ Workflow failed:', error.message);
282
+ .catch((error: unknown) => {
283
+ const message = error instanceof Error ? error.message : String(error);
284
+ console.error('❌ Workflow failed:', message);
294
285
  process.exit(1);
295
286
  });
296
287
  }
@@ -1,5 +1,9 @@
1
1
  # kiro:spec-impl - Spec Implementation Command
2
2
 
3
+ ## Development Guidelines
4
+
5
+ {{DEV_GUIDELINES}}
6
+
3
7
  ## Overview
4
8
 
5
9
  This command implements the specifications defined in `tasks.md` following TDD (Test-Driven Development) practices with automatic JIRA integration.
@@ -5,7 +5,9 @@ description: Generate tasks.md from design specification in Michi workflow forma
5
5
 
6
6
  # Generate Tasks from Design Specification
7
7
 
8
- **Important**: Generate output in the language specified in `{{KIRO_DIR}}/project.json`.
8
+ ## Development Guidelines
9
+
10
+ {{DEV_GUIDELINES}}
9
11
 
10
12
  ## Overview
11
13
 
@@ -1,11 +1,17 @@
1
1
  ---
2
2
  name: /michi:confluence-sync
3
- description: Sync specifications to Confluence
3
+ description: Sync specifications to Confluence (Michi-specific feature)
4
4
  ---
5
5
 
6
6
  # Confluence Sync Command
7
7
 
8
- **Important**: Generate output in language specified in {{KIRO_DIR}}/project.json.
8
+ > **Michi 固有機能**: このコマンドは Michi 独自の機能です。cc-sdd 標準には含まれません。
9
+ >
10
+ > 仕様書(requirements.md, design.md)を Confluence に同期し、承認ワークフローを実現します。
11
+
12
+ ## Development Guidelines
13
+
14
+ {{DEV_GUIDELINES}}
9
15
 
10
16
  ## Usage
11
17
 
@@ -5,6 +5,10 @@ description: UIコンポーネントのデザイン品質をレビューする
5
5
 
6
6
  # デザインレビュー
7
7
 
8
+ ## Development Guidelines
9
+
10
+ {{DEV_GUIDELINES}}
11
+
8
12
  このコマンドは、UIコンポーネントやフロントエンドコードのデザイン品質をレビューします。
9
13
 
10
14
  ## サブエージェント呼び出し
@@ -5,6 +5,10 @@ description: E2Eファースト方式でタスク分割を計画する
5
5
 
6
6
  # E2Eプランニング
7
7
 
8
+ ## Development Guidelines
9
+
10
+ {{DEV_GUIDELINES}}
11
+
8
12
  このコマンドは、E2Eファースト方式でタスク分割を計画し、早期に動作確認可能な実装計画を策定します。
9
13
 
10
14
  ## サブエージェント呼び出し
@@ -5,6 +5,10 @@ description: 依存パッケージのOSSライセンスを確認する
5
5
 
6
6
  # ライセンス確認
7
7
 
8
+ ## Development Guidelines
9
+
10
+ {{DEV_GUIDELINES}}
11
+
8
12
  このコマンドは、プロジェクトの依存パッケージのOSSライセンスを確認し、ライセンス互換性をチェックします。
9
13
 
10
14
  ## サブエージェント呼び出し
@@ -5,6 +5,10 @@ description: PRレビューコメントへの対応を支援する
5
5
 
6
6
  # PRコメント対応
7
7
 
8
+ ## Development Guidelines
9
+
10
+ {{DEV_GUIDELINES}}
11
+
8
12
  このコマンドは、プルリクエストのレビューコメントへの対応を支援し、すべてのコメントが適切に解決されているか確認します。
9
13
 
10
14
  ## サブエージェント呼び出し
@@ -1,11 +1,17 @@
1
1
  ---
2
2
  name: /michi:project-switch
3
- description: Switch between projects
3
+ description: Switch between projects (Michi-specific feature)
4
4
  ---
5
5
 
6
6
  # Project Switch Command
7
7
 
8
- **Important**: Generate output in language specified in {{KIRO_DIR}}/project.json.
8
+ > **Michi 固有機能**: このコマンドは Michi 独自の機能です。cc-sdd 標準には含まれません。
9
+ >
10
+ > マルチプロジェクト環境で、異なるプロジェクト間を切り替えるための機能です。
11
+
12
+ ## Development Guidelines
13
+
14
+ {{DEV_GUIDELINES}}
9
15
 
10
16
  ## Usage
11
17
 
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: /michi:spec-design
3
+ description: Create comprehensive technical design for a specification (Michi version with test planning flow)
4
+ allowed-tools: Bash, Glob, Grep, LS, Read, Write, Edit, MultiEdit, Update, WebSearch, WebFetch
5
+ argument-hint: <feature-name> [-y]
6
+ ---
7
+
8
+ # Michi: Spec Design with Test Planning Flow
9
+
10
+ ## Base Command Reference
11
+ @.claude/commands/kiro/spec-design.md
12
+
13
+ ## Development Guidelines
14
+
15
+ {{DEV_GUIDELINES}}
16
+
17
+ ## Michi Extension: Next Phase Guidance
18
+
19
+ 設計ドキュメント生成完了後、以下のフローを案内:
20
+
21
+ ### Next Phase: Phase 0.3 - テストタイプの選択
22
+
23
+ 設計が完了したら、タスク生成前に **Phase 0.3-0.4: テスト計画** を実施してください。
24
+
25
+ #### 1. Phase 0.3: テストタイプの選択
26
+
27
+ 設計書の Testing Strategy セクションを基に、必要なテストタイプを決定します。
28
+
29
+ **実行方法:**
30
+
31
+ **推奨: 統合AIコマンド**
32
+ ```bash
33
+ /michi:test-planning {feature-name}
34
+ ```
35
+ Phase 0.3とPhase 0.4を統合的に実行します。AIが対話的にテストタイプを選択し、テスト仕様書を作成します。
36
+
37
+ **選択可能なテストタイプ:**
38
+ - 単体テスト (Unit Test)
39
+ - 統合テスト (Integration Test)
40
+ - E2Eテスト (End-to-End Test)
41
+ - パフォーマンステスト (Performance Test)
42
+ - セキュリティテスト (Security Test)
43
+
44
+ **参照ドキュメント**: `docs/user-guide/testing/test-planning-flow.md`
45
+
46
+ #### 2. Phase 0.4: テスト仕様書の作成
47
+
48
+ Phase 0.3で選択したテストタイプに基づいて、テスト仕様書を作成します。
49
+
50
+ **実行方法:**
51
+
52
+ `/michi:test-planning` を使用した場合、Phase 0.4も自動的に実行されます。
53
+
54
+ **テンプレート:**
55
+ - 単体テスト: `docs/user-guide/templates/test-specs/unit-test-spec-template.md`
56
+ - 統合テスト: `docs/user-guide/templates/test-specs/integration-test-spec-template.md`
57
+ - E2Eテスト: `docs/user-guide/templates/test-specs/e2e-test-spec-template.md`
58
+ - パフォーマンステスト: `docs/user-guide/templates/test-specs/performance-test-spec-template.md`
59
+ - セキュリティテスト: `docs/user-guide/templates/test-specs/security-test-spec-template.md`
60
+
61
+ **出力先**: `.kiro/specs/{feature}/test-specs/`
62
+
63
+ ### After Test Planning: Task Generation
64
+
65
+ Phase 0.3-0.4 完了後、以下のステップに進んでください:
66
+
67
+ **推奨フロー**:
68
+ 1. `/michi:validate-design {feature}` で設計レビューを実施(任意)
69
+ 2. `/kiro:spec-tasks {feature}` でタスク生成
70
+
71
+ **クイックフロー**:
72
+ - `/kiro:spec-tasks {feature} -y` で自動承認してタスク生成
73
+
74
+ **重要**: テスト計画(Phase 0.3-0.4)を完了してからタスク生成することで、実装タスクにテスト実装が適切に含まれます。
75
+
76
+ ---
77
+
78
+ **Michi 固有機能**: このコマンドは cc-sdd 標準の `/kiro:spec-design` を拡張し、Michi 固有のテスト計画フロー(Phase 0.3-0.4)を Next Phase として案内します。