codymaster 4.1.4 → 4.3.0

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 (657) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/README.md +54 -84
  3. package/dist/index.js +118 -4
  4. package/install.sh +2 -2
  5. package/package.json +3 -8
  6. package/skills/AGENTS.md +61 -0
  7. package/skills/CLAUDE.md +158 -0
  8. package/skills/boxme-git-config/SKILL.md +56 -0
  9. package/skills/boxme-local-dev/SKILL.md +66 -0
  10. package/skills/build.sh +30 -0
  11. package/skills/cf +314 -0
  12. package/skills/cf 2 +313 -0
  13. package/skills/cm-ads-tracker/SKILL.md +364 -69
  14. package/skills/cm-auto-publisher/SKILL.md +81 -0
  15. package/skills/cm-booking-calendar/SKILL.md +521 -0
  16. package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
  17. package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
  18. package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
  19. package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
  20. package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
  21. package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
  22. package/skills/cm-brainstorm-idea/SKILL.md +15 -24
  23. package/skills/cm-clean-code/SKILL.md +300 -0
  24. package/skills/cm-code-review/SKILL.md +0 -27
  25. package/skills/cm-codeintell/SKILL.md +598 -0
  26. package/skills/cm-content-factory/.content-factory-state.json +132 -0
  27. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
  28. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
  29. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  30. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  31. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  32. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  33. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  34. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  35. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  36. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  37. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  38. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  39. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  40. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  41. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  42. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  43. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  44. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  45. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  46. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  47. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  48. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  49. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  50. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  51. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  52. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  53. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  54. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  55. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  56. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  57. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  58. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  59. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  60. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  61. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  62. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  63. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  64. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  65. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  66. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  67. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  68. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  69. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  70. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  71. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  72. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
  73. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  74. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  75. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  76. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  77. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  78. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  79. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  80. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  81. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  82. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  83. package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
  84. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
  85. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
  86. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
  87. package/skills/cm-content-factory/AGENTS.md +61 -0
  88. package/skills/cm-content-factory/CLAUDE.md +63 -0
  89. package/skills/cm-content-factory/CURSOR.md +43 -0
  90. package/skills/cm-content-factory/Content Factory.zip +0 -0
  91. package/skills/cm-content-factory/cf +313 -0
  92. package/skills/cm-content-factory/config.schema.json +397 -0
  93. package/skills/cm-content-factory/dashboard/app.js +556 -0
  94. package/skills/cm-content-factory/dashboard/index.html +397 -0
  95. package/skills/cm-content-factory/dashboard/style.css +1211 -0
  96. package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
  97. package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
  98. package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
  99. package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
  100. package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
  101. package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
  102. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
  103. package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
  104. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
  105. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
  106. package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
  107. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
  108. package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
  109. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
  110. package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
  111. package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
  112. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
  113. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
  114. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
  115. package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
  116. package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
  117. package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
  118. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
  119. package/skills/cm-content-factory/extensions/hooks.py +126 -0
  120. package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
  121. package/skills/cm-content-factory/landing/index.html +680 -0
  122. package/skills/cm-content-factory/landing/script.js +101 -0
  123. package/skills/cm-content-factory/landing/style.css +1216 -0
  124. package/skills/cm-content-factory/landing/translations.js +508 -0
  125. package/skills/cm-content-factory/logs/events.jsonl +11 -0
  126. package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
  127. package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
  128. package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
  129. package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
  130. package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
  131. package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
  132. package/skills/cm-content-factory/scripts/audit.py +106 -0
  133. package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
  134. package/skills/cm-content-factory/scripts/deploy.py +146 -0
  135. package/skills/cm-content-factory/scripts/extract.py +132 -0
  136. package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
  137. package/skills/cm-content-factory/scripts/memory.py +521 -0
  138. package/skills/cm-content-factory/scripts/monetize.py +239 -0
  139. package/skills/cm-content-factory/scripts/pipeline.py +357 -0
  140. package/skills/cm-content-factory/scripts/plan.py +163 -0
  141. package/skills/cm-content-factory/scripts/publish.py +145 -0
  142. package/skills/cm-content-factory/scripts/research.py +337 -0
  143. package/skills/cm-content-factory/scripts/scaffold.py +464 -0
  144. package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
  145. package/skills/cm-content-factory/scripts/seo.py +90 -0
  146. package/skills/cm-content-factory/scripts/state_manager.py +320 -0
  147. package/skills/cm-content-factory/scripts/token_manager.py +268 -0
  148. package/skills/cm-content-factory/scripts/validate.py +221 -0
  149. package/skills/cm-content-factory/scripts/wizard.py +329 -0
  150. package/skills/cm-content-factory/scripts/write.py +93 -0
  151. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  152. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
  153. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
  154. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
  155. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
  156. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
  157. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
  158. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
  159. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
  160. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
  161. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
  162. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
  163. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
  164. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
  165. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
  166. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
  167. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
  168. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
  169. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
  170. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
  171. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
  172. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
  173. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
  174. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
  175. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
  176. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
  177. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
  178. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
  179. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
  180. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
  181. package/skills/cm-content-factory/tests/conftest.py +66 -0
  182. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
  183. package/skills/cm-content-factory/tests/test_memory.py +128 -0
  184. package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
  185. package/skills/cm-content-factory/tests/test_research.py +56 -0
  186. package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
  187. package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
  188. package/skills/cm-content-factory/tests/test_wizard.py +121 -0
  189. package/skills/cm-continuity/SKILL.md +7 -0
  190. package/skills/cm-cro-methodology/SKILL.md +290 -0
  191. package/skills/cm-dashboard/SKILL.md +7 -525
  192. package/skills/cm-debugging/SKILL.md +7 -116
  193. package/skills/cm-deep-search/SKILL.md +5 -1
  194. package/skills/cm-dockit/README.md +6 -15
  195. package/skills/cm-dockit/SKILL.md +20 -37
  196. package/skills/cm-execution/SKILL.md +6 -1
  197. package/skills/cm-frappe-agent/SKILL.md +134 -0
  198. package/skills/cm-frappe-agent/agents/doctype-architect.md +596 -0
  199. package/skills/cm-frappe-agent/agents/erpnext-customizer.md +643 -0
  200. package/skills/cm-frappe-agent/agents/frappe-backend.md +814 -0
  201. package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +557 -0
  202. package/skills/cm-frappe-agent/agents/frappe-debugger.md +625 -0
  203. package/skills/cm-frappe-agent/agents/frappe-fixer.md +275 -0
  204. package/skills/cm-frappe-agent/agents/frappe-frontend.md +660 -0
  205. package/skills/cm-frappe-agent/agents/frappe-installer.md +158 -0
  206. package/skills/cm-frappe-agent/agents/frappe-performance.md +307 -0
  207. package/skills/cm-frappe-agent/agents/frappe-planner.md +419 -0
  208. package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +153 -0
  209. package/skills/cm-frappe-agent/agents/github-workflow.md +286 -0
  210. package/skills/cm-frappe-agent/commands/frappe-app.md +351 -0
  211. package/skills/cm-frappe-agent/commands/frappe-backend.md +162 -0
  212. package/skills/cm-frappe-agent/commands/frappe-bench.md +254 -0
  213. package/skills/cm-frappe-agent/commands/frappe-debug.md +263 -0
  214. package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +272 -0
  215. package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +310 -0
  216. package/skills/cm-frappe-agent/commands/frappe-erpnext.md +210 -0
  217. package/skills/cm-frappe-agent/commands/frappe-fix.md +59 -0
  218. package/skills/cm-frappe-agent/commands/frappe-frontend.md +210 -0
  219. package/skills/cm-frappe-agent/commands/frappe-fullstack.md +243 -0
  220. package/skills/cm-frappe-agent/commands/frappe-github.md +57 -0
  221. package/skills/cm-frappe-agent/commands/frappe-install.md +52 -0
  222. package/skills/cm-frappe-agent/commands/frappe-plan.md +442 -0
  223. package/skills/cm-frappe-agent/commands/frappe-remote.md +58 -0
  224. package/skills/cm-frappe-agent/commands/frappe-test.md +356 -0
  225. package/skills/cm-frappe-agent/docs/README.md +51 -0
  226. package/skills/cm-frappe-agent/docs/agents-catalog.md +113 -0
  227. package/skills/cm-frappe-agent/docs/architecture.md +149 -0
  228. package/skills/cm-frappe-agent/docs/commands-catalog.md +82 -0
  229. package/skills/cm-frappe-agent/docs/resources-catalog.md +66 -0
  230. package/skills/cm-frappe-agent/docs/sitemap-urls.txt +52 -0
  231. package/skills/cm-frappe-agent/docs/sitemap.md +81 -0
  232. package/skills/cm-frappe-agent/docs/sop/user-guide.md +178 -0
  233. package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +122 -0
  234. package/skills/cm-frappe-agent/resources/7-layer-architecture.md +985 -0
  235. package/skills/cm-frappe-agent/resources/bench_commands.md +73 -0
  236. package/skills/cm-frappe-agent/resources/code-patterns-guide.md +948 -0
  237. package/skills/cm-frappe-agent/resources/common_pitfalls.md +266 -0
  238. package/skills/cm-frappe-agent/resources/doctype-registry.md +158 -0
  239. package/skills/cm-frappe-agent/resources/installation-guide.md +289 -0
  240. package/skills/cm-frappe-agent/resources/rest-api-patterns.md +182 -0
  241. package/skills/cm-frappe-agent/resources/scaffold_checklist.md +82 -0
  242. package/skills/cm-frappe-agent/resources/upgrade_patterns.md +113 -0
  243. package/skills/cm-frappe-agent/resources/web-form-patterns.md +252 -0
  244. package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +621 -0
  245. package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +642 -0
  246. package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +576 -0
  247. package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +740 -0
  248. package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +47 -0
  249. package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +608 -0
  250. package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +46 -0
  251. package/skills/cm-git-worktrees/SKILL.md +0 -7
  252. package/skills/cm-google-form/SKILL.md +266 -0
  253. package/skills/cm-google-form/templates/apps-script.js +55 -0
  254. package/skills/cm-google-form/templates/form-markup.html +110 -0
  255. package/skills/cm-google-form/templates/form-submit.js +201 -0
  256. package/skills/cm-google-form/templates/toast.css +152 -0
  257. package/skills/cm-growth-hacking/SKILL.md +293 -0
  258. package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
  259. package/skills/cm-growth-hacking/calendar-integration.md +264 -0
  260. package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
  261. package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
  262. package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
  263. package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
  264. package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
  265. package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
  266. package/skills/cm-growth-hacking/tracking-events.md +246 -0
  267. package/skills/cm-growth-hacking/trigger-system.md +342 -0
  268. package/skills/cm-how-it-work/SKILL.md +20 -4
  269. package/skills/cm-identity-guard/SKILL.md +0 -11
  270. package/skills/cm-jtbd/SKILL.md +1 -1
  271. package/skills/cm-notebooklm/SKILL.md +172 -0
  272. package/skills/cm-notebooklm/references/command_reference.md +94 -0
  273. package/skills/cm-notebooklm/references/workflows.md +60 -0
  274. package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
  275. package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
  276. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
  277. package/skills/cm-planning/SKILL.md +39 -52
  278. package/skills/cm-project-bootstrap/SKILL.md +1307 -99
  279. package/skills/cm-quality-gate/SKILL.md +13 -106
  280. package/skills/cm-reactor/SKILL.md +274 -0
  281. package/skills/cm-safe-deploy/SKILL.md +415 -52
  282. package/skills/cm-safe-i18n/SKILL.md +1 -22
  283. package/skills/cm-secret-shield/SKILL.md +2 -2
  284. package/skills/cm-security-gate/SKILL.md +114 -0
  285. package/skills/cm-skill-chain/SKILL.md +2 -2
  286. package/skills/cm-skill-index/SKILL.md +9 -6
  287. package/skills/cm-skill-mastery/SKILL.md +2 -15
  288. package/skills/cm-start/SKILL.md +9 -0
  289. package/skills/cm-tdd/SKILL.md +16 -49
  290. package/skills/cm-ui-preview/SKILL.md +35 -173
  291. package/skills/cm-ux-master/FEATURES-v4.md +305 -0
  292. package/skills/cm-ux-master/README-ru.md +135 -0
  293. package/skills/cm-ux-master/README-vi.md +135 -0
  294. package/skills/cm-ux-master/README-zh.md +135 -0
  295. package/skills/cm-ux-master/README.md +489 -0
  296. package/skills/cm-ux-master/SKILL.md +773 -62
  297. package/skills/cm-ux-master/cli/README.md +180 -0
  298. package/skills/cm-ux-master/cli/pyproject.toml +106 -0
  299. package/skills/cm-ux-master/cli/requirements.txt +21 -0
  300. package/skills/cm-ux-master/cli/templates/base/skill-core.md +262 -0
  301. package/skills/cm-ux-master/cli/templates/platforms/claude.yaml +21 -0
  302. package/skills/cm-ux-master/cli/templates/platforms/cursor.yaml +21 -0
  303. package/skills/cm-ux-master/cli/templates/platforms/figma.yaml +24 -0
  304. package/skills/cm-ux-master/cli/templates/platforms/vscode-mcp.yaml +28 -0
  305. package/skills/cm-ux-master/cli/templates/platforms/windsurf.yaml +21 -0
  306. package/skills/cm-ux-master/cli/uxmaster/__init__.py +10 -0
  307. package/skills/cm-ux-master/cli/uxmaster/__main__.py +19 -0
  308. package/skills/cm-ux-master/cli/uxmaster/cli.py +349 -0
  309. package/skills/cm-ux-master/cli/uxmaster/commands/__init__.py +8 -0
  310. package/skills/cm-ux-master/cli/uxmaster/commands/extract.py +18 -0
  311. package/skills/cm-ux-master/cli/uxmaster/commands/init.py +58 -0
  312. package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +194 -0
  313. package/skills/cm-ux-master/cli/uxmaster/commands/search.py +23 -0
  314. package/skills/cm-ux-master/cli/uxmaster/commands/validate.py +270 -0
  315. package/skills/cm-ux-master/cli/uxmaster/search_engine.py +532 -0
  316. package/skills/cm-ux-master/cli/uxmaster/template_engine.py +458 -0
  317. package/skills/cm-ux-master/cli/uxmaster/utils/__init__.py +9 -0
  318. package/skills/cm-ux-master/cli/uxmaster/utils/console.py +42 -0
  319. package/skills/cm-ux-master/cli/uxmaster/utils/detect.py +83 -0
  320. package/skills/cm-ux-master/data/accessibility-advanced.csv +26 -0
  321. package/skills/cm-ux-master/data/animation.csv +31 -0
  322. package/skills/cm-ux-master/data/charts.csv +26 -0
  323. package/skills/cm-ux-master/data/colors.csv +97 -0
  324. package/skills/cm-ux-master/data/design-tests.csv +37 -0
  325. package/skills/cm-ux-master/data/devices.csv +21 -0
  326. package/skills/cm-ux-master/data/icons.csv +101 -0
  327. package/skills/cm-ux-master/data/landing.csv +31 -0
  328. package/skills/cm-ux-master/data/products.csv +97 -0
  329. package/skills/cm-ux-master/data/react-performance.csv +45 -0
  330. package/skills/cm-ux-master/data/responsive.csv +26 -0
  331. package/skills/cm-ux-master/data/semi-tokens.csv +52 -0
  332. package/skills/cm-ux-master/data/stacks/angular.csv +34 -0
  333. package/skills/cm-ux-master/data/stacks/astro.csv +54 -0
  334. package/skills/cm-ux-master/data/stacks/electron.csv +32 -0
  335. package/skills/cm-ux-master/data/stacks/flutter.csv +53 -0
  336. package/skills/cm-ux-master/data/stacks/html-tailwind.csv +56 -0
  337. package/skills/cm-ux-master/data/stacks/htmx.csv +28 -0
  338. package/skills/cm-ux-master/data/stacks/jetpack-compose.csv +53 -0
  339. package/skills/cm-ux-master/data/stacks/nextjs.csv +53 -0
  340. package/skills/cm-ux-master/data/stacks/nuxt-ui.csv +51 -0
  341. package/skills/cm-ux-master/data/stacks/nuxtjs.csv +59 -0
  342. package/skills/cm-ux-master/data/stacks/react-native.csv +52 -0
  343. package/skills/cm-ux-master/data/stacks/react.csv +54 -0
  344. package/skills/cm-ux-master/data/stacks/shadcn.csv +61 -0
  345. package/skills/cm-ux-master/data/stacks/svelte.csv +54 -0
  346. package/skills/cm-ux-master/data/stacks/swiftui.csv +51 -0
  347. package/skills/cm-ux-master/data/stacks/tauri.csv +29 -0
  348. package/skills/cm-ux-master/data/stacks/vue.csv +50 -0
  349. package/skills/cm-ux-master/data/styles.csv +68 -0
  350. package/skills/cm-ux-master/data/typography.csv +58 -0
  351. package/skills/cm-ux-master/data/ui-reasoning.csv +101 -0
  352. package/skills/cm-ux-master/data/ux-guidelines.csv +100 -0
  353. package/skills/cm-ux-master/data/ux-laws.csv +49 -0
  354. package/skills/cm-ux-master/data/web-interface.csv +31 -0
  355. package/skills/cm-ux-master/docs/LANDING-PAGE.html +377 -0
  356. package/skills/cm-ux-master/docs/README.md +108 -0
  357. package/skills/cm-ux-master/docs/css/styles.css +573 -0
  358. package/skills/cm-ux-master/docs/examples/demo-script.md +319 -0
  359. package/skills/cm-ux-master/docs/guides/for-designers.md +692 -0
  360. package/skills/cm-ux-master/docs/guides/for-developers.md +778 -0
  361. package/skills/cm-ux-master/docs/guides/for-product-managers.md +693 -0
  362. package/skills/cm-ux-master/docs/guides/react-guide-vi.md +50 -0
  363. package/skills/cm-ux-master/docs/index.html +1062 -0
  364. package/skills/cm-ux-master/docs/js/i18n.js +84 -0
  365. package/skills/cm-ux-master/docs/js/lang/de.js +145 -0
  366. package/skills/cm-ux-master/docs/js/lang/en.js +145 -0
  367. package/skills/cm-ux-master/docs/js/lang/fr.js +145 -0
  368. package/skills/cm-ux-master/docs/js/lang/hi.js +145 -0
  369. package/skills/cm-ux-master/docs/js/lang/id.js +145 -0
  370. package/skills/cm-ux-master/docs/js/lang/ja.js +145 -0
  371. package/skills/cm-ux-master/docs/js/lang/ko.js +145 -0
  372. package/skills/cm-ux-master/docs/js/lang/ru.js +145 -0
  373. package/skills/cm-ux-master/docs/js/lang/vi.js +145 -0
  374. package/skills/cm-ux-master/docs/js/lang/zh.js +145 -0
  375. package/skills/cm-ux-master/docs/js/main.js +117 -0
  376. package/skills/cm-ux-master/docs/plan/PHASE1-COMPLETION.md +217 -0
  377. package/skills/cm-ux-master/docs/plan/PHASE2-COMPLETION.md +199 -0
  378. package/skills/cm-ux-master/docs/plan/PHASE2-ENHANCED-COMPLETION.md +352 -0
  379. package/skills/cm-ux-master/docs/plan/PHASE3-VALIDATION-COMPLETION.md +499 -0
  380. package/skills/cm-ux-master/docs/plan/PHASE4-TESTING-POLISH-COMPLETION.md +483 -0
  381. package/skills/cm-ux-master/docs/plan/UXM-2.0-ROADMAP.md +681 -0
  382. package/skills/cm-ux-master/docs/plan/WOW-PITCH.md +410 -0
  383. package/skills/cm-ux-master/docs/technical/api-reference.md +824 -0
  384. package/skills/cm-ux-master/docs/technical/harvester-v4.md +328 -0
  385. package/skills/cm-ux-master/docs/technical/how-it-works.md +1128 -0
  386. package/skills/cm-ux-master/docs/tutorials/quickstart.md +339 -0
  387. package/skills/cm-ux-master/docs/tutorials/tutorials.md +939 -0
  388. package/skills/cm-ux-master/docs/tutorials/user-guide.md +716 -0
  389. package/skills/cm-ux-master/examples/README.md +63 -0
  390. package/skills/cm-ux-master/mcp/__init__.py +3 -0
  391. package/skills/cm-ux-master/mcp/integrations/__init__.py +11 -0
  392. package/skills/cm-ux-master/mcp/integrations/figma/__init__.py +6 -0
  393. package/skills/cm-ux-master/mcp/integrations/figma/client.py +293 -0
  394. package/skills/cm-ux-master/mcp/integrations/figma/plugin/code.js +561 -0
  395. package/skills/cm-ux-master/mcp/integrations/figma/plugin/ui.html +334 -0
  396. package/skills/cm-ux-master/mcp/integrations/stitch/__init__.py +5 -0
  397. package/skills/cm-ux-master/mcp/integrations/stitch/client.py +410 -0
  398. package/skills/cm-ux-master/mcp/integrations/vscode/package.json +167 -0
  399. package/skills/cm-ux-master/mcp/integrations/vscode/src/extension.ts +81 -0
  400. package/skills/cm-ux-master/mcp/mcp-config.json +274 -0
  401. package/skills/cm-ux-master/mcp/server.py +771 -0
  402. package/skills/cm-ux-master/mcp/tools/__init__.py +13 -0
  403. package/skills/cm-ux-master/mcp-server/server.py +595 -0
  404. package/skills/cm-ux-master/output/fila/FilaDashboard.tsx +47 -0
  405. package/skills/cm-ux-master/output/fila/components/badge/component.tsx +35 -0
  406. package/skills/cm-ux-master/output/fila/components/badge/index.ts +1 -0
  407. package/skills/cm-ux-master/output/fila/components/button/component.tsx +53 -0
  408. package/skills/cm-ux-master/output/fila/components/button/index.ts +1 -0
  409. package/skills/cm-ux-master/output/fila/components/card/component.tsx +35 -0
  410. package/skills/cm-ux-master/output/fila/components/card/index.ts +1 -0
  411. package/skills/cm-ux-master/output/fila/components/input/component.tsx +41 -0
  412. package/skills/cm-ux-master/output/fila/components/input/index.ts +1 -0
  413. package/skills/cm-ux-master/output/fila/design-system.css +151 -0
  414. package/skills/cm-ux-master/output/fila/design-system.html +1596 -0
  415. package/skills/cm-ux-master/output/fila/design-system.json +168 -0
  416. package/skills/cm-ux-master/output/fila/figma-tokens.json +523 -0
  417. package/skills/cm-ux-master/output/fila/harvest-v4-raw.json +406 -0
  418. package/skills/cm-ux-master/output/fila/semi-theme-override.css +95 -0
  419. package/skills/cm-ux-master/output/haravan/HaravanDashboard.tsx +103 -0
  420. package/skills/cm-ux-master/output/haravan/design-system-v3-live.html +2716 -0
  421. package/skills/cm-ux-master/output/haravan/design-system-v3.html +1770 -0
  422. package/skills/cm-ux-master/output/haravan/design-system.html +914 -0
  423. package/skills/cm-ux-master/output/haravan/figma-tokens.json +84 -0
  424. package/skills/cm-ux-master/output/haravan/haravan-harvest.json +33 -0
  425. package/skills/cm-ux-master/output/haravan/harvest-v3-raw.json +167 -0
  426. package/skills/cm-ux-master/output/haravan/semi-theme-override.css +39 -0
  427. package/skills/cm-ux-master/references/audit-template.md +257 -0
  428. package/skills/cm-ux-master/references/cultural-ux.md +346 -0
  429. package/skills/cm-ux-master/references/dark-patterns.md +362 -0
  430. package/skills/cm-ux-master/references/heuristic-conflicts.md +296 -0
  431. package/skills/cm-ux-master/references/krug-principles.md +289 -0
  432. package/skills/cm-ux-master/references/nielsen-heuristics.md +360 -0
  433. package/skills/cm-ux-master/references/wcag-checklist.md +306 -0
  434. package/skills/cm-ux-master/scripts/component_generator.py +631 -0
  435. package/skills/cm-ux-master/scripts/core.py +305 -0
  436. package/skills/cm-ux-master/scripts/demo_validation.py +452 -0
  437. package/skills/cm-ux-master/scripts/design_doc_generator.py +1325 -0
  438. package/skills/cm-ux-master/scripts/design_system.py +1141 -0
  439. package/skills/cm-ux-master/scripts/design_system_indexer.py +889 -0
  440. package/skills/cm-ux-master/scripts/extract_i18n.py +251 -0
  441. package/skills/cm-ux-master/scripts/extractor.py +1437 -0
  442. package/skills/cm-ux-master/scripts/figma_bridge.py +406 -0
  443. package/skills/cm-ux-master/scripts/generate.py +147 -0
  444. package/skills/cm-ux-master/scripts/harvest_session.py +207 -0
  445. package/skills/cm-ux-master/scripts/harvester.js +240 -0
  446. package/skills/cm-ux-master/scripts/harvester_browser.py +717 -0
  447. package/skills/cm-ux-master/scripts/harvester_cli.py +431 -0
  448. package/skills/cm-ux-master/scripts/harvester_v1.js +275 -0
  449. package/skills/cm-ux-master/scripts/harvester_v3.js +620 -0
  450. package/skills/cm-ux-master/scripts/harvester_v4.js +1003 -0
  451. package/skills/cm-ux-master/scripts/install.py +528 -0
  452. package/skills/cm-ux-master/scripts/license.py +81 -0
  453. package/skills/cm-ux-master/scripts/media/qrpayment.png +0 -0
  454. package/skills/cm-ux-master/scripts/pro_stubs.py +120 -0
  455. package/skills/cm-ux-master/scripts/project_registry.py +217 -0
  456. package/skills/cm-ux-master/scripts/search.py +114 -0
  457. package/skills/cm-ux-master/scripts/semi_mcp_bridge.py +425 -0
  458. package/skills/cm-ux-master/scripts/stitch_integration.py +583 -0
  459. package/skills/cm-ux-master/scripts/test_harvester_v4.py +335 -0
  460. package/skills/cm-ux-master/scripts/token_mapper.py +626 -0
  461. package/skills/cm-ux-master/scripts/validation_engine.py +1571 -0
  462. package/skills/cm-ux-master/scripts/wizard.py +653 -0
  463. package/skills/cm-ux-master/setup.py +93 -0
  464. package/skills/cm-ux-master/templates/base/flutter-widget.dart +69 -0
  465. package/skills/cm-ux-master/templates/base/html-page.html +152 -0
  466. package/skills/cm-ux-master/templates/base/react-component.tsx +47 -0
  467. package/skills/cm-ux-master/templates/base/swiftui-view.swift +62 -0
  468. package/skills/cm-ux-master/templates/quick-start.sh +176 -0
  469. package/skills/cm-ux-master/tests/automation/batch-validate.sh +250 -0
  470. package/skills/cm-ux-master/tests/automation/generate-test-projects.sh +561 -0
  471. package/skills/cm-ux-master/tests/automation/run-all-tests.sh +315 -0
  472. package/skills/cm-ux-master/tests/test_design_doc.py +145 -0
  473. package/skills/cm-ux-master/tests/test_devices.py +74 -0
  474. package/skills/cm-ux-master/tests/test_generator.py +116 -0
  475. package/skills/cm-ux-master/tests/test_harvest_session.py +131 -0
  476. package/skills/cm-ux-master/tests/test_harvester.py +127 -0
  477. package/skills/cm-ux-master/tests/test_harvester_v3.py +324 -0
  478. package/skills/cm-ux-master/tests/test_mcp_server.py +496 -0
  479. package/skills/cm-ux-master/tests/test_new_domains.py +108 -0
  480. package/skills/cm-ux-master/tests/test_new_stacks.py +103 -0
  481. package/skills/cm-ux-master/tests/test_project_registry.py +146 -0
  482. package/skills/cm-ux-master/tests/test_semi_mcp_bridge.py +207 -0
  483. package/skills/cm-ux-master/tests/test_token_mapper.py +247 -0
  484. package/skills/cm-ux-master/tests/test_validation_engine.py +617 -0
  485. package/skills/config.schema.json +397 -0
  486. package/skills/frappe-app-builder.zip +0 -0
  487. package/skills/jobs-to-be-done/SKILL.md +266 -0
  488. package/skills/jobs-to-be-done/references/case-studies.md +154 -0
  489. package/skills/jobs-to-be-done/references/competitive-strategy.md +280 -0
  490. package/skills/jobs-to-be-done/references/diagnostics.md +158 -0
  491. package/skills/jobs-to-be-done/references/innovation-process.md +392 -0
  492. package/skills/jobs-to-be-done/references/organizational-change.md +328 -0
  493. package/skills/marketplace-report-crawler/SKILL.md +176 -0
  494. package/skills/marketplace-report-crawler/config/accounts.json +41 -0
  495. package/skills/marketplace-report-crawler/config/report-types.json +422 -0
  496. package/skills/marketplace-report-crawler/config/sessions.json +3 -0
  497. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +102 -0
  498. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +114 -0
  499. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +94 -0
  500. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +272 -0
  501. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +281 -0
  502. package/skills/marketplace-report-crawler/scripts/session-check.sh +72 -0
  503. package/skills/marketplace-report-crawler/scripts/session-manager.sh +349 -0
  504. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +83 -0
  505. package/skills/medical-research/SKILL.md +194 -0
  506. package/skills/medical-research/scripts/evidence_checker.py +288 -0
  507. package/skills/mom-test/SKILL.md +267 -0
  508. package/skills/mom-test/references/avoiding-bad-data.md +221 -0
  509. package/skills/mom-test/references/case-studies.md +306 -0
  510. package/skills/mom-test/references/commitment-advancement.md +219 -0
  511. package/skills/mom-test/references/finding-conversations.md +251 -0
  512. package/skills/mom-test/references/processing-learning.md +256 -0
  513. package/skills/mom-test/references/question-patterns.md +198 -0
  514. package/skills/pandasai-analytics/SKILL.md +251 -0
  515. package/skills/release-it/SKILL.md +235 -0
  516. package/skills/release-it/references/anti-patterns.md +279 -0
  517. package/skills/release-it/references/capacity-planning.md +285 -0
  518. package/skills/release-it/references/chaos-engineering.md +325 -0
  519. package/skills/release-it/references/deployment-strategies.md +331 -0
  520. package/skills/release-it/references/observability.md +301 -0
  521. package/skills/release-it/references/stability-patterns.md +355 -0
  522. package/skills/scripts/sync-ide-skills.sh +61 -0
  523. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +37 -0
  524. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +34 -0
  525. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +51 -0
  526. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +39 -0
  527. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +52 -0
  528. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +25 -0
  529. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +31 -0
  530. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +25 -0
  531. package/skills/skill-creator-ultra/README.md +1242 -0
  532. package/skills/skill-creator-ultra/SKILL.md +388 -0
  533. package/skills/skill-creator-ultra/agents/analyzer.md +274 -0
  534. package/skills/skill-creator-ultra/agents/comparator.md +202 -0
  535. package/skills/skill-creator-ultra/agents/grader.md +223 -0
  536. package/skills/skill-creator-ultra/assets/eval_review.html +146 -0
  537. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +471 -0
  538. package/skills/skill-creator-ultra/eval-viewer/viewer.html +1325 -0
  539. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +109 -0
  540. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +116 -0
  541. package/skills/skill-creator-ultra/examples/example_api_docs.md +189 -0
  542. package/skills/skill-creator-ultra/examples/example_db_migration.md +253 -0
  543. package/skills/skill-creator-ultra/examples/example_git_commit.md +111 -0
  544. package/skills/skill-creator-ultra/install.ps1 +289 -0
  545. package/skills/skill-creator-ultra/install.sh +313 -0
  546. package/skills/skill-creator-ultra/phases/phase1_interview.md +202 -0
  547. package/skills/skill-creator-ultra/phases/phase2_extract.md +55 -0
  548. package/skills/skill-creator-ultra/phases/phase3_detect.md +57 -0
  549. package/skills/skill-creator-ultra/phases/phase4_generate.md +543 -0
  550. package/skills/skill-creator-ultra/phases/phase5_test.md +319 -0
  551. package/skills/skill-creator-ultra/phases/phase6_eval.md +301 -0
  552. package/skills/skill-creator-ultra/phases/phase7_iterate.md +103 -0
  553. package/skills/skill-creator-ultra/phases/phase8_optimize.md +113 -0
  554. package/skills/skill-creator-ultra/resources/advanced_patterns.md +499 -0
  555. package/skills/skill-creator-ultra/resources/anti_patterns.md +376 -0
  556. package/skills/skill-creator-ultra/resources/blueprints.md +498 -0
  557. package/skills/skill-creator-ultra/resources/checklist.md +243 -0
  558. package/skills/skill-creator-ultra/resources/composition_cookbook.md +291 -0
  559. package/skills/skill-creator-ultra/resources/description_optimization.md +90 -0
  560. package/skills/skill-creator-ultra/resources/eval_guide.md +133 -0
  561. package/skills/skill-creator-ultra/resources/industry_questions.md +189 -0
  562. package/skills/skill-creator-ultra/resources/interview_questions.md +200 -0
  563. package/skills/skill-creator-ultra/resources/pattern_detection.md +200 -0
  564. package/skills/skill-creator-ultra/resources/prompt_engineering.md +531 -0
  565. package/skills/skill-creator-ultra/resources/schemas.md +430 -0
  566. package/skills/skill-creator-ultra/resources/script_integration.md +593 -0
  567. package/skills/skill-creator-ultra/resources/scripts_guide.md +339 -0
  568. package/skills/skill-creator-ultra/resources/skill_template.md +124 -0
  569. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +634 -0
  570. package/skills/skill-creator-ultra/resources/versioning_guide.md +193 -0
  571. package/skills/skill-creator-ultra/scripts/ci_eval.py +200 -0
  572. package/skills/skill-creator-ultra/scripts/package_skill.py +165 -0
  573. package/skills/skill-creator-ultra/scripts/simulate_skill.py +398 -0
  574. package/skills/skill-creator-ultra/scripts/skill_audit.py +611 -0
  575. package/skills/skill-creator-ultra/scripts/skill_compare.py +265 -0
  576. package/skills/skill-creator-ultra/scripts/skill_export.py +334 -0
  577. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +403 -0
  578. package/skills/skill-creator-ultra/scripts/skill_stats.py +339 -0
  579. package/skills/skill-creator-ultra/scripts/validate_skill.py +411 -0
  580. package/skills/tailwind-mastery/SKILL.md +229 -0
  581. package/skills/vercel-react-best-practices/AGENTS.md +3373 -0
  582. package/skills/vercel-react-best-practices/README.md +123 -0
  583. package/skills/vercel-react-best-practices/SKILL.md +143 -0
  584. package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  585. package/skills/vercel-react-best-practices/rules/_template.md +28 -0
  586. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  587. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  588. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  589. package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  590. package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  591. package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  592. package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  593. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  594. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  595. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  596. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  597. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  598. package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  599. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  600. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  601. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  602. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  603. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  604. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  605. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  606. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  607. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  608. package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  609. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  610. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  611. package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  612. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  613. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  614. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  615. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  616. package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  617. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  618. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  619. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  620. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  621. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  622. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  623. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  624. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  625. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  626. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  627. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  628. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  629. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  630. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  631. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  632. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  633. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  634. package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  635. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  636. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  637. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  638. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  639. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  640. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  641. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  642. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  643. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  644. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  645. package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  646. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  647. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
  648. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  649. package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  650. package/skills/web-design-guidelines/SKILL.md +39 -0
  651. package/skills/cro-methodology/SKILL.md +0 -98
  652. /package/skills/{cro-methodology → cm-cro-methodology}/references/COPYWRITING.md +0 -0
  653. /package/skills/{cro-methodology → cm-cro-methodology}/references/OBJECTIONS.md +0 -0
  654. /package/skills/{cro-methodology → cm-cro-methodology}/references/PERSUASION.md +0 -0
  655. /package/skills/{cro-methodology → cm-cro-methodology}/references/RESEARCH.md +0 -0
  656. /package/skills/{cro-methodology → cm-cro-methodology}/references/funnel-analysis.md +0 -0
  657. /package/skills/{cro-methodology → cm-cro-methodology}/references/testing-methodology.md +0 -0
