cokit-cli 1.2.7 → 1.3.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/README.md +8 -31
- package/agents/brainstormer.agent.md +28 -14
- package/agents/code-reviewer.agent.md +101 -67
- package/agents/code-simplifier.agent.md +36 -41
- package/agents/debugger.agent.md +29 -24
- package/agents/docs-manager.agent.md +15 -23
- package/agents/fullstack-developer.agent.md +16 -6
- package/agents/git-manager.agent.md +0 -3
- package/agents/planner.agent.md +16 -34
- package/agents/project-manager.agent.md +24 -0
- package/agents/researcher.agent.md +15 -13
- package/agents/tester.agent.md +43 -20
- package/agents/ui-ux-designer.agent.md +16 -49
- package/docs/README.md +8 -9
- package/docs/Skills Orchestration Layer - Training Slides - en.pdf +0 -0
- package/docs/Skills Orchestration Layer - Training Slides - vi.pdf +0 -0
- package/docs/code-standards.md +1 -2
- package/docs/codebase-summary.md +35 -66
- package/docs/cokit-commands-usage-guide.md +27 -73
- package/docs/cokit-comprehensive-mapping-guide.md +8 -10
- package/docs/cokit-slides.md +2 -5
- package/docs/cokit-sync-and-maintenance-guide.md +42 -190
- package/docs/cokit-team-presentation.md +6 -9
- package/docs/copilot-processing-flow.md +3 -3
- package/docs/migration-guide.md +14 -14
- package/docs/project-overview-pdr.md +5 -6
- package/docs/project-roadmap.md +12 -14
- package/docs/skills-and-orchestration-layer-en.md +404 -0
- package/docs/skills-and-orchestration-layer-vi.md +404 -0
- package/docs/system-architecture.md +13 -17
- package/docs/{claudekit-porting-rules.md → upstream-porting-rules.md} +15 -16
- package/package.json +3 -4
- package/prompts/ck-ask.prompt.md +0 -1
- package/prompts/ck-bootstrap.prompt.md +0 -3
- package/prompts/ck-brainstorm.prompt.md +0 -1
- package/prompts/ck-cook.prompt.md +0 -1
- package/prompts/ck-debug.prompt.md +0 -1
- package/prompts/ck-deploy.prompt.md +22 -0
- package/prompts/ck-docs.prompt.md +0 -1
- package/prompts/ck-frontend.prompt.md +20 -0
- package/prompts/ck-help.prompt.md +0 -1
- package/prompts/ck-plan-fast.prompt.md +0 -3
- package/prompts/ck-plan-hard.prompt.md +0 -3
- package/prompts/ck-plan.prompt.md +0 -3
- package/prompts/ck-project.prompt.md +20 -0
- package/prompts/ck-review.prompt.md +0 -3
- package/prompts/ck-scout.prompt.md +0 -1
- package/prompts/ck-security.prompt.md +22 -0
- package/prompts/ck-ship.prompt.md +22 -0
- package/prompts/ck-test.prompt.md +0 -2
- package/prompts/ck-watzup.prompt.md +0 -1
- package/skills/agent-browser/SKILL.md +11 -8
- package/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/skills/bootstrap/SKILL.md +102 -0
- package/skills/bootstrap/references/shared-phases.md +59 -0
- package/skills/bootstrap/references/workflow-auto.md +52 -0
- package/skills/bootstrap/references/workflow-fast.md +50 -0
- package/skills/bootstrap/references/workflow-full.md +60 -0
- package/skills/bootstrap/references/workflow-parallel.md +59 -0
- package/skills/brainstorm/SKILL.md +63 -15
- package/skills/code-review/SKILL.md +138 -135
- package/skills/code-review/references/adversarial-review.md +223 -0
- package/skills/code-review/references/checklist-workflow.md +100 -0
- package/skills/code-review/references/checklists/api.md +52 -0
- package/skills/code-review/references/checklists/base.md +100 -0
- package/skills/code-review/references/checklists/web-app.md +54 -0
- package/skills/code-review/references/code-review-reception.md +48 -144
- package/skills/code-review/references/codebase-scan-workflow.md +30 -0
- package/skills/code-review/references/edge-case-scouting.md +119 -0
- package/skills/code-review/references/input-mode-resolution.md +135 -0
- package/skills/code-review/references/parallel-review-workflow.md +76 -0
- package/skills/code-review/references/requesting-code-review.md +115 -104
- package/skills/code-review/references/spec-compliance-review.md +43 -0
- package/skills/code-review/references/task-management-reviews.md +155 -0
- package/skills/common/README.md +2 -12
- package/skills/common/api_key_helper.py +7 -37
- package/skills/context-engineering/SKILL.md +4 -3
- package/skills/context-engineering/references/context-degradation.md +2 -2
- package/skills/context-engineering/references/runtime-awareness.md +5 -47
- package/skills/cook/README.md +13 -13
- package/skills/cook/SKILL.md +86 -58
- package/skills/cook/references/intent-detection.md +7 -7
- package/skills/cook/references/review-cycle.md +2 -2
- package/skills/cook/references/subagent-patterns.md +75 -0
- package/skills/cook/references/workflow-steps.md +75 -23
- package/skills/databases/SKILL.md +3 -30
- package/skills/databases/db-design.md +1 -1
- package/skills/debug/SKILL.md +47 -105
- package/skills/debug/references/frontend-verification.md +103 -0
- package/skills/debug/references/investigation-methodology.md +101 -0
- package/skills/debug/references/log-and-ci-analysis.md +97 -0
- package/skills/debug/references/performance-diagnostics.md +113 -0
- package/skills/debug/references/reporting-standards.md +122 -0
- package/skills/debug/references/task-management-debugging.md +155 -0
- package/skills/deploy/SKILL.md +154 -0
- package/skills/deploy/references/platform-config-templates.md +35 -0
- package/skills/deploy/references/platforms/aws.md +58 -0
- package/skills/deploy/references/platforms/cloudflare.md +41 -0
- package/skills/deploy/references/platforms/coolify.md +32 -0
- package/skills/deploy/references/platforms/digitalocean.md +45 -0
- package/skills/deploy/references/platforms/dokploy.md +29 -0
- package/skills/deploy/references/platforms/flyio.md +54 -0
- package/skills/deploy/references/platforms/gcp.md +45 -0
- package/skills/deploy/references/platforms/github-pages.md +56 -0
- package/skills/deploy/references/platforms/heroku.md +31 -0
- package/skills/deploy/references/platforms/netlify.md +39 -0
- package/skills/deploy/references/platforms/railway.md +38 -0
- package/skills/deploy/references/platforms/render.md +39 -0
- package/skills/deploy/references/platforms/tose.md +35 -0
- package/skills/deploy/references/platforms/vercel.md +37 -0
- package/skills/deploy/references/platforms/vultr.md +27 -0
- package/skills/devops/SKILL.md +6 -12
- package/skills/docs-seeker/SKILL.md +2 -1
- package/skills/docs-seeker/references/context7-patterns.md +4 -0
- package/skills/docs-seeker/scripts/fetch-docs.js +1 -2
- package/skills/docs-seeker/scripts/utils/env-loader.js +4 -4
- package/skills/docs-seeker/workflows/library-search.md +1 -0
- package/skills/fix/SKILL.md +141 -44
- package/skills/fix/references/complexity-assessment.md +21 -9
- package/skills/fix/references/diagnosis-protocol.md +133 -0
- package/skills/fix/references/mode-selection.md +27 -11
- package/skills/fix/references/parallel-exploration.md +35 -12
- package/skills/fix/references/prevention-gate.md +87 -0
- package/skills/fix/references/review-cycle.md +3 -3
- package/skills/fix/references/skill-activation-matrix.md +64 -31
- package/skills/fix/references/task-orchestration.md +110 -0
- package/skills/fix/references/workflow-deep.md +110 -47
- package/skills/fix/references/workflow-logs.md +46 -10
- package/skills/fix/references/workflow-quick.md +43 -20
- package/skills/fix/references/workflow-standard.md +75 -41
- package/skills/fix/references/workflow-test.md +49 -10
- package/skills/fix/references/workflow-ui.md +56 -18
- package/skills/frontend-design/SKILL.md +109 -77
- package/skills/frontend-design/references/ai-multimodal-overview.md +165 -0
- package/skills/frontend-design/references/anti-slop-rules.md +103 -0
- package/skills/frontend-design/references/asset-generation.md +284 -108
- package/skills/frontend-design/references/bento-motion-engine.md +142 -0
- package/skills/frontend-design/references/magicui-components.md +129 -0
- package/skills/frontend-design/references/performance-guardrails.md +169 -0
- package/skills/frontend-design/references/premium-design-patterns.md +93 -0
- package/skills/frontend-design/references/redesign-audit-checklist.md +114 -0
- package/skills/frontend-design/references/visual-analysis-overview.md +1 -1
- package/skills/frontend-design/references/workflow-3d.md +98 -0
- package/skills/frontend-design/references/workflow-describe.md +4 -3
- package/skills/frontend-design/references/workflow-immersive.md +82 -0
- package/skills/frontend-design/references/workflow-quick.md +10 -12
- package/skills/frontend-design/references/workflow-screenshot.md +9 -8
- package/skills/frontend-design/references/workflow-video.md +74 -0
- package/skills/frontend-development/SKILL.md +400 -0
- package/skills/frontend-development/resources/common-patterns.md +331 -0
- package/skills/frontend-development/resources/complete-examples.md +872 -0
- package/skills/frontend-development/resources/component-patterns.md +502 -0
- package/skills/frontend-development/resources/data-fetching.md +767 -0
- package/skills/frontend-development/resources/file-organization.md +502 -0
- package/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/skills/frontend-development/resources/performance.md +406 -0
- package/skills/frontend-development/resources/routing-guide.md +364 -0
- package/skills/frontend-development/resources/styling-guide.md +428 -0
- package/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/skills/git/SKILL.md +18 -4
- package/skills/git/references/commit-standards.md +3 -3
- package/skills/git/references/workflow-commit.md +3 -3
- package/skills/git/references/workflow-merge.md +1 -1
- package/skills/git/references/workflow-pr.md +1 -1
- package/skills/git/references/workflow-push.md +1 -1
- package/skills/mcp-management/README.md +18 -18
- package/skills/mcp-management/SKILL.md +16 -15
- package/skills/mcp-management/references/configuration.md +4 -4
- package/skills/mcp-management/references/gemini-cli-integration.md +12 -12
- package/skills/mcp-management/scripts/.env.example +2 -2
- package/skills/mcp-management/scripts/dist/mcp-client.js +1 -1
- package/skills/mcp-management/scripts/mcp-client.ts +1 -1
- package/skills/mermaidjs-v11/SKILL.md +1 -0
- package/skills/planning/SKILL.md +122 -91
- package/skills/planning/references/archive-workflow.md +53 -0
- package/skills/planning/references/codebase-understanding.md +1 -1
- package/skills/planning/references/output-standards.md +17 -13
- package/skills/planning/references/plan-organization.md +52 -30
- package/skills/planning/references/red-team-personas.md +69 -0
- package/skills/planning/references/red-team-workflow.md +77 -0
- package/skills/planning/references/scope-challenge.md +90 -0
- package/skills/planning/references/task-management.md +134 -0
- package/skills/planning/references/validate-question-framework.md +80 -0
- package/skills/planning/references/validate-workflow.md +65 -0
- package/skills/planning/references/workflow-modes.md +154 -0
- package/skills/problem-solving/SKILL.md +1 -0
- package/skills/project-management/SKILL.md +133 -0
- package/skills/project-management/references/documentation-triggers.md +60 -0
- package/skills/project-management/references/hydration-workflow.md +89 -0
- package/skills/project-management/references/progress-tracking.md +120 -0
- package/skills/project-management/references/reporting-patterns.md +94 -0
- package/skills/project-management/references/task-operations.md +87 -0
- package/skills/repomix/SKILL.md +3 -2
- package/skills/repomix/references/usage-patterns.md +2 -2
- package/skills/repomix/scripts/README.md +1 -1
- package/skills/repomix/scripts/repomix_batch.py +2 -2
- package/skills/research/SKILL.md +7 -4
- package/skills/scout/SKILL.md +24 -24
- package/skills/scout/references/external-scouting.md +17 -17
- package/skills/scout/references/internal-scouting.md +9 -9
- package/skills/scout/references/task-management-scouting.md +125 -0
- package/skills/security/SKILL.md +139 -0
- package/skills/security/references/stride-owasp-checklist.md +128 -0
- package/skills/sequential-thinking/README.md +3 -3
- package/skills/sequential-thinking/SKILL.md +2 -0
- package/skills/sequential-thinking/package.json +1 -1
- package/skills/ship/SKILL.md +116 -0
- package/skills/ship/references/auto-detect.md +103 -0
- package/skills/ship/references/pr-template.md +90 -0
- package/skills/ship/references/ship-workflow.md +241 -0
- package/skills/test/SKILL.md +111 -0
- package/skills/test/references/report-format.md +58 -0
- package/skills/test/references/test-execution-workflow.md +103 -0
- package/skills/test/references/ui-testing-workflow.md +65 -0
- package/skills/ui-styling/SKILL.md +2 -0
- package/skills/web-testing/SKILL.md +8 -60
- package/templates/repo/.github/agents/brainstormer.agent.md +28 -14
- package/templates/repo/.github/agents/code-reviewer.agent.md +101 -67
- package/templates/repo/.github/agents/code-simplifier.agent.md +36 -41
- package/templates/repo/.github/agents/debugger.agent.md +29 -24
- package/templates/repo/.github/agents/docs-manager.agent.md +15 -23
- package/templates/repo/.github/agents/fullstack-developer.agent.md +16 -6
- package/templates/repo/.github/agents/git-manager.agent.md +0 -3
- package/templates/repo/.github/agents/planner.agent.md +16 -34
- package/templates/repo/.github/agents/project-manager.agent.md +24 -0
- package/templates/repo/.github/agents/researcher.agent.md +15 -13
- package/templates/repo/.github/agents/tester.agent.md +43 -20
- package/templates/repo/.github/agents/ui-ux-designer.agent.md +16 -49
- package/templates/repo/.github/prompts/ck-ask.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-bootstrap.prompt.md +0 -3
- package/templates/repo/.github/prompts/ck-brainstorm.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-cook.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-debug.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-deploy.prompt.md +22 -0
- package/templates/repo/.github/prompts/ck-docs.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-frontend.prompt.md +20 -0
- package/templates/repo/.github/prompts/ck-help.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-plan-fast.prompt.md +0 -3
- package/templates/repo/.github/prompts/ck-plan-hard.prompt.md +0 -3
- package/templates/repo/.github/prompts/ck-plan.prompt.md +0 -3
- package/templates/repo/.github/prompts/ck-project.prompt.md +20 -0
- package/templates/repo/.github/prompts/ck-review.prompt.md +0 -3
- package/templates/repo/.github/prompts/ck-scout.prompt.md +0 -1
- package/templates/repo/.github/prompts/ck-security.prompt.md +22 -0
- package/templates/repo/.github/prompts/ck-ship.prompt.md +22 -0
- package/templates/repo/.github/prompts/ck-test.prompt.md +0 -2
- package/templates/repo/.github/prompts/ck-watzup.prompt.md +0 -1
- package/templates/repo/.github/skills/agent-browser/SKILL.md +11 -8
- package/templates/repo/.github/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/templates/repo/.github/skills/bootstrap/SKILL.md +102 -0
- package/templates/repo/.github/skills/bootstrap/references/shared-phases.md +59 -0
- package/templates/repo/.github/skills/bootstrap/references/workflow-auto.md +52 -0
- package/templates/repo/.github/skills/bootstrap/references/workflow-fast.md +50 -0
- package/templates/repo/.github/skills/bootstrap/references/workflow-full.md +60 -0
- package/templates/repo/.github/skills/bootstrap/references/workflow-parallel.md +59 -0
- package/templates/repo/.github/skills/brainstorm/SKILL.md +63 -15
- package/templates/repo/.github/skills/code-review/SKILL.md +138 -135
- package/templates/repo/.github/skills/code-review/references/adversarial-review.md +223 -0
- package/templates/repo/.github/skills/code-review/references/checklist-workflow.md +100 -0
- package/templates/repo/.github/skills/code-review/references/checklists/api.md +52 -0
- package/templates/repo/.github/skills/code-review/references/checklists/base.md +100 -0
- package/templates/repo/.github/skills/code-review/references/checklists/web-app.md +54 -0
- package/templates/repo/.github/skills/code-review/references/code-review-reception.md +48 -144
- package/templates/repo/.github/skills/code-review/references/codebase-scan-workflow.md +30 -0
- package/templates/repo/.github/skills/code-review/references/edge-case-scouting.md +119 -0
- package/templates/repo/.github/skills/code-review/references/input-mode-resolution.md +135 -0
- package/templates/repo/.github/skills/code-review/references/parallel-review-workflow.md +76 -0
- package/templates/repo/.github/skills/code-review/references/requesting-code-review.md +19 -8
- package/templates/repo/.github/skills/code-review/references/spec-compliance-review.md +43 -0
- package/templates/repo/.github/skills/code-review/references/task-management-reviews.md +155 -0
- package/templates/repo/.github/skills/common/README.md +2 -12
- package/templates/repo/.github/skills/common/api_key_helper.py +7 -37
- package/templates/repo/.github/skills/context-engineering/SKILL.md +4 -3
- package/templates/repo/.github/skills/context-engineering/references/context-degradation.md +2 -2
- package/templates/repo/.github/skills/context-engineering/references/runtime-awareness.md +5 -47
- package/templates/repo/.github/skills/cook/README.md +13 -13
- package/templates/repo/.github/skills/cook/SKILL.md +86 -58
- package/templates/repo/.github/skills/cook/references/intent-detection.md +7 -7
- package/templates/repo/.github/skills/cook/references/review-cycle.md +2 -2
- package/templates/repo/.github/skills/cook/references/subagent-patterns.md +75 -0
- package/templates/repo/.github/skills/cook/references/workflow-steps.md +75 -23
- package/templates/repo/.github/skills/databases/SKILL.md +3 -30
- package/templates/repo/.github/skills/databases/db-design.md +1 -1
- package/templates/repo/.github/skills/debug/SKILL.md +47 -105
- package/templates/repo/.github/skills/debug/references/frontend-verification.md +103 -0
- package/templates/repo/.github/skills/debug/references/investigation-methodology.md +101 -0
- package/templates/repo/.github/skills/debug/references/log-and-ci-analysis.md +97 -0
- package/templates/repo/.github/skills/debug/references/performance-diagnostics.md +113 -0
- package/templates/repo/.github/skills/debug/references/reporting-standards.md +122 -0
- package/templates/repo/.github/skills/debug/references/task-management-debugging.md +155 -0
- package/templates/repo/.github/skills/deploy/SKILL.md +154 -0
- package/templates/repo/.github/skills/deploy/references/platform-config-templates.md +35 -0
- package/templates/repo/.github/skills/deploy/references/platforms/aws.md +58 -0
- package/templates/repo/.github/skills/deploy/references/platforms/cloudflare.md +41 -0
- package/templates/repo/.github/skills/deploy/references/platforms/coolify.md +32 -0
- package/templates/repo/.github/skills/deploy/references/platforms/digitalocean.md +45 -0
- package/templates/repo/.github/skills/deploy/references/platforms/dokploy.md +29 -0
- package/templates/repo/.github/skills/deploy/references/platforms/flyio.md +54 -0
- package/templates/repo/.github/skills/deploy/references/platforms/gcp.md +45 -0
- package/templates/repo/.github/skills/deploy/references/platforms/github-pages.md +56 -0
- package/templates/repo/.github/skills/deploy/references/platforms/heroku.md +31 -0
- package/templates/repo/.github/skills/deploy/references/platforms/netlify.md +39 -0
- package/templates/repo/.github/skills/deploy/references/platforms/railway.md +38 -0
- package/templates/repo/.github/skills/deploy/references/platforms/render.md +39 -0
- package/templates/repo/.github/skills/deploy/references/platforms/tose.md +35 -0
- package/templates/repo/.github/skills/deploy/references/platforms/vercel.md +37 -0
- package/templates/repo/.github/skills/deploy/references/platforms/vultr.md +27 -0
- package/templates/repo/.github/skills/devops/SKILL.md +6 -12
- package/templates/repo/.github/skills/docs-seeker/SKILL.md +2 -1
- package/templates/repo/.github/skills/docs-seeker/references/context7-patterns.md +4 -0
- package/templates/repo/.github/skills/docs-seeker/scripts/fetch-docs.js +1 -2
- package/templates/repo/.github/skills/docs-seeker/scripts/utils/env-loader.js +4 -4
- package/templates/repo/.github/skills/docs-seeker/workflows/library-search.md +1 -0
- package/templates/repo/.github/skills/fix/SKILL.md +141 -44
- package/templates/repo/.github/skills/fix/references/complexity-assessment.md +21 -9
- package/templates/repo/.github/skills/fix/references/diagnosis-protocol.md +133 -0
- package/templates/repo/.github/skills/fix/references/mode-selection.md +27 -11
- package/templates/repo/.github/skills/fix/references/parallel-exploration.md +35 -12
- package/templates/repo/.github/skills/fix/references/prevention-gate.md +87 -0
- package/templates/repo/.github/skills/fix/references/review-cycle.md +3 -3
- package/templates/repo/.github/skills/fix/references/skill-activation-matrix.md +64 -31
- package/templates/repo/.github/skills/fix/references/task-orchestration.md +110 -0
- package/templates/repo/.github/skills/fix/references/workflow-deep.md +110 -47
- package/templates/repo/.github/skills/fix/references/workflow-logs.md +46 -10
- package/templates/repo/.github/skills/fix/references/workflow-quick.md +43 -20
- package/templates/repo/.github/skills/fix/references/workflow-standard.md +75 -41
- package/templates/repo/.github/skills/fix/references/workflow-test.md +49 -10
- package/templates/repo/.github/skills/fix/references/workflow-ui.md +56 -18
- package/templates/repo/.github/skills/frontend-design/SKILL.md +49 -17
- package/templates/repo/.github/skills/frontend-design/references/ai-multimodal-overview.md +165 -0
- package/templates/repo/.github/skills/frontend-design/references/anti-slop-rules.md +103 -0
- package/templates/repo/.github/skills/frontend-design/references/asset-generation.md +284 -108
- package/templates/repo/.github/skills/frontend-design/references/bento-motion-engine.md +142 -0
- package/templates/repo/.github/skills/frontend-design/references/magicui-components.md +129 -0
- package/templates/repo/.github/skills/frontend-design/references/performance-guardrails.md +169 -0
- package/templates/repo/.github/skills/frontend-design/references/premium-design-patterns.md +93 -0
- package/templates/repo/.github/skills/frontend-design/references/redesign-audit-checklist.md +114 -0
- package/templates/repo/.github/skills/frontend-design/references/visual-analysis-overview.md +1 -1
- package/templates/repo/.github/skills/frontend-design/references/workflow-3d.md +98 -0
- package/templates/repo/.github/skills/frontend-design/references/workflow-describe.md +4 -3
- package/templates/repo/.github/skills/frontend-design/references/workflow-immersive.md +82 -0
- package/templates/repo/.github/skills/frontend-design/references/workflow-quick.md +10 -12
- package/templates/repo/.github/skills/frontend-design/references/workflow-screenshot.md +9 -8
- package/templates/repo/.github/skills/frontend-design/references/workflow-video.md +74 -0
- package/templates/repo/.github/skills/frontend-development/SKILL.md +400 -0
- package/templates/repo/.github/skills/frontend-development/resources/common-patterns.md +331 -0
- package/templates/repo/.github/skills/frontend-development/resources/complete-examples.md +872 -0
- package/templates/repo/.github/skills/frontend-development/resources/component-patterns.md +502 -0
- package/templates/repo/.github/skills/frontend-development/resources/data-fetching.md +767 -0
- package/templates/repo/.github/skills/frontend-development/resources/file-organization.md +502 -0
- package/templates/repo/.github/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/templates/repo/.github/skills/frontend-development/resources/performance.md +406 -0
- package/templates/repo/.github/skills/frontend-development/resources/routing-guide.md +364 -0
- package/templates/repo/.github/skills/frontend-development/resources/styling-guide.md +428 -0
- package/templates/repo/.github/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/templates/repo/.github/skills/git/SKILL.md +18 -4
- package/templates/repo/.github/skills/git/references/commit-standards.md +3 -3
- package/templates/repo/.github/skills/git/references/workflow-commit.md +3 -3
- package/templates/repo/.github/skills/git/references/workflow-merge.md +1 -1
- package/templates/repo/.github/skills/git/references/workflow-pr.md +1 -1
- package/templates/repo/.github/skills/git/references/workflow-push.md +1 -1
- package/templates/repo/.github/skills/mcp-management/README.md +18 -18
- package/templates/repo/.github/skills/mcp-management/SKILL.md +16 -15
- package/templates/repo/.github/skills/mcp-management/references/configuration.md +4 -4
- package/templates/repo/.github/skills/mcp-management/references/gemini-cli-integration.md +12 -12
- package/templates/repo/.github/skills/mcp-management/scripts/.env.example +2 -2
- package/templates/repo/.github/skills/mcp-management/scripts/mcp-client.ts +1 -1
- package/templates/repo/.github/skills/mermaidjs-v11/SKILL.md +1 -0
- package/templates/repo/.github/skills/planning/SKILL.md +122 -91
- package/templates/repo/.github/skills/planning/references/archive-workflow.md +53 -0
- package/templates/repo/.github/skills/planning/references/codebase-understanding.md +1 -1
- package/templates/repo/.github/skills/planning/references/output-standards.md +17 -13
- package/templates/repo/.github/skills/planning/references/plan-organization.md +52 -30
- package/templates/repo/.github/skills/planning/references/red-team-personas.md +69 -0
- package/templates/repo/.github/skills/planning/references/red-team-workflow.md +77 -0
- package/templates/repo/.github/skills/planning/references/scope-challenge.md +90 -0
- package/templates/repo/.github/skills/planning/references/task-management.md +134 -0
- package/templates/repo/.github/skills/planning/references/validate-question-framework.md +80 -0
- package/templates/repo/.github/skills/planning/references/validate-workflow.md +65 -0
- package/templates/repo/.github/skills/planning/references/workflow-modes.md +154 -0
- package/templates/repo/.github/skills/problem-solving/SKILL.md +1 -0
- package/templates/repo/.github/skills/project-management/SKILL.md +133 -0
- package/templates/repo/.github/skills/project-management/references/documentation-triggers.md +60 -0
- package/templates/repo/.github/skills/project-management/references/hydration-workflow.md +89 -0
- package/templates/repo/.github/skills/project-management/references/progress-tracking.md +120 -0
- package/templates/repo/.github/skills/project-management/references/reporting-patterns.md +94 -0
- package/templates/repo/.github/skills/project-management/references/task-operations.md +87 -0
- package/templates/repo/.github/skills/repomix/SKILL.md +3 -2
- package/templates/repo/.github/skills/repomix/references/usage-patterns.md +2 -2
- package/templates/repo/.github/skills/repomix/scripts/README.md +1 -1
- package/templates/repo/.github/skills/repomix/scripts/repomix_batch.py +2 -2
- package/templates/repo/.github/skills/research/SKILL.md +7 -4
- package/templates/repo/.github/skills/scout/SKILL.md +24 -24
- package/templates/repo/.github/skills/scout/references/external-scouting.md +17 -17
- package/templates/repo/.github/skills/scout/references/internal-scouting.md +9 -9
- package/templates/repo/.github/skills/scout/references/task-management-scouting.md +125 -0
- package/templates/repo/.github/skills/security/SKILL.md +139 -0
- package/templates/repo/.github/skills/security/references/stride-owasp-checklist.md +128 -0
- package/templates/repo/.github/skills/sequential-thinking/README.md +3 -3
- package/templates/repo/.github/skills/sequential-thinking/SKILL.md +2 -0
- package/templates/repo/.github/skills/sequential-thinking/package-lock.json +3652 -0
- package/templates/repo/.github/skills/sequential-thinking/package.json +1 -1
- package/templates/repo/.github/skills/ship/SKILL.md +116 -0
- package/templates/repo/.github/skills/ship/references/auto-detect.md +103 -0
- package/templates/repo/.github/skills/ship/references/pr-template.md +90 -0
- package/templates/repo/.github/skills/ship/references/ship-workflow.md +241 -0
- package/templates/repo/.github/skills/test/SKILL.md +111 -0
- package/templates/repo/.github/skills/test/references/report-format.md +58 -0
- package/templates/repo/.github/skills/test/references/test-execution-workflow.md +103 -0
- package/templates/repo/.github/skills/test/references/ui-testing-workflow.md +65 -0
- package/templates/repo/.github/skills/ui-styling/SKILL.md +2 -0
- package/templates/repo/.github/skills/web-testing/SKILL.md +8 -60
- package/docs/guide-next-steps-speckit-cokit-implementation.md +0 -187
- package/prompts/ck-spec-analyze.prompt.md +0 -201
- package/prompts/ck-spec-checklist.prompt.md +0 -308
- package/prompts/ck-spec-clarify.prompt.md +0 -190
- package/prompts/ck-spec-constitution.prompt.md +0 -92
- package/prompts/ck-spec-implement.prompt.md +0 -157
- package/prompts/ck-spec-plan.prompt.md +0 -95
- package/prompts/ck-spec-specify.prompt.md +0 -261
- package/prompts/ck-spec-tasks.prompt.md +0 -181
- package/templates/repo/.github/AGENTS.md +0 -103
- package/templates/repo/.github/prompts/ck-spec-analyze.prompt.md +0 -201
- package/templates/repo/.github/prompts/ck-spec-checklist.prompt.md +0 -308
- package/templates/repo/.github/prompts/ck-spec-clarify.prompt.md +0 -190
- package/templates/repo/.github/prompts/ck-spec-constitution.prompt.md +0 -92
- package/templates/repo/.github/prompts/ck-spec-implement.prompt.md +0 -157
- package/templates/repo/.github/prompts/ck-spec-plan.prompt.md +0 -95
- package/templates/repo/.github/prompts/ck-spec-specify.prompt.md +0 -261
- package/templates/repo/.github/prompts/ck-spec-tasks.prompt.md +0 -181
- package/templates/repo/.github/skills/databases/stacks/bigquery.md +0 -231
- package/templates/repo/.github/skills/databases/stacks/d1_cloudflare.md +0 -137
- package/templates/repo/.github/skills/databases/stacks/mysql.md +0 -216
- package/templates/repo/.github/skills/databases/stacks/postgres.md +0 -235
- package/templates/repo/.github/skills/databases/stacks/sqlite.md +0 -244
- package/templates/repo/.github/skills/mcp-management/assets/tools.json +0 -3146
- package/templates/repo/.github/skills/mcp-management/scripts/dist/analyze-tools.js +0 -70
- package/templates/repo/.github/skills/mcp-management/scripts/dist/cli.js +0 -160
- package/templates/repo/.github/skills/mcp-management/scripts/dist/mcp-client.js +0 -183
- package/templates/repo/.github/skills/ui-styling/LICENSE.txt +0 -202
- package/templates/repo/.github/spec-kit/memory/constitution.md +0 -50
- package/templates/repo/.github/spec-kit/scripts/bash/check-prerequisites.sh +0 -166
- package/templates/repo/.github/spec-kit/scripts/bash/common.sh +0 -156
- package/templates/repo/.github/spec-kit/scripts/bash/create-new-feature.sh +0 -297
- package/templates/repo/.github/spec-kit/scripts/bash/setup-plan.sh +0 -61
- package/templates/repo/.github/spec-kit/scripts/bash/update-agent-context.sh +0 -799
- package/templates/repo/.github/spec-kit/scripts/powershell/check-prerequisites.ps1 +0 -148
- package/templates/repo/.github/spec-kit/scripts/powershell/common.ps1 +0 -137
- package/templates/repo/.github/spec-kit/scripts/powershell/create-new-feature.ps1 +0 -283
- package/templates/repo/.github/spec-kit/scripts/powershell/setup-plan.ps1 +0 -61
- package/templates/repo/.github/spec-kit/scripts/powershell/update-agent-context.ps1 +0 -448
- package/templates/repo/.github/spec-kit/templates/agent-file-template.md +0 -28
- package/templates/repo/.github/spec-kit/templates/checklist-template.md +0 -40
- package/templates/repo/.github/spec-kit/templates/commands/analyze.md +0 -187
- package/templates/repo/.github/spec-kit/templates/commands/checklist.md +0 -297
- package/templates/repo/.github/spec-kit/templates/commands/clarify.md +0 -184
- package/templates/repo/.github/spec-kit/templates/commands/constitution.md +0 -82
- package/templates/repo/.github/spec-kit/templates/commands/implement.md +0 -138
- package/templates/repo/.github/spec-kit/templates/commands/plan.md +0 -95
- package/templates/repo/.github/spec-kit/templates/commands/specify.md +0 -261
- package/templates/repo/.github/spec-kit/templates/commands/tasks.md +0 -140
- package/templates/repo/.github/spec-kit/templates/commands/taskstoissues.md +0 -33
- package/templates/repo/.github/spec-kit/templates/plan-template.md +0 -104
- package/templates/repo/.github/spec-kit/templates/spec-template.md +0 -115
- package/templates/repo/.github/spec-kit/templates/tasks-phase-template.md +0 -42
- package/templates/repo/.github/spec-kit/templates/tasks-template.md +0 -268
- package/templates/repo/.github/spec-kit/templates/vscode-settings.json +0 -14
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env pwsh
|
|
2
|
-
|
|
3
|
-
# Consolidated prerequisite checking script (PowerShell)
|
|
4
|
-
#
|
|
5
|
-
# This script provides unified prerequisite checking for Spec-Driven Development workflow.
|
|
6
|
-
# It replaces the functionality previously spread across multiple scripts.
|
|
7
|
-
#
|
|
8
|
-
# Usage: ./check-prerequisites.ps1 [OPTIONS]
|
|
9
|
-
#
|
|
10
|
-
# OPTIONS:
|
|
11
|
-
# -Json Output in JSON format
|
|
12
|
-
# -RequireTasks Require tasks.md to exist (for implementation phase)
|
|
13
|
-
# -IncludeTasks Include tasks.md in AVAILABLE_DOCS list
|
|
14
|
-
# -PathsOnly Only output path variables (no validation)
|
|
15
|
-
# -Help, -h Show help message
|
|
16
|
-
|
|
17
|
-
[CmdletBinding()]
|
|
18
|
-
param(
|
|
19
|
-
[switch]$Json,
|
|
20
|
-
[switch]$RequireTasks,
|
|
21
|
-
[switch]$IncludeTasks,
|
|
22
|
-
[switch]$PathsOnly,
|
|
23
|
-
[switch]$Help
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
$ErrorActionPreference = 'Stop'
|
|
27
|
-
|
|
28
|
-
# Show help if requested
|
|
29
|
-
if ($Help) {
|
|
30
|
-
Write-Output @"
|
|
31
|
-
Usage: check-prerequisites.ps1 [OPTIONS]
|
|
32
|
-
|
|
33
|
-
Consolidated prerequisite checking for Spec-Driven Development workflow.
|
|
34
|
-
|
|
35
|
-
OPTIONS:
|
|
36
|
-
-Json Output in JSON format
|
|
37
|
-
-RequireTasks Require tasks.md to exist (for implementation phase)
|
|
38
|
-
-IncludeTasks Include tasks.md in AVAILABLE_DOCS list
|
|
39
|
-
-PathsOnly Only output path variables (no prerequisite validation)
|
|
40
|
-
-Help, -h Show this help message
|
|
41
|
-
|
|
42
|
-
EXAMPLES:
|
|
43
|
-
# Check task prerequisites (plan.md required)
|
|
44
|
-
.\check-prerequisites.ps1 -Json
|
|
45
|
-
|
|
46
|
-
# Check implementation prerequisites (plan.md + tasks.md required)
|
|
47
|
-
.\check-prerequisites.ps1 -Json -RequireTasks -IncludeTasks
|
|
48
|
-
|
|
49
|
-
# Get feature paths only (no validation)
|
|
50
|
-
.\check-prerequisites.ps1 -PathsOnly
|
|
51
|
-
|
|
52
|
-
"@
|
|
53
|
-
exit 0
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
# Source common functions
|
|
57
|
-
. "$PSScriptRoot/common.ps1"
|
|
58
|
-
|
|
59
|
-
# Get feature paths and validate branch
|
|
60
|
-
$paths = Get-FeaturePathsEnv
|
|
61
|
-
|
|
62
|
-
if (-not (Test-FeatureBranch -Branch $paths.CURRENT_BRANCH -HasGit:$paths.HAS_GIT)) {
|
|
63
|
-
exit 1
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
# If paths-only mode, output paths and exit (support combined -Json -PathsOnly)
|
|
67
|
-
if ($PathsOnly) {
|
|
68
|
-
if ($Json) {
|
|
69
|
-
[PSCustomObject]@{
|
|
70
|
-
REPO_ROOT = $paths.REPO_ROOT
|
|
71
|
-
BRANCH = $paths.CURRENT_BRANCH
|
|
72
|
-
FEATURE_DIR = $paths.FEATURE_DIR
|
|
73
|
-
FEATURE_SPEC = $paths.FEATURE_SPEC
|
|
74
|
-
IMPL_PLAN = $paths.IMPL_PLAN
|
|
75
|
-
TASKS = $paths.TASKS
|
|
76
|
-
} | ConvertTo-Json -Compress
|
|
77
|
-
} else {
|
|
78
|
-
Write-Output "REPO_ROOT: $($paths.REPO_ROOT)"
|
|
79
|
-
Write-Output "BRANCH: $($paths.CURRENT_BRANCH)"
|
|
80
|
-
Write-Output "FEATURE_DIR: $($paths.FEATURE_DIR)"
|
|
81
|
-
Write-Output "FEATURE_SPEC: $($paths.FEATURE_SPEC)"
|
|
82
|
-
Write-Output "IMPL_PLAN: $($paths.IMPL_PLAN)"
|
|
83
|
-
Write-Output "TASKS: $($paths.TASKS)"
|
|
84
|
-
}
|
|
85
|
-
exit 0
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
# Validate required directories and files
|
|
89
|
-
if (-not (Test-Path $paths.FEATURE_DIR -PathType Container)) {
|
|
90
|
-
Write-Output "ERROR: Feature directory not found: $($paths.FEATURE_DIR)"
|
|
91
|
-
Write-Output "Run /speckit.specify first to create the feature structure."
|
|
92
|
-
exit 1
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (-not (Test-Path $paths.IMPL_PLAN -PathType Leaf)) {
|
|
96
|
-
Write-Output "ERROR: plan.md not found in $($paths.FEATURE_DIR)"
|
|
97
|
-
Write-Output "Run /speckit.plan first to create the implementation plan."
|
|
98
|
-
exit 1
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
# Check for tasks.md if required
|
|
102
|
-
if ($RequireTasks -and -not (Test-Path $paths.TASKS -PathType Leaf)) {
|
|
103
|
-
Write-Output "ERROR: tasks.md not found in $($paths.FEATURE_DIR)"
|
|
104
|
-
Write-Output "Run /speckit.tasks first to create the task list."
|
|
105
|
-
exit 1
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
# Build list of available documents
|
|
109
|
-
$docs = @()
|
|
110
|
-
|
|
111
|
-
# Always check these optional docs
|
|
112
|
-
if (Test-Path $paths.RESEARCH) { $docs += 'research.md' }
|
|
113
|
-
if (Test-Path $paths.DATA_MODEL) { $docs += 'data-model.md' }
|
|
114
|
-
|
|
115
|
-
# Check contracts directory (only if it exists and has files)
|
|
116
|
-
if ((Test-Path $paths.CONTRACTS_DIR) -and (Get-ChildItem -Path $paths.CONTRACTS_DIR -ErrorAction SilentlyContinue | Select-Object -First 1)) {
|
|
117
|
-
$docs += 'contracts/'
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (Test-Path $paths.QUICKSTART) { $docs += 'quickstart.md' }
|
|
121
|
-
|
|
122
|
-
# Include tasks.md if requested and it exists
|
|
123
|
-
if ($IncludeTasks -and (Test-Path $paths.TASKS)) {
|
|
124
|
-
$docs += 'tasks.md'
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
# Output results
|
|
128
|
-
if ($Json) {
|
|
129
|
-
# JSON output
|
|
130
|
-
[PSCustomObject]@{
|
|
131
|
-
FEATURE_DIR = $paths.FEATURE_DIR
|
|
132
|
-
AVAILABLE_DOCS = $docs
|
|
133
|
-
} | ConvertTo-Json -Compress
|
|
134
|
-
} else {
|
|
135
|
-
# Text output
|
|
136
|
-
Write-Output "FEATURE_DIR:$($paths.FEATURE_DIR)"
|
|
137
|
-
Write-Output "AVAILABLE_DOCS:"
|
|
138
|
-
|
|
139
|
-
# Show status of each potential document
|
|
140
|
-
Test-FileExists -Path $paths.RESEARCH -Description 'research.md' | Out-Null
|
|
141
|
-
Test-FileExists -Path $paths.DATA_MODEL -Description 'data-model.md' | Out-Null
|
|
142
|
-
Test-DirHasFiles -Path $paths.CONTRACTS_DIR -Description 'contracts/' | Out-Null
|
|
143
|
-
Test-FileExists -Path $paths.QUICKSTART -Description 'quickstart.md' | Out-Null
|
|
144
|
-
|
|
145
|
-
if ($IncludeTasks) {
|
|
146
|
-
Test-FileExists -Path $paths.TASKS -Description 'tasks.md' | Out-Null
|
|
147
|
-
}
|
|
148
|
-
}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env pwsh
|
|
2
|
-
# Common PowerShell functions analogous to common.sh
|
|
3
|
-
|
|
4
|
-
function Get-RepoRoot {
|
|
5
|
-
try {
|
|
6
|
-
$result = git rev-parse --show-toplevel 2>$null
|
|
7
|
-
if ($LASTEXITCODE -eq 0) {
|
|
8
|
-
return $result
|
|
9
|
-
}
|
|
10
|
-
} catch {
|
|
11
|
-
# Git command failed
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
# Fall back to script location for non-git repos
|
|
15
|
-
return (Resolve-Path (Join-Path $PSScriptRoot "../../..")).Path
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function Get-CurrentBranch {
|
|
19
|
-
# First check if SPECIFY_FEATURE environment variable is set
|
|
20
|
-
if ($env:SPECIFY_FEATURE) {
|
|
21
|
-
return $env:SPECIFY_FEATURE
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
# Then check git if available
|
|
25
|
-
try {
|
|
26
|
-
$result = git rev-parse --abbrev-ref HEAD 2>$null
|
|
27
|
-
if ($LASTEXITCODE -eq 0) {
|
|
28
|
-
return $result
|
|
29
|
-
}
|
|
30
|
-
} catch {
|
|
31
|
-
# Git command failed
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
# For non-git repos, try to find the latest feature directory
|
|
35
|
-
$repoRoot = Get-RepoRoot
|
|
36
|
-
$specsDir = Join-Path $repoRoot "specs"
|
|
37
|
-
|
|
38
|
-
if (Test-Path $specsDir) {
|
|
39
|
-
$latestFeature = ""
|
|
40
|
-
$highest = 0
|
|
41
|
-
|
|
42
|
-
Get-ChildItem -Path $specsDir -Directory | ForEach-Object {
|
|
43
|
-
if ($_.Name -match '^(\d{3})-') {
|
|
44
|
-
$num = [int]$matches[1]
|
|
45
|
-
if ($num -gt $highest) {
|
|
46
|
-
$highest = $num
|
|
47
|
-
$latestFeature = $_.Name
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if ($latestFeature) {
|
|
53
|
-
return $latestFeature
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
# Final fallback
|
|
58
|
-
return "main"
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function Test-HasGit {
|
|
62
|
-
try {
|
|
63
|
-
git rev-parse --show-toplevel 2>$null | Out-Null
|
|
64
|
-
return ($LASTEXITCODE -eq 0)
|
|
65
|
-
} catch {
|
|
66
|
-
return $false
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function Test-FeatureBranch {
|
|
71
|
-
param(
|
|
72
|
-
[string]$Branch,
|
|
73
|
-
[bool]$HasGit = $true
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
# For non-git repos, we can't enforce branch naming but still provide output
|
|
77
|
-
if (-not $HasGit) {
|
|
78
|
-
Write-Warning "[specify] Warning: Git repository not detected; skipped branch validation"
|
|
79
|
-
return $true
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if ($Branch -notmatch '^[0-9]{3}-') {
|
|
83
|
-
Write-Output "ERROR: Not on a feature branch. Current branch: $Branch"
|
|
84
|
-
Write-Output "Feature branches should be named like: 001-feature-name"
|
|
85
|
-
return $false
|
|
86
|
-
}
|
|
87
|
-
return $true
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function Get-FeatureDir {
|
|
91
|
-
param([string]$RepoRoot, [string]$Branch)
|
|
92
|
-
Join-Path $RepoRoot "specs/$Branch"
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function Get-FeaturePathsEnv {
|
|
96
|
-
$repoRoot = Get-RepoRoot
|
|
97
|
-
$currentBranch = Get-CurrentBranch
|
|
98
|
-
$hasGit = Test-HasGit
|
|
99
|
-
$featureDir = Get-FeatureDir -RepoRoot $repoRoot -Branch $currentBranch
|
|
100
|
-
|
|
101
|
-
[PSCustomObject]@{
|
|
102
|
-
REPO_ROOT = $repoRoot
|
|
103
|
-
CURRENT_BRANCH = $currentBranch
|
|
104
|
-
HAS_GIT = $hasGit
|
|
105
|
-
FEATURE_DIR = $featureDir
|
|
106
|
-
FEATURE_SPEC = Join-Path $featureDir 'spec.md'
|
|
107
|
-
IMPL_PLAN = Join-Path $featureDir 'plan.md'
|
|
108
|
-
TASKS = Join-Path $featureDir 'tasks.md'
|
|
109
|
-
RESEARCH = Join-Path $featureDir 'research.md'
|
|
110
|
-
DATA_MODEL = Join-Path $featureDir 'data-model.md'
|
|
111
|
-
QUICKSTART = Join-Path $featureDir 'quickstart.md'
|
|
112
|
-
CONTRACTS_DIR = Join-Path $featureDir 'contracts'
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function Test-FileExists {
|
|
117
|
-
param([string]$Path, [string]$Description)
|
|
118
|
-
if (Test-Path -Path $Path -PathType Leaf) {
|
|
119
|
-
Write-Output " ✓ $Description"
|
|
120
|
-
return $true
|
|
121
|
-
} else {
|
|
122
|
-
Write-Output " ✗ $Description"
|
|
123
|
-
return $false
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function Test-DirHasFiles {
|
|
128
|
-
param([string]$Path, [string]$Description)
|
|
129
|
-
if ((Test-Path -Path $Path -PathType Container) -and (Get-ChildItem -Path $Path -ErrorAction SilentlyContinue | Where-Object { -not $_.PSIsContainer } | Select-Object -First 1)) {
|
|
130
|
-
Write-Output " ✓ $Description"
|
|
131
|
-
return $true
|
|
132
|
-
} else {
|
|
133
|
-
Write-Output " ✗ $Description"
|
|
134
|
-
return $false
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env pwsh
|
|
2
|
-
# Create a new feature
|
|
3
|
-
[CmdletBinding()]
|
|
4
|
-
param(
|
|
5
|
-
[switch]$Json,
|
|
6
|
-
[string]$ShortName,
|
|
7
|
-
[int]$Number = 0,
|
|
8
|
-
[switch]$Help,
|
|
9
|
-
[Parameter(ValueFromRemainingArguments = $true)]
|
|
10
|
-
[string[]]$FeatureDescription
|
|
11
|
-
)
|
|
12
|
-
$ErrorActionPreference = 'Stop'
|
|
13
|
-
|
|
14
|
-
# Show help if requested
|
|
15
|
-
if ($Help) {
|
|
16
|
-
Write-Host "Usage: ./create-new-feature.ps1 [-Json] [-ShortName <name>] [-Number N] <feature description>"
|
|
17
|
-
Write-Host ""
|
|
18
|
-
Write-Host "Options:"
|
|
19
|
-
Write-Host " -Json Output in JSON format"
|
|
20
|
-
Write-Host " -ShortName <name> Provide a custom short name (2-4 words) for the branch"
|
|
21
|
-
Write-Host " -Number N Specify branch number manually (overrides auto-detection)"
|
|
22
|
-
Write-Host " -Help Show this help message"
|
|
23
|
-
Write-Host ""
|
|
24
|
-
Write-Host "Examples:"
|
|
25
|
-
Write-Host " ./create-new-feature.ps1 'Add user authentication system' -ShortName 'user-auth'"
|
|
26
|
-
Write-Host " ./create-new-feature.ps1 'Implement OAuth2 integration for API'"
|
|
27
|
-
exit 0
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
# Check if feature description provided
|
|
31
|
-
if (-not $FeatureDescription -or $FeatureDescription.Count -eq 0) {
|
|
32
|
-
Write-Error "Usage: ./create-new-feature.ps1 [-Json] [-ShortName <name>] <feature description>"
|
|
33
|
-
exit 1
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
$featureDesc = ($FeatureDescription -join ' ').Trim()
|
|
37
|
-
|
|
38
|
-
# Resolve repository root. Prefer git information when available, but fall back
|
|
39
|
-
# to searching for repository markers so the workflow still functions in repositories that
|
|
40
|
-
# were initialized with --no-git.
|
|
41
|
-
function Find-RepositoryRoot {
|
|
42
|
-
param(
|
|
43
|
-
[string]$StartDir,
|
|
44
|
-
[string[]]$Markers = @('.git', '.specify')
|
|
45
|
-
)
|
|
46
|
-
$current = Resolve-Path $StartDir
|
|
47
|
-
while ($true) {
|
|
48
|
-
foreach ($marker in $Markers) {
|
|
49
|
-
if (Test-Path (Join-Path $current $marker)) {
|
|
50
|
-
return $current
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
$parent = Split-Path $current -Parent
|
|
54
|
-
if ($parent -eq $current) {
|
|
55
|
-
# Reached filesystem root without finding markers
|
|
56
|
-
return $null
|
|
57
|
-
}
|
|
58
|
-
$current = $parent
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function Get-HighestNumberFromSpecs {
|
|
63
|
-
param([string]$SpecsDir)
|
|
64
|
-
|
|
65
|
-
$highest = 0
|
|
66
|
-
if (Test-Path $SpecsDir) {
|
|
67
|
-
Get-ChildItem -Path $SpecsDir -Directory | ForEach-Object {
|
|
68
|
-
if ($_.Name -match '^(\d+)') {
|
|
69
|
-
$num = [int]$matches[1]
|
|
70
|
-
if ($num -gt $highest) { $highest = $num }
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return $highest
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function Get-HighestNumberFromBranches {
|
|
78
|
-
param()
|
|
79
|
-
|
|
80
|
-
$highest = 0
|
|
81
|
-
try {
|
|
82
|
-
$branches = git branch -a 2>$null
|
|
83
|
-
if ($LASTEXITCODE -eq 0) {
|
|
84
|
-
foreach ($branch in $branches) {
|
|
85
|
-
# Clean branch name: remove leading markers and remote prefixes
|
|
86
|
-
$cleanBranch = $branch.Trim() -replace '^\*?\s+', '' -replace '^remotes/[^/]+/', ''
|
|
87
|
-
|
|
88
|
-
# Extract feature number if branch matches pattern ###-*
|
|
89
|
-
if ($cleanBranch -match '^(\d+)-') {
|
|
90
|
-
$num = [int]$matches[1]
|
|
91
|
-
if ($num -gt $highest) { $highest = $num }
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
} catch {
|
|
96
|
-
# If git command fails, return 0
|
|
97
|
-
Write-Verbose "Could not check Git branches: $_"
|
|
98
|
-
}
|
|
99
|
-
return $highest
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function Get-NextBranchNumber {
|
|
103
|
-
param(
|
|
104
|
-
[string]$SpecsDir
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
# Fetch all remotes to get latest branch info (suppress errors if no remotes)
|
|
108
|
-
try {
|
|
109
|
-
git fetch --all --prune 2>$null | Out-Null
|
|
110
|
-
} catch {
|
|
111
|
-
# Ignore fetch errors
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
# Get highest number from ALL branches (not just matching short name)
|
|
115
|
-
$highestBranch = Get-HighestNumberFromBranches
|
|
116
|
-
|
|
117
|
-
# Get highest number from ALL specs (not just matching short name)
|
|
118
|
-
$highestSpec = Get-HighestNumberFromSpecs -SpecsDir $SpecsDir
|
|
119
|
-
|
|
120
|
-
# Take the maximum of both
|
|
121
|
-
$maxNum = [Math]::Max($highestBranch, $highestSpec)
|
|
122
|
-
|
|
123
|
-
# Return next number
|
|
124
|
-
return $maxNum + 1
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function ConvertTo-CleanBranchName {
|
|
128
|
-
param([string]$Name)
|
|
129
|
-
|
|
130
|
-
return $Name.ToLower() -replace '[^a-z0-9]', '-' -replace '-{2,}', '-' -replace '^-', '' -replace '-$', ''
|
|
131
|
-
}
|
|
132
|
-
$fallbackRoot = (Find-RepositoryRoot -StartDir $PSScriptRoot)
|
|
133
|
-
if (-not $fallbackRoot) {
|
|
134
|
-
Write-Error "Error: Could not determine repository root. Please run this script from within the repository."
|
|
135
|
-
exit 1
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
try {
|
|
139
|
-
$repoRoot = git rev-parse --show-toplevel 2>$null
|
|
140
|
-
if ($LASTEXITCODE -eq 0) {
|
|
141
|
-
$hasGit = $true
|
|
142
|
-
} else {
|
|
143
|
-
throw "Git not available"
|
|
144
|
-
}
|
|
145
|
-
} catch {
|
|
146
|
-
$repoRoot = $fallbackRoot
|
|
147
|
-
$hasGit = $false
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
Set-Location $repoRoot
|
|
151
|
-
|
|
152
|
-
$specsDir = Join-Path $repoRoot 'specs'
|
|
153
|
-
New-Item -ItemType Directory -Path $specsDir -Force | Out-Null
|
|
154
|
-
|
|
155
|
-
# Function to generate branch name with stop word filtering and length filtering
|
|
156
|
-
function Get-BranchName {
|
|
157
|
-
param([string]$Description)
|
|
158
|
-
|
|
159
|
-
# Common stop words to filter out
|
|
160
|
-
$stopWords = @(
|
|
161
|
-
'i', 'a', 'an', 'the', 'to', 'for', 'of', 'in', 'on', 'at', 'by', 'with', 'from',
|
|
162
|
-
'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had',
|
|
163
|
-
'do', 'does', 'did', 'will', 'would', 'should', 'could', 'can', 'may', 'might', 'must', 'shall',
|
|
164
|
-
'this', 'that', 'these', 'those', 'my', 'your', 'our', 'their',
|
|
165
|
-
'want', 'need', 'add', 'get', 'set'
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
# Convert to lowercase and extract words (alphanumeric only)
|
|
169
|
-
$cleanName = $Description.ToLower() -replace '[^a-z0-9\s]', ' '
|
|
170
|
-
$words = $cleanName -split '\s+' | Where-Object { $_ }
|
|
171
|
-
|
|
172
|
-
# Filter words: remove stop words and words shorter than 3 chars (unless they're uppercase acronyms in original)
|
|
173
|
-
$meaningfulWords = @()
|
|
174
|
-
foreach ($word in $words) {
|
|
175
|
-
# Skip stop words
|
|
176
|
-
if ($stopWords -contains $word) { continue }
|
|
177
|
-
|
|
178
|
-
# Keep words that are length >= 3 OR appear as uppercase in original (likely acronyms)
|
|
179
|
-
if ($word.Length -ge 3) {
|
|
180
|
-
$meaningfulWords += $word
|
|
181
|
-
} elseif ($Description -match "\b$($word.ToUpper())\b") {
|
|
182
|
-
# Keep short words if they appear as uppercase in original (likely acronyms)
|
|
183
|
-
$meaningfulWords += $word
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
# If we have meaningful words, use first 3-4 of them
|
|
188
|
-
if ($meaningfulWords.Count -gt 0) {
|
|
189
|
-
$maxWords = if ($meaningfulWords.Count -eq 4) { 4 } else { 3 }
|
|
190
|
-
$result = ($meaningfulWords | Select-Object -First $maxWords) -join '-'
|
|
191
|
-
return $result
|
|
192
|
-
} else {
|
|
193
|
-
# Fallback to original logic if no meaningful words found
|
|
194
|
-
$result = ConvertTo-CleanBranchName -Name $Description
|
|
195
|
-
$fallbackWords = ($result -split '-') | Where-Object { $_ } | Select-Object -First 3
|
|
196
|
-
return [string]::Join('-', $fallbackWords)
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
# Generate branch name
|
|
201
|
-
if ($ShortName) {
|
|
202
|
-
# Use provided short name, just clean it up
|
|
203
|
-
$branchSuffix = ConvertTo-CleanBranchName -Name $ShortName
|
|
204
|
-
} else {
|
|
205
|
-
# Generate from description with smart filtering
|
|
206
|
-
$branchSuffix = Get-BranchName -Description $featureDesc
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
# Determine branch number
|
|
210
|
-
if ($Number -eq 0) {
|
|
211
|
-
if ($hasGit) {
|
|
212
|
-
# Check existing branches on remotes
|
|
213
|
-
$Number = Get-NextBranchNumber -SpecsDir $specsDir
|
|
214
|
-
} else {
|
|
215
|
-
# Fall back to local directory check
|
|
216
|
-
$Number = (Get-HighestNumberFromSpecs -SpecsDir $specsDir) + 1
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
$featureNum = ('{0:000}' -f $Number)
|
|
221
|
-
$branchName = "$featureNum-$branchSuffix"
|
|
222
|
-
|
|
223
|
-
# GitHub enforces a 244-byte limit on branch names
|
|
224
|
-
# Validate and truncate if necessary
|
|
225
|
-
$maxBranchLength = 244
|
|
226
|
-
if ($branchName.Length -gt $maxBranchLength) {
|
|
227
|
-
# Calculate how much we need to trim from suffix
|
|
228
|
-
# Account for: feature number (3) + hyphen (1) = 4 chars
|
|
229
|
-
$maxSuffixLength = $maxBranchLength - 4
|
|
230
|
-
|
|
231
|
-
# Truncate suffix
|
|
232
|
-
$truncatedSuffix = $branchSuffix.Substring(0, [Math]::Min($branchSuffix.Length, $maxSuffixLength))
|
|
233
|
-
# Remove trailing hyphen if truncation created one
|
|
234
|
-
$truncatedSuffix = $truncatedSuffix -replace '-$', ''
|
|
235
|
-
|
|
236
|
-
$originalBranchName = $branchName
|
|
237
|
-
$branchName = "$featureNum-$truncatedSuffix"
|
|
238
|
-
|
|
239
|
-
Write-Warning "[specify] Branch name exceeded GitHub's 244-byte limit"
|
|
240
|
-
Write-Warning "[specify] Original: $originalBranchName ($($originalBranchName.Length) bytes)"
|
|
241
|
-
Write-Warning "[specify] Truncated to: $branchName ($($branchName.Length) bytes)"
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
if ($hasGit) {
|
|
245
|
-
try {
|
|
246
|
-
git checkout -b $branchName | Out-Null
|
|
247
|
-
} catch {
|
|
248
|
-
Write-Warning "Failed to create git branch: $branchName"
|
|
249
|
-
}
|
|
250
|
-
} else {
|
|
251
|
-
Write-Warning "[specify] Warning: Git repository not detected; skipped branch creation for $branchName"
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
$featureDir = Join-Path $specsDir $branchName
|
|
255
|
-
New-Item -ItemType Directory -Path $featureDir -Force | Out-Null
|
|
256
|
-
|
|
257
|
-
$template = Join-Path $repoRoot '.specify/templates/spec-template.md'
|
|
258
|
-
$specFile = Join-Path $featureDir 'spec.md'
|
|
259
|
-
if (Test-Path $template) {
|
|
260
|
-
Copy-Item $template $specFile -Force
|
|
261
|
-
} else {
|
|
262
|
-
New-Item -ItemType File -Path $specFile | Out-Null
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
# Set the SPECIFY_FEATURE environment variable for the current session
|
|
266
|
-
$env:SPECIFY_FEATURE = $branchName
|
|
267
|
-
|
|
268
|
-
if ($Json) {
|
|
269
|
-
$obj = [PSCustomObject]@{
|
|
270
|
-
BRANCH_NAME = $branchName
|
|
271
|
-
SPEC_FILE = $specFile
|
|
272
|
-
FEATURE_NUM = $featureNum
|
|
273
|
-
HAS_GIT = $hasGit
|
|
274
|
-
}
|
|
275
|
-
$obj | ConvertTo-Json -Compress
|
|
276
|
-
} else {
|
|
277
|
-
Write-Output "BRANCH_NAME: $branchName"
|
|
278
|
-
Write-Output "SPEC_FILE: $specFile"
|
|
279
|
-
Write-Output "FEATURE_NUM: $featureNum"
|
|
280
|
-
Write-Output "HAS_GIT: $hasGit"
|
|
281
|
-
Write-Output "SPECIFY_FEATURE environment variable set to: $branchName"
|
|
282
|
-
}
|
|
283
|
-
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env pwsh
|
|
2
|
-
# Setup implementation plan for a feature
|
|
3
|
-
|
|
4
|
-
[CmdletBinding()]
|
|
5
|
-
param(
|
|
6
|
-
[switch]$Json,
|
|
7
|
-
[switch]$Help
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
$ErrorActionPreference = 'Stop'
|
|
11
|
-
|
|
12
|
-
# Show help if requested
|
|
13
|
-
if ($Help) {
|
|
14
|
-
Write-Output "Usage: ./setup-plan.ps1 [-Json] [-Help]"
|
|
15
|
-
Write-Output " -Json Output results in JSON format"
|
|
16
|
-
Write-Output " -Help Show this help message"
|
|
17
|
-
exit 0
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
# Load common functions
|
|
21
|
-
. "$PSScriptRoot/common.ps1"
|
|
22
|
-
|
|
23
|
-
# Get all paths and variables from common functions
|
|
24
|
-
$paths = Get-FeaturePathsEnv
|
|
25
|
-
|
|
26
|
-
# Check if we're on a proper feature branch (only for git repos)
|
|
27
|
-
if (-not (Test-FeatureBranch -Branch $paths.CURRENT_BRANCH -HasGit $paths.HAS_GIT)) {
|
|
28
|
-
exit 1
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
# Ensure the feature directory exists
|
|
32
|
-
New-Item -ItemType Directory -Path $paths.FEATURE_DIR -Force | Out-Null
|
|
33
|
-
|
|
34
|
-
# Copy plan template if it exists, otherwise note it or create empty file
|
|
35
|
-
$template = Join-Path $paths.REPO_ROOT '.specify/templates/plan-template.md'
|
|
36
|
-
if (Test-Path $template) {
|
|
37
|
-
Copy-Item $template $paths.IMPL_PLAN -Force
|
|
38
|
-
Write-Output "Copied plan template to $($paths.IMPL_PLAN)"
|
|
39
|
-
} else {
|
|
40
|
-
Write-Warning "Plan template not found at $template"
|
|
41
|
-
# Create a basic plan file if template doesn't exist
|
|
42
|
-
New-Item -ItemType File -Path $paths.IMPL_PLAN -Force | Out-Null
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
# Output results
|
|
46
|
-
if ($Json) {
|
|
47
|
-
$result = [PSCustomObject]@{
|
|
48
|
-
FEATURE_SPEC = $paths.FEATURE_SPEC
|
|
49
|
-
IMPL_PLAN = $paths.IMPL_PLAN
|
|
50
|
-
SPECS_DIR = $paths.FEATURE_DIR
|
|
51
|
-
BRANCH = $paths.CURRENT_BRANCH
|
|
52
|
-
HAS_GIT = $paths.HAS_GIT
|
|
53
|
-
}
|
|
54
|
-
$result | ConvertTo-Json -Compress
|
|
55
|
-
} else {
|
|
56
|
-
Write-Output "FEATURE_SPEC: $($paths.FEATURE_SPEC)"
|
|
57
|
-
Write-Output "IMPL_PLAN: $($paths.IMPL_PLAN)"
|
|
58
|
-
Write-Output "SPECS_DIR: $($paths.FEATURE_DIR)"
|
|
59
|
-
Write-Output "BRANCH: $($paths.CURRENT_BRANCH)"
|
|
60
|
-
Write-Output "HAS_GIT: $($paths.HAS_GIT)"
|
|
61
|
-
}
|