@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,311 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Unified media conversion tool for video, audio, and images.
4
+
5
+ Auto-detects format and applies appropriate tool (FFmpeg or ImageMagick).
6
+ Supports quality presets, batch processing, and dry-run mode.
7
+ """
8
+
9
+ import argparse
10
+ import subprocess
11
+ import sys
12
+ from pathlib import Path
13
+ from typing import List, Optional, Tuple
14
+
15
+
16
+ # Format mappings
17
+ VIDEO_FORMATS = {'.mp4', '.mkv', '.avi', '.mov', '.webm', '.flv', '.wmv', '.m4v'}
18
+ AUDIO_FORMATS = {'.mp3', '.aac', '.m4a', '.opus', '.flac', '.wav', '.ogg'}
19
+ IMAGE_FORMATS = {'.jpg', '.jpeg', '.png', '.gif', '.webp', '.bmp', '.tiff', '.tif'}
20
+
21
+ # Quality presets
22
+ QUALITY_PRESETS = {
23
+ 'web': {
24
+ 'video_crf': 23,
25
+ 'video_preset': 'medium',
26
+ 'audio_bitrate': '128k',
27
+ 'image_quality': 85
28
+ },
29
+ 'archive': {
30
+ 'video_crf': 18,
31
+ 'video_preset': 'slow',
32
+ 'audio_bitrate': '192k',
33
+ 'image_quality': 95
34
+ },
35
+ 'mobile': {
36
+ 'video_crf': 26,
37
+ 'video_preset': 'fast',
38
+ 'audio_bitrate': '96k',
39
+ 'image_quality': 80
40
+ }
41
+ }
42
+
43
+
44
+ def check_dependencies() -> Tuple[bool, bool]:
45
+ """Check if ffmpeg and imagemagick are available."""
46
+ ffmpeg_available = subprocess.run(
47
+ ['ffmpeg', '-version'],
48
+ stdout=subprocess.DEVNULL,
49
+ stderr=subprocess.DEVNULL
50
+ ).returncode == 0
51
+
52
+ magick_available = subprocess.run(
53
+ ['magick', '-version'],
54
+ stdout=subprocess.DEVNULL,
55
+ stderr=subprocess.DEVNULL
56
+ ).returncode == 0
57
+
58
+ return ffmpeg_available, magick_available
59
+
60
+
61
+ def detect_media_type(file_path: Path) -> str:
62
+ """Detect media type from file extension."""
63
+ ext = file_path.suffix.lower()
64
+
65
+ if ext in VIDEO_FORMATS:
66
+ return 'video'
67
+ elif ext in AUDIO_FORMATS:
68
+ return 'audio'
69
+ elif ext in IMAGE_FORMATS:
70
+ return 'image'
71
+ else:
72
+ return 'unknown'
73
+
74
+
75
+ def build_video_command(
76
+ input_path: Path,
77
+ output_path: Path,
78
+ preset: str = 'web'
79
+ ) -> List[str]:
80
+ """Build FFmpeg command for video conversion."""
81
+ quality = QUALITY_PRESETS[preset]
82
+
83
+ return [
84
+ 'ffmpeg', '-i', str(input_path),
85
+ '-c:v', 'libx264',
86
+ '-preset', quality['video_preset'],
87
+ '-crf', str(quality['video_crf']),
88
+ '-c:a', 'aac',
89
+ '-b:a', quality['audio_bitrate'],
90
+ '-movflags', '+faststart',
91
+ '-y',
92
+ str(output_path)
93
+ ]
94
+
95
+
96
+ def build_audio_command(
97
+ input_path: Path,
98
+ output_path: Path,
99
+ preset: str = 'web'
100
+ ) -> List[str]:
101
+ """Build FFmpeg command for audio conversion."""
102
+ quality = QUALITY_PRESETS[preset]
103
+ output_ext = output_path.suffix.lower()
104
+
105
+ codec_map = {
106
+ '.mp3': 'libmp3lame',
107
+ '.aac': 'aac',
108
+ '.m4a': 'aac',
109
+ '.opus': 'libopus',
110
+ '.flac': 'flac',
111
+ '.wav': 'pcm_s16le',
112
+ '.ogg': 'libvorbis'
113
+ }
114
+
115
+ codec = codec_map.get(output_ext, 'aac')
116
+
117
+ cmd = ['ffmpeg', '-i', str(input_path), '-c:a', codec]
118
+
119
+ # Add bitrate for lossy codecs
120
+ if codec not in ['flac', 'pcm_s16le']:
121
+ cmd.extend(['-b:a', quality['audio_bitrate']])
122
+
123
+ cmd.extend(['-y', str(output_path)])
124
+ return cmd
125
+
126
+
127
+ def build_image_command(
128
+ input_path: Path,
129
+ output_path: Path,
130
+ preset: str = 'web'
131
+ ) -> List[str]:
132
+ """Build ImageMagick command for image conversion."""
133
+ quality = QUALITY_PRESETS[preset]
134
+
135
+ return [
136
+ 'magick', str(input_path),
137
+ '-quality', str(quality['image_quality']),
138
+ '-strip',
139
+ str(output_path)
140
+ ]
141
+
142
+
143
+ def convert_file(
144
+ input_path: Path,
145
+ output_path: Path,
146
+ preset: str = 'web',
147
+ dry_run: bool = False,
148
+ verbose: bool = False
149
+ ) -> bool:
150
+ """Convert a single media file."""
151
+ media_type = detect_media_type(input_path)
152
+
153
+ if media_type == 'unknown':
154
+ print(f"Error: Unsupported format for {input_path}", file=sys.stderr)
155
+ return False
156
+
157
+ # Ensure output directory exists
158
+ output_path.parent.mkdir(parents=True, exist_ok=True)
159
+
160
+ # Build command based on media type
161
+ if media_type == 'video':
162
+ cmd = build_video_command(input_path, output_path, preset)
163
+ elif media_type == 'audio':
164
+ cmd = build_audio_command(input_path, output_path, preset)
165
+ else: # image
166
+ cmd = build_image_command(input_path, output_path, preset)
167
+
168
+ if verbose or dry_run:
169
+ print(f"Command: {' '.join(cmd)}")
170
+
171
+ if dry_run:
172
+ return True
173
+
174
+ try:
175
+ result = subprocess.run(
176
+ cmd,
177
+ stdout=subprocess.PIPE if not verbose else None,
178
+ stderr=subprocess.PIPE if not verbose else None,
179
+ check=True
180
+ )
181
+ return True
182
+ except subprocess.CalledProcessError as e:
183
+ print(f"Error converting {input_path}: {e}", file=sys.stderr)
184
+ if not verbose and e.stderr:
185
+ print(e.stderr.decode(), file=sys.stderr)
186
+ return False
187
+ except Exception as e:
188
+ print(f"Error converting {input_path}: {e}", file=sys.stderr)
189
+ return False
190
+
191
+
192
+ def batch_convert(
193
+ input_paths: List[Path],
194
+ output_dir: Optional[Path] = None,
195
+ output_format: Optional[str] = None,
196
+ preset: str = 'web',
197
+ dry_run: bool = False,
198
+ verbose: bool = False
199
+ ) -> Tuple[int, int]:
200
+ """Convert multiple files."""
201
+ success_count = 0
202
+ fail_count = 0
203
+
204
+ for input_path in input_paths:
205
+ if not input_path.exists():
206
+ print(f"Error: {input_path} not found", file=sys.stderr)
207
+ fail_count += 1
208
+ continue
209
+
210
+ # Determine output path
211
+ if output_dir:
212
+ output_name = input_path.stem
213
+ if output_format:
214
+ output_path = output_dir / f"{output_name}.{output_format.lstrip('.')}"
215
+ else:
216
+ output_path = output_dir / input_path.name
217
+ else:
218
+ if output_format:
219
+ output_path = input_path.with_suffix(f".{output_format.lstrip('.')}")
220
+ else:
221
+ print(f"Error: No output format specified for {input_path}", file=sys.stderr)
222
+ fail_count += 1
223
+ continue
224
+
225
+ print(f"Converting {input_path.name} -> {output_path.name}")
226
+
227
+ if convert_file(input_path, output_path, preset, dry_run, verbose):
228
+ success_count += 1
229
+ else:
230
+ fail_count += 1
231
+
232
+ return success_count, fail_count
233
+
234
+
235
+ def main():
236
+ """Main entry point."""
237
+ parser = argparse.ArgumentParser(
238
+ description='Unified media conversion tool for video, audio, and images.'
239
+ )
240
+ parser.add_argument(
241
+ 'inputs',
242
+ nargs='+',
243
+ type=Path,
244
+ help='Input file(s) to convert'
245
+ )
246
+ parser.add_argument(
247
+ '-o', '--output',
248
+ type=Path,
249
+ help='Output file or directory for batch conversion'
250
+ )
251
+ parser.add_argument(
252
+ '-f', '--format',
253
+ help='Output format (e.g., mp4, jpg, mp3)'
254
+ )
255
+ parser.add_argument(
256
+ '-p', '--preset',
257
+ choices=['web', 'archive', 'mobile'],
258
+ default='web',
259
+ help='Quality preset (default: web)'
260
+ )
261
+ parser.add_argument(
262
+ '-n', '--dry-run',
263
+ action='store_true',
264
+ help='Show commands without executing'
265
+ )
266
+ parser.add_argument(
267
+ '-v', '--verbose',
268
+ action='store_true',
269
+ help='Verbose output'
270
+ )
271
+
272
+ args = parser.parse_args()
273
+
274
+ # Check dependencies
275
+ ffmpeg_ok, magick_ok = check_dependencies()
276
+ if not ffmpeg_ok and not magick_ok:
277
+ print("Error: Neither ffmpeg nor imagemagick found", file=sys.stderr)
278
+ sys.exit(1)
279
+
280
+ # Handle single file vs batch conversion
281
+ if len(args.inputs) == 1 and args.output and not args.output.is_dir():
282
+ # Single file conversion
283
+ success = convert_file(
284
+ args.inputs[0],
285
+ args.output,
286
+ args.preset,
287
+ args.dry_run,
288
+ args.verbose
289
+ )
290
+ sys.exit(0 if success else 1)
291
+ else:
292
+ # Batch conversion
293
+ output_dir = args.output if args.output else Path.cwd()
294
+ if not args.output:
295
+ output_dir = None # Will convert in place with new format
296
+
297
+ success, fail = batch_convert(
298
+ args.inputs,
299
+ output_dir,
300
+ args.format,
301
+ args.preset,
302
+ args.dry_run,
303
+ args.verbose
304
+ )
305
+
306
+ print(f"\nResults: {success} succeeded, {fail} failed")
307
+ sys.exit(0 if fail == 0 else 1)
308
+
309
+
310
+ if __name__ == '__main__':
311
+ main()
@@ -0,0 +1,96 @@
1
+ #!/bin/bash
2
+ # Background removal script using RMBG CLI
3
+ # Usage: ./remove-background.sh <input> [model] [output] [resolution]
4
+
5
+ set -e
6
+
7
+ # Colors for output
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ NC='\033[0m' # No Color
12
+
13
+ # Default values
14
+ INPUT=""
15
+ MODEL="modnet"
16
+ OUTPUT=""
17
+ MAX_RESOLUTION="2048"
18
+
19
+ # Parse arguments
20
+ INPUT="$1"
21
+ if [ -n "$2" ]; then
22
+ MODEL="$2"
23
+ fi
24
+ if [ -n "$3" ]; then
25
+ OUTPUT="$3"
26
+ fi
27
+ if [ -n "$4" ]; then
28
+ MAX_RESOLUTION="$4"
29
+ fi
30
+
31
+ # Validate input
32
+ if [ -z "$INPUT" ]; then
33
+ echo -e "${RED}Error: Input file is required${NC}"
34
+ echo ""
35
+ echo "Usage: $0 <input> [model] [output] [resolution]"
36
+ echo ""
37
+ echo "Arguments:"
38
+ echo " input Input image file (required)"
39
+ echo " model Model name: u2netp, modnet, briaai, isnet-anime, silueta, u2net-cloth (default: modnet)"
40
+ echo " output Output file path (default: auto-generated)"
41
+ echo " resolution Max resolution in pixels (default: 2048)"
42
+ echo ""
43
+ echo "Examples:"
44
+ echo " $0 photo.jpg"
45
+ echo " $0 photo.jpg briaai"
46
+ echo " $0 photo.jpg briaai output.png"
47
+ echo " $0 photo.jpg briaai output.png 4096"
48
+ exit 1
49
+ fi
50
+
51
+ if [ ! -f "$INPUT" ]; then
52
+ echo -e "${RED}Error: Input file '$INPUT' not found${NC}"
53
+ exit 1
54
+ fi
55
+
56
+ # Check if rmbg-cli is installed
57
+ if ! command -v rmbg &> /dev/null; then
58
+ echo -e "${YELLOW}Warning: rmbg-cli not found${NC}"
59
+ echo "Installing rmbg-cli globally..."
60
+ npm install -g rmbg-cli
61
+ echo -e "${GREEN}✓ rmbg-cli installed${NC}"
62
+ fi
63
+
64
+ # Generate output filename if not provided
65
+ if [ -z "$OUTPUT" ]; then
66
+ BASENAME=$(basename "$INPUT" | sed 's/\.[^.]*$//')
67
+ OUTPUT="${BASENAME}-no-bg.png"
68
+ fi
69
+
70
+ # Display configuration
71
+ echo -e "${GREEN}Background Removal Configuration:${NC}"
72
+ echo " Input: $INPUT"
73
+ echo " Model: $MODEL"
74
+ echo " Output: $OUTPUT"
75
+ echo " Resolution: $MAX_RESOLUTION"
76
+ echo ""
77
+
78
+ # Remove background
79
+ echo "Processing..."
80
+ rmbg "$INPUT" -m "$MODEL" -o "$OUTPUT" -r "$MAX_RESOLUTION"
81
+
82
+ if [ $? -eq 0 ]; then
83
+ echo -e "${GREEN}✓ Background removed successfully${NC}"
84
+ echo " Output: $OUTPUT"
85
+
86
+ # Display file sizes
87
+ INPUT_SIZE=$(du -h "$INPUT" | cut -f1)
88
+ OUTPUT_SIZE=$(du -h "$OUTPUT" | cut -f1)
89
+ echo ""
90
+ echo "File sizes:"
91
+ echo " Input: $INPUT_SIZE"
92
+ echo " Output: $OUTPUT_SIZE"
93
+ else
94
+ echo -e "${RED}✗ Background removal failed${NC}"
95
+ exit 1
96
+ fi
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Node.js background removal script using RMBG SDK
5
+ * Usage: node remove-bg-node.js <input> [options]
6
+ */
7
+
8
+ const { readFileSync, writeFileSync, existsSync } = require('node:fs');
9
+ const { basename, extname } = require('node:path');
10
+ const { rmbg, createBriaaiModel, createModnetModel, createU2netpModel } = require('rmbg');
11
+
12
+ // Parse command line arguments
13
+ const args = process.argv.slice(2);
14
+
15
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
16
+ console.log(`
17
+ Background Removal using RMBG SDK
18
+
19
+ Usage: node remove-bg-node.js <input> [options]
20
+
21
+ Arguments:
22
+ input Input image file path (required)
23
+
24
+ Options:
25
+ -o, --output <path> Output file path (default: auto-generated)
26
+ -m, --model <name> Model: briaai, modnet, u2netp (default: modnet)
27
+ -r, --resolution <n> Max resolution in pixels (default: 2048)
28
+ -p, --progress Show progress information
29
+ -h, --help Show this help message
30
+
31
+ Examples:
32
+ node remove-bg-node.js photo.jpg
33
+ node remove-bg-node.js photo.jpg -m briaai -o output.png
34
+ node remove-bg-node.js photo.jpg -r 4096 -p
35
+ `);
36
+ process.exit(0);
37
+ }
38
+
39
+ // Parse options
40
+ const input = args[0];
41
+ let output = null;
42
+ let model = 'modnet';
43
+ let maxResolution = 2048;
44
+ let showProgress = false;
45
+
46
+ for (let i = 1; i < args.length; i++) {
47
+ const arg = args[i];
48
+
49
+ switch (arg) {
50
+ case '-o':
51
+ case '--output': {
52
+ output = args[++i];
53
+
54
+ break;
55
+ }
56
+ case '-m':
57
+ case '--model': {
58
+ model = args[++i];
59
+
60
+ break;
61
+ }
62
+ case '-r':
63
+ case '--resolution': {
64
+ maxResolution = Number.parseInt(args[++i], 10);
65
+
66
+ break;
67
+ }
68
+ case '-p':
69
+ case '--progress': {
70
+ showProgress = true;
71
+
72
+ break;
73
+ }
74
+ // No default
75
+ }
76
+ }
77
+
78
+ // Validate input
79
+ if (!input) {
80
+ console.error('Error: Input file is required');
81
+ process.exit(1);
82
+ }
83
+
84
+ if (!existsSync(input)) {
85
+ console.error(`Error: Input file '${input}' not found`);
86
+ process.exit(1);
87
+ }
88
+
89
+ // Generate output filename if not provided
90
+ if (!output) {
91
+ const name = basename(input, extname(input));
92
+
93
+ output = `${name}-no-bg.png`;
94
+ }
95
+
96
+ // Select model
97
+ let modelInstance;
98
+
99
+ switch (model.toLowerCase()) {
100
+ case 'briaai': {
101
+ modelInstance = createBriaaiModel();
102
+ break;
103
+ }
104
+ case 'u2netp': {
105
+ modelInstance = createU2netpModel();
106
+ break;
107
+ }
108
+ case 'modnet':
109
+ default: {
110
+ modelInstance = createModnetModel();
111
+ break;
112
+ }
113
+ }
114
+
115
+ // Display configuration
116
+ console.log('Background Removal Configuration:');
117
+ console.log(` Input: ${input}`);
118
+ console.log(` Model: ${model}`);
119
+ console.log(` Output: ${output}`);
120
+ console.log(` Resolution: ${maxResolution}`);
121
+ console.log('');
122
+
123
+ // Remove background
124
+ async function removeBackground() {
125
+ try {
126
+ console.log('Processing...');
127
+ const startTime = Date.now();
128
+
129
+ const options = {
130
+ model: modelInstance,
131
+ maxResolution,
132
+ output,
133
+ };
134
+
135
+ if (showProgress) {
136
+ options.onProgress = (progress, download, process) => {
137
+ const percent = Math.round(progress * 100);
138
+ const downloadPercent = Math.round(download * 100);
139
+ const processPercent = Math.round(process * 100);
140
+
141
+ process.stdout.write(`\rProgress: ${percent}% | Download: ${downloadPercent}% | Process: ${processPercent}%`);
142
+ };
143
+ }
144
+
145
+ await rmbg(input, options);
146
+
147
+ const duration = ((Date.now() - startTime) / 1000).toFixed(2);
148
+
149
+ if (showProgress) {
150
+ console.log(''); // New line after progress
151
+ }
152
+
153
+ console.log('✓ Background removed successfully');
154
+ console.log(` Output: ${output}`);
155
+ console.log(` Duration: ${duration}s`);
156
+
157
+ // Display file sizes
158
+ const inputStats = require('node:fs').statSync(input);
159
+ const outputStats = require('node:fs').statSync(output);
160
+
161
+ console.log('');
162
+ console.log('File sizes:');
163
+ console.log(` Input: ${formatBytes(inputStats.size)}`);
164
+ console.log(` Output: ${formatBytes(outputStats.size)}`);
165
+ } catch (error) {
166
+ console.error('✗ Background removal failed:', error.message);
167
+ process.exit(1);
168
+ }
169
+ }
170
+
171
+ function formatBytes(bytes) {
172
+ if (bytes === 0) return '0 Bytes';
173
+ const k = 1024;
174
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
175
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
176
+
177
+ return `${Math.round((bytes / k ** i) * 100) / 100} ${sizes[i]}`;
178
+ }
179
+
180
+ // Run
181
+ removeBackground();
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: mermaidjs-v11
3
+ description: Create diagrams and visualizations using Mermaid.js v11 syntax. Use when generating flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, Gantt charts, user journeys, timelines, architecture diagrams, or any of 24+ diagram types. Supports JavaScript API integration, CLI rendering to SVG/PNG/PDF, theming, configuration, and accessibility features. Essential for documentation, technical diagrams, project planning, system architecture, and visual communication.
4
+ ---
5
+
6
+ # Mermaid.js v11
7
+
8
+ ## Overview
9
+
10
+ Create text-based diagrams using Mermaid.js v11 declarative syntax. Convert code to SVG/PNG/PDF via CLI or render in browsers/markdown files.
11
+
12
+ ## Quick Start
13
+
14
+ **Basic Diagram Structure:**
15
+ ```
16
+ {diagram-type}
17
+ {diagram-content}
18
+ ```
19
+
20
+ **Common Diagram Types:**
21
+ - `flowchart` - Process flows, decision trees
22
+ - `sequenceDiagram` - Actor interactions, API flows
23
+ - `classDiagram` - OOP structures, data models
24
+ - `stateDiagram` - State machines, workflows
25
+ - `erDiagram` - Database relationships
26
+ - `gantt` - Project timelines
27
+ - `journey` - User experience flows
28
+
29
+ See `references/diagram-types.md` for all 24+ types with syntax.
30
+
31
+ ## Creating Diagrams
32
+
33
+ **Inline Markdown Code Blocks:**
34
+ ````markdown
35
+ ```mermaid
36
+ flowchart TD
37
+ A[Start] --> B{Decision}
38
+ B -->|Yes| C[Action]
39
+ B -->|No| D[End]
40
+ ```
41
+ ````
42
+
43
+ **Configuration via Frontmatter:**
44
+ ````markdown
45
+ ```mermaid
46
+ ---
47
+ theme: dark
48
+ ---
49
+ flowchart LR
50
+ A --> B
51
+ ```
52
+ ````
53
+
54
+ **Comments:** Use `%% ` prefix for single-line comments.
55
+
56
+ ## CLI Usage
57
+
58
+ Convert `.mmd` files to images:
59
+ ```bash
60
+ # Installation
61
+ npm install -g @mermaid-js/mermaid-cli
62
+
63
+ # Basic conversion
64
+ mmdc -i diagram.mmd -o diagram.svg
65
+
66
+ # With theme and background
67
+ mmdc -i input.mmd -o output.png -t dark -b transparent
68
+
69
+ # Custom styling
70
+ mmdc -i diagram.mmd --cssFile style.css -o output.svg
71
+ ```
72
+
73
+ See `references/cli-usage.md` for Docker, batch processing, and advanced workflows.
74
+
75
+ ## JavaScript Integration
76
+
77
+ **HTML Embedding:**
78
+ ```html
79
+ <pre class="mermaid">
80
+ flowchart TD
81
+ A[Client] --> B[Server]
82
+ </pre>
83
+ <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
84
+ <script>mermaid.initialize({ startOnLoad: true });</script>
85
+ ```
86
+
87
+ See `references/integration.md` for Node.js API and advanced integration patterns.
88
+
89
+ ## Configuration & Theming
90
+
91
+ **Common Options:**
92
+ - `theme`: "default", "dark", "forest", "neutral", "base"
93
+ - `look`: "classic", "handDrawn"
94
+ - `fontFamily`: Custom font specification
95
+ - `securityLevel`: "strict", "loose", "antiscript"
96
+
97
+ See `references/configuration.md` for complete config options, theming, and customization.
98
+
99
+ ## Practical Patterns
100
+
101
+ Load `references/examples.md` for:
102
+ - Architecture diagrams
103
+ - API documentation flows
104
+ - Database schemas
105
+ - Project timelines
106
+ - State machines
107
+ - User journey maps
108
+
109
+ ## Resources
110
+
111
+ - `references/diagram-types.md` - Syntax for all 24+ diagram types
112
+ - `references/configuration.md` - Config, theming, accessibility
113
+ - `references/cli-usage.md` - CLI commands and workflows
114
+ - `references/integration.md` - JavaScript API and embedding
115
+ - `references/examples.md` - Practical patterns and use cases