@@ -1,120 +1,483 @@
1
1
  ---
2
2
  name: cm-safe-deploy
3
- description: Use when setting up deployment infrastructure for any project - establishes multi-gate deploy pipeline with test gates, build verification, frontend safety checks, version bump, changelog generation, and rollback strategy before code reaches production
3
+ description: Use when setting up deployment infrastructure for any project - establishes multi-gate deploy pipeline with test gates, build verification, frontend safety checks, and rollback strategy before code reaches production
4
4
  ---
5
5
 
6
6
  # Safe Deploy Pipeline v2
7
7
 
8
- > **Role: Release Engineer** — You manage the 9-gate pipeline from secret hygiene to changelog. No shortcuts.
8
+ ## Overview
9
+
10
+ A deploy without gates is a deploy with hope. Hope is not a strategy.
11
+
12
+ **Core principle:** Every project needs a multi-gate deploy pipeline. Code passes through syntax → tests → i18n → build → verify → deploy, with hard stops at each gate. No gate skipping. No "it'll be fine."
13
+
14
+ > [!CAUTION]
15
+ > **March 2026 Incident:** 572 backend tests passed green while `app.js` had catastrophic syntax errors → white screen in production. This pipeline exists because `test:gate` alone was NOT enough.
9
16
 
10
17
  ## The Iron Law
