cokit-cli 1.2.6 → 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 +9 -42
- 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 +9 -15
- package/docs/cokit-slides.md +4 -9
- package/docs/cokit-sync-and-maintenance-guide.md +42 -190
- package/docs/cokit-team-presentation.md +6 -11
- package/docs/copilot-processing-flow.md +3 -3
- package/docs/migration-guide.md +15 -15
- package/docs/project-overview-pdr.md +6 -7
- package/docs/project-roadmap.md +13 -15
- 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 +14 -20
- 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/src/commands/add.js +0 -1
- package/src/commands/doctor.js +2 -2
- package/src/commands/init.js +19 -28
- package/src/commands/update.js +1 -1
- 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
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
# TypeScript Standards
|
|
2
|
+
|
|
3
|
+
TypeScript best practices for type safety and maintainability in React frontend code.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Strict Mode
|
|
8
|
+
|
|
9
|
+
### Configuration
|
|
10
|
+
|
|
11
|
+
TypeScript strict mode is **enabled** in the project:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
// tsconfig.json
|
|
15
|
+
{
|
|
16
|
+
"compilerOptions": {
|
|
17
|
+
"strict": true,
|
|
18
|
+
"noImplicitAny": true,
|
|
19
|
+
"strictNullChecks": true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**This means:**
|
|
25
|
+
- No implicit `any` types
|
|
26
|
+
- Null/undefined must be handled explicitly
|
|
27
|
+
- Type safety enforced
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## No `any` Type
|
|
32
|
+
|
|
33
|
+
### The Rule
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// ❌ NEVER use any
|
|
37
|
+
function handleData(data: any) {
|
|
38
|
+
return data.something;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ✅ Use specific types
|
|
42
|
+
interface MyData {
|
|
43
|
+
something: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function handleData(data: MyData) {
|
|
47
|
+
return data.something;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// ✅ Or use unknown for truly unknown data
|
|
51
|
+
function handleUnknown(data: unknown) {
|
|
52
|
+
if (typeof data === 'object' && data !== null && 'something' in data) {
|
|
53
|
+
return (data as MyData).something;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**If you truly don't know the type:**
|
|
59
|
+
- Use `unknown` (forces type checking)
|
|
60
|
+
- Use type guards to narrow
|
|
61
|
+
- Document why type is unknown
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Explicit Return Types
|
|
66
|
+
|
|
67
|
+
### Function Return Types
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
// ✅ CORRECT - Explicit return type
|
|
71
|
+
function getUser(id: number): Promise<User> {
|
|
72
|
+
return apiClient.get(`/users/${id}`);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function calculateTotal(items: Item[]): number {
|
|
76
|
+
return items.reduce((sum, item) => sum + item.price, 0);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// ❌ AVOID - Implicit return type (less clear)
|
|
80
|
+
function getUser(id: number) {
|
|
81
|
+
return apiClient.get(`/users/${id}`);
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Component Return Types
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
// React.FC already provides return type (ReactElement)
|
|
89
|
+
export const MyComponent: React.FC<Props> = ({ prop }) => {
|
|
90
|
+
return <div>{prop}</div>;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// For custom hooks
|
|
94
|
+
function useMyData(id: number): { data: Data; isLoading: boolean } {
|
|
95
|
+
const [data, setData] = useState<Data | null>(null);
|
|
96
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
97
|
+
|
|
98
|
+
return { data: data!, isLoading };
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Type Imports
|
|
105
|
+
|
|
106
|
+
### Use 'type' Keyword
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// ✅ CORRECT - Explicitly mark as type import
|
|
110
|
+
import type { User } from '~types/user';
|
|
111
|
+
import type { Post } from '~types/post';
|
|
112
|
+
import type { SxProps, Theme } from '@mui/material';
|
|
113
|
+
|
|
114
|
+
// ❌ AVOID - Mixed value and type imports
|
|
115
|
+
import { User } from '~types/user'; // Unclear if type or value
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Benefits:**
|
|
119
|
+
- Clearly separates types from values
|
|
120
|
+
- Better tree-shaking
|
|
121
|
+
- Prevents circular dependencies
|
|
122
|
+
- TypeScript compiler optimization
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Component Prop Interfaces
|
|
127
|
+
|
|
128
|
+
### Interface Pattern
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
/**
|
|
132
|
+
* Props for MyComponent
|
|
133
|
+
*/
|
|
134
|
+
interface MyComponentProps {
|
|
135
|
+
/** The user ID to display */
|
|
136
|
+
userId: number;
|
|
137
|
+
|
|
138
|
+
/** Optional callback when action completes */
|
|
139
|
+
onComplete?: () => void;
|
|
140
|
+
|
|
141
|
+
/** Display mode for the component */
|
|
142
|
+
mode?: 'view' | 'edit';
|
|
143
|
+
|
|
144
|
+
/** Additional CSS classes */
|
|
145
|
+
className?: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export const MyComponent: React.FC<MyComponentProps> = ({
|
|
149
|
+
userId,
|
|
150
|
+
onComplete,
|
|
151
|
+
mode = 'view', // Default value
|
|
152
|
+
className,
|
|
153
|
+
}) => {
|
|
154
|
+
return <div>...</div>;
|
|
155
|
+
};
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Key Points:**
|
|
159
|
+
- Separate interface for props
|
|
160
|
+
- JSDoc comments for each prop
|
|
161
|
+
- Optional props use `?`
|
|
162
|
+
- Provide defaults in destructuring
|
|
163
|
+
|
|
164
|
+
### Props with Children
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
interface ContainerProps {
|
|
168
|
+
children: React.ReactNode;
|
|
169
|
+
title: string;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// React.FC automatically includes children type, but be explicit
|
|
173
|
+
export const Container: React.FC<ContainerProps> = ({ children, title }) => {
|
|
174
|
+
return (
|
|
175
|
+
<div>
|
|
176
|
+
<h2>{title}</h2>
|
|
177
|
+
{children}
|
|
178
|
+
</div>
|
|
179
|
+
);
|
|
180
|
+
};
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Utility Types
|
|
186
|
+
|
|
187
|
+
### Partial<T>
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
// Make all properties optional
|
|
191
|
+
type UserUpdate = Partial<User>;
|
|
192
|
+
|
|
193
|
+
function updateUser(id: number, updates: Partial<User>) {
|
|
194
|
+
// updates can have any subset of User properties
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Pick<T, K>
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
// Select specific properties
|
|
202
|
+
type UserPreview = Pick<User, 'id' | 'name' | 'email'>;
|
|
203
|
+
|
|
204
|
+
const preview: UserPreview = {
|
|
205
|
+
id: 1,
|
|
206
|
+
name: 'John',
|
|
207
|
+
email: 'john@example.com',
|
|
208
|
+
// Other User properties not allowed
|
|
209
|
+
};
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Omit<T, K>
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
// Exclude specific properties
|
|
216
|
+
type UserWithoutPassword = Omit<User, 'password' | 'passwordHash'>;
|
|
217
|
+
|
|
218
|
+
const publicUser: UserWithoutPassword = {
|
|
219
|
+
id: 1,
|
|
220
|
+
name: 'John',
|
|
221
|
+
email: 'john@example.com',
|
|
222
|
+
// password and passwordHash not allowed
|
|
223
|
+
};
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Required<T>
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
// Make all properties required
|
|
230
|
+
type RequiredConfig = Required<Config>; // All optional props become required
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Record<K, V>
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
// Type-safe object/map
|
|
237
|
+
const userMap: Record<string, User> = {
|
|
238
|
+
'user1': { id: 1, name: 'John' },
|
|
239
|
+
'user2': { id: 2, name: 'Jane' },
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
// For styles
|
|
243
|
+
import type { SxProps, Theme } from '@mui/material';
|
|
244
|
+
|
|
245
|
+
const styles: Record<string, SxProps<Theme>> = {
|
|
246
|
+
container: { p: 2 },
|
|
247
|
+
header: { mb: 1 },
|
|
248
|
+
};
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Type Guards
|
|
254
|
+
|
|
255
|
+
### Basic Type Guards
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
function isUser(data: unknown): data is User {
|
|
259
|
+
return (
|
|
260
|
+
typeof data === 'object' &&
|
|
261
|
+
data !== null &&
|
|
262
|
+
'id' in data &&
|
|
263
|
+
'name' in data
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Usage
|
|
268
|
+
if (isUser(response)) {
|
|
269
|
+
console.log(response.name); // TypeScript knows it's User
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Discriminated Unions
|
|
274
|
+
|
|
275
|
+
```typescript
|
|
276
|
+
type LoadingState =
|
|
277
|
+
| { status: 'idle' }
|
|
278
|
+
| { status: 'loading' }
|
|
279
|
+
| { status: 'success'; data: Data }
|
|
280
|
+
| { status: 'error'; error: Error };
|
|
281
|
+
|
|
282
|
+
function Component({ state }: { state: LoadingState }) {
|
|
283
|
+
// TypeScript narrows type based on status
|
|
284
|
+
if (state.status === 'success') {
|
|
285
|
+
return <Display data={state.data} />; // data available here
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
if (state.status === 'error') {
|
|
289
|
+
return <Error error={state.error} />; // error available here
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
return <Loading />;
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Generic Types
|
|
299
|
+
|
|
300
|
+
### Generic Functions
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
function getById<T>(items: T[], id: number): T | undefined {
|
|
304
|
+
return items.find(item => (item as any).id === id);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Usage with type inference
|
|
308
|
+
const users: User[] = [...];
|
|
309
|
+
const user = getById(users, 123); // Type: User | undefined
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Generic Components
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
interface ListProps<T> {
|
|
316
|
+
items: T[];
|
|
317
|
+
renderItem: (item: T) => React.ReactNode;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export function List<T>({ items, renderItem }: ListProps<T>): React.ReactElement {
|
|
321
|
+
return (
|
|
322
|
+
<div>
|
|
323
|
+
{items.map((item, index) => (
|
|
324
|
+
<div key={index}>{renderItem(item)}</div>
|
|
325
|
+
))}
|
|
326
|
+
</div>
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// Usage
|
|
331
|
+
<List<User>
|
|
332
|
+
items={users}
|
|
333
|
+
renderItem={(user) => <UserCard user={user} />}
|
|
334
|
+
/>
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Type Assertions (Use Sparingly)
|
|
340
|
+
|
|
341
|
+
### When to Use
|
|
342
|
+
|
|
343
|
+
```typescript
|
|
344
|
+
// ✅ OK - When you know more than TypeScript
|
|
345
|
+
const element = document.getElementById('my-element') as HTMLInputElement;
|
|
346
|
+
const value = element.value;
|
|
347
|
+
|
|
348
|
+
// ✅ OK - API response that you've validated
|
|
349
|
+
const response = await api.getData();
|
|
350
|
+
const user = response.data as User; // You know the shape
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### When NOT to Use
|
|
354
|
+
|
|
355
|
+
```typescript
|
|
356
|
+
// ❌ AVOID - Circumventing type safety
|
|
357
|
+
const data = getData() as any; // WRONG - defeats TypeScript
|
|
358
|
+
|
|
359
|
+
// ❌ AVOID - Unsafe assertion
|
|
360
|
+
const value = unknownValue as string; // Might not actually be string
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## Null/Undefined Handling
|
|
366
|
+
|
|
367
|
+
### Optional Chaining
|
|
368
|
+
|
|
369
|
+
```typescript
|
|
370
|
+
// ✅ CORRECT
|
|
371
|
+
const name = user?.profile?.name;
|
|
372
|
+
|
|
373
|
+
// Equivalent to:
|
|
374
|
+
const name = user && user.profile && user.profile.name;
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### Nullish Coalescing
|
|
378
|
+
|
|
379
|
+
```typescript
|
|
380
|
+
// ✅ CORRECT
|
|
381
|
+
const displayName = user?.name ?? 'Anonymous';
|
|
382
|
+
|
|
383
|
+
// Only uses default if null or undefined
|
|
384
|
+
// (Different from || which triggers on '', 0, false)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### Non-Null Assertion (Use Carefully)
|
|
388
|
+
|
|
389
|
+
```typescript
|
|
390
|
+
// ✅ OK - When you're certain value exists
|
|
391
|
+
const data = queryClient.getQueryData<Data>(['data'])!;
|
|
392
|
+
|
|
393
|
+
// ⚠️ CAREFUL - Only use when you KNOW it's not null
|
|
394
|
+
// Better to check explicitly:
|
|
395
|
+
const data = queryClient.getQueryData<Data>(['data']);
|
|
396
|
+
if (data) {
|
|
397
|
+
// Use data
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Summary
|
|
404
|
+
|
|
405
|
+
**TypeScript Checklist:**
|
|
406
|
+
- ✅ Strict mode enabled
|
|
407
|
+
- ✅ No `any` type (use `unknown` if needed)
|
|
408
|
+
- ✅ Explicit return types on functions
|
|
409
|
+
- ✅ Use `import type` for type imports
|
|
410
|
+
- ✅ JSDoc comments on prop interfaces
|
|
411
|
+
- ✅ Utility types (Partial, Pick, Omit, Required, Record)
|
|
412
|
+
- ✅ Type guards for narrowing
|
|
413
|
+
- ✅ Optional chaining and nullish coalescing
|
|
414
|
+
- ❌ Avoid type assertions unless necessary
|
|
415
|
+
|
|
416
|
+
**See Also:**
|
|
417
|
+
- [component-patterns.md](component-patterns.md) - Component typing
|
|
418
|
+
- [data-fetching.md](data-fetching.md) - API typing
|
package/skills/git/SKILL.md
CHANGED
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git
|
|
3
|
-
description: Git operations with conventional commits. Use for staging, committing, pushing, PRs, merges. Auto-splits commits by type/scope. Security scans for secrets.
|
|
3
|
+
description: "Git operations with conventional commits. Use for staging, committing, pushing, PRs, merges. Auto-splits commits by type/scope. Security scans for secrets."
|
|
4
|
+
argument-hint: "cm|cp|pr|merge [args]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Git Operations
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
## Default (No Arguments)
|
|
10
|
+
|
|
11
|
+
If invoked without arguments, ask the user to present available git operations:
|
|
12
|
+
|
|
13
|
+
| Operation | Description |
|
|
14
|
+
|-----------|-------------|
|
|
15
|
+
| `cm` | Stage files & create commits |
|
|
16
|
+
| `cp` | Stage files, create commits and push |
|
|
17
|
+
| `pr` | Create Pull Request |
|
|
18
|
+
| `merge` | Merge branches |
|
|
19
|
+
|
|
20
|
+
Present as options by asking the user with header "Git Operation", question "What would you like to do?".
|
|
21
|
+
|
|
22
|
+
Execute git workflows via `git-manager` subagent to isolate verbose output.
|
|
9
23
|
Activate `context-engineering` skill.
|
|
10
24
|
|
|
11
25
|
**IMPORTANT:**
|
|
12
26
|
- Sacrifice grammar for the sake of concision.
|
|
13
27
|
- Ensure token efficiency while maintaining high quality.
|
|
14
|
-
- Pass these rules to
|
|
28
|
+
- Pass these rules to subagents.
|
|
15
29
|
|
|
16
30
|
## Arguments
|
|
17
31
|
- `cm`: Stage files & create commits
|
|
@@ -54,7 +68,7 @@ git diff --cached | grep -iE "(api[_-]?key|token|password|secret|credential)"
|
|
|
54
68
|
|
|
55
69
|
**NOTE:**
|
|
56
70
|
- Search for related issues on GitHub and add to body.
|
|
57
|
-
- Only use `feat`, `fix`, or `perf` prefixes for files in
|
|
71
|
+
- Only use `feat`, `fix`, or `perf` prefixes for files in skills directory (do not use `docs`).
|
|
58
72
|
|
|
59
73
|
**Split commits if:**
|
|
60
74
|
- Different types mixed (feat + fix, code + docs)
|
|
@@ -23,7 +23,7 @@ type(scope): description
|
|
|
23
23
|
- **No period at end**
|
|
24
24
|
- **Scope optional but recommended**
|
|
25
25
|
- **Focus on WHAT, not HOW**
|
|
26
|
-
- Only use `feat`, `fix`, or `perf` prefixes for files in
|
|
26
|
+
- Only use `feat`, `fix`, or `perf` prefixes for files in skills directory (do not use `docs`).
|
|
27
27
|
|
|
28
28
|
## NEVER Include AI Attribution
|
|
29
29
|
- ❌ "Generated with AI"
|
|
@@ -42,5 +42,5 @@ type(scope): description
|
|
|
42
42
|
- ❌ `Fix bug` (not specific)
|
|
43
43
|
|
|
44
44
|
## Special Cases
|
|
45
|
-
-
|
|
46
|
-
-
|
|
45
|
+
- skill updates: `perf(skill): improve token efficiency`
|
|
46
|
+
- new skills: `feat(skill): add database-optimizer`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Commit Workflow
|
|
2
2
|
|
|
3
|
-
Execute via `git-manager`
|
|
3
|
+
Execute via `git-manager` subagent.
|
|
4
4
|
|
|
5
5
|
## Tool 1: Stage + Analyze
|
|
6
6
|
```bash
|
|
@@ -12,7 +12,7 @@ echo "=== GROUPS ===" && \
|
|
|
12
12
|
git diff --cached --name-only | awk -F'/' '{
|
|
13
13
|
if ($0 ~ /\.(md|txt)$/) print "docs:"$0
|
|
14
14
|
else if ($0 ~ /test|spec/) print "test:"$0
|
|
15
|
-
else if ($0 ~
|
|
15
|
+
else if ($0 ~ /skills|agents/) print "config:"$0
|
|
16
16
|
else if ($0 ~ /package\.json|lock/) print "deps:"$0
|
|
17
17
|
else print "code:"$0
|
|
18
18
|
}'
|
|
@@ -24,7 +24,7 @@ git diff --cached --name-only | awk -F'/' '{
|
|
|
24
24
|
|
|
25
25
|
NOTE:
|
|
26
26
|
- Search for related issues on GitHub and add to body.
|
|
27
|
-
- Only use `feat`, `fix`, or `perf` prefixes for files in
|
|
27
|
+
- Only use `feat`, `fix`, or `perf` prefixes for files in skills directory (do not use `docs`).
|
|
28
28
|
|
|
29
29
|
**From groups, decide:**
|
|
30
30
|
|
|
@@ -4,7 +4,7 @@ Intelligent management and execution of Model Context Protocol (MCP) servers.
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
This skill enables
|
|
7
|
+
This skill enables Copilot to discover, analyze, and execute MCP server capabilities without polluting the main context window. Perfect for context-efficient MCP integration using subagent-based architecture.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -12,20 +12,20 @@ This skill enables the agent to discover, analyze, and execute MCP server capabi
|
|
|
12
12
|
- **Intelligent Tool Discovery**: Analyze which tools are relevant for specific tasks
|
|
13
13
|
- **Progressive Disclosure**: Load only necessary tool definitions
|
|
14
14
|
- **Execution Engine**: Call MCP tools with proper parameter handling
|
|
15
|
-
- **Context Efficiency**: Delegate MCP operations to `mcp-manager`
|
|
15
|
+
- **Context Efficiency**: Delegate MCP operations to `mcp-manager` subagent
|
|
16
16
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
19
|
### 1. Install Dependencies
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
cd
|
|
22
|
+
cd skills/mcp-management/scripts
|
|
23
23
|
npm install
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
### 2. Configure MCP Servers
|
|
27
27
|
|
|
28
|
-
Create
|
|
28
|
+
Create `.vscode/mcp.json`:
|
|
29
29
|
|
|
30
30
|
```json
|
|
31
31
|
{
|
|
@@ -42,12 +42,12 @@ Create `$HOME/.copilot/.mcp.json`:
|
|
|
42
42
|
}
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
See
|
|
45
|
+
See `.vscode/mcp.json.example` for more examples.
|
|
46
46
|
|
|
47
47
|
### 3. Test Connection
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
cd
|
|
50
|
+
cd skills/mcp-management/scripts
|
|
51
51
|
npx ts-node cli.ts list-tools
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -71,13 +71,13 @@ The LLM reads `assets/tools.json` and intelligently selects tools. No separate a
|
|
|
71
71
|
npx ts-node scripts/cli.ts call-tool memory add '{"key":"name","value":"Alice"}'
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
### Pattern 4: Use with
|
|
74
|
+
### Pattern 4: Use with Subagent
|
|
75
75
|
|
|
76
|
-
In main conversation:
|
|
76
|
+
In main Copilot conversation:
|
|
77
77
|
|
|
78
78
|
```
|
|
79
79
|
User: "I need to search the web and save results"
|
|
80
|
-
Main Agent: [Spawns mcp-manager
|
|
80
|
+
Main Agent: [Spawns mcp-manager subagent]
|
|
81
81
|
mcp-manager: Discovers brave-search + memory tools, reports back
|
|
82
82
|
Main Agent: Uses recommended tools for implementation
|
|
83
83
|
```
|
|
@@ -85,9 +85,9 @@ Main Agent: Uses recommended tools for implementation
|
|
|
85
85
|
## Architecture
|
|
86
86
|
|
|
87
87
|
```
|
|
88
|
-
Main Agent
|
|
88
|
+
Main Agent (Copilot)
|
|
89
89
|
↓ (delegates MCP tasks)
|
|
90
|
-
mcp-manager
|
|
90
|
+
mcp-manager Subagent
|
|
91
91
|
↓ (uses skill)
|
|
92
92
|
mcp-management Skill
|
|
93
93
|
↓ (connects via)
|
|
@@ -96,7 +96,7 @@ MCP Servers (memory, filesystem, etc.)
|
|
|
96
96
|
|
|
97
97
|
**Benefits**:
|
|
98
98
|
- Main agent context stays clean
|
|
99
|
-
- MCP discovery happens in isolated
|
|
99
|
+
- MCP discovery happens in isolated subagent context
|
|
100
100
|
- Only relevant tool definitions loaded when needed
|
|
101
101
|
- Reduced token usage
|
|
102
102
|
|
|
@@ -123,7 +123,7 @@ mcp-management/
|
|
|
123
123
|
### mcp-client.ts
|
|
124
124
|
|
|
125
125
|
Core client manager class:
|
|
126
|
-
- Load config from
|
|
126
|
+
- Load config from `.vscode/mcp.json`
|
|
127
127
|
- Connect to multiple MCP servers
|
|
128
128
|
- List/execute tools, prompts, resources
|
|
129
129
|
- Lifecycle management
|
|
@@ -145,9 +145,9 @@ Command-line interface:
|
|
|
145
145
|
Scripts check for variables in this order:
|
|
146
146
|
|
|
147
147
|
1. `process.env` (runtime)
|
|
148
|
-
2.
|
|
149
|
-
3.
|
|
150
|
-
4.
|
|
148
|
+
2. `skills/mcp-management/.env`
|
|
149
|
+
3. `skills/.env`
|
|
150
|
+
4. `.env`
|
|
151
151
|
|
|
152
152
|
### MCP Config Format
|
|
153
153
|
|
|
@@ -178,7 +178,7 @@ Install with `npx`:
|
|
|
178
178
|
|
|
179
179
|
## Integration with mcp-manager Agent
|
|
180
180
|
|
|
181
|
-
The `mcp-manager` agent (
|
|
181
|
+
The `mcp-manager` agent (`agents/mcp-manager.agent.md`) uses this skill to:
|
|
182
182
|
|
|
183
183
|
1. **Discover**: Connect to MCP servers, list capabilities
|
|
184
184
|
2. **Analyze**: Filter relevant tools for tasks
|
|
@@ -191,7 +191,7 @@ This architecture keeps main context clean and enables efficient MCP integration
|
|
|
191
191
|
|
|
192
192
|
### "Config not found"
|
|
193
193
|
|
|
194
|
-
Ensure
|
|
194
|
+
Ensure `.vscode/mcp.json` exists and is valid JSON.
|
|
195
195
|
|
|
196
196
|
### "Server connection failed"
|
|
197
197
|
|