@sk8metal/michi-cli 0.2.1 → 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.
- package/CHANGELOG.md +65 -0
- package/dist/scripts/config-global.d.ts +10 -0
- package/dist/scripts/config-global.d.ts.map +1 -0
- package/dist/scripts/config-global.js +111 -0
- package/dist/scripts/config-global.js.map +1 -0
- package/dist/scripts/confluence-sync.d.ts +22 -4
- package/dist/scripts/confluence-sync.d.ts.map +1 -1
- package/dist/scripts/confluence-sync.js +22 -12
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/jira-sync.d.ts.map +1 -1
- package/dist/scripts/jira-sync.js +201 -167
- package/dist/scripts/jira-sync.js.map +1 -1
- package/dist/scripts/list-projects.js.map +1 -1
- package/dist/scripts/multi-project-estimate.js.map +1 -1
- package/dist/scripts/phase-runner.d.ts +1 -1
- package/dist/scripts/phase-runner.d.ts.map +1 -1
- package/dist/scripts/phase-runner.js +295 -522
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/pre-flight-check.d.ts.map +1 -1
- package/dist/scripts/pre-flight-check.js +10 -6
- package/dist/scripts/pre-flight-check.js.map +1 -1
- package/dist/scripts/resource-dashboard.js.map +1 -1
- package/dist/scripts/spec-impl-workflow.js +1 -1
- package/dist/scripts/spec-impl-workflow.js.map +1 -1
- package/dist/scripts/template/renderer.d.ts +1 -1
- package/dist/scripts/template/renderer.d.ts.map +1 -1
- package/dist/scripts/test-interactive.d.ts.map +1 -1
- package/dist/scripts/test-interactive.js +0 -15
- package/dist/scripts/test-interactive.js.map +1 -1
- package/dist/scripts/test-new-features.js +6 -3
- package/dist/scripts/test-new-features.js.map +1 -1
- package/dist/scripts/test-spec-generator.d.ts.map +1 -1
- package/dist/scripts/test-spec-generator.js +1 -2
- package/dist/scripts/test-spec-generator.js.map +1 -1
- package/dist/scripts/utils/config-loader.d.ts +7 -2
- package/dist/scripts/utils/config-loader.d.ts.map +1 -1
- package/dist/scripts/utils/config-loader.js +79 -8
- package/dist/scripts/utils/config-loader.js.map +1 -1
- package/dist/scripts/utils/config-sections.d.ts +54 -0
- package/dist/scripts/utils/config-sections.d.ts.map +1 -0
- package/dist/scripts/utils/config-sections.js +178 -0
- package/dist/scripts/utils/config-sections.js.map +1 -0
- package/dist/scripts/utils/config-validator.d.ts +4 -0
- package/dist/scripts/utils/config-validator.d.ts.map +1 -1
- package/dist/scripts/utils/config-validator.js +57 -1
- package/dist/scripts/utils/config-validator.js.map +1 -1
- package/dist/scripts/utils/confluence-approval.d.ts.map +1 -1
- package/dist/scripts/utils/confluence-approval.js +5 -3
- package/dist/scripts/utils/confluence-approval.js.map +1 -1
- package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
- package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
- package/dist/scripts/utils/interactive-helpers.d.ts +32 -0
- package/dist/scripts/utils/interactive-helpers.d.ts.map +1 -0
- package/dist/scripts/utils/interactive-helpers.js +92 -0
- package/dist/scripts/utils/interactive-helpers.js.map +1 -0
- package/dist/scripts/utils/jira-issue-type-fetcher.d.ts.map +1 -1
- package/dist/scripts/utils/jira-issue-type-fetcher.js +27 -18
- package/dist/scripts/utils/jira-issue-type-fetcher.js.map +1 -1
- package/dist/scripts/utils/release-notes-generator.d.ts.map +1 -1
- package/dist/scripts/utils/release-notes-generator.js +2 -1
- package/dist/scripts/utils/release-notes-generator.js.map +1 -1
- package/dist/scripts/utils/spec-updater.d.ts +19 -0
- package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
- package/dist/scripts/utils/spec-updater.js.map +1 -1
- package/dist/scripts/utils/tasks-converter.d.ts.map +1 -1
- package/dist/scripts/utils/tasks-converter.js +2 -2
- package/dist/scripts/utils/tasks-converter.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.d.ts.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +0 -12
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/dist/scripts/utils/test-runner.d.ts.map +1 -1
- package/dist/scripts/utils/test-runner.js +3 -2
- package/dist/scripts/utils/test-runner.js.map +1 -1
- package/dist/scripts/validate-phase.d.ts +1 -1
- package/dist/scripts/validate-phase.d.ts.map +1 -1
- package/dist/scripts/validate-phase.js +12 -62
- package/dist/scripts/validate-phase.js.map +1 -1
- package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
- package/dist/scripts/workflow-orchestrator.js +11 -16
- package/dist/scripts/workflow-orchestrator.js.map +1 -1
- package/dist/src/__tests__/integration/setup/claude.test.js +8 -8
- package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -1
- package/dist/src/__tests__/integration/setup/init.test.d.ts +5 -0
- package/dist/src/__tests__/integration/setup/init.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/setup/init.test.js +352 -0
- package/dist/src/__tests__/integration/setup/init.test.js.map +1 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +29 -21
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +28 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +490 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/setup-existing.d.ts +1 -1
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +49 -3
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/user-guide/getting-started/new-repository-setup.md +1 -1
- package/docs/user-guide/getting-started/setup.md +33 -5
- package/docs/user-guide/guides/agent-skills-integration.md +16 -11
- package/docs/user-guide/guides/customization.md +64 -11
- package/docs/user-guide/guides/workflow.md +35 -21
- package/docs/user-guide/hands-on/claude-agent-setup.md +192 -50
- package/docs/user-guide/hands-on/claude-setup.md +63 -9
- package/docs/user-guide/hands-on/cursor-setup.md +9 -8
- package/docs/user-guide/hands-on/verification-checklist.md +4 -3
- package/docs/user-guide/hands-on/workflow-walkthrough.md +3 -3
- package/docs/user-guide/reference/config.md +30 -5
- package/docs/user-guide/reference/quick-reference.md +70 -74
- package/docs/user-guide/testing/test-planning-flow.md +4 -0
- package/package.json +2 -4
- package/scripts/config-global.ts +160 -0
- package/scripts/confluence-sync.ts +91 -27
- package/scripts/jira-sync.ts +284 -218
- package/scripts/list-projects.ts +2 -2
- package/scripts/multi-project-estimate.ts +3 -3
- package/scripts/phase-runner.ts +391 -594
- package/scripts/pre-flight-check.ts +20 -9
- package/scripts/pre-publish-check.sh +3 -34
- package/scripts/resource-dashboard.ts +4 -4
- package/scripts/spec-impl-workflow.ts +1 -1
- package/scripts/template/renderer.ts +1 -1
- package/scripts/test-interactive.ts +0 -19
- package/scripts/test-new-features.ts +10 -7
- package/scripts/test-npm-package.sh +3 -34
- package/scripts/test-spec-generator.ts +3 -7
- package/scripts/utils/config-loader.ts +107 -26
- package/scripts/utils/config-sections.ts +316 -0
- package/scripts/utils/config-validator.ts +66 -1
- package/scripts/utils/confluence-approval.ts +8 -6
- package/scripts/utils/confluence-hierarchy.ts +27 -27
- package/scripts/utils/interactive-helpers.ts +135 -0
- package/scripts/utils/jira-issue-type-fetcher.ts +29 -21
- package/scripts/utils/release-notes-generator.ts +3 -2
- package/scripts/utils/spec-updater.ts +37 -15
- package/scripts/utils/tasks-converter.ts +4 -6
- package/scripts/utils/tasks-format-validator.ts +0 -13
- package/scripts/utils/test-runner.ts +4 -3
- package/scripts/validate-phase.ts +21 -80
- package/scripts/workflow-orchestrator.ts +16 -25
- package/templates/claude/commands/kiro/kiro-spec-impl.md +4 -0
- package/templates/claude/commands/kiro/kiro-spec-tasks.md +3 -1
- package/templates/claude/commands/michi/confluence-sync.md +8 -2
- package/templates/claude/commands/michi/design-review.md +4 -0
- package/templates/claude/commands/michi/e2e-plan.md +4 -0
- package/templates/claude/commands/michi/license-check.md +4 -0
- package/templates/claude/commands/michi/pr-resolve.md +4 -0
- package/templates/claude/commands/michi/project-switch.md +8 -2
- package/templates/claude/commands/michi/spec-design.md +78 -0
- package/templates/claude/commands/michi/spec-impl.md +716 -0
- package/templates/claude/commands/michi/test-planning.md +174 -0
- package/templates/claude/commands/michi/validate-design.md +58 -0
- package/templates/claude/commands/michi/version-audit.md +4 -0
- package/templates/michi/cc-sdd-overrides/README.md +58 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +53 -0
- package/templates/michi/cc-sdd-overrides/settings/templates/specs/init.json +24 -0
- package/templates/michi/cc-sdd-overrides/settings/templates/specs/tasks.md +446 -0
- package/dist/scripts/config-interactive.d.ts +0 -10
- package/dist/scripts/config-interactive.d.ts.map +0 -1
- package/dist/scripts/config-interactive.js +0 -372
- package/dist/scripts/config-interactive.js.map +0 -1
- package/dist/scripts/setup-existing-project.d.ts +0 -15
- package/dist/scripts/setup-existing-project.d.ts.map +0 -1
- package/dist/scripts/setup-existing-project.js +0 -455
- package/dist/scripts/setup-existing-project.js.map +0 -1
- package/dist/scripts/setup-interactive.d.ts +0 -10
- package/dist/scripts/setup-interactive.d.ts.map +0 -1
- package/dist/scripts/setup-interactive.js +0 -413
- package/dist/scripts/setup-interactive.js.map +0 -1
- package/scripts/config-interactive.ts +0 -550
- package/scripts/setup-existing-project.ts +0 -585
- 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
|
|
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:
|
|
65
|
-
|
|
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:
|
|
164
|
-
|
|
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:
|
|
211
|
-
|
|
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:
|
|
250
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
|
|
@@ -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
|
-
**
|
|
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 として案内します。
|