11
18
 
12
- **NO DEPLOY WITHOUT PASSING ALL GATES. GATES ARE SEQUENTIAL. EACH MUST PASS BEFORE THE NEXT.**
19
+ ```
20
+ NO DEPLOY WITHOUT PASSING ALL GATES.
21
+ GATES ARE SEQUENTIAL. EACH MUST PASS BEFORE THE NEXT RUNS.
22
+ SYNTAX CHECK IS GATE 1. IF IT FAILS, NOTHING ELSE RUNS.
23
+ ```
13
24
 
14
25
  ## When to Use
15
26
 
27
+ **ALWAYS** when:
16
28
  - Setting up a new project's deployment infrastructure
17
- - Project has no test gate before deploy
29
+ - A project has no test gate before deploy
30
+ - Project deploys directly from `git push`
18
31
  - After a production incident caused by untested code
19
32
  - Adding CI/CD to an existing project
20
33
 
21
- ## The 9-Gate Pipeline
34
+ ## The 7-Gate Pipeline
35
+
36
+ ```dot
37
+ digraph pipeline {
38
+ rankdir=LR;
39
+ gate0 [label="Gate 0\nSecret\nHygiene", shape=box, style=filled, fillcolor="#ffc0cb"];
40
+ gate1 [label="Gate 1\nSyntax", shape=box, style=filled, fillcolor="#ffcccc"];
41
+ gate2 [label="Gate 2\nTest\nSuite", shape=box, style=filled, fillcolor="#ffe0cc"];
42
+ gate3 [label="Gate 3\ni18n\nParity", shape=box, style=filled, fillcolor="#e0ccff"];
43
+ gate4 [label="Gate 4\nBuild", shape=box, style=filled, fillcolor="#ffffcc"];
44
+ gate5 [label="Gate 5\nDist\nVerify", shape=box, style=filled, fillcolor="#ccffcc"];
45
+ gate6 [label="Gate 6\nDeploy +\nSmoke", shape=box, style=filled, fillcolor="#cce5ff"];
46
+ fail [label="STOP\nFix first", shape=box, style=filled, fillcolor="#ff9999"];
47
+
48
+ gate0 -> gate1 [label="pass"];
49
+ gate0 -> fail [label="fail"];
50
+ gate1 -> gate2 [label="pass"];
51
+ gate1 -> fail [label="fail"];
52
+ gate2 -> gate3 [label="pass"];
53
+ gate2 -> fail [label="fail"];
54
+ gate3 -> gate4 [label="pass"];
55
+ gate3 -> fail [label="fail"];
56
+ gate4 -> gate5 [label="pass"];
57
+ gate4 -> fail [label="fail"];
58
+ gate5 -> gate6 [label="pass"];
59
+ gate5 -> fail [label="fail"];
60
+ }
61
+ ```
62
+
63
+ ---
64
+
65
+ ### Gate 0: Secret Hygiene (FASTEST FAIL — < 0.5 seconds)
66
+
67
+ > [!CAUTION]
68
+ > **March 2026 Security Incident:** `SUPABASE_SERVICE_KEY` was accidentally committed to `wrangler.jsonc`. This exposed a service-role key that bypasses Row Level Security in git history. Gate 0 prevents this from ever reaching the remote.
69
+
70
+ **The Rule: Where Each Variable Lives**
71
+
72
+ | Variable Type | Correct Location | WRONG Location |
73
+ |--------------|-----------------|----------------|
74
+ | Supabase URL (public) | `wrangler.jsonc` vars section | ❌ Hardcoded in code |
75
+ | `SUPABASE_SERVICE_KEY` | Cloudflare Secret (`wrangler secret put`) | ❌ `wrangler.jsonc` |
76
+ | `SUPABASE_ANON_KEY` | Cloudflare Secret | ❌ `wrangler.jsonc` |
77
+ | DB connection strings | Cloudflare Secret | ❌ Anywhere in repo |
78
+ | Local dev secrets | `.dev.vars` (gitignored) | ❌ `wrangler.jsonc` |
79
+ | Build config (non-secret) | `wrangler.jsonc` | — |
80
+
81
+ **Secret Hygiene Check (Enhanced — Repo-Wide):**
82
+
83
+ > Calls `cm-secret-shield` Layer 4 for deep scanning. Below is the essential check:
84
+
85
+ ```bash
86
+ node -e "
87
+ const fs = require('fs');
88
+ const { execSync } = require('child_process');
89
+
90
+ // 1. Check wrangler config for secrets
91
+ const wranglerFiles = ['wrangler.jsonc', 'wrangler.toml', 'wrangler.json'];
92
+ const dangerous = ['SERVICE_KEY', 'ANON_KEY', 'DB_PASSWORD', 'SECRET_KEY', 'PRIVATE_KEY', 'API_SECRET'];
93
+ let failed = false;
94
+
95
+ for (const wf of wranglerFiles) {
96
+ if (!fs.existsSync(wf)) continue;
97
+ const src = fs.readFileSync(wf, 'utf-8');
98
+ for (const key of dangerous) {
99
+ // Check for actual values, not just variable names
100
+ const valuePattern = new RegExp(key + '\\\\s*[=:]\\\\s*[\"\'][a-zA-Z0-9/+=]{20,}', 'g');
101
+ if (valuePattern.test(src)) {
102
+ console.error('❌ DANGEROUS: ' + wf + ' contains a ' + key + ' VALUE');
103
+ console.error(' Fix: wrangler secret put ' + key + ' (then remove from ' + wf + ')');
104
+ failed = true;
105
+ }
106
+ }
107
+ }
108
+
109
+ // 2. Check .gitignore has required patterns
110
+ if (fs.existsSync('.gitignore')) {
111
+ const gi = fs.readFileSync('.gitignore', 'utf-8');
112
+ const required = ['.env', '.dev.vars'];
113
+ const missing = required.filter(r => !gi.includes(r));
114
+ if (missing.length > 0) {
115
+ console.error('❌ .gitignore missing: ' + missing.join(', '));
116
+ failed = true;
117
+ }
118
+ } else {
119
+ console.error('❌ No .gitignore found!');
120
+ failed = true;
121
+ }
122
+
123
+ // 3. Check .env files aren't tracked by git
124
+ try {
125
+ const tracked = execSync('git ls-files', { encoding: 'utf-8' });
126
+ const badFiles = ['.env', '.dev.vars', '.env.local', '.env.production'];
127
+ const trackedBad = badFiles.filter(f => tracked.split('\\n').includes(f));
128
+ if (trackedBad.length > 0) {
129
+ console.error('❌ CRITICAL: Secret files tracked by git: ' + trackedBad.join(', '));
130
+ console.error(' Fix: git rm --cached ' + trackedBad.join(' '));
131
+ failed = true;
132
+ }
133
+ } catch (e) { /* not a git repo */ }
22
134
 
135
+ if (failed) {
136
+ console.error('\\n🛡️ Gate 0 FAILED. Fix issues above before deploying.');
137
+ process.exit(1);
138
+ }
139
+ console.log('✅ Gate 0 passed: repo-wide secret hygiene verified');
140
+ "
23
141
  ```
