cokit-cli 1.0.9 → 1.2.2
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/LICENSE +32 -32
- package/README.FLOW.md +237 -237
- package/README.md +142 -92
- package/agents/brainstormer.agent.md +71 -71
- package/agents/code-reviewer.agent.md +136 -136
- package/agents/code-simplifier.agent.md +43 -0
- package/agents/debugger.agent.md +128 -128
- package/agents/docs-manager.agent.md +121 -121
- package/agents/fullstack-developer.agent.md +52 -0
- package/agents/git-manager.agent.md +390 -390
- package/agents/planner.agent.md +94 -94
- package/agents/researcher.agent.md +31 -32
- package/agents/scout.agent.md +107 -107
- package/agents/tester.agent.md +117 -117
- package/agents/ui-ux-designer.agent.md +57 -0
- package/bin/cokit.js +4 -4
- package/collections/ck-core.collection.yml +28 -28
- package/collections/ck-development-rules.collection.yml +18 -18
- package/collections/ck-documentation.collection.yml +14 -14
- package/collections/ck-git-workflow.collection.yml +12 -12
- package/collections/ck-orchestration.collection.yml +16 -16
- package/docs/README.md +75 -108
- package/docs/code-standards.md +68 -0
- package/docs/codebase-summary.md +263 -0
- package/docs/cokit-commands-usage-guide.md +138 -0
- package/docs/cokit-comprehensive-mapping-guide.md +361 -374
- package/docs/cokit-slides.md +212 -222
- package/docs/cokit-sync-and-maintenance-guide.md +414 -0
- package/docs/cokit-team-presentation.md +356 -378
- package/docs/copilot-processing-flow.md +215 -212
- package/docs/guide-next-steps-speckit-cokit-implementation.md +187 -0
- package/docs/migration-guide.md +133 -133
- package/docs/project-overview-pdr.md +45 -0
- package/docs/project-roadmap.md +308 -280
- package/docs/system-architecture.md +81 -0
- package/instructions/ck-backend.instructions.md +48 -48
- package/instructions/ck-development.instructions.md +54 -54
- package/instructions/ck-frontend.instructions.md +44 -44
- package/instructions/ck-research.instructions.md +167 -167
- package/instructions/ck-testing.instructions.md +36 -36
- package/package.json +71 -42
- package/prompts/ck-ask.prompt.md +67 -57
- package/prompts/ck-bootstrap.prompt.md +141 -136
- package/prompts/ck-brainstorm.prompt.md +87 -105
- package/prompts/ck-cook.prompt.md +96 -97
- package/prompts/ck-debug.prompt.md +115 -14
- package/prompts/ck-docs.prompt.md +102 -51
- package/prompts/ck-fix-ci.prompt.md +46 -0
- package/prompts/ck-fix-fast.prompt.md +44 -0
- package/prompts/ck-fix-hard.prompt.md +60 -0
- package/prompts/ck-fix-logs.prompt.md +53 -0
- package/prompts/ck-fix-test.prompt.md +47 -0
- package/prompts/ck-fix-types.prompt.md +29 -0
- package/prompts/ck-fix-ui.prompt.md +50 -0
- package/prompts/ck-fix.prompt.md +50 -44
- package/prompts/ck-git.prompt.md +104 -79
- package/{templates/repo/.github/prompts/ck-ck-help.prompt.md → prompts/ck-help.prompt.md} +142 -112
- package/prompts/ck-journal.prompt.md +19 -0
- package/prompts/ck-plan-fast.prompt.md +106 -0
- package/prompts/ck-plan-hard.prompt.md +133 -0
- package/prompts/ck-plan-validate.prompt.md +209 -0
- package/prompts/ck-plan.prompt.md +75 -80
- package/prompts/ck-preview.prompt.md +77 -0
- package/{templates/repo/.github/prompts/ck-review-codebase.prompt.md → prompts/ck-review.prompt.md} +58 -44
- package/prompts/ck-scout.prompt.md +85 -25
- package/prompts/ck-simplify.prompt.md +46 -0
- package/prompts/ck-spec-analyze.prompt.md +201 -0
- package/prompts/ck-spec-checklist.prompt.md +308 -0
- package/prompts/ck-spec-clarify.prompt.md +190 -0
- package/prompts/ck-spec-constitution.prompt.md +92 -0
- package/prompts/ck-spec-implement.prompt.md +157 -0
- package/prompts/ck-spec-plan.prompt.md +95 -0
- package/prompts/ck-spec-specify.prompt.md +260 -0
- package/prompts/ck-spec-tasks.prompt.md +181 -0
- package/prompts/ck-test.prompt.md +21 -10
- package/prompts/ck-watzup.prompt.md +21 -0
- package/skills/INSTALLATION.md +311 -0
- package/skills/README.md +112 -0
- package/skills/THIRD_PARTY_NOTICES.md +405 -0
- package/skills/agent-browser/SKILL.md +291 -0
- package/skills/agent-browser/references/.gitkeep +0 -0
- package/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/skills/agent_skills_spec.md +55 -0
- package/skills/{ck-backend-development → backend-development}/SKILL.md +94 -96
- package/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-architecture.md +454 -454
- package/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
- package/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-debugging.md +904 -904
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-devops.md +494 -494
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-mindset.md +387 -387
- package/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-security.md +340 -290
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-technologies.md +300 -290
- package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-testing.md +484 -561
- package/skills/brainstorm/SKILL.md +74 -0
- package/skills/{ck-code-review → code-review}/SKILL.md +143 -143
- package/skills/{ck-code-review → code-review}/references/code-review-reception.md +1 -1
- package/skills/{ck-code-review → code-review}/references/requesting-code-review.md +7 -7
- package/skills/common/README.md +120 -0
- package/skills/common/api_key_helper.py +411 -0
- package/skills/common/api_key_rotator.py +248 -0
- package/skills/context-engineering/SKILL.md +106 -0
- package/skills/context-engineering/references/context-compression.md +84 -0
- package/skills/context-engineering/references/context-degradation.md +93 -0
- package/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/skills/context-engineering/references/context-optimization.md +82 -0
- package/skills/context-engineering/references/evaluation.md +89 -0
- package/skills/context-engineering/references/memory-systems.md +88 -0
- package/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/skills/context-engineering/references/project-development.md +97 -0
- package/skills/context-engineering/references/runtime-awareness.md +202 -0
- package/skills/context-engineering/references/tool-design.md +86 -0
- package/skills/context-engineering/scripts/compression_evaluator.py +349 -0
- package/skills/context-engineering/scripts/context_analyzer.py +317 -0
- package/skills/cook/README.md +86 -0
- package/skills/cook/SKILL.md +93 -0
- package/skills/cook/references/agent-patterns.md +75 -0
- package/skills/cook/references/intent-detection.md +101 -0
- package/skills/cook/references/review-cycle.md +75 -0
- package/skills/cook/references/workflow-steps.md +140 -0
- package/skills/databases/SKILL.md +111 -0
- package/skills/databases/analytics.md +198 -0
- package/skills/databases/db-design.md +188 -0
- package/skills/databases/incremental-etl.md +213 -0
- package/skills/databases/references/mongodb-aggregation.md +447 -0
- package/skills/databases/references/mongodb-atlas.md +465 -0
- package/skills/databases/references/mongodb-crud.md +408 -0
- package/skills/databases/references/mongodb-indexing.md +442 -0
- package/skills/databases/references/postgresql-administration.md +594 -0
- package/skills/databases/references/postgresql-performance.md +527 -0
- package/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/skills/databases/references/postgresql-queries.md +475 -0
- package/skills/databases/scripts/db_backup.py +502 -0
- package/skills/databases/scripts/db_migrate.py +426 -0
- package/skills/databases/scripts/db_performance_check.py +457 -0
- package/skills/databases/scripts/requirements.txt +20 -0
- package/skills/databases/stacks/bigquery.md +231 -0
- package/skills/databases/stacks/d1_cloudflare.md +137 -0
- package/skills/databases/stacks/mysql.md +216 -0
- package/skills/databases/stacks/postgres.md +235 -0
- package/skills/databases/stacks/sqlite.md +244 -0
- package/skills/databases/transactional.md +176 -0
- package/{templates/repo/.github/skills/ck-debugging → skills/debug}/SKILL.md +83 -82
- package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/defense-in-depth.md +124 -124
- package/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
- package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/systematic-debugging.md +102 -102
- package/skills/{ck-debugging → debug}/references/verification.md +123 -123
- package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.sh +63 -63
- package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.test.md +102 -102
- package/skills/devops/.env.example +76 -0
- package/skills/devops/SKILL.md +102 -0
- package/skills/devops/references/browser-rendering.md +305 -0
- package/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/devops/references/cloudflare-platform.md +271 -0
- package/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/devops/references/docker-basics.md +297 -0
- package/skills/devops/references/docker-compose.md +292 -0
- package/skills/devops/references/gcloud-platform.md +297 -0
- package/skills/devops/references/gcloud-services.md +304 -0
- package/skills/devops/references/kubernetes-basics.md +99 -0
- package/skills/devops/references/kubernetes-helm-advanced.md +75 -0
- package/skills/devops/references/kubernetes-helm.md +81 -0
- package/skills/devops/references/kubernetes-kubectl.md +74 -0
- package/skills/devops/references/kubernetes-security-advanced.md +98 -0
- package/skills/devops/references/kubernetes-security.md +95 -0
- package/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/skills/devops/references/kubernetes-troubleshooting.md +49 -0
- package/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/skills/devops/references/kubernetes-workflows.md +78 -0
- package/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/devops/scripts/docker_optimize.py +332 -0
- package/skills/devops/scripts/requirements.txt +20 -0
- package/skills/docs-seeker/.env.example +15 -0
- package/skills/docs-seeker/SKILL.md +96 -0
- package/skills/docs-seeker/package.json +25 -0
- package/skills/docs-seeker/references/advanced.md +79 -0
- package/skills/docs-seeker/references/context7-patterns.md +64 -0
- package/skills/docs-seeker/references/errors.md +68 -0
- package/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
- package/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/skills/docs-seeker/scripts/fetch-docs.js +214 -0
- package/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
- package/skills/docs-seeker/workflows/library-search.md +86 -0
- package/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/skills/fix/SKILL.md +100 -0
- package/skills/fix/references/complexity-assessment.md +61 -0
- package/skills/fix/references/mode-selection.md +30 -0
- package/skills/fix/references/parallel-exploration.md +77 -0
- package/skills/fix/references/review-cycle.md +77 -0
- package/skills/fix/references/skill-activation-matrix.md +65 -0
- package/skills/fix/references/workflow-ci.md +28 -0
- package/skills/fix/references/workflow-deep.md +91 -0
- package/skills/fix/references/workflow-logs.md +36 -0
- package/skills/fix/references/workflow-quick.md +59 -0
- package/skills/fix/references/workflow-standard.md +86 -0
- package/skills/fix/references/workflow-test.md +36 -0
- package/skills/fix/references/workflow-types.md +33 -0
- package/skills/fix/references/workflow-ui.md +34 -0
- package/skills/frontend-design/SKILL.md +74 -0
- package/skills/frontend-design/references/analysis-best-practices.md +80 -0
- package/skills/frontend-design/references/analysis-prompts.md +141 -0
- package/skills/frontend-design/references/analysis-techniques.md +118 -0
- package/skills/frontend-design/references/animejs.md +396 -0
- package/skills/frontend-design/references/asset-generation.md +161 -0
- package/skills/frontend-design/references/design-extraction-overview.md +71 -0
- package/skills/frontend-design/references/extraction-best-practices.md +141 -0
- package/skills/frontend-design/references/extraction-output-templates.md +162 -0
- package/skills/frontend-design/references/extraction-prompts.md +127 -0
- package/skills/frontend-design/references/technical-accessibility.md +119 -0
- package/skills/frontend-design/references/technical-best-practices.md +97 -0
- package/skills/frontend-design/references/technical-optimization.md +44 -0
- package/skills/frontend-design/references/technical-overview.md +90 -0
- package/skills/frontend-design/references/technical-workflows.md +150 -0
- package/skills/frontend-design/references/visual-analysis-overview.md +95 -0
- package/skills/frontend-design/references/workflow-describe.md +86 -0
- package/skills/frontend-design/references/workflow-quick.md +54 -0
- package/skills/frontend-design/references/workflow-screenshot.md +62 -0
- package/skills/git/SKILL.md +99 -0
- package/skills/git/references/branch-management.md +88 -0
- package/skills/git/references/commit-standards.md +46 -0
- package/skills/git/references/gh-cli-guide.md +109 -0
- package/skills/git/references/safety-protocols.md +69 -0
- package/skills/git/references/workflow-commit.md +58 -0
- package/skills/git/references/workflow-merge.md +48 -0
- package/skills/git/references/workflow-pr.md +58 -0
- package/skills/git/references/workflow-push.md +52 -0
- package/skills/install.ps1 +1247 -0
- package/skills/install.sh +1300 -0
- package/skills/mcp-management/README.md +219 -0
- package/skills/mcp-management/SKILL.md +209 -0
- package/skills/mcp-management/assets/tools.json +3146 -0
- package/skills/mcp-management/references/configuration.md +114 -0
- package/skills/mcp-management/references/gemini-cli-integration.md +221 -0
- package/skills/mcp-management/references/mcp-protocol.md +116 -0
- package/skills/mcp-management/scripts/.env.example +10 -0
- package/skills/mcp-management/scripts/cli.ts +195 -0
- package/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/skills/mcp-management/scripts/dist/cli.js +160 -0
- package/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
- package/skills/mcp-management/scripts/mcp-client.ts +230 -0
- package/skills/mcp-management/scripts/package.json +20 -0
- package/skills/mcp-management/scripts/tsconfig.json +15 -0
- package/skills/mermaidjs-v11/SKILL.md +115 -0
- package/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/skills/mermaidjs-v11/references/examples.md +344 -0
- package/skills/mermaidjs-v11/references/integration.md +310 -0
- package/skills/{ck-planning → planning}/SKILL.md +131 -112
- package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/codebase-understanding.md +62 -62
- package/skills/{ck-planning → planning}/references/output-standards.md +141 -127
- package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/plan-organization.md +160 -150
- package/skills/{ck-planning → planning}/references/research-phase.md +49 -49
- package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/solution-design.md +63 -63
- package/skills/{ck-problem-solving → problem-solving}/SKILL.md +95 -95
- package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/attribution.md +69 -69
- package/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
- package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/inversion-exercise.md +91 -91
- package/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
- package/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
- package/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
- package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/when-stuck.md +72 -72
- package/skills/repomix/SKILL.md +247 -0
- package/skills/repomix/references/configuration.md +211 -0
- package/skills/repomix/references/usage-patterns.md +232 -0
- package/skills/repomix/scripts/README.md +179 -0
- package/skills/repomix/scripts/repomix_batch.py +455 -0
- package/skills/repomix/scripts/repos.example.json +15 -0
- package/skills/repomix/scripts/requirements.txt +15 -0
- package/skills/research/SKILL.md +169 -0
- package/skills/scout/SKILL.md +78 -0
- package/skills/scout/references/external-scouting.md +140 -0
- package/skills/scout/references/internal-scouting.md +119 -0
- package/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
- package/skills/{ck-sequential-thinking → sequential-thinking}/README.md +183 -183
- package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/SKILL.md +92 -92
- package/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
- package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-strategies.md +79 -79
- package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-techniques.md +76 -76
- package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/core-patterns.md +95 -95
- package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
- package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
- package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
- package/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
- package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/scripts/process-thought.js +236 -236
- package/skills/ui-styling/LICENSE.txt +202 -0
- package/skills/ui-styling/SKILL.md +319 -0
- package/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/ui-styling/references/shadcn-components.md +424 -0
- package/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/ui-styling/scripts/requirements.txt +17 -0
- package/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/skills/web-testing/SKILL.md +94 -0
- package/skills/web-testing/references/accessibility-testing.md +84 -0
- package/skills/web-testing/references/api-testing.md +78 -0
- package/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
- package/skills/web-testing/references/component-testing.md +94 -0
- package/skills/web-testing/references/contract-testing.md +146 -0
- package/skills/web-testing/references/cross-browser-checklist.md +72 -0
- package/skills/web-testing/references/database-testing.md +139 -0
- package/skills/web-testing/references/e2e-testing-playwright.md +119 -0
- package/skills/web-testing/references/functional-testing-checklist.md +88 -0
- package/skills/web-testing/references/interactive-testing-patterns.md +89 -0
- package/skills/web-testing/references/load-testing-k6.md +93 -0
- package/skills/web-testing/references/mobile-gesture-testing.md +85 -0
- package/skills/web-testing/references/performance-core-web-vitals.md +124 -0
- package/skills/web-testing/references/playwright-component-testing.md +115 -0
- package/skills/web-testing/references/pre-release-checklist.md +75 -0
- package/skills/web-testing/references/security-checklists.md +81 -0
- package/skills/web-testing/references/security-testing-overview.md +92 -0
- package/skills/web-testing/references/shadow-dom-testing.md +70 -0
- package/skills/web-testing/references/test-data-management.md +131 -0
- package/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
- package/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
- package/skills/web-testing/references/unit-integration-testing.md +138 -0
- package/skills/web-testing/references/visual-regression.md +92 -0
- package/skills/web-testing/references/vulnerability-payloads.md +93 -0
- package/skills/web-testing/scripts/analyze-test-results.js +280 -0
- package/skills/web-testing/scripts/init-playwright.js +233 -0
- package/src/commands/add.js +93 -93
- package/src/commands/doctor.js +117 -117
- package/src/commands/init.js +183 -183
- package/src/commands/list.js +91 -91
- package/src/commands/update.js +22 -22
- package/src/index.js +35 -35
- package/src/utils/colors.js +14 -14
- package/src/utils/copy.js +122 -122
- package/src/utils/paths.js +66 -66
- package/src/utils/update-checker.js +126 -126
- package/templates/repo/.github/AGENTS.md +103 -55
- package/templates/repo/.github/agents/brainstormer.agent.md +71 -71
- package/templates/repo/.github/agents/code-reviewer.agent.md +136 -136
- package/templates/repo/.github/agents/code-simplifier.agent.md +43 -0
- package/templates/repo/.github/agents/debugger.agent.md +128 -128
- package/templates/repo/.github/agents/docs-manager.agent.md +121 -121
- package/templates/repo/.github/agents/fullstack-developer.agent.md +52 -0
- package/templates/repo/.github/agents/git-manager.agent.md +390 -390
- package/templates/repo/.github/agents/planner.agent.md +94 -94
- package/templates/repo/.github/agents/researcher.agent.md +31 -32
- package/templates/repo/.github/agents/scout.agent.md +107 -107
- package/templates/repo/.github/agents/tester.agent.md +117 -117
- package/templates/repo/.github/agents/ui-ux-designer.agent.md +57 -0
- package/templates/repo/.github/collections/ck-core.collection.yml +28 -28
- package/templates/repo/.github/collections/ck-development-rules.collection.yml +18 -18
- package/templates/repo/.github/collections/ck-documentation.collection.yml +14 -14
- package/templates/repo/.github/collections/ck-git-workflow.collection.yml +12 -12
- package/templates/repo/.github/collections/ck-orchestration.collection.yml +16 -16
- package/templates/repo/.github/instructions/ck-backend.instructions.md +48 -48
- package/templates/repo/.github/instructions/ck-development.instructions.md +54 -54
- package/templates/repo/.github/instructions/ck-frontend.instructions.md +44 -44
- package/templates/repo/.github/instructions/ck-research.instructions.md +167 -167
- package/templates/repo/.github/instructions/ck-testing.instructions.md +36 -36
- package/templates/repo/.github/prompts/ck-ask.prompt.md +67 -57
- package/templates/repo/.github/prompts/ck-bootstrap.prompt.md +141 -136
- package/templates/repo/.github/prompts/ck-brainstorm.prompt.md +87 -105
- package/templates/repo/.github/prompts/ck-cook.prompt.md +96 -97
- package/templates/repo/.github/prompts/ck-debug.prompt.md +115 -14
- package/templates/repo/.github/prompts/ck-docs.prompt.md +102 -51
- package/templates/repo/.github/prompts/ck-fix-ci.prompt.md +46 -0
- package/templates/repo/.github/prompts/ck-fix-fast.prompt.md +44 -0
- package/templates/repo/.github/prompts/ck-fix-hard.prompt.md +60 -0
- package/templates/repo/.github/prompts/ck-fix-logs.prompt.md +53 -0
- package/templates/repo/.github/prompts/ck-fix-test.prompt.md +47 -0
- package/templates/repo/.github/prompts/ck-fix-types.prompt.md +29 -0
- package/templates/repo/.github/prompts/ck-fix-ui.prompt.md +50 -0
- package/templates/repo/.github/prompts/ck-fix.prompt.md +50 -44
- package/templates/repo/.github/prompts/ck-git.prompt.md +104 -79
- package/{prompts/ck-ck-help.prompt.md → templates/repo/.github/prompts/ck-help.prompt.md} +142 -112
- package/templates/repo/.github/prompts/ck-journal.prompt.md +19 -0
- package/templates/repo/.github/prompts/ck-plan-fast.prompt.md +106 -0
- package/templates/repo/.github/prompts/ck-plan-hard.prompt.md +133 -0
- package/templates/repo/.github/prompts/ck-plan-validate.prompt.md +209 -0
- package/templates/repo/.github/prompts/ck-plan.prompt.md +75 -80
- package/templates/repo/.github/prompts/ck-preview.prompt.md +77 -0
- package/{prompts/ck-review-codebase.prompt.md → templates/repo/.github/prompts/ck-review.prompt.md} +58 -44
- package/templates/repo/.github/prompts/ck-scout.prompt.md +85 -25
- package/templates/repo/.github/prompts/ck-simplify.prompt.md +46 -0
- package/templates/repo/.github/prompts/ck-spec-analyze.prompt.md +201 -0
- package/templates/repo/.github/prompts/ck-spec-checklist.prompt.md +308 -0
- package/templates/repo/.github/prompts/ck-spec-clarify.prompt.md +190 -0
- package/templates/repo/.github/prompts/ck-spec-constitution.prompt.md +92 -0
- package/templates/repo/.github/prompts/ck-spec-implement.prompt.md +157 -0
- package/templates/repo/.github/prompts/ck-spec-plan.prompt.md +95 -0
- package/templates/repo/.github/prompts/ck-spec-specify.prompt.md +260 -0
- package/templates/repo/.github/prompts/ck-spec-tasks.prompt.md +181 -0
- package/templates/repo/.github/prompts/ck-test.prompt.md +21 -10
- package/templates/repo/.github/prompts/ck-watzup.prompt.md +21 -0
- package/templates/repo/.github/skills/INSTALLATION.md +311 -0
- package/templates/repo/.github/skills/README.md +112 -0
- package/templates/repo/.github/skills/THIRD_PARTY_NOTICES.md +405 -0
- package/templates/repo/.github/skills/agent-browser/SKILL.md +291 -0
- package/templates/repo/.github/skills/agent-browser/references/.gitkeep +0 -0
- package/templates/repo/.github/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/templates/repo/.github/skills/agent_skills_spec.md +55 -0
- package/templates/repo/.github/skills/{ck-backend-development → backend-development}/SKILL.md +94 -96
- package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-architecture.md +454 -454
- package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
- package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-debugging.md +904 -904
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-devops.md +494 -494
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-mindset.md +387 -387
- package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-security.md +340 -290
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-technologies.md +300 -290
- package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-testing.md +484 -561
- package/templates/repo/.github/skills/brainstorm/SKILL.md +74 -0
- package/templates/repo/.github/skills/{ck-code-review → code-review}/SKILL.md +143 -143
- package/templates/repo/.github/skills/{ck-code-review → code-review}/references/code-review-reception.md +208 -208
- package/templates/repo/.github/skills/{ck-code-review → code-review}/references/requesting-code-review.md +104 -104
- package/templates/repo/.github/skills/{ck-code-review → code-review}/references/verification-before-completion.md +138 -138
- package/templates/repo/.github/skills/common/README.md +120 -0
- package/templates/repo/.github/skills/common/api_key_helper.py +411 -0
- package/templates/repo/.github/skills/common/api_key_rotator.py +248 -0
- package/templates/repo/.github/skills/context-engineering/SKILL.md +106 -0
- package/templates/repo/.github/skills/context-engineering/references/context-compression.md +84 -0
- package/templates/repo/.github/skills/context-engineering/references/context-degradation.md +93 -0
- package/templates/repo/.github/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/templates/repo/.github/skills/context-engineering/references/context-optimization.md +82 -0
- package/templates/repo/.github/skills/context-engineering/references/evaluation.md +89 -0
- package/templates/repo/.github/skills/context-engineering/references/memory-systems.md +88 -0
- package/templates/repo/.github/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/templates/repo/.github/skills/context-engineering/references/project-development.md +97 -0
- package/templates/repo/.github/skills/context-engineering/references/runtime-awareness.md +202 -0
- package/templates/repo/.github/skills/context-engineering/references/tool-design.md +86 -0
- package/templates/repo/.github/skills/context-engineering/scripts/compression_evaluator.py +349 -0
- package/templates/repo/.github/skills/context-engineering/scripts/context_analyzer.py +317 -0
- package/templates/repo/.github/skills/cook/README.md +86 -0
- package/templates/repo/.github/skills/cook/SKILL.md +93 -0
- package/templates/repo/.github/skills/cook/references/agent-patterns.md +75 -0
- package/templates/repo/.github/skills/cook/references/intent-detection.md +101 -0
- package/templates/repo/.github/skills/cook/references/review-cycle.md +75 -0
- package/templates/repo/.github/skills/cook/references/workflow-steps.md +140 -0
- package/templates/repo/.github/skills/databases/SKILL.md +111 -0
- package/templates/repo/.github/skills/databases/analytics.md +198 -0
- package/templates/repo/.github/skills/databases/db-design.md +188 -0
- package/templates/repo/.github/skills/databases/incremental-etl.md +213 -0
- package/templates/repo/.github/skills/databases/references/mongodb-aggregation.md +447 -0
- package/templates/repo/.github/skills/databases/references/mongodb-atlas.md +465 -0
- package/templates/repo/.github/skills/databases/references/mongodb-crud.md +408 -0
- package/templates/repo/.github/skills/databases/references/mongodb-indexing.md +442 -0
- package/templates/repo/.github/skills/databases/references/postgresql-administration.md +594 -0
- package/templates/repo/.github/skills/databases/references/postgresql-performance.md +527 -0
- package/templates/repo/.github/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/templates/repo/.github/skills/databases/references/postgresql-queries.md +475 -0
- package/templates/repo/.github/skills/databases/scripts/db_backup.py +502 -0
- package/templates/repo/.github/skills/databases/scripts/db_migrate.py +426 -0
- package/templates/repo/.github/skills/databases/scripts/db_performance_check.py +457 -0
- package/templates/repo/.github/skills/databases/scripts/requirements.txt +20 -0
- package/templates/repo/.github/skills/databases/stacks/bigquery.md +231 -0
- package/templates/repo/.github/skills/databases/stacks/d1_cloudflare.md +137 -0
- package/templates/repo/.github/skills/databases/stacks/mysql.md +216 -0
- package/templates/repo/.github/skills/databases/stacks/postgres.md +235 -0
- package/templates/repo/.github/skills/databases/stacks/sqlite.md +244 -0
- package/templates/repo/.github/skills/databases/transactional.md +176 -0
- package/{skills/ck-debugging → templates/repo/.github/skills/debug}/SKILL.md +83 -82
- package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/defense-in-depth.md +124 -124
- package/templates/repo/.github/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
- package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/systematic-debugging.md +102 -102
- package/templates/repo/.github/skills/{ck-debugging → debug}/references/verification.md +123 -123
- package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.sh +63 -63
- package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.test.md +102 -102
- package/templates/repo/.github/skills/devops/.env.example +76 -0
- package/templates/repo/.github/skills/devops/SKILL.md +102 -0
- package/templates/repo/.github/skills/devops/references/browser-rendering.md +305 -0
- package/templates/repo/.github/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/templates/repo/.github/skills/devops/references/cloudflare-platform.md +271 -0
- package/templates/repo/.github/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/templates/repo/.github/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/templates/repo/.github/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/templates/repo/.github/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/templates/repo/.github/skills/devops/references/docker-basics.md +297 -0
- package/templates/repo/.github/skills/devops/references/docker-compose.md +292 -0
- package/templates/repo/.github/skills/devops/references/gcloud-platform.md +297 -0
- package/templates/repo/.github/skills/devops/references/gcloud-services.md +304 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-basics.md +99 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-helm-advanced.md +75 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-helm.md +81 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-kubectl.md +74 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-security-advanced.md +98 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-security.md +95 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting.md +49 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/templates/repo/.github/skills/devops/references/kubernetes-workflows.md +78 -0
- package/templates/repo/.github/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/templates/repo/.github/skills/devops/scripts/docker_optimize.py +332 -0
- package/templates/repo/.github/skills/devops/scripts/requirements.txt +20 -0
- package/templates/repo/.github/skills/docs-seeker/.env.example +15 -0
- package/templates/repo/.github/skills/docs-seeker/SKILL.md +96 -0
- package/templates/repo/.github/skills/docs-seeker/package.json +25 -0
- package/templates/repo/.github/skills/docs-seeker/references/advanced.md +79 -0
- package/templates/repo/.github/skills/docs-seeker/references/context7-patterns.md +64 -0
- package/templates/repo/.github/skills/docs-seeker/references/errors.md +68 -0
- package/templates/repo/.github/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
- package/templates/repo/.github/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/templates/repo/.github/skills/docs-seeker/scripts/fetch-docs.js +214 -0
- package/templates/repo/.github/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
- package/templates/repo/.github/skills/docs-seeker/workflows/library-search.md +86 -0
- package/templates/repo/.github/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/templates/repo/.github/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/templates/repo/.github/skills/fix/SKILL.md +100 -0
- package/templates/repo/.github/skills/fix/references/complexity-assessment.md +61 -0
- package/templates/repo/.github/skills/fix/references/mode-selection.md +30 -0
- package/templates/repo/.github/skills/fix/references/parallel-exploration.md +77 -0
- package/templates/repo/.github/skills/fix/references/review-cycle.md +77 -0
- package/templates/repo/.github/skills/fix/references/skill-activation-matrix.md +65 -0
- package/templates/repo/.github/skills/fix/references/workflow-ci.md +28 -0
- package/templates/repo/.github/skills/fix/references/workflow-deep.md +91 -0
- package/templates/repo/.github/skills/fix/references/workflow-logs.md +36 -0
- package/templates/repo/.github/skills/fix/references/workflow-quick.md +59 -0
- package/templates/repo/.github/skills/fix/references/workflow-standard.md +86 -0
- package/templates/repo/.github/skills/fix/references/workflow-test.md +36 -0
- package/templates/repo/.github/skills/fix/references/workflow-types.md +33 -0
- package/templates/repo/.github/skills/fix/references/workflow-ui.md +34 -0
- package/templates/repo/.github/skills/frontend-design/SKILL.md +74 -0
- package/templates/repo/.github/skills/frontend-design/references/analysis-best-practices.md +80 -0
- package/templates/repo/.github/skills/frontend-design/references/analysis-prompts.md +141 -0
- package/templates/repo/.github/skills/frontend-design/references/analysis-techniques.md +118 -0
- package/templates/repo/.github/skills/frontend-design/references/animejs.md +396 -0
- package/templates/repo/.github/skills/frontend-design/references/asset-generation.md +161 -0
- package/templates/repo/.github/skills/frontend-design/references/design-extraction-overview.md +71 -0
- package/templates/repo/.github/skills/frontend-design/references/extraction-best-practices.md +141 -0
- package/templates/repo/.github/skills/frontend-design/references/extraction-output-templates.md +162 -0
- package/templates/repo/.github/skills/frontend-design/references/extraction-prompts.md +127 -0
- package/templates/repo/.github/skills/frontend-design/references/technical-accessibility.md +119 -0
- package/templates/repo/.github/skills/frontend-design/references/technical-best-practices.md +97 -0
- package/templates/repo/.github/skills/frontend-design/references/technical-optimization.md +44 -0
- package/templates/repo/.github/skills/frontend-design/references/technical-overview.md +90 -0
- package/templates/repo/.github/skills/frontend-design/references/technical-workflows.md +150 -0
- package/templates/repo/.github/skills/frontend-design/references/visual-analysis-overview.md +95 -0
- package/templates/repo/.github/skills/frontend-design/references/workflow-describe.md +86 -0
- package/templates/repo/.github/skills/frontend-design/references/workflow-quick.md +54 -0
- package/templates/repo/.github/skills/frontend-design/references/workflow-screenshot.md +62 -0
- package/templates/repo/.github/skills/git/SKILL.md +99 -0
- package/templates/repo/.github/skills/git/references/branch-management.md +88 -0
- package/templates/repo/.github/skills/git/references/commit-standards.md +46 -0
- package/templates/repo/.github/skills/git/references/gh-cli-guide.md +109 -0
- package/templates/repo/.github/skills/git/references/safety-protocols.md +69 -0
- package/templates/repo/.github/skills/git/references/workflow-commit.md +58 -0
- package/templates/repo/.github/skills/git/references/workflow-merge.md +48 -0
- package/templates/repo/.github/skills/git/references/workflow-pr.md +58 -0
- package/templates/repo/.github/skills/git/references/workflow-push.md +52 -0
- package/templates/repo/.github/skills/install.ps1 +1247 -0
- package/templates/repo/.github/skills/install.sh +1300 -0
- package/templates/repo/.github/skills/mcp-management/README.md +219 -0
- package/templates/repo/.github/skills/mcp-management/SKILL.md +209 -0
- package/templates/repo/.github/skills/mcp-management/assets/tools.json +3146 -0
- package/templates/repo/.github/skills/mcp-management/references/configuration.md +114 -0
- package/templates/repo/.github/skills/mcp-management/references/gemini-cli-integration.md +221 -0
- package/templates/repo/.github/skills/mcp-management/references/mcp-protocol.md +116 -0
- package/templates/repo/.github/skills/mcp-management/scripts/.env.example +10 -0
- package/templates/repo/.github/skills/mcp-management/scripts/cli.ts +195 -0
- package/templates/repo/.github/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/templates/repo/.github/skills/mcp-management/scripts/dist/cli.js +160 -0
- package/templates/repo/.github/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
- package/templates/repo/.github/skills/mcp-management/scripts/mcp-client.ts +230 -0
- package/templates/repo/.github/skills/mcp-management/scripts/package.json +20 -0
- package/templates/repo/.github/skills/mcp-management/scripts/tsconfig.json +15 -0
- package/templates/repo/.github/skills/mermaidjs-v11/SKILL.md +115 -0
- package/templates/repo/.github/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/templates/repo/.github/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/templates/repo/.github/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/templates/repo/.github/skills/mermaidjs-v11/references/examples.md +344 -0
- package/templates/repo/.github/skills/mermaidjs-v11/references/integration.md +310 -0
- package/templates/repo/.github/skills/{ck-planning → planning}/SKILL.md +131 -112
- package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/codebase-understanding.md +62 -62
- package/templates/repo/.github/skills/{ck-planning → planning}/references/output-standards.md +141 -127
- package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/plan-organization.md +160 -150
- package/templates/repo/.github/skills/{ck-planning → planning}/references/research-phase.md +49 -49
- package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/solution-design.md +63 -63
- package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/SKILL.md +95 -95
- package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/attribution.md +69 -69
- package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
- package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/inversion-exercise.md +91 -91
- package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
- package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
- package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
- package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/when-stuck.md +72 -72
- package/templates/repo/.github/skills/repomix/SKILL.md +247 -0
- package/templates/repo/.github/skills/repomix/references/configuration.md +211 -0
- package/templates/repo/.github/skills/repomix/references/usage-patterns.md +232 -0
- package/templates/repo/.github/skills/repomix/scripts/README.md +179 -0
- package/templates/repo/.github/skills/repomix/scripts/repomix_batch.py +455 -0
- package/templates/repo/.github/skills/repomix/scripts/repos.example.json +15 -0
- package/templates/repo/.github/skills/repomix/scripts/requirements.txt +15 -0
- package/templates/repo/.github/skills/research/SKILL.md +169 -0
- package/templates/repo/.github/skills/scout/SKILL.md +78 -0
- package/templates/repo/.github/skills/scout/references/external-scouting.md +140 -0
- package/templates/repo/.github/skills/scout/references/internal-scouting.md +119 -0
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/README.md +183 -183
- package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/SKILL.md +92 -92
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
- package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-strategies.md +79 -79
- package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-techniques.md +76 -76
- package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/core-patterns.md +95 -95
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
- package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
- package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/scripts/process-thought.js +236 -236
- package/templates/repo/.github/skills/ui-styling/LICENSE.txt +202 -0
- package/templates/repo/.github/skills/ui-styling/SKILL.md +319 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/templates/repo/.github/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/templates/repo/.github/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/templates/repo/.github/skills/ui-styling/references/shadcn-components.md +424 -0
- package/templates/repo/.github/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/templates/repo/.github/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/templates/repo/.github/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/templates/repo/.github/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/templates/repo/.github/skills/ui-styling/scripts/requirements.txt +17 -0
- package/templates/repo/.github/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/templates/repo/.github/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/templates/repo/.github/skills/web-testing/SKILL.md +94 -0
- package/templates/repo/.github/skills/web-testing/references/accessibility-testing.md +84 -0
- package/templates/repo/.github/skills/web-testing/references/api-testing.md +78 -0
- package/templates/repo/.github/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
- package/templates/repo/.github/skills/web-testing/references/component-testing.md +94 -0
- package/templates/repo/.github/skills/web-testing/references/contract-testing.md +146 -0
- package/templates/repo/.github/skills/web-testing/references/cross-browser-checklist.md +72 -0
- package/templates/repo/.github/skills/web-testing/references/database-testing.md +139 -0
- package/templates/repo/.github/skills/web-testing/references/e2e-testing-playwright.md +119 -0
- package/templates/repo/.github/skills/web-testing/references/functional-testing-checklist.md +88 -0
- package/templates/repo/.github/skills/web-testing/references/interactive-testing-patterns.md +89 -0
- package/templates/repo/.github/skills/web-testing/references/load-testing-k6.md +93 -0
- package/templates/repo/.github/skills/web-testing/references/mobile-gesture-testing.md +85 -0
- package/templates/repo/.github/skills/web-testing/references/performance-core-web-vitals.md +124 -0
- package/templates/repo/.github/skills/web-testing/references/playwright-component-testing.md +115 -0
- package/templates/repo/.github/skills/web-testing/references/pre-release-checklist.md +75 -0
- package/templates/repo/.github/skills/web-testing/references/security-checklists.md +81 -0
- package/templates/repo/.github/skills/web-testing/references/security-testing-overview.md +92 -0
- package/templates/repo/.github/skills/web-testing/references/shadow-dom-testing.md +70 -0
- package/templates/repo/.github/skills/web-testing/references/test-data-management.md +131 -0
- package/templates/repo/.github/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
- package/templates/repo/.github/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
- package/templates/repo/.github/skills/web-testing/references/unit-integration-testing.md +138 -0
- package/templates/repo/.github/skills/web-testing/references/visual-regression.md +92 -0
- package/templates/repo/.github/skills/web-testing/references/vulnerability-payloads.md +93 -0
- package/templates/repo/.github/skills/web-testing/scripts/analyze-test-results.js +280 -0
- package/templates/repo/.github/skills/web-testing/scripts/init-playwright.js +233 -0
- package/templates/repo/.github/spec-kit/memory/constitution.md +50 -0
- package/templates/repo/.github/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
- package/templates/repo/.github/spec-kit/scripts/bash/common.sh +156 -0
- package/templates/repo/.github/spec-kit/scripts/bash/create-new-feature.sh +297 -0
- package/templates/repo/.github/spec-kit/scripts/bash/setup-plan.sh +61 -0
- package/templates/repo/.github/spec-kit/scripts/bash/update-agent-context.sh +799 -0
- package/templates/repo/.github/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
- package/templates/repo/.github/spec-kit/scripts/powershell/common.ps1 +137 -0
- package/templates/repo/.github/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
- package/templates/repo/.github/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
- package/templates/repo/.github/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
- package/templates/repo/.github/spec-kit/templates/agent-file-template.md +28 -0
- package/templates/repo/.github/spec-kit/templates/checklist-template.md +40 -0
- package/templates/repo/.github/spec-kit/templates/commands/analyze.md +187 -0
- package/templates/repo/.github/spec-kit/templates/commands/checklist.md +297 -0
- package/templates/repo/.github/spec-kit/templates/commands/clarify.md +184 -0
- package/templates/repo/.github/spec-kit/templates/commands/constitution.md +82 -0
- package/templates/repo/.github/spec-kit/templates/commands/implement.md +138 -0
- package/templates/repo/.github/spec-kit/templates/commands/plan.md +95 -0
- package/templates/repo/.github/spec-kit/templates/commands/specify.md +261 -0
- package/templates/repo/.github/spec-kit/templates/commands/tasks.md +140 -0
- package/templates/repo/.github/spec-kit/templates/commands/taskstoissues.md +33 -0
- package/templates/repo/.github/spec-kit/templates/plan-template.md +104 -0
- package/templates/repo/.github/spec-kit/templates/spec-template.md +115 -0
- package/templates/repo/.github/spec-kit/templates/tasks-phase-template.md +42 -0
- package/templates/repo/.github/spec-kit/templates/tasks-template.md +268 -0
- package/templates/repo/.github/spec-kit/templates/vscode-settings.json +14 -0
- package/templates/repo/.vscode/settings.json +70 -70
- package/.vscode/settings.json +0 -70
- package/AGENTS.md +0 -103
- package/FAQ.md +0 -101
- package/INIT.md +0 -154
- package/QUICK-START.md +0 -37
- package/changelogs/1.0.8.md +0 -77
- package/changelogs/1.0.9.md +0 -173
- package/plans/reports/docs-manager-260120-0854-documentation-update.md +0 -323
- package/prompts/ck-code.prompt.md +0 -178
- package/repomix-output.xml +0 -40725
- package/rules/README.agents.md +0 -55
- package/rules/README.collections.md +0 -78
- package/rules/README.copilot-instructions.md +0 -66
- package/rules/README.instructions.md +0 -73
- package/rules/README.md +0 -39
- package/rules/README.prompts.md +0 -76
- package/rules/README.skills.md +0 -71
- package/skills/ck-frontend-development/SKILL.md +0 -399
- package/skills/ck-frontend-development/resources/common-patterns.md +0 -331
- package/skills/ck-frontend-development/resources/complete-examples.md +0 -872
- package/skills/ck-frontend-development/resources/component-patterns.md +0 -502
- package/skills/ck-frontend-development/resources/data-fetching.md +0 -767
- package/skills/ck-frontend-development/resources/file-organization.md +0 -502
- package/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
- package/skills/ck-frontend-development/resources/performance.md +0 -406
- package/skills/ck-frontend-development/resources/routing-guide.md +0 -364
- package/skills/ck-frontend-development/resources/styling-guide.md +0 -428
- package/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
- package/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
- package/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
- package/templates/repo/.github/.cokit-version +0 -4
- package/templates/repo/.github/copilot-instructions.md +0 -45
- package/templates/repo/.github/prompts/ck-code.prompt.md +0 -178
- package/templates/repo/.github/skills/ck-frontend-development/SKILL.md +0 -399
- package/templates/repo/.github/skills/ck-frontend-development/resources/common-patterns.md +0 -331
- package/templates/repo/.github/skills/ck-frontend-development/resources/complete-examples.md +0 -872
- package/templates/repo/.github/skills/ck-frontend-development/resources/component-patterns.md +0 -502
- package/templates/repo/.github/skills/ck-frontend-development/resources/data-fetching.md +0 -767
- package/templates/repo/.github/skills/ck-frontend-development/resources/file-organization.md +0 -502
- package/templates/repo/.github/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
- package/templates/repo/.github/skills/ck-frontend-development/resources/performance.md +0 -406
- package/templates/repo/.github/skills/ck-frontend-development/resources/routing-guide.md +0 -364
- package/templates/repo/.github/skills/ck-frontend-development/resources/styling-guide.md +0 -428
- package/templates/repo/.github/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
- package/templates/repo/.github/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
- package/templates/repo/.github/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
- /package/skills/{ck-code-review → code-review}/references/verification-before-completion.md +0 -0
package/skills/{ck-backend-development → backend-development}/references/backend-performance.md
RENAMED
|
@@ -1,397 +1,397 @@
|
|
|
1
|
-
# Backend Performance & Scalability
|
|
2
|
-
|
|
3
|
-
Performance optimization strategies, caching patterns, and scalability best practices (2025).
|
|
4
|
-
|
|
5
|
-
## Database Performance
|
|
6
|
-
|
|
7
|
-
### Query Optimization
|
|
8
|
-
|
|
9
|
-
#### Indexing Strategies
|
|
10
|
-
|
|
11
|
-
**Impact:** 30% disk I/O reduction, 10-100x query speedup
|
|
12
|
-
|
|
13
|
-
```sql
|
|
14
|
-
-- Create index on frequently queried columns
|
|
15
|
-
CREATE INDEX idx_users_email ON users(email);
|
|
16
|
-
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
17
|
-
|
|
18
|
-
-- Composite index for multi-column queries
|
|
19
|
-
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);
|
|
20
|
-
|
|
21
|
-
-- Partial index for filtered queries
|
|
22
|
-
CREATE INDEX idx_active_users ON users(email) WHERE active = true;
|
|
23
|
-
|
|
24
|
-
-- Analyze query performance
|
|
25
|
-
EXPLAIN ANALYZE SELECT * FROM orders
|
|
26
|
-
WHERE user_id = 123 AND created_at > '2025-01-01';
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Index Types:**
|
|
30
|
-
- **B-tree** - Default, general-purpose (equality, range queries)
|
|
31
|
-
- **Hash** - Fast equality lookups, no range queries
|
|
32
|
-
- **GIN** - Full-text search, JSONB queries
|
|
33
|
-
- **GiST** - Geospatial queries, range types
|
|
34
|
-
|
|
35
|
-
**When NOT to Index:**
|
|
36
|
-
- Small tables (<1000 rows)
|
|
37
|
-
- Frequently updated columns
|
|
38
|
-
- Low-cardinality columns (e.g., boolean with 2 values)
|
|
39
|
-
|
|
40
|
-
### Connection Pooling
|
|
41
|
-
|
|
42
|
-
**Impact:** 5-10x performance improvement
|
|
43
|
-
|
|
44
|
-
```typescript
|
|
45
|
-
// PostgreSQL with pg-pool
|
|
46
|
-
import { Pool } from 'pg';
|
|
47
|
-
|
|
48
|
-
const pool = new Pool({
|
|
49
|
-
host: process.env.DB_HOST,
|
|
50
|
-
database: process.env.DB_NAME,
|
|
51
|
-
user: process.env.DB_USER,
|
|
52
|
-
password: process.env.DB_PASSWORD,
|
|
53
|
-
max: 20, // Maximum connections
|
|
54
|
-
min: 5, // Minimum connections
|
|
55
|
-
idleTimeoutMillis: 30000, // Close idle connections after 30s
|
|
56
|
-
connectionTimeoutMillis: 2000, // Error if can't connect in 2s
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// Use pool for queries
|
|
60
|
-
const result = await pool.query('SELECT * FROM users WHERE id = $1', [userId]);
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Recommended Pool Sizes:**
|
|
64
|
-
- **Web servers:** `connections = (core_count * 2) + effective_spindle_count`
|
|
65
|
-
- **Typical:** 20-30 connections per app instance
|
|
66
|
-
- **Monitor:** Connection saturation in production
|
|
67
|
-
|
|
68
|
-
### N+1 Query Problem
|
|
69
|
-
|
|
70
|
-
**Bad: N+1 queries**
|
|
71
|
-
```typescript
|
|
72
|
-
// Fetches 1 query for posts, then N queries for authors
|
|
73
|
-
const posts = await Post.findAll();
|
|
74
|
-
for (const post of posts) {
|
|
75
|
-
post.author = await User.findById(post.authorId); // N queries!
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Good: Join or eager loading**
|
|
80
|
-
```typescript
|
|
81
|
-
// Single query with JOIN
|
|
82
|
-
const posts = await Post.findAll({
|
|
83
|
-
include: [{ model: User, as: 'author' }],
|
|
84
|
-
});
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Caching Strategies
|
|
88
|
-
|
|
89
|
-
### Redis Caching
|
|
90
|
-
|
|
91
|
-
**Impact:** 90% DB load reduction, 10-100x faster response
|
|
92
|
-
|
|
93
|
-
#### Cache-Aside Pattern (Lazy Loading)
|
|
94
|
-
|
|
95
|
-
```typescript
|
|
96
|
-
async function getUser(userId: string) {
|
|
97
|
-
// Try cache first
|
|
98
|
-
const cached = await redis.get(`user:${userId}`);
|
|
99
|
-
if (cached) return JSON.parse(cached);
|
|
100
|
-
|
|
101
|
-
// Cache miss - fetch from DB
|
|
102
|
-
const user = await db.users.findById(userId);
|
|
103
|
-
|
|
104
|
-
// Store in cache (TTL: 1 hour)
|
|
105
|
-
await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));
|
|
106
|
-
|
|
107
|
-
return user;
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
#### Write-Through Pattern
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
async function updateUser(userId: string, data: UpdateUserDto) {
|
|
115
|
-
// Update database
|
|
116
|
-
const user = await db.users.update(userId, data);
|
|
117
|
-
|
|
118
|
-
// Update cache immediately
|
|
119
|
-
await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));
|
|
120
|
-
|
|
121
|
-
return user;
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
#### Cache Invalidation
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
// Invalidate on update
|
|
129
|
-
async function deleteUser(userId: string) {
|
|
130
|
-
await db.users.delete(userId);
|
|
131
|
-
await redis.del(`user:${userId}`);
|
|
132
|
-
await redis.del(`user:${userId}:posts`); // Invalidate related caches
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Pattern-based invalidation
|
|
136
|
-
await redis.keys('user:*').then(keys => redis.del(...keys));
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Cache Layers
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
Client
|
|
143
|
-
→ CDN Cache (static assets, 50%+ latency reduction)
|
|
144
|
-
→ API Gateway Cache (public endpoints)
|
|
145
|
-
→ Application Cache (Redis)
|
|
146
|
-
→ Database Query Cache
|
|
147
|
-
→ Database
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### Cache Best Practices
|
|
151
|
-
|
|
152
|
-
1. **Cache frequently accessed data** - User profiles, config, product catalogs
|
|
153
|
-
2. **Set appropriate TTL** - Balance freshness vs performance
|
|
154
|
-
3. **Invalidate on write** - Keep cache consistent
|
|
155
|
-
4. **Use cache keys wisely** - `resource:id:attribute` pattern
|
|
156
|
-
5. **Monitor hit rates** - Target >80% hit rate
|
|
157
|
-
|
|
158
|
-
## Load Balancing
|
|
159
|
-
|
|
160
|
-
### Algorithms
|
|
161
|
-
|
|
162
|
-
**Round Robin** - Distribute evenly across servers
|
|
163
|
-
```nginx
|
|
164
|
-
upstream backend {
|
|
165
|
-
server backend1.example.com;
|
|
166
|
-
server backend2.example.com;
|
|
167
|
-
server backend3.example.com;
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Least Connections** - Route to server with fewest connections
|
|
172
|
-
```nginx
|
|
173
|
-
upstream backend {
|
|
174
|
-
least_conn;
|
|
175
|
-
server backend1.example.com;
|
|
176
|
-
server backend2.example.com;
|
|
177
|
-
}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**IP Hash** - Same client → same server (session affinity)
|
|
181
|
-
```nginx
|
|
182
|
-
upstream backend {
|
|
183
|
-
ip_hash;
|
|
184
|
-
server backend1.example.com;
|
|
185
|
-
server backend2.example.com;
|
|
186
|
-
}
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### Health Checks
|
|
190
|
-
|
|
191
|
-
```typescript
|
|
192
|
-
// Express health check endpoint
|
|
193
|
-
app.get('/health', async (req, res) => {
|
|
194
|
-
const checks = {
|
|
195
|
-
uptime: process.uptime(),
|
|
196
|
-
timestamp: Date.now(),
|
|
197
|
-
database: await checkDatabase(),
|
|
198
|
-
redis: await checkRedis(),
|
|
199
|
-
memory: process.memoryUsage(),
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
const isHealthy = checks.database && checks.redis;
|
|
203
|
-
res.status(isHealthy ? 200 : 503).json(checks);
|
|
204
|
-
});
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## Asynchronous Processing
|
|
208
|
-
|
|
209
|
-
### Message Queues for Long-Running Tasks
|
|
210
|
-
|
|
211
|
-
```typescript
|
|
212
|
-
// Producer - Add job to queue
|
|
213
|
-
import Queue from 'bull';
|
|
214
|
-
|
|
215
|
-
const emailQueue = new Queue('email', {
|
|
216
|
-
redis: { host: 'localhost', port: 6379 },
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
await emailQueue.add('send-welcome', {
|
|
220
|
-
userId: user.id,
|
|
221
|
-
email: user.email,
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
// Consumer - Process jobs
|
|
225
|
-
emailQueue.process('send-welcome', async (job) => {
|
|
226
|
-
await sendWelcomeEmail(job.data.email);
|
|
227
|
-
});
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**Use Cases:**
|
|
231
|
-
- Email sending
|
|
232
|
-
- Image/video processing
|
|
233
|
-
- Report generation
|
|
234
|
-
- Data export
|
|
235
|
-
- Webhook delivery
|
|
236
|
-
|
|
237
|
-
## CDN (Content Delivery Network)
|
|
238
|
-
|
|
239
|
-
**Impact:** 50%+ latency reduction for global users
|
|
240
|
-
|
|
241
|
-
### Configuration
|
|
242
|
-
|
|
243
|
-
```typescript
|
|
244
|
-
// Cache-Control headers
|
|
245
|
-
res.setHeader('Cache-Control', 'public, max-age=31536000, immutable'); // Static assets
|
|
246
|
-
res.setHeader('Cache-Control', 'public, max-age=3600'); // API responses
|
|
247
|
-
res.setHeader('Cache-Control', 'private, no-cache'); // User-specific data
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
**CDN Providers:**
|
|
251
|
-
- Cloudflare (generous free tier, global coverage)
|
|
252
|
-
- AWS CloudFront (AWS integration)
|
|
253
|
-
- Fastly (real-time purging)
|
|
254
|
-
|
|
255
|
-
## Horizontal vs Vertical Scaling
|
|
256
|
-
|
|
257
|
-
### Horizontal Scaling (Scale Out)
|
|
258
|
-
|
|
259
|
-
**Pros:**
|
|
260
|
-
- Better fault tolerance
|
|
261
|
-
- Unlimited scaling potential
|
|
262
|
-
- Cost-effective (commodity hardware)
|
|
263
|
-
|
|
264
|
-
**Cons:**
|
|
265
|
-
- Complex architecture
|
|
266
|
-
- Data consistency challenges
|
|
267
|
-
- Network overhead
|
|
268
|
-
|
|
269
|
-
**When to use:** High traffic, need redundancy, stateless applications
|
|
270
|
-
|
|
271
|
-
### Vertical Scaling (Scale Up)
|
|
272
|
-
|
|
273
|
-
**Pros:**
|
|
274
|
-
- Simple architecture
|
|
275
|
-
- No code changes needed
|
|
276
|
-
- Easier data consistency
|
|
277
|
-
|
|
278
|
-
**Cons:**
|
|
279
|
-
- Hardware limits
|
|
280
|
-
- Single point of failure
|
|
281
|
-
- Expensive at high end
|
|
282
|
-
|
|
283
|
-
**When to use:** Monolithic apps, rapid scaling needed, data consistency critical
|
|
284
|
-
|
|
285
|
-
## Database Scaling Patterns
|
|
286
|
-
|
|
287
|
-
### Read Replicas
|
|
288
|
-
|
|
289
|
-
```
|
|
290
|
-
Primary (Write) → Replica 1 (Read)
|
|
291
|
-
→ Replica 2 (Read)
|
|
292
|
-
→ Replica 3 (Read)
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
**Implementation:**
|
|
296
|
-
```typescript
|
|
297
|
-
// Write to primary
|
|
298
|
-
await primaryDb.users.create(userData);
|
|
299
|
-
|
|
300
|
-
// Read from replica
|
|
301
|
-
const users = await replicaDb.users.findAll();
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**Use Cases:**
|
|
305
|
-
- Read-heavy workloads (90%+ reads)
|
|
306
|
-
- Analytics queries
|
|
307
|
-
- Reporting dashboards
|
|
308
|
-
|
|
309
|
-
### Database Sharding
|
|
310
|
-
|
|
311
|
-
**Horizontal Partitioning** - Split data across databases
|
|
312
|
-
|
|
313
|
-
```typescript
|
|
314
|
-
// Shard by user ID
|
|
315
|
-
function getShardId(userId: string): number {
|
|
316
|
-
return hashCode(userId) % SHARD_COUNT;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
const shardId = getShardId(userId);
|
|
320
|
-
const db = shards[shardId];
|
|
321
|
-
const user = await db.users.findById(userId);
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
**Sharding Strategies:**
|
|
325
|
-
- **Range-based:** Users 1-1M → Shard 1, 1M-2M → Shard 2
|
|
326
|
-
- **Hash-based:** Hash(userId) % shard_count
|
|
327
|
-
- **Geographic:** EU users → EU shard, US users → US shard
|
|
328
|
-
- **Entity-based:** Users → Shard 1, Orders → Shard 2
|
|
329
|
-
|
|
330
|
-
## Performance Monitoring
|
|
331
|
-
|
|
332
|
-
### Key Metrics
|
|
333
|
-
|
|
334
|
-
**Application:**
|
|
335
|
-
- Response time (p50, p95, p99)
|
|
336
|
-
- Throughput (requests/second)
|
|
337
|
-
- Error rate
|
|
338
|
-
- CPU/memory usage
|
|
339
|
-
|
|
340
|
-
**Database:**
|
|
341
|
-
- Query execution time
|
|
342
|
-
- Connection pool saturation
|
|
343
|
-
- Cache hit rate
|
|
344
|
-
- Slow query log
|
|
345
|
-
|
|
346
|
-
**Tools:**
|
|
347
|
-
- Prometheus + Grafana (metrics)
|
|
348
|
-
- New Relic / Datadog (APM)
|
|
349
|
-
- Sentry (error tracking)
|
|
350
|
-
- OpenTelemetry (distributed tracing)
|
|
351
|
-
|
|
352
|
-
## Performance Optimization Checklist
|
|
353
|
-
|
|
354
|
-
### Database
|
|
355
|
-
- [ ] Indexes on frequently queried columns
|
|
356
|
-
- [ ] Connection pooling configured
|
|
357
|
-
- [ ] N+1 queries eliminated
|
|
358
|
-
- [ ] Slow query log monitored
|
|
359
|
-
- [ ] Query execution plans analyzed
|
|
360
|
-
|
|
361
|
-
### Caching
|
|
362
|
-
- [ ] Redis cache for hot data
|
|
363
|
-
- [ ] Cache TTL configured appropriately
|
|
364
|
-
- [ ] Cache invalidation on writes
|
|
365
|
-
- [ ] CDN for static assets
|
|
366
|
-
- [ ] >80% cache hit rate achieved
|
|
367
|
-
|
|
368
|
-
### Application
|
|
369
|
-
- [ ] Async processing for long tasks
|
|
370
|
-
- [ ] Response compression enabled (gzip)
|
|
371
|
-
- [ ] Load balancing configured
|
|
372
|
-
- [ ] Health checks implemented
|
|
373
|
-
- [ ] Resource limits set (CPU, memory)
|
|
374
|
-
|
|
375
|
-
### Monitoring
|
|
376
|
-
- [ ] APM tool configured (New Relic/Datadog)
|
|
377
|
-
- [ ] Error tracking (Sentry)
|
|
378
|
-
- [ ] Performance dashboards (Grafana)
|
|
379
|
-
- [ ] Alerting on key metrics
|
|
380
|
-
- [ ] Distributed tracing for microservices
|
|
381
|
-
|
|
382
|
-
## Common Performance Pitfalls
|
|
383
|
-
|
|
384
|
-
1. **No caching** - Repeatedly querying same data
|
|
385
|
-
2. **Missing indexes** - Full table scans
|
|
386
|
-
3. **N+1 queries** - Fetching related data in loops
|
|
387
|
-
4. **Synchronous processing** - Blocking on long tasks
|
|
388
|
-
5. **No connection pooling** - Creating new connections per request
|
|
389
|
-
6. **Unbounded queries** - No LIMIT on large tables
|
|
390
|
-
7. **No CDN** - Serving static assets from origin
|
|
391
|
-
|
|
392
|
-
## Resources
|
|
393
|
-
|
|
394
|
-
- **PostgreSQL Performance:** https://www.postgresql.org/docs/current/performance-tips.html
|
|
395
|
-
- **Redis Best Practices:** https://redis.io/docs/management/optimization/
|
|
396
|
-
- **Web Performance:** https://web.dev/performance/
|
|
397
|
-
- **Database Indexing:** https://use-the-index-luke.com/
|
|
1
|
+
# Backend Performance & Scalability
|
|
2
|
+
|
|
3
|
+
Performance optimization strategies, caching patterns, and scalability best practices (2025).
|
|
4
|
+
|
|
5
|
+
## Database Performance
|
|
6
|
+
|
|
7
|
+
### Query Optimization
|
|
8
|
+
|
|
9
|
+
#### Indexing Strategies
|
|
10
|
+
|
|
11
|
+
**Impact:** 30% disk I/O reduction, 10-100x query speedup
|
|
12
|
+
|
|
13
|
+
```sql
|
|
14
|
+
-- Create index on frequently queried columns
|
|
15
|
+
CREATE INDEX idx_users_email ON users(email);
|
|
16
|
+
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
17
|
+
|
|
18
|
+
-- Composite index for multi-column queries
|
|
19
|
+
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);
|
|
20
|
+
|
|
21
|
+
-- Partial index for filtered queries
|
|
22
|
+
CREATE INDEX idx_active_users ON users(email) WHERE active = true;
|
|
23
|
+
|
|
24
|
+
-- Analyze query performance
|
|
25
|
+
EXPLAIN ANALYZE SELECT * FROM orders
|
|
26
|
+
WHERE user_id = 123 AND created_at > '2025-01-01';
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Index Types:**
|
|
30
|
+
- **B-tree** - Default, general-purpose (equality, range queries)
|
|
31
|
+
- **Hash** - Fast equality lookups, no range queries
|
|
32
|
+
- **GIN** - Full-text search, JSONB queries
|
|
33
|
+
- **GiST** - Geospatial queries, range types
|
|
34
|
+
|
|
35
|
+
**When NOT to Index:**
|
|
36
|
+
- Small tables (<1000 rows)
|
|
37
|
+
- Frequently updated columns
|
|
38
|
+
- Low-cardinality columns (e.g., boolean with 2 values)
|
|
39
|
+
|
|
40
|
+
### Connection Pooling
|
|
41
|
+
|
|
42
|
+
**Impact:** 5-10x performance improvement
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// PostgreSQL with pg-pool
|
|
46
|
+
import { Pool } from 'pg';
|
|
47
|
+
|
|
48
|
+
const pool = new Pool({
|
|
49
|
+
host: process.env.DB_HOST,
|
|
50
|
+
database: process.env.DB_NAME,
|
|
51
|
+
user: process.env.DB_USER,
|
|
52
|
+
password: process.env.DB_PASSWORD,
|
|
53
|
+
max: 20, // Maximum connections
|
|
54
|
+
min: 5, // Minimum connections
|
|
55
|
+
idleTimeoutMillis: 30000, // Close idle connections after 30s
|
|
56
|
+
connectionTimeoutMillis: 2000, // Error if can't connect in 2s
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// Use pool for queries
|
|
60
|
+
const result = await pool.query('SELECT * FROM users WHERE id = $1', [userId]);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Recommended Pool Sizes:**
|
|
64
|
+
- **Web servers:** `connections = (core_count * 2) + effective_spindle_count`
|
|
65
|
+
- **Typical:** 20-30 connections per app instance
|
|
66
|
+
- **Monitor:** Connection saturation in production
|
|
67
|
+
|
|
68
|
+
### N+1 Query Problem
|
|
69
|
+
|
|
70
|
+
**Bad: N+1 queries**
|
|
71
|
+
```typescript
|
|
72
|
+
// Fetches 1 query for posts, then N queries for authors
|
|
73
|
+
const posts = await Post.findAll();
|
|
74
|
+
for (const post of posts) {
|
|
75
|
+
post.author = await User.findById(post.authorId); // N queries!
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Good: Join or eager loading**
|
|
80
|
+
```typescript
|
|
81
|
+
// Single query with JOIN
|
|
82
|
+
const posts = await Post.findAll({
|
|
83
|
+
include: [{ model: User, as: 'author' }],
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Caching Strategies
|
|
88
|
+
|
|
89
|
+
### Redis Caching
|
|
90
|
+
|
|
91
|
+
**Impact:** 90% DB load reduction, 10-100x faster response
|
|
92
|
+
|
|
93
|
+
#### Cache-Aside Pattern (Lazy Loading)
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
async function getUser(userId: string) {
|
|
97
|
+
// Try cache first
|
|
98
|
+
const cached = await redis.get(`user:${userId}`);
|
|
99
|
+
if (cached) return JSON.parse(cached);
|
|
100
|
+
|
|
101
|
+
// Cache miss - fetch from DB
|
|
102
|
+
const user = await db.users.findById(userId);
|
|
103
|
+
|
|
104
|
+
// Store in cache (TTL: 1 hour)
|
|
105
|
+
await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));
|
|
106
|
+
|
|
107
|
+
return user;
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
#### Write-Through Pattern
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
async function updateUser(userId: string, data: UpdateUserDto) {
|
|
115
|
+
// Update database
|
|
116
|
+
const user = await db.users.update(userId, data);
|
|
117
|
+
|
|
118
|
+
// Update cache immediately
|
|
119
|
+
await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));
|
|
120
|
+
|
|
121
|
+
return user;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### Cache Invalidation
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
// Invalidate on update
|
|
129
|
+
async function deleteUser(userId: string) {
|
|
130
|
+
await db.users.delete(userId);
|
|
131
|
+
await redis.del(`user:${userId}`);
|
|
132
|
+
await redis.del(`user:${userId}:posts`); // Invalidate related caches
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Pattern-based invalidation
|
|
136
|
+
await redis.keys('user:*').then(keys => redis.del(...keys));
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Cache Layers
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Client
|
|
143
|
+
→ CDN Cache (static assets, 50%+ latency reduction)
|
|
144
|
+
→ API Gateway Cache (public endpoints)
|
|
145
|
+
→ Application Cache (Redis)
|
|
146
|
+
→ Database Query Cache
|
|
147
|
+
→ Database
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Cache Best Practices
|
|
151
|
+
|
|
152
|
+
1. **Cache frequently accessed data** - User profiles, config, product catalogs
|
|
153
|
+
2. **Set appropriate TTL** - Balance freshness vs performance
|
|
154
|
+
3. **Invalidate on write** - Keep cache consistent
|
|
155
|
+
4. **Use cache keys wisely** - `resource:id:attribute` pattern
|
|
156
|
+
5. **Monitor hit rates** - Target >80% hit rate
|
|
157
|
+
|
|
158
|
+
## Load Balancing
|
|
159
|
+
|
|
160
|
+
### Algorithms
|
|
161
|
+
|
|
162
|
+
**Round Robin** - Distribute evenly across servers
|
|
163
|
+
```nginx
|
|
164
|
+
upstream backend {
|
|
165
|
+
server backend1.example.com;
|
|
166
|
+
server backend2.example.com;
|
|
167
|
+
server backend3.example.com;
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Least Connections** - Route to server with fewest connections
|
|
172
|
+
```nginx
|
|
173
|
+
upstream backend {
|
|
174
|
+
least_conn;
|
|
175
|
+
server backend1.example.com;
|
|
176
|
+
server backend2.example.com;
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**IP Hash** - Same client → same server (session affinity)
|
|
181
|
+
```nginx
|
|
182
|
+
upstream backend {
|
|
183
|
+
ip_hash;
|
|
184
|
+
server backend1.example.com;
|
|
185
|
+
server backend2.example.com;
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Health Checks
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
// Express health check endpoint
|
|
193
|
+
app.get('/health', async (req, res) => {
|
|
194
|
+
const checks = {
|
|
195
|
+
uptime: process.uptime(),
|
|
196
|
+
timestamp: Date.now(),
|
|
197
|
+
database: await checkDatabase(),
|
|
198
|
+
redis: await checkRedis(),
|
|
199
|
+
memory: process.memoryUsage(),
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
const isHealthy = checks.database && checks.redis;
|
|
203
|
+
res.status(isHealthy ? 200 : 503).json(checks);
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Asynchronous Processing
|
|
208
|
+
|
|
209
|
+
### Message Queues for Long-Running Tasks
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
// Producer - Add job to queue
|
|
213
|
+
import Queue from 'bull';
|
|
214
|
+
|
|
215
|
+
const emailQueue = new Queue('email', {
|
|
216
|
+
redis: { host: 'localhost', port: 6379 },
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
await emailQueue.add('send-welcome', {
|
|
220
|
+
userId: user.id,
|
|
221
|
+
email: user.email,
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
// Consumer - Process jobs
|
|
225
|
+
emailQueue.process('send-welcome', async (job) => {
|
|
226
|
+
await sendWelcomeEmail(job.data.email);
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Use Cases:**
|
|
231
|
+
- Email sending
|
|
232
|
+
- Image/video processing
|
|
233
|
+
- Report generation
|
|
234
|
+
- Data export
|
|
235
|
+
- Webhook delivery
|
|
236
|
+
|
|
237
|
+
## CDN (Content Delivery Network)
|
|
238
|
+
|
|
239
|
+
**Impact:** 50%+ latency reduction for global users
|
|
240
|
+
|
|
241
|
+
### Configuration
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
// Cache-Control headers
|
|
245
|
+
res.setHeader('Cache-Control', 'public, max-age=31536000, immutable'); // Static assets
|
|
246
|
+
res.setHeader('Cache-Control', 'public, max-age=3600'); // API responses
|
|
247
|
+
res.setHeader('Cache-Control', 'private, no-cache'); // User-specific data
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**CDN Providers:**
|
|
251
|
+
- Cloudflare (generous free tier, global coverage)
|
|
252
|
+
- AWS CloudFront (AWS integration)
|
|
253
|
+
- Fastly (real-time purging)
|
|
254
|
+
|
|
255
|
+
## Horizontal vs Vertical Scaling
|
|
256
|
+
|
|
257
|
+
### Horizontal Scaling (Scale Out)
|
|
258
|
+
|
|
259
|
+
**Pros:**
|
|
260
|
+
- Better fault tolerance
|
|
261
|
+
- Unlimited scaling potential
|
|
262
|
+
- Cost-effective (commodity hardware)
|
|
263
|
+
|
|
264
|
+
**Cons:**
|
|
265
|
+
- Complex architecture
|
|
266
|
+
- Data consistency challenges
|
|
267
|
+
- Network overhead
|
|
268
|
+
|
|
269
|
+
**When to use:** High traffic, need redundancy, stateless applications
|
|
270
|
+
|
|
271
|
+
### Vertical Scaling (Scale Up)
|
|
272
|
+
|
|
273
|
+
**Pros:**
|
|
274
|
+
- Simple architecture
|
|
275
|
+
- No code changes needed
|
|
276
|
+
- Easier data consistency
|
|
277
|
+
|
|
278
|
+
**Cons:**
|
|
279
|
+
- Hardware limits
|
|
280
|
+
- Single point of failure
|
|
281
|
+
- Expensive at high end
|
|
282
|
+
|
|
283
|
+
**When to use:** Monolithic apps, rapid scaling needed, data consistency critical
|
|
284
|
+
|
|
285
|
+
## Database Scaling Patterns
|
|
286
|
+
|
|
287
|
+
### Read Replicas
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
Primary (Write) → Replica 1 (Read)
|
|
291
|
+
→ Replica 2 (Read)
|
|
292
|
+
→ Replica 3 (Read)
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Implementation:**
|
|
296
|
+
```typescript
|
|
297
|
+
// Write to primary
|
|
298
|
+
await primaryDb.users.create(userData);
|
|
299
|
+
|
|
300
|
+
// Read from replica
|
|
301
|
+
const users = await replicaDb.users.findAll();
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Use Cases:**
|
|
305
|
+
- Read-heavy workloads (90%+ reads)
|
|
306
|
+
- Analytics queries
|
|
307
|
+
- Reporting dashboards
|
|
308
|
+
|
|
309
|
+
### Database Sharding
|
|
310
|
+
|
|
311
|
+
**Horizontal Partitioning** - Split data across databases
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
// Shard by user ID
|
|
315
|
+
function getShardId(userId: string): number {
|
|
316
|
+
return hashCode(userId) % SHARD_COUNT;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
const shardId = getShardId(userId);
|
|
320
|
+
const db = shards[shardId];
|
|
321
|
+
const user = await db.users.findById(userId);
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Sharding Strategies:**
|
|
325
|
+
- **Range-based:** Users 1-1M → Shard 1, 1M-2M → Shard 2
|
|
326
|
+
- **Hash-based:** Hash(userId) % shard_count
|
|
327
|
+
- **Geographic:** EU users → EU shard, US users → US shard
|
|
328
|
+
- **Entity-based:** Users → Shard 1, Orders → Shard 2
|
|
329
|
+
|
|
330
|
+
## Performance Monitoring
|
|
331
|
+
|
|
332
|
+
### Key Metrics
|
|
333
|
+
|
|
334
|
+
**Application:**
|
|
335
|
+
- Response time (p50, p95, p99)
|
|
336
|
+
- Throughput (requests/second)
|
|
337
|
+
- Error rate
|
|
338
|
+
- CPU/memory usage
|
|
339
|
+
|
|
340
|
+
**Database:**
|
|
341
|
+
- Query execution time
|
|
342
|
+
- Connection pool saturation
|
|
343
|
+
- Cache hit rate
|
|
344
|
+
- Slow query log
|
|
345
|
+
|
|
346
|
+
**Tools:**
|
|
347
|
+
- Prometheus + Grafana (metrics)
|
|
348
|
+
- New Relic / Datadog (APM)
|
|
349
|
+
- Sentry (error tracking)
|
|
350
|
+
- OpenTelemetry (distributed tracing)
|
|
351
|
+
|
|
352
|
+
## Performance Optimization Checklist
|
|
353
|
+
|
|
354
|
+
### Database
|
|
355
|
+
- [ ] Indexes on frequently queried columns
|
|
356
|
+
- [ ] Connection pooling configured
|
|
357
|
+
- [ ] N+1 queries eliminated
|
|
358
|
+
- [ ] Slow query log monitored
|
|
359
|
+
- [ ] Query execution plans analyzed
|
|
360
|
+
|
|
361
|
+
### Caching
|
|
362
|
+
- [ ] Redis cache for hot data
|
|
363
|
+
- [ ] Cache TTL configured appropriately
|
|
364
|
+
- [ ] Cache invalidation on writes
|
|
365
|
+
- [ ] CDN for static assets
|
|
366
|
+
- [ ] >80% cache hit rate achieved
|
|
367
|
+
|
|
368
|
+
### Application
|
|
369
|
+
- [ ] Async processing for long tasks
|
|
370
|
+
- [ ] Response compression enabled (gzip)
|
|
371
|
+
- [ ] Load balancing configured
|
|
372
|
+
- [ ] Health checks implemented
|
|
373
|
+
- [ ] Resource limits set (CPU, memory)
|
|
374
|
+
|
|
375
|
+
### Monitoring
|
|
376
|
+
- [ ] APM tool configured (New Relic/Datadog)
|
|
377
|
+
- [ ] Error tracking (Sentry)
|
|
378
|
+
- [ ] Performance dashboards (Grafana)
|
|
379
|
+
- [ ] Alerting on key metrics
|
|
380
|
+
- [ ] Distributed tracing for microservices
|
|
381
|
+
|
|
382
|
+
## Common Performance Pitfalls
|
|
383
|
+
|
|
384
|
+
1. **No caching** - Repeatedly querying same data
|
|
385
|
+
2. **Missing indexes** - Full table scans
|
|
386
|
+
3. **N+1 queries** - Fetching related data in loops
|
|
387
|
+
4. **Synchronous processing** - Blocking on long tasks
|
|
388
|
+
5. **No connection pooling** - Creating new connections per request
|
|
389
|
+
6. **Unbounded queries** - No LIMIT on large tables
|
|
390
|
+
7. **No CDN** - Serving static assets from origin
|
|
391
|
+
|
|
392
|
+
## Resources
|
|
393
|
+
|
|
394
|
+
- **PostgreSQL Performance:** https://www.postgresql.org/docs/current/performance-tips.html
|
|
395
|
+
- **Redis Best Practices:** https://redis.io/docs/management/optimization/
|
|
396
|
+
- **Web Performance:** https://web.dev/performance/
|
|
397
|
+
- **Database Indexing:** https://use-the-index-luke.com/
|