@sk8metal/michi-cli 0.5.0 → 0.8.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 +136 -1
- package/README.md +2 -1
- package/dist/scripts/config/config-schema.d.ts +35 -0
- package/dist/scripts/config/config-schema.d.ts.map +1 -1
- package/dist/scripts/config/config-schema.js +56 -0
- package/dist/scripts/config/config-schema.js.map +1 -1
- package/dist/scripts/confluence-sync.d.ts.map +1 -1
- package/dist/scripts/confluence-sync.js +15 -2
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/github-actions-client.d.ts +79 -0
- package/dist/scripts/github-actions-client.d.ts.map +1 -0
- package/dist/scripts/github-actions-client.js +182 -0
- package/dist/scripts/github-actions-client.js.map +1 -0
- package/dist/scripts/health-check-service.d.ts +46 -0
- package/dist/scripts/health-check-service.d.ts.map +1 -0
- package/dist/scripts/health-check-service.js +114 -0
- package/dist/scripts/health-check-service.js.map +1 -0
- package/dist/scripts/markdown-to-confluence.d.ts.map +1 -1
- package/dist/scripts/markdown-to-confluence.js +25 -3
- package/dist/scripts/markdown-to-confluence.js.map +1 -1
- package/dist/scripts/mermaid-converter.d.ts +24 -0
- package/dist/scripts/mermaid-converter.d.ts.map +1 -0
- package/dist/scripts/mermaid-converter.js +49 -0
- package/dist/scripts/mermaid-converter.js.map +1 -0
- package/dist/scripts/template/multi-repo-renderer.d.ts +67 -0
- package/dist/scripts/template/multi-repo-renderer.d.ts.map +1 -0
- package/dist/scripts/template/multi-repo-renderer.js +123 -0
- package/dist/scripts/template/multi-repo-renderer.js.map +1 -0
- package/dist/scripts/template/renderer.d.ts +4 -0
- package/dist/scripts/template/renderer.d.ts.map +1 -1
- package/dist/scripts/template/renderer.js.map +1 -1
- package/dist/scripts/test-execution-generator.d.ts.map +1 -1
- package/dist/scripts/test-execution-generator.js +94 -11
- package/dist/scripts/test-execution-generator.js.map +1 -1
- package/dist/scripts/test-script-runner.d.ts +33 -0
- package/dist/scripts/test-script-runner.d.ts.map +1 -0
- package/dist/scripts/test-script-runner.js +77 -0
- package/dist/scripts/test-script-runner.js.map +1 -0
- package/dist/scripts/utils/config-loader.d.ts +21 -1
- package/dist/scripts/utils/config-loader.d.ts.map +1 -1
- package/dist/scripts/utils/config-loader.js +149 -3
- package/dist/scripts/utils/config-loader.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +30 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -0
- package/dist/scripts/utils/multi-repo-validator.js +105 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -0
- package/dist/scripts/utils/spec-archiver.d.ts +38 -0
- package/dist/scripts/utils/spec-archiver.d.ts.map +1 -0
- package/dist/scripts/utils/spec-archiver.js +210 -0
- package/dist/scripts/utils/spec-archiver.js.map +1 -0
- package/dist/scripts/utils/spec-updater.d.ts +4 -0
- package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
- package/dist/scripts/utils/spec-updater.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +262 -14
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/multi-repo-add-repo.d.ts +26 -0
- package/dist/src/commands/multi-repo-add-repo.d.ts.map +1 -0
- package/dist/src/commands/multi-repo-add-repo.js +56 -0
- package/dist/src/commands/multi-repo-add-repo.js.map +1 -0
- package/dist/src/commands/multi-repo-ci-status.d.ts +46 -0
- package/dist/src/commands/multi-repo-ci-status.d.ts.map +1 -0
- package/dist/src/commands/multi-repo-ci-status.js +285 -0
- package/dist/src/commands/multi-repo-ci-status.js.map +1 -0
- package/dist/src/commands/multi-repo-confluence-sync.d.ts +45 -0
- package/dist/src/commands/multi-repo-confluence-sync.d.ts.map +1 -0
- package/dist/src/commands/multi-repo-confluence-sync.js +135 -0
- package/dist/src/commands/multi-repo-confluence-sync.js.map +1 -0
- package/dist/src/commands/multi-repo-init.d.ts +26 -0
- package/dist/src/commands/multi-repo-init.d.ts.map +1 -0
- package/dist/src/commands/multi-repo-init.js +101 -0
- package/dist/src/commands/multi-repo-init.js.map +1 -0
- package/dist/src/commands/multi-repo-list.d.ts +28 -0
- package/dist/src/commands/multi-repo-list.d.ts.map +1 -0
- package/dist/src/commands/multi-repo-list.js +38 -0
- package/dist/src/commands/multi-repo-list.js.map +1 -0
- package/dist/src/commands/multi-repo-test.d.ts +56 -0
- package/dist/src/commands/multi-repo-test.d.ts.map +1 -0
- package/dist/src/commands/multi-repo-test.js +70 -0
- package/dist/src/commands/multi-repo-test.js.map +1 -0
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +30 -8
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/dist/src/commands/spec-archive.d.ts +17 -0
- package/dist/src/commands/spec-archive.d.ts.map +1 -0
- package/dist/src/commands/spec-archive.js +40 -0
- package/dist/src/commands/spec-archive.js.map +1 -0
- package/dist/src/commands/spec-list.d.ts +15 -0
- package/dist/src/commands/spec-list.d.ts.map +1 -0
- package/dist/src/commands/spec-list.js +55 -0
- package/dist/src/commands/spec-list.js.map +1 -0
- package/docs/user-guide/guides/multi-repo-guide.md +591 -0
- package/docs/user-guide/guides/multi-repo-migration-guide.md +516 -0
- package/docs/user-guide/reference/multi-repo-api.md +771 -0
- package/docs/user-guide/reference/quick-reference.md +22 -37
- package/package.json +1 -4
- package/scripts/__tests__/config-loader-multi-repo.test.ts +342 -0
- package/scripts/__tests__/github-actions-client.test.ts +543 -0
- package/scripts/__tests__/health-check-service.test.ts +142 -0
- package/scripts/__tests__/markdown-to-confluence.test.ts +262 -0
- package/scripts/__tests__/mermaid-converter.test.ts +236 -0
- package/scripts/__tests__/multi-repo-config-schema.test.ts +335 -0
- package/scripts/__tests__/multi-repo-validator.test.ts +524 -0
- package/scripts/__tests__/spec-archiver.test.ts +512 -0
- package/scripts/__tests__/test-script-runner.test.ts +217 -0
- package/scripts/config/config-schema.ts +64 -0
- package/scripts/confluence-sync.ts +16 -2
- package/scripts/github-actions-client.ts +258 -0
- package/scripts/health-check-service.ts +171 -0
- package/scripts/markdown-to-confluence.ts +37 -6
- package/scripts/mermaid-converter.ts +56 -0
- package/scripts/template/__tests__/multi-repo-renderer.test.ts +261 -0
- package/scripts/template/multi-repo-renderer.ts +172 -0
- package/scripts/template/renderer.ts +5 -0
- package/scripts/test-execution-generator.ts +104 -11
- package/scripts/test-script-runner.ts +130 -0
- package/scripts/utils/__tests__/config-validator.test.ts +104 -6
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +335 -0
- package/scripts/utils/config-loader.ts +197 -3
- package/scripts/utils/multi-repo-validator.ts +141 -0
- package/scripts/utils/spec-archiver.ts +260 -0
- package/scripts/utils/spec-updater.ts +4 -0
- package/templates/claude/agents/pr-size-monitor/AGENT.md +330 -0
- package/templates/claude/commands/michi/spec-impl.md +208 -35
- package/templates/claude-agent/agents/doc-reviewer.md +176 -0
- package/templates/claude-agent/rules/doc-review-rules.md +98 -0
- package/templates/claude-agent/rules/doc-review.md +91 -0
- package/templates/multi-repo/docs/ci-status.md +51 -0
- package/templates/multi-repo/docs/release-notes.md +99 -0
- package/templates/multi-repo/overview/architecture.md +102 -0
- package/templates/multi-repo/overview/requirements.md +68 -0
- package/templates/multi-repo/overview/sequence.md +79 -0
- package/templates/multi-repo/steering/multi-repo.md +74 -0
- package/templates/multi-repo/tests/strategy.md +89 -0
- package/dist/scripts/__tests__/create-project.test.d.ts +0 -2
- package/dist/scripts/__tests__/create-project.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/create-project.test.js +0 -243
- package/dist/scripts/__tests__/create-project.test.js.map +0 -1
- package/dist/scripts/__tests__/jira-transitions.test.d.ts +0 -5
- package/dist/scripts/__tests__/jira-transitions.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/jira-transitions.test.js +0 -172
- package/dist/scripts/__tests__/jira-transitions.test.js.map +0 -1
- package/dist/scripts/__tests__/multi-project-estimate.test.d.ts +0 -2
- package/dist/scripts/__tests__/multi-project-estimate.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/multi-project-estimate.test.js +0 -118
- package/dist/scripts/__tests__/multi-project-estimate.test.js.map +0 -1
- package/dist/scripts/__tests__/setup-existing-project.test.d.ts +0 -2
- package/dist/scripts/__tests__/setup-existing-project.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/setup-existing-project.test.js +0 -208
- package/dist/scripts/__tests__/setup-existing-project.test.js.map +0 -1
- package/dist/scripts/__tests__/setup-interactive.test.d.ts +0 -2
- package/dist/scripts/__tests__/setup-interactive.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/setup-interactive.test.js +0 -166
- package/dist/scripts/__tests__/setup-interactive.test.js.map +0 -1
- package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts +0 -5
- package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/spec-impl-workflow.test.js +0 -323
- package/dist/scripts/__tests__/spec-impl-workflow.test.js.map +0 -1
- package/dist/scripts/__tests__/spec-loader.test.d.ts +0 -5
- package/dist/scripts/__tests__/spec-loader.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/spec-loader.test.js +0 -153
- package/dist/scripts/__tests__/spec-loader.test.js.map +0 -1
- package/dist/scripts/__tests__/validate-phase.test.d.ts +0 -5
- package/dist/scripts/__tests__/validate-phase.test.d.ts.map +0 -1
- package/dist/scripts/__tests__/validate-phase.test.js +0 -249
- package/dist/scripts/__tests__/validate-phase.test.js.map +0 -1
- package/dist/scripts/constants/__tests__/environments.test.d.ts +0 -2
- package/dist/scripts/constants/__tests__/environments.test.d.ts.map +0 -1
- package/dist/scripts/constants/__tests__/environments.test.js +0 -125
- package/dist/scripts/constants/__tests__/environments.test.js.map +0 -1
- package/dist/scripts/constants/__tests__/languages.test.d.ts +0 -2
- package/dist/scripts/constants/__tests__/languages.test.d.ts.map +0 -1
- package/dist/scripts/constants/__tests__/languages.test.js +0 -82
- package/dist/scripts/constants/__tests__/languages.test.js.map +0 -1
- package/dist/scripts/create-project.d.ts +0 -16
- package/dist/scripts/create-project.d.ts.map +0 -1
- package/dist/scripts/create-project.js +0 -334
- package/dist/scripts/create-project.js.map +0 -1
- package/dist/scripts/list-projects.d.ts +0 -7
- package/dist/scripts/list-projects.d.ts.map +0 -1
- package/dist/scripts/list-projects.js +0 -88
- package/dist/scripts/list-projects.js.map +0 -1
- package/dist/scripts/template/__tests__/renderer.test.d.ts +0 -2
- package/dist/scripts/template/__tests__/renderer.test.d.ts.map +0 -1
- package/dist/scripts/template/__tests__/renderer.test.js +0 -165
- package/dist/scripts/template/__tests__/renderer.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/aidlc-parser.test.js +0 -315
- package/dist/scripts/utils/__tests__/aidlc-parser.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/business-days.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/business-days.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/business-days.test.js +0 -171
- package/dist/scripts/utils/__tests__/business-days.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/config-loader.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/config-loader.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/config-loader.test.js +0 -314
- package/dist/scripts/utils/__tests__/config-loader.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/config-validator.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/config-validator.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/config-validator.test.js +0 -396
- package/dist/scripts/utils/__tests__/config-validator.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/env-config.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/env-config.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/env-config.test.js +0 -216
- package/dist/scripts/utils/__tests__/env-config.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/feature-name-validator.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/feature-name-validator.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/feature-name-validator.test.js +0 -106
- package/dist/scripts/utils/__tests__/feature-name-validator.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js +0 -202
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/project-meta.test.d.ts +0 -6
- package/dist/scripts/utils/__tests__/project-meta.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/project-meta.test.js +0 -154
- package/dist/scripts/utils/__tests__/project-meta.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/security-validator.test.d.ts +0 -6
- package/dist/scripts/utils/__tests__/security-validator.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/security-validator.test.js +0 -219
- package/dist/scripts/utils/__tests__/security-validator.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/spec-updater.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/spec-updater.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/spec-updater.test.js +0 -158
- package/dist/scripts/utils/__tests__/spec-updater.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/tasks-converter.test.js +0 -500
- package/dist/scripts/utils/__tests__/tasks-converter.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.js +0 -314
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.js.map +0 -1
- package/dist/scripts/utils/__tests__/test-runner.test.d.ts +0 -5
- package/dist/scripts/utils/__tests__/test-runner.test.d.ts.map +0 -1
- package/dist/scripts/utils/__tests__/test-runner.test.js +0 -64
- package/dist/scripts/utils/__tests__/test-runner.test.js.map +0 -1
- package/dist/src/__tests__/cli.test.d.ts +0 -5
- package/dist/src/__tests__/cli.test.d.ts.map +0 -1
- package/dist/src/__tests__/cli.test.js +0 -58
- package/dist/src/__tests__/cli.test.js.map +0 -1
- package/dist/src/__tests__/integration/internationalization.test.d.ts +0 -8
- package/dist/src/__tests__/integration/internationalization.test.d.ts.map +0 -1
- package/dist/src/__tests__/integration/internationalization.test.js +0 -333
- package/dist/src/__tests__/integration/internationalization.test.js.map +0 -1
- package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts +0 -5
- package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/claude-agent.test.js +0 -122
- package/dist/src/__tests__/integration/setup/claude-agent.test.js.map +0 -1
- package/dist/src/__tests__/integration/setup/claude.test.d.ts +0 -5
- package/dist/src/__tests__/integration/setup/claude.test.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/claude.test.js +0 -193
- package/dist/src/__tests__/integration/setup/claude.test.js.map +0 -1
- package/dist/src/__tests__/integration/setup/cursor.test.d.ts +0 -5
- package/dist/src/__tests__/integration/setup/cursor.test.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/cursor.test.js +0 -166
- package/dist/src/__tests__/integration/setup/cursor.test.js.map +0 -1
- package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts +0 -32
- package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js +0 -72
- package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js.map +0 -1
- package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts +0 -38
- package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/helpers/test-project.js +0 -83
- package/dist/src/__tests__/integration/setup/helpers/test-project.js.map +0 -1
- package/dist/src/__tests__/integration/setup/init.test.d.ts +0 -5
- package/dist/src/__tests__/integration/setup/init.test.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/init.test.js +0 -352
- package/dist/src/__tests__/integration/setup/init.test.js.map +0 -1
- package/dist/src/__tests__/integration/setup/validation.test.d.ts +0 -5
- package/dist/src/__tests__/integration/setup/validation.test.d.ts.map +0 -1
- package/dist/src/__tests__/integration/setup/validation.test.js +0 -301
- package/dist/src/__tests__/integration/setup/validation.test.js.map +0 -1
- package/dist/src/commands/__tests__/init.test.d.ts +0 -5
- package/dist/src/commands/__tests__/init.test.d.ts.map +0 -1
- package/dist/src/commands/__tests__/init.test.js +0 -255
- package/dist/src/commands/__tests__/init.test.js.map +0 -1
- package/dist/src/commands/__tests__/migrate.test.d.ts +0 -5
- package/dist/src/commands/__tests__/migrate.test.d.ts.map +0 -1
- package/dist/src/commands/__tests__/migrate.test.js +0 -216
- package/dist/src/commands/__tests__/migrate.test.js.map +0 -1
- package/scripts/create-project.ts +0 -386
- package/scripts/list-projects.ts +0 -112
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/---
|
|
2
2
|
name: /michi:spec-impl
|
|
3
3
|
description: Execute spec tasks using TDD methodology with quality automation (Michi version)
|
|
4
4
|
allowed-tools: Task, Bash, Read, Write, Edit, MultiEdit, Grep, Glob, LS, WebFetch, WebSearch
|
|
@@ -25,6 +25,8 @@ argument-hint: <feature-name> [task-numbers] [--mutation] [--skip-license] [--sk
|
|
|
25
25
|
2. **自動修正ループ(Phase 2)**: type-check、lint、test を自動修正(最大5回)
|
|
26
26
|
3. **事後品質レビュー(Phase 3)**: コードレビュー、デザインレビュー(Frontend時)
|
|
27
27
|
4. **最終品質ゲート(Phase 4)**: カバレッジ95%、Mutation Testing(オプション)
|
|
28
|
+
5. **タスク完了マーク(Phase 4.5)**: tasks.mdのチェックボックス更新
|
|
29
|
+
6. **タスク完了後の処理(Phase 5)**: スペックのarchive移動を確認・実行
|
|
28
30
|
|
|
29
31
|
### コマンドシグネチャ
|
|
30
32
|
|
|
@@ -55,7 +57,7 @@ Phase 1: 事前品質監査(Michi拡張)
|
|
|
55
57
|
└─ Frontend検出判定(並行)
|
|
56
58
|
↓
|
|
57
59
|
Phase 2: TDD実装サイクル(kiro:spec-impl継承 + 自動修正ループ拡張)
|
|
58
|
-
RED → GREEN → REFACTOR → VERIFY(最大5回)
|
|
60
|
+
RED → GREEN → REFACTOR → VERIFY(最大5回)
|
|
59
61
|
↓
|
|
60
62
|
Phase 3: 事後品質レビュー(Michi拡張)
|
|
61
63
|
├─ コードレビュー(常に)
|
|
@@ -63,6 +65,15 @@ Phase 3: 事後品質レビュー(Michi拡張)
|
|
|
63
65
|
↓
|
|
64
66
|
Phase 4: 最終検証(Michi拡張)
|
|
65
67
|
type-check + lint + test + coverage 95% + Mutation Testing(オプション)
|
|
68
|
+
↓
|
|
69
|
+
Phase 4.4: PRサイズチェック(Michi拡張)
|
|
70
|
+
500行超過時 → ユーザー確認 → PR作成
|
|
71
|
+
↓
|
|
72
|
+
Phase 4.5: タスク完了マーク(Michi拡張)
|
|
73
|
+
tasks.md のチェックボックス更新
|
|
74
|
+
↓
|
|
75
|
+
Phase 5: タスク完了後の処理(Michi拡張)
|
|
76
|
+
Archive確認 → ユーザー選択 → Archive実行 or スキップ
|
|
66
77
|
```
|
|
67
78
|
|
|
68
79
|
---
|
|
@@ -70,14 +81,13 @@ Phase 4: 最終検証(Michi拡張)
|
|
|
70
81
|
## Phase 1: 事前品質監査(Michi拡張)
|
|
71
82
|
|
|
72
83
|
### 目的
|
|
73
|
-
実装前にライセンス・バージョンリスクを早期検出し、Critical
|
|
84
|
+
実装前にライセンス・バージョンリスクを早期検出し、Critical問題を解決する。
|
|
74
85
|
|
|
75
86
|
### 実行手順
|
|
76
87
|
|
|
77
88
|
#### Step 1.1: オプション解析
|
|
78
89
|
|
|
79
90
|
```bash
|
|
80
|
-
# コマンドライン引数を解析
|
|
81
91
|
SKIP_LICENSE=false
|
|
82
92
|
SKIP_VERSION=false
|
|
83
93
|
SKIP_DESIGN=false
|
|
@@ -111,12 +121,12 @@ DESIGN_REVIEW_CRITICAL=0
|
|
|
111
121
|
|
|
112
122
|
#### Step 1.2: サブエージェント並行起動
|
|
113
123
|
|
|
114
|
-
**重要**: 以下の3
|
|
124
|
+
**重要**: 以下の3つのタスクは独立しているため、並行実行する。単一メッセージで複数のTaskツール呼び出しを行う。
|
|
115
125
|
|
|
116
126
|
```markdown
|
|
117
127
|
## サブエージェント並行起動(Phase 1)
|
|
118
128
|
|
|
119
|
-
Phase 1では以下の3
|
|
129
|
+
Phase 1では以下の3つのサブエージェントを並行起動する:
|
|
120
130
|
|
|
121
131
|
### 1. oss-license-checker
|
|
122
132
|
```yaml
|
|
@@ -166,9 +176,6 @@ Task tool:
|
|
|
166
176
|
|
|
167
177
|
### 3. Frontend検出
|
|
168
178
|
```bash
|
|
169
|
-
# 並行実行タスク:
|
|
170
|
-
# ローカル検出ロジック(Task toolは使用せず、直接実行)
|
|
171
|
-
|
|
172
179
|
# Frontend変更を検出
|
|
173
180
|
FRONTEND_DETECTED=false
|
|
174
181
|
|
|
@@ -205,13 +212,6 @@ fi
|
|
|
205
212
|
echo "Frontend detected: $FRONTEND_DETECTED"
|
|
206
213
|
```
|
|
207
214
|
|
|
208
|
-
**並行実行の実装例**:
|
|
209
|
-
```plaintext
|
|
210
|
-
単一メッセージで以下を実行:
|
|
211
|
-
- Task tool(oss-license-checker)
|
|
212
|
-
- Task tool(stable-version-auditor)
|
|
213
|
-
- Bash tool(Frontend検出)
|
|
214
|
-
```
|
|
215
215
|
|
|
216
216
|
#### Step 1.3: 結果集約とゲート判定
|
|
217
217
|
|
|
@@ -260,7 +260,32 @@ fi
|
|
|
260
260
|
## Phase 2: TDD実装サイクル(自動修正ループ拡張)
|
|
261
261
|
|
|
262
262
|
### 目的
|
|
263
|
-
kiro:spec-implの基本TDD
|
|
263
|
+
kiro:spec-implの基本TDDサイクルに自動修正ループを追加する。
|
|
264
|
+
|
|
265
|
+
### Step 2.1: RED - 失敗するテストを書く
|
|
266
|
+
|
|
267
|
+
```markdown
|
|
268
|
+
- 次の小さな機能のテストを書く
|
|
269
|
+
- テストは失敗する(まだコードが存在しない)
|
|
270
|
+
- 説明的なテスト名を使用する
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Step 2.2: GREEN - 最小限のコードを書く
|
|
274
|
+
|
|
275
|
+
```markdown
|
|
276
|
+
- テストを通過させる最もシンプルな実装を行う
|
|
277
|
+
- このテストを通過させることだけに集中する
|
|
278
|
+
- 過度な設計を避ける
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Step 2.3: REFACTOR - クリーンアップ
|
|
282
|
+
|
|
283
|
+
```markdown
|
|
284
|
+
- コード構造と可読性を改善する
|
|
285
|
+
- 重複を削除する
|
|
286
|
+
- 適切な設計パターンを適用する
|
|
287
|
+
- リファクタリング後もすべてのテストが通過することを確認する
|
|
288
|
+
```
|
|
264
289
|
|
|
265
290
|
### Step 2.4: VERIFY - 品質チェック(自動修正ループ)
|
|
266
291
|
|
|
@@ -308,24 +333,18 @@ while [ $ITERATION -lt $MAX_ITERATIONS ]; do
|
|
|
308
333
|
# 自動修正を試行
|
|
309
334
|
echo "⚙️ 自動修正を試行します..."
|
|
310
335
|
|
|
311
|
-
# Lint修正
|
|
312
336
|
if [ "$LINT_FAILED" = true ]; then
|
|
313
337
|
echo "🔧 Lint自動修正を実行"
|
|
314
338
|
npm run lint:fix
|
|
315
339
|
fi
|
|
316
340
|
|
|
317
|
-
# 型エラー修正(簡易的な自動修正)
|
|
318
341
|
if [ "$TYPE_CHECK_FAILED" = true ]; then
|
|
319
342
|
echo "🔧 型エラーを分析中..."
|
|
320
|
-
# 型エラーログを分析して修正案を提示
|
|
321
|
-
# (実際の修正はAIによる判断が必要)
|
|
322
343
|
fi
|
|
323
344
|
|
|
324
|
-
# テスト失敗修正(実装バグの可能性)
|
|
325
345
|
if [ "$TEST_FAILED" = true ]; then
|
|
326
346
|
echo "🔧 テスト失敗を分析中..."
|
|
327
|
-
|
|
328
|
-
# ⚠️ 注意: テストは仕様。仕様変更の場合のみテストを修正
|
|
347
|
+
echo "⚠️ 注意: テストは仕様。仕様変更の場合のみテストを修正"
|
|
329
348
|
fi
|
|
330
349
|
|
|
331
350
|
ITERATION=$((ITERATION + 1))
|
|
@@ -360,7 +379,7 @@ fi
|
|
|
360
379
|
## Phase 3: 事後品質レビュー(Michi拡張)
|
|
361
380
|
|
|
362
381
|
### 目的
|
|
363
|
-
実装完了後、コードレビューとデザインレビュー(Frontend
|
|
382
|
+
実装完了後、コードレビューとデザインレビュー(Frontend時)を実行する。
|
|
364
383
|
|
|
365
384
|
### Step 3.1: コードレビュー(常に実行)
|
|
366
385
|
|
|
@@ -458,12 +477,6 @@ while [ $REVIEW_ITERATION -lt $MAX_REVIEW_ITERATIONS ]; do
|
|
|
458
477
|
# 自動修正を試行
|
|
459
478
|
echo "⚙️ レビュー指摘事項を自動修正中..."
|
|
460
479
|
|
|
461
|
-
# コードレビュー指摘の修正
|
|
462
|
-
# (実際の修正はAIによる判断が必要)
|
|
463
|
-
|
|
464
|
-
# デザインレビュー指摘の修正
|
|
465
|
-
# (CSS、HTML、ARIA属性の修正)
|
|
466
|
-
|
|
467
480
|
REVIEW_ITERATION=$((REVIEW_ITERATION + 1))
|
|
468
481
|
done
|
|
469
482
|
|
|
@@ -491,7 +504,7 @@ fi
|
|
|
491
504
|
## Phase 4: 最終検証(Michi拡張)
|
|
492
505
|
|
|
493
506
|
### 目的
|
|
494
|
-
|
|
507
|
+
全品質基準を最終確認する。カバレッジ95%以上、Mutation Testing(オプション)を実施。
|
|
495
508
|
|
|
496
509
|
### Step 4.1: 品質チェック最終実行
|
|
497
510
|
|
|
@@ -545,7 +558,6 @@ case "$LANGUAGE" in
|
|
|
545
558
|
exit 1
|
|
546
559
|
fi
|
|
547
560
|
|
|
548
|
-
# JaCoCo coverage report parsing (堅牢な実装)
|
|
549
561
|
if [ -f "build/reports/jacoco/test/jacocoTestReport.xml" ]; then
|
|
550
562
|
COVERAGE=$(grep -oP '<counter type="LINE"\s+missed="\K[0-9]+|covered="\K[0-9]+' build/reports/jacoco/test/jacocoTestReport.xml | \
|
|
551
563
|
awk 'NR==1{m=$1} NR==2{c=$1} END {if(m+c>0) printf "%.1f", c*100/(m+c); else print 100}')
|
|
@@ -574,7 +586,6 @@ case "$LANGUAGE" in
|
|
|
574
586
|
exit 1
|
|
575
587
|
fi
|
|
576
588
|
|
|
577
|
-
# Clover XML coverage parsing (堅牢な実装)
|
|
578
589
|
if [ -f "coverage/clover.xml" ]; then
|
|
579
590
|
TOTAL_STATEMENTS=$(grep -oP '<metrics.*?statements="\K[0-9]+' coverage/clover.xml | awk '{sum+=$1} END {print sum}')
|
|
580
591
|
COVERED_STATEMENTS=$(grep -oP '<metrics.*?coveredstatements="\K[0-9]+' coverage/clover.xml | awk '{sum+=$1} END {print sum}')
|
|
@@ -610,7 +621,6 @@ fi
|
|
|
610
621
|
if [ "$MUTATION" = true ]; then
|
|
611
622
|
echo "=== Mutation Testing ==="
|
|
612
623
|
|
|
613
|
-
# Step 4.1 で検出済みの $LANGUAGE 変数を再利用
|
|
614
624
|
case "$LANGUAGE" in
|
|
615
625
|
nodejs)
|
|
616
626
|
echo "🔍 Node.js/TypeScript → Stryker"
|
|
@@ -685,6 +695,168 @@ echo "======================================"
|
|
|
685
695
|
|
|
686
696
|
---
|
|
687
697
|
|
|
698
|
+
## Phase 4.4: PRサイズチェック(Michi拡張)
|
|
699
|
+
|
|
700
|
+
### 目的
|
|
701
|
+
レビュアビリティを確保するため、PRサイズを監視し、500行を超えた場合にPR分割を提案する。
|
|
702
|
+
|
|
703
|
+
### Step 4.4.1: PRサイズ評価
|
|
704
|
+
|
|
705
|
+
**重要**: このステップは品質チェック完了後、タスク完了マーク前に実行する。
|
|
706
|
+
|
|
707
|
+
```markdown
|
|
708
|
+
Task tool:
|
|
709
|
+
subagent_type: pr-size-monitor
|
|
710
|
+
prompt: |
|
|
711
|
+
現在の変更量を確認し、PRサイズを評価してください。
|
|
712
|
+
|
|
713
|
+
**機能名**: $1
|
|
714
|
+
|
|
715
|
+
**閾値**: 500行(追加+削除、除外ファイル除く)
|
|
716
|
+
|
|
717
|
+
**除外ファイル**:
|
|
718
|
+
- ロックファイル: package-lock.json, yarn.lock, pnpm-lock.yaml,
|
|
719
|
+
composer.lock, Gemfile.lock, poetry.lock, Cargo.lock, go.sum
|
|
720
|
+
- 自動生成: dist/*, build/*, coverage/*, .next/*, *.min.js, *.min.css
|
|
721
|
+
|
|
722
|
+
**実行手順**:
|
|
723
|
+
1. git diff --stat でベースブランチとの差分を取得
|
|
724
|
+
2. 除外ファイルを除いた行数を計算
|
|
725
|
+
3. 500行超過時:
|
|
726
|
+
- 現在の変更量を報告
|
|
727
|
+
- AskUserQuestionでPR作成を確認
|
|
728
|
+
- 同意があれば自動でPR作成(commit, push, gh pr create)
|
|
729
|
+
- 新しいブランチで残りの作業を継続
|
|
730
|
+
4. 500行未満: ✅ OK、Phase 4.5へ進行
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
**サブエージェント呼び出しの流れ**:
|
|
734
|
+
|
|
735
|
+
```plaintext
|
|
736
|
+
Phase 4.4 実行
|
|
737
|
+
↓
|
|
738
|
+
pr-size-monitor 起動
|
|
739
|
+
↓
|
|
740
|
+
変更量計測(500行超過?)
|
|
741
|
+
├─ NO(500行未満): ✅ OK → Phase 4.5へ
|
|
742
|
+
└─ YES(500行以上):
|
|
743
|
+
↓
|
|
744
|
+
AskUserQuestion(ユーザー確認)
|
|
745
|
+
├─ A) PR作成する → commit → push → gh pr create → 新ブランチ提案
|
|
746
|
+
├─ B) 作業続行 → 警告表示 → Phase 4.5へ
|
|
747
|
+
└─ C) 分割戦略提案 → 分割案表示 → 再度ユーザー確認
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
---
|
|
751
|
+
|
|
752
|
+
## Phase 4.5: タスク完了マーク(Michi拡張)
|
|
753
|
+
|
|
754
|
+
### 目的
|
|
755
|
+
各タスク実装完了後、tasks.mdのチェックボックスを更新してタスクの進捗を記録する。
|
|
756
|
+
|
|
757
|
+
### Step 4.5.1: MARK COMPLETE - tasks.md更新
|
|
758
|
+
|
|
759
|
+
```bash
|
|
760
|
+
# 品質チェックが成功したら、tasks.mdを更新
|
|
761
|
+
echo "=== タスク完了をマーク ==="
|
|
762
|
+
|
|
763
|
+
# tasks.mdのチェックボックスを更新
|
|
764
|
+
# - [ ] タスク名 → - [x] タスク名
|
|
765
|
+
TASK_FILE=".kiro/specs/$1/tasks.md"
|
|
766
|
+
|
|
767
|
+
if [ -f "$TASK_FILE" ]; then
|
|
768
|
+
# 現在のタスク番号に対応する行を更新
|
|
769
|
+
# 例: "- [ ] 1.1 タスク説明" → "- [x] 1.1 タスク説明"
|
|
770
|
+
sed -i '' "s/- \[ \] $TASK_NUMBER/- [x] $TASK_NUMBER/" "$TASK_FILE"
|
|
771
|
+
echo "✅ tasks.md を更新しました: タスク $TASK_NUMBER を完了"
|
|
772
|
+
else
|
|
773
|
+
echo "⚠️ tasks.mdが見つかりません: $TASK_FILE"
|
|
774
|
+
fi
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
**重要**: タスクが完了したら、必ずtasks.mdのチェックボックスを更新する。
|
|
778
|
+
- 未完了: `- [ ]`
|
|
779
|
+
- 完了済: `- [x]`
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
## Phase 5: タスク完了後の処理(Michi拡張)
|
|
784
|
+
|
|
785
|
+
### 目的
|
|
786
|
+
すべてのタスクが完了した場合、スペックをarchiveに移動する。
|
|
787
|
+
|
|
788
|
+
### Step 5.1: Archive確認とプロンプト
|
|
789
|
+
|
|
790
|
+
```bash
|
|
791
|
+
echo ""
|
|
792
|
+
echo "======================================"
|
|
793
|
+
echo " タスク完了確認"
|
|
794
|
+
echo "======================================"
|
|
795
|
+
echo ""
|
|
796
|
+
echo "すべてのタスクが完了しました。"
|
|
797
|
+
echo ""
|
|
798
|
+
echo "次のアクション:"
|
|
799
|
+
echo "A) スペックをarchiveに移動する(推奨)"
|
|
800
|
+
echo "B) 追加のタスクを実行する"
|
|
801
|
+
echo "C) 何もしない"
|
|
802
|
+
echo ""
|
|
803
|
+
|
|
804
|
+
# ユーザー確認
|
|
805
|
+
# 注: AskUserQuestionツールが利用可能な場合は、そちらを優先使用すること
|
|
806
|
+
read -p "どの対応を希望しますか? (A/B/C): " ARCHIVE_ACTION
|
|
807
|
+
|
|
808
|
+
if [ "$ARCHIVE_ACTION" = "A" ]; then
|
|
809
|
+
echo "🗃️ スペックをarchiveに移動します..."
|
|
810
|
+
npx @sk8metal/michi-cli spec:archive $1
|
|
811
|
+
|
|
812
|
+
if [ $? -eq 0 ]; then
|
|
813
|
+
echo "✅ スペックをarchiveに移動しました"
|
|
814
|
+
echo ""
|
|
815
|
+
echo "Archive先: .kiro/specs/.archive/$1/"
|
|
816
|
+
echo "- spec.json"
|
|
817
|
+
echo "- requirements.md"
|
|
818
|
+
echo "- design.md"
|
|
819
|
+
echo "- tasks.md"
|
|
820
|
+
echo "- validation-reports/"
|
|
821
|
+
else
|
|
822
|
+
echo "❌ スペックのarchive移動に失敗しました"
|
|
823
|
+
echo "手動で実行する場合: npx @sk8metal/michi-cli spec:archive $1"
|
|
824
|
+
fi
|
|
825
|
+
elif [ "$ARCHIVE_ACTION" = "B" ]; then
|
|
826
|
+
echo "✅ 追加のタスクを実行できます"
|
|
827
|
+
echo ""
|
|
828
|
+
echo "次のコマンドを実行してください:"
|
|
829
|
+
echo "/michi:spec-impl $1 [task-numbers]"
|
|
830
|
+
else
|
|
831
|
+
echo "✅ スペックはそのままにしておきます"
|
|
832
|
+
echo ""
|
|
833
|
+
echo "後でarchiveする場合: npx @sk8metal/michi-cli spec:archive $1"
|
|
834
|
+
fi
|
|
835
|
+
```
|
|
836
|
+
|
|
837
|
+
### Step 5.2: Archive後の推奨アクション(参考情報)
|
|
838
|
+
|
|
839
|
+
```markdown
|
|
840
|
+
スペックをarchiveに移動した後の推奨アクション:
|
|
841
|
+
|
|
842
|
+
1. **ドキュメント更新**
|
|
843
|
+
- CHANGELOG.md に変更内容を記録
|
|
844
|
+
- README.md を必要に応じて更新
|
|
845
|
+
|
|
846
|
+
2. **PR作成**
|
|
847
|
+
- 実装ブランチをmainにマージするPRを作成
|
|
848
|
+
- Phase Aテスト(unit, lint, build)を実行
|
|
849
|
+
|
|
850
|
+
3. **リリース準備** (Phase B)
|
|
851
|
+
- 統合テスト、E2Eテスト、パフォーマンステスト、セキュリティテストを実行
|
|
852
|
+
- `/michi:confluence-sync` でリリース手順書を作成
|
|
853
|
+
|
|
854
|
+
4. **次の機能開発**
|
|
855
|
+
- `/kiro:spec-init "description"` で新しいスペックを作成
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
---
|
|
859
|
+
|
|
688
860
|
## 安全性ルール
|
|
689
861
|
|
|
690
862
|
### 必須確認ケース
|
|
@@ -693,6 +865,7 @@ echo "======================================"
|
|
|
693
865
|
2. **Phase 2で自動修正失敗時**: 最大5回試行後、ユーザー確認
|
|
694
866
|
3. **Phase 3でレビュー失敗時**: 最大5回修正後、ユーザー確認
|
|
695
867
|
4. **Phase 4でカバレッジ不足時**: 即時停止、ユーザー確認
|
|
868
|
+
5. **Phase 5でArchive実行時**: 必ずユーザー確認、明示的な承認
|
|
696
869
|
|
|
697
870
|
### 禁止事項
|
|
698
871
|
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-reviewer
|
|
3
|
+
description: |
|
|
4
|
+
Markdown document quality reviewer for README, API specs, design documents,
|
|
5
|
+
and changelogs. Detects verbose expressions, missing sections, duplicates,
|
|
6
|
+
and formatting issues. Use for any .md file review.
|
|
7
|
+
license: MIT
|
|
8
|
+
metadata:
|
|
9
|
+
author: michi
|
|
10
|
+
version: "1.0"
|
|
11
|
+
allowed-tools: Read Glob Grep
|
|
12
|
+
model: haiku
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Document Reviewer Agent
|
|
16
|
+
|
|
17
|
+
## Language
|
|
18
|
+
|
|
19
|
+
All output should be in: **{{LANG_CODE}}**
|
|
20
|
+
|
|
21
|
+
## Development Guidelines
|
|
22
|
+
|
|
23
|
+
{{DEV_GUIDELINES}}
|
|
24
|
+
|
|
25
|
+
## Role
|
|
26
|
+
|
|
27
|
+
Markdown document quality reviewer.
|
|
28
|
+
|
|
29
|
+
## Responsibilities
|
|
30
|
+
|
|
31
|
+
- Document quality assessment based on predefined criteria
|
|
32
|
+
- Detection of prohibited patterns (verbose expressions, redundancy, duplication)
|
|
33
|
+
- Verification of required sections for each document type
|
|
34
|
+
- Word count validation against guidelines
|
|
35
|
+
- Providing actionable improvement suggestions
|
|
36
|
+
|
|
37
|
+
## Review Criteria
|
|
38
|
+
|
|
39
|
+
@.claude/rules/doc-review-rules.md
|
|
40
|
+
|
|
41
|
+
## Review Workflow
|
|
42
|
+
|
|
43
|
+
### 1. Document Type Detection
|
|
44
|
+
|
|
45
|
+
Identify document type from filename or path:
|
|
46
|
+
- `README.md` → README (30-50 lines)
|
|
47
|
+
- `requirements.md` → Requirements Document (50-100 lines)
|
|
48
|
+
- `design.md` → Design Document (50-100 lines)
|
|
49
|
+
- `tasks.md` → Task List (checklist format)
|
|
50
|
+
- `CHANGELOG.md` → Changelog (1-3 lines per item)
|
|
51
|
+
- `docs/api/**/*.md` → API Specification (10-20 lines per feature)
|
|
52
|
+
- Others → General Document (basic structure check only)
|
|
53
|
+
|
|
54
|
+
### 2. Word Count Validation
|
|
55
|
+
|
|
56
|
+
- Count lines in the document
|
|
57
|
+
- Compare against guideline for document type
|
|
58
|
+
- Determine: ✅ OK / ⚠️ Exceeds / ❌ Insufficient
|
|
59
|
+
|
|
60
|
+
### 3. Prohibited Pattern Detection
|
|
61
|
+
|
|
62
|
+
Detect the following patterns:
|
|
63
|
+
- Verbose expressions: "〜することができます" → "〜できます"
|
|
64
|
+
- Overuse of: "〜という", "〜のような"
|
|
65
|
+
- Excessive background explanation
|
|
66
|
+
- Duplicate content across sections
|
|
67
|
+
- Broken links or invalid references
|
|
68
|
+
- Heading hierarchy issues (skipping levels)
|
|
69
|
+
|
|
70
|
+
### 3.5. Michi-Specific Checks
|
|
71
|
+
|
|
72
|
+
For documents in `.kiro/specs/` directory:
|
|
73
|
+
- **@-reference integrity**: Verify `@.claude/rules/...` paths exist and are valid
|
|
74
|
+
- **Placeholder detection**: Check for unreplaced placeholders like `{{PLACEHOLDER}}`
|
|
75
|
+
- **Phase compliance**: For `design.md`, verify Test Plan section exists (Phase 0.3-0.4)
|
|
76
|
+
- **Project context**: Validate {{PROJECT_ID}}, {{KIRO_DIR}}, {{AGENT_DIR}} usage
|
|
77
|
+
|
|
78
|
+
### 4. Required Section Verification
|
|
79
|
+
|
|
80
|
+
Verify required sections based on document type:
|
|
81
|
+
- **README**: Overview, Usage (installation/execution), License
|
|
82
|
+
- **Requirements Document**: Background, Requirements List, Acceptance Criteria
|
|
83
|
+
- **Design Document**: Purpose, Structure, Rationale (decision-making reasons)
|
|
84
|
+
- **Design Document (Michi-specific)**: Test Plan section (Phase 0.3-0.4 compliance)
|
|
85
|
+
- **Task List**: Task format with checkboxes (- [ ] or - [x])
|
|
86
|
+
- **API Specification**: Endpoint, Parameters, Response format
|
|
87
|
+
- **Changelog**: Version, Changes description
|
|
88
|
+
|
|
89
|
+
### 5. Output Results
|
|
90
|
+
|
|
91
|
+
Output review results in the format defined in doc-review-rules.md:
|
|
92
|
+
- Visual indicators: ✅ / ⚠️ / ❌
|
|
93
|
+
- Specific line numbers for issues
|
|
94
|
+
- Actionable improvement suggestions
|
|
95
|
+
|
|
96
|
+
## Project Context
|
|
97
|
+
|
|
98
|
+
- Project ID: {{PROJECT_ID}}
|
|
99
|
+
- Kiro directory: {{KIRO_DIR}}
|
|
100
|
+
- Agent directory: {{AGENT_DIR}}
|
|
101
|
+
|
|
102
|
+
## Constraints
|
|
103
|
+
|
|
104
|
+
- Reviews are suggestions, not enforcement
|
|
105
|
+
- Respect project-specific style guides
|
|
106
|
+
- Human review remains essential
|
|
107
|
+
|
|
108
|
+
## Usage Example
|
|
109
|
+
|
|
110
|
+
When reviewing `.kiro/specs/{{FEATURE_NAME}}/requirements.md`:
|
|
111
|
+
|
|
112
|
+
1. Read the file using Read tool
|
|
113
|
+
2. Detect document type: Design Document (50-100 lines guideline)
|
|
114
|
+
3. Count lines and compare
|
|
115
|
+
4. Search for prohibited patterns using Grep
|
|
116
|
+
5. Verify required sections: Purpose, Structure, Rationale
|
|
117
|
+
6. Output structured review results
|
|
118
|
+
|
|
119
|
+
## Output Format
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
## Document Review Results: `<file-path>`
|
|
123
|
+
|
|
124
|
+
### 📋 Document Type
|
|
125
|
+
README / Requirements / Design / Task List / API Spec / Changelog / General
|
|
126
|
+
|
|
127
|
+
### 📊 Word Count
|
|
128
|
+
✅ OK (75 lines, target: 50-100 lines)
|
|
129
|
+
⚠️ Exceeds (120 lines, target: 50-100 lines, recommend reducing by 20 lines)
|
|
130
|
+
❌ Insufficient (25 lines, minimum 50 lines required, need 25 more lines)
|
|
131
|
+
|
|
132
|
+
### 🔍 Prohibited Patterns
|
|
133
|
+
✅ No issues found
|
|
134
|
+
|
|
135
|
+
または
|
|
136
|
+
|
|
137
|
+
⚠️ Verbose expressions: 2 locations
|
|
138
|
+
- L12: "利用することができます" → "利用できます"
|
|
139
|
+
- L35: "設定を行うことができます" → "設定できます"
|
|
140
|
+
|
|
141
|
+
⚠️ Duplicate content: 1 location
|
|
142
|
+
- L45-48 and L120-123 contain identical information
|
|
143
|
+
|
|
144
|
+
⚠️ Heading hierarchy: 1 issue
|
|
145
|
+
- L32: Skipped from h2 to h4 (should be h3)
|
|
146
|
+
|
|
147
|
+
### 🔧 Michi-Specific Issues
|
|
148
|
+
✅ No Michi-specific issues
|
|
149
|
+
|
|
150
|
+
または
|
|
151
|
+
|
|
152
|
+
⚠️ Placeholder found: 1 location
|
|
153
|
+
- L67: Unreplaced {{PROJECT_ID}}
|
|
154
|
+
|
|
155
|
+
⚠️ @-reference invalid: 1 location
|
|
156
|
+
- L89: @.claude/rules/non-existent.md (file not found)
|
|
157
|
+
|
|
158
|
+
❌ Missing Test Plan section (Phase 0.3-0.4 requirement for design.md)
|
|
159
|
+
|
|
160
|
+
### ✅ Required Sections
|
|
161
|
+
✅ All present
|
|
162
|
+
- Purpose
|
|
163
|
+
- Structure
|
|
164
|
+
- Rationale
|
|
165
|
+
|
|
166
|
+
または
|
|
167
|
+
|
|
168
|
+
❌ Missing required sections
|
|
169
|
+
- License information
|
|
170
|
+
- Installation instructions
|
|
171
|
+
|
|
172
|
+
### 🎯 Overall Assessment
|
|
173
|
+
✅ Pass - No issues found
|
|
174
|
+
⚠️ Improvement recommended - Fix verbose expressions and placeholders
|
|
175
|
+
❌ Fail - Missing required sections and Phase compliance
|
|
176
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Document Review Rules
|
|
2
|
+
|
|
3
|
+
## 目的
|
|
4
|
+
|
|
5
|
+
ドキュメント品質を自動的にチェックし、一貫性のある高品質なドキュメント作成を支援する。
|
|
6
|
+
|
|
7
|
+
## 文量ガイドライン
|
|
8
|
+
|
|
9
|
+
| ドキュメント種別 | 目安行数 | 必須セクション |
|
|
10
|
+
|------------------|----------|----------------|
|
|
11
|
+
| README | 30-50行 | 概要, 使い方, ライセンス |
|
|
12
|
+
| API仕様 | 機能あたり10-20行 | エンドポイント, パラメータ, レスポンス |
|
|
13
|
+
| 設計書 | 50-100行 | 目的, 構成, 判断理由 |
|
|
14
|
+
| 変更履歴 | 項目あたり1-3行 | バージョン, 変更内容 |
|
|
15
|
+
|
|
16
|
+
## 禁止パターン
|
|
17
|
+
|
|
18
|
+
以下のパターンを検出した場合、修正を提案する:
|
|
19
|
+
|
|
20
|
+
1. **冗長表現**
|
|
21
|
+
- 「〜することができます」 → 「〜できます」に修正
|
|
22
|
+
- 「〜という」「〜のような」の過剰な使用 → 削除
|
|
23
|
+
|
|
24
|
+
2. **過剰な背景説明**
|
|
25
|
+
- 導入部での不必要な前置き
|
|
26
|
+
- 自明な内容の長い説明
|
|
27
|
+
|
|
28
|
+
3. **自明なコードコメント転記**
|
|
29
|
+
- コードそのままの説明
|
|
30
|
+
- 変数名や関数名を繰り返すだけの説明
|
|
31
|
+
|
|
32
|
+
4. **重複記載**
|
|
33
|
+
- 同じ情報が複数セクションに記載されている
|
|
34
|
+
- 情報は1箇所にのみ記載すべき
|
|
35
|
+
|
|
36
|
+
## 必須セクション検証
|
|
37
|
+
|
|
38
|
+
### README
|
|
39
|
+
- [ ] 概要
|
|
40
|
+
- [ ] 使い方(インストール・実行方法)
|
|
41
|
+
- [ ] ライセンス
|
|
42
|
+
|
|
43
|
+
### API仕様
|
|
44
|
+
- [ ] エンドポイント
|
|
45
|
+
- [ ] パラメータ
|
|
46
|
+
- [ ] レスポンス
|
|
47
|
+
|
|
48
|
+
### 設計書
|
|
49
|
+
- [ ] 目的
|
|
50
|
+
- [ ] 構成
|
|
51
|
+
- [ ] 判断理由
|
|
52
|
+
|
|
53
|
+
### 変更履歴
|
|
54
|
+
- [ ] バージョン
|
|
55
|
+
- [ ] 変更内容
|
|
56
|
+
|
|
57
|
+
## レビュー結果出力形式
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## ドキュメントレビュー結果
|
|
61
|
+
|
|
62
|
+
### 文量チェック
|
|
63
|
+
✅ OK (45行) / ⚠️ 超過 (65行、目標50行以内) / ❌ 不足 (20行、最低30行必要)
|
|
64
|
+
|
|
65
|
+
### 禁止パターンチェック
|
|
66
|
+
✅ 問題なし
|
|
67
|
+
|
|
68
|
+
または
|
|
69
|
+
|
|
70
|
+
⚠️ 冗長表現: 3箇所
|
|
71
|
+
- L12: 「することができます」 → 「できます」
|
|
72
|
+
- L28: 「という」 → 削除を検討
|
|
73
|
+
- L35: 「することができます」 → 「できます」
|
|
74
|
+
|
|
75
|
+
### 必須セクションチェック
|
|
76
|
+
✅ すべて揃っています
|
|
77
|
+
|
|
78
|
+
または
|
|
79
|
+
|
|
80
|
+
❌ 必須セクション不足: ライセンス
|
|
81
|
+
|
|
82
|
+
### 総合評価
|
|
83
|
+
✅ 合格 / ⚠️ 改善推奨 / ❌ 不合格
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## レビュー実行タイミング
|
|
87
|
+
|
|
88
|
+
- Markdownファイル作成時
|
|
89
|
+
- Markdownファイル編集完了時
|
|
90
|
+
- 手動レビューコマンド実行時(`/doc:review`)
|
|
91
|
+
|
|
92
|
+
## 適用除外
|
|
93
|
+
|
|
94
|
+
以下のファイルはレビュー対象外:
|
|
95
|
+
- `CHANGELOG.md` - 自動生成される場合
|
|
96
|
+
- `node_modules/**/*.md` - 依存パッケージのドキュメント
|
|
97
|
+
- `.git/**/*.md` - Git管理ファイル
|
|
98
|
+
- `vendor/**/*.md` - サードパーティライブラリ
|