24
- Gate 0: Secret Hygiene → Gate 1: Syntax → Gate 2: Test Suite → Gate 3: i18n Parity →
25
- Gate 4: Build Gate 5: Dist Verify → Gate 6: Deploy + Smoke → Gate 7: Version Bump → Gate 8: Changelog
142
+
143
+ **Setup `.dev.vars` for local development:**
144
+ ```bash
145
+ # .dev.vars — local only, NEVER committed
146
+ SUPABASE_URL=https://YOUR_PROJECT.supabase.co
147
+ SUPABASE_SERVICE_KEY=YOUR_SERVICE_KEY
148
+
149
+ # Add to .gitignore:
150
+ echo ".dev.vars" >> .gitignore
151
+
152
+ # Commit the template:
153
+ cp .dev.vars .dev.vars.example # Remove values first
154
+ git add .dev.vars.example
26
155
  ```
27
156
 
28
- Each gate MUST pass. On failure → STOP, fix, retry from failed gate.
157
+ **If secrets were already committed:**
158
+ ```bash
159
+ # Remove from git history (URGENT — do before pushing)
160
+ git filter-repo --path wrangler.jsonc --invert-paths # Nuclear option
161
+ # OR just remove the value from wrangler.jsonc and add as secret:
162
+ wrangler secret put SUPABASE_SERVICE_KEY
163
+ # Then rotate the key immediately in Supabase dashboard
164
+ ```
29
165
 
