@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,394 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Turborepo Migration Script
|
|
4
|
+
|
|
5
|
+
Convert existing monorepo to Turborepo with intelligent pipeline generation.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import argparse
|
|
9
|
+
import json
|
|
10
|
+
import os
|
|
11
|
+
import sys
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
from typing import Dict, List, Optional, Set
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TurborepoMigrator:
|
|
17
|
+
"""Migrate existing monorepo to Turborepo."""
|
|
18
|
+
|
|
19
|
+
def __init__(
|
|
20
|
+
self,
|
|
21
|
+
path: Path,
|
|
22
|
+
dry_run: bool = False,
|
|
23
|
+
package_manager: str = "npm",
|
|
24
|
+
):
|
|
25
|
+
"""
|
|
26
|
+
Initialize TurborepoMigrator.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
path: Path to existing monorepo
|
|
30
|
+
dry_run: Preview changes without writing files
|
|
31
|
+
package_manager: Package manager (npm, yarn, pnpm, bun)
|
|
32
|
+
"""
|
|
33
|
+
self.path = path.resolve()
|
|
34
|
+
self.dry_run = dry_run
|
|
35
|
+
self.package_manager = package_manager
|
|
36
|
+
self.packages: List[Dict] = []
|
|
37
|
+
self.workspace_config: Dict = {}
|
|
38
|
+
|
|
39
|
+
def validate_path(self) -> None:
|
|
40
|
+
"""Validate monorepo path."""
|
|
41
|
+
if not self.path.exists():
|
|
42
|
+
raise FileNotFoundError(f"Path '{self.path}' does not exist")
|
|
43
|
+
|
|
44
|
+
if not self.path.is_dir():
|
|
45
|
+
raise NotADirectoryError(f"Path '{self.path}' is not a directory")
|
|
46
|
+
|
|
47
|
+
package_json = self.path / "package.json"
|
|
48
|
+
if not package_json.exists():
|
|
49
|
+
raise FileNotFoundError(
|
|
50
|
+
f"No package.json found in '{self.path}'. Not a valid monorepo."
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
def analyze_workspace(self) -> None:
|
|
54
|
+
"""Analyze existing workspace configuration."""
|
|
55
|
+
print("Analyzing workspace...")
|
|
56
|
+
|
|
57
|
+
package_json = self.path / "package.json"
|
|
58
|
+
with open(package_json) as f:
|
|
59
|
+
root_config = json.load(f)
|
|
60
|
+
|
|
61
|
+
# Detect workspace configuration
|
|
62
|
+
if "workspaces" in root_config:
|
|
63
|
+
self.workspace_config = {
|
|
64
|
+
"type": "npm/yarn",
|
|
65
|
+
"patterns": root_config["workspaces"],
|
|
66
|
+
}
|
|
67
|
+
elif (self.path / "pnpm-workspace.yaml").exists():
|
|
68
|
+
self.workspace_config = {
|
|
69
|
+
"type": "pnpm",
|
|
70
|
+
"file": "pnpm-workspace.yaml",
|
|
71
|
+
}
|
|
72
|
+
else:
|
|
73
|
+
raise ValueError(
|
|
74
|
+
"No workspace configuration found. Monorepo structure not detected."
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
print(f" Workspace type: {self.workspace_config['type']}")
|
|
78
|
+
|
|
79
|
+
def discover_packages(self) -> None:
|
|
80
|
+
"""Discover all packages in workspace."""
|
|
81
|
+
print("Discovering packages...")
|
|
82
|
+
|
|
83
|
+
if self.workspace_config["type"] == "npm/yarn":
|
|
84
|
+
patterns = self.workspace_config["patterns"]
|
|
85
|
+
if isinstance(patterns, dict):
|
|
86
|
+
patterns = patterns.get("packages", [])
|
|
87
|
+
else:
|
|
88
|
+
# Parse pnpm-workspace.yaml
|
|
89
|
+
yaml_file = self.path / "pnpm-workspace.yaml"
|
|
90
|
+
patterns = self._parse_pnpm_workspace(yaml_file)
|
|
91
|
+
|
|
92
|
+
# Find all packages matching patterns
|
|
93
|
+
for pattern in patterns:
|
|
94
|
+
self._find_packages_by_pattern(pattern)
|
|
95
|
+
|
|
96
|
+
print(f" Found {len(self.packages)} packages")
|
|
97
|
+
for pkg in self.packages:
|
|
98
|
+
print(f" - {pkg['name']} ({pkg['path'].relative_to(self.path)})")
|
|
99
|
+
|
|
100
|
+
def _parse_pnpm_workspace(self, yaml_file: Path) -> List[str]:
|
|
101
|
+
"""Parse pnpm-workspace.yaml file."""
|
|
102
|
+
patterns = []
|
|
103
|
+
with open(yaml_file) as f:
|
|
104
|
+
in_packages = False
|
|
105
|
+
for line in f:
|
|
106
|
+
line = line.strip()
|
|
107
|
+
if line.startswith("packages:"):
|
|
108
|
+
in_packages = True
|
|
109
|
+
continue
|
|
110
|
+
if in_packages and line.startswith("- "):
|
|
111
|
+
pattern = line[2:].strip().strip("'\"")
|
|
112
|
+
patterns.append(pattern)
|
|
113
|
+
return patterns
|
|
114
|
+
|
|
115
|
+
def _find_packages_by_pattern(self, pattern: str) -> None:
|
|
116
|
+
"""Find packages matching glob pattern."""
|
|
117
|
+
import glob
|
|
118
|
+
|
|
119
|
+
# Convert pattern to absolute path
|
|
120
|
+
search_pattern = str(self.path / pattern)
|
|
121
|
+
|
|
122
|
+
for match in glob.glob(search_pattern):
|
|
123
|
+
match_path = Path(match)
|
|
124
|
+
package_json = match_path / "package.json"
|
|
125
|
+
|
|
126
|
+
if package_json.exists():
|
|
127
|
+
with open(package_json) as f:
|
|
128
|
+
pkg_data = json.load(f)
|
|
129
|
+
|
|
130
|
+
self.packages.append(
|
|
131
|
+
{
|
|
132
|
+
"name": pkg_data.get("name", match_path.name),
|
|
133
|
+
"path": match_path,
|
|
134
|
+
"scripts": pkg_data.get("scripts", {}),
|
|
135
|
+
"dependencies": pkg_data.get("dependencies", {}),
|
|
136
|
+
"devDependencies": pkg_data.get("devDependencies", {}),
|
|
137
|
+
}
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
def analyze_scripts(self) -> Dict[str, Set[str]]:
|
|
141
|
+
"""Analyze common scripts across packages."""
|
|
142
|
+
print("Analyzing scripts...")
|
|
143
|
+
|
|
144
|
+
script_map: Dict[str, Set[str]] = {}
|
|
145
|
+
|
|
146
|
+
for pkg in self.packages:
|
|
147
|
+
for script_name in pkg["scripts"]:
|
|
148
|
+
if script_name not in script_map:
|
|
149
|
+
script_map[script_name] = set()
|
|
150
|
+
script_map[script_name].add(pkg["name"])
|
|
151
|
+
|
|
152
|
+
common_scripts = {
|
|
153
|
+
name: packages
|
|
154
|
+
for name, packages in script_map.items()
|
|
155
|
+
if len(packages) >= 2 # Present in at least 2 packages
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
print(f" Found {len(common_scripts)} common scripts:")
|
|
159
|
+
for script, packages in common_scripts.items():
|
|
160
|
+
print(f" - {script} ({len(packages)} packages)")
|
|
161
|
+
|
|
162
|
+
return common_scripts
|
|
163
|
+
|
|
164
|
+
def generate_turbo_config(self, common_scripts: Dict[str, Set[str]]) -> Dict:
|
|
165
|
+
"""Generate turbo.json configuration."""
|
|
166
|
+
print("Generating turbo.json configuration...")
|
|
167
|
+
|
|
168
|
+
pipeline = {}
|
|
169
|
+
|
|
170
|
+
# Build task
|
|
171
|
+
if "build" in common_scripts:
|
|
172
|
+
pipeline["build"] = {
|
|
173
|
+
"dependsOn": ["^build"],
|
|
174
|
+
"outputs": self._infer_build_outputs(),
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
# Test task
|
|
178
|
+
if "test" in common_scripts:
|
|
179
|
+
pipeline["test"] = {
|
|
180
|
+
"dependsOn": ["build"],
|
|
181
|
+
"outputs": ["coverage/**"],
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
# Lint task
|
|
185
|
+
if "lint" in common_scripts:
|
|
186
|
+
pipeline["lint"] = {"dependsOn": ["^build"]}
|
|
187
|
+
|
|
188
|
+
# Typecheck task
|
|
189
|
+
if "typecheck" in common_scripts or "type-check" in common_scripts:
|
|
190
|
+
task_name = "typecheck" if "typecheck" in common_scripts else "type-check"
|
|
191
|
+
pipeline[task_name] = {"dependsOn": ["^build"]}
|
|
192
|
+
|
|
193
|
+
# Dev task
|
|
194
|
+
if "dev" in common_scripts or "start" in common_scripts:
|
|
195
|
+
dev_task = "dev" if "dev" in common_scripts else "start"
|
|
196
|
+
pipeline[dev_task] = {"cache": False, "persistent": True}
|
|
197
|
+
|
|
198
|
+
# Clean task
|
|
199
|
+
if "clean" in common_scripts:
|
|
200
|
+
pipeline["clean"] = {"cache": False}
|
|
201
|
+
|
|
202
|
+
turbo_config = {
|
|
203
|
+
"$schema": "https://turbo.build/schema.json",
|
|
204
|
+
"globalDependencies": ["**/.env.*local"],
|
|
205
|
+
"pipeline": pipeline,
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return turbo_config
|
|
209
|
+
|
|
210
|
+
def _infer_build_outputs(self) -> List[str]:
|
|
211
|
+
"""Infer build output directories from packages."""
|
|
212
|
+
outputs = set()
|
|
213
|
+
|
|
214
|
+
for pkg in self.packages:
|
|
215
|
+
pkg_path = pkg["path"]
|
|
216
|
+
|
|
217
|
+
# Check common output directories
|
|
218
|
+
if (pkg_path / "dist").exists():
|
|
219
|
+
outputs.add("dist/**")
|
|
220
|
+
if (pkg_path / "build").exists():
|
|
221
|
+
outputs.add("build/**")
|
|
222
|
+
if (pkg_path / ".next").exists():
|
|
223
|
+
outputs.add(".next/**")
|
|
224
|
+
outputs.add("!.next/cache/**")
|
|
225
|
+
if (pkg_path / "out").exists():
|
|
226
|
+
outputs.add("out/**")
|
|
227
|
+
|
|
228
|
+
return sorted(list(outputs)) or ["dist/**"]
|
|
229
|
+
|
|
230
|
+
def update_root_package_json(self) -> Dict:
|
|
231
|
+
"""Update root package.json with Turborepo scripts."""
|
|
232
|
+
print("Updating root package.json...")
|
|
233
|
+
|
|
234
|
+
package_json_path = self.path / "package.json"
|
|
235
|
+
with open(package_json_path) as f:
|
|
236
|
+
package_json = json.load(f)
|
|
237
|
+
|
|
238
|
+
# Add turbo to devDependencies
|
|
239
|
+
if "devDependencies" not in package_json:
|
|
240
|
+
package_json["devDependencies"] = {}
|
|
241
|
+
|
|
242
|
+
package_json["devDependencies"]["turbo"] = "latest"
|
|
243
|
+
|
|
244
|
+
# Update scripts to use turbo
|
|
245
|
+
if "scripts" not in package_json:
|
|
246
|
+
package_json["scripts"] = {}
|
|
247
|
+
|
|
248
|
+
common_tasks = ["build", "dev", "test", "lint", "typecheck", "clean"]
|
|
249
|
+
for task in common_tasks:
|
|
250
|
+
# Check if task exists in any package
|
|
251
|
+
if any(task in pkg["scripts"] for pkg in self.packages):
|
|
252
|
+
package_json["scripts"][task] = f"turbo run {task}"
|
|
253
|
+
|
|
254
|
+
return package_json
|
|
255
|
+
|
|
256
|
+
def generate_migration_report(
|
|
257
|
+
self, turbo_config: Dict, updated_package_json: Dict
|
|
258
|
+
) -> str:
|
|
259
|
+
"""Generate migration report."""
|
|
260
|
+
report = []
|
|
261
|
+
|
|
262
|
+
report.append("=" * 60)
|
|
263
|
+
report.append("TURBOREPO MIGRATION REPORT")
|
|
264
|
+
report.append("=" * 60)
|
|
265
|
+
report.append("")
|
|
266
|
+
|
|
267
|
+
report.append(f"Monorepo Path: {self.path}")
|
|
268
|
+
report.append(f"Package Manager: {self.package_manager}")
|
|
269
|
+
report.append(f"Total Packages: {len(self.packages)}")
|
|
270
|
+
report.append("")
|
|
271
|
+
|
|
272
|
+
report.append("PACKAGES:")
|
|
273
|
+
for pkg in self.packages:
|
|
274
|
+
rel_path = pkg["path"].relative_to(self.path)
|
|
275
|
+
report.append(f" - {pkg['name']} ({rel_path})")
|
|
276
|
+
report.append("")
|
|
277
|
+
|
|
278
|
+
report.append("TURBO.JSON PIPELINE:")
|
|
279
|
+
for task, config in turbo_config["pipeline"].items():
|
|
280
|
+
report.append(f" {task}:")
|
|
281
|
+
for key, value in config.items():
|
|
282
|
+
report.append(f" {key}: {value}")
|
|
283
|
+
report.append("")
|
|
284
|
+
|
|
285
|
+
report.append("ROOT PACKAGE.JSON SCRIPTS:")
|
|
286
|
+
for script, command in updated_package_json.get("scripts", {}).items():
|
|
287
|
+
report.append(f" {script}: {command}")
|
|
288
|
+
report.append("")
|
|
289
|
+
|
|
290
|
+
report.append("RECOMMENDATIONS:")
|
|
291
|
+
report.append(" 1. Review generated turbo.json pipeline configuration")
|
|
292
|
+
report.append(" 2. Adjust output directories based on your build tools")
|
|
293
|
+
report.append(" 3. Configure remote caching: turbo login && turbo link")
|
|
294
|
+
report.append(" 4. Run 'npm install' to install Turborepo")
|
|
295
|
+
report.append(" 5. Test with: turbo run build --dry-run")
|
|
296
|
+
report.append("")
|
|
297
|
+
|
|
298
|
+
if self.dry_run:
|
|
299
|
+
report.append("DRY RUN MODE: No files were modified")
|
|
300
|
+
else:
|
|
301
|
+
report.append("FILES CREATED/MODIFIED:")
|
|
302
|
+
report.append(f" - {self.path / 'turbo.json'}")
|
|
303
|
+
report.append(f" - {self.path / 'package.json'}")
|
|
304
|
+
|
|
305
|
+
report.append("")
|
|
306
|
+
report.append("=" * 60)
|
|
307
|
+
|
|
308
|
+
return "\n".join(report)
|
|
309
|
+
|
|
310
|
+
def write_files(self, turbo_config: Dict, updated_package_json: Dict) -> None:
|
|
311
|
+
"""Write configuration files."""
|
|
312
|
+
if self.dry_run:
|
|
313
|
+
print("\nDRY RUN - Files that would be created/modified:")
|
|
314
|
+
print(f" - {self.path / 'turbo.json'}")
|
|
315
|
+
print(f" - {self.path / 'package.json'}")
|
|
316
|
+
return
|
|
317
|
+
|
|
318
|
+
print("Writing files...")
|
|
319
|
+
|
|
320
|
+
# Write turbo.json
|
|
321
|
+
turbo_json_path = self.path / "turbo.json"
|
|
322
|
+
with open(turbo_json_path, "w") as f:
|
|
323
|
+
json.dump(turbo_config, f, indent=2)
|
|
324
|
+
print(f" ✓ Created {turbo_json_path}")
|
|
325
|
+
|
|
326
|
+
# Write updated package.json
|
|
327
|
+
package_json_path = self.path / "package.json"
|
|
328
|
+
with open(package_json_path, "w") as f:
|
|
329
|
+
json.dump(updated_package_json, f, indent=2)
|
|
330
|
+
print(f" ✓ Updated {package_json_path}")
|
|
331
|
+
|
|
332
|
+
def migrate(self) -> None:
|
|
333
|
+
"""Run migration process."""
|
|
334
|
+
try:
|
|
335
|
+
print(f"Migrating monorepo to Turborepo: {self.path}")
|
|
336
|
+
print(f"Dry run: {self.dry_run}")
|
|
337
|
+
print()
|
|
338
|
+
|
|
339
|
+
self.validate_path()
|
|
340
|
+
self.analyze_workspace()
|
|
341
|
+
self.discover_packages()
|
|
342
|
+
|
|
343
|
+
common_scripts = self.analyze_scripts()
|
|
344
|
+
turbo_config = self.generate_turbo_config(common_scripts)
|
|
345
|
+
updated_package_json = self.update_root_package_json()
|
|
346
|
+
|
|
347
|
+
print()
|
|
348
|
+
self.write_files(turbo_config, updated_package_json)
|
|
349
|
+
|
|
350
|
+
print()
|
|
351
|
+
report = self.generate_migration_report(turbo_config, updated_package_json)
|
|
352
|
+
print(report)
|
|
353
|
+
|
|
354
|
+
except Exception as e:
|
|
355
|
+
print(f"Error: {e}", file=sys.stderr)
|
|
356
|
+
sys.exit(1)
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
def main():
|
|
360
|
+
"""CLI entry point."""
|
|
361
|
+
parser = argparse.ArgumentParser(
|
|
362
|
+
description="Migrate existing monorepo to Turborepo"
|
|
363
|
+
)
|
|
364
|
+
parser.add_argument(
|
|
365
|
+
"--path",
|
|
366
|
+
type=Path,
|
|
367
|
+
default=Path.cwd(),
|
|
368
|
+
help="Path to monorepo (default: current directory)",
|
|
369
|
+
)
|
|
370
|
+
parser.add_argument(
|
|
371
|
+
"--dry-run",
|
|
372
|
+
action="store_true",
|
|
373
|
+
help="Preview changes without writing files",
|
|
374
|
+
)
|
|
375
|
+
parser.add_argument(
|
|
376
|
+
"--package-manager",
|
|
377
|
+
choices=["npm", "yarn", "pnpm", "bun"],
|
|
378
|
+
default="npm",
|
|
379
|
+
help="Package manager (default: npm)",
|
|
380
|
+
)
|
|
381
|
+
|
|
382
|
+
args = parser.parse_args()
|
|
383
|
+
|
|
384
|
+
migrator = TurborepoMigrator(
|
|
385
|
+
path=args.path,
|
|
386
|
+
dry_run=args.dry_run,
|
|
387
|
+
package_manager=args.package_manager,
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
migrator.migrate()
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
if __name__ == "__main__":
|
|
394
|
+
main()
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Development Rules
|
|
2
|
+
|
|
3
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
4
|
+
**IMPORTANT:** You ALWAYS follow these principles: **YAGNI (You Aren't Gonna Need It) - KISS (Keep It Simple, Stupid) - DRY (Don't Repeat Yourself)**
|
|
5
|
+
|
|
6
|
+
## General
|
|
7
|
+
- **File Naming**: Use kebab-case for file names with a meaningful name that describes the purpose of the file, doesn't matter if the file name is long, just make sure when LLMs read the file names while using Grep or other tools, they can understand the purpose of the file right away without reading the file content.
|
|
8
|
+
- **File Size Management**: Keep individual code files under 200 lines for optimal context management
|
|
9
|
+
- Split large files into smaller, focused components/modules
|
|
10
|
+
- Use composition over inheritance for complex widgets
|
|
11
|
+
- Extract utility functions into separate modules
|
|
12
|
+
- Create dedicated service classes for business logic
|
|
13
|
+
- When looking for docs, activate `docs-seeker` skill (`context7` reference) for exploring latest docs.
|
|
14
|
+
- Use `gh` bash command to interact with Github features if needed
|
|
15
|
+
- Use `psql` bash command to query Postgres database for debugging if needed
|
|
16
|
+
- Use `sequential-thinking` and `debugging` skills for sequential thinking, analyzing code, debugging, etc. if needed
|
|
17
|
+
- **[IMPORTANT]** Follow the codebase structure and code standards in `./docs` during implementation.
|
|
18
|
+
- **[IMPORTANT]** Do not just simulate the implementation or mocking them, always implement the real code.
|
|
19
|
+
|
|
20
|
+
## Code Quality Guidelines
|
|
21
|
+
- Read and follow codebase structure and code standards in `./docs`
|
|
22
|
+
- Don't be too harsh on code linting, but **make sure there are no syntax errors and code are compilable**
|
|
23
|
+
- Prioritize functionality and readability over strict style enforcement and code formatting
|
|
24
|
+
- Use reasonable code quality standards that enhance developer productivity
|
|
25
|
+
- Use try catch error handling & cover security standards
|
|
26
|
+
- Use `code-reviewer` agent to review code after every implementation
|
|
27
|
+
|
|
28
|
+
## Pre-commit/Push Rules
|
|
29
|
+
- Run linting before commit
|
|
30
|
+
- Run tests before push (DO NOT ignore failed tests just to pass the build or github actions)
|
|
31
|
+
- Keep commits focused on the actual code changes
|
|
32
|
+
- **DO NOT** commit and push any confidential information (such as dotenv files, API keys, database credentials, etc.) to git repository!
|
|
33
|
+
- Create clean, professional commit messages without AI references. Use conventional commit format.
|
|
34
|
+
|
|
35
|
+
## Code Implementation
|
|
36
|
+
- Write clean, readable, and maintainable code
|
|
37
|
+
- Follow established architectural patterns
|
|
38
|
+
- Implement features according to specifications
|
|
39
|
+
- Handle edge cases and error scenarios
|
|
40
|
+
- **DO NOT** create new enhanced files, update to the existing files directly.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Project Documentation Management
|
|
2
|
+
|
|
3
|
+
### Roadmap & Changelog Maintenance
|
|
4
|
+
- **Project Roadmap** (`./docs/development-roadmap.md`): Living document tracking project phases, milestones, and progress
|
|
5
|
+
- **Project Changelog** (`./docs/project-changelog.md`): Detailed record of all significant changes, features, and fixes
|
|
6
|
+
- **System Architecture** (`./docs/system-architecture.md`): Detailed record of all significant changes, features, and fixes
|
|
7
|
+
- **Code Standards** (`./docs/code-standards.md`): Detailed record of all significant changes, features, and fixes
|
|
8
|
+
|
|
9
|
+
### Automatic Updates Required
|
|
10
|
+
- **After Feature Implementation**: Update roadmap progress status and changelog entries
|
|
11
|
+
- **After Major Milestones**: Review and adjust roadmap phases, update success metrics
|
|
12
|
+
- **After Bug Fixes**: Document fixes in changelog with severity and impact
|
|
13
|
+
- **After Security Updates**: Record security improvements and version updates
|
|
14
|
+
- **Weekly Reviews**: Update progress percentages and milestone statuses
|
|
15
|
+
|
|
16
|
+
### Documentation Triggers
|
|
17
|
+
The `project-manager` agent MUST update these documents when:
|
|
18
|
+
- A development phase status changes (e.g., from "In Progress" to "Complete")
|
|
19
|
+
- Major features are implemented or released
|
|
20
|
+
- Significant bugs are resolved or security patches applied
|
|
21
|
+
- Project timeline or scope adjustments are made
|
|
22
|
+
- External dependencies or breaking changes occur
|
|
23
|
+
|
|
24
|
+
### Update Protocol
|
|
25
|
+
1. **Before Updates**: Always read current roadmap and changelog status
|
|
26
|
+
2. **During Updates**: Maintain version consistency and proper formatting
|
|
27
|
+
3. **After Updates**: Verify links, dates, and cross-references are accurate
|
|
28
|
+
4. **Quality Check**: Ensure updates align with actual implementation progress
|
|
29
|
+
|
|
30
|
+
### Plans
|
|
31
|
+
|
|
32
|
+
### Plan Location
|
|
33
|
+
Save plans in `./plans` directory with timestamp and descriptive name.
|
|
34
|
+
|
|
35
|
+
**Format:** Use naming pattern from `## Naming` section injected by hooks.
|
|
36
|
+
|
|
37
|
+
**Example:** `plans/251101-1505-authentication-and-profile-implementation/`
|
|
38
|
+
|
|
39
|
+
#### File Organization
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
plans/
|
|
43
|
+
├── 20251101-1505-authentication-and-profile-implementation/
|
|
44
|
+
├── research/
|
|
45
|
+
│ ├── researcher-XX-report.md
|
|
46
|
+
│ └── ...
|
|
47
|
+
│ ├── reports/
|
|
48
|
+
│ │ ├── scout-report.md
|
|
49
|
+
│ │ ├── researcher-report.md
|
|
50
|
+
│ │ └── ...
|
|
51
|
+
│ ├── plan.md # Overview access point
|
|
52
|
+
│ ├── phase-01-setup-environment.md # Setup environment
|
|
53
|
+
│ ├── phase-02-implement-database.md # Database models
|
|
54
|
+
│ ├── phase-03-implement-api-endpoints.md # API endpoints
|
|
55
|
+
│ ├── phase-04-implement-ui-components.md # UI components
|
|
56
|
+
│ ├── phase-05-implement-authentication.md # Auth & authorization
|
|
57
|
+
│ ├── phase-06-implement-profile.md # Profile page
|
|
58
|
+
│ └── phase-07-write-tests.md # Tests
|
|
59
|
+
└── ...
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### File Structure
|
|
63
|
+
|
|
64
|
+
##### Overview Plan (plan.md)
|
|
65
|
+
- Keep generic and under 80 lines
|
|
66
|
+
- List each phase with status/progress
|
|
67
|
+
- Link to detailed phase files
|
|
68
|
+
- Key dependencies
|
|
69
|
+
|
|
70
|
+
##### Phase Files (phase-XX-name.md)
|
|
71
|
+
Fully respect the `./docs/development-rules.md` file.
|
|
72
|
+
Each phase file should contain:
|
|
73
|
+
|
|
74
|
+
**Context Links**
|
|
75
|
+
- Links to related reports, files, documentation
|
|
76
|
+
|
|
77
|
+
**Overview**
|
|
78
|
+
- Priority
|
|
79
|
+
- Current status
|
|
80
|
+
- Brief description
|
|
81
|
+
|
|
82
|
+
**Key Insights**
|
|
83
|
+
- Important findings from research
|
|
84
|
+
- Critical considerations
|
|
85
|
+
|
|
86
|
+
**Requirements**
|
|
87
|
+
- Functional requirements
|
|
88
|
+
- Non-functional requirements
|
|
89
|
+
|
|
90
|
+
**Architecture**
|
|
91
|
+
- System design
|
|
92
|
+
- Component interactions
|
|
93
|
+
- Data flow
|
|
94
|
+
|
|
95
|
+
**Related Code Files**
|
|
96
|
+
- List of files to modify
|
|
97
|
+
- List of files to create
|
|
98
|
+
- List of files to delete
|
|
99
|
+
|
|
100
|
+
**Implementation Steps**
|
|
101
|
+
- Detailed, numbered steps
|
|
102
|
+
- Specific instructions
|
|
103
|
+
|
|
104
|
+
**Todo List**
|
|
105
|
+
- Checkbox list for tracking
|
|
106
|
+
|
|
107
|
+
**Success Criteria**
|
|
108
|
+
- Definition of done
|
|
109
|
+
- Validation methods
|
|
110
|
+
|
|
111
|
+
**Risk Assessment**
|
|
112
|
+
- Potential issues
|
|
113
|
+
- Mitigation strategies
|
|
114
|
+
|
|
115
|
+
**Security Considerations**
|
|
116
|
+
- Auth/authorization
|
|
117
|
+
- Data protection
|
|
118
|
+
|
|
119
|
+
**Next Steps**
|
|
120
|
+
- Dependencies
|
|
121
|
+
- Follow-up tasks
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Orchestration Protocol
|
|
2
|
+
|
|
3
|
+
#### Sequential Chaining
|
|
4
|
+
Chain subagents when tasks have dependencies or require outputs from previous steps:
|
|
5
|
+
- **Planning → Implementation → Testing → Review**: Use for feature development
|
|
6
|
+
- **Research → Design → Code → Documentation**: Use for new system components
|
|
7
|
+
- Each agent completes fully before the next begins
|
|
8
|
+
- Pass context and outputs between agents in the chain
|
|
9
|
+
|
|
10
|
+
#### Parallel Execution
|
|
11
|
+
Spawn multiple subagents simultaneously for independent tasks:
|
|
12
|
+
- **Code + Tests + Docs**: When implementing separate, non-conflicting components
|
|
13
|
+
- **Multiple Feature Branches**: Different agents working on isolated features
|
|
14
|
+
- **Cross-platform Development**: iOS and Android specific implementations
|
|
15
|
+
- **Careful Coordination**: Ensure no file conflicts or shared resource contention
|
|
16
|
+
- **Merge Strategy**: Plan integration points before parallel execution begins
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Primary Workflow
|
|
2
|
+
|
|
3
|
+
**IMPORTANT:** Analyze the skills catalog and activate the skills that are needed for the task during the process.
|
|
4
|
+
**IMPORTANT**: Ensure token efficiency while maintaining high quality.
|
|
5
|
+
|
|
6
|
+
#### 1. Code Implementation
|
|
7
|
+
- Before you start, delegate to `planner` agent to create a implementation plan with TODO tasks in `./plans` directory.
|
|
8
|
+
- When in planning phase, use multiple `researcher` agents in parallel to conduct research on different relevant technical topics and report back to `planner` agent to create implementation plan.
|
|
9
|
+
- Write clean, readable, and maintainable code
|
|
10
|
+
- Follow established architectural patterns
|
|
11
|
+
- Implement features according to specifications
|
|
12
|
+
- Handle edge cases and error scenarios
|
|
13
|
+
- **DO NOT** create new enhanced files, update to the existing files directly.
|
|
14
|
+
- **[IMPORTANT]** After creating or modifying code file, run compile command/script to check for any compile errors.
|
|
15
|
+
|
|
16
|
+
#### 2. Testing
|
|
17
|
+
- Delegate to `tester` agent to run tests and analyze the summary report.
|
|
18
|
+
- Write comprehensive unit tests
|
|
19
|
+
- Ensure high code coverage
|
|
20
|
+
- Test error scenarios
|
|
21
|
+
- Validate performance requirements
|
|
22
|
+
- Tests are critical for ensuring code quality and reliability, **DO NOT** ignore failing tests just to pass the build.
|
|
23
|
+
- **IMPORTANT:** make sure you don't use fake data, mocks, cheats, tricks, temporary solutions, just to pass the build or github actions.
|
|
24
|
+
- **IMPORTANT:** Always fix failing tests follow the recommendations and delegate to `tester` agent to run tests again, only finish your session when all tests pass.
|
|
25
|
+
|
|
26
|
+
#### 3. Code Quality
|
|
27
|
+
- After finish implementation, delegate to `code-reviewer` agent to review code.
|
|
28
|
+
- Follow coding standards and conventions
|
|
29
|
+
- Write self-documenting code
|
|
30
|
+
- Add meaningful comments for complex logic
|
|
31
|
+
- Optimize for performance and maintainability
|
|
32
|
+
|
|
33
|
+
#### 4. Integration
|
|
34
|
+
- Always follow the plan given by `planner` agent
|
|
35
|
+
- Ensure seamless integration with existing code
|
|
36
|
+
- Follow API contracts precisely
|
|
37
|
+
- Maintain backward compatibility
|
|
38
|
+
- Document breaking changes
|
|
39
|
+
- Delegate to `docs-manager` agent to update docs in `./docs` directory if any.
|
|
40
|
+
|
|
41
|
+
#### 5. Debugging
|
|
42
|
+
- When a user report bugs or issues on the server or a CI/CD pipeline, delegate to `debugger` agent to run tests and analyze the summary report.
|
|
43
|
+
- Read the summary report from `debugger` agent and implement the fix.
|
|
44
|
+
- Delegate to `tester` agent to run tests and analyze the summary report.
|
|
45
|
+
- If the `tester` agent reports failed tests, fix them follow the recommendations and repeat from the **Step 2**.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "workflows",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"items": [
|
|
5
|
+
{
|
|
6
|
+
"name": "development-rules",
|
|
7
|
+
"title": "Development Rules",
|
|
8
|
+
"description": "Core development rules covering file naming, code quality, pre-commit/push rules, and implementation guidelines",
|
|
9
|
+
"files": ["workflows/development-rules.md"],
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"skills": ["docs-seeker", "sequential-thinking", "debugging"],
|
|
12
|
+
"agents": ["code-reviewer"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "documentation-management",
|
|
17
|
+
"title": "Documentation Management",
|
|
18
|
+
"description": "Project documentation management including roadmap, changelog maintenance, automatic updates, and plan file organization",
|
|
19
|
+
"files": ["workflows/documentation-management.md"],
|
|
20
|
+
"dependencies": {}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "orchestration-protocol",
|
|
24
|
+
"title": "Orchestration Protocol",
|
|
25
|
+
"description": "Subagent orchestration patterns for sequential chaining and parallel execution of tasks",
|
|
26
|
+
"files": ["workflows/orchestration-protocol.md"],
|
|
27
|
+
"dependencies": {}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "primary-workflow",
|
|
31
|
+
"title": "Primary Workflow",
|
|
32
|
+
"description": "Main development workflow covering code implementation, testing, code quality, integration, and debugging steps",
|
|
33
|
+
"files": ["workflows/primary-workflow.md"],
|
|
34
|
+
"dependencies": {}
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|