@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.
Files changed (415) hide show
  1. package/License +21 -0
  2. package/README.md +142 -0
  3. package/bin/index.js +5 -0
  4. package/dist/index.js +1 -0
  5. package/package.json +65 -0
  6. package/templates/claude/agents/brainstormer.md +113 -0
  7. package/templates/claude/agents/code-reviewer.md +157 -0
  8. package/templates/claude/agents/copywriter.md +110 -0
  9. package/templates/claude/agents/database-admin.md +92 -0
  10. package/templates/claude/agents/debugger.md +137 -0
  11. package/templates/claude/agents/docs-manager.md +208 -0
  12. package/templates/claude/agents/fullstack-developer.md +95 -0
  13. package/templates/claude/agents/git-manager.md +394 -0
  14. package/templates/claude/agents/journal-writer.md +113 -0
  15. package/templates/claude/agents/mcp-manager.md +89 -0
  16. package/templates/claude/agents/planner.md +108 -0
  17. package/templates/claude/agents/project-manager.md +125 -0
  18. package/templates/claude/agents/registry.json +304 -0
  19. package/templates/claude/agents/researcher.md +37 -0
  20. package/templates/claude/agents/scout-external.md +140 -0
  21. package/templates/claude/agents/scout.md +106 -0
  22. package/templates/claude/agents/tester.md +105 -0
  23. package/templates/claude/agents/ui-ux-designer.md +208 -0
  24. package/templates/claude/commands/ask.md +56 -0
  25. package/templates/claude/commands/bootstrap/auto/fast.md +106 -0
  26. package/templates/claude/commands/bootstrap/auto/parallel.md +64 -0
  27. package/templates/claude/commands/bootstrap/auto.md +110 -0
  28. package/templates/claude/commands/bootstrap.md +130 -0
  29. package/templates/claude/commands/brainstorm.md +75 -0
  30. package/templates/claude/commands/code/auto.md +198 -0
  31. package/templates/claude/commands/code/no-test.md +172 -0
  32. package/templates/claude/commands/code/parallel.md +100 -0
  33. package/templates/claude/commands/code.md +197 -0
  34. package/templates/claude/commands/coding-level.md +37 -0
  35. package/templates/claude/commands/content/cro.md +41 -0
  36. package/templates/claude/commands/content/enhance.md +12 -0
  37. package/templates/claude/commands/content/fast.md +11 -0
  38. package/templates/claude/commands/content/good.md +14 -0
  39. package/templates/claude/commands/cook/auto/fast.md +26 -0
  40. package/templates/claude/commands/cook/auto/parallel.md +49 -0
  41. package/templates/claude/commands/cook/auto.md +15 -0
  42. package/templates/claude/commands/cook.md +101 -0
  43. package/templates/claude/commands/debug.md +13 -0
  44. package/templates/claude/commands/docs/init.md +37 -0
  45. package/templates/claude/commands/docs/summarize.md +22 -0
  46. package/templates/claude/commands/docs/update.md +78 -0
  47. package/templates/claude/commands/fix/ci.md +17 -0
  48. package/templates/claude/commands/fix/fast.md +18 -0
  49. package/templates/claude/commands/fix/hard.md +35 -0
  50. package/templates/claude/commands/fix/logs.md +26 -0
  51. package/templates/claude/commands/fix/parallel.md +54 -0
  52. package/templates/claude/commands/fix/test.md +20 -0
  53. package/templates/claude/commands/fix/types.md +9 -0
  54. package/templates/claude/commands/fix/ui.md +33 -0
  55. package/templates/claude/commands/fix.md +43 -0
  56. package/templates/claude/commands/git/cm.md +5 -0
  57. package/templates/claude/commands/git/cp.md +4 -0
  58. package/templates/claude/commands/git/merge.md +40 -0
  59. package/templates/claude/commands/git/pr.md +50 -0
  60. package/templates/claude/commands/journal.md +7 -0
  61. package/templates/claude/commands/kanban.md +99 -0
  62. package/templates/claude/commands/plan/archive.md +57 -0
  63. package/templates/claude/commands/plan/ci.md +33 -0
  64. package/templates/claude/commands/plan/cro.md +67 -0
  65. package/templates/claude/commands/plan/fast.md +66 -0
  66. package/templates/claude/commands/plan/hard.md +92 -0
  67. package/templates/claude/commands/plan/parallel.md +129 -0
  68. package/templates/claude/commands/plan/two.md +45 -0
  69. package/templates/claude/commands/plan/validate.md +117 -0
  70. package/templates/claude/commands/plan.md +30 -0
  71. package/templates/claude/commands/preview.md +87 -0
  72. package/templates/claude/commands/registry.json +313 -0
  73. package/templates/claude/commands/review/codebase/parallel.md +122 -0
  74. package/templates/claude/commands/review/codebase.md +47 -0
  75. package/templates/claude/commands/scout/ext.md +35 -0
  76. package/templates/claude/commands/scout.md +28 -0
  77. package/templates/claude/commands/skill/add.md +36 -0
  78. package/templates/claude/commands/skill/create.md +29 -0
  79. package/templates/claude/commands/skill/fix-logs.md +22 -0
  80. package/templates/claude/commands/skill/optimize/auto.md +25 -0
  81. package/templates/claude/commands/skill/optimize.md +34 -0
  82. package/templates/claude/commands/skill/plan.md +45 -0
  83. package/templates/claude/commands/test/ui.md +91 -0
  84. package/templates/claude/commands/test.md +8 -0
  85. package/templates/claude/commands/use-mcp.md +34 -0
  86. package/templates/claude/commands/watzup.md +8 -0
  87. package/templates/claude/commands/worktree.md +126 -0
  88. package/templates/claude/hooks/dev-rules-reminder.cjs +258 -0
  89. package/templates/claude/hooks/docs/README.md +42 -0
  90. package/templates/claude/hooks/lib/cctk-config-utils.cjs +751 -0
  91. package/templates/claude/hooks/lib/cctk-paths.cjs +106 -0
  92. package/templates/claude/hooks/lib/context-tracker.cjs +346 -0
  93. package/templates/claude/hooks/privacy-block.cjs +289 -0
  94. package/templates/claude/hooks/registry.json +77 -0
  95. package/templates/claude/hooks/scout-block/broad-pattern-detector.cjs +293 -0
  96. package/templates/claude/hooks/scout-block/error-formatter.cjs +156 -0
  97. package/templates/claude/hooks/scout-block/path-extractor.cjs +359 -0
  98. package/templates/claude/hooks/scout-block/pattern-matcher.cjs +184 -0
  99. package/templates/claude/hooks/scout-block/vendor/ignore.js +626 -0
  100. package/templates/claude/hooks/scout-block.cjs +167 -0
  101. package/templates/claude/hooks/session-end.cjs +35 -0
  102. package/templates/claude/hooks/session-init.cjs +214 -0
  103. package/templates/claude/hooks/subagent-init.cjs +161 -0
  104. package/templates/claude/hooks/write-compact-marker.cjs +153 -0
  105. package/templates/claude/output-styles/coding-level-1.md +148 -0
  106. package/templates/claude/output-styles/coding-level-2.md +159 -0
  107. package/templates/claude/output-styles/coding-level-3.md +91 -0
  108. package/templates/claude/scripts/README.md +33 -0
  109. package/templates/claude/scripts/generate-catalogs.cjs +318 -0
  110. package/templates/claude/scripts/registry.json +48 -0
  111. package/templates/claude/scripts/set-active-plan.cjs +45 -0
  112. package/templates/claude/scripts/validate-docs.cjs +447 -0
  113. package/templates/claude/scripts/worktree.cjs +658 -0
  114. package/templates/claude/skills/README.md +112 -0
  115. package/templates/claude/skills/ai-artist/SKILL.md +75 -0
  116. package/templates/claude/skills/ai-artist/references/advanced-techniques.md +184 -0
  117. package/templates/claude/skills/ai-artist/references/domain-code.md +66 -0
  118. package/templates/claude/skills/ai-artist/references/domain-data.md +72 -0
  119. package/templates/claude/skills/ai-artist/references/domain-marketing.md +66 -0
  120. package/templates/claude/skills/ai-artist/references/domain-patterns.md +33 -0
  121. package/templates/claude/skills/ai-artist/references/domain-writing.md +68 -0
  122. package/templates/claude/skills/ai-artist/references/image-prompting.md +141 -0
  123. package/templates/claude/skills/ai-artist/references/llm-prompting.md +165 -0
  124. package/templates/claude/skills/ai-artist/references/nano-banana.md +59 -0
  125. package/templates/claude/skills/ai-artist/references/reasoning-techniques.md +201 -0
  126. package/templates/claude/skills/backend-development/SKILL.md +95 -0
  127. package/templates/claude/skills/backend-development/references/backend-api-design.md +495 -0
  128. package/templates/claude/skills/backend-development/references/backend-architecture.md +454 -0
  129. package/templates/claude/skills/backend-development/references/backend-authentication.md +338 -0
  130. package/templates/claude/skills/backend-development/references/backend-code-quality.md +659 -0
  131. package/templates/claude/skills/backend-development/references/backend-debugging.md +904 -0
  132. package/templates/claude/skills/backend-development/references/backend-devops.md +494 -0
  133. package/templates/claude/skills/backend-development/references/backend-mindset.md +387 -0
  134. package/templates/claude/skills/backend-development/references/backend-performance.md +397 -0
  135. package/templates/claude/skills/backend-development/references/backend-security.md +290 -0
  136. package/templates/claude/skills/backend-development/references/backend-technologies.md +256 -0
  137. package/templates/claude/skills/backend-development/references/backend-testing.md +429 -0
  138. package/templates/claude/skills/better-auth/SKILL.md +204 -0
  139. package/templates/claude/skills/better-auth/references/advanced-features.md +553 -0
  140. package/templates/claude/skills/better-auth/references/database-integration.md +577 -0
  141. package/templates/claude/skills/better-auth/references/email-password-auth.md +416 -0
  142. package/templates/claude/skills/better-auth/references/oauth-providers.md +430 -0
  143. package/templates/claude/skills/better-auth/scripts/better_auth_init.py +521 -0
  144. package/templates/claude/skills/chrome-devtools/SKILL.md +473 -0
  145. package/templates/claude/skills/chrome-devtools/references/cdp-domains.md +694 -0
  146. package/templates/claude/skills/chrome-devtools/references/performance-guide.md +940 -0
  147. package/templates/claude/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
  148. package/templates/claude/skills/chrome-devtools/scripts/README.md +288 -0
  149. package/templates/claude/skills/chrome-devtools/scripts/aria-snapshot.js +368 -0
  150. package/templates/claude/skills/chrome-devtools/scripts/click.js +92 -0
  151. package/templates/claude/skills/chrome-devtools/scripts/console.js +85 -0
  152. package/templates/claude/skills/chrome-devtools/scripts/evaluate.js +59 -0
  153. package/templates/claude/skills/chrome-devtools/scripts/fill.js +84 -0
  154. package/templates/claude/skills/chrome-devtools/scripts/inject-auth.js +247 -0
  155. package/templates/claude/skills/chrome-devtools/scripts/install-deps.sh +11 -0
  156. package/templates/claude/skills/chrome-devtools/scripts/install.sh +36 -0
  157. package/templates/claude/skills/chrome-devtools/scripts/lib/browser.js +335 -0
  158. package/templates/claude/skills/chrome-devtools/scripts/lib/selector.js +183 -0
  159. package/templates/claude/skills/chrome-devtools/scripts/navigate.js +60 -0
  160. package/templates/claude/skills/chrome-devtools/scripts/network.js +113 -0
  161. package/templates/claude/skills/chrome-devtools/scripts/package.json +16 -0
  162. package/templates/claude/skills/chrome-devtools/scripts/performance.js +159 -0
  163. package/templates/claude/skills/chrome-devtools/scripts/screenshot.js +212 -0
  164. package/templates/claude/skills/chrome-devtools/scripts/select-ref.js +151 -0
  165. package/templates/claude/skills/chrome-devtools/scripts/snapshot.js +143 -0
  166. package/templates/claude/skills/chrome-devtools/scripts/ws-debug.js +47 -0
  167. package/templates/claude/skills/chrome-devtools/scripts/ws-full-debug.js +115 -0
  168. package/templates/claude/skills/claude-code/references/advanced-features.md +399 -0
  169. package/templates/claude/skills/claude-code/references/agent-skills.md +399 -0
  170. package/templates/claude/skills/claude-code/references/api-reference.md +498 -0
  171. package/templates/claude/skills/claude-code/references/best-practices.md +447 -0
  172. package/templates/claude/skills/claude-code/references/cicd-integration.md +428 -0
  173. package/templates/claude/skills/claude-code/references/common-workflows.md +107 -0
  174. package/templates/claude/skills/claude-code/references/configuration.md +480 -0
  175. package/templates/claude/skills/claude-code/references/enterprise-features.md +472 -0
  176. package/templates/claude/skills/claude-code/references/getting-started.md +244 -0
  177. package/templates/claude/skills/claude-code/references/hooks-and-plugins.md +444 -0
  178. package/templates/claude/skills/claude-code/references/hooks-comprehensive.md +622 -0
  179. package/templates/claude/skills/claude-code/references/ide-integration.md +316 -0
  180. package/templates/claude/skills/claude-code/references/mcp-integration.md +386 -0
  181. package/templates/claude/skills/claude-code/references/slash-commands.md +460 -0
  182. package/templates/claude/skills/claude-code/references/troubleshooting.md +455 -0
  183. package/templates/claude/skills/claude-code/skill.md +60 -0
  184. package/templates/claude/skills/code-review/SKILL.md +143 -0
  185. package/templates/claude/skills/code-review/references/code-review-reception.md +209 -0
  186. package/templates/claude/skills/code-review/references/requesting-code-review.md +105 -0
  187. package/templates/claude/skills/code-review/references/verification-before-completion.md +139 -0
  188. package/templates/claude/skills/context-engineering/SKILL.md +86 -0
  189. package/templates/claude/skills/context-engineering/references/context-compression.md +84 -0
  190. package/templates/claude/skills/context-engineering/references/context-degradation.md +93 -0
  191. package/templates/claude/skills/context-engineering/references/context-fundamentals.md +75 -0
  192. package/templates/claude/skills/context-engineering/references/context-optimization.md +82 -0
  193. package/templates/claude/skills/context-engineering/references/evaluation.md +89 -0
  194. package/templates/claude/skills/context-engineering/references/memory-systems.md +88 -0
  195. package/templates/claude/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  196. package/templates/claude/skills/context-engineering/references/project-development.md +97 -0
  197. package/templates/claude/skills/context-engineering/references/tool-design.md +86 -0
  198. package/templates/claude/skills/context-engineering/scripts/compression_evaluator.py +329 -0
  199. package/templates/claude/skills/context-engineering/scripts/context_analyzer.py +294 -0
  200. package/templates/claude/skills/databases/SKILL.md +232 -0
  201. package/templates/claude/skills/databases/references/mongodb-aggregation.md +447 -0
  202. package/templates/claude/skills/databases/references/mongodb-atlas.md +465 -0
  203. package/templates/claude/skills/databases/references/mongodb-crud.md +408 -0
  204. package/templates/claude/skills/databases/references/mongodb-indexing.md +442 -0
  205. package/templates/claude/skills/databases/references/postgresql-administration.md +594 -0
  206. package/templates/claude/skills/databases/references/postgresql-performance.md +527 -0
  207. package/templates/claude/skills/databases/references/postgresql-psql-cli.md +467 -0
  208. package/templates/claude/skills/databases/references/postgresql-queries.md +475 -0
  209. package/templates/claude/skills/databases/scripts/db_backup.py +502 -0
  210. package/templates/claude/skills/databases/scripts/db_migrate.py +414 -0
  211. package/templates/claude/skills/databases/scripts/db_performance_check.py +445 -0
  212. package/templates/claude/skills/debugging/SKILL.md +84 -0
  213. package/templates/claude/skills/debugging/references/defense-in-depth.md +124 -0
  214. package/templates/claude/skills/debugging/references/root-cause-tracing.md +122 -0
  215. package/templates/claude/skills/debugging/references/systematic-debugging.md +102 -0
  216. package/templates/claude/skills/debugging/references/verification.md +123 -0
  217. package/templates/claude/skills/debugging/scripts/find-polluter.sh +63 -0
  218. package/templates/claude/skills/debugging/scripts/find-polluter.test.md +102 -0
  219. package/templates/claude/skills/devops/SKILL.md +293 -0
  220. package/templates/claude/skills/devops/references/browser-rendering.md +305 -0
  221. package/templates/claude/skills/devops/references/cloudflare-d1-kv.md +123 -0
  222. package/templates/claude/skills/devops/references/cloudflare-platform.md +271 -0
  223. package/templates/claude/skills/devops/references/cloudflare-r2-storage.md +280 -0
  224. package/templates/claude/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  225. package/templates/claude/skills/devops/references/cloudflare-workers-apis.md +309 -0
  226. package/templates/claude/skills/devops/references/cloudflare-workers-basics.md +418 -0
  227. package/templates/claude/skills/devops/references/docker-basics.md +297 -0
  228. package/templates/claude/skills/devops/references/docker-compose.md +292 -0
  229. package/templates/claude/skills/devops/references/gcloud-platform.md +307 -0
  230. package/templates/claude/skills/devops/references/gcloud-services.md +304 -0
  231. package/templates/claude/skills/devops/scripts/cloudflare_deploy.py +269 -0
  232. package/templates/claude/skills/devops/scripts/docker_optimize.py +320 -0
  233. package/templates/claude/skills/docs-seeker/SKILL.md +95 -0
  234. package/templates/claude/skills/docs-seeker/package.json +24 -0
  235. package/templates/claude/skills/docs-seeker/references/advanced.md +78 -0
  236. package/templates/claude/skills/docs-seeker/references/context7-patterns.md +68 -0
  237. package/templates/claude/skills/docs-seeker/references/errors.md +68 -0
  238. package/templates/claude/skills/docs-seeker/scripts/analyze-llms-txt.js +245 -0
  239. package/templates/claude/skills/docs-seeker/scripts/detect-topic.js +172 -0
  240. package/templates/claude/skills/docs-seeker/scripts/fetch-docs.js +212 -0
  241. package/templates/claude/skills/docs-seeker/workflows/library-search.md +87 -0
  242. package/templates/claude/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  243. package/templates/claude/skills/docs-seeker/workflows/topic-search.md +77 -0
  244. package/templates/claude/skills/frontend-design/SKILL.md +85 -0
  245. package/templates/claude/skills/frontend-design/references/analysis-best-practices.md +80 -0
  246. package/templates/claude/skills/frontend-design/references/analysis-prompts.md +141 -0
  247. package/templates/claude/skills/frontend-design/references/analysis-techniques.md +118 -0
  248. package/templates/claude/skills/frontend-design/references/animejs.md +396 -0
  249. package/templates/claude/skills/frontend-design/references/design-extraction-overview.md +71 -0
  250. package/templates/claude/skills/frontend-design/references/extraction-best-practices.md +141 -0
  251. package/templates/claude/skills/frontend-design/references/extraction-output-templates.md +162 -0
  252. package/templates/claude/skills/frontend-design/references/extraction-prompts.md +127 -0
  253. package/templates/claude/skills/frontend-design/references/technical-accessibility.md +119 -0
  254. package/templates/claude/skills/frontend-design/references/technical-best-practices.md +97 -0
  255. package/templates/claude/skills/frontend-design/references/technical-optimization.md +44 -0
  256. package/templates/claude/skills/frontend-design/references/technical-overview.md +90 -0
  257. package/templates/claude/skills/frontend-design/references/technical-workflows.md +150 -0
  258. package/templates/claude/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  259. package/templates/claude/skills/frontend-development/SKILL.md +399 -0
  260. package/templates/claude/skills/frontend-development/resources/common-patterns.md +331 -0
  261. package/templates/claude/skills/frontend-development/resources/complete-examples.md +872 -0
  262. package/templates/claude/skills/frontend-development/resources/component-patterns.md +502 -0
  263. package/templates/claude/skills/frontend-development/resources/data-fetching.md +767 -0
  264. package/templates/claude/skills/frontend-development/resources/file-organization.md +502 -0
  265. package/templates/claude/skills/frontend-development/resources/loading-and-error-states.md +501 -0
  266. package/templates/claude/skills/frontend-development/resources/performance.md +406 -0
  267. package/templates/claude/skills/frontend-development/resources/routing-guide.md +364 -0
  268. package/templates/claude/skills/frontend-development/resources/styling-guide.md +428 -0
  269. package/templates/claude/skills/frontend-development/resources/typescript-standards.md +418 -0
  270. package/templates/claude/skills/markdown-novel-viewer/SKILL.md +272 -0
  271. package/templates/claude/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
  272. package/templates/claude/skills/markdown-novel-viewer/assets/favicon.png +0 -0
  273. package/templates/claude/skills/markdown-novel-viewer/assets/novel-theme.css +872 -0
  274. package/templates/claude/skills/markdown-novel-viewer/assets/reader.js +378 -0
  275. package/templates/claude/skills/markdown-novel-viewer/assets/template.html +85 -0
  276. package/templates/claude/skills/markdown-novel-viewer/package.json +15 -0
  277. package/templates/claude/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
  278. package/templates/claude/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
  279. package/templates/claude/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
  280. package/templates/claude/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +49 -0
  281. package/templates/claude/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
  282. package/templates/claude/skills/markdown-novel-viewer/scripts/server.cjs +398 -0
  283. package/templates/claude/skills/mcp-builder/SKILL.md +328 -0
  284. package/templates/claude/skills/mcp-builder/reference/evaluation.md +602 -0
  285. package/templates/claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
  286. package/templates/claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
  287. package/templates/claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
  288. package/templates/claude/skills/mcp-builder/scripts/connections.py +151 -0
  289. package/templates/claude/skills/mcp-builder/scripts/evaluation.py +381 -0
  290. package/templates/claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  291. package/templates/claude/skills/mcp-builder/scripts/requirements.txt +2 -0
  292. package/templates/claude/skills/mcp-management/README.md +219 -0
  293. package/templates/claude/skills/mcp-management/SKILL.md +209 -0
  294. package/templates/claude/skills/mcp-management/assets/tools.json +3146 -0
  295. package/templates/claude/skills/mcp-management/references/configuration.md +114 -0
  296. package/templates/claude/skills/mcp-management/references/gemini-cli-integration.md +209 -0
  297. package/templates/claude/skills/mcp-management/references/mcp-protocol.md +116 -0
  298. package/templates/claude/skills/mcp-management/scripts/.env.example +10 -0
  299. package/templates/claude/skills/mcp-management/scripts/cli.ts +202 -0
  300. package/templates/claude/skills/mcp-management/scripts/mcp-client.ts +247 -0
  301. package/templates/claude/skills/mcp-management/scripts/package.json +20 -0
  302. package/templates/claude/skills/mcp-management/scripts/tsconfig.json +15 -0
  303. package/templates/claude/skills/media-processing/SKILL.md +91 -0
  304. package/templates/claude/skills/media-processing/references/common-workflows.md +132 -0
  305. package/templates/claude/skills/media-processing/references/ffmpeg-encoding.md +358 -0
  306. package/templates/claude/skills/media-processing/references/ffmpeg-filters.md +503 -0
  307. package/templates/claude/skills/media-processing/references/ffmpeg-streaming.md +395 -0
  308. package/templates/claude/skills/media-processing/references/format-compatibility.md +375 -0
  309. package/templates/claude/skills/media-processing/references/imagemagick-batch.md +612 -0
  310. package/templates/claude/skills/media-processing/references/imagemagick-editing.md +623 -0
  311. package/templates/claude/skills/media-processing/references/rmbg-background-removal.md +66 -0
  312. package/templates/claude/skills/media-processing/references/troubleshooting.md +109 -0
  313. package/templates/claude/skills/media-processing/scripts/README.md +102 -0
  314. package/templates/claude/skills/media-processing/scripts/batch-remove-background.sh +124 -0
  315. package/templates/claude/skills/media-processing/scripts/batch_resize.py +342 -0
  316. package/templates/claude/skills/media-processing/scripts/media_convert.py +311 -0
  317. package/templates/claude/skills/media-processing/scripts/remove-background.sh +96 -0
  318. package/templates/claude/skills/media-processing/scripts/remove-bg-node.js +181 -0
  319. package/templates/claude/skills/mermaidjs-v11/SKILL.md +115 -0
  320. package/templates/claude/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  321. package/templates/claude/skills/mermaidjs-v11/references/configuration.md +232 -0
  322. package/templates/claude/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  323. package/templates/claude/skills/mermaidjs-v11/references/examples.md +344 -0
  324. package/templates/claude/skills/mermaidjs-v11/references/integration.md +310 -0
  325. package/templates/claude/skills/planning/SKILL.md +115 -0
  326. package/templates/claude/skills/planning/references/codebase-understanding.md +62 -0
  327. package/templates/claude/skills/planning/references/output-standards.md +127 -0
  328. package/templates/claude/skills/planning/references/plan-organization.md +150 -0
  329. package/templates/claude/skills/planning/references/research-phase.md +49 -0
  330. package/templates/claude/skills/planning/references/solution-design.md +63 -0
  331. package/templates/claude/skills/plans-kanban/SKILL.md +157 -0
  332. package/templates/claude/skills/plans-kanban/assets/dashboard-template.html +119 -0
  333. package/templates/claude/skills/plans-kanban/assets/dashboard.css +1594 -0
  334. package/templates/claude/skills/plans-kanban/assets/dashboard.js +659 -0
  335. package/templates/claude/skills/plans-kanban/assets/favicon.png +0 -0
  336. package/templates/claude/skills/plans-kanban/package.json +13 -0
  337. package/templates/claude/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +941 -0
  338. package/templates/claude/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
  339. package/templates/claude/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
  340. package/templates/claude/skills/plans-kanban/scripts/lib/plan-parser.cjs +194 -0
  341. package/templates/claude/skills/plans-kanban/scripts/lib/plan-scanner.cjs +277 -0
  342. package/templates/claude/skills/plans-kanban/scripts/lib/port-finder.cjs +49 -0
  343. package/templates/claude/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
  344. package/templates/claude/skills/plans-kanban/scripts/server.cjs +249 -0
  345. package/templates/claude/skills/problem-solving/SKILL.md +96 -0
  346. package/templates/claude/skills/problem-solving/references/attribution.md +69 -0
  347. package/templates/claude/skills/problem-solving/references/collision-zone-thinking.md +79 -0
  348. package/templates/claude/skills/problem-solving/references/inversion-exercise.md +91 -0
  349. package/templates/claude/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
  350. package/templates/claude/skills/problem-solving/references/scale-game.md +95 -0
  351. package/templates/claude/skills/problem-solving/references/simplification-cascades.md +80 -0
  352. package/templates/claude/skills/problem-solving/references/when-stuck.md +72 -0
  353. package/templates/claude/skills/registry.json +258 -0
  354. package/templates/claude/skills/repomix/SKILL.md +247 -0
  355. package/templates/claude/skills/repomix/references/configuration.md +211 -0
  356. package/templates/claude/skills/repomix/references/usage-patterns.md +232 -0
  357. package/templates/claude/skills/repomix/scripts/README.md +179 -0
  358. package/templates/claude/skills/repomix/scripts/repomix_batch.py +455 -0
  359. package/templates/claude/skills/repomix/scripts/repos.example.json +15 -0
  360. package/templates/claude/skills/research/SKILL.md +168 -0
  361. package/templates/claude/skills/sequential-thinking/.env.example +8 -0
  362. package/templates/claude/skills/sequential-thinking/README.md +183 -0
  363. package/templates/claude/skills/sequential-thinking/SKILL.md +94 -0
  364. package/templates/claude/skills/sequential-thinking/package.json +31 -0
  365. package/templates/claude/skills/sequential-thinking/references/advanced-strategies.md +79 -0
  366. package/templates/claude/skills/sequential-thinking/references/advanced-techniques.md +76 -0
  367. package/templates/claude/skills/sequential-thinking/references/core-patterns.md +95 -0
  368. package/templates/claude/skills/sequential-thinking/references/examples-api.md +88 -0
  369. package/templates/claude/skills/sequential-thinking/references/examples-architecture.md +94 -0
  370. package/templates/claude/skills/sequential-thinking/references/examples-debug.md +90 -0
  371. package/templates/claude/skills/sequential-thinking/scripts/format-thought.js +182 -0
  372. package/templates/claude/skills/sequential-thinking/scripts/process-thought.js +252 -0
  373. package/templates/claude/skills/skill-creator/LICENSE.txt +202 -0
  374. package/templates/claude/skills/skill-creator/SKILL.md +266 -0
  375. package/templates/claude/skills/skill-creator/references/agent-skills-spec.md +51 -0
  376. package/templates/claude/skills/skill-creator/scripts/encoding_utils.py +21 -0
  377. package/templates/claude/skills/skill-creator/scripts/init_skill.py +304 -0
  378. package/templates/claude/skills/skill-creator/scripts/package_skill.py +110 -0
  379. package/templates/claude/skills/skill-creator/scripts/quick_validate.py +66 -0
  380. package/templates/claude/skills/template-skill/SKILL.md +6 -0
  381. package/templates/claude/skills/vitest/SKILL.md +595 -0
  382. package/templates/claude/skills/vitest/references/async-patterns.md +82 -0
  383. package/templates/claude/skills/vitest/references/mock-patterns.md +78 -0
  384. package/templates/claude/skills/vitest/references/monorepo-setup.md +185 -0
  385. package/templates/claude/skills/vitest/references/turborepo-setup.md +332 -0
  386. package/templates/claude/skills/web-frameworks/SKILL.md +324 -0
  387. package/templates/claude/skills/web-frameworks/references/nextjs-app-router.md +465 -0
  388. package/templates/claude/skills/web-frameworks/references/nextjs-data-fetching.md +459 -0
  389. package/templates/claude/skills/web-frameworks/references/nextjs-optimization.md +511 -0
  390. package/templates/claude/skills/web-frameworks/references/nextjs-server-components.md +495 -0
  391. package/templates/claude/skills/web-frameworks/references/remix-icon-integration.md +603 -0
  392. package/templates/claude/skills/web-frameworks/references/turborepo-caching.md +551 -0
  393. package/templates/claude/skills/web-frameworks/references/turborepo-pipelines.md +517 -0
  394. package/templates/claude/skills/web-frameworks/references/turborepo-setup.md +542 -0
  395. package/templates/claude/skills/web-frameworks/scripts/nextjs_init.py +547 -0
  396. package/templates/claude/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
  397. package/templates/claude/workflows/development-rules.md +40 -0
  398. package/templates/claude/workflows/documentation-management.md +121 -0
  399. package/templates/claude/workflows/orchestration-protocol.md +16 -0
  400. package/templates/claude/workflows/primary-workflow.md +45 -0
  401. package/templates/claude/workflows/registry.json +37 -0
  402. package/templates/common/.cct.json +41 -0
  403. package/templates/common/.cctkignore +22 -0
  404. package/templates/common/.env.example +39 -0
  405. package/templates/common/.mcp.json.example +16 -0
  406. package/templates/common/metadata.json +15 -0
  407. package/templates/common/settings.json +79 -0
  408. package/templates/common/statusline.cjs +271 -0
  409. package/templates/config/.repomixignore +22 -0
  410. package/templates/config/AGENTS.md +55 -0
  411. package/templates/config/CLAUDE.md +87 -0
  412. package/templates/plans/bug-fix-template.md +69 -0
  413. package/templates/plans/feature-implementation-template.md +84 -0
  414. package/templates/plans/refactor-template.md +82 -0
  415. package/templates/plans/template-usage-guide.md +58 -0
@@ -0,0 +1,232 @@
1
+ ---
2
+ name: databases
3
+ description: Work with MongoDB (document database, BSON documents, aggregation pipelines, Atlas cloud) and PostgreSQL (relational database, SQL queries, psql CLI, pgAdmin). Use when designing database schemas, writing queries and aggregations, optimizing indexes for performance, performing database migrations, configuring replication and sharding, implementing backup and restore strategies, managing database users and permissions, analyzing query performance, or administering production databases.
4
+ license: MIT
5
+ ---
6
+
7
+ # Databases Skill
8
+
9
+ Unified guide for working with MongoDB (document-oriented) and PostgreSQL (relational) databases. Choose the right database for your use case and master both systems.
10
+
11
+ ## When to Use This Skill
12
+
13
+ Use when:
14
+ - Designing database schemas and data models
15
+ - Writing queries (SQL or MongoDB query language)
16
+ - Building aggregation pipelines or complex joins
17
+ - Optimizing indexes and query performance
18
+ - Implementing database migrations
19
+ - Setting up replication, sharding, or clustering
20
+ - Configuring backups and disaster recovery
21
+ - Managing database users and permissions
22
+ - Analyzing slow queries and performance issues
23
+ - Administering production database deployments
24
+
25
+ ## Database Selection Guide
26
+
27
+ ### Choose MongoDB When:
28
+ - Schema flexibility: frequent structure changes, heterogeneous data
29
+ - Document-centric: natural JSON/BSON data model
30
+ - Horizontal scaling: need to shard across multiple servers
31
+ - High write throughput: IoT, logging, real-time analytics
32
+ - Nested/hierarchical data: embedded documents preferred
33
+ - Rapid prototyping: schema evolution without migrations
34
+
35
+ **Best for:** Content management, catalogs, IoT time series, real-time analytics, mobile apps, user profiles
36
+
37
+ ### Choose PostgreSQL When:
38
+ - Strong consistency: ACID transactions critical
39
+ - Complex relationships: many-to-many joins, referential integrity
40
+ - SQL requirement: team expertise, reporting tools, BI systems
41
+ - Data integrity: strict schema validation, constraints
42
+ - Mature ecosystem: extensive tooling, extensions
43
+ - Complex queries: window functions, CTEs, analytical workloads
44
+
45
+ **Best for:** Financial systems, e-commerce transactions, ERP, CRM, data warehousing, analytics
46
+
47
+ ### Both Support:
48
+ - JSON/JSONB storage and querying
49
+ - Full-text search capabilities
50
+ - Geospatial queries and indexing
51
+ - Replication and high availability
52
+ - ACID transactions (MongoDB 4.0+)
53
+ - Strong security features
54
+
55
+ ## Quick Start
56
+
57
+ ### MongoDB Setup
58
+
59
+ ```bash
60
+ # Atlas (Cloud) - Recommended
61
+ # 1. Sign up at mongodb.com/atlas
62
+ # 2. Create M0 free cluster
63
+ # 3. Get connection string
64
+
65
+ # Connection
66
+ mongodb+srv://user:pass@cluster.mongodb.net/db
67
+
68
+ # Shell
69
+ mongosh "mongodb+srv://cluster.mongodb.net/mydb"
70
+
71
+ # Basic operations
72
+ db.users.insertOne({ name: "Alice", age: 30 })
73
+ db.users.find({ age: { $gte: 18 } })
74
+ db.users.updateOne({ name: "Alice" }, { $set: { age: 31 } })
75
+ db.users.deleteOne({ name: "Alice" })
76
+ ```
77
+
78
+ ### PostgreSQL Setup
79
+
80
+ ```bash
81
+ # Ubuntu/Debian
82
+ sudo apt-get install postgresql postgresql-contrib
83
+
84
+ # Start service
85
+ sudo systemctl start postgresql
86
+
87
+ # Connect
88
+ psql -U postgres -d mydb
89
+
90
+ # Basic operations
91
+ CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT, age INT);
92
+ INSERT INTO users (name, age) VALUES ('Alice', 30);
93
+ SELECT * FROM users WHERE age >= 18;
94
+ UPDATE users SET age = 31 WHERE name = 'Alice';
95
+ DELETE FROM users WHERE name = 'Alice';
96
+ ```
97
+
98
+ ## Common Operations
99
+
100
+ ### Create/Insert
101
+ ```javascript
102
+ // MongoDB
103
+ db.users.insertOne({ name: "Bob", email: "bob@example.com" })
104
+ db.users.insertMany([{ name: "Alice" }, { name: "Charlie" }])
105
+ ```
106
+
107
+ ```sql
108
+ -- PostgreSQL
109
+ INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
110
+ INSERT INTO users (name, email) VALUES ('Alice', NULL), ('Charlie', NULL);
111
+ ```
112
+
113
+ ### Read/Query
114
+ ```javascript
115
+ // MongoDB
116
+ db.users.find({ age: { $gte: 18 } })
117
+ db.users.findOne({ email: "bob@example.com" })
118
+ ```
119
+
120
+ ```sql
121
+ -- PostgreSQL
122
+ SELECT * FROM users WHERE age >= 18;
123
+ SELECT * FROM users WHERE email = 'bob@example.com' LIMIT 1;
124
+ ```
125
+
126
+ ### Update
127
+ ```javascript
128
+ // MongoDB
129
+ db.users.updateOne({ name: "Bob" }, { $set: { age: 25 } })
130
+ db.users.updateMany({ status: "pending" }, { $set: { status: "active" } })
131
+ ```
132
+
133
+ ```sql
134
+ -- PostgreSQL
135
+ UPDATE users SET age = 25 WHERE name = 'Bob';
136
+ UPDATE users SET status = 'active' WHERE status = 'pending';
137
+ ```
138
+
139
+ ### Delete
140
+ ```javascript
141
+ // MongoDB
142
+ db.users.deleteOne({ name: "Bob" })
143
+ db.users.deleteMany({ status: "deleted" })
144
+ ```
145
+
146
+ ```sql
147
+ -- PostgreSQL
148
+ DELETE FROM users WHERE name = 'Bob';
149
+ DELETE FROM users WHERE status = 'deleted';
150
+ ```
151
+
152
+ ### Indexing
153
+ ```javascript
154
+ // MongoDB
155
+ db.users.createIndex({ email: 1 })
156
+ db.users.createIndex({ status: 1, createdAt: -1 })
157
+ ```
158
+
159
+ ```sql
160
+ -- PostgreSQL
161
+ CREATE INDEX idx_users_email ON users(email);
162
+ CREATE INDEX idx_users_status_created ON users(status, created_at DESC);
163
+ ```
164
+
165
+ ## Reference Navigation
166
+
167
+ ### MongoDB References
168
+ - **[mongodb-crud.md](references/mongodb-crud.md)** - CRUD operations, query operators, atomic updates
169
+ - **[mongodb-aggregation.md](references/mongodb-aggregation.md)** - Aggregation pipeline, stages, operators, patterns
170
+ - **[mongodb-indexing.md](references/mongodb-indexing.md)** - Index types, compound indexes, performance optimization
171
+ - **[mongodb-atlas.md](references/mongodb-atlas.md)** - Atlas cloud setup, clusters, monitoring, search
172
+
173
+ ### PostgreSQL References
174
+ - **[postgresql-queries.md](references/postgresql-queries.md)** - SELECT, JOINs, subqueries, CTEs, window functions
175
+ - **[postgresql-psql-cli.md](references/postgresql-psql-cli.md)** - psql commands, meta-commands, scripting
176
+ - **[postgresql-performance.md](references/postgresql-performance.md)** - EXPLAIN, query optimization, vacuum, indexes
177
+ - **[postgresql-administration.md](references/postgresql-administration.md)** - User management, backups, replication, maintenance
178
+
179
+ ## Python Utilities
180
+
181
+ Database utility scripts in `scripts/`:
182
+ - **db_migrate.py** - Generate and apply migrations for both databases
183
+ - **db_backup.py** - Backup and restore MongoDB and PostgreSQL
184
+ - **db_performance_check.py** - Analyze slow queries and recommend indexes
185
+
186
+ ```bash
187
+ # Generate migration
188
+ python scripts/db_migrate.py --db mongodb --generate "add_user_index"
189
+
190
+ # Run backup
191
+ python scripts/db_backup.py --db postgres --output /backups/
192
+
193
+ # Check performance
194
+ python scripts/db_performance_check.py --db mongodb --threshold 100ms
195
+ ```
196
+
197
+ ## Key Differences Summary
198
+
199
+ | Feature | MongoDB | PostgreSQL |
200
+ |---------|---------|------------|
201
+ | Data Model | Document (JSON/BSON) | Relational (Tables/Rows) |
202
+ | Schema | Flexible, dynamic | Strict, predefined |
203
+ | Query Language | MongoDB Query Language | SQL |
204
+ | Joins | $lookup (limited) | Native, optimized |
205
+ | Transactions | Multi-document (4.0+) | Native ACID |
206
+ | Scaling | Horizontal (sharding) | Vertical (primary), Horizontal (extensions) |
207
+ | Indexes | Single, compound, text, geo, etc | B-tree, hash, GiST, GIN, etc |
208
+
209
+ ## Best Practices
210
+
211
+ **MongoDB:**
212
+ - Use embedded documents for 1-to-few relationships
213
+ - Reference documents for 1-to-many or many-to-many
214
+ - Index frequently queried fields
215
+ - Use aggregation pipeline for complex transformations
216
+ - Enable authentication and TLS in production
217
+ - Use Atlas for managed hosting
218
+
219
+ **PostgreSQL:**
220
+ - Normalize schema to 3NF, denormalize for performance
221
+ - Use foreign keys for referential integrity
222
+ - Index foreign keys and frequently filtered columns
223
+ - Use EXPLAIN ANALYZE to optimize queries
224
+ - Regular VACUUM and ANALYZE maintenance
225
+ - Connection pooling (pgBouncer) for web apps
226
+
227
+ ## Resources
228
+
229
+ - MongoDB: https://www.mongodb.com/docs/
230
+ - PostgreSQL: https://www.postgresql.org/docs/
231
+ - MongoDB University: https://learn.mongodb.com/
232
+ - PostgreSQL Tutorial: https://www.postgresqltutorial.com/
@@ -0,0 +1,447 @@
1
+ # MongoDB Aggregation Pipeline
2
+
3
+ Aggregation pipeline for complex data transformations, analytics, and multi-stage processing.
4
+
5
+ ## Pipeline Concept
6
+
7
+ Aggregation processes documents through multiple stages. Each stage transforms documents and passes results to next stage.
8
+
9
+ ```javascript
10
+ db.collection.aggregate([
11
+ { /* Stage 1 */ },
12
+ { /* Stage 2 */ },
13
+ { /* Stage 3 */ }
14
+ ])
15
+ ```
16
+
17
+ ## Core Pipeline Stages
18
+
19
+ ### $match (Filter Documents)
20
+ ```javascript
21
+ // Filter early in pipeline for efficiency
22
+ db.orders.aggregate([
23
+ { $match: { status: "completed", total: { $gte: 100 } } },
24
+ // Subsequent stages process only matched documents
25
+ ])
26
+
27
+ // Multiple conditions
28
+ db.orders.aggregate([
29
+ { $match: {
30
+ $and: [
31
+ { orderDate: { $gte: startDate } },
32
+ { status: { $in: ["completed", "shipped"] } }
33
+ ]
34
+ }}
35
+ ])
36
+ ```
37
+
38
+ ### $project (Reshape Documents)
39
+ ```javascript
40
+ // Select and reshape fields
41
+ db.orders.aggregate([
42
+ { $project: {
43
+ orderNumber: 1,
44
+ total: 1,
45
+ customerName: "$customer.name",
46
+ year: { $year: "$orderDate" },
47
+ _id: 0 // Exclude _id
48
+ }}
49
+ ])
50
+
51
+ // Computed fields
52
+ db.orders.aggregate([
53
+ { $project: {
54
+ total: 1,
55
+ tax: { $multiply: ["$total", 0.1] },
56
+ grandTotal: { $add: ["$total", { $multiply: ["$total", 0.1] }] }
57
+ }}
58
+ ])
59
+ ```
60
+
61
+ ### $group (Aggregate Data)
62
+ ```javascript
63
+ // Group and count
64
+ db.orders.aggregate([
65
+ { $group: {
66
+ _id: "$status",
67
+ count: { $sum: 1 }
68
+ }}
69
+ ])
70
+
71
+ // Multiple aggregations
72
+ db.orders.aggregate([
73
+ { $group: {
74
+ _id: "$customerId",
75
+ totalSpent: { $sum: "$total" },
76
+ orderCount: { $sum: 1 },
77
+ avgOrderValue: { $avg: "$total" },
78
+ maxOrder: { $max: "$total" },
79
+ minOrder: { $min: "$total" }
80
+ }}
81
+ ])
82
+
83
+ // Group by multiple fields
84
+ db.sales.aggregate([
85
+ { $group: {
86
+ _id: {
87
+ year: { $year: "$date" },
88
+ month: { $month: "$date" },
89
+ product: "$productId"
90
+ },
91
+ revenue: { $sum: "$amount" }
92
+ }}
93
+ ])
94
+ ```
95
+
96
+ ### $sort (Order Results)
97
+ ```javascript
98
+ // Sort by field
99
+ db.orders.aggregate([
100
+ { $sort: { total: -1 } } // -1: descending, 1: ascending
101
+ ])
102
+
103
+ // Sort by multiple fields
104
+ db.orders.aggregate([
105
+ { $sort: { status: 1, orderDate: -1 } }
106
+ ])
107
+ ```
108
+
109
+ ### $limit / $skip (Pagination)
110
+ ```javascript
111
+ // Limit results
112
+ db.orders.aggregate([
113
+ { $sort: { orderDate: -1 } },
114
+ { $limit: 10 }
115
+ ])
116
+
117
+ // Pagination
118
+ const page = 2;
119
+ const pageSize = 20;
120
+ db.orders.aggregate([
121
+ { $sort: { orderDate: -1 } },
122
+ { $skip: (page - 1) * pageSize },
123
+ { $limit: pageSize }
124
+ ])
125
+ ```
126
+
127
+ ### $lookup (Join Collections)
128
+ ```javascript
129
+ // Simple join
130
+ db.orders.aggregate([
131
+ { $lookup: {
132
+ from: "customers",
133
+ localField: "customerId",
134
+ foreignField: "_id",
135
+ as: "customer"
136
+ }},
137
+ { $unwind: "$customer" } // Convert array to object
138
+ ])
139
+
140
+ // Pipeline join (more powerful)
141
+ db.orders.aggregate([
142
+ { $lookup: {
143
+ from: "products",
144
+ let: { items: "$items" },
145
+ pipeline: [
146
+ { $match: { $expr: { $in: ["$_id", "$$items.productId"] } } },
147
+ { $project: { name: 1, price: 1 } }
148
+ ],
149
+ as: "productDetails"
150
+ }}
151
+ ])
152
+ ```
153
+
154
+ ### $unwind (Deconstruct Arrays)
155
+ ```javascript
156
+ // Unwind array field
157
+ db.orders.aggregate([
158
+ { $unwind: "$items" }
159
+ ])
160
+
161
+ // Preserve null/empty arrays
162
+ db.orders.aggregate([
163
+ { $unwind: {
164
+ path: "$items",
165
+ preserveNullAndEmptyArrays: true
166
+ }}
167
+ ])
168
+
169
+ // Include array index
170
+ db.orders.aggregate([
171
+ { $unwind: {
172
+ path: "$items",
173
+ includeArrayIndex: "itemIndex"
174
+ }}
175
+ ])
176
+ ```
177
+
178
+ ### $addFields (Add New Fields)
179
+ ```javascript
180
+ // Add computed fields
181
+ db.orders.aggregate([
182
+ { $addFields: {
183
+ totalWithTax: { $multiply: ["$total", 1.1] },
184
+ year: { $year: "$orderDate" }
185
+ }}
186
+ ])
187
+ ```
188
+
189
+ ### $replaceRoot (Replace Document Root)
190
+ ```javascript
191
+ // Promote subdocument to root
192
+ db.orders.aggregate([
193
+ { $replaceRoot: { newRoot: "$customer" } }
194
+ ])
195
+
196
+ // Merge fields
197
+ db.orders.aggregate([
198
+ { $replaceRoot: {
199
+ newRoot: { $mergeObjects: ["$customer", { orderId: "$_id" }] }
200
+ }}
201
+ ])
202
+ ```
203
+
204
+ ## Aggregation Operators
205
+
206
+ ### Arithmetic Operators
207
+ ```javascript
208
+ // Basic math
209
+ db.products.aggregate([
210
+ { $project: {
211
+ name: 1,
212
+ profit: { $subtract: ["$price", "$cost"] },
213
+ margin: { $multiply: [
214
+ { $divide: [
215
+ { $subtract: ["$price", "$cost"] },
216
+ "$price"
217
+ ]},
218
+ 100
219
+ ]}
220
+ }}
221
+ ])
222
+
223
+ // Other operators: $add, $multiply, $divide, $mod, $abs, $ceil, $floor, $round
224
+ ```
225
+
226
+ ### String Operators
227
+ ```javascript
228
+ // String manipulation
229
+ db.users.aggregate([
230
+ { $project: {
231
+ fullName: { $concat: ["$firstName", " ", "$lastName"] },
232
+ email: { $toLower: "$email" },
233
+ initials: { $concat: [
234
+ { $substr: ["$firstName", 0, 1] },
235
+ { $substr: ["$lastName", 0, 1] }
236
+ ]}
237
+ }}
238
+ ])
239
+
240
+ // Other: $toUpper, $trim, $split, $substr, $regexMatch
241
+ ```
242
+
243
+ ### Date Operators
244
+ ```javascript
245
+ // Date extraction
246
+ db.events.aggregate([
247
+ { $project: {
248
+ event: 1,
249
+ year: { $year: "$timestamp" },
250
+ month: { $month: "$timestamp" },
251
+ day: { $dayOfMonth: "$timestamp" },
252
+ hour: { $hour: "$timestamp" },
253
+ dayOfWeek: { $dayOfWeek: "$timestamp" }
254
+ }}
255
+ ])
256
+
257
+ // Date math
258
+ db.events.aggregate([
259
+ { $project: {
260
+ event: 1,
261
+ expiresAt: { $add: ["$createdAt", 1000 * 60 * 60 * 24 * 30] }, // +30 days
262
+ ageInDays: { $divide: [
263
+ { $subtract: [new Date(), "$createdAt"] },
264
+ 1000 * 60 * 60 * 24
265
+ ]}
266
+ }}
267
+ ])
268
+ ```
269
+
270
+ ### Array Operators
271
+ ```javascript
272
+ // Array operations
273
+ db.posts.aggregate([
274
+ { $project: {
275
+ title: 1,
276
+ tagCount: { $size: "$tags" },
277
+ firstTag: { $arrayElemAt: ["$tags", 0] },
278
+ lastTag: { $arrayElemAt: ["$tags", -1] },
279
+ hasMongoDBTag: { $in: ["mongodb", "$tags"] }
280
+ }}
281
+ ])
282
+
283
+ // Array filtering
284
+ db.posts.aggregate([
285
+ { $project: {
286
+ title: 1,
287
+ activeTags: {
288
+ $filter: {
289
+ input: "$tags",
290
+ as: "tag",
291
+ cond: { $ne: ["$$tag.status", "deprecated"] }
292
+ }
293
+ }
294
+ }}
295
+ ])
296
+ ```
297
+
298
+ ### Conditional Operators
299
+ ```javascript
300
+ // $cond (ternary)
301
+ db.products.aggregate([
302
+ { $project: {
303
+ name: 1,
304
+ status: {
305
+ $cond: {
306
+ if: { $gte: ["$stock", 10] },
307
+ then: "In Stock",
308
+ else: "Low Stock"
309
+ }
310
+ }
311
+ }}
312
+ ])
313
+
314
+ // $switch (multiple conditions)
315
+ db.orders.aggregate([
316
+ { $project: {
317
+ status: 1,
318
+ priority: {
319
+ $switch: {
320
+ branches: [
321
+ { case: { $gte: ["$total", 1000] }, then: "High" },
322
+ { case: { $gte: ["$total", 100] }, then: "Medium" }
323
+ ],
324
+ default: "Low"
325
+ }
326
+ }
327
+ }}
328
+ ])
329
+ ```
330
+
331
+ ## Advanced Patterns
332
+
333
+ ### Time-Based Aggregation
334
+ ```javascript
335
+ // Daily sales
336
+ db.orders.aggregate([
337
+ { $match: { orderDate: { $gte: startDate } } },
338
+ { $group: {
339
+ _id: {
340
+ year: { $year: "$orderDate" },
341
+ month: { $month: "$orderDate" },
342
+ day: { $dayOfMonth: "$orderDate" }
343
+ },
344
+ revenue: { $sum: "$total" },
345
+ orderCount: { $sum: 1 }
346
+ }},
347
+ { $sort: { "_id.year": 1, "_id.month": 1, "_id.day": 1 } }
348
+ ])
349
+ ```
350
+
351
+ ### Faceted Search
352
+ ```javascript
353
+ // Multiple aggregations in one query
354
+ db.products.aggregate([
355
+ { $match: { category: "electronics" } },
356
+ { $facet: {
357
+ priceRanges: [
358
+ { $bucket: {
359
+ groupBy: "$price",
360
+ boundaries: [0, 100, 500, 1000, 5000],
361
+ default: "5000+",
362
+ output: { count: { $sum: 1 } }
363
+ }}
364
+ ],
365
+ topBrands: [
366
+ { $group: { _id: "$brand", count: { $sum: 1 } } },
367
+ { $sort: { count: -1 } },
368
+ { $limit: 5 }
369
+ ],
370
+ avgPrice: [
371
+ { $group: { _id: null, avg: { $avg: "$price" } } }
372
+ ]
373
+ }}
374
+ ])
375
+ ```
376
+
377
+ ### Window Functions
378
+ ```javascript
379
+ // Running totals and moving averages
380
+ db.sales.aggregate([
381
+ { $setWindowFields: {
382
+ partitionBy: "$region",
383
+ sortBy: { date: 1 },
384
+ output: {
385
+ runningTotal: {
386
+ $sum: "$amount",
387
+ window: { documents: ["unbounded", "current"] }
388
+ },
389
+ movingAvg: {
390
+ $avg: "$amount",
391
+ window: { documents: [-7, 0] } // Last 7 days
392
+ }
393
+ }
394
+ }}
395
+ ])
396
+ ```
397
+
398
+ ### Text Search with Aggregation
399
+ ```javascript
400
+ // Full-text search (requires text index)
401
+ db.articles.aggregate([
402
+ { $match: { $text: { $search: "mongodb database" } } },
403
+ { $addFields: { score: { $meta: "textScore" } } },
404
+ { $sort: { score: -1 } },
405
+ { $limit: 10 }
406
+ ])
407
+ ```
408
+
409
+ ### Geospatial Aggregation
410
+ ```javascript
411
+ // Find nearby locations
412
+ db.places.aggregate([
413
+ { $geoNear: {
414
+ near: { type: "Point", coordinates: [lon, lat] },
415
+ distanceField: "distance",
416
+ maxDistance: 5000,
417
+ spherical: true
418
+ }},
419
+ { $limit: 10 }
420
+ ])
421
+ ```
422
+
423
+ ## Performance Tips
424
+
425
+ 1. **$match early** - Filter documents before other stages
426
+ 2. **$project early** - Reduce document size
427
+ 3. **Index usage** - $match and $sort can use indexes (only at start)
428
+ 4. **$limit after $sort** - Reduce memory usage
429
+ 5. **Avoid $lookup** - Prefer embedded documents when possible
430
+ 6. **Use $facet sparingly** - Can be memory intensive
431
+ 7. **allowDiskUse** - Enable for large datasets
432
+ ```javascript
433
+ db.collection.aggregate(pipeline, { allowDiskUse: true })
434
+ ```
435
+
436
+ ## Best Practices
437
+
438
+ 1. **Order stages efficiently** - $match → $project → $group → $sort → $limit
439
+ 2. **Use $expr carefully** - Can prevent index usage
440
+ 3. **Monitor memory** - Default limit: 100MB per stage
441
+ 4. **Test with explain** - Analyze pipeline performance
442
+ ```javascript
443
+ db.collection.explain("executionStats").aggregate(pipeline)
444
+ ```
445
+ 5. **Break complex pipelines** - Use $out/$merge for intermediate results
446
+ 6. **Use $sample** - For random document selection
447
+ 7. **Leverage $addFields** - Cleaner than $project for adding fields