30
166
  ---
31
167
 
32
- ### Gate 0: Secret Hygiene (<0.5s)
168
+ ### Gate 1: Syntax Validation (FAST FAIL)
33
169
 
34
- Check wrangler config for secret values (SERVICE_KEY, ANON_KEY, DB_PASSWORD). Verify `.gitignore` has `.env` + `.dev.vars`. Verify no secret files tracked by git. Calls `cm-secret-shield` Layer 4.
170
+ > [!IMPORTANT]
171
+ > This gate runs in < 1 second and catches the EXACT class of errors that caused the March 2026 incident. Run it BEFORE the test suite (which takes 10-30s).
35
172
 
36
- **Rule:** `SERVICE_KEY`/`ANON_KEY` Cloudflare Secrets (`wrangler secret put`), NEVER in `wrangler.jsonc`. Local dev secrets → `.dev.vars` (gitignored).
173
+ | Stack | Command | What it checks |
174
+ |-------|---------|---------------|
175
+ | Vanilla JS | `node -c path/to/app.js` | JavaScript parse errors |
176
+ | TypeScript | `npx tsc --noEmit` | Type errors + syntax |
177
+ | Python | `python -m py_compile app.py` | Python syntax |
178
+ | Go | `go vet ./...` | Go static analysis |
37
179
 
