@sk8metal/michi-cli 0.0.9 → 0.2.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 +27 -0
- package/README.md +236 -57
- package/dist/scripts/__tests__/create-project.test.js +24 -28
- package/dist/scripts/__tests__/create-project.test.js.map +1 -1
- package/dist/scripts/__tests__/jira-transitions.test.d.ts +5 -0
- package/dist/scripts/__tests__/jira-transitions.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/jira-transitions.test.js +172 -0
- package/dist/scripts/__tests__/jira-transitions.test.js.map +1 -0
- package/dist/scripts/__tests__/multi-project-estimate.test.js +14 -15
- package/dist/scripts/__tests__/multi-project-estimate.test.js.map +1 -1
- package/dist/scripts/__tests__/setup-existing-project.test.js +79 -0
- package/dist/scripts/__tests__/setup-existing-project.test.js.map +1 -1
- package/dist/scripts/__tests__/setup-interactive.test.js +23 -17
- package/dist/scripts/__tests__/setup-interactive.test.js.map +1 -1
- package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts +5 -0
- package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/spec-impl-workflow.test.js +321 -0
- package/dist/scripts/__tests__/spec-impl-workflow.test.js.map +1 -0
- package/dist/scripts/__tests__/spec-loader.test.d.ts +5 -0
- package/dist/scripts/__tests__/spec-loader.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/spec-loader.test.js +153 -0
- package/dist/scripts/__tests__/spec-loader.test.js.map +1 -0
- package/dist/scripts/__tests__/validate-phase.test.js +109 -22
- package/dist/scripts/__tests__/validate-phase.test.js.map +1 -1
- package/dist/scripts/config/config-schema.d.ts +31 -0
- package/dist/scripts/config/config-schema.d.ts.map +1 -1
- package/dist/scripts/config/config-schema.js +64 -26
- package/dist/scripts/config/config-schema.js.map +1 -1
- package/dist/scripts/config-interactive.d.ts.map +1 -1
- package/dist/scripts/config-interactive.js +53 -38
- package/dist/scripts/config-interactive.js.map +1 -1
- package/dist/scripts/confluence-sync.d.ts.map +1 -1
- package/dist/scripts/confluence-sync.js +0 -11
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/constants/__tests__/environments.test.js +39 -5
- package/dist/scripts/constants/__tests__/environments.test.js.map +1 -1
- package/dist/scripts/constants/environments.d.ts +1 -1
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +22 -7
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/constants/test-commands.d.ts +36 -0
- package/dist/scripts/constants/test-commands.d.ts.map +1 -0
- package/dist/scripts/constants/test-commands.js +70 -0
- package/dist/scripts/constants/test-commands.js.map +1 -0
- package/dist/scripts/jira-sync.d.ts +89 -3
- package/dist/scripts/jira-sync.d.ts.map +1 -1
- package/dist/scripts/jira-sync.js +366 -96
- package/dist/scripts/jira-sync.js.map +1 -1
- package/dist/scripts/markdown-to-confluence.js +1 -1
- package/dist/scripts/markdown-to-confluence.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 +809 -13
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/pr-automation.d.ts.map +1 -1
- package/dist/scripts/pr-automation.js.map +1 -1
- package/dist/scripts/pre-flight-check.js +1 -1
- package/dist/scripts/pre-flight-check.js.map +1 -1
- package/dist/scripts/setup-existing-project.js +61 -29
- package/dist/scripts/setup-existing-project.js.map +1 -1
- package/dist/scripts/setup-interactive.js +3 -3
- package/dist/scripts/setup-interactive.js.map +1 -1
- package/dist/scripts/spec-impl-workflow.d.ts +94 -0
- package/dist/scripts/spec-impl-workflow.d.ts.map +1 -0
- package/dist/scripts/spec-impl-workflow.js +354 -0
- package/dist/scripts/spec-impl-workflow.js.map +1 -0
- package/dist/scripts/template/__tests__/renderer.test.js.map +1 -1
- package/dist/scripts/test-execution-generator.d.ts +52 -0
- package/dist/scripts/test-execution-generator.d.ts.map +1 -0
- package/dist/scripts/test-execution-generator.js +576 -0
- package/dist/scripts/test-execution-generator.js.map +1 -0
- package/dist/scripts/test-interactive.d.ts +10 -0
- package/dist/scripts/test-interactive.d.ts.map +1 -0
- package/dist/scripts/test-interactive.js +627 -0
- package/dist/scripts/test-interactive.js.map +1 -0
- package/dist/scripts/test-new-features.d.ts +5 -0
- package/dist/scripts/test-new-features.d.ts.map +1 -0
- package/dist/scripts/test-new-features.js +145 -0
- package/dist/scripts/test-new-features.js.map +1 -0
- package/dist/scripts/test-spec-generator.d.ts +29 -0
- package/dist/scripts/test-spec-generator.d.ts.map +1 -0
- package/dist/scripts/test-spec-generator.js +494 -0
- package/dist/scripts/test-spec-generator.js.map +1 -0
- package/dist/scripts/test-workflow-stages.d.ts +6 -0
- package/dist/scripts/test-workflow-stages.d.ts.map +1 -0
- package/dist/scripts/test-workflow-stages.js +43 -0
- package/dist/scripts/test-workflow-stages.js.map +1 -0
- package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/aidlc-parser.test.js +315 -0
- package/dist/scripts/utils/__tests__/aidlc-parser.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/business-days.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/business-days.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/business-days.test.js +171 -0
- package/dist/scripts/utils/__tests__/business-days.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/config-loader.test.js +1 -1
- package/dist/scripts/utils/__tests__/config-loader.test.js.map +1 -1
- package/dist/scripts/utils/__tests__/config-validator.test.js +164 -35
- package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
- package/dist/scripts/utils/__tests__/env-config.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/env-config.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/env-config.test.js +218 -0
- package/dist/scripts/utils/__tests__/env-config.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js +202 -0
- package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/tasks-converter.test.js +500 -0
- package/dist/scripts/utils/__tests__/tasks-converter.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.js +314 -0
- package/dist/scripts/utils/__tests__/tasks-format-validator.test.js.map +1 -0
- package/dist/scripts/utils/__tests__/test-runner.test.d.ts +5 -0
- package/dist/scripts/utils/__tests__/test-runner.test.d.ts.map +1 -0
- package/dist/scripts/utils/__tests__/test-runner.test.js +64 -0
- package/dist/scripts/utils/__tests__/test-runner.test.js.map +1 -0
- package/dist/scripts/utils/aidlc-parser.d.ts +86 -0
- package/dist/scripts/utils/aidlc-parser.d.ts.map +1 -0
- package/dist/scripts/utils/aidlc-parser.js +208 -0
- package/dist/scripts/utils/aidlc-parser.js.map +1 -0
- package/dist/scripts/utils/business-days.d.ts +52 -0
- package/dist/scripts/utils/business-days.d.ts.map +1 -0
- package/dist/scripts/utils/business-days.js +98 -0
- package/dist/scripts/utils/business-days.js.map +1 -0
- package/dist/scripts/utils/ci-generator.d.ts +14 -0
- package/dist/scripts/utils/ci-generator.d.ts.map +1 -0
- package/dist/scripts/utils/ci-generator.js +61 -0
- package/dist/scripts/utils/ci-generator.js.map +1 -0
- package/dist/scripts/utils/config-loader.js +2 -2
- package/dist/scripts/utils/config-loader.js.map +1 -1
- package/dist/scripts/utils/config-validator.d.ts +7 -1
- package/dist/scripts/utils/config-validator.d.ts.map +1 -1
- package/dist/scripts/utils/config-validator.js +136 -23
- package/dist/scripts/utils/config-validator.js.map +1 -1
- package/dist/scripts/utils/confluence-approval.d.ts +46 -0
- package/dist/scripts/utils/confluence-approval.d.ts.map +1 -0
- package/dist/scripts/utils/confluence-approval.js +118 -0
- package/dist/scripts/utils/confluence-approval.js.map +1 -0
- package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
- package/dist/scripts/utils/confluence-hierarchy.js +1 -1
- package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
- package/dist/scripts/utils/docker-generator.d.ts +9 -0
- package/dist/scripts/utils/docker-generator.d.ts.map +1 -0
- package/dist/scripts/utils/docker-generator.js +132 -0
- package/dist/scripts/utils/docker-generator.js.map +1 -0
- package/dist/scripts/utils/docker-requirement-detector.d.ts +15 -0
- package/dist/scripts/utils/docker-requirement-detector.d.ts.map +1 -0
- package/dist/scripts/utils/docker-requirement-detector.js +124 -0
- package/dist/scripts/utils/docker-requirement-detector.js.map +1 -0
- package/dist/scripts/utils/env-config.d.ts +54 -0
- package/dist/scripts/utils/env-config.d.ts.map +1 -0
- package/dist/scripts/utils/env-config.js +414 -0
- package/dist/scripts/utils/env-config.js.map +1 -0
- package/dist/scripts/utils/jira-issue-type-fetcher.d.ts +70 -0
- package/dist/scripts/utils/jira-issue-type-fetcher.d.ts.map +1 -0
- package/dist/scripts/utils/jira-issue-type-fetcher.js +147 -0
- package/dist/scripts/utils/jira-issue-type-fetcher.js.map +1 -0
- package/dist/scripts/utils/language-detector.d.ts +14 -0
- package/dist/scripts/utils/language-detector.d.ts.map +1 -0
- package/dist/scripts/utils/language-detector.js +119 -0
- package/dist/scripts/utils/language-detector.js.map +1 -0
- package/dist/scripts/utils/markdown-parser.d.ts +55 -0
- package/dist/scripts/utils/markdown-parser.d.ts.map +1 -0
- package/dist/scripts/utils/markdown-parser.js +289 -0
- package/dist/scripts/utils/markdown-parser.js.map +1 -0
- package/dist/scripts/utils/project-detector.d.ts +17 -0
- package/dist/scripts/utils/project-detector.d.ts.map +1 -0
- package/dist/scripts/utils/project-detector.js +166 -0
- package/dist/scripts/utils/project-detector.js.map +1 -0
- package/dist/scripts/utils/project-finder.js +2 -2
- package/dist/scripts/utils/project-finder.js.map +1 -1
- package/dist/scripts/utils/release-notes-generator.d.ts +56 -0
- package/dist/scripts/utils/release-notes-generator.d.ts.map +1 -0
- package/dist/scripts/utils/release-notes-generator.js +162 -0
- package/dist/scripts/utils/release-notes-generator.js.map +1 -0
- package/dist/scripts/utils/spec-loader.d.ts +79 -0
- package/dist/scripts/utils/spec-loader.d.ts.map +1 -0
- package/dist/scripts/utils/spec-loader.js +80 -0
- package/dist/scripts/utils/spec-loader.js.map +1 -0
- package/dist/scripts/utils/spec-updater.d.ts +7 -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 +57 -0
- package/dist/scripts/utils/tasks-converter.d.ts.map +1 -0
- package/dist/scripts/utils/tasks-converter.js +322 -0
- package/dist/scripts/utils/tasks-converter.js.map +1 -0
- package/dist/scripts/utils/tasks-format-validator.d.ts +36 -0
- package/dist/scripts/utils/tasks-format-validator.d.ts.map +1 -0
- package/dist/scripts/utils/tasks-format-validator.js +158 -0
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -0
- package/dist/scripts/utils/template-applier.d.ts +37 -0
- package/dist/scripts/utils/template-applier.d.ts.map +1 -0
- package/dist/scripts/utils/template-applier.js +129 -0
- package/dist/scripts/utils/template-applier.js.map +1 -0
- package/dist/scripts/utils/test-config-generator.d.ts +12 -0
- package/dist/scripts/utils/test-config-generator.d.ts.map +1 -0
- package/dist/scripts/utils/test-config-generator.js +185 -0
- package/dist/scripts/utils/test-config-generator.js.map +1 -0
- package/dist/scripts/utils/test-runner.d.ts +31 -0
- package/dist/scripts/utils/test-runner.d.ts.map +1 -0
- package/dist/scripts/utils/test-runner.js +103 -0
- package/dist/scripts/utils/test-runner.js.map +1 -0
- 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 +171 -8
- package/dist/scripts/validate-phase.js.map +1 -1
- package/dist/scripts/workflow-orchestrator.d.ts +8 -0
- package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
- package/dist/scripts/workflow-orchestrator.js +108 -7
- package/dist/scripts/workflow-orchestrator.js.map +1 -1
- package/dist/src/__tests__/integration/internationalization.test.d.ts +8 -0
- package/dist/src/__tests__/integration/internationalization.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/internationalization.test.js +333 -0
- package/dist/src/__tests__/integration/internationalization.test.js.map +1 -0
- package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts +1 -1
- package/dist/src/__tests__/integration/setup/claude-agent.test.js +17 -20
- package/dist/src/__tests__/integration/setup/claude-agent.test.js.map +1 -1
- package/dist/src/__tests__/integration/setup/claude.test.js +82 -0
- package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -1
- package/dist/src/__tests__/integration/setup/cursor.test.js +23 -19
- package/dist/src/__tests__/integration/setup/cursor.test.js.map +1 -1
- package/dist/src/__tests__/integration/setup/validation.test.js +41 -58
- package/dist/src/__tests__/integration/setup/validation.test.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +209 -18
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +4 -0
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +367 -47
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/README.md +3 -1
- package/docs/context.md +59 -0
- package/docs/design-issue-55.md +240 -0
- package/docs/design-issue-56.md +181 -0
- package/docs/michi-development/testing/manual-verification-flow.md +2242 -0
- package/docs/michi-development/testing/pre-publish-checklist.md +560 -0
- package/docs/plan.md +275 -0
- package/docs/user-guide/getting-started/github-token-setup.md +509 -0
- package/docs/{getting-started → user-guide/getting-started}/quick-start.md +16 -0
- package/docs/{getting-started → user-guide/getting-started}/setup.md +28 -1
- package/docs/user-guide/guides/agent-skills-integration.md +217 -0
- package/docs/{guides → user-guide/guides}/customization.md +2 -2
- package/docs/user-guide/guides/internationalization.md +540 -0
- package/docs/{guides → user-guide/guides}/multi-project.md +3 -3
- package/docs/{guides → user-guide/guides}/phase-automation.md +92 -34
- package/docs/user-guide/guides/workflow.md +570 -0
- package/docs/user-guide/hands-on/README.md +142 -0
- package/docs/user-guide/hands-on/claude-agent-setup.md +455 -0
- package/docs/user-guide/hands-on/claude-setup.md +398 -0
- package/docs/user-guide/hands-on/cursor-setup.md +352 -0
- package/docs/user-guide/hands-on/troubleshooting.md +964 -0
- package/docs/user-guide/hands-on/verification-checklist.md +438 -0
- package/docs/user-guide/hands-on/workflow-walkthrough.md +906 -0
- package/docs/user-guide/reference/config.md +564 -0
- package/docs/{reference → user-guide/reference}/quick-reference.md +53 -40
- package/docs/{reference → user-guide/reference}/tasks-template.md +2 -2
- package/docs/user-guide/release/ci-setup.md +541 -0
- package/docs/user-guide/release/release-flow.md +476 -0
- package/docs/user-guide/templates/test-specs/README.md +173 -0
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +547 -0
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +435 -0
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +454 -0
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +664 -0
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +328 -0
- package/docs/{testing → user-guide/testing}/integration-tests.md +24 -9
- package/docs/user-guide/testing/tdd-cycle.md +349 -0
- package/docs/user-guide/testing/test-execution-flow.md +396 -0
- package/docs/user-guide/testing/test-failure-handling.md +521 -0
- package/docs/user-guide/testing/test-planning-flow.md +181 -0
- package/docs/user-guide/testing-strategy.md +185 -0
- package/docs/verification-guide.md +518 -0
- package/package.json +7 -2
- package/scripts/__tests__/create-project.test.ts +67 -49
- package/scripts/__tests__/jira-transitions.test.ts +225 -0
- package/scripts/__tests__/multi-project-estimate.test.ts +36 -30
- package/scripts/__tests__/setup-existing-project.test.ts +98 -1
- package/scripts/__tests__/setup-interactive.test.ts +52 -46
- package/scripts/__tests__/spec-impl-workflow.test.ts +429 -0
- package/scripts/__tests__/spec-loader.test.ts +199 -0
- package/scripts/__tests__/validate-phase.test.ts +178 -54
- package/scripts/config/config-schema.ts +100 -50
- package/scripts/config-interactive.ts +191 -136
- package/scripts/confluence-sync.ts +0 -12
- package/scripts/constants/__tests__/environments.test.ts +42 -6
- package/scripts/constants/environments.ts +33 -13
- package/scripts/constants/test-commands.ts +96 -0
- package/scripts/jira-sync.ts +767 -232
- package/scripts/markdown-to-confluence.ts +1 -1
- package/scripts/phase-runner.ts +1056 -63
- package/scripts/pr-automation.ts +0 -1
- package/scripts/pre-flight-check.ts +1 -1
- package/scripts/pre-publish-check.sh +311 -0
- package/scripts/quick-verify.sh +115 -0
- package/scripts/setup-existing-project.ts +201 -117
- package/scripts/setup-interactive.ts +4 -4
- package/scripts/spec-impl-workflow.ts +505 -0
- package/scripts/template/__tests__/renderer.test.ts +1 -2
- package/scripts/test-execution-generator.ts +695 -0
- package/scripts/test-interactive.ts +779 -0
- package/scripts/test-new-features.ts +168 -0
- package/scripts/test-npm-package.sh +345 -0
- package/scripts/test-spec-generator.ts +574 -0
- package/scripts/test-workflow-stages.ts +53 -0
- package/scripts/utils/__tests__/aidlc-parser.test.ts +349 -0
- package/scripts/utils/__tests__/business-days.test.ts +214 -0
- package/scripts/utils/__tests__/config-loader.test.ts +1 -1
- package/scripts/utils/__tests__/config-validator.test.ts +309 -88
- package/scripts/utils/__tests__/env-config.test.ts +259 -0
- package/scripts/utils/__tests__/jira-issue-type-fetcher.test.ts +272 -0
- package/scripts/utils/__tests__/tasks-converter.test.ts +582 -0
- package/scripts/utils/__tests__/tasks-format-validator.test.ts +338 -0
- package/scripts/utils/__tests__/test-runner.test.ts +77 -0
- package/scripts/utils/aidlc-parser.ts +289 -0
- package/scripts/utils/business-days.ts +115 -0
- package/scripts/utils/ci-generator.ts +84 -0
- package/scripts/utils/config-loader.ts +2 -2
- package/scripts/utils/config-validator.ts +304 -117
- package/scripts/utils/confluence-approval.ts +167 -0
- package/scripts/utils/confluence-hierarchy.ts +2 -4
- package/scripts/utils/docker-generator.ts +151 -0
- package/scripts/utils/docker-requirement-detector.ts +153 -0
- package/scripts/utils/env-config.ts +526 -0
- package/scripts/utils/jira-issue-type-fetcher.ts +199 -0
- package/scripts/utils/language-detector.ts +139 -0
- package/scripts/utils/markdown-parser.ts +376 -0
- package/scripts/utils/project-detector.ts +192 -0
- package/scripts/utils/project-finder.ts +2 -2
- package/scripts/utils/release-notes-generator.ts +210 -0
- package/scripts/utils/spec-loader.ts +125 -0
- package/scripts/utils/spec-updater.ts +8 -1
- package/scripts/utils/tasks-converter.ts +601 -0
- package/scripts/utils/tasks-format-validator.ts +193 -0
- package/scripts/utils/template-applier.ts +202 -0
- package/scripts/utils/test-config-generator.ts +210 -0
- package/scripts/utils/test-runner.ts +133 -0
- package/scripts/validate-phase.ts +207 -12
- package/scripts/workflow-orchestrator.ts +130 -12
- package/templates/ci/github-actions/java.yml +54 -0
- package/templates/ci/github-actions/nodejs.yml +46 -0
- package/templates/ci/github-actions/php.yml +52 -0
- package/templates/ci/screwdriver/java.yaml +17 -0
- package/templates/ci/screwdriver/nodejs.yaml +17 -0
- package/templates/ci/screwdriver/php.yaml +20 -0
- package/templates/claude/agents/design-reviewer/AGENT.md +497 -0
- package/templates/claude/agents/e2e-first-planner/AGENT.md +410 -0
- package/templates/claude/agents/oss-license-checker/AGENT.md +265 -0
- package/templates/claude/agents/pr-resolver/AGENT.md +196 -0
- package/templates/claude/agents/stable-version-auditor/AGENT.md +279 -0
- package/templates/claude/commands/kiro/kiro-spec-impl.md +253 -0
- package/templates/claude/commands/kiro/kiro-spec-tasks.md +368 -0
- package/templates/claude/commands/michi/design-review.md +66 -0
- package/templates/claude/commands/michi/e2e-plan.md +113 -0
- package/templates/claude/commands/michi/license-check.md +80 -0
- package/templates/claude/commands/michi/pr-resolve.md +153 -0
- package/templates/claude/commands/michi/version-audit.md +91 -0
- package/templates/claude/skills/design-review/SKILL.md +648 -0
- package/templates/claude/skills/e2e-first-planning/SKILL.md +360 -0
- package/templates/claude/skills/oss-license/SKILL.md +232 -0
- package/templates/claude/skills/stable-version/SKILL.md +252 -0
- package/templates/claude-agent/README.md +7 -1
- package/templates/claude-agent/agents/.gitkeep +0 -0
- package/templates/claude-agent/agents/designer.md +79 -0
- package/templates/claude-agent/agents/developer.md +68 -0
- package/templates/claude-agent/agents/manager-agent.md +59 -0
- package/templates/claude-agent/agents/tester.md +101 -0
- package/templates/claude-agent/commands/kiro/.gitkeep +0 -0
- package/templates/claude-agent/commands/kiro/kiro-spec-impl.md +244 -0
- package/templates/claude-agent/commands/kiro/kiro-spec-tasks.md +354 -0
- package/templates/cline/rules/atlassian-integration.md +36 -0
- package/templates/cline/rules/michi-core.md +56 -0
- package/templates/codex/AGENTS.override.md +277 -0
- package/templates/codex/prompts/confluence-sync.md +177 -0
- package/templates/codex/rules/README.md +210 -0
- package/templates/common/.kiro/project.json.template +21 -0
- package/templates/cursor/commands/kiro/kiro-spec-impl.md +244 -0
- package/templates/cursor/commands/kiro/kiro-spec-tasks.md +354 -0
- package/templates/gemini/commands/README.md +41 -0
- package/templates/gemini/rules/GEMINI.md +80 -0
- package/docs/guides/workflow.md +0 -342
- package/docs/reference/config.md +0 -545
- package/scripts/setup-existing.sh +0 -279
- /package/docs/{contributing → michi-development/contributing}/development.md +0 -0
- /package/docs/{contributing → michi-development/contributing}/release.md +0 -0
- /package/docs/{testing-strategy.md → michi-development/testing-strategy.md} +0 -0
- /package/docs/{getting-started → user-guide/getting-started}/new-repository-setup.md +0 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
# Unit Test Specification: {{TEST_NAME}}
|
|
2
|
+
|
|
3
|
+
**Author**: {{AUTHOR}}
|
|
4
|
+
**Date**: {{DATE}}
|
|
5
|
+
**Version**: 1.0
|
|
6
|
+
|
|
7
|
+
## 1. Overview
|
|
8
|
+
|
|
9
|
+
### 1.1 Purpose
|
|
10
|
+
{{PURPOSE}}
|
|
11
|
+
|
|
12
|
+
Example: To verify that individual functions and classes in the {{MODULE_NAME}} module work correctly in isolation.
|
|
13
|
+
|
|
14
|
+
### 1.2 Scope
|
|
15
|
+
{{SCOPE}}
|
|
16
|
+
|
|
17
|
+
Example: This test specification covers all public methods of the {{CLASS_NAME}} class and their edge cases.
|
|
18
|
+
|
|
19
|
+
### 1.3 Testing Tool
|
|
20
|
+
- **Tool**: {{TOOL_NAME}}
|
|
21
|
+
- **Version**: {{VERSION}}
|
|
22
|
+
|
|
23
|
+
Example:
|
|
24
|
+
- **Tool**: Vitest (Node.js) / JUnit 5 (Java) / PHPUnit (PHP)
|
|
25
|
+
- **Version**: 1.0.0 / 5.10.0 / 10.5.0
|
|
26
|
+
|
|
27
|
+
## 2. Test Environment
|
|
28
|
+
|
|
29
|
+
### 2.1 Software Requirements
|
|
30
|
+
- Programming Language: {{LANGUAGE}} {{LANGUAGE_VERSION}}
|
|
31
|
+
- Testing Framework: {{FRAMEWORK}} {{FRAMEWORK_VERSION}}
|
|
32
|
+
- Mocking Library: {{MOCKING_LIBRARY}} (if applicable)
|
|
33
|
+
- Dependencies: {{DEPENDENCIES}}
|
|
34
|
+
|
|
35
|
+
### 2.2 Hardware Requirements
|
|
36
|
+
- Not applicable for unit tests (runs on developer's machine or CI/CD)
|
|
37
|
+
|
|
38
|
+
### 2.3 Test Data
|
|
39
|
+
- Mock data location: `{{MOCK_DATA_PATH}}`
|
|
40
|
+
- Test fixtures: `{{FIXTURES_PATH}}`
|
|
41
|
+
- Data setup: {{DATA_SETUP_DESCRIPTION}}
|
|
42
|
+
|
|
43
|
+
## 3. Functions/Classes to Test
|
|
44
|
+
|
|
45
|
+
### 3.1 Target Components
|
|
46
|
+
List all functions/classes to be tested:
|
|
47
|
+
|
|
48
|
+
| Component | Type | Description | Priority |
|
|
49
|
+
|-----------|------|-------------|----------|
|
|
50
|
+
| {{COMPONENT_1}} | Function/Class | {{DESCRIPTION_1}} | High/Medium/Low |
|
|
51
|
+
| {{COMPONENT_2}} | Function/Class | {{DESCRIPTION_2}} | High/Medium/Low |
|
|
52
|
+
|
|
53
|
+
### 3.2 Mocking Strategy
|
|
54
|
+
Describe what external dependencies will be mocked:
|
|
55
|
+
|
|
56
|
+
| Dependency | Mock Type | Reason |
|
|
57
|
+
|------------|-----------|--------|
|
|
58
|
+
| {{DEPENDENCY_1}} | {{MOCK_TYPE}} | {{REASON}} |
|
|
59
|
+
| {{DEPENDENCY_2}} | {{MOCK_TYPE}} | {{REASON}} |
|
|
60
|
+
|
|
61
|
+
Example:
|
|
62
|
+
| Dependency | Mock Type | Reason |
|
|
63
|
+
|------------|-----------|--------|
|
|
64
|
+
| Database | Mock object | Avoid external I/O, ensure test isolation |
|
|
65
|
+
| HTTP API | Stub | Control response for predictable testing |
|
|
66
|
+
|
|
67
|
+
## 4. Test Cases
|
|
68
|
+
|
|
69
|
+
### Test Case UT-001: {{TEST_CASE_NAME}}
|
|
70
|
+
|
|
71
|
+
**Description**: {{TEST_CASE_DESCRIPTION}}
|
|
72
|
+
|
|
73
|
+
Example: Verify that `calculateTotal()` returns the correct sum when given an array of positive numbers.
|
|
74
|
+
|
|
75
|
+
**Preconditions**:
|
|
76
|
+
- {{PRECONDITION_1}}
|
|
77
|
+
- {{PRECONDITION_2}}
|
|
78
|
+
|
|
79
|
+
Example:
|
|
80
|
+
- Input array is not null
|
|
81
|
+
- All array elements are valid numbers
|
|
82
|
+
|
|
83
|
+
**Test Steps**:
|
|
84
|
+
1. {{STEP_1}}
|
|
85
|
+
2. {{STEP_2}}
|
|
86
|
+
3. {{STEP_3}}
|
|
87
|
+
|
|
88
|
+
Example:
|
|
89
|
+
1. Create an input array: `[10, 20, 30]`
|
|
90
|
+
2. Call `calculateTotal(input)`
|
|
91
|
+
3. Assert that the result equals `60`
|
|
92
|
+
|
|
93
|
+
**Expected Results**:
|
|
94
|
+
{{EXPECTED_RESULTS}}
|
|
95
|
+
|
|
96
|
+
Example:
|
|
97
|
+
- Function returns `60`
|
|
98
|
+
- No exceptions are thrown
|
|
99
|
+
|
|
100
|
+
**Actual Results**:
|
|
101
|
+
[To be filled during test execution]
|
|
102
|
+
|
|
103
|
+
**Status**: [ ] Pass / [ ] Fail / [ ] Blocked
|
|
104
|
+
|
|
105
|
+
**Notes**:
|
|
106
|
+
{{NOTES}}
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Test Case UT-002: {{TEST_CASE_NAME}}
|
|
111
|
+
|
|
112
|
+
**Description**: {{TEST_CASE_DESCRIPTION}}
|
|
113
|
+
|
|
114
|
+
**Preconditions**:
|
|
115
|
+
- {{PRECONDITION_1}}
|
|
116
|
+
- {{PRECONDITION_2}}
|
|
117
|
+
|
|
118
|
+
**Test Steps**:
|
|
119
|
+
1. {{STEP_1}}
|
|
120
|
+
2. {{STEP_2}}
|
|
121
|
+
3. {{STEP_3}}
|
|
122
|
+
|
|
123
|
+
**Expected Results**:
|
|
124
|
+
{{EXPECTED_RESULTS}}
|
|
125
|
+
|
|
126
|
+
**Actual Results**:
|
|
127
|
+
[To be filled during test execution]
|
|
128
|
+
|
|
129
|
+
**Status**: [ ] Pass / [ ] Fail / [ ] Blocked
|
|
130
|
+
|
|
131
|
+
**Notes**:
|
|
132
|
+
{{NOTES}}
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Test Case UT-003: Edge Case - {{EDGE_CASE_NAME}}
|
|
137
|
+
|
|
138
|
+
**Description**: {{EDGE_CASE_DESCRIPTION}}
|
|
139
|
+
|
|
140
|
+
Example: Verify that `calculateTotal()` handles empty array correctly.
|
|
141
|
+
|
|
142
|
+
**Preconditions**:
|
|
143
|
+
- {{PRECONDITION}}
|
|
144
|
+
|
|
145
|
+
**Test Steps**:
|
|
146
|
+
1. {{STEP_1}}
|
|
147
|
+
2. {{STEP_2}}
|
|
148
|
+
|
|
149
|
+
Example:
|
|
150
|
+
1. Create an empty array: `[]`
|
|
151
|
+
2. Call `calculateTotal([])`
|
|
152
|
+
3. Assert that the result equals `0`
|
|
153
|
+
|
|
154
|
+
**Expected Results**:
|
|
155
|
+
{{EXPECTED_RESULTS}}
|
|
156
|
+
|
|
157
|
+
**Actual Results**:
|
|
158
|
+
[To be filled during test execution]
|
|
159
|
+
|
|
160
|
+
**Status**: [ ] Pass / [ ] Fail / [ ] Blocked
|
|
161
|
+
|
|
162
|
+
**Notes**:
|
|
163
|
+
{{NOTES}}
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### Test Case UT-004: Error Case - {{ERROR_CASE_NAME}}
|
|
168
|
+
|
|
169
|
+
**Description**: {{ERROR_CASE_DESCRIPTION}}
|
|
170
|
+
|
|
171
|
+
Example: Verify that `calculateTotal()` throws an appropriate error when given invalid input.
|
|
172
|
+
|
|
173
|
+
**Preconditions**:
|
|
174
|
+
- {{PRECONDITION}}
|
|
175
|
+
|
|
176
|
+
**Test Steps**:
|
|
177
|
+
1. {{STEP_1}}
|
|
178
|
+
2. {{STEP_2}}
|
|
179
|
+
|
|
180
|
+
Example:
|
|
181
|
+
1. Create an array with non-numeric value: `[10, 'invalid', 30]`
|
|
182
|
+
2. Call `calculateTotal(input)`
|
|
183
|
+
3. Assert that a `TypeError` is thrown
|
|
184
|
+
|
|
185
|
+
**Expected Results**:
|
|
186
|
+
{{EXPECTED_RESULTS}}
|
|
187
|
+
|
|
188
|
+
**Actual Results**:
|
|
189
|
+
[To be filled during test execution]
|
|
190
|
+
|
|
191
|
+
**Status**: [ ] Pass / [ ] Fail / [ ] Blocked
|
|
192
|
+
|
|
193
|
+
**Notes**:
|
|
194
|
+
{{NOTES}}
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 5. Test Coverage
|
|
199
|
+
|
|
200
|
+
### 5.1 Coverage Goals
|
|
201
|
+
- **Target Coverage**: {{TARGET_COVERAGE}}%
|
|
202
|
+
- **Minimum Acceptable Coverage**: {{MIN_COVERAGE}}%
|
|
203
|
+
|
|
204
|
+
Example:
|
|
205
|
+
- **Target Coverage**: 95%
|
|
206
|
+
- **Minimum Acceptable Coverage**: 80%
|
|
207
|
+
|
|
208
|
+
### 5.2 Coverage Report Location
|
|
209
|
+
- Report Path: `{{COVERAGE_REPORT_PATH}}`
|
|
210
|
+
- HTML Report: `{{HTML_REPORT_PATH}}`
|
|
211
|
+
|
|
212
|
+
Example:
|
|
213
|
+
- Report Path: `coverage/lcov.info`
|
|
214
|
+
- HTML Report: `coverage/index.html`
|
|
215
|
+
|
|
216
|
+
## 6. Test Execution Summary
|
|
217
|
+
|
|
218
|
+
| ID | Test Name | Status | Executed By | Date | Notes |
|
|
219
|
+
|----|-----------|--------|-------------|------|-------|
|
|
220
|
+
| UT-001 | {{NAME}} | | | | |
|
|
221
|
+
| UT-002 | {{NAME}} | | | | |
|
|
222
|
+
| UT-003 | {{NAME}} | | | | |
|
|
223
|
+
| UT-004 | {{NAME}} | | | | |
|
|
224
|
+
|
|
225
|
+
## 7. Defects Found
|
|
226
|
+
|
|
227
|
+
| Defect ID | Severity | Description | Status |
|
|
228
|
+
|-----------|----------|-------------|--------|
|
|
229
|
+
| | High/Medium/Low | | Open/In Progress/Fixed/Closed |
|
|
230
|
+
|
|
231
|
+
## 8. Sign-off
|
|
232
|
+
|
|
233
|
+
**Tested By**: _______________
|
|
234
|
+
**Date**: _______________
|
|
235
|
+
**Approved By**: _______________
|
|
236
|
+
**Date**: _______________
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Appendix A: Code Examples
|
|
241
|
+
|
|
242
|
+
### Example Test Code (Node.js/Vitest)
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
246
|
+
import { calculateTotal } from './calculator';
|
|
247
|
+
|
|
248
|
+
describe('calculateTotal', () => {
|
|
249
|
+
it('should return correct sum for positive numbers', () => {
|
|
250
|
+
const input = [10, 20, 30];
|
|
251
|
+
const result = calculateTotal(input);
|
|
252
|
+
expect(result).toBe(60);
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
it('should handle empty array', () => {
|
|
256
|
+
const result = calculateTotal([]);
|
|
257
|
+
expect(result).toBe(0);
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
it('should throw error for invalid input', () => {
|
|
261
|
+
expect(() => calculateTotal([10, 'invalid', 30])).toThrow(TypeError);
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Example Test Code (Java/JUnit 5)
|
|
267
|
+
|
|
268
|
+
```java
|
|
269
|
+
import org.junit.jupiter.api.Test;
|
|
270
|
+
import static org.junit.jupiter.api.Assertions.*;
|
|
271
|
+
|
|
272
|
+
class CalculatorTest {
|
|
273
|
+
@Test
|
|
274
|
+
void shouldReturnCorrectSumForPositiveNumbers() {
|
|
275
|
+
Calculator calc = new Calculator();
|
|
276
|
+
int[] input = {10, 20, 30};
|
|
277
|
+
int result = calc.calculateTotal(input);
|
|
278
|
+
assertEquals(60, result);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
@Test
|
|
282
|
+
void shouldHandleEmptyArray() {
|
|
283
|
+
Calculator calc = new Calculator();
|
|
284
|
+
int[] input = {};
|
|
285
|
+
int result = calc.calculateTotal(input);
|
|
286
|
+
assertEquals(0, result);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Example Test Code (PHP/PHPUnit)
|
|
292
|
+
|
|
293
|
+
```php
|
|
294
|
+
<?php
|
|
295
|
+
use PHPUnit\Framework\TestCase;
|
|
296
|
+
|
|
297
|
+
class CalculatorTest extends TestCase
|
|
298
|
+
{
|
|
299
|
+
public function testShouldReturnCorrectSumForPositiveNumbers()
|
|
300
|
+
{
|
|
301
|
+
$calculator = new Calculator();
|
|
302
|
+
$input = [10, 20, 30];
|
|
303
|
+
$result = $calculator->calculateTotal($input);
|
|
304
|
+
$this->assertEquals(60, $result);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
public function testShouldHandleEmptyArray()
|
|
308
|
+
{
|
|
309
|
+
$calculator = new Calculator();
|
|
310
|
+
$input = [];
|
|
311
|
+
$result = $calculator->calculateTotal($input);
|
|
312
|
+
$this->assertEquals(0, $result);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Appendix B: TDD Principles
|
|
318
|
+
|
|
319
|
+
### RED-GREEN-REFACTOR Cycle
|
|
320
|
+
1. **RED**: Write a failing test first
|
|
321
|
+
2. **GREEN**: Write minimum code to pass the test
|
|
322
|
+
3. **REFACTOR**: Improve code while keeping tests green
|
|
323
|
+
|
|
324
|
+
### Important Rule
|
|
325
|
+
**Tests represent specifications. Do NOT modify tests to match implementation.**
|
|
326
|
+
|
|
327
|
+
- ❌ NG: Implementation doesn't match test, so modify the test
|
|
328
|
+
- ✅ OK: Specification changed, so update the test accordingly
|
|
@@ -44,7 +44,7 @@ src/__tests__/integration/setup/
|
|
|
44
44
|
|
|
45
45
|
#### Claude Agent環境 (`claude-agent.test.ts`)
|
|
46
46
|
|
|
47
|
-
- ✅ `.claude/
|
|
47
|
+
- ✅ `.claude/agents/` ディレクトリ作成
|
|
48
48
|
- ✅ `.kiro/` ディレクトリ構造作成
|
|
49
49
|
- ✅ `project.json` 作成
|
|
50
50
|
- ✅ `.env` テンプレート作成
|
|
@@ -68,11 +68,13 @@ src/__tests__/integration/setup/
|
|
|
68
68
|
#### プロジェクト名バリデーション
|
|
69
69
|
|
|
70
70
|
**正常系:**
|
|
71
|
+
|
|
71
72
|
- ✅ 有効なプロジェクト名
|
|
72
73
|
- ✅ 日本語文字を含むプロジェクト名
|
|
73
74
|
- ✅ 前後の空白はトリム
|
|
74
75
|
|
|
75
76
|
**異常系:**
|
|
77
|
+
|
|
76
78
|
- ❌ 空文字列
|
|
77
79
|
- ❌ パストラバーサル文字 (`/`, `\`, `..`)
|
|
78
80
|
- ❌ 制御文字
|
|
@@ -81,10 +83,12 @@ src/__tests__/integration/setup/
|
|
|
81
83
|
#### JIRAキーバリデーション
|
|
82
84
|
|
|
83
85
|
**正常系:**
|
|
86
|
+
|
|
84
87
|
- ✅ 2-10文字の大文字英字
|
|
85
88
|
- ✅ 小文字は自動的に大文字に変換
|
|
86
89
|
|
|
87
90
|
**異常系:**
|
|
91
|
+
|
|
88
92
|
- ❌ 1文字以下
|
|
89
93
|
- ❌ 11文字以上
|
|
90
94
|
- ❌ 数字を含む
|
|
@@ -131,14 +135,17 @@ npm run test:ui
|
|
|
131
135
|
GitHub Actionsワークフローが `.github/workflows/test-setup.yml` に定義されています。
|
|
132
136
|
|
|
133
137
|
**実行タイミング:**
|
|
138
|
+
|
|
134
139
|
- `main`, `develop`, `feature/**` ブランチへのプッシュ
|
|
135
140
|
- `main`, `develop` ブランチへのプルリクエスト
|
|
136
141
|
|
|
137
142
|
**マトリクス戦略:**
|
|
143
|
+
|
|
138
144
|
- Node.js 18.x
|
|
139
145
|
- Node.js 20.x
|
|
140
146
|
|
|
141
147
|
**ステップ:**
|
|
148
|
+
|
|
142
149
|
1. コードチェックアウト
|
|
143
150
|
2. Node.js セットアップ
|
|
144
151
|
3. 依存関係インストール
|
|
@@ -157,6 +164,7 @@ GitHub Actionsワークフローが `.github/workflows/test-setup.yml` に定義
|
|
|
157
164
|
**原因:** 一時ディレクトリの権限問題
|
|
158
165
|
|
|
159
166
|
**解決策:**
|
|
167
|
+
|
|
160
168
|
```bash
|
|
161
169
|
# 一時ディレクトリの権限を確認
|
|
162
170
|
ls -la /tmp
|
|
@@ -172,6 +180,7 @@ rm -rf /tmp/test-project-*
|
|
|
172
180
|
**原因:** Gitがインストールされていない
|
|
173
181
|
|
|
174
182
|
**解決策:**
|
|
183
|
+
|
|
175
184
|
```bash
|
|
176
185
|
# Gitインストール確認
|
|
177
186
|
git --version
|
|
@@ -190,6 +199,7 @@ sudo apt-get install git
|
|
|
190
199
|
**原因:** 型定義の不一致
|
|
191
200
|
|
|
192
201
|
**解決策:**
|
|
202
|
+
|
|
193
203
|
```bash
|
|
194
204
|
# 型チェック
|
|
195
205
|
npm run type-check
|
|
@@ -204,12 +214,14 @@ npm install
|
|
|
204
214
|
**目標:** 95%以上のカバレッジ
|
|
205
215
|
|
|
206
216
|
**確認方法:**
|
|
217
|
+
|
|
207
218
|
```bash
|
|
208
219
|
npm run test:coverage:setup
|
|
209
220
|
open coverage/lcov-report/index.html
|
|
210
221
|
```
|
|
211
222
|
|
|
212
223
|
**改善策:**
|
|
224
|
+
|
|
213
225
|
1. 未テストのエッジケースを追加
|
|
214
226
|
2. エラーハンドリングのテストを追加
|
|
215
227
|
3. モックが不十分な箇所を特定
|
|
@@ -221,6 +233,7 @@ open coverage/lcov-report/index.html
|
|
|
221
233
|
**原因1:** ローカルとCI環境の違い
|
|
222
234
|
|
|
223
235
|
**解決策:**
|
|
236
|
+
|
|
224
237
|
```bash
|
|
225
238
|
# ローカルでCI環境を再現
|
|
226
239
|
docker run -it -v $(pwd):/app node:20 bash
|
|
@@ -232,10 +245,11 @@ npm run test:integration:setup
|
|
|
232
245
|
**原因2:** タイムアウト
|
|
233
246
|
|
|
234
247
|
**解決策:** `.github/workflows/test-setup.yml` でタイムアウトを延長
|
|
248
|
+
|
|
235
249
|
```yaml
|
|
236
250
|
- name: Run integration tests
|
|
237
251
|
run: npm run test:integration:setup
|
|
238
|
-
timeout-minutes: 10
|
|
252
|
+
timeout-minutes: 10 # デフォルト: 360分
|
|
239
253
|
```
|
|
240
254
|
|
|
241
255
|
## ベストプラクティス
|
|
@@ -252,23 +266,25 @@ npm run test:integration:setup
|
|
|
252
266
|
- `beforeEach`, `afterEach` でクリーンアップ
|
|
253
267
|
|
|
254
268
|
3. **意味のあるテスト名**
|
|
269
|
+
|
|
255
270
|
```typescript
|
|
256
271
|
// ❌ Bad
|
|
257
|
-
it(
|
|
258
|
-
|
|
272
|
+
it("test 1", () => {});
|
|
273
|
+
|
|
259
274
|
// ✅ Good
|
|
260
|
-
it(
|
|
275
|
+
it("should create .cursor/rules directory", () => {});
|
|
261
276
|
```
|
|
262
277
|
|
|
263
278
|
4. **アサーションは明確に**
|
|
279
|
+
|
|
264
280
|
```typescript
|
|
265
281
|
// ❌ Bad
|
|
266
282
|
expect(result).toBe(true);
|
|
267
|
-
|
|
283
|
+
|
|
268
284
|
// ✅ Good
|
|
269
285
|
assertDirectoryExists(
|
|
270
|
-
join(testProject.path,
|
|
271
|
-
|
|
286
|
+
join(testProject.path, ".cursor/rules"),
|
|
287
|
+
"Expected .cursor/rules directory to exist",
|
|
272
288
|
);
|
|
273
289
|
```
|
|
274
290
|
|
|
@@ -294,4 +310,3 @@ npm run test:integration:setup
|
|
|
294
310
|
- [Vitest公式ドキュメント](https://vitest.dev/)
|
|
295
311
|
- [テスト戦略](../testing-strategy.md)
|
|
296
312
|
- [開発ガイド](../contributing/development.md)
|
|
297
|
-
|