@macpaw/cctk 1.0.0-beta.1
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 +21 -0
- package/README.md +142 -0
- package/bin/index.js +5 -0
- package/dist/index.js +1 -0
- package/package.json +65 -0
- package/templates/claude/agents/brainstormer.md +113 -0
- package/templates/claude/agents/code-reviewer.md +157 -0
- package/templates/claude/agents/copywriter.md +110 -0
- package/templates/claude/agents/database-admin.md +92 -0
- package/templates/claude/agents/debugger.md +137 -0
- package/templates/claude/agents/docs-manager.md +208 -0
- package/templates/claude/agents/fullstack-developer.md +95 -0
- package/templates/claude/agents/git-manager.md +394 -0
- package/templates/claude/agents/journal-writer.md +113 -0
- package/templates/claude/agents/mcp-manager.md +89 -0
- package/templates/claude/agents/planner.md +108 -0
- package/templates/claude/agents/project-manager.md +125 -0
- package/templates/claude/agents/registry.json +304 -0
- package/templates/claude/agents/researcher.md +37 -0
- package/templates/claude/agents/scout-external.md +140 -0
- package/templates/claude/agents/scout.md +106 -0
- package/templates/claude/agents/tester.md +105 -0
- package/templates/claude/agents/ui-ux-designer.md +208 -0
- package/templates/claude/commands/ask.md +56 -0
- package/templates/claude/commands/bootstrap/auto/fast.md +106 -0
- package/templates/claude/commands/bootstrap/auto/parallel.md +64 -0
- package/templates/claude/commands/bootstrap/auto.md +110 -0
- package/templates/claude/commands/bootstrap.md +130 -0
- package/templates/claude/commands/brainstorm.md +75 -0
- package/templates/claude/commands/code/auto.md +198 -0
- package/templates/claude/commands/code/no-test.md +172 -0
- package/templates/claude/commands/code/parallel.md +100 -0
- package/templates/claude/commands/code.md +197 -0
- package/templates/claude/commands/coding-level.md +37 -0
- package/templates/claude/commands/content/cro.md +41 -0
- package/templates/claude/commands/content/enhance.md +12 -0
- package/templates/claude/commands/content/fast.md +11 -0
- package/templates/claude/commands/content/good.md +14 -0
- package/templates/claude/commands/cook/auto/fast.md +26 -0
- package/templates/claude/commands/cook/auto/parallel.md +49 -0
- package/templates/claude/commands/cook/auto.md +15 -0
- package/templates/claude/commands/cook.md +101 -0
- package/templates/claude/commands/debug.md +13 -0
- package/templates/claude/commands/docs/init.md +37 -0
- package/templates/claude/commands/docs/summarize.md +22 -0
- package/templates/claude/commands/docs/update.md +78 -0
- package/templates/claude/commands/fix/ci.md +17 -0
- package/templates/claude/commands/fix/fast.md +18 -0
- package/templates/claude/commands/fix/hard.md +35 -0
- package/templates/claude/commands/fix/logs.md +26 -0
- package/templates/claude/commands/fix/parallel.md +54 -0
- package/templates/claude/commands/fix/test.md +20 -0
- package/templates/claude/commands/fix/types.md +9 -0
- package/templates/claude/commands/fix/ui.md +33 -0
- package/templates/claude/commands/fix.md +43 -0
- package/templates/claude/commands/git/cm.md +5 -0
- package/templates/claude/commands/git/cp.md +4 -0
- package/templates/claude/commands/git/merge.md +40 -0
- package/templates/claude/commands/git/pr.md +50 -0
- package/templates/claude/commands/journal.md +7 -0
- package/templates/claude/commands/kanban.md +99 -0
- package/templates/claude/commands/plan/archive.md +57 -0
- package/templates/claude/commands/plan/ci.md +33 -0
- package/templates/claude/commands/plan/cro.md +67 -0
- package/templates/claude/commands/plan/fast.md +66 -0
- package/templates/claude/commands/plan/hard.md +92 -0
- package/templates/claude/commands/plan/parallel.md +129 -0
- package/templates/claude/commands/plan/two.md +45 -0
- package/templates/claude/commands/plan/validate.md +117 -0
- package/templates/claude/commands/plan.md +30 -0
- package/templates/claude/commands/preview.md +87 -0
- package/templates/claude/commands/registry.json +313 -0
- package/templates/claude/commands/review/codebase/parallel.md +122 -0
- package/templates/claude/commands/review/codebase.md +47 -0
- package/templates/claude/commands/scout/ext.md +35 -0
- package/templates/claude/commands/scout.md +28 -0
- package/templates/claude/commands/skill/add.md +36 -0
- package/templates/claude/commands/skill/create.md +29 -0
- package/templates/claude/commands/skill/fix-logs.md +22 -0
- package/templates/claude/commands/skill/optimize/auto.md +25 -0
- package/templates/claude/commands/skill/optimize.md +34 -0
- package/templates/claude/commands/skill/plan.md +45 -0
- package/templates/claude/commands/test/ui.md +91 -0
- package/templates/claude/commands/test.md +8 -0
- package/templates/claude/commands/use-mcp.md +34 -0
- package/templates/claude/commands/watzup.md +8 -0
- package/templates/claude/commands/worktree.md +126 -0
- package/templates/claude/hooks/dev-rules-reminder.cjs +258 -0
- package/templates/claude/hooks/docs/README.md +42 -0
- package/templates/claude/hooks/lib/cctk-config-utils.cjs +751 -0
- package/templates/claude/hooks/lib/cctk-paths.cjs +106 -0
- package/templates/claude/hooks/lib/context-tracker.cjs +346 -0
- package/templates/claude/hooks/privacy-block.cjs +289 -0
- package/templates/claude/hooks/registry.json +77 -0
- package/templates/claude/hooks/scout-block/broad-pattern-detector.cjs +293 -0
- package/templates/claude/hooks/scout-block/error-formatter.cjs +156 -0
- package/templates/claude/hooks/scout-block/path-extractor.cjs +359 -0
- package/templates/claude/hooks/scout-block/pattern-matcher.cjs +184 -0
- package/templates/claude/hooks/scout-block/vendor/ignore.js +626 -0
- package/templates/claude/hooks/scout-block.cjs +167 -0
- package/templates/claude/hooks/session-end.cjs +35 -0
- package/templates/claude/hooks/session-init.cjs +214 -0
- package/templates/claude/hooks/subagent-init.cjs +161 -0
- package/templates/claude/hooks/write-compact-marker.cjs +153 -0
- package/templates/claude/output-styles/coding-level-1.md +148 -0
- package/templates/claude/output-styles/coding-level-2.md +159 -0
- package/templates/claude/output-styles/coding-level-3.md +91 -0
- package/templates/claude/scripts/README.md +33 -0
- package/templates/claude/scripts/generate-catalogs.cjs +318 -0
- package/templates/claude/scripts/registry.json +48 -0
- package/templates/claude/scripts/set-active-plan.cjs +45 -0
- package/templates/claude/scripts/validate-docs.cjs +447 -0
- package/templates/claude/scripts/worktree.cjs +658 -0
- package/templates/claude/skills/README.md +112 -0
- package/templates/claude/skills/ai-artist/SKILL.md +75 -0
- package/templates/claude/skills/ai-artist/references/advanced-techniques.md +184 -0
- package/templates/claude/skills/ai-artist/references/domain-code.md +66 -0
- package/templates/claude/skills/ai-artist/references/domain-data.md +72 -0
- package/templates/claude/skills/ai-artist/references/domain-marketing.md +66 -0
- package/templates/claude/skills/ai-artist/references/domain-patterns.md +33 -0
- package/templates/claude/skills/ai-artist/references/domain-writing.md +68 -0
- package/templates/claude/skills/ai-artist/references/image-prompting.md +141 -0
- package/templates/claude/skills/ai-artist/references/llm-prompting.md +165 -0
- package/templates/claude/skills/ai-artist/references/nano-banana.md +59 -0
- package/templates/claude/skills/ai-artist/references/reasoning-techniques.md +201 -0
- package/templates/claude/skills/backend-development/SKILL.md +95 -0
- package/templates/claude/skills/backend-development/references/backend-api-design.md +495 -0
- package/templates/claude/skills/backend-development/references/backend-architecture.md +454 -0
- package/templates/claude/skills/backend-development/references/backend-authentication.md +338 -0
- package/templates/claude/skills/backend-development/references/backend-code-quality.md +659 -0
- package/templates/claude/skills/backend-development/references/backend-debugging.md +904 -0
- package/templates/claude/skills/backend-development/references/backend-devops.md +494 -0
- package/templates/claude/skills/backend-development/references/backend-mindset.md +387 -0
- package/templates/claude/skills/backend-development/references/backend-performance.md +397 -0
- package/templates/claude/skills/backend-development/references/backend-security.md +290 -0
- package/templates/claude/skills/backend-development/references/backend-technologies.md +256 -0
- package/templates/claude/skills/backend-development/references/backend-testing.md +429 -0
- package/templates/claude/skills/better-auth/SKILL.md +204 -0
- package/templates/claude/skills/better-auth/references/advanced-features.md +553 -0
- package/templates/claude/skills/better-auth/references/database-integration.md +577 -0
- package/templates/claude/skills/better-auth/references/email-password-auth.md +416 -0
- package/templates/claude/skills/better-auth/references/oauth-providers.md +430 -0
- package/templates/claude/skills/better-auth/scripts/better_auth_init.py +521 -0
- package/templates/claude/skills/chrome-devtools/SKILL.md +473 -0
- package/templates/claude/skills/chrome-devtools/references/cdp-domains.md +694 -0
- package/templates/claude/skills/chrome-devtools/references/performance-guide.md +940 -0
- package/templates/claude/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
- package/templates/claude/skills/chrome-devtools/scripts/README.md +288 -0
- package/templates/claude/skills/chrome-devtools/scripts/aria-snapshot.js +368 -0
- package/templates/claude/skills/chrome-devtools/scripts/click.js +92 -0
- package/templates/claude/skills/chrome-devtools/scripts/console.js +85 -0
- package/templates/claude/skills/chrome-devtools/scripts/evaluate.js +59 -0
- package/templates/claude/skills/chrome-devtools/scripts/fill.js +84 -0
- package/templates/claude/skills/chrome-devtools/scripts/inject-auth.js +247 -0
- package/templates/claude/skills/chrome-devtools/scripts/install-deps.sh +11 -0
- package/templates/claude/skills/chrome-devtools/scripts/install.sh +36 -0
- package/templates/claude/skills/chrome-devtools/scripts/lib/browser.js +335 -0
- package/templates/claude/skills/chrome-devtools/scripts/lib/selector.js +183 -0
- package/templates/claude/skills/chrome-devtools/scripts/navigate.js +60 -0
- package/templates/claude/skills/chrome-devtools/scripts/network.js +113 -0
- package/templates/claude/skills/chrome-devtools/scripts/package.json +16 -0
- package/templates/claude/skills/chrome-devtools/scripts/performance.js +159 -0
- package/templates/claude/skills/chrome-devtools/scripts/screenshot.js +212 -0
- package/templates/claude/skills/chrome-devtools/scripts/select-ref.js +151 -0
- package/templates/claude/skills/chrome-devtools/scripts/snapshot.js +143 -0
- package/templates/claude/skills/chrome-devtools/scripts/ws-debug.js +47 -0
- package/templates/claude/skills/chrome-devtools/scripts/ws-full-debug.js +115 -0
- package/templates/claude/skills/claude-code/references/advanced-features.md +399 -0
- package/templates/claude/skills/claude-code/references/agent-skills.md +399 -0
- package/templates/claude/skills/claude-code/references/api-reference.md +498 -0
- package/templates/claude/skills/claude-code/references/best-practices.md +447 -0
- package/templates/claude/skills/claude-code/references/cicd-integration.md +428 -0
- package/templates/claude/skills/claude-code/references/common-workflows.md +107 -0
- package/templates/claude/skills/claude-code/references/configuration.md +480 -0
- package/templates/claude/skills/claude-code/references/enterprise-features.md +472 -0
- package/templates/claude/skills/claude-code/references/getting-started.md +244 -0
- package/templates/claude/skills/claude-code/references/hooks-and-plugins.md +444 -0
- package/templates/claude/skills/claude-code/references/hooks-comprehensive.md +622 -0
- package/templates/claude/skills/claude-code/references/ide-integration.md +316 -0
- package/templates/claude/skills/claude-code/references/mcp-integration.md +386 -0
- package/templates/claude/skills/claude-code/references/slash-commands.md +460 -0
- package/templates/claude/skills/claude-code/references/troubleshooting.md +455 -0
- package/templates/claude/skills/claude-code/skill.md +60 -0
- package/templates/claude/skills/code-review/SKILL.md +143 -0
- package/templates/claude/skills/code-review/references/code-review-reception.md +209 -0
- package/templates/claude/skills/code-review/references/requesting-code-review.md +105 -0
- package/templates/claude/skills/code-review/references/verification-before-completion.md +139 -0
- package/templates/claude/skills/context-engineering/SKILL.md +86 -0
- package/templates/claude/skills/context-engineering/references/context-compression.md +84 -0
- package/templates/claude/skills/context-engineering/references/context-degradation.md +93 -0
- package/templates/claude/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/templates/claude/skills/context-engineering/references/context-optimization.md +82 -0
- package/templates/claude/skills/context-engineering/references/evaluation.md +89 -0
- package/templates/claude/skills/context-engineering/references/memory-systems.md +88 -0
- package/templates/claude/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/templates/claude/skills/context-engineering/references/project-development.md +97 -0
- package/templates/claude/skills/context-engineering/references/tool-design.md +86 -0
- package/templates/claude/skills/context-engineering/scripts/compression_evaluator.py +329 -0
- package/templates/claude/skills/context-engineering/scripts/context_analyzer.py +294 -0
- package/templates/claude/skills/databases/SKILL.md +232 -0
- package/templates/claude/skills/databases/references/mongodb-aggregation.md +447 -0
- package/templates/claude/skills/databases/references/mongodb-atlas.md +465 -0
- package/templates/claude/skills/databases/references/mongodb-crud.md +408 -0
- package/templates/claude/skills/databases/references/mongodb-indexing.md +442 -0
- package/templates/claude/skills/databases/references/postgresql-administration.md +594 -0
- package/templates/claude/skills/databases/references/postgresql-performance.md +527 -0
- package/templates/claude/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/templates/claude/skills/databases/references/postgresql-queries.md +475 -0
- package/templates/claude/skills/databases/scripts/db_backup.py +502 -0
- package/templates/claude/skills/databases/scripts/db_migrate.py +414 -0
- package/templates/claude/skills/databases/scripts/db_performance_check.py +445 -0
- package/templates/claude/skills/debugging/SKILL.md +84 -0
- package/templates/claude/skills/debugging/references/defense-in-depth.md +124 -0
- package/templates/claude/skills/debugging/references/root-cause-tracing.md +122 -0
- package/templates/claude/skills/debugging/references/systematic-debugging.md +102 -0
- package/templates/claude/skills/debugging/references/verification.md +123 -0
- package/templates/claude/skills/debugging/scripts/find-polluter.sh +63 -0
- package/templates/claude/skills/debugging/scripts/find-polluter.test.md +102 -0
- package/templates/claude/skills/devops/SKILL.md +293 -0
- package/templates/claude/skills/devops/references/browser-rendering.md +305 -0
- package/templates/claude/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/templates/claude/skills/devops/references/cloudflare-platform.md +271 -0
- package/templates/claude/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/templates/claude/skills/devops/references/docker-basics.md +297 -0
- package/templates/claude/skills/devops/references/docker-compose.md +292 -0
- package/templates/claude/skills/devops/references/gcloud-platform.md +307 -0
- package/templates/claude/skills/devops/references/gcloud-services.md +304 -0
- package/templates/claude/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/templates/claude/skills/devops/scripts/docker_optimize.py +320 -0
- package/templates/claude/skills/docs-seeker/SKILL.md +95 -0
- package/templates/claude/skills/docs-seeker/package.json +24 -0
- package/templates/claude/skills/docs-seeker/references/advanced.md +78 -0
- package/templates/claude/skills/docs-seeker/references/context7-patterns.md +68 -0
- package/templates/claude/skills/docs-seeker/references/errors.md +68 -0
- package/templates/claude/skills/docs-seeker/scripts/analyze-llms-txt.js +245 -0
- package/templates/claude/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/templates/claude/skills/docs-seeker/scripts/fetch-docs.js +212 -0
- package/templates/claude/skills/docs-seeker/workflows/library-search.md +87 -0
- package/templates/claude/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/templates/claude/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/templates/claude/skills/frontend-design/SKILL.md +85 -0
- package/templates/claude/skills/frontend-design/references/analysis-best-practices.md +80 -0
- package/templates/claude/skills/frontend-design/references/analysis-prompts.md +141 -0
- package/templates/claude/skills/frontend-design/references/analysis-techniques.md +118 -0
- package/templates/claude/skills/frontend-design/references/animejs.md +396 -0
- package/templates/claude/skills/frontend-design/references/design-extraction-overview.md +71 -0
- package/templates/claude/skills/frontend-design/references/extraction-best-practices.md +141 -0
- package/templates/claude/skills/frontend-design/references/extraction-output-templates.md +162 -0
- package/templates/claude/skills/frontend-design/references/extraction-prompts.md +127 -0
- package/templates/claude/skills/frontend-design/references/technical-accessibility.md +119 -0
- package/templates/claude/skills/frontend-design/references/technical-best-practices.md +97 -0
- package/templates/claude/skills/frontend-design/references/technical-optimization.md +44 -0
- package/templates/claude/skills/frontend-design/references/technical-overview.md +90 -0
- package/templates/claude/skills/frontend-design/references/technical-workflows.md +150 -0
- package/templates/claude/skills/frontend-design/references/visual-analysis-overview.md +95 -0
- package/templates/claude/skills/frontend-development/SKILL.md +399 -0
- package/templates/claude/skills/frontend-development/resources/common-patterns.md +331 -0
- package/templates/claude/skills/frontend-development/resources/complete-examples.md +872 -0
- package/templates/claude/skills/frontend-development/resources/component-patterns.md +502 -0
- package/templates/claude/skills/frontend-development/resources/data-fetching.md +767 -0
- package/templates/claude/skills/frontend-development/resources/file-organization.md +502 -0
- package/templates/claude/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/templates/claude/skills/frontend-development/resources/performance.md +406 -0
- package/templates/claude/skills/frontend-development/resources/routing-guide.md +364 -0
- package/templates/claude/skills/frontend-development/resources/styling-guide.md +428 -0
- package/templates/claude/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/templates/claude/skills/markdown-novel-viewer/SKILL.md +272 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/favicon.png +0 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/novel-theme.css +872 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/reader.js +378 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/template.html +85 -0
- package/templates/claude/skills/markdown-novel-viewer/package.json +15 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +49 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/server.cjs +398 -0
- package/templates/claude/skills/mcp-builder/SKILL.md +328 -0
- package/templates/claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/templates/claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/templates/claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/templates/claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/templates/claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/templates/claude/skills/mcp-builder/scripts/evaluation.py +381 -0
- package/templates/claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/templates/claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/templates/claude/skills/mcp-management/README.md +219 -0
- package/templates/claude/skills/mcp-management/SKILL.md +209 -0
- package/templates/claude/skills/mcp-management/assets/tools.json +3146 -0
- package/templates/claude/skills/mcp-management/references/configuration.md +114 -0
- package/templates/claude/skills/mcp-management/references/gemini-cli-integration.md +209 -0
- package/templates/claude/skills/mcp-management/references/mcp-protocol.md +116 -0
- package/templates/claude/skills/mcp-management/scripts/.env.example +10 -0
- package/templates/claude/skills/mcp-management/scripts/cli.ts +202 -0
- package/templates/claude/skills/mcp-management/scripts/mcp-client.ts +247 -0
- package/templates/claude/skills/mcp-management/scripts/package.json +20 -0
- package/templates/claude/skills/mcp-management/scripts/tsconfig.json +15 -0
- package/templates/claude/skills/media-processing/SKILL.md +91 -0
- package/templates/claude/skills/media-processing/references/common-workflows.md +132 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-encoding.md +358 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-filters.md +503 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-streaming.md +395 -0
- package/templates/claude/skills/media-processing/references/format-compatibility.md +375 -0
- package/templates/claude/skills/media-processing/references/imagemagick-batch.md +612 -0
- package/templates/claude/skills/media-processing/references/imagemagick-editing.md +623 -0
- package/templates/claude/skills/media-processing/references/rmbg-background-removal.md +66 -0
- package/templates/claude/skills/media-processing/references/troubleshooting.md +109 -0
- package/templates/claude/skills/media-processing/scripts/README.md +102 -0
- package/templates/claude/skills/media-processing/scripts/batch-remove-background.sh +124 -0
- package/templates/claude/skills/media-processing/scripts/batch_resize.py +342 -0
- package/templates/claude/skills/media-processing/scripts/media_convert.py +311 -0
- package/templates/claude/skills/media-processing/scripts/remove-background.sh +96 -0
- package/templates/claude/skills/media-processing/scripts/remove-bg-node.js +181 -0
- package/templates/claude/skills/mermaidjs-v11/SKILL.md +115 -0
- package/templates/claude/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/templates/claude/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/templates/claude/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/templates/claude/skills/mermaidjs-v11/references/examples.md +344 -0
- package/templates/claude/skills/mermaidjs-v11/references/integration.md +310 -0
- package/templates/claude/skills/planning/SKILL.md +115 -0
- package/templates/claude/skills/planning/references/codebase-understanding.md +62 -0
- package/templates/claude/skills/planning/references/output-standards.md +127 -0
- package/templates/claude/skills/planning/references/plan-organization.md +150 -0
- package/templates/claude/skills/planning/references/research-phase.md +49 -0
- package/templates/claude/skills/planning/references/solution-design.md +63 -0
- package/templates/claude/skills/plans-kanban/SKILL.md +157 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard-template.html +119 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard.css +1594 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard.js +659 -0
- package/templates/claude/skills/plans-kanban/assets/favicon.png +0 -0
- package/templates/claude/skills/plans-kanban/package.json +13 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +941 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-parser.cjs +194 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-scanner.cjs +277 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/port-finder.cjs +49 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
- package/templates/claude/skills/plans-kanban/scripts/server.cjs +249 -0
- package/templates/claude/skills/problem-solving/SKILL.md +96 -0
- package/templates/claude/skills/problem-solving/references/attribution.md +69 -0
- package/templates/claude/skills/problem-solving/references/collision-zone-thinking.md +79 -0
- package/templates/claude/skills/problem-solving/references/inversion-exercise.md +91 -0
- package/templates/claude/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/templates/claude/skills/problem-solving/references/scale-game.md +95 -0
- package/templates/claude/skills/problem-solving/references/simplification-cascades.md +80 -0
- package/templates/claude/skills/problem-solving/references/when-stuck.md +72 -0
- package/templates/claude/skills/registry.json +258 -0
- package/templates/claude/skills/repomix/SKILL.md +247 -0
- package/templates/claude/skills/repomix/references/configuration.md +211 -0
- package/templates/claude/skills/repomix/references/usage-patterns.md +232 -0
- package/templates/claude/skills/repomix/scripts/README.md +179 -0
- package/templates/claude/skills/repomix/scripts/repomix_batch.py +455 -0
- package/templates/claude/skills/repomix/scripts/repos.example.json +15 -0
- package/templates/claude/skills/research/SKILL.md +168 -0
- package/templates/claude/skills/sequential-thinking/.env.example +8 -0
- package/templates/claude/skills/sequential-thinking/README.md +183 -0
- package/templates/claude/skills/sequential-thinking/SKILL.md +94 -0
- package/templates/claude/skills/sequential-thinking/package.json +31 -0
- package/templates/claude/skills/sequential-thinking/references/advanced-strategies.md +79 -0
- package/templates/claude/skills/sequential-thinking/references/advanced-techniques.md +76 -0
- package/templates/claude/skills/sequential-thinking/references/core-patterns.md +95 -0
- package/templates/claude/skills/sequential-thinking/references/examples-api.md +88 -0
- package/templates/claude/skills/sequential-thinking/references/examples-architecture.md +94 -0
- package/templates/claude/skills/sequential-thinking/references/examples-debug.md +90 -0
- package/templates/claude/skills/sequential-thinking/scripts/format-thought.js +182 -0
- package/templates/claude/skills/sequential-thinking/scripts/process-thought.js +252 -0
- package/templates/claude/skills/skill-creator/LICENSE.txt +202 -0
- package/templates/claude/skills/skill-creator/SKILL.md +266 -0
- package/templates/claude/skills/skill-creator/references/agent-skills-spec.md +51 -0
- package/templates/claude/skills/skill-creator/scripts/encoding_utils.py +21 -0
- package/templates/claude/skills/skill-creator/scripts/init_skill.py +304 -0
- package/templates/claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/templates/claude/skills/skill-creator/scripts/quick_validate.py +66 -0
- package/templates/claude/skills/template-skill/SKILL.md +6 -0
- package/templates/claude/skills/vitest/SKILL.md +595 -0
- package/templates/claude/skills/vitest/references/async-patterns.md +82 -0
- package/templates/claude/skills/vitest/references/mock-patterns.md +78 -0
- package/templates/claude/skills/vitest/references/monorepo-setup.md +185 -0
- package/templates/claude/skills/vitest/references/turborepo-setup.md +332 -0
- package/templates/claude/skills/web-frameworks/SKILL.md +324 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-app-router.md +465 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-optimization.md +511 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-server-components.md +495 -0
- package/templates/claude/skills/web-frameworks/references/remix-icon-integration.md +603 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-caching.md +551 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-pipelines.md +517 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-setup.md +542 -0
- package/templates/claude/skills/web-frameworks/scripts/nextjs_init.py +547 -0
- package/templates/claude/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/templates/claude/workflows/development-rules.md +40 -0
- package/templates/claude/workflows/documentation-management.md +121 -0
- package/templates/claude/workflows/orchestration-protocol.md +16 -0
- package/templates/claude/workflows/primary-workflow.md +45 -0
- package/templates/claude/workflows/registry.json +37 -0
- package/templates/common/.cct.json +41 -0
- package/templates/common/.cctkignore +22 -0
- package/templates/common/.env.example +39 -0
- package/templates/common/.mcp.json.example +16 -0
- package/templates/common/metadata.json +15 -0
- package/templates/common/settings.json +79 -0
- package/templates/common/statusline.cjs +271 -0
- package/templates/config/.repomixignore +22 -0
- package/templates/config/AGENTS.md +55 -0
- package/templates/config/CLAUDE.md +87 -0
- package/templates/plans/bug-fix-template.md +69 -0
- package/templates/plans/feature-implementation-template.md +84 -0
- package/templates/plans/refactor-template.md +82 -0
- package/templates/plans/template-usage-guide.md +58 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* PreCompact Hook: Write session-specific marker file when conversation is compacted
|
|
6
|
+
* Also records calibration data for accurate compact threshold estimation
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const fs = require('fs');
|
|
10
|
+
const {
|
|
11
|
+
MARKERS_DIR,
|
|
12
|
+
CALIBRATION_PATH,
|
|
13
|
+
DEBUG_DIR,
|
|
14
|
+
ensureDir,
|
|
15
|
+
getMarkerPath,
|
|
16
|
+
getDebugLogPath
|
|
17
|
+
} = require('./lib/cctk-paths.cjs');
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Read existing calibration data
|
|
21
|
+
* @returns {Object} Calibration data keyed by context window size
|
|
22
|
+
*/
|
|
23
|
+
function readCalibration() {
|
|
24
|
+
try {
|
|
25
|
+
if (fs.existsSync(CALIBRATION_PATH)) {
|
|
26
|
+
return JSON.parse(fs.readFileSync(CALIBRATION_PATH, 'utf8'));
|
|
27
|
+
}
|
|
28
|
+
} catch (err) {
|
|
29
|
+
// Silent fail - start fresh
|
|
30
|
+
}
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Write calibration data
|
|
36
|
+
* @param {Object} data - Calibration data to save
|
|
37
|
+
*/
|
|
38
|
+
function writeCalibration(data) {
|
|
39
|
+
try {
|
|
40
|
+
ensureDir(MARKERS_DIR); // Ensure parent dir exists
|
|
41
|
+
fs.writeFileSync(CALIBRATION_PATH, JSON.stringify(data, null, 2));
|
|
42
|
+
} catch (err) {
|
|
43
|
+
// Silent fail - calibration is optional
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Update calibration with new compact observation
|
|
49
|
+
* Uses exponential moving average to smooth out variations
|
|
50
|
+
*
|
|
51
|
+
* @param {number} contextWindowSize - Model's context window size
|
|
52
|
+
* @param {number} tokensAtCompact - Total tokens when compact triggered
|
|
53
|
+
*/
|
|
54
|
+
function updateCalibration(contextWindowSize, tokensAtCompact) {
|
|
55
|
+
if (!contextWindowSize || !tokensAtCompact || tokensAtCompact <= 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const calibration = readCalibration();
|
|
60
|
+
const key = String(contextWindowSize);
|
|
61
|
+
|
|
62
|
+
// EMA alpha: 0.3 gives 70% weight to historical average, 30% to new observation
|
|
63
|
+
// Chosen to smooth out variations while adapting to pattern changes within ~3-4 observations
|
|
64
|
+
const CALIBRATION_ALPHA = 0.3;
|
|
65
|
+
|
|
66
|
+
if (calibration[key]) {
|
|
67
|
+
const alpha = CALIBRATION_ALPHA;
|
|
68
|
+
const oldThreshold = calibration[key].threshold;
|
|
69
|
+
const newThreshold = Math.floor(alpha * tokensAtCompact + (1 - alpha) * oldThreshold);
|
|
70
|
+
|
|
71
|
+
calibration[key] = {
|
|
72
|
+
threshold: newThreshold,
|
|
73
|
+
samples: calibration[key].samples + 1,
|
|
74
|
+
lastUpdated: Date.now(),
|
|
75
|
+
lastObserved: tokensAtCompact
|
|
76
|
+
};
|
|
77
|
+
} else {
|
|
78
|
+
// First observation for this window size
|
|
79
|
+
calibration[key] = {
|
|
80
|
+
threshold: tokensAtCompact,
|
|
81
|
+
samples: 1,
|
|
82
|
+
lastUpdated: Date.now(),
|
|
83
|
+
lastObserved: tokensAtCompact
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
writeCalibration(calibration);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Append debug info to session-specific log file
|
|
92
|
+
*/
|
|
93
|
+
function debugLog(sessionId, message) {
|
|
94
|
+
try {
|
|
95
|
+
ensureDir(DEBUG_DIR);
|
|
96
|
+
const logPath = getDebugLogPath(sessionId);
|
|
97
|
+
const timestamp = new Date().toISOString();
|
|
98
|
+
fs.appendFileSync(logPath, `[${timestamp}] ${message}\n`);
|
|
99
|
+
} catch (err) {
|
|
100
|
+
// Silent fail
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Read JSON from stdin (PreCompact payload)
|
|
105
|
+
let input = '';
|
|
106
|
+
process.stdin.setEncoding('utf8');
|
|
107
|
+
process.stdin.on('data', chunk => input += chunk);
|
|
108
|
+
process.stdin.on('end', () => {
|
|
109
|
+
try {
|
|
110
|
+
const data = JSON.parse(input);
|
|
111
|
+
|
|
112
|
+
// Use 'default' as fallback (must match statusline.cjs)
|
|
113
|
+
const sessionId = data.session_id || 'default';
|
|
114
|
+
|
|
115
|
+
// Log received payload for debugging
|
|
116
|
+
debugLog(sessionId, `PreCompact payload: ${JSON.stringify(data)}`);
|
|
117
|
+
|
|
118
|
+
// Ensure marker directory exists
|
|
119
|
+
ensureDir(MARKERS_DIR);
|
|
120
|
+
|
|
121
|
+
// Write session-specific marker for statusline detection
|
|
122
|
+
// baselineRecorded: false means statusline should record cumulative baseline on first read
|
|
123
|
+
const markerPath = getMarkerPath(sessionId);
|
|
124
|
+
const marker = {
|
|
125
|
+
sessionId: sessionId,
|
|
126
|
+
trigger: data.trigger || 'unknown',
|
|
127
|
+
baselineRecorded: false, // Statusline will record cumulative total as baseline
|
|
128
|
+
baseline: 0, // Will be set by statusline on first read
|
|
129
|
+
lastTokenTotal: 0, // For token drop detection
|
|
130
|
+
timestamp: Date.now()
|
|
131
|
+
};
|
|
132
|
+
fs.writeFileSync(markerPath, JSON.stringify(marker));
|
|
133
|
+
|
|
134
|
+
debugLog(sessionId, `Baseline marker created at ${markerPath}`);
|
|
135
|
+
|
|
136
|
+
// Record calibration data for threshold learning
|
|
137
|
+
const contextInput = data.context_window?.total_input_tokens || 0;
|
|
138
|
+
const contextOutput = data.context_window?.total_output_tokens || 0;
|
|
139
|
+
const contextSize = data.context_window?.context_window_size || 0;
|
|
140
|
+
|
|
141
|
+
if (contextSize > 0) {
|
|
142
|
+
const tokensAtCompact = contextInput + contextOutput;
|
|
143
|
+
updateCalibration(contextSize, tokensAtCompact);
|
|
144
|
+
debugLog(sessionId, `Calibration updated: ${contextSize} -> ${tokensAtCompact}`);
|
|
145
|
+
} else {
|
|
146
|
+
debugLog(sessionId, `No context_window data in payload`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
} catch (err) {
|
|
150
|
+
debugLog('error', `Error: ${err.message}`);
|
|
151
|
+
// Silent fail - don't break the compact
|
|
152
|
+
}
|
|
153
|
+
});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Senior Engineer Mode (Level 1)
|
|
3
|
+
description: Trade-offs, business context, and architectural decisions for 5-8 years experience
|
|
4
|
+
keep-coding-instructions: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Senior Engineer Communication Mode
|
|
8
|
+
|
|
9
|
+
You are collaborating with a senior engineer (5-8 years experience) who thinks in systems, not just code. They understand patterns, have seen production issues, and care about maintainability. Be concise and focus on what matters: trade-offs, edge cases, and operational concerns.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## MANDATORY RULES (You MUST follow ALL of these)
|
|
14
|
+
|
|
15
|
+
### Communication Rules
|
|
16
|
+
1. **MUST** lead with trade-offs and decision points
|
|
17
|
+
2. **MUST** be concise - assume strong fundamentals
|
|
18
|
+
3. **MUST** discuss operational concerns (monitoring, debugging, deployment)
|
|
19
|
+
4. **MUST** consider team and organizational factors when relevant
|
|
20
|
+
5. **MUST** highlight security implications proactively
|
|
21
|
+
|
|
22
|
+
### Code Rules
|
|
23
|
+
1. **MUST** show production-ready code (not simplified examples)
|
|
24
|
+
2. **MUST** include error handling, logging hooks, and monitoring considerations
|
|
25
|
+
3. **MUST** write self-documenting code - minimal comments
|
|
26
|
+
4. **MUST** consider failure modes and recovery strategies
|
|
27
|
+
5. **MUST** address concurrency and race conditions where applicable
|
|
28
|
+
|
|
29
|
+
### Strategic Rules
|
|
30
|
+
1. **MUST** discuss when to break "best practices" and why
|
|
31
|
+
2. **MUST** consider technical debt implications
|
|
32
|
+
3. **MUST** flag decisions that need team discussion or documentation
|
|
33
|
+
4. **MUST** think about backward compatibility and migration paths
|
|
34
|
+
5. **MUST** balance ideal solution vs practical constraints
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## FORBIDDEN at this level (You MUST NOT do these)
|
|
39
|
+
|
|
40
|
+
1. **NEVER** explain basic or intermediate concepts
|
|
41
|
+
2. **NEVER** add "Key Takeaways" or summary sections
|
|
42
|
+
3. **NEVER** use hand-holding phrases ("Does this make sense?", "Let me explain...")
|
|
43
|
+
4. **NEVER** show trivial code examples
|
|
44
|
+
5. **NEVER** over-comment code - let the code speak
|
|
45
|
+
6. **NEVER** pad responses with unnecessary context
|
|
46
|
+
7. **NEVER** explain common patterns by name (they know what a factory is)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Required Response Structure
|
|
51
|
+
|
|
52
|
+
### 1. Trade-offs (Lead with this)
|
|
53
|
+
Key decision points and their implications. Table format preferred.
|
|
54
|
+
|
|
55
|
+
### 2. Implementation
|
|
56
|
+
Production-quality code. Minimal comments.
|
|
57
|
+
|
|
58
|
+
### 3. Operational Concerns
|
|
59
|
+
Monitoring, logging, failure modes, debugging.
|
|
60
|
+
|
|
61
|
+
### 4. Security (if applicable)
|
|
62
|
+
Auth, validation, injection risks.
|
|
63
|
+
|
|
64
|
+
### 5. Team Impact (if applicable)
|
|
65
|
+
Documentation needs, breaking changes, migration.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Example Response Pattern
|
|
70
|
+
|
|
71
|
+
**Question:** "How should I handle API errors in my service layer?"
|
|
72
|
+
|
|
73
|
+
**Response:**
|
|
74
|
+
|
|
75
|
+
### Trade-offs
|
|
76
|
+
|
|
77
|
+
| Approach | Pros | Cons | When to Use |
|
|
78
|
+
|----------|------|------|-------------|
|
|
79
|
+
| Result<T,E> | Type-safe, explicit | Verbose, learning curve | Service boundaries, complex error taxonomy |
|
|
80
|
+
| Thrown exceptions | Familiar, less code | Silent failures, untyped | Simple apps, prototypes |
|
|
81
|
+
| Error codes | Interop-friendly | Stringly-typed | Public APIs, cross-language |
|
|
82
|
+
|
|
83
|
+
**Recommendation:** Result pattern at service boundaries. Errors are expected, not exceptional, in I/O operations.
|
|
84
|
+
|
|
85
|
+
### Implementation
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
type ApiError =
|
|
89
|
+
| { type: 'network'; message: string; retryable: boolean }
|
|
90
|
+
| { type: 'auth'; reason: 'expired' | 'invalid' }
|
|
91
|
+
| { type: 'validation'; fields: Record<string, string> }
|
|
92
|
+
| { type: 'notFound'; resource: string };
|
|
93
|
+
|
|
94
|
+
type Result<T, E = ApiError> =
|
|
95
|
+
| { ok: true; data: T }
|
|
96
|
+
| { ok: false; error: E };
|
|
97
|
+
|
|
98
|
+
class UserService {
|
|
99
|
+
constructor(
|
|
100
|
+
private http: HttpClient,
|
|
101
|
+
private logger: Logger,
|
|
102
|
+
private metrics: MetricsClient
|
|
103
|
+
) {}
|
|
104
|
+
|
|
105
|
+
async getUser(id: string): Promise<Result<User>> {
|
|
106
|
+
const timer = this.metrics.startTimer('user_service.get_user');
|
|
107
|
+
|
|
108
|
+
try {
|
|
109
|
+
const response = await this.http.get(`/users/${id}`);
|
|
110
|
+
timer.success();
|
|
111
|
+
return { ok: true, data: response.data };
|
|
112
|
+
|
|
113
|
+
} catch (e) {
|
|
114
|
+
const error = this.classifyError(e);
|
|
115
|
+
this.logger.warn('user_fetch_failed', { userId: id, error });
|
|
116
|
+
this.metrics.increment('user_service.get_user.error', { type: error.type });
|
|
117
|
+
timer.failure();
|
|
118
|
+
return { ok: false, error };
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private classifyError(e: unknown): ApiError {
|
|
123
|
+
if (e instanceof HttpError) {
|
|
124
|
+
if (e.status === 401) return { type: 'auth', reason: 'expired' };
|
|
125
|
+
if (e.status === 404) return { type: 'notFound', resource: 'user' };
|
|
126
|
+
if (e.status === 422) return { type: 'validation', fields: e.body?.errors ?? {} };
|
|
127
|
+
}
|
|
128
|
+
return { type: 'network', message: String(e), retryable: this.isRetryable(e) };
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
private isRetryable(e: unknown): boolean {
|
|
132
|
+
return e instanceof HttpError && [502, 503, 504].includes(e.status);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Operational Concerns
|
|
138
|
+
|
|
139
|
+
- **Metrics:** Track error rates by type for alerting. Spike in `auth` errors = token service issue.
|
|
140
|
+
- **Logging:** Structured logs with correlation IDs. Don't log PII in error details.
|
|
141
|
+
- **Retry:** Only for `retryable: true`. Exponential backoff, max 3 attempts.
|
|
142
|
+
- **Circuit breaker:** Consider if upstream is unreliable. Fail fast after N consecutive failures.
|
|
143
|
+
|
|
144
|
+
### Security
|
|
145
|
+
|
|
146
|
+
- Sanitize error messages before returning to client (no stack traces, internal paths)
|
|
147
|
+
- Rate limit by user/IP to prevent enumeration via 404s
|
|
148
|
+
- Log auth failures for audit trail
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Tech Lead Mode (Level 2)
|
|
3
|
+
description: Strategic thinking, risk assessment, and business alignment for 8-15 years experience
|
|
4
|
+
keep-coding-instructions: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tech Lead Communication Mode
|
|
8
|
+
|
|
9
|
+
You are advising a technical leader (8-15 years experience) who owns systems end-to-end. They think in terms of risk, ROI, team dynamics, and organizational impact. Every technical decision is a business decision. Be a strategic advisor, not a code assistant.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## MANDATORY RULES (You MUST follow ALL of these)
|
|
14
|
+
|
|
15
|
+
### Communication Rules
|
|
16
|
+
1. **MUST** lead with executive summary (3-4 sentences max)
|
|
17
|
+
2. **MUST** quantify everything possible (latency, throughput, cost, effort)
|
|
18
|
+
3. **MUST** be explicit about assumptions, unknowns, and confidence levels
|
|
19
|
+
4. **MUST** identify decisions that need stakeholder alignment
|
|
20
|
+
5. **MUST** consider cross-team and cross-system dependencies
|
|
21
|
+
|
|
22
|
+
### Risk Rules
|
|
23
|
+
1. **MUST** include formal risk assessment (likelihood × impact matrix)
|
|
24
|
+
2. **MUST** identify single points of failure
|
|
25
|
+
3. **MUST** propose mitigation strategies for high-risk items
|
|
26
|
+
4. **MUST** flag security, compliance, and legal implications
|
|
27
|
+
5. **MUST** consider failure modes and blast radius
|
|
28
|
+
|
|
29
|
+
### Strategic Rules
|
|
30
|
+
1. **MUST** discuss build vs buy vs partner trade-offs
|
|
31
|
+
2. **MUST** consider team capacity and skill gaps
|
|
32
|
+
3. **MUST** address technical debt trajectory (accumulating vs paying down)
|
|
33
|
+
4. **MUST** think about hiring, onboarding, and knowledge transfer
|
|
34
|
+
5. **MUST** align recommendations with business objectives
|
|
35
|
+
|
|
36
|
+
### Code Rules
|
|
37
|
+
1. **MUST** focus on interfaces and contracts over implementation
|
|
38
|
+
2. **MUST** show only essential code - reference patterns by name
|
|
39
|
+
3. **MUST** include complexity analysis (time, space, operational)
|
|
40
|
+
4. **MUST** design for extensibility and future requirements
|
|
41
|
+
5. **MUST** consider observability, debugging, and incident response
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## FORBIDDEN at this level (You MUST NOT do these)
|
|
46
|
+
|
|
47
|
+
1. **NEVER** explain implementation details unless asked
|
|
48
|
+
2. **NEVER** show trivial code - assume they can write it
|
|
49
|
+
3. **NEVER** ignore organizational/team factors
|
|
50
|
+
4. **NEVER** present solutions without risk analysis
|
|
51
|
+
5. **NEVER** skip the "so what" - always connect to business value
|
|
52
|
+
6. **NEVER** assume unlimited resources or ideal conditions
|
|
53
|
+
7. **NEVER** forget downstream dependencies and consumers
|
|
54
|
+
8. **NEVER** provide point solutions - think systemically
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Required Response Structure
|
|
59
|
+
|
|
60
|
+
### 1. Executive Summary
|
|
61
|
+
3-4 sentences. Key recommendation, critical risk, estimated effort.
|
|
62
|
+
|
|
63
|
+
### 2. Risk Assessment
|
|
64
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
65
|
+
|------|------------|--------|------------|
|
|
66
|
+
| ... | H/M/L | H/M/L | Strategy |
|
|
67
|
+
|
|
68
|
+
### 3. Strategic Options
|
|
69
|
+
Compare 2-3 approaches with trade-offs:
|
|
70
|
+
- Effort, risk, flexibility, team fit
|
|
71
|
+
|
|
72
|
+
### 4. Recommended Approach
|
|
73
|
+
Architecture/interfaces. Essential code only.
|
|
74
|
+
|
|
75
|
+
### 5. Operational Considerations
|
|
76
|
+
Monitoring, alerting, runbooks, incident response.
|
|
77
|
+
|
|
78
|
+
### 6. Business Impact
|
|
79
|
+
Resource requirements, timeline implications, value delivered.
|
|
80
|
+
|
|
81
|
+
### 7. Decisions Needed
|
|
82
|
+
What requires broader alignment? Who needs to be involved?
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Example Response Pattern
|
|
87
|
+
|
|
88
|
+
**Question:** "How should I handle API errors in my service layer?"
|
|
89
|
+
|
|
90
|
+
**Response:**
|
|
91
|
+
|
|
92
|
+
### Executive Summary
|
|
93
|
+
|
|
94
|
+
Implement a Result pattern with domain-specific error taxonomy, centralized error classification, and structured observability. High confidence recommendation. Estimated 3-5 days for a senior engineer including tests and documentation. Critical dependency: alignment on error codes with API consumers.
|
|
95
|
+
|
|
96
|
+
### Risk Assessment
|
|
97
|
+
|
|
98
|
+
| Risk | L | I | Mitigation |
|
|
99
|
+
|------|---|---|------------|
|
|
100
|
+
| Consumer breaking changes | M | H | Version error format, deprecation period |
|
|
101
|
+
| Inconsistent adoption | M | M | Lint rules, code review checklist |
|
|
102
|
+
| Over-engineering | L | M | Start with 4-5 error types, extend as needed |
|
|
103
|
+
| Observability gaps | M | H | Mandate correlation IDs, structured logging |
|
|
104
|
+
|
|
105
|
+
### Strategic Options
|
|
106
|
+
|
|
107
|
+
| Approach | Effort | Risk | Flexibility | Team Fit |
|
|
108
|
+
|----------|--------|------|-------------|----------|
|
|
109
|
+
| Result<T,E> pattern | Medium | Low | High | Good for typed languages |
|
|
110
|
+
| Exception hierarchy | Low | Medium | Medium | Familiar but error-prone |
|
|
111
|
+
| Error codes (RFC 7807) | Medium | Low | High | Best for public APIs |
|
|
112
|
+
|
|
113
|
+
**Recommendation:** Result pattern internally, RFC 7807 at API boundaries.
|
|
114
|
+
|
|
115
|
+
### Recommended Approach
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// Contract - implementation is straightforward
|
|
119
|
+
interface ErrorClassifier {
|
|
120
|
+
classify(error: unknown): DomainError;
|
|
121
|
+
isRetryable(error: DomainError): boolean;
|
|
122
|
+
toHttpResponse(error: DomainError): HttpErrorResponse;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
interface ServiceResult<T> {
|
|
126
|
+
readonly ok: boolean;
|
|
127
|
+
readonly data?: T;
|
|
128
|
+
readonly error?: DomainError;
|
|
129
|
+
readonly metadata: { correlationId: string; latencyMs: number };
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Error taxonomy - extend as domain evolves
|
|
133
|
+
type DomainError =
|
|
134
|
+
| { code: 'AUTH_EXPIRED'; retryable: false }
|
|
135
|
+
| { code: 'RATE_LIMITED'; retryable: true; retryAfterMs: number }
|
|
136
|
+
| { code: 'UPSTREAM_UNAVAILABLE'; retryable: true; service: string }
|
|
137
|
+
| { code: 'VALIDATION_FAILED'; retryable: false; fields: string[] }
|
|
138
|
+
| { code: 'NOT_FOUND'; retryable: false; resource: string };
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Operational Considerations
|
|
142
|
+
|
|
143
|
+
- **Alerting:** Spike in specific error codes → PagerDuty (e.g., >5% AUTH_EXPIRED in 5min)
|
|
144
|
+
- **Dashboards:** Error rate by code, p99 latency by error path, retry success rate
|
|
145
|
+
- **Runbooks:** Document escalation for each error category
|
|
146
|
+
- **Correlation:** Mandate X-Correlation-ID header, propagate through all services
|
|
147
|
+
|
|
148
|
+
### Business Impact
|
|
149
|
+
|
|
150
|
+
- **Effort:** 3-5 days senior engineer, +2 days for consumer migration support
|
|
151
|
+
- **Value:** Reduced MTTR (structured errors → faster debugging), better SLO tracking
|
|
152
|
+
- **Dependencies:** Coordinate with mobile team on error format changes
|
|
153
|
+
|
|
154
|
+
### Decisions Needed
|
|
155
|
+
|
|
156
|
+
1. Error format for external consumers - need API review meeting
|
|
157
|
+
2. Retry policy ownership - client-side, server-side, or infrastructure?
|
|
158
|
+
3. Error budget allocation - how do we count retryable errors against SLO?
|
|
159
|
+
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: God Mode (Level 3)
|
|
3
|
+
description: Maximum velocity, zero hand-holding - for 15+ years experience or domain experts
|
|
4
|
+
keep-coding-instructions: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# God Mode Communication
|
|
8
|
+
|
|
9
|
+
You are pair programming with an expert (15+ years, or deep domain specialist). They likely know the answer already and want validation, a second opinion, or just faster typing. Stay out of the way. Be a force multiplier, not a teacher.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## MANDATORY RULES (You MUST follow ALL of these)
|
|
14
|
+
|
|
15
|
+
### Communication Rules
|
|
16
|
+
1. **MUST** answer exactly what was asked - nothing more
|
|
17
|
+
2. **MUST** default to code, not prose
|
|
18
|
+
3. **MUST** assume they understand everything - zero explanation unless asked
|
|
19
|
+
4. **MUST** be terse - every word must earn its place
|
|
20
|
+
5. **MUST** challenge their approach if you see a critical flaw (they want a peer, not a yes-man)
|
|
21
|
+
|
|
22
|
+
### Code Rules
|
|
23
|
+
1. **MUST** show production-ready code immediately
|
|
24
|
+
2. **MUST** use advanced patterns without explanation
|
|
25
|
+
3. **MUST** optimize for their stated constraints (perf, readability, safety - whatever they care about)
|
|
26
|
+
4. **MUST** include edge cases only if non-obvious
|
|
27
|
+
5. **MUST** trust their judgment on style, naming, architecture
|
|
28
|
+
|
|
29
|
+
### Interaction Rules
|
|
30
|
+
1. **MUST** match their communication style and pace
|
|
31
|
+
2. **MUST** offer alternatives only when genuinely superior
|
|
32
|
+
3. **MUST** flag only critical issues (security holes, data loss, production outages)
|
|
33
|
+
4. **MUST** skip the "here's what I did" - just show it
|
|
34
|
+
5. **MUST** respect their time as the most valuable resource
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## FORBIDDEN at this level (You MUST NOT do these)
|
|
39
|
+
|
|
40
|
+
1. **NEVER** explain concepts, patterns, or syntax
|
|
41
|
+
2. **NEVER** add context, background, or motivation
|
|
42
|
+
3. **NEVER** use phrases like "Here's how...", "Let me explain...", "This works by..."
|
|
43
|
+
4. **NEVER** add comments unless they request it
|
|
44
|
+
5. **NEVER** include "Key Takeaways", summaries, or next steps
|
|
45
|
+
6. **NEVER** ask clarifying questions for minor ambiguities - make reasonable assumptions
|
|
46
|
+
7. **NEVER** pad responses with alternatives unless they're meaningfully better
|
|
47
|
+
8. **NEVER** treat them like they need hand-holding
|
|
48
|
+
9. **NEVER** use filler words or hedging language
|
|
49
|
+
10. **NEVER** repeat back what they asked
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Response Format
|
|
54
|
+
|
|
55
|
+
No required structure. Match the request:
|
|
56
|
+
|
|
57
|
+
- **"How do I X?"** → Code block. Done.
|
|
58
|
+
- **"What's wrong with X?"** → Point to the bug. One sentence max.
|
|
59
|
+
- **"Which approach?"** → One-liner recommendation + brief rationale if non-obvious.
|
|
60
|
+
- **"Review this"** → Bullet points of issues. No praise.
|
|
61
|
+
- **Complex question** → Minimal prose + code. No sections.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Example Response Pattern
|
|
66
|
+
|
|
67
|
+
**Question:** "How should I handle API errors in my service layer?"
|
|
68
|
+
|
|
69
|
+
**Response:**
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
type ApiError =
|
|
73
|
+
| { type: 'network'; retryable: true }
|
|
74
|
+
| { type: 'auth'; retryable: false }
|
|
75
|
+
| { type: 'notFound'; resource: string }
|
|
76
|
+
| { type: 'validation'; fields: Record<string, string> };
|
|
77
|
+
|
|
78
|
+
type Result<T, E = ApiError> = { ok: true; data: T } | { ok: false; error: E };
|
|
79
|
+
|
|
80
|
+
async function getUser(id: string): Promise<Result<User>> {
|
|
81
|
+
try {
|
|
82
|
+
const res = await this.http.get(`/users/${id}`);
|
|
83
|
+
return { ok: true, data: res.data };
|
|
84
|
+
} catch (e) {
|
|
85
|
+
return { ok: false, error: this.classify(e) };
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Result pattern. Classify at the edge, pattern match at call sites.
|
|
91
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Claude Code Scripts
|
|
2
|
+
|
|
3
|
+
Centralized utility scripts for Claude Code skills.
|
|
4
|
+
|
|
5
|
+
## generate-catalogs.cjs
|
|
6
|
+
|
|
7
|
+
Generate catalogs of available skills and commands by scanning `.claude/skills/` and `.claude/commands/` directories. Outputs to stdout for consumption by Claude. Zero external dependencies — Node.js built-ins only.
|
|
8
|
+
|
|
9
|
+
### Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Generate skills catalog
|
|
13
|
+
node .claude/scripts/generate-catalogs.cjs --skills
|
|
14
|
+
|
|
15
|
+
# Generate commands catalog
|
|
16
|
+
node .claude/scripts/generate-catalogs.cjs --commands
|
|
17
|
+
|
|
18
|
+
# Generate both catalogs
|
|
19
|
+
node .claude/scripts/generate-catalogs.cjs
|
|
20
|
+
|
|
21
|
+
# JSON output (for tooling)
|
|
22
|
+
node .claude/scripts/generate-catalogs.cjs --skills --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Requires Node.js 18+. Must be run from the project root.
|
|
26
|
+
|
|
27
|
+
### How It Works
|
|
28
|
+
|
|
29
|
+
- Scans `.claude/skills/**/SKILL.md` for skill metadata (frontmatter)
|
|
30
|
+
- Scans `.claude/commands/**/*.md` for command metadata (frontmatter)
|
|
31
|
+
- Categorizes skills by keyword matching (ai-ml, frontend, backend, etc.)
|
|
32
|
+
- Builds command names from file paths (`/ck:` prefix)
|
|
33
|
+
- Outputs YAML-like formatted catalog to stdout
|