38
- ### Gate 1: Syntax Validation (<1s)
180
+ **For frontend monoliths without TypeScript:**
181
+ ```bash
182
+ # Ultra-fast syntax check — fails in < 1s if broken
183
+ node -c public/static/app.js
184
+ ```
185
+
186
+ **Why separate from Gate 2?**
187
+ - `node -c` takes < 1 second. Test suite takes 10-30 seconds.
188
+ - If syntax is broken, 100% of tests will fail anyway — but with confusing error messages.
189
+ - A fast syntax check gives you the EXACT line number of the error instantly.
39
190
 
40
- | Stack | Command |
41
- |-------|---------|
42
- | Vanilla JS | `node -c path/to/app.js` |
43
- | TypeScript | `npx tsc --noEmit` |
44
- | Python | `python -m py_compile app.py` |
191
+ **REQUIRED SUB-SKILL:** Use `cm-quality-gate` for parser-based validation inside the test suite (Layer 1).
45
192
 
46
- Gives exact line number of error instantly, before the slower test suite.
193
+ ---
47
194
 
48
195
  ### Gate 2: Test Suite
49
196
 
50
- Must include: frontend safety, backend API, business logic, i18n sync, integration tests. Run via `npm run test:gate` (`vitest run --reporter=verbose`). 0 failures → proceed.
197
+ The test suite MUST include:
51
198
 
52
- ### Gate 3: i18n Parity Check
199
+ | Test Category | What it validates | Priority |
200
+ |--------------|-------------------|----------|
201
+ | **Frontend safety** | JS syntax, function integrity, corruption patterns | **CRITICAL** |
202
+ | **Backend API** | Routes return correct data | Required |
203
+ | **Business logic** | Calculations, rules, validation | Required |
204
+ | **i18n sync** | Translation key parity, orphaned keys | Required for multi-lang |
205
+ | **Integration** | End-to-end workflows | Recommended |
53
206
 
54
- All language files must have identical key counts and no null/empty values. Skip if project has no i18n.
207
+ **Setup the test:gate script:**
208
+ ```json
209
+ {
210
+ "scripts": {
211
+ "test:gate": "vitest run --reporter=verbose"
212
+ }
213
+ }
214
+ ```
215
+
216
+ **Gate decision:**
217
+ ```
218
+ IF 0 failures → proceed to Gate 3
219
+ IF any failures → STOP. Fix before continuing.
220
+ ```
221
+
222
+ **REQUIRED SUB-SKILL:** Use `cm-quality-gate` for enforcement discipline.
223
+
224
+ ---
225
+
226
+ ### Gate 3: i18n Parity Check (for multi-language projects)
227
+
228
+ > [!NOTE]
229
+ > Skip this gate if the project does not have i18n. For projects with i18n, this gate catches what test suites can miss: key drift between languages that causes blank strings in production.
230
+
231
+ ```bash
232
+ # All language files must have identical key counts
233
+ node -e "
234
+ const fs = require('fs');
235
+ const path = require('path');
236
+ const I18N_DIR = 'public/static/i18n';
237
+ const langs = ['vi','en','th','ph'];
238
+ const results = {};
239
+ let allMatch = true;
240
+
241
+ for (const lang of langs) {
242
+ const filePath = path.join(I18N_DIR, lang + '.json');
243
+ const data = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
244
+ const flatKeys = JSON.stringify(data).split('\":').length - 1;
245
+ results[lang] = flatKeys;
246
+ console.log(lang + ': ' + flatKeys + ' keys');
247
+ }
248
+
249
+ const counts = Object.values(results);
250
+ if (new Set(counts).size !== 1) {
251
+ console.error('❌ KEY PARITY FAILURE! Counts differ across languages.');
252
+ console.error(JSON.stringify(results));
253
+ process.exit(1);
254
+ } else {
255
+ console.log('✅ Key parity: all languages have ' + counts[0] + ' keys');
256
+ }
257
+
258
+ // Check for null/empty values
259
+ let nullCount = 0;
260
+ for (const lang of langs) {
261
+ const data = JSON.parse(fs.readFileSync(path.join(I18N_DIR, lang + '.json'), 'utf-8'));
262
+ const check = (obj, prefix) => {
263
+ for (const [k, v] of Object.entries(obj)) {
264
+ if (k === '_meta') continue;
265
+ if (typeof v === 'object' && v !== null) { check(v, prefix + '.' + k); continue; }
266
+ if (v === null || v === undefined || v === '') {
267
+ console.error(' ⚠ ' + lang + '.' + prefix + '.' + k + ' is null/empty');
268
+ nullCount++;
269
+ }
270
+ }
271
+ };
272
+ check(data, lang);
273
+ }
274
+ if (nullCount > 0) {
275
+ console.error('❌ Found ' + nullCount + ' null/empty translation values!');
276
+ process.exit(1);
277
+ }
278
+ console.log('✅ No null/empty values');
279
+ "
280
+ ```
281
+
282
+ **What this catches:**
283
+ - Keys added to `vi.json` but forgotten in `en.json` → blank strings for English users
284
+ - Null values from bad translation scripts → `t()` returns key name instead of translation
285
+ - Key count drift between languages → inconsistent UX
286
+
287
+ ---
55
288
 
56
289
  ### Gate 4: Build Verification
57
290
 
58
- `npm run build` must succeed. Catches: import failures, tree-shaking errors, missing env vars, bundle size issues.
291
+ Production build must succeed without errors.
59
292
 
60
- ### Gate 5: Dist Asset Verification
293
+ ```bash
294
+ npm run build
295
+ ```
61
296
 
62
- Verify critical files exist in `dist/`: worker entry, frontend JS/CSS, translation files, critical assets.
297
+ **What this catches that tests don't:**
298
+ - Import resolution failures
299
+ - Tree-shaking errors
300
+ - Missing environment variables
301
+ - Asset compilation failures
302
+ - Bundle size explosions
63
303
 
64
- ### Gate 6: Deploy + Smoke Test
304
+ **Optional: Bundle size guard:**
305
+ ```json
306
+ {
307
+ "scripts": {
308
+ "build:verify": "npm run build && node -e \"const s=require('fs').statSync('dist/_worker.js').size; if(s>2e6) {console.error('Bundle too large: '+s); process.exit(1)}\""
309
+ }
310
+ }
311
+ ```
312
+
313
+ ---
314
+
315
+ ### Gate 5: Dist Asset Verification (NEW)
316
+
317
+ > [!IMPORTANT]
318
+ > The build can "succeed" but produce an incomplete dist/ directory. This gate catches missing critical assets.
319
+
320
+ ```bash
321
+ # Verify critical files exist in dist/
322
+ node -e "
323
+ const fs = require('fs');
324
+ const required = [
325
+ 'dist/_worker.js',
326
+ 'dist/static/app.js',
327
+ 'dist/static/style.css',
328
+ 'dist/static/i18n/vi.json',
329
+ 'dist/static/i18n/en.json',
330
+ 'dist/static/i18n/th.json',
331
+ 'dist/static/i18n/ph.json',
332
+ ];
333
+ const missing = required.filter(f => !fs.existsSync(f));
334
+ if (missing.length > 0) {
335
+ console.error('❌ Missing files in dist/:');
336
+ missing.forEach(f => console.error(' ' + f));
337
+ process.exit(1);
338
+ }
339
+ console.log('✅ All ' + required.length + ' critical files present in dist/');
340
+ "
341
+ ```
342
+
343
+ **Adapt `required` array to your project.** At minimum, verify:
344
+ - Worker/server entry point exists
345
+ - Frontend JS/CSS files exist
346
+ - Translation files are copied
347
+ - Critical images/assets are present
65
348
 
66
- Deploy command by platform: Cloudflare (`wrangler pages deploy`), Vercel (`vercel --prod`), Netlify (`netlify deploy --prod`). Post-deploy: `curl` deployed URL, must return HTTP 200.
349
+ ---
67
350
 
68
- ### Gate 7: Version Bump (POST-DEPLOY)
351
+ ### Gate 6: Deploy + Post-Deploy Smoke Test
69
352
 
70
- Detect bump type from commits: `fix:`/`bug:` → patch, `feat:`/`improve:` → minor. Update `package.json` version, commit.
353
+ Only after Gates 1-5 pass.
71
354
 
72
- ### Gate 8: Changelog Generation (POST-DEPLOY)
355
+ **Deploy command varies by platform:**
73
356
 
74
- Collect commits since last tag, categorize into **🚀 Improvements** and **🐛 Bug Fixes**. Write to `CHANGELOG.md`, git tag release.
75
- **CRITICAL:** The `CHANGELOG.md` file dynamically powers the public `/docs/changelog` page. You MUST ensure this gate passes and updates the changelog accurately so the documentation site reflects the latest version history.
357
+ | Platform | Command |
358
+ |----------|---------|
359
+ | Cloudflare Pages | `npx wrangler pages deploy dist/` |
360
+ | Vercel | `npx vercel --prod` |
361
+ | Netlify | `npx netlify deploy --prod` |
362
+
363
+ **Post-deploy verification:**
364
+ ```bash
365
+ # Smoke test the deployed URL — must return 200
366
+ STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://your-app.pages.dev)
367
+ if [ "$STATUS" != "200" ]; then
368
+ echo "❌ POST-DEPLOY SMOKE TEST FAILED! Status: $STATUS"
369
+ echo "⚠ Consider immediate rollback."
370
+ exit 1
371
+ fi
372
+ echo "✅ Smoke test passed (HTTP $STATUS)"
373
+ ```
76
374
 
77
375
  ---
78
376
 
79
377
  ## Composing the Deploy Script
80
378
 
379
+ ### `package.json` (Recommended)
81
380
  ```json
82
381
  {
83
382
  "scripts": {
84
- "deploy": "node -c src/app.js && npm run test:gate && npm run build && YOUR_DEPLOY_COMMAND && npm run release:version && npm run release:changelog"
383
+ "predeploy:syntax": "node -c public/static/app.js",
384
+ "predeploy:i18n": "node scripts/check-i18n-parity.js",
385
+ "predeploy:dist": "node scripts/verify-dist.js",
386
+ "deploy": "npm run predeploy:syntax && npm run test:gate && npm run predeploy:i18n && npm run build && npm run predeploy:dist && YOUR_DEPLOY_COMMAND"
85
387
  }
86
388
  }
87
389
  ```
88
390
 
89
- Chain with `&&` any gate failure stops the chain.
391
+ **Key insight:** Chain gates with `&&`. If any gate fails, the chain stops immediately.
392
+
393
+ ---
90
394
 
91
395
  ## Rollback Protocol
92
396
 
93
- | Severity | Action |
94
- |----------|--------|
95
- | White screen | `git revert HEAD && npm run deploy` |
96
- | Broken translations | `git checkout HEAD~1 -- i18n/*.json && npm run deploy` |
97
- | API error | `git revert HEAD && npm run deploy` |
98
- | Cloudflare | `wrangler pages deployment rollback <id>` |
397
+ When a deployment causes issues:
99
398
 
100
- ## Post-Release Memory (cm-continuity)
399
+ | Severity | Action | Command |
400
+ |----------|--------|---------|
401
+ | **White screen** (syntax) | Revert last commit, redeploy | `git revert HEAD && npm run deploy` |
402
+ | **Broken translations** | Revert JSON files, redeploy | `git checkout HEAD~1 -- public/static/i18n/*.json && npm run deploy` |
403
+ | **API error** | Revert server code, redeploy | `git revert HEAD && npm run deploy` |
404
+ | **Partial breakage** | Cherry-pick fix, deploy | Fix → test → deploy |
101
405
 
102
- **On SUCCESS:** Update CONTINUITY.md: "Released v[version] — all 9 gates passed"
103
- **On FAILURE:** Write to `learnings.json`: gate, error, root cause, prevention. Update CONTINUITY.md blockers.
406
+ **Cloudflare Pages specific:**
407
+ ```bash
408
+ # Rollback to previous deployment
409
+ wrangler pages deployments list --project-name prms
410
+ wrangler pages deployment rollback <deployment-id> --project-name prms
411
+ ```
104
412
 
105
- ## Template Files (load on-demand with view_file)
413
+ ---
106
414
 
107
- | Template | Use When |
108
- |----------|----------|
109
- | `templates/deploy.sh` | Setting up the full 9-gate deploy script |
415
+ ## Setting Up for a New Project
110
416
 
111
- ## Integration
417
+ ### Step 1: Create test infrastructure
418
+ ```bash
419
+ npm install -D vitest acorn
420
+ ```
421
+
422
+ ### Step 2: Create package.json scripts
423
+ ```json
424
+ {
425
+ "scripts": {
426
+ "test:gate": "vitest run --reporter=verbose",
427
+ "build": "YOUR_BUILD_COMMAND",
428
+ "deploy": "node -c public/static/app.js && npm run test:gate && npm run build && YOUR_DEPLOY_COMMAND"
429
+ }
430
+ }
431
+ ```
432
+
433
+ ### Step 3: Add frontend safety tests
434
+ **REQUIRED SUB-SKILL:** Follow `cm-quality-gate` to create test file with all layers.
435
+
436
+ ### Step 4: Create deploy workflow
437
+ Create `.agents/workflows/deploy.md`.
438
+
439
+ ---
440
+
441
+ ## Red Flags — STOP
442
+
443
+ - ❌ Deploying without running test:gate
444
+ - ❌ Skipping syntax check ("tests will catch it")
445
+ - ❌ Skipping build step ("tests passed so it'll build")
446
+ - ❌ Running tests and deploy in parallel
447
+ - ❌ "Tests passed last time" (run them NOW)
448
+ - ❌ "Only changed one file" (test everything)
449
+ - ❌ No frontend safety tests for JS projects
450
+ - ❌ No dist/ verification after build
451
+ - ❌ No post-deploy smoke test
452
+ - ❌ No i18n parity check for multi-language apps
453
+
454
+ ## Rationalization Table
455
+
456
+ | Excuse | Reality |
457
+ |--------|---------|
458
+ | "Tests passed earlier" | Code changed since then. Run fresh. |
459
+ | "Build always works" | Until it doesn't. 30 seconds to verify. |
460
+ | "It's a one-line change" | One line broke 600 lines of app.js. Test it. |
461
+ | "CI will catch it" | CI runs AFTER push. Catch BEFORE push. |
462
+ | "Just a hotfix" | Hotfixes need MORE testing, not less. |
463
+ | "Syntax check is redundant" | `node -c` takes 0.5s and prevented the March 2026 disaster. |
464
+ | "i18n parity is overkill" | Missing keys → blank strings in production. |
465
+ | "dist/ is always complete" | Build tools can silently skip assets. Check. |
466
+
467
+ ## Integration with Other Skills
112
468
 
113
469
  | Skill | When |
114
470
  |-------|------|
115
- | `cm-quality-gate` | Gate 2 frontend tests |
116
- | `cm-secret-shield` | Gate 0 deep scanning |
117
- | `cm-safe-i18n` | i18n-specific gates |
471
+ | `cm-quality-gate` | Setting up Gate 2 frontend tests and Test Gate |
472
+ | `cm-secret-shield` | Gate 0 calls Secret Shield Layer 4 for deep scanning |
473
+ | `cm-safe-i18n` | Adding i18n-specific gates |
474
+ | `cm-terminal` | Monitoring gate commands |
118
475
  | `cm-identity-guard` | Gate 0 verifies deploy identity |
119
- | `cm-continuity` | Post-release memory |
120
- | `cm-dockit` | Gate 8 changelog → docs |
476
+
477
+ ## The Bottom Line
478
+
479
+ **6 gates. Sequential. Each must pass. No exceptions.**
480
+
481
+ Syntax → Tests → i18n → Build → Dist Verify → Deploy + Smoke.
482
+
483
+ This is non-negotiable.
@@ -21,7 +21,6 @@ NO LANGUAGE FILE WITHOUT KEY PARITY.
21
21
  NO DEPLOY WITHOUT FULL SYNTAX VALIDATION.
22
22
  NO HTML TAG MODIFICATION — TEXT CONTENT ONLY.
23
23
  NO REGEX TO FIX REGEX ERRORS — USE LEXICAL SCANNER.
24
- NO HTML MARKUP IN TRANSLATION JSON VALUES — ICONS AND STRUCTURAL HTML BELONG IN HTML TEMPLATES.
25
24
  ```
26
25
 
27
26
  ## When to Use
@@ -75,16 +74,6 @@ digraph i18n_flow {
75
74
 
76
75
  ### Phase 0: Pre-Flight Checks (NEW)
77
76
 
78
- #### 0a. Load i18n Learnings (cm-continuity)
79
-
80
- Before ANY i18n work, read `.cm/memory/learnings.json` filtered by `scope: "module:i18n"`.
81
- Apply all active prevention patterns. Known high-value learnings:
82
- - **L001**: Always run i18n-sync test after each batch extraction
83
- - **L004**: Use namespace-split architecture (not monolithic JSON)
84
- - **L005**: Add exclusion list to extraction scripts to prevent junk keys
85
-
86
- > If learnings.json has relevant entries, reference them before starting. If no `.cm/` directory exists, proceed but create learnings after this workflow.
87
-
88
77
  Before ANY i18n work:
89
78
 
90
79
  ```bash
@@ -401,13 +390,6 @@ git checkout main
401
390
  git merge i18n/...
402
391
  ```
403
392
 
404
- #### Post-completion: Update Memory (cm-continuity)
405
-
406
- After final validation passes:
407
- 1. Update `.cm/CONTINUITY.md` → Just Completed: "i18n: [N] strings across [M] languages"
408
- 2. Record any NEW bug patterns to `.cm/memory/learnings.json` with `scope: "module:i18n"`
409
- 3. **Anti-duplicate**: If same pattern as existing learning → reinforce (count++), don't create new entry
410
-
411
393
  ---
412
394
 
413
395
  ## Quick Reference: Key Naming Convention
@@ -421,7 +403,7 @@ After final validation passes:
421
403
 
422
404
  ---
423
405
 
424
- ## The 14 Bug Categories — Quick Reference
406
+ ## The 13 Bug Categories — Quick Reference
425
407
 
426
408
  | # | Bug | Pattern | Detection Gate |
427
409
  |---|-----|---------|---------------|
@@ -438,7 +420,6 @@ After final validation passes:
438
420
  | 11 | Missed files | Only scanned app.js | Phase 1 scan ALL |
439
421
  | 12 | Line number drift | Stale line refs across batches | Target by function name |
440
422
  | 13 | **Flat vs nested key count mismatch** | Test vs Gate metrics | i18n-sync test design |
441
- | 14 | **HTML markup in translation values** | `<i data-lucide>`, `<a href>` in JSON | `grep '<[a-z]' *.json` |
442
423
 
443
424
  ---
444
425
 
@@ -449,7 +430,6 @@ After final validation passes:
449
430
  - ❌ Committing all translations in a single commit
450
431
  - ❌ Skipping key parity check across language files
451
432
  - ❌ "It's just a string replacement, it'll be fine"
452
- - ❌ Putting HTML tags (`<i>`, `<a>`, `<svg>`) inside translation JSON values — icons and structural markup belong in HTML/JSX templates, not in i18n strings. Only `<strong>`, `<em>`, `<br>` are acceptable.
453
433
 
454
434
  ## Rationalization Table
455
435
 
@@ -467,7 +447,6 @@ After final validation passes:
467
447
  | `cm-quality-gate` | Final test gate before deploy |
468
448
  | `cm-execution` | Phase 4: Parallel language translation |
469
449
  | `cm-terminal` | While running audit commands |
470
- | `cm-continuity` | Phase 0: load i18n learnings; Post-completion: record new patterns |
471
450
 
472
451
  ## The Bottom Line
473
452
 
@@ -113,14 +113,14 @@ gitleaks version
113
113
  #### Step 2: Create `.gitleaks.toml` (Project Root)
114
114
 
115
115
  ```toml
116
- # .gitleaks.toml — CodyMaster Secret Shield Configuration
116
+ # .gitleaks.toml — Cody Master Secret Shield Configuration
117
117
  title = "CM Secret Shield — Gitleaks Config"
118
118
 
119
119
  # Extend default rules (catches 100+ known patterns)
120
120
  [extend]
121
121
  useDefault = true
122
122
 
123
- # Custom rules for CodyMaster projects
123
+ # Custom rules for Cody Master projects
124
124
  [[rules]]
125
125
  id = "supabase-service-key"
126
126
  description = "Supabase Service Role Key"