cokit-cli 1.0.0 → 1.0.2

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 (599) hide show
  1. package/AGENTS.md +103 -0
  2. package/FAQ.md +5 -5
  3. package/QUICK-START.md +4 -4
  4. package/README.FLOW.md +237 -0
  5. package/README.md +153 -92
  6. package/agents/brainstormer.agent.md +71 -0
  7. package/agents/code-reviewer.agent.md +128 -0
  8. package/agents/database-admin.agent.md +91 -0
  9. package/agents/debugger.agent.md +128 -0
  10. package/agents/docs-manager.agent.md +121 -0
  11. package/agents/fullstack-developer.agent.md +96 -0
  12. package/agents/git-manager.agent.md +392 -0
  13. package/agents/mcp-manager.agent.md +93 -0
  14. package/agents/planner.agent.md +94 -0
  15. package/agents/project-manager.agent.md +124 -0
  16. package/agents/researcher.agent.md +32 -0
  17. package/agents/scout-external.agent.md +141 -0
  18. package/agents/scout.agent.md +107 -0
  19. package/agents/tester.agent.md +106 -0
  20. package/agents/ui-ux-designer.agent.md +225 -0
  21. package/collections/ck-core.collection.yml +30 -0
  22. package/collections/ck-development-rules.collection.yml +18 -0
  23. package/collections/ck-documentation.collection.yml +18 -0
  24. package/collections/ck-git-workflow.collection.yml +18 -0
  25. package/collections/ck-orchestration.collection.yml +22 -0
  26. package/collections/ck-ui-design.collection.yml +18 -0
  27. package/docs/README.md +85 -0
  28. package/docs/copilot-processing-flow.md +128 -0
  29. package/docs/migration-guide.md +12 -12
  30. package/instructions/ck-backend.instructions.md +48 -0
  31. package/instructions/ck-development.instructions.md +40 -0
  32. package/instructions/ck-frontend-design-pro.instructions.md +58 -0
  33. package/instructions/ck-frontend.instructions.md +44 -0
  34. package/instructions/ck-google-adk-python.instructions.md +242 -0
  35. package/instructions/ck-research.instructions.md +167 -0
  36. package/instructions/ck-testing.instructions.md +36 -0
  37. package/package.json +9 -2
  38. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-01-restructure-folders.md +183 -0
  39. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-02-convert-agents.md +206 -0
  40. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-03-convert-commands-to-prompts.md +284 -0
  41. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-04-convert-skills-to-instructions.md +349 -0
  42. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-05-create-collections.md +320 -0
  43. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-06-update-cli-build-scripts.md +450 -0
  44. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-07-update-documentation.md +407 -0
  45. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/plan.md +136 -0
  46. package/prompts/ck-ask.prompt.md +57 -0
  47. package/prompts/ck-bootstrap-auto-fast.prompt.md +108 -0
  48. package/prompts/ck-bootstrap-auto-parallel.prompt.md +66 -0
  49. package/prompts/ck-bootstrap-auto.prompt.md +114 -0
  50. package/prompts/ck-bootstrap.prompt.md +136 -0
  51. package/prompts/ck-brainstorm.prompt.md +68 -0
  52. package/prompts/ck-ck-help.prompt.md +114 -0
  53. package/prompts/ck-code-auto.prompt.md +171 -0
  54. package/prompts/ck-code-no-test.prompt.md +159 -0
  55. package/prompts/ck-code-parallel.prompt.md +56 -0
  56. package/prompts/ck-code.prompt.md +177 -0
  57. package/prompts/ck-coding-level.prompt.md +54 -0
  58. package/prompts/ck-cook-auto-fast.prompt.md +26 -0
  59. package/prompts/ck-cook-auto-parallel.prompt.md +49 -0
  60. package/prompts/ck-cook-auto.prompt.md +15 -0
  61. package/prompts/ck-cook.prompt.md +96 -0
  62. package/prompts/ck-debug.prompt.md +14 -0
  63. package/prompts/ck-design-3d.prompt.md +84 -0
  64. package/prompts/ck-design-describe.prompt.md +24 -0
  65. package/prompts/ck-design-fast.prompt.md +32 -0
  66. package/prompts/ck-design-good.prompt.md +36 -0
  67. package/prompts/ck-design-screenshot.prompt.md +35 -0
  68. package/prompts/ck-design-video.prompt.md +35 -0
  69. package/prompts/ck-docs-init.prompt.md +27 -0
  70. package/prompts/ck-docs-summarize.prompt.md +23 -0
  71. package/prompts/ck-docs-update.prompt.md +36 -0
  72. package/prompts/ck-fix-ci.prompt.md +18 -0
  73. package/prompts/ck-fix-fast.prompt.md +18 -0
  74. package/prompts/ck-fix-hard.prompt.md +36 -0
  75. package/prompts/ck-fix-logs.prompt.md +27 -0
  76. package/prompts/ck-fix-parallel.prompt.md +54 -0
  77. package/prompts/ck-fix-test.prompt.md +19 -0
  78. package/prompts/ck-fix-types.prompt.md +11 -0
  79. package/prompts/ck-fix-ui.prompt.md +49 -0
  80. package/prompts/ck-fix.prompt.md +44 -0
  81. package/prompts/ck-git-cm.prompt.md +8 -0
  82. package/prompts/ck-git-cp.prompt.md +7 -0
  83. package/prompts/ck-git-merge.prompt.md +41 -0
  84. package/prompts/ck-git-pr.prompt.md +49 -0
  85. package/prompts/ck-kanban.prompt.md +77 -0
  86. package/prompts/ck-plan-archive.prompt.md +58 -0
  87. package/prompts/ck-plan-ci.prompt.md +34 -0
  88. package/prompts/ck-plan-cro.prompt.md +66 -0
  89. package/prompts/ck-plan-fast.prompt.md +67 -0
  90. package/prompts/ck-plan-hard.prompt.md +89 -0
  91. package/prompts/ck-plan-parallel.prompt.md +126 -0
  92. package/prompts/ck-plan-two.prompt.md +43 -0
  93. package/prompts/ck-plan-validate.prompt.md +118 -0
  94. package/prompts/ck-plan.prompt.md +29 -1
  95. package/prompts/ck-preview.prompt.md +65 -0
  96. package/prompts/ck-review-codebase.prompt.md +44 -0
  97. package/prompts/ck-scout-ext.prompt.md +35 -0
  98. package/prompts/ck-scout.prompt.md +25 -0
  99. package/prompts/ck-skill-add.prompt.md +36 -0
  100. package/prompts/ck-skill-create.prompt.md +29 -0
  101. package/prompts/ck-skill-fix-logs.prompt.md +22 -0
  102. package/prompts/ck-skill-optimize-auto.prompt.md +25 -0
  103. package/prompts/ck-skill-optimize.prompt.md +34 -0
  104. package/prompts/ck-skill-plan.prompt.md +46 -0
  105. package/prompts/ck-test-ui.prompt.md +92 -0
  106. package/prompts/ck-test.prompt.md +10 -0
  107. package/prompts/ck-use-mcp.prompt.md +27 -0
  108. package/prompts/ck-watzup.prompt.md +11 -0
  109. package/prompts/ck-worktree.prompt.md +127 -0
  110. package/rules/README.agents.md +55 -0
  111. package/rules/README.collections.md +78 -0
  112. package/rules/README.copilot-instructions.md +66 -0
  113. package/rules/README.instructions.md +73 -0
  114. package/rules/README.md +39 -0
  115. package/rules/README.prompts.md +76 -0
  116. package/rules/README.skills.md +71 -0
  117. package/skills/ck-ai-artist/SKILL.md +73 -0
  118. package/skills/ck-ai-artist/references/advanced-techniques.md +184 -0
  119. package/skills/ck-ai-artist/references/domain-code.md +66 -0
  120. package/skills/ck-ai-artist/references/domain-data.md +72 -0
  121. package/skills/ck-ai-artist/references/domain-marketing.md +66 -0
  122. package/skills/ck-ai-artist/references/domain-patterns.md +33 -0
  123. package/skills/ck-ai-artist/references/domain-writing.md +68 -0
  124. package/skills/ck-ai-artist/references/image-prompting.md +141 -0
  125. package/skills/ck-ai-artist/references/llm-prompting.md +165 -0
  126. package/skills/ck-ai-artist/references/nano-banana.md +59 -0
  127. package/skills/ck-ai-artist/references/reasoning-techniques.md +201 -0
  128. package/skills/ck-backend-development/SKILL.md +93 -0
  129. package/skills/ck-backend-development/references/backend-api-design.md +495 -0
  130. package/skills/ck-backend-development/references/backend-architecture.md +454 -0
  131. package/skills/ck-backend-development/references/backend-authentication.md +338 -0
  132. package/skills/ck-backend-development/references/backend-code-quality.md +659 -0
  133. package/skills/ck-backend-development/references/backend-debugging.md +904 -0
  134. package/skills/ck-backend-development/references/backend-devops.md +494 -0
  135. package/skills/ck-backend-development/references/backend-mindset.md +387 -0
  136. package/skills/ck-backend-development/references/backend-performance.md +397 -0
  137. package/skills/ck-backend-development/references/backend-security.md +290 -0
  138. package/skills/ck-backend-development/references/backend-technologies.md +256 -0
  139. package/skills/ck-backend-development/references/backend-testing.md +429 -0
  140. package/skills/ck-better-auth/SKILL.md +202 -0
  141. package/skills/ck-better-auth/references/advanced-features.md +553 -0
  142. package/skills/ck-better-auth/references/database-integration.md +577 -0
  143. package/skills/ck-better-auth/references/email-password-auth.md +416 -0
  144. package/skills/ck-better-auth/references/oauth-providers.md +430 -0
  145. package/skills/ck-better-auth/scripts/.coverage +0 -0
  146. package/skills/ck-better-auth/scripts/better_auth_init.py +521 -0
  147. package/skills/ck-better-auth/scripts/requirements.txt +15 -0
  148. package/skills/ck-better-auth/scripts/tests/.coverage +0 -0
  149. package/skills/ck-better-auth/scripts/tests/test_better_auth_init.py +421 -0
  150. package/skills/ck-chrome-devtools/SKILL.md +470 -0
  151. package/skills/ck-chrome-devtools/references/cdp-domains.md +694 -0
  152. package/skills/ck-chrome-devtools/references/performance-guide.md +940 -0
  153. package/skills/ck-chrome-devtools/references/puppeteer-reference.md +953 -0
  154. package/skills/ck-chrome-devtools/scripts/README.md +272 -0
  155. package/skills/ck-chrome-devtools/scripts/__tests__/selector.test.js +210 -0
  156. package/skills/ck-chrome-devtools/scripts/aria-snapshot.js +362 -0
  157. package/skills/ck-chrome-devtools/scripts/click.js +83 -0
  158. package/skills/ck-chrome-devtools/scripts/console.js +79 -0
  159. package/skills/ck-chrome-devtools/scripts/evaluate.js +53 -0
  160. package/skills/ck-chrome-devtools/scripts/fill.js +76 -0
  161. package/skills/ck-chrome-devtools/scripts/inject-auth.js +229 -0
  162. package/skills/ck-chrome-devtools/scripts/install-deps.sh +181 -0
  163. package/skills/ck-chrome-devtools/scripts/install.sh +83 -0
  164. package/skills/ck-chrome-devtools/scripts/lib/browser.js +318 -0
  165. package/skills/ck-chrome-devtools/scripts/lib/selector.js +178 -0
  166. package/skills/ck-chrome-devtools/scripts/navigate.js +54 -0
  167. package/skills/ck-chrome-devtools/scripts/network.js +106 -0
  168. package/skills/ck-chrome-devtools/scripts/package-lock.json +1589 -0
  169. package/skills/ck-chrome-devtools/scripts/package.json +16 -0
  170. package/skills/ck-chrome-devtools/scripts/performance.js +149 -0
  171. package/skills/ck-chrome-devtools/scripts/screenshot.js +198 -0
  172. package/skills/ck-chrome-devtools/scripts/select-ref.js +131 -0
  173. package/skills/ck-chrome-devtools/scripts/snapshot.js +135 -0
  174. package/skills/ck-code-review/SKILL.md +143 -0
  175. package/skills/ck-code-review/references/code-review-reception.md +209 -0
  176. package/skills/ck-code-review/references/requesting-code-review.md +105 -0
  177. package/skills/ck-code-review/references/verification-before-completion.md +139 -0
  178. package/skills/ck-databases/SKILL.md +231 -0
  179. package/skills/ck-databases/references/mongodb-aggregation.md +447 -0
  180. package/skills/ck-databases/references/mongodb-atlas.md +465 -0
  181. package/skills/ck-databases/references/mongodb-crud.md +408 -0
  182. package/skills/ck-databases/references/mongodb-indexing.md +442 -0
  183. package/skills/ck-databases/references/postgresql-administration.md +594 -0
  184. package/skills/ck-databases/references/postgresql-performance.md +527 -0
  185. package/skills/ck-databases/references/postgresql-psql-cli.md +467 -0
  186. package/skills/ck-databases/references/postgresql-queries.md +475 -0
  187. package/skills/ck-databases/scripts/.coverage +0 -0
  188. package/skills/ck-databases/scripts/db_backup.py +502 -0
  189. package/skills/ck-databases/scripts/db_migrate.py +425 -0
  190. package/skills/ck-databases/scripts/db_performance_check.py +456 -0
  191. package/skills/ck-databases/scripts/requirements.txt +20 -0
  192. package/skills/ck-databases/scripts/tests/coverage-db.json +1 -0
  193. package/skills/ck-databases/scripts/tests/requirements.txt +4 -0
  194. package/skills/ck-databases/scripts/tests/test_db_backup.py +340 -0
  195. package/skills/ck-databases/scripts/tests/test_db_migrate.py +277 -0
  196. package/skills/ck-databases/scripts/tests/test_db_performance_check.py +370 -0
  197. package/skills/ck-debugging/SKILL.md +82 -0
  198. package/skills/ck-debugging/references/defense-in-depth.md +124 -0
  199. package/skills/ck-debugging/references/root-cause-tracing.md +122 -0
  200. package/skills/ck-debugging/references/systematic-debugging.md +102 -0
  201. package/skills/ck-debugging/references/verification.md +123 -0
  202. package/skills/ck-debugging/scripts/find-polluter.sh +63 -0
  203. package/skills/ck-debugging/scripts/find-polluter.test.md +102 -0
  204. package/skills/ck-devops/.env.example +76 -0
  205. package/skills/ck-devops/SKILL.md +283 -0
  206. package/skills/ck-devops/references/browser-rendering.md +305 -0
  207. package/skills/ck-devops/references/cloudflare-d1-kv.md +123 -0
  208. package/skills/ck-devops/references/cloudflare-platform.md +271 -0
  209. package/skills/ck-devops/references/cloudflare-r2-storage.md +280 -0
  210. package/skills/ck-devops/references/cloudflare-workers-advanced.md +312 -0
  211. package/skills/ck-devops/references/cloudflare-workers-apis.md +309 -0
  212. package/skills/ck-devops/references/cloudflare-workers-basics.md +418 -0
  213. package/skills/ck-devops/references/docker-basics.md +297 -0
  214. package/skills/ck-devops/references/docker-compose.md +292 -0
  215. package/skills/ck-devops/references/gcloud-platform.md +297 -0
  216. package/skills/ck-devops/references/gcloud-services.md +304 -0
  217. package/skills/ck-devops/scripts/cloudflare_deploy.py +269 -0
  218. package/skills/ck-devops/scripts/docker_optimize.py +331 -0
  219. package/skills/ck-devops/scripts/requirements.txt +20 -0
  220. package/skills/ck-devops/scripts/tests/requirements.txt +3 -0
  221. package/skills/ck-devops/scripts/tests/test_cloudflare_deploy.py +285 -0
  222. package/skills/ck-devops/scripts/tests/test_docker_optimize.py +436 -0
  223. package/skills/ck-docs-seeker/.env.example +15 -0
  224. package/skills/ck-docs-seeker/SKILL.md +96 -0
  225. package/skills/ck-docs-seeker/package.json +25 -0
  226. package/skills/ck-docs-seeker/references/advanced.md +79 -0
  227. package/skills/ck-docs-seeker/references/context7-patterns.md +68 -0
  228. package/skills/ck-docs-seeker/references/errors.md +68 -0
  229. package/skills/ck-docs-seeker/scripts/analyze-llms-txt.js +211 -0
  230. package/skills/ck-docs-seeker/scripts/detect-topic.js +172 -0
  231. package/skills/ck-docs-seeker/scripts/fetch-docs.js +213 -0
  232. package/skills/ck-docs-seeker/scripts/tests/run-tests.js +72 -0
  233. package/skills/ck-docs-seeker/scripts/tests/test-analyze-llms.js +119 -0
  234. package/skills/ck-docs-seeker/scripts/tests/test-detect-topic.js +112 -0
  235. package/skills/ck-docs-seeker/scripts/tests/test-fetch-docs.js +84 -0
  236. package/skills/ck-docs-seeker/scripts/utils/env-loader.js +94 -0
  237. package/skills/ck-docs-seeker/workflows/library-search.md +87 -0
  238. package/skills/ck-docs-seeker/workflows/repo-analysis.md +91 -0
  239. package/skills/ck-docs-seeker/workflows/topic-search.md +77 -0
  240. package/skills/ck-frontend-design/SKILL.md +79 -0
  241. package/skills/ck-frontend-design/references/analysis-best-practices.md +80 -0
  242. package/skills/ck-frontend-design/references/analysis-prompts.md +141 -0
  243. package/skills/ck-frontend-design/references/analysis-techniques.md +118 -0
  244. package/skills/ck-frontend-design/references/animejs.md +396 -0
  245. package/skills/ck-frontend-design/references/design-extraction-overview.md +71 -0
  246. package/skills/ck-frontend-design/references/extraction-best-practices.md +141 -0
  247. package/skills/ck-frontend-design/references/extraction-output-templates.md +162 -0
  248. package/skills/ck-frontend-design/references/extraction-prompts.md +127 -0
  249. package/skills/ck-frontend-design/references/technical-accessibility.md +119 -0
  250. package/skills/ck-frontend-design/references/technical-best-practices.md +97 -0
  251. package/skills/ck-frontend-design/references/technical-optimization.md +44 -0
  252. package/skills/ck-frontend-design/references/technical-overview.md +90 -0
  253. package/skills/ck-frontend-design/references/technical-workflows.md +150 -0
  254. package/skills/ck-frontend-design/references/visual-analysis-overview.md +95 -0
  255. package/skills/ck-frontend-development/SKILL.md +399 -0
  256. package/skills/ck-frontend-development/resources/common-patterns.md +331 -0
  257. package/skills/ck-frontend-development/resources/complete-examples.md +872 -0
  258. package/skills/ck-frontend-development/resources/component-patterns.md +502 -0
  259. package/skills/ck-frontend-development/resources/data-fetching.md +767 -0
  260. package/skills/ck-frontend-development/resources/file-organization.md +502 -0
  261. package/skills/ck-frontend-development/resources/loading-and-error-states.md +501 -0
  262. package/skills/ck-frontend-development/resources/performance.md +406 -0
  263. package/skills/ck-frontend-development/resources/routing-guide.md +364 -0
  264. package/skills/ck-frontend-development/resources/styling-guide.md +428 -0
  265. package/skills/ck-frontend-development/resources/typescript-standards.md +418 -0
  266. package/skills/ck-markdown-novel-viewer/SKILL.md +190 -0
  267. package/skills/ck-markdown-novel-viewer/assets/directory-browser.css +215 -0
  268. package/skills/ck-markdown-novel-viewer/assets/favicon.png +0 -0
  269. package/skills/ck-markdown-novel-viewer/assets/novel-theme.css +818 -0
  270. package/skills/ck-markdown-novel-viewer/assets/reader.js +262 -0
  271. package/skills/ck-markdown-novel-viewer/assets/template.html +80 -0
  272. package/skills/ck-markdown-novel-viewer/package.json +15 -0
  273. package/skills/ck-markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
  274. package/skills/ck-markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +272 -0
  275. package/skills/ck-markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
  276. package/skills/ck-markdown-novel-viewer/scripts/lib/port-finder.cjs +48 -0
  277. package/skills/ck-markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
  278. package/skills/ck-markdown-novel-viewer/scripts/server.cjs +411 -0
  279. package/skills/ck-markdown-novel-viewer/scripts/tests/server.test.cjs +283 -0
  280. package/skills/ck-markdown-novel-viewer/tests/dashboard-assets.test.cjs +340 -0
  281. package/skills/ck-markdown-novel-viewer/tests/dashboard-renderer.test.cjs +404 -0
  282. package/skills/ck-markdown-novel-viewer/tests/http-server.test.cjs +271 -0
  283. package/skills/ck-markdown-novel-viewer/tests/run-tests.cjs +51 -0
  284. package/skills/ck-markdown-novel-viewer/tests/test-framework.cjs +154 -0
  285. package/skills/ck-markdown-novel-viewer/tests/verify-xss.cjs +90 -0
  286. package/skills/ck-mcp-builder/LICENSE.txt +202 -0
  287. package/skills/ck-mcp-builder/SKILL.md +327 -0
  288. package/skills/ck-mcp-builder/reference/evaluation.md +602 -0
  289. package/skills/ck-mcp-builder/reference/mcp_best_practices.md +915 -0
  290. package/skills/ck-mcp-builder/reference/node_mcp_server.md +916 -0
  291. package/skills/ck-mcp-builder/reference/python_mcp_server.md +752 -0
  292. package/skills/ck-mcp-builder/scripts/connections.py +151 -0
  293. package/skills/ck-mcp-builder/scripts/evaluation.py +373 -0
  294. package/skills/ck-mcp-builder/scripts/example_evaluation.xml +22 -0
  295. package/skills/ck-mcp-builder/scripts/requirements.txt +2 -0
  296. package/skills/ck-mcp-management/README.md +219 -0
  297. package/skills/ck-mcp-management/SKILL.md +209 -0
  298. package/skills/ck-mcp-management/assets/tools.json +3146 -0
  299. package/skills/ck-mcp-management/references/configuration.md +114 -0
  300. package/skills/ck-mcp-management/references/gemini-cli-integration.md +215 -0
  301. package/skills/ck-mcp-management/references/mcp-protocol.md +116 -0
  302. package/skills/ck-mcp-management/scripts/.env.example +10 -0
  303. package/skills/ck-mcp-management/scripts/cli.ts +195 -0
  304. package/skills/ck-mcp-management/scripts/dist/analyze-tools.js +70 -0
  305. package/skills/ck-mcp-management/scripts/dist/cli.js +160 -0
  306. package/skills/ck-mcp-management/scripts/dist/mcp-client.js +183 -0
  307. package/skills/ck-mcp-management/scripts/mcp-client.ts +230 -0
  308. package/skills/ck-mcp-management/scripts/package.json +20 -0
  309. package/skills/ck-mcp-management/scripts/tsconfig.json +15 -0
  310. package/skills/ck-media-processing/SKILL.md +90 -0
  311. package/skills/ck-media-processing/references/common-workflows.md +132 -0
  312. package/skills/ck-media-processing/references/ffmpeg-encoding.md +358 -0
  313. package/skills/ck-media-processing/references/ffmpeg-filters.md +503 -0
  314. package/skills/ck-media-processing/references/ffmpeg-streaming.md +403 -0
  315. package/skills/ck-media-processing/references/format-compatibility.md +375 -0
  316. package/skills/ck-media-processing/references/imagemagick-batch.md +612 -0
  317. package/skills/ck-media-processing/references/imagemagick-editing.md +623 -0
  318. package/skills/ck-media-processing/references/rmbg-background-removal.md +66 -0
  319. package/skills/ck-media-processing/references/troubleshooting.md +109 -0
  320. package/skills/ck-media-processing/scripts/README.md +111 -0
  321. package/skills/ck-media-processing/scripts/batch-remove-background.sh +124 -0
  322. package/skills/ck-media-processing/scripts/batch_resize.py +342 -0
  323. package/skills/ck-media-processing/scripts/media_convert.py +311 -0
  324. package/skills/ck-media-processing/scripts/remove-background.sh +96 -0
  325. package/skills/ck-media-processing/scripts/remove-bg-node.js +158 -0
  326. package/skills/ck-media-processing/scripts/requirements.txt +24 -0
  327. package/skills/ck-media-processing/scripts/tests/.coverage +0 -0
  328. package/skills/ck-media-processing/scripts/tests/requirements.txt +2 -0
  329. package/skills/ck-media-processing/scripts/tests/test_batch_resize.py +372 -0
  330. package/skills/ck-media-processing/scripts/tests/test_media_convert.py +259 -0
  331. package/skills/ck-media-processing/scripts/tests/test_video_optimize.py +397 -0
  332. package/skills/ck-media-processing/scripts/video_optimize.py +414 -0
  333. package/skills/ck-mobile-development/SKILL.md +210 -0
  334. package/skills/ck-mobile-development/references/mobile-android.md +604 -0
  335. package/skills/ck-mobile-development/references/mobile-best-practices.md +545 -0
  336. package/skills/ck-mobile-development/references/mobile-debugging.md +1089 -0
  337. package/skills/ck-mobile-development/references/mobile-frameworks.md +465 -0
  338. package/skills/ck-mobile-development/references/mobile-ios.md +496 -0
  339. package/skills/ck-mobile-development/references/mobile-mindset.md +544 -0
  340. package/skills/ck-payment-integration/README.md +185 -0
  341. package/skills/ck-payment-integration/SKILL.md +116 -0
  342. package/skills/ck-payment-integration/references/polar/benefits.md +396 -0
  343. package/skills/ck-payment-integration/references/polar/best-practices.md +482 -0
  344. package/skills/ck-payment-integration/references/polar/checkouts.md +266 -0
  345. package/skills/ck-payment-integration/references/polar/overview.md +184 -0
  346. package/skills/ck-payment-integration/references/polar/products.md +244 -0
  347. package/skills/ck-payment-integration/references/polar/sdk.md +436 -0
  348. package/skills/ck-payment-integration/references/polar/subscriptions.md +340 -0
  349. package/skills/ck-payment-integration/references/polar/webhooks.md +405 -0
  350. package/skills/ck-payment-integration/references/sepay/api.md +140 -0
  351. package/skills/ck-payment-integration/references/sepay/best-practices.md +337 -0
  352. package/skills/ck-payment-integration/references/sepay/overview.md +138 -0
  353. package/skills/ck-payment-integration/references/sepay/qr-codes.md +228 -0
  354. package/skills/ck-payment-integration/references/sepay/sdk.md +213 -0
  355. package/skills/ck-payment-integration/references/sepay/webhooks.md +208 -0
  356. package/skills/ck-payment-integration/scripts/.env.example +20 -0
  357. package/skills/ck-payment-integration/scripts/checkout-helper.js +244 -0
  358. package/skills/ck-payment-integration/scripts/package.json +17 -0
  359. package/skills/ck-payment-integration/scripts/polar-webhook-verify.js +202 -0
  360. package/skills/ck-payment-integration/scripts/sepay-webhook-verify.js +193 -0
  361. package/skills/ck-payment-integration/scripts/test-scripts.js +237 -0
  362. package/skills/ck-planning/SKILL.md +112 -0
  363. package/skills/ck-planning/references/codebase-understanding.md +62 -0
  364. package/skills/ck-planning/references/output-standards.md +127 -0
  365. package/skills/ck-planning/references/plan-organization.md +150 -0
  366. package/skills/ck-planning/references/research-phase.md +49 -0
  367. package/skills/ck-planning/references/solution-design.md +63 -0
  368. package/skills/ck-problem-solving/SKILL.md +95 -0
  369. package/skills/ck-problem-solving/references/attribution.md +69 -0
  370. package/skills/ck-problem-solving/references/collision-zone-thinking.md +79 -0
  371. package/skills/ck-problem-solving/references/inversion-exercise.md +91 -0
  372. package/skills/ck-problem-solving/references/meta-pattern-recognition.md +87 -0
  373. package/skills/ck-problem-solving/references/scale-game.md +95 -0
  374. package/skills/ck-problem-solving/references/simplification-cascades.md +80 -0
  375. package/skills/ck-problem-solving/references/when-stuck.md +72 -0
  376. package/skills/ck-repomix/SKILL.md +247 -0
  377. package/skills/ck-repomix/references/configuration.md +211 -0
  378. package/skills/ck-repomix/references/usage-patterns.md +232 -0
  379. package/skills/ck-repomix/scripts/.coverage +0 -0
  380. package/skills/ck-repomix/scripts/README.md +179 -0
  381. package/skills/ck-repomix/scripts/repomix_batch.py +455 -0
  382. package/skills/ck-repomix/scripts/repos.example.json +15 -0
  383. package/skills/ck-repomix/scripts/requirements.txt +15 -0
  384. package/skills/ck-repomix/scripts/tests/test_repomix_batch.py +531 -0
  385. package/skills/ck-sequential-thinking/.env.example +8 -0
  386. package/skills/ck-sequential-thinking/README.md +183 -0
  387. package/skills/{sequential-thinking → ck-sequential-thinking}/SKILL.md +14 -2
  388. package/skills/ck-sequential-thinking/package.json +31 -0
  389. package/skills/ck-sequential-thinking/references/advanced-strategies.md +79 -0
  390. package/skills/{sequential-thinking → ck-sequential-thinking}/references/advanced-techniques.md +2 -14
  391. package/skills/{sequential-thinking → ck-sequential-thinking}/references/core-patterns.md +8 -0
  392. package/skills/ck-sequential-thinking/references/examples-api.md +88 -0
  393. package/skills/ck-sequential-thinking/references/examples-architecture.md +94 -0
  394. package/skills/ck-sequential-thinking/references/examples-debug.md +90 -0
  395. package/skills/ck-sequential-thinking/scripts/format-thought.js +159 -0
  396. package/skills/ck-sequential-thinking/scripts/process-thought.js +236 -0
  397. package/skills/ck-sequential-thinking/tests/format-thought.test.js +133 -0
  398. package/skills/ck-sequential-thinking/tests/process-thought.test.js +215 -0
  399. package/skills/ck-shopify/README.md +66 -0
  400. package/skills/ck-shopify/SKILL.md +319 -0
  401. package/skills/ck-shopify/references/app-development.md +470 -0
  402. package/skills/ck-shopify/references/extensions.md +493 -0
  403. package/skills/ck-shopify/references/themes.md +498 -0
  404. package/skills/ck-shopify/scripts/.coverage +0 -0
  405. package/skills/ck-shopify/scripts/requirements.txt +19 -0
  406. package/skills/ck-shopify/scripts/shopify_init.py +423 -0
  407. package/skills/ck-shopify/scripts/tests/.coverage +0 -0
  408. package/skills/ck-shopify/scripts/tests/test_shopify_init.py +385 -0
  409. package/skills/ck-skill-creator/LICENSE.txt +202 -0
  410. package/skills/ck-skill-creator/SKILL.md +265 -0
  411. package/skills/ck-skill-creator/scripts/init_skill.py +303 -0
  412. package/skills/ck-skill-creator/scripts/package_skill.py +110 -0
  413. package/skills/ck-skill-creator/scripts/quick_validate.py +65 -0
  414. package/skills/ck-threejs/SKILL.md +87 -0
  415. package/skills/ck-threejs/references/01-getting-started.md +177 -0
  416. package/skills/ck-threejs/references/02-loaders.md +169 -0
  417. package/skills/ck-threejs/references/03-textures.md +170 -0
  418. package/skills/ck-threejs/references/04-cameras.md +195 -0
  419. package/skills/ck-threejs/references/05-lights.md +183 -0
  420. package/skills/ck-threejs/references/06-animations.md +214 -0
  421. package/skills/ck-threejs/references/07-math.md +260 -0
  422. package/skills/ck-threejs/references/08-interaction.md +267 -0
  423. package/skills/ck-threejs/references/09-postprocessing.md +240 -0
  424. package/skills/ck-threejs/references/10-controls.md +259 -0
  425. package/skills/ck-threejs/references/11-materials-advanced.md +270 -0
  426. package/skills/ck-threejs/references/12-performance.md +269 -0
  427. package/skills/ck-threejs/references/13-node-materials.md +298 -0
  428. package/skills/ck-threejs/references/14-physics-vr.md +304 -0
  429. package/skills/ck-threejs/references/15-specialized-loaders.md +333 -0
  430. package/skills/ck-threejs/references/16-webgpu.md +302 -0
  431. package/skills/ck-ui-styling/LICENSE.txt +202 -0
  432. package/skills/ck-ui-styling/SKILL.md +319 -0
  433. package/skills/ck-ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  434. package/skills/ck-ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  435. package/skills/ck-ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  436. package/skills/ck-ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  437. package/skills/ck-ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  438. package/skills/ck-ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  439. package/skills/ck-ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  440. package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  441. package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  442. package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  443. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  444. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  445. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  446. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  447. package/skills/ck-ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  448. package/skills/ck-ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  449. package/skills/ck-ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  450. package/skills/ck-ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  451. package/skills/ck-ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  452. package/skills/ck-ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  453. package/skills/ck-ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  454. package/skills/ck-ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  455. package/skills/ck-ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  456. package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  457. package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  458. package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  459. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  460. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  461. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  462. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  463. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  464. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  465. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  466. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  467. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  468. package/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  469. package/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  470. package/skills/ck-ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  471. package/skills/ck-ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  472. package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  473. package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  474. package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  475. package/skills/ck-ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  476. package/skills/ck-ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  477. package/skills/ck-ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  478. package/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  479. package/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  480. package/skills/ck-ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  481. package/skills/ck-ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  482. package/skills/ck-ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  483. package/skills/ck-ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  484. package/skills/ck-ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  485. package/skills/ck-ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  486. package/skills/ck-ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  487. package/skills/ck-ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  488. package/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  489. package/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  490. package/skills/ck-ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  491. package/skills/ck-ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  492. package/skills/ck-ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  493. package/skills/ck-ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  494. package/skills/ck-ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  495. package/skills/ck-ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  496. package/skills/ck-ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  497. package/skills/ck-ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  498. package/skills/ck-ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  499. package/skills/ck-ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  500. package/skills/ck-ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  501. package/skills/ck-ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  502. package/skills/ck-ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  503. package/skills/ck-ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  504. package/skills/ck-ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  505. package/skills/ck-ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  506. package/skills/ck-ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  507. package/skills/ck-ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  508. package/skills/ck-ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  509. package/skills/ck-ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  510. package/skills/ck-ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  511. package/skills/ck-ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  512. package/skills/ck-ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  513. package/skills/ck-ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  514. package/skills/ck-ui-styling/references/canvas-design-system.md +320 -0
  515. package/skills/ck-ui-styling/references/shadcn-accessibility.md +471 -0
  516. package/skills/ck-ui-styling/references/shadcn-components.md +424 -0
  517. package/skills/ck-ui-styling/references/shadcn-theming.md +373 -0
  518. package/skills/ck-ui-styling/references/tailwind-customization.md +483 -0
  519. package/skills/ck-ui-styling/references/tailwind-responsive.md +382 -0
  520. package/skills/ck-ui-styling/references/tailwind-utilities.md +455 -0
  521. package/skills/ck-ui-styling/scripts/.coverage +0 -0
  522. package/skills/ck-ui-styling/scripts/requirements.txt +17 -0
  523. package/skills/ck-ui-styling/scripts/shadcn_add.py +292 -0
  524. package/skills/ck-ui-styling/scripts/tailwind_config_gen.py +456 -0
  525. package/skills/ck-ui-styling/scripts/tests/coverage-ui.json +1 -0
  526. package/skills/ck-ui-styling/scripts/tests/requirements.txt +3 -0
  527. package/skills/ck-ui-styling/scripts/tests/test_shadcn_add.py +266 -0
  528. package/skills/ck-ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
  529. package/skills/ck-ui-ux-pro-max/SKILL.md +227 -0
  530. package/skills/ck-ui-ux-pro-max/data/charts.csv +26 -0
  531. package/skills/ck-ui-ux-pro-max/data/colors.csv +97 -0
  532. package/skills/ck-ui-ux-pro-max/data/landing.csv +31 -0
  533. package/skills/ck-ui-ux-pro-max/data/products.csv +97 -0
  534. package/skills/ck-ui-ux-pro-max/data/prompts.csv +24 -0
  535. package/skills/ck-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  536. package/skills/ck-ui-ux-pro-max/data/stacks/html-tailwind.csv +51 -0
  537. package/skills/ck-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  538. package/skills/ck-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  539. package/skills/ck-ui-ux-pro-max/data/stacks/react.csv +54 -0
  540. package/skills/ck-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  541. package/skills/ck-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  542. package/skills/ck-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  543. package/skills/ck-ui-ux-pro-max/data/styles.csv +59 -0
  544. package/skills/ck-ui-ux-pro-max/data/typography.csv +58 -0
  545. package/skills/ck-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  546. package/skills/ck-ui-ux-pro-max/scripts/core.py +236 -0
  547. package/skills/ck-ui-ux-pro-max/scripts/search.py +76 -0
  548. package/skills/ck-web-frameworks/SKILL.md +322 -0
  549. package/skills/ck-web-frameworks/references/nextjs-app-router.md +465 -0
  550. package/skills/ck-web-frameworks/references/nextjs-data-fetching.md +459 -0
  551. package/skills/ck-web-frameworks/references/nextjs-optimization.md +511 -0
  552. package/skills/ck-web-frameworks/references/nextjs-server-components.md +495 -0
  553. package/skills/ck-web-frameworks/references/remix-icon-integration.md +603 -0
  554. package/skills/ck-web-frameworks/references/turborepo-caching.md +551 -0
  555. package/skills/ck-web-frameworks/references/turborepo-pipelines.md +517 -0
  556. package/skills/ck-web-frameworks/references/turborepo-setup.md +542 -0
  557. package/skills/ck-web-frameworks/scripts/.coverage +0 -0
  558. package/skills/ck-web-frameworks/scripts/__init__.py +0 -0
  559. package/skills/ck-web-frameworks/scripts/nextjs_init.py +547 -0
  560. package/skills/ck-web-frameworks/scripts/requirements.txt +16 -0
  561. package/skills/ck-web-frameworks/scripts/tests/coverage-web.json +1 -0
  562. package/skills/ck-web-frameworks/scripts/tests/requirements.txt +3 -0
  563. package/skills/ck-web-frameworks/scripts/tests/test_nextjs_init.py +319 -0
  564. package/skills/ck-web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -0
  565. package/skills/ck-web-frameworks/scripts/turborepo_migrate.py +394 -0
  566. package/src/commands/init.js +62 -31
  567. package/src/utils/paths.js +35 -4
  568. package/skills/code-review/SKILL.md +0 -86
  569. package/skills/code-review/references/code-review-reception.md +0 -76
  570. package/skills/code-review/references/verification-before-completion.md +0 -86
  571. package/skills/debugging/SKILL.md +0 -70
  572. package/skills/debugging/references/root-cause-tracing.md +0 -65
  573. package/skills/debugging/references/systematic-debugging.md +0 -74
  574. package/skills/debugging/references/verification.md +0 -74
  575. package/skills/docs-seeker/SKILL.md +0 -91
  576. package/skills/planning/SKILL.md +0 -82
  577. package/skills/planning/references/plan-organization.md +0 -88
  578. package/skills/planning/references/research-phase.md +0 -56
  579. package/skills/planning/references/solution-design.md +0 -65
  580. package/templates/repo/prompts/code.prompt.md +0 -40
  581. package/templates/repo/prompts/docs.prompt.md +0 -29
  582. package/templates/repo/prompts/fix.prompt.md +0 -35
  583. package/templates/repo/prompts/plan.prompt.md +0 -41
  584. package/templates/repo/prompts/review.prompt.md +0 -38
  585. package/templates/repo/prompts/test.prompt.md +0 -29
  586. /package/skills/{docs-seeker → ck-docs-seeker}/references/search-patterns.md +0 -0
  587. /package/skills/{docs-seeker → ck-docs-seeker}/references/source-evaluation.md +0 -0
  588. /package/templates/repo/.github/instructions/{backend.instructions.md → ck-backend.instructions.md} +0 -0
  589. /package/templates/repo/.github/instructions/{development.instructions.md → ck-development.instructions.md} +0 -0
  590. /package/templates/repo/.github/instructions/{frontend.instructions.md → ck-frontend.instructions.md} +0 -0
  591. /package/templates/repo/.github/instructions/{testing.instructions.md → ck-testing.instructions.md} +0 -0
  592. /package/templates/repo/.github/prompts/{code.prompt.md → ck-code.prompt.md} +0 -0
  593. /package/templates/repo/.github/prompts/{docs.prompt.md → ck-docs.prompt.md} +0 -0
  594. /package/templates/repo/.github/prompts/{fix.prompt.md → ck-fix.prompt.md} +0 -0
  595. /package/templates/repo/.github/prompts/{plan.prompt.md → ck-plan.prompt.md} +0 -0
  596. /package/templates/repo/.github/prompts/{review.prompt.md → ck-review.prompt.md} +0 -0
  597. /package/templates/repo/.github/prompts/{test.prompt.md → ck-test.prompt.md} +0 -0
  598. /package/templates/repo/.github/skills/{code-review → ck-code-review}/SKILL.md +0 -0
  599. /package/templates/repo/.github/skills/{debugging → ck-debugging}/SKILL.md +0 -0
@@ -0,0 +1,405 @@
1
+ # Polar Webhooks
2
+
3
+ Event handling, signature verification, and monitoring.
4
+
5
+ ## Setup
6
+
7
+ 1. Org Settings → Webhooks
8
+ 2. Enter endpoint URL (publicly accessible)
9
+ 3. Receive webhook secret (base64 encoded)
10
+ 4. Select event types
11
+ 5. Save configuration
12
+
13
+ **Requirements:**
14
+ - HTTPS endpoint
15
+ - Respond within 20 seconds
16
+ - Return 2xx status code
17
+
18
+ ## Signature Verification
19
+
20
+ ### Headers
21
+ ```
22
+ webhook-id: msg_xxx
23
+ webhook-signature: v1,signature_xxx
24
+ webhook-timestamp: 1642000000
25
+ ```
26
+
27
+ ### TypeScript Verification
28
+ ```typescript
29
+ import { validateEvent, WebhookVerificationError } from '@polar-sh/sdk/webhooks';
30
+
31
+ app.post('/webhook/polar', (req, res) => {
32
+ try {
33
+ const event = validateEvent(
34
+ req.body,
35
+ req.headers,
36
+ process.env.POLAR_WEBHOOK_SECRET
37
+ );
38
+
39
+ // Event is valid, process it
40
+ await handleEvent(event);
41
+
42
+ res.json({ received: true });
43
+ } catch (error) {
44
+ if (error instanceof WebhookVerificationError) {
45
+ console.error('Invalid webhook signature');
46
+ return res.status(400).json({ error: 'Invalid signature' });
47
+ }
48
+ throw error;
49
+ }
50
+ });
51
+ ```
52
+
53
+ ### Python Verification
54
+ ```python
55
+ from polar_sdk.webhooks import validate_event, WebhookVerificationError
56
+
57
+ @app.route('/webhook/polar', methods=['POST'])
58
+ def polar_webhook():
59
+ try:
60
+ event = validate_event(
61
+ request.get_data(),
62
+ dict(request.headers),
63
+ os.environ['POLAR_WEBHOOK_SECRET']
64
+ )
65
+
66
+ handle_event(event)
67
+ return {'received': True}
68
+
69
+ except WebhookVerificationError:
70
+ return {'error': 'Invalid signature'}, 400
71
+ ```
72
+
73
+ ### Manual Verification
74
+ ```typescript
75
+ import crypto from 'crypto';
76
+
77
+ function verifySignature(payload, headers, secret) {
78
+ const timestamp = headers['webhook-timestamp'];
79
+ const signatures = headers['webhook-signature'].split(',');
80
+
81
+ const signedPayload = `${timestamp}.${payload}`;
82
+ const expectedSignature = crypto
83
+ .createHmac('sha256', Buffer.from(secret, 'base64'))
84
+ .update(signedPayload)
85
+ .digest('base64');
86
+
87
+ return signatures.some(sig => {
88
+ const [version, signature] = sig.split('=');
89
+ return version === 'v1' && signature === expectedSignature;
90
+ });
91
+ }
92
+ ```
93
+
94
+ ## Event Types
95
+
96
+ ### Checkout
97
+ - `checkout.created` - Checkout session created
98
+ - `checkout.updated` - Session updated
99
+
100
+ ### Order
101
+ - `order.created` - Order created (check `billing_reason`)
102
+ - `purchase` - One-time product
103
+ - `subscription_create` - New subscription
104
+ - `subscription_cycle` - Renewal
105
+ - `subscription_update` - Plan change
106
+ - `order.paid` - Payment confirmed
107
+ - `order.updated` - Order updated
108
+ - `order.refunded` - Refund processed
109
+
110
+ ### Subscription
111
+ - `subscription.created` - Subscription created
112
+ - `subscription.active` - Subscription activated
113
+ - `subscription.updated` - Subscription modified
114
+ - `subscription.canceled` - Cancellation scheduled
115
+ - `subscription.revoked` - Subscription terminated
116
+
117
+ **Note:** Multiple events may fire for single action
118
+
119
+ ### Customer
120
+ - `customer.created` - Customer created
121
+ - `customer.updated` - Customer modified
122
+ - `customer.deleted` - Customer deleted
123
+ - `customer.state_changed` - Benefits/subscriptions changed
124
+
125
+ ### Benefit Grant
126
+ - `benefit_grant.created` - Benefit granted
127
+ - `benefit_grant.updated` - Grant modified
128
+ - `benefit_grant.revoked` - Benefit revoked
129
+
130
+ ### Refund
131
+ - `refund.created` - Refund initiated
132
+ - `refund.updated` - Refund status changed
133
+
134
+ ### Product
135
+ - `product.created` - Product created
136
+ - `product.updated` - Product modified
137
+
138
+ ## Event Structure
139
+
140
+ ```typescript
141
+ {
142
+ "type": "order.paid",
143
+ "data": {
144
+ "id": "order_xxx",
145
+ "amount": 2000,
146
+ "currency": "USD",
147
+ "billing_reason": "purchase",
148
+ "customer": { ... },
149
+ "product": { ... },
150
+ "subscription": null,
151
+ "metadata": { ... }
152
+ }
153
+ }
154
+ ```
155
+
156
+ ## Handler Implementation
157
+
158
+ ### Basic Handler
159
+ ```typescript
160
+ async function handleEvent(event) {
161
+ switch (event.type) {
162
+ case 'order.paid':
163
+ await handleOrderPaid(event.data);
164
+ break;
165
+
166
+ case 'subscription.active':
167
+ await grantAccess(event.data.customer_id);
168
+ break;
169
+
170
+ case 'subscription.revoked':
171
+ await revokeAccess(event.data.customer_id);
172
+ break;
173
+
174
+ case 'benefit_grant.created':
175
+ await notifyBenefitGranted(event.data);
176
+ break;
177
+
178
+ default:
179
+ console.log(`Unhandled event: ${event.type}`);
180
+ }
181
+ }
182
+ ```
183
+
184
+ ### Order Handler
185
+ ```typescript
186
+ async function handleOrderPaid(order) {
187
+ // Handle different billing reasons
188
+ switch (order.billing_reason) {
189
+ case 'purchase':
190
+ await fulfillOneTimeOrder(order);
191
+ break;
192
+
193
+ case 'subscription_create':
194
+ await handleNewSubscription(order);
195
+ break;
196
+
197
+ case 'subscription_cycle':
198
+ await handleRenewal(order);
199
+ break;
200
+
201
+ case 'subscription_update':
202
+ await handleUpgrade(order);
203
+ break;
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### Customer State Handler
209
+ ```typescript
210
+ async function handleCustomerStateChanged(customer) {
211
+ // Customer state includes:
212
+ // - active_subscriptions
213
+ // - active_benefits
214
+
215
+ const hasActiveSubscription = customer.active_subscriptions.length > 0;
216
+
217
+ if (hasActiveSubscription) {
218
+ await enableFeatures(customer.external_id);
219
+ } else {
220
+ await disableFeatures(customer.external_id);
221
+ }
222
+ }
223
+ ```
224
+
225
+ ## Best Practices
226
+
227
+ ### 1. Respond Immediately
228
+ ```typescript
229
+ app.post('/webhook/polar', async (req, res) => {
230
+ // Respond quickly
231
+ res.json({ received: true });
232
+
233
+ // Queue for background processing
234
+ await webhookQueue.add('polar-webhook', req.body);
235
+ });
236
+ ```
237
+
238
+ ### 2. Idempotency
239
+ ```typescript
240
+ async function handleEvent(event) {
241
+ // Check if already processed
242
+ const exists = await db.processedEvents.findOne({
243
+ webhook_id: event.id
244
+ });
245
+
246
+ if (exists) {
247
+ console.log('Event already processed');
248
+ return;
249
+ }
250
+
251
+ // Process event
252
+ await processEvent(event);
253
+
254
+ // Mark as processed
255
+ await db.processedEvents.insert({
256
+ webhook_id: event.id,
257
+ processed_at: new Date()
258
+ });
259
+ }
260
+ ```
261
+
262
+ ### 3. Retry Logic
263
+ ```typescript
264
+ async function processWithRetry(event, maxRetries = 3) {
265
+ let attempt = 0;
266
+
267
+ while (attempt < maxRetries) {
268
+ try {
269
+ await handleEvent(event);
270
+ return;
271
+ } catch (error) {
272
+ attempt++;
273
+ if (attempt >= maxRetries) throw error;
274
+ await sleep(1000 * attempt);
275
+ }
276
+ }
277
+ }
278
+ ```
279
+
280
+ ### 4. Error Handling
281
+ ```typescript
282
+ app.post('/webhook/polar', async (req, res) => {
283
+ try {
284
+ const event = validateEvent(req.body, req.headers, secret);
285
+ res.json({ received: true });
286
+
287
+ await processWithRetry(event);
288
+ } catch (error) {
289
+ console.error('Webhook processing failed:', error);
290
+ // Log to error tracking service
291
+ await logError(error, req.body);
292
+
293
+ if (error instanceof WebhookVerificationError) {
294
+ return res.status(400).json({ error: 'Invalid signature' });
295
+ }
296
+
297
+ // Return 2xx even on processing errors
298
+ // Polar will retry if non-2xx
299
+ res.json({ received: true });
300
+ }
301
+ });
302
+ ```
303
+
304
+ ### 5. Logging
305
+ ```typescript
306
+ logger.info('Webhook received', {
307
+ event_type: event.type,
308
+ event_id: event.id,
309
+ customer_id: event.data.customer?.id,
310
+ amount: event.data.amount
311
+ });
312
+ ```
313
+
314
+ ## Monitoring
315
+
316
+ ### Dashboard Features
317
+ - View webhook attempts
318
+ - Check response status
319
+ - Review retry history
320
+ - Manual retry option
321
+ - Filter by event type
322
+ - Search by customer
323
+
324
+ ### Application Monitoring
325
+ ```typescript
326
+ const metrics = {
327
+ webhooks_received: counter('polar_webhooks_received_total'),
328
+ webhooks_processed: counter('polar_webhooks_processed_total'),
329
+ webhooks_failed: counter('polar_webhooks_failed_total'),
330
+ processing_time: histogram('polar_webhook_processing_seconds')
331
+ };
332
+
333
+ app.post('/webhook/polar', async (req, res) => {
334
+ metrics.webhooks_received.inc({ type: req.body.type });
335
+
336
+ const timer = metrics.processing_time.startTimer();
337
+
338
+ try {
339
+ await handleEvent(req.body);
340
+ metrics.webhooks_processed.inc({ type: req.body.type });
341
+ } catch (error) {
342
+ metrics.webhooks_failed.inc({ type: req.body.type });
343
+ } finally {
344
+ timer();
345
+ }
346
+
347
+ res.json({ received: true });
348
+ });
349
+ ```
350
+
351
+ ## Framework Adapters
352
+
353
+ ### Next.js
354
+ ```typescript
355
+ import { validateEvent } from '@polar-sh/nextjs/webhooks';
356
+
357
+ export async function POST(req: Request) {
358
+ const event = await validateEvent(req);
359
+
360
+ await handleEvent(event);
361
+
362
+ return Response.json({ received: true });
363
+ }
364
+ ```
365
+
366
+ ### Laravel
367
+ ```php
368
+ use Polar\Webhooks\WebhookHandler;
369
+
370
+ Route::post('/webhook/polar', function (Request $request) {
371
+ $event = WebhookHandler::validate(
372
+ $request->getContent(),
373
+ $request->headers->all(),
374
+ config('polar.webhook_secret')
375
+ );
376
+
377
+ dispatch(new ProcessPolarWebhook($event));
378
+
379
+ return response()->json(['received' => true]);
380
+ });
381
+ ```
382
+
383
+ ## Testing
384
+
385
+ ### Manual Testing
386
+ ```bash
387
+ # Use Polar dashboard to send test webhooks
388
+ # Or use webhook testing tools
389
+
390
+ curl -X POST https://your-domain.com/webhook/polar \
391
+ -H "Content-Type: application/json" \
392
+ -H "webhook-id: msg_test" \
393
+ -H "webhook-timestamp: $(date +%s)" \
394
+ -H "webhook-signature: v1,test_signature" \
395
+ -d '{"type":"order.paid","data":{...}}'
396
+ ```
397
+
398
+ ### Local Testing with ngrok
399
+ ```bash
400
+ # Expose local server
401
+ ngrok http 3000
402
+
403
+ # Use ngrok URL in Polar webhook settings
404
+ https://abc123.ngrok.io/webhook/polar
405
+ ```
@@ -0,0 +1,140 @@
1
+ # SePay API Reference
2
+
3
+ Base URL: `https://my.sepay.vn/userapi/`
4
+ Rate Limit: 2 calls/second
5
+
6
+ ## Transaction API
7
+
8
+ ### List Transactions
9
+ ```
10
+ GET /userapi/transactions/list
11
+ ```
12
+
13
+ **Parameters:**
14
+ - `account_number` (string) - Bank account ID
15
+ - `transaction_date_min/max` (yyyy-mm-dd) - Date range
16
+ - `since_id` (integer) - Start from ID
17
+ - `limit` (integer) - Max 5000 per request
18
+ - `reference_number` (string) - Transaction reference
19
+ - `amount_in` (number) - Incoming amount
20
+ - `amount_out` (number) - Outgoing amount
21
+
22
+ **Response:**
23
+ ```json
24
+ {
25
+ "status": 200,
26
+ "transactions": [{
27
+ "id": 92704,
28
+ "gateway": "Vietcombank",
29
+ "transaction_date": "2023-03-25 14:02:37",
30
+ "account_number": "0123499999",
31
+ "content": "payment content",
32
+ "transfer_type": "in",
33
+ "transfer_amount": 2277000,
34
+ "accumulated": 19077000,
35
+ "reference_number": "MBVCB.3278907687",
36
+ "bank_account_id": 123
37
+ }]
38
+ }
39
+ ```
40
+
41
+ ### Transaction Details
42
+ ```
43
+ GET /userapi/transactions/details/{transaction_id}
44
+ ```
45
+
46
+ ### Count Transactions
47
+ ```
48
+ GET /userapi/transactions/count
49
+ ```
50
+
51
+ ## Bank Account API
52
+
53
+ ### List Bank Accounts
54
+ ```
55
+ GET /userapi/bankaccounts/list
56
+ ```
57
+
58
+ **Parameters:**
59
+ - `short_name` - Bank identifier
60
+ - `last_transaction_date_min/max` - Date range
61
+ - `since_id` - Starting account ID
62
+ - `limit` - Results per page (default 100)
63
+ - `accumulated_min/max` - Balance range
64
+
65
+ **Response:**
66
+ ```json
67
+ {
68
+ "id": 123,
69
+ "account_holder_name": "NGUYEN VAN A",
70
+ "account_number": "0123456789",
71
+ "accumulated": 50000000,
72
+ "last_transaction": "2025-01-13 10:30:00",
73
+ "bank_short_name": "VCB",
74
+ "active": 1
75
+ }
76
+ ```
77
+
78
+ ### Account Details
79
+ ```
80
+ GET /userapi/bankaccounts/details/{bank_account_id}
81
+ ```
82
+
83
+ ### Count Accounts
84
+ ```
85
+ GET /userapi/bankaccounts/count
86
+ ```
87
+
88
+ ## Order-Based Virtual Account API
89
+
90
+ **Concept:** Each order gets unique VA with exact amount matching for automated confirmation.
91
+
92
+ **Flow:**
93
+ 1. Create order → API generates unique VA
94
+ 2. Display VA + QR to customer
95
+ 3. Customer transfers to VA
96
+ 4. Bank notifies SePay on success
97
+ 5. SePay triggers webhook
98
+ 6. Update order status
99
+
100
+ **Advantages:**
101
+ - Precision: VA accepts only exact amounts
102
+ - Independence: Each order has own VA (no content parsing)
103
+ - Security: VAs auto-cancel after success/expiration
104
+ - Integration: RESTful API
105
+
106
+ **Supported Banks:** BIDV and others (check docs for full list)
107
+
108
+ ## Error Handling
109
+
110
+ **HTTP Status Codes:**
111
+ - 200 OK - Successful
112
+ - 201 Created - Resource created
113
+ - 400 Bad Request - Invalid parameters
114
+ - 401 Unauthorized - Invalid/missing auth
115
+ - 403 Forbidden - Insufficient permissions
116
+ - 404 Not Found - Resource not found
117
+ - 429 Too Many Requests - Rate limit exceeded
118
+ - 500 Internal Server Error - Server error
119
+ - 503 Service Unavailable - Temporarily unavailable
120
+
121
+ **Rate Limit Response:**
122
+ ```json
123
+ {
124
+ "status": 429,
125
+ "error": "rate_limit_exceeded",
126
+ "message": "Too many requests"
127
+ }
128
+ ```
129
+
130
+ Check `x-sepay-userapi-retry-after` header for retry timing.
131
+
132
+ ## Best Practices
133
+
134
+ 1. **Pagination:** Use `limit` and `since_id` for large datasets
135
+ 2. **Date Ranges:** Query specific periods to reduce response size
136
+ 3. **Rate Limiting:** Implement exponential backoff
137
+ 4. **Error Handling:** Log all errors with context
138
+ 5. **Caching:** Cache bank account lists
139
+ 6. **Monitoring:** Track API response times and error rates
140
+ 7. **Reconciliation:** Regular transaction matching