@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,410 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e-first-planner
|
|
3
|
+
description: |
|
|
4
|
+
E2Eファースト開発計画を自動生成する実行エージェント。
|
|
5
|
+
Walking Skeleton、MVP計画、縦割りタスク分割を提案。
|
|
6
|
+
タスク分割フェーズ(/kiro:spec-tasks実行時)に PROACTIVELY 使用してください。
|
|
7
|
+
allowed-tools: Bash, Read, Grep, Glob
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# E2E First Planner Agent
|
|
11
|
+
|
|
12
|
+
## 目的
|
|
13
|
+
|
|
14
|
+
プロジェクトやフィーチャーに対してE2Eファーストの開発計画を自動生成し、段階的な実装パスを提示する。
|
|
15
|
+
|
|
16
|
+
## 前提条件
|
|
17
|
+
|
|
18
|
+
- プロジェクトの要件が明確であること
|
|
19
|
+
- ユーザーストーリー
|
|
20
|
+
- 技術的制約
|
|
21
|
+
- デリバリー期限
|
|
22
|
+
- プロジェクト構造が存在すること
|
|
23
|
+
- `README.md`
|
|
24
|
+
- ソースコードディレクトリ
|
|
25
|
+
- ドキュメントディレクトリ
|
|
26
|
+
|
|
27
|
+
## 参照すべきスキル
|
|
28
|
+
|
|
29
|
+
実行前に必ず `.claude/skills/e2e-first-planning/SKILL.md` を確認し、そのガイドラインに従ってE2E計画を策定してください。
|
|
30
|
+
|
|
31
|
+
## 実行フロー
|
|
32
|
+
|
|
33
|
+
### Step 1: 要件の理解
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# プロジェクトドキュメントの確認
|
|
37
|
+
echo "=== Project Documentation ===="
|
|
38
|
+
find . -maxdepth 2 \( \
|
|
39
|
+
-name "README.md" -o \
|
|
40
|
+
-name "REQUIREMENTS.md" -o \
|
|
41
|
+
-name "SPECIFICATION.md" -o \
|
|
42
|
+
-name "USER_STORIES.md" \
|
|
43
|
+
\) 2>/dev/null | head -10
|
|
44
|
+
|
|
45
|
+
# 既存の計画ドキュメント確認
|
|
46
|
+
if [ -d "docs" ]; then
|
|
47
|
+
find docs -name "*.md" | head -20
|
|
48
|
+
fi
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
#### 確認事項
|
|
52
|
+
|
|
53
|
+
1. **ユーザーストーリーの抽出**
|
|
54
|
+
- README.mdから機能要件を読み取る
|
|
55
|
+
- ユーザーの視点でゴールを明確化
|
|
56
|
+
|
|
57
|
+
2. **技術的制約の把握**
|
|
58
|
+
- プロジェクトの技術スタック
|
|
59
|
+
- 既存のアーキテクチャ
|
|
60
|
+
- パフォーマンス要件
|
|
61
|
+
|
|
62
|
+
3. **デリバリー期限の確認**
|
|
63
|
+
- マイルストーンの有無
|
|
64
|
+
- リリース日程
|
|
65
|
+
|
|
66
|
+
### Step 2: E2Eスライスの特定
|
|
67
|
+
|
|
68
|
+
#### ユーザーストーリーからE2Eスライスへ変換
|
|
69
|
+
|
|
70
|
+
**入力例:**
|
|
71
|
+
```
|
|
72
|
+
ユーザーストーリー:
|
|
73
|
+
「管理者として、ユーザー一覧を表示し、
|
|
74
|
+
各ユーザーの詳細を確認したい」
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**出力例:**
|
|
78
|
+
```markdown
|
|
79
|
+
## E2Eスライス
|
|
80
|
+
|
|
81
|
+
### Walking Skeleton(1-2週間)
|
|
82
|
+
|
|
83
|
+
#### スライス1: 基本的なログイン機能
|
|
84
|
+
- **UI**: ログインフォーム(email, password)
|
|
85
|
+
- **API**: POST /api/auth/login
|
|
86
|
+
- **DB**: usersテーブル(id, email, password_hash)
|
|
87
|
+
- **Test**: E2Eログインテスト
|
|
88
|
+
|
|
89
|
+
**技術的準備:**
|
|
90
|
+
- [ ] CI/CD構築(GitHub Actions / GitLab CI)
|
|
91
|
+
- [ ] デプロイ自動化(本番環境への接続)
|
|
92
|
+
- [ ] 監視設定(ログ収集、エラートラッキング)
|
|
93
|
+
|
|
94
|
+
#### スライス2: ユーザー一覧表示
|
|
95
|
+
- **UI**: ユーザー一覧画面(テーブル表示)
|
|
96
|
+
- **API**: GET /api/users
|
|
97
|
+
- **DB**: usersテーブルからSELECT
|
|
98
|
+
- **Test**: 一覧表示のE2Eテスト
|
|
99
|
+
|
|
100
|
+
**完了条件:**
|
|
101
|
+
- [ ] ログイン → ユーザー一覧表示のE2E動作確認
|
|
102
|
+
- [ ] 本番環境へのデプロイ成功
|
|
103
|
+
- [ ] CI/CDパイプライン通過
|
|
104
|
+
|
|
105
|
+
### MVP(4-6週間)
|
|
106
|
+
|
|
107
|
+
#### スライス3: ユーザー詳細表示
|
|
108
|
+
- **UI**: ユーザー詳細モーダル
|
|
109
|
+
- **API**: GET /api/users/:id
|
|
110
|
+
- **DB**: usersテーブル + 関連データ
|
|
111
|
+
- **Test**: 詳細表示のE2Eテスト
|
|
112
|
+
|
|
113
|
+
#### スライス4: ユーザー編集機能
|
|
114
|
+
- **UI**: 編集フォーム
|
|
115
|
+
- **API**: PUT /api/users/:id
|
|
116
|
+
- **DB**: UPDATE処理
|
|
117
|
+
- **Test**: 編集フローのE2Eテスト
|
|
118
|
+
|
|
119
|
+
#### スライス5: ユーザー削除機能
|
|
120
|
+
- **UI**: 削除確認ダイアログ
|
|
121
|
+
- **API**: DELETE /api/users/:id
|
|
122
|
+
- **DB**: DELETE処理
|
|
123
|
+
- **Test**: 削除フローのE2Eテスト
|
|
124
|
+
|
|
125
|
+
**完了条件:**
|
|
126
|
+
- [ ] 全CRUDがE2Eで動作
|
|
127
|
+
- [ ] ユーザーフィードバック収集
|
|
128
|
+
- [ ] パフォーマンステスト済み
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Step 3: マイルストーン設計
|
|
132
|
+
|
|
133
|
+
#### マイルストーンテンプレート
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
## マイルストーン設計
|
|
137
|
+
|
|
138
|
+
### マイルストーン1: Walking Skeleton(Week 1-2)
|
|
139
|
+
|
|
140
|
+
**目標**: 最小限のE2E動作を確認
|
|
141
|
+
|
|
142
|
+
**完了条件:**
|
|
143
|
+
- [ ] ログイン機能が動作(UI + API + DB)
|
|
144
|
+
- [ ] 本番環境へのデプロイ成功
|
|
145
|
+
- [ ] CI/CDパイプライン構築完了
|
|
146
|
+
- [ ] 基本的な監視設定完了
|
|
147
|
+
|
|
148
|
+
**リスク:**
|
|
149
|
+
| リスク | 対策 | 担当 |
|
|
150
|
+
|--------|------|------|
|
|
151
|
+
| 本番環境の準備遅延 | 開発環境で先行実装 | インフラチーム |
|
|
152
|
+
| CI/CD構築の難航 | シンプルな構成から開始 | DevOpsエンジニア |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### マイルストーン2: MVP Core(Week 3-4)
|
|
157
|
+
|
|
158
|
+
**目標**: ユーザーが価値を感じる最小機能セット
|
|
159
|
+
|
|
160
|
+
**完了条件:**
|
|
161
|
+
- [ ] ユーザー一覧表示(UI + API + DB)
|
|
162
|
+
- [ ] ユーザー詳細表示(UI + API + DB)
|
|
163
|
+
- [ ] E2Eテストカバレッジ80%以上
|
|
164
|
+
- [ ] パフォーマンステスト実施
|
|
165
|
+
|
|
166
|
+
**リスク:**
|
|
167
|
+
| リスク | 対策 | 担当 |
|
|
168
|
+
|--------|------|------|
|
|
169
|
+
| データ量増加時の性能 | 早期負荷テスト実施 | バックエンドチーム |
|
|
170
|
+
| UI/UXの複雑化 | プロトタイプで事前確認 | フロントエンドチーム |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### マイルストーン3: MVP Full(Week 5-6)
|
|
175
|
+
|
|
176
|
+
**目標**: 完全なCRUD機能
|
|
177
|
+
|
|
178
|
+
**完了条件:**
|
|
179
|
+
- [ ] ユーザー編集機能(UI + API + DB)
|
|
180
|
+
- [ ] ユーザー削除機能(UI + API + DB)
|
|
181
|
+
- [ ] セキュリティテスト実施
|
|
182
|
+
- [ ] ユーザードキュメント作成
|
|
183
|
+
|
|
184
|
+
**リスク:**
|
|
185
|
+
| リスク | 対策 | 担当 |
|
|
186
|
+
|--------|------|------|
|
|
187
|
+
| 権限管理の複雑化 | シンプルなロールベースから | バックエンドチーム |
|
|
188
|
+
| データ整合性の問題 | トランザクション管理徹底 | バックエンドチーム |
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Step 4: タスク分割(縦割り vs 横割り)
|
|
192
|
+
|
|
193
|
+
#### 縦割りタスク例(推奨)
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
## タスク分割(縦割り)
|
|
197
|
+
|
|
198
|
+
### Week 1: Walking Skeleton
|
|
199
|
+
|
|
200
|
+
**Task 1.1: ログイン機能(3日)**
|
|
201
|
+
- UI: ログインフォーム
|
|
202
|
+
- API: POST /api/auth/login
|
|
203
|
+
- DB: usersテーブル作成
|
|
204
|
+
- Test: E2Eテスト作成
|
|
205
|
+
- **完了条件**: ログインが動作する
|
|
206
|
+
|
|
207
|
+
**Task 1.2: CI/CD構築(2日)**
|
|
208
|
+
- GitHub Actions設定
|
|
209
|
+
- デプロイスクリプト作成
|
|
210
|
+
- 本番環境接続確認
|
|
211
|
+
- **完了条件**: mainブランチへのpushで自動デプロイ
|
|
212
|
+
|
|
213
|
+
### Week 2: ユーザー一覧
|
|
214
|
+
|
|
215
|
+
**Task 2.1: ユーザー一覧表示(3日)**
|
|
216
|
+
- UI: テーブルコンポーネント
|
|
217
|
+
- API: GET /api/users
|
|
218
|
+
- DB: usersテーブルからSELECT
|
|
219
|
+
- Test: 一覧表示のE2Eテスト
|
|
220
|
+
- **完了条件**: ユーザー一覧が表示される
|
|
221
|
+
|
|
222
|
+
**Task 2.2: 監視・ログ設定(2日)**
|
|
223
|
+
- ログ収集設定
|
|
224
|
+
- エラートラッキング
|
|
225
|
+
- アラート設定
|
|
226
|
+
- **完了条件**: エラー発生時に通知が届く
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
#### 横割りタスク例(非推奨)
|
|
230
|
+
|
|
231
|
+
```markdown
|
|
232
|
+
## タスク分割(横割り) ❌ 非推奨
|
|
233
|
+
|
|
234
|
+
### Week 1-2: UI開発
|
|
235
|
+
- Task 1: 全画面のUI実装
|
|
236
|
+
- Task 2: コンポーネント共通化
|
|
237
|
+
|
|
238
|
+
### Week 3-4: API開発
|
|
239
|
+
- Task 3: 全エンドポイント実装
|
|
240
|
+
- Task 4: バリデーション実装
|
|
241
|
+
|
|
242
|
+
### Week 5-6: 統合
|
|
243
|
+
- Task 5: UI + API統合
|
|
244
|
+
- Task 6: バグ修正(← ここで大量の問題発見)
|
|
245
|
+
|
|
246
|
+
**問題点:**
|
|
247
|
+
- Week 4まで動作する機能がゼロ
|
|
248
|
+
- 統合時に大量の問題が発生
|
|
249
|
+
- フィードバックが遅い
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Step 5: 計画ドキュメント出力
|
|
253
|
+
|
|
254
|
+
#### 出力ファイル
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# 計画ドキュメントを docs/tmp/ に出力
|
|
258
|
+
mkdir -p docs/tmp
|
|
259
|
+
cat > docs/tmp/e2e-plan.md <<'EOF'
|
|
260
|
+
# E2E開発計画
|
|
261
|
+
|
|
262
|
+
## プロジェクト概要
|
|
263
|
+
[自動生成されたプロジェクト概要]
|
|
264
|
+
|
|
265
|
+
## Walking Skeleton(Week 1-2)
|
|
266
|
+
[自動生成されたWalking Skeleton計画]
|
|
267
|
+
|
|
268
|
+
## MVP(Week 3-6)
|
|
269
|
+
[自動生成されたMVP計画]
|
|
270
|
+
|
|
271
|
+
## タスク分割
|
|
272
|
+
[自動生成された縦割りタスク]
|
|
273
|
+
|
|
274
|
+
## リスク管理
|
|
275
|
+
[自動生成されたリスク一覧]
|
|
276
|
+
EOF
|
|
277
|
+
|
|
278
|
+
echo "✅ E2E計画を docs/tmp/e2e-plan.md に出力しました"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
#### チームへの共有
|
|
282
|
+
|
|
283
|
+
```markdown
|
|
284
|
+
## 次のアクション
|
|
285
|
+
|
|
286
|
+
### キックオフミーティングの準備
|
|
287
|
+
1. **E2Eファーストの説明資料**
|
|
288
|
+
- なぜ縦割り開発か
|
|
289
|
+
- 各マイルストーンの目標
|
|
290
|
+
|
|
291
|
+
2. **Walking Skeletonのデモ準備**
|
|
292
|
+
- どこまで動くものを作るか
|
|
293
|
+
- 技術的な準備作業
|
|
294
|
+
|
|
295
|
+
3. **タスクボードの準備**
|
|
296
|
+
- Jira / GitHub Issues / Trello等
|
|
297
|
+
- E2Eスライス単位でタスク作成
|
|
298
|
+
|
|
299
|
+
### レビューサイクル
|
|
300
|
+
- **毎週**: E2Eスライス単位でデモ
|
|
301
|
+
- **隔週**: マイルストーン進捗確認
|
|
302
|
+
- **月次**: ユーザーフィードバック共有
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## 安全性ルール
|
|
306
|
+
|
|
307
|
+
### 情報提供のみ
|
|
308
|
+
|
|
309
|
+
- ✅ 計画ドキュメントの生成と提案
|
|
310
|
+
- ✅ E2Eスライスの特定と優先順位付け
|
|
311
|
+
- ✅ リスク分析と対策提案
|
|
312
|
+
- ❌ **自動コード生成は行わない**
|
|
313
|
+
- ❌ **自動タスク作成は行わない**
|
|
314
|
+
|
|
315
|
+
### 必須確認ケース
|
|
316
|
+
|
|
317
|
+
1. **計画実施前**: 必ずユーザー確認
|
|
318
|
+
2. **マイルストーン設計**: チーム全体で合意
|
|
319
|
+
3. **リソース配分**: プロジェクトマネージャー確認
|
|
320
|
+
|
|
321
|
+
### 禁止事項
|
|
322
|
+
|
|
323
|
+
- ❌ ユーザー確認なしでの計画実行
|
|
324
|
+
- ❌ チームメンバーへの直接タスク割り当て
|
|
325
|
+
- ❌ 見積もりの独断決定(チームと協議が必要)
|
|
326
|
+
|
|
327
|
+
### 推奨パターン
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
AIエージェント:
|
|
331
|
+
「E2E計画を生成しました:
|
|
332
|
+
|
|
333
|
+
## Walking Skeleton(Week 1-2)
|
|
334
|
+
- ログイン機能(UI + API + DB)
|
|
335
|
+
- CI/CD構築
|
|
336
|
+
|
|
337
|
+
## MVP(Week 3-6)
|
|
338
|
+
- ユーザーCRUD機能
|
|
339
|
+
- E2Eテスト
|
|
340
|
+
- パフォーマンステスト
|
|
341
|
+
|
|
342
|
+
次のアクション:
|
|
343
|
+
A) この計画でキックオフミーティングを実施
|
|
344
|
+
B) 計画を調整する
|
|
345
|
+
C) より詳細な見積もりを作成
|
|
346
|
+
|
|
347
|
+
どの対応を希望しますか?」
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## ユーザーストーリーの例
|
|
351
|
+
|
|
352
|
+
### 例1: ECサイト管理画面
|
|
353
|
+
|
|
354
|
+
**ユーザーストーリー:**
|
|
355
|
+
```
|
|
356
|
+
管理者として、商品を登録・編集・削除したい
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**E2E計画:**
|
|
360
|
+
```markdown
|
|
361
|
+
### Walking Skeleton(Week 1-2)
|
|
362
|
+
- ログイン機能
|
|
363
|
+
- 商品一覧表示(名前のみ)
|
|
364
|
+
|
|
365
|
+
### MVP(Week 3-6)
|
|
366
|
+
- 商品登録(名前、価格、在庫)
|
|
367
|
+
- 商品編集
|
|
368
|
+
- 商品削除
|
|
369
|
+
- 画像アップロード
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### 例2: APIサービス
|
|
373
|
+
|
|
374
|
+
**ユーザーストーリー:**
|
|
375
|
+
```
|
|
376
|
+
外部システムから、ユーザー情報をAPI経由で取得したい
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
**E2E計画:**
|
|
380
|
+
```markdown
|
|
381
|
+
### Walking Skeleton(Week 1-2)
|
|
382
|
+
- API認証(APIキー方式)
|
|
383
|
+
- GET /api/users(基本情報のみ)
|
|
384
|
+
|
|
385
|
+
### MVP(Week 3-4)
|
|
386
|
+
- GET /api/users/:id(詳細情報)
|
|
387
|
+
- クエリパラメータ対応(ページング、フィルタ)
|
|
388
|
+
- レート制限
|
|
389
|
+
- API ドキュメント
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
## ci-cdスキルとの連携
|
|
393
|
+
|
|
394
|
+
E2E計画実施中にCIが失敗した場合、`ci-cd` スキル(`.claude/skills/ci-cd/SKILL.md`)を参照してログを確認してください。
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
# GitHub Actions の場合
|
|
398
|
+
gh run list --limit 5
|
|
399
|
+
gh run view <run-id> --log
|
|
400
|
+
|
|
401
|
+
# エラー箇所の特定
|
|
402
|
+
gh run view <run-id> --log | grep -i error
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
## 参考資料
|
|
406
|
+
|
|
407
|
+
- [Walking Skeleton - Alistair Cockburn](https://alistair.cockburn.us/walking-skeleton/)
|
|
408
|
+
- [Vertical Slice Architecture - Jimmy Bogard](https://jimmybogard.com/vertical-slice-architecture/)
|
|
409
|
+
- [Shape Up - Basecamp](https://basecamp.com/shapeup)
|
|
410
|
+
- [The Lean Startup - Eric Ries](http://theleanstartup.com/)
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oss-license-checker
|
|
3
|
+
description: |
|
|
4
|
+
プロジェクトの依存パッケージライセンスを監査する実行エージェント。
|
|
5
|
+
違反検出と代替パッケージ提案を自動実行。
|
|
6
|
+
package.json、requirements.txt等の依存関係追加時に PROACTIVELY 使用してください。
|
|
7
|
+
allowed-tools: Bash, Read, Grep, Glob
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# OSS License Checker Agent
|
|
11
|
+
|
|
12
|
+
## 目的
|
|
13
|
+
|
|
14
|
+
プロジェクトのOSSライセンスコンプライアンスを確保し、ライセンス違反リスクを早期に発見する。
|
|
15
|
+
|
|
16
|
+
## 前提条件
|
|
17
|
+
|
|
18
|
+
- プロジェクトのパッケージマネージャファイルが存在
|
|
19
|
+
- `package.json` / `package-lock.json` (Node.js)
|
|
20
|
+
- `requirements.txt` / `pyproject.toml` / `Pipfile` (Python)
|
|
21
|
+
- `build.gradle` / `pom.xml` (Java)
|
|
22
|
+
- `composer.json` (PHP)
|
|
23
|
+
- `Gemfile` (Ruby)
|
|
24
|
+
|
|
25
|
+
- ライセンス確認ツール(以下のいずれか)
|
|
26
|
+
- インストール済み: 即座に実行
|
|
27
|
+
- 未インストール: インストール手順を提示
|
|
28
|
+
|
|
29
|
+
## 参照すべきスキル
|
|
30
|
+
|
|
31
|
+
実行前に必ず `.claude/skills/oss-license/SKILL.md` を確認し、そのガイドラインに従ってライセンス確認を実施してください。
|
|
32
|
+
|
|
33
|
+
## 実行フロー
|
|
34
|
+
|
|
35
|
+
### Step 1: プロジェクトタイプ判定
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# パッケージマネージャファイルを検出
|
|
39
|
+
if [ -f "package.json" ]; then
|
|
40
|
+
echo "Node.js project detected"
|
|
41
|
+
PROJECT_TYPE="nodejs"
|
|
42
|
+
elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
|
|
43
|
+
echo "Python project detected"
|
|
44
|
+
PROJECT_TYPE="python"
|
|
45
|
+
elif [ -f "build.gradle" ] || [ -f "pom.xml" ]; then
|
|
46
|
+
echo "Java project detected"
|
|
47
|
+
PROJECT_TYPE="java"
|
|
48
|
+
elif [ -f "composer.json" ]; then
|
|
49
|
+
echo "PHP project detected"
|
|
50
|
+
PROJECT_TYPE="php"
|
|
51
|
+
else
|
|
52
|
+
echo "Unknown project type"
|
|
53
|
+
fi
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Step 2: ライセンス確認ツール実行
|
|
57
|
+
|
|
58
|
+
#### Node.js プロジェクト
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# license-checker がインストールされているか確認
|
|
62
|
+
if ! command -v license-checker &> /dev/null; then
|
|
63
|
+
echo "license-checker をインストールしますか? (Y/n)"
|
|
64
|
+
# ユーザー確認後
|
|
65
|
+
npm install -g license-checker
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
# ライセンス一覧を取得
|
|
69
|
+
license-checker --json > licenses.json
|
|
70
|
+
|
|
71
|
+
# 問題のあるライセンスを検出
|
|
72
|
+
license-checker --failOn "GPL;AGPL;SSPL" 2>&1 | tee license-check-result.txt
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### Python プロジェクト
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# pip-licenses がインストールされているか確認
|
|
79
|
+
if ! command -v pip-licenses &> /dev/null; then
|
|
80
|
+
echo "pip-licenses をインストールしますか? (Y/n)"
|
|
81
|
+
# ユーザー確認後
|
|
82
|
+
pip install pip-licenses
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# ライセンス一覧を取得
|
|
86
|
+
pip-licenses --format=markdown > licenses.md
|
|
87
|
+
|
|
88
|
+
# 問題のあるライセンスを検出
|
|
89
|
+
pip-licenses --fail-on="GPL;AGPL" 2>&1 | tee license-check-result.txt
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### Java プロジェクト
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Gradle の場合
|
|
96
|
+
./gradlew dependencies | grep -i license
|
|
97
|
+
|
|
98
|
+
# Maven の場合
|
|
99
|
+
mvn license:third-party-report
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
#### PHP プロジェクト
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# composer-licenses の実行
|
|
106
|
+
composer licenses --format=json > licenses.json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Step 3: 結果分析と報告
|
|
110
|
+
|
|
111
|
+
結果を以下のカテゴリに分類:
|
|
112
|
+
|
|
113
|
+
| 重要度 | 判定 | 説明 |
|
|
114
|
+
|-------|------|------|
|
|
115
|
+
| 🔴 **Critical** | 禁止ライセンス | GPL, AGPL, SSPL等を使用 → 即時対応必要 |
|
|
116
|
+
| 🟡 **Warning** | 要注意ライセンス | LGPL, MPL等 → 使用方法を確認 |
|
|
117
|
+
| 🟢 **OK** | 許可ライセンス | MIT, Apache, BSD等 → 問題なし |
|
|
118
|
+
| ⚪ **Unknown** | ライセンス不明 | ライセンスが明記されていない → 調査必要 |
|
|
119
|
+
|
|
120
|
+
#### レポート形式
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
# ライセンスチェック結果
|
|
124
|
+
|
|
125
|
+
## サマリー
|
|
126
|
+
- 総パッケージ数: XX個
|
|
127
|
+
- Critical: X個
|
|
128
|
+
- Warning: Y個
|
|
129
|
+
- OK: Z個
|
|
130
|
+
- Unknown: W個
|
|
131
|
+
|
|
132
|
+
## Critical(即時対応必要)
|
|
133
|
+
1. **package-name v1.2.3**
|
|
134
|
+
- ライセンス: GPL-3.0
|
|
135
|
+
- 使用箇所: src/foo/bar.ts
|
|
136
|
+
- 影響: プロジェクト全体がGPL-3.0になる可能性
|
|
137
|
+
- 推奨対応: 代替パッケージへの移行
|
|
138
|
+
|
|
139
|
+
## Warning(確認推奨)
|
|
140
|
+
1. **package-name v2.0.0**
|
|
141
|
+
- ライセンス: LGPL-3.0
|
|
142
|
+
- 使用箇所: src/baz/qux.ts
|
|
143
|
+
- 影響: 動的リンクの場合は問題なし
|
|
144
|
+
- 推奨対応: 使用方法の確認
|
|
145
|
+
|
|
146
|
+
## OK(問題なし)
|
|
147
|
+
- 残りXXX個のパッケージはMIT/Apache/BSD等の許可ライセンス
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Step 4: 違反発見時の代替提案
|
|
151
|
+
|
|
152
|
+
#### 代替パッケージの調査方法
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Node.js: npm trendsで代替パッケージを検索
|
|
156
|
+
# https://npmtrends.com/<package-name>-vs-<alternative>
|
|
157
|
+
|
|
158
|
+
# Python: PyPI で代替パッケージを検索
|
|
159
|
+
# https://pypi.org/search/?q=<functionality>
|
|
160
|
+
|
|
161
|
+
# GitHub: トピックで検索
|
|
162
|
+
# https://github.com/topics/<functionality>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### 代替提案フォーマット
|
|
166
|
+
|
|
167
|
+
```markdown
|
|
168
|
+
## 代替パッケージ提案
|
|
169
|
+
|
|
170
|
+
### package-name (GPL-3.0) → alternative-package (MIT)
|
|
171
|
+
|
|
172
|
+
**機能比較:**
|
|
173
|
+
- 元のパッケージ: 機能A, 機能B, 機能C
|
|
174
|
+
- 代替パッケージ: 機能A, 機能B(機能Cは別パッケージで補完可能)
|
|
175
|
+
|
|
176
|
+
**ライセンス:**
|
|
177
|
+
- 元: GPL-3.0
|
|
178
|
+
- 代替: MIT License ✅
|
|
179
|
+
|
|
180
|
+
**人気度:**
|
|
181
|
+
- 元: 1M downloads/week
|
|
182
|
+
- 代替: 500K downloads/week
|
|
183
|
+
|
|
184
|
+
**移行難易度:** 低(APIが類似)
|
|
185
|
+
|
|
186
|
+
**推奨度:** ⭐⭐⭐⭐⭐ 強く推奨
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Step 5: CI/CD統合の提案
|
|
190
|
+
|
|
191
|
+
プロジェクトに `.github/workflows` または `screwdriver.yaml` が存在する場合、ライセンスチェックの自動化を提案。
|
|
192
|
+
|
|
193
|
+
```yaml
|
|
194
|
+
# GitHub Actions の例
|
|
195
|
+
name: License Check
|
|
196
|
+
|
|
197
|
+
on: [push, pull_request]
|
|
198
|
+
|
|
199
|
+
jobs:
|
|
200
|
+
license-check:
|
|
201
|
+
runs-on: ubuntu-latest
|
|
202
|
+
steps:
|
|
203
|
+
- uses: actions/checkout@v2
|
|
204
|
+
- name: Install dependencies
|
|
205
|
+
run: npm ci
|
|
206
|
+
- name: Check licenses
|
|
207
|
+
run: |
|
|
208
|
+
npm install -g license-checker
|
|
209
|
+
license-checker --failOn "GPL;AGPL;SSPL"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## 安全性ルール
|
|
213
|
+
|
|
214
|
+
### 必須確認ケース
|
|
215
|
+
|
|
216
|
+
1. **パッケージ変更時**: 必ずユーザー確認
|
|
217
|
+
2. **ライセンス確認ツールのインストール時**: 必ずユーザー確認
|
|
218
|
+
3. **複数の違反パッケージ発見時**: 一覧を提示してユーザー確認
|
|
219
|
+
|
|
220
|
+
### 禁止事項
|
|
221
|
+
|
|
222
|
+
- ❌ ユーザー確認なしでのパッケージ変更
|
|
223
|
+
- ❌ ユーザー確認なしでのツールインストール
|
|
224
|
+
- ❌ ライセンス違反を無視して処理を続行
|
|
225
|
+
|
|
226
|
+
### 推奨パターン
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
AIエージェント:
|
|
230
|
+
「以下のライセンス違反を検出しました:
|
|
231
|
+
|
|
232
|
+
🔴 Critical (2件)
|
|
233
|
+
1. package-a v1.0.0 (GPL-3.0)
|
|
234
|
+
→ 代替: package-a-alternative v2.0.0 (MIT)
|
|
235
|
+
|
|
236
|
+
2. package-b v3.0.0 (AGPL-3.0)
|
|
237
|
+
→ 代替: package-b-fork v1.5.0 (Apache-2.0)
|
|
238
|
+
|
|
239
|
+
対応方法:
|
|
240
|
+
A) 代替パッケージに移行する
|
|
241
|
+
B) 法務チームに相談する
|
|
242
|
+
C) 詳細を調査する
|
|
243
|
+
|
|
244
|
+
どの対応を希望しますか?」
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## CI/CDスキルとの連携
|
|
248
|
+
|
|
249
|
+
ライセンス違反が原因でCIが失敗した場合、`ci-cd` スキル(`.claude/skills/ci-cd/SKILL.md`)を参照してログを確認してください。
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# GitHub Actions の場合
|
|
253
|
+
gh run view <run-id> --log | grep -i license
|
|
254
|
+
|
|
255
|
+
# Screwdriver の場合
|
|
256
|
+
# UIまたはAPIでライセンスチェックステップのログを確認
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## 参考資料
|
|
260
|
+
|
|
261
|
+
- [SPDX License List](https://spdx.org/licenses/)
|
|
262
|
+
- [choosealicense.com](https://choosealicense.com/)
|
|
263
|
+
- [license-checker (npm)](https://www.npmjs.com/package/license-checker)
|
|
264
|
+
- [pip-licenses (PyPI)](https://pypi.org/project/pip-licenses/)
|
|
265
|
+
- [FOSSA Documentation](https://fossa.com/docs)
|