@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,245 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * llms.txt Analyzer Script
5
+ * Parses llms.txt content and categorizes URLs for optimal agent distribution
6
+ */
7
+
8
+ const DEBUG = process.env.DEBUG === 'true';
9
+
10
+ /**
11
+ * URL priority categories
12
+ */
13
+ const PRIORITY_KEYWORDS = {
14
+ critical: [
15
+ 'getting-started',
16
+ 'quick-start',
17
+ 'quickstart',
18
+ 'introduction',
19
+ 'intro',
20
+ 'overview',
21
+ 'installation',
22
+ 'install',
23
+ 'setup',
24
+ 'basics',
25
+ 'core-concepts',
26
+ 'fundamentals',
27
+ ],
28
+ supplementary: [
29
+ 'advanced',
30
+ 'internals',
31
+ 'migration',
32
+ 'migrate',
33
+ 'troubleshooting',
34
+ 'troubleshoot',
35
+ 'faq',
36
+ 'frequently-asked',
37
+ 'changelog',
38
+ 'contributing',
39
+ 'contribute',
40
+ ],
41
+ important: [
42
+ 'guide',
43
+ 'tutorial',
44
+ 'example',
45
+ 'api-reference',
46
+ 'api',
47
+ 'reference',
48
+ 'configuration',
49
+ 'config',
50
+ 'routing',
51
+ 'route',
52
+ 'data-fetching',
53
+ 'authentication',
54
+ 'auth',
55
+ ],
56
+ };
57
+
58
+ /**
59
+ * Categorize URL by priority
60
+ * @param {string} url - Documentation URL
61
+ * @returns {string} Priority level (critical/important/supplementary)
62
+ */
63
+ function categorizeUrl(url) {
64
+ const urlLower = url.toLowerCase();
65
+
66
+ // Check in priority order: critical first, then supplementary, then important
67
+ // This ensures specific keywords (advanced, internals) are caught before generic ones
68
+ const priorities = ['critical', 'supplementary', 'important'];
69
+
70
+ for (const priority of priorities) {
71
+ const keywords = PRIORITY_KEYWORDS[priority];
72
+
73
+ for (const keyword of keywords) {
74
+ if (urlLower.includes(keyword)) {
75
+ return priority;
76
+ }
77
+ }
78
+ }
79
+
80
+ return 'important'; // Default
81
+ }
82
+
83
+ /**
84
+ * Parse llms.txt content to extract URLs
85
+ * @param {string} content - llms.txt content
86
+ * @returns {Array<string>} Array of URLs
87
+ */
88
+ function parseUrls(content) {
89
+ if (!content || typeof content !== 'string') {
90
+ return [];
91
+ }
92
+
93
+ const urls = [];
94
+ const lines = content.split('\n');
95
+
96
+ for (const line of lines) {
97
+ const trimmed = line.trim();
98
+
99
+ // Skip comments and empty lines
100
+ if (!trimmed || trimmed.startsWith('#')) continue;
101
+
102
+ // Extract URLs (look for http/https)
103
+ const urlMatch = trimmed.match(/https?:\/\/[^\s<>"]+/i);
104
+
105
+ if (urlMatch) {
106
+ urls.push(urlMatch[0]);
107
+ }
108
+ }
109
+
110
+ return urls;
111
+ }
112
+
113
+ /**
114
+ * Group URLs by priority
115
+ * @param {Array<string>} urls - Array of URLs
116
+ * @returns {Object} URLs grouped by priority
117
+ */
118
+ function groupByPriority(urls) {
119
+ const groups = {
120
+ critical: [],
121
+ important: [],
122
+ supplementary: [],
123
+ };
124
+
125
+ for (const url of urls) {
126
+ const priority = categorizeUrl(url);
127
+
128
+ groups[priority].push(url);
129
+ }
130
+
131
+ return groups;
132
+ }
133
+
134
+ /**
135
+ * Suggest optimal agent distribution
136
+ * @param {number} urlCount - Total number of URLs
137
+ * @returns {Object} Agent distribution suggestion
138
+ */
139
+ function suggestAgentDistribution(urlCount) {
140
+ if (urlCount <= 3) {
141
+ return {
142
+ agentCount: 1,
143
+ strategy: 'single',
144
+ urlsPerAgent: urlCount,
145
+ description: 'Single agent can handle all URLs',
146
+ };
147
+ }
148
+ if (urlCount <= 10) {
149
+ const agents = Math.min(Math.ceil(urlCount / 2), 5);
150
+
151
+ return {
152
+ agentCount: agents,
153
+ strategy: 'parallel',
154
+ urlsPerAgent: Math.ceil(urlCount / agents),
155
+ description: `Deploy ${agents} agents in parallel`,
156
+ };
157
+ }
158
+ if (urlCount <= 20) {
159
+ return {
160
+ agentCount: 7,
161
+ strategy: 'parallel',
162
+ urlsPerAgent: Math.ceil(urlCount / 7),
163
+ description: 'Deploy 7 agents with balanced workload',
164
+ };
165
+ }
166
+
167
+ return {
168
+ agentCount: 7,
169
+ strategy: 'phased',
170
+ urlsPerAgent: Math.ceil(urlCount / 7),
171
+ phases: 2,
172
+ description: 'Use two-phase approach: critical first, then important',
173
+ };
174
+ }
175
+
176
+ /**
177
+ * Analyze llms.txt content
178
+ * @param {string} content - llms.txt content
179
+ * @returns {Object} Analysis result
180
+ */
181
+ function analyzeLlmsTxt(content) {
182
+ const urls = parseUrls(content);
183
+ const grouped = groupByPriority(urls);
184
+ const distribution = suggestAgentDistribution(urls.length);
185
+
186
+ return {
187
+ totalUrls: urls.length,
188
+ urls,
189
+ grouped,
190
+ distribution,
191
+ summary: {
192
+ critical: grouped.critical.length,
193
+ important: grouped.important.length,
194
+ supplementary: grouped.supplementary.length,
195
+ },
196
+ };
197
+ }
198
+
199
+ /**
200
+ * CLI entry point
201
+ */
202
+ function main() {
203
+ const args = process.argv.slice(2);
204
+
205
+ if (args.length === 0) {
206
+ console.error('Usage: node analyze-llms-txt.js <content-file-or-stdin>');
207
+ console.error('Or pipe content: cat llms.txt | node analyze-llms-txt.js');
208
+ process.exit(1);
209
+ }
210
+
211
+ const fs = require('node:fs');
212
+ let content;
213
+
214
+ if (args[0] === '-') {
215
+ // Read from stdin
216
+ content = fs.readFileSync(0, 'utf8');
217
+ } else {
218
+ // Read from file
219
+ const filePath = args[0];
220
+
221
+ if (!fs.existsSync(filePath)) {
222
+ console.error(`Error: File not found: ${filePath}`);
223
+ process.exit(1);
224
+ }
225
+ content = fs.readFileSync(filePath, 'utf8');
226
+ }
227
+
228
+ const result = analyzeLlmsTxt(content);
229
+
230
+ console.log(JSON.stringify(result, null, 2));
231
+ process.exit(0);
232
+ }
233
+
234
+ // Run if called directly
235
+ if (require.main === module) {
236
+ main();
237
+ }
238
+
239
+ module.exports = {
240
+ analyzeLlmsTxt,
241
+ parseUrls,
242
+ groupByPriority,
243
+ categorizeUrl,
244
+ suggestAgentDistribution,
245
+ };
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Topic Detection Script
5
+ * Analyzes user queries to extract library name and topic keywords
6
+ * Returns null for general queries, topic info for specific queries
7
+ */
8
+
9
+ const DEBUG = process.env.DEBUG === 'true';
10
+
11
+ /**
12
+ * Topic-specific query patterns
13
+ */
14
+ const TOPIC_PATTERNS = [
15
+ // "How do I use X in Y?"
16
+ /how (?:do i|to|can i) (?:use|implement|add|setup|configure) (?:the )?(.+?) (?:in|with|for) (.+)/i,
17
+
18
+ // "Y X strategies/patterns" - e.g., "Next.js caching strategies"
19
+ /(.+?) (.+?) (?:strategies|patterns|techniques|methods|approaches)/i,
20
+
21
+ // "X Y documentation" or "Y X docs"
22
+ /(.+?) (.+?) (?:documentation|docs|guide|tutorial)/i,
23
+
24
+ // "Using X with Y"
25
+ /using (.+?) (?:with|in|for) (.+)/i,
26
+
27
+ // "Y X guide/implementation/setup"
28
+ /(.+?) (.+?) (?:guide|implementation|setup|configuration)/i,
29
+
30
+ // "Implement X in Y"
31
+ /implement(?:ing)? (.+?) (?:in|with|for|using) (.+)/i,
32
+ ];
33
+
34
+ /**
35
+ * General library query patterns (non-topic specific)
36
+ */
37
+ const GENERAL_PATTERNS = [
38
+ /(?:documentation|docs) for (.+)/i,
39
+ /(.+?) (?:getting started|quick ?start|introduction)/i,
40
+ /(?:how to use|learn) (.+)/i,
41
+ /(.+?) (?:api reference|overview|basics)/i,
42
+ ];
43
+
44
+ /**
45
+ * Normalize topic keyword
46
+ * @param {string} topic - Raw topic string
47
+ * @returns {string} Normalized topic keyword
48
+ */
49
+ function normalizeTopic(topic) {
50
+ return topic
51
+ .toLowerCase()
52
+ .trim()
53
+ .replaceAll(/[^a-z0-9\s-]/g, '') // Remove special chars
54
+ .replaceAll(/\s+/g, '-') // Replace spaces with hyphens
55
+ .split('-')[0] // Take first word for multi-word topics
56
+ .slice(0, 20); // Limit length
57
+ }
58
+
59
+ /**
60
+ * Normalize library name
61
+ * @param {string} library - Raw library string
62
+ * @returns {string} Normalized library name
63
+ */
64
+ function normalizeLibrary(library) {
65
+ return library
66
+ .toLowerCase()
67
+ .trim()
68
+ .replaceAll(/[^a-z0-9\s\-\/\.]/g, '')
69
+ .replaceAll(/\s+/g, '-');
70
+ }
71
+
72
+ /**
73
+ * Detect if query is topic-specific or general
74
+ * @param {string} query - User query
75
+ * @returns {Object|null} Topic info or null for general query
76
+ */
77
+ function detectTopic(query) {
78
+ if (!query || typeof query !== 'string') {
79
+ return null;
80
+ }
81
+
82
+ const trimmedQuery = query.trim();
83
+
84
+ // Check general patterns first
85
+ for (const pattern of GENERAL_PATTERNS) {
86
+ const match = trimmedQuery.match(pattern);
87
+
88
+ if (match) {
89
+ if (DEBUG) console.error('[DEBUG] Matched general pattern, no topic');
90
+
91
+ return null;
92
+ }
93
+ }
94
+
95
+ // Check topic-specific patterns
96
+ for (const [i, pattern] of TOPIC_PATTERNS.entries()) {
97
+ const match = trimmedQuery.match(pattern);
98
+
99
+ if (match) {
100
+ const [, term1, term2] = match;
101
+
102
+ // Determine which is library and which is topic based on pattern
103
+ let topic;
104
+ let library;
105
+
106
+ // Pattern 0: "How do I use X in Y?" -> X is topic, Y is library
107
+ // Pattern 1: "Y X strategies" -> X is topic, Y is library
108
+ // Pattern 2-5: X is topic, Y is library in most cases
109
+
110
+ // For pattern 1 (strategies/patterns), term1 is library, term2 is topic
111
+ if (i === 1) {
112
+ topic = normalizeTopic(term2);
113
+ library = normalizeLibrary(term1);
114
+ } else {
115
+ // For other patterns, term1 is topic, term2 is library
116
+ topic = normalizeTopic(term1);
117
+ library = normalizeLibrary(term2);
118
+ }
119
+
120
+ if (DEBUG) {
121
+ console.error('[DEBUG] Matched topic pattern');
122
+ console.error('[DEBUG] Topic:', topic);
123
+ console.error('[DEBUG] Library:', library);
124
+ }
125
+
126
+ return {
127
+ query: trimmedQuery,
128
+ topic,
129
+ library,
130
+ isTopicSpecific: true,
131
+ };
132
+ }
133
+ }
134
+
135
+ if (DEBUG) console.error('[DEBUG] No pattern matched, treating as general');
136
+
137
+ return null;
138
+ }
139
+
140
+ /**
141
+ * CLI entry point
142
+ */
143
+ function main() {
144
+ const args = process.argv.slice(2);
145
+
146
+ if (args.length === 0) {
147
+ console.error('Usage: node detect-topic.js "<user query>"');
148
+ process.exit(1);
149
+ }
150
+
151
+ const query = args.join(' ');
152
+ const result = detectTopic(query);
153
+
154
+ if (result) {
155
+ console.log(JSON.stringify(result, null, 2));
156
+ process.exit(0);
157
+ } else {
158
+ console.log(JSON.stringify({ isTopicSpecific: false }, null, 2));
159
+ process.exit(0);
160
+ }
161
+ }
162
+
163
+ // Run if called directly
164
+ if (require.main === module) {
165
+ main();
166
+ }
167
+
168
+ module.exports = {
169
+ detectTopic,
170
+ normalizeTopic,
171
+ normalizeLibrary,
172
+ };
@@ -0,0 +1,212 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Documentation Fetcher Script
5
+ * Fetches documentation from context7.com with topic support and fallback chain
6
+ */
7
+
8
+ const https = require('node:https');
9
+ const { detectTopic } = require('./detect-topic');
10
+
11
+ const DEBUG = process.env.DEBUG === 'true';
12
+
13
+ /**
14
+ * Make HTTPS GET request
15
+ * @param {string} url - URL to fetch
16
+ * @returns {Promise<string>} Response body
17
+ */
18
+ function httpsGet(url) {
19
+ return new Promise((resolve, reject) => {
20
+ https
21
+ .get(url, (res) => {
22
+ let data = '';
23
+
24
+ res.on('data', (chunk) => {
25
+ data += chunk;
26
+ });
27
+
28
+ res.on('end', () => {
29
+ if (res.statusCode === 200) {
30
+ resolve(data);
31
+ } else if (res.statusCode === 404) {
32
+ resolve(null);
33
+ } else {
34
+ reject(new Error(`HTTP ${res.statusCode}: ${data}`));
35
+ }
36
+ });
37
+ })
38
+ .on('error', reject);
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Construct context7.com URL
44
+ * @param {string} library - Library name (e.g., "next.js", "shadcn/ui")
45
+ * @param {string} topic - Optional topic keyword
46
+ * @returns {string} context7.com URL
47
+ */
48
+ function buildContext7Url(library, topic = null) {
49
+ // Determine if GitHub repo or website
50
+ let basePath;
51
+
52
+ if (library.includes('/')) {
53
+ // GitHub repo format: org/repo
54
+ const [org, repo] = library.split('/');
55
+
56
+ basePath = `${org}/${repo}`;
57
+ } else {
58
+ // Try common patterns
59
+ const normalized = library.toLowerCase().replaceAll(/[^a-z0-9-]/g, '');
60
+
61
+ basePath = `websites/${normalized}`;
62
+ }
63
+
64
+ const baseUrl = `https://context7.com/${basePath}/llms.txt`;
65
+
66
+ if (topic) {
67
+ return `${baseUrl}?topic=${encodeURIComponent(topic)}`;
68
+ }
69
+
70
+ return baseUrl;
71
+ }
72
+
73
+ /**
74
+ * Try multiple URL variations for a library
75
+ * @param {string} library - Library name
76
+ * @param {string} topic - Optional topic
77
+ * @returns {Promise<Array>} Array of URLs to try
78
+ */
79
+ async function getUrlVariations(library, topic = null) {
80
+ const urls = [];
81
+
82
+ // Known repo mappings
83
+ const knownRepos = {
84
+ 'next.js': 'vercel/next.js',
85
+ nextjs: 'vercel/next.js',
86
+ remix: 'remix-run/remix',
87
+ astro: 'withastro/astro',
88
+ shadcn: 'shadcn-ui/ui',
89
+ 'shadcn/ui': 'shadcn-ui/ui',
90
+ 'better-auth': 'better-auth/better-auth',
91
+ };
92
+
93
+ const normalized = library.toLowerCase();
94
+ const repo = knownRepos[normalized] || library;
95
+
96
+ // Primary: Try with topic if available
97
+ if (topic) {
98
+ urls.push(buildContext7Url(repo, topic));
99
+ }
100
+
101
+ // Fallback: Try without topic
102
+ urls.push(buildContext7Url(repo));
103
+
104
+ return urls;
105
+ }
106
+
107
+ /**
108
+ * Fetch documentation from context7.com
109
+ * @param {string} query - User query
110
+ * @returns {Promise<Object>} Documentation result
111
+ */
112
+ async function fetchDocs(query) {
113
+ const topicInfo = detectTopic(query);
114
+
115
+ if (DEBUG) {
116
+ console.error('[DEBUG] Topic detection result:', topicInfo);
117
+ }
118
+
119
+ let urls = [];
120
+
121
+ if (topicInfo && topicInfo.isTopicSpecific) {
122
+ // Topic-specific search
123
+ urls = await getUrlVariations(topicInfo.library, topicInfo.topic);
124
+
125
+ if (DEBUG) {
126
+ console.error('[DEBUG] Topic-specific URLs:', urls);
127
+ }
128
+ } else {
129
+ // Extract library from general query
130
+ const libraryMatch = query.match(/(?:documentation|docs|guide) (?:for )?(.+)/i);
131
+
132
+ if (libraryMatch) {
133
+ const library = libraryMatch[1].trim();
134
+
135
+ urls = await getUrlVariations(library);
136
+
137
+ if (DEBUG) {
138
+ console.error('[DEBUG] General library URLs:', urls);
139
+ }
140
+ }
141
+ }
142
+
143
+ // Try each URL
144
+ for (const url of urls) {
145
+ if (DEBUG) {
146
+ console.error(`[DEBUG] Trying URL: ${url}`);
147
+ }
148
+
149
+ try {
150
+ const content = await httpsGet(url);
151
+
152
+ if (content) {
153
+ return {
154
+ success: true,
155
+ source: 'context7.com',
156
+ url,
157
+ content,
158
+ topicSpecific: url.includes('?topic='),
159
+ };
160
+ }
161
+ } catch (error) {
162
+ if (DEBUG) {
163
+ console.error(`[DEBUG] Failed to fetch ${url}:`, error.message);
164
+ }
165
+ }
166
+ }
167
+
168
+ // No URL worked
169
+ return {
170
+ success: false,
171
+ source: 'context7.com',
172
+ error: 'Documentation not found on context7.com',
173
+ urls,
174
+ suggestion: 'Try repository analysis or web search',
175
+ };
176
+ }
177
+
178
+ /**
179
+ * CLI entry point
180
+ */
181
+ async function main() {
182
+ const args = process.argv.slice(2);
183
+
184
+ if (args.length === 0) {
185
+ console.error('Usage: node fetch-docs.js "<user query>"');
186
+ process.exit(1);
187
+ }
188
+
189
+ const query = args.join(' ');
190
+
191
+ try {
192
+ const result = await fetchDocs(query);
193
+
194
+ console.log(JSON.stringify(result, null, 2));
195
+ process.exit(result.success ? 0 : 1);
196
+ } catch (error) {
197
+ console.error('Error:', error.message);
198
+ process.exit(1);
199
+ }
200
+ }
201
+
202
+ // Run if called directly
203
+ if (require.main === module) {
204
+ main();
205
+ }
206
+
207
+ module.exports = {
208
+ fetchDocs,
209
+ buildContext7Url,
210
+ getUrlVariations,
211
+ httpsGet,
212
+ };
@@ -0,0 +1,87 @@
1
+ # General Library Documentation Search
2
+
3
+ **Use when:** User asks about entire library/framework
4
+
5
+ **Speed:** ⚡⚡ Moderate (30-60s)
6
+ **Token usage:** 🟡 Medium
7
+ **Accuracy:** 📚 Comprehensive
8
+
9
+ ## Trigger Patterns
10
+
11
+ - "Documentation for [LIBRARY]"
12
+ - "[LIBRARY] getting started"
13
+ - "How to use [LIBRARY]"
14
+ - "[LIBRARY] API reference"
15
+
16
+ ## Workflow (Script-First)
17
+
18
+ ```bash
19
+ # STEP 1: Execute detect-topic.js script
20
+ node scripts/detect-topic.js "<user query>"
21
+ # Returns: {"isTopicSpecific": false} for general queries
22
+
23
+ # STEP 2: Execute fetch-docs.js script (handles URL construction)
24
+ node scripts/fetch-docs.js "<user query>"
25
+ # Script constructs context7.com URL automatically
26
+ # Script handles GitHub/website URL patterns
27
+ # Returns: llms.txt content with 5-20+ URLs
28
+
29
+ # STEP 3: Execute analyze-llms-txt.js script
30
+ cat llms.txt | node scripts/analyze-llms-txt.js -
31
+ # Groups URLs: critical, important, supplementary
32
+ # Recommends: agent distribution strategy
33
+ # Returns: {totalUrls, grouped, distribution}
34
+
35
+ # STEP 4: Deploy agents based on script recommendation
36
+ # - 1-3 URLs: Single agent or direct WebFetch
37
+ # - 4-10 URLs: Deploy 3-5 Explorer agents
38
+ # - 11+ URLs: Deploy 7 agents or phased approach
39
+
40
+ # STEP 5: Aggregate and present
41
+ # Synthesize findings: installation, concepts, API, examples
42
+ ```
43
+
44
+ ## Examples
45
+
46
+ **Astro framework:**
47
+ ```bash
48
+ # Execute scripts (no manual URL construction)
49
+ node scripts/detect-topic.js "Documentation for Astro"
50
+ # {"isTopicSpecific": false}
51
+
52
+ node scripts/fetch-docs.js "Documentation for Astro"
53
+ # Script fetches: context7.com/withastro/astro/llms.txt
54
+ # Returns: llms.txt with 8 URLs
55
+
56
+ node scripts/analyze-llms-txt.js < llms.txt
57
+ # {totalUrls: 8, distribution: "3-agents", grouped: {...}}
58
+
59
+ # Deploy 3 Explorer agents as recommended:
60
+ # Agent 1: Getting started, installation, setup
61
+ # Agent 2: Core concepts, components, layouts
62
+ # Agent 3: Configuration, API reference
63
+
64
+ # Aggregate and present comprehensive report
65
+ ```
66
+
67
+ ## Agent Distribution
68
+
69
+ **1-3 URLs:** Single agent
70
+ **4-10 URLs:** 3-5 agents (2-3 URLs each)
71
+ **11-20 URLs:** 7 agents (balanced)
72
+ **21+ URLs:** Two-phase (critical first, then important)
73
+
74
+ ## Known Libraries
75
+
76
+ - Next.js: `vercel/next.js`
77
+ - Astro: `withastro/astro`
78
+ - Remix: `remix-run/remix`
79
+ - shadcn/ui: `shadcn-ui/ui`
80
+ - Better Auth: `better-auth/better-auth`
81
+
82
+ ## Fallback
83
+
84
+ Scripts handle fallback automatically:
85
+ 1. `fetch-docs.js` tries context7.com
86
+ 2. If 404, script suggests WebSearch for llms.txt
87
+ 3. If still unavailable: [Repository Analysis](./repo-analysis.md)