codymaster 4.8.0 → 7.0.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 (416) hide show
  1. package/CHANGELOG.md +331 -7
  2. package/README.md +226 -296
  3. package/dist/advisory-handoff.js +89 -0
  4. package/dist/advisory-report.js +105 -0
  5. package/dist/agent/antigravity.js +152 -0
  6. package/dist/agent/backend.js +2 -0
  7. package/dist/agent/claude.js +196 -0
  8. package/dist/agent/codex.js +204 -0
  9. package/dist/agent/copilot.js +284 -0
  10. package/dist/agent/cursor.js +211 -0
  11. package/dist/agent/factory.js +30 -0
  12. package/dist/agent/gemini.js +142 -0
  13. package/dist/agent/opencode.js +205 -0
  14. package/dist/agent/spawn-helper.js +237 -0
  15. package/dist/agent/version.js +25 -0
  16. package/dist/browse/adapter-factory.js +69 -0
  17. package/dist/browse/adapters/agent-browser-adapter.js +305 -0
  18. package/dist/browse/adapters/playwright-adapter.js +309 -0
  19. package/dist/browse/adapters/types.js +6 -0
  20. package/dist/browse/error-collector.js +132 -0
  21. package/dist/browse/event-log.js +109 -0
  22. package/dist/browse/index.js +17 -0
  23. package/dist/browse-server.js +204 -120
  24. package/dist/cli/command-registry.js +20 -0
  25. package/dist/cli/commands/bench.js +69 -0
  26. package/dist/cli/commands/brain.js +108 -0
  27. package/dist/cli/commands/dashboard.js +76 -2
  28. package/dist/cli/commands/engineering.js +326 -4
  29. package/dist/cli/commands/evolve.js +123 -0
  30. package/dist/cli/commands/install.js +160 -0
  31. package/dist/cli/commands/learn.js +181 -0
  32. package/dist/cli/commands/mcp-serve.js +104 -0
  33. package/dist/cli/commands/parallel.js +138 -0
  34. package/dist/cli/commands/quality.js +105 -0
  35. package/dist/cli/commands/stack.js +49 -0
  36. package/dist/cli/commands/update.js +159 -0
  37. package/dist/cli/update-check.js +94 -10
  38. package/dist/cm-config.js +0 -18
  39. package/dist/codybench/judges/automated.js +31 -0
  40. package/dist/codybench/runners/claude-code.js +32 -0
  41. package/dist/codybench/suites/memory-retention.js +85 -0
  42. package/dist/codybench/suites/tdd-regression.js +35 -0
  43. package/dist/codybench/suites/token-efficiency.js +55 -0
  44. package/dist/codybench/types.js +2 -0
  45. package/dist/context-db.js +157 -0
  46. package/dist/continuity.js +5 -7
  47. package/dist/dashboard.js +47 -6
  48. package/dist/data.js +35 -0
  49. package/dist/execution/tdd-gate.js +113 -0
  50. package/dist/execution-analyzer.js +138 -0
  51. package/dist/executor/cancel.js +34 -0
  52. package/dist/executor/gc.js +74 -0
  53. package/dist/executor/index.js +14 -0
  54. package/dist/executor/runner.js +70 -0
  55. package/dist/executor/workdir.js +31 -0
  56. package/dist/handoff/contracts.js +22 -0
  57. package/dist/handoff/index.js +18 -0
  58. package/dist/handoff/io.js +121 -0
  59. package/dist/index.js +7 -3
  60. package/dist/indexer/skills-lib.js +533 -0
  61. package/dist/indexer/skills-map.js +1374 -0
  62. package/dist/indexer/skills.js +16 -0
  63. package/dist/indexer/stack-detect.js +219 -0
  64. package/dist/install/copy.js +98 -0
  65. package/dist/install/engine.js +42 -0
  66. package/dist/install/paths.js +70 -0
  67. package/dist/install/platforms/_simple.js +85 -0
  68. package/dist/install/platforms/antigravity.js +91 -0
  69. package/dist/install/platforms/claude-code.js +107 -0
  70. package/dist/install/platforms/cursor.js +77 -0
  71. package/dist/install/platforms/index.js +27 -0
  72. package/dist/install/platforms/simple.js +163 -0
  73. package/dist/install/profiles.js +75 -0
  74. package/dist/install/types.js +2 -0
  75. package/dist/learning-promoter.js +246 -0
  76. package/dist/learnings.js +208 -0
  77. package/dist/mcp-context-server.js +230 -1
  78. package/dist/middleware/metrics.js +30 -0
  79. package/dist/middleware/security-headers.js +14 -0
  80. package/dist/realtime/event-bus.js +29 -0
  81. package/dist/realtime/ws-hub.js +91 -0
  82. package/dist/schemas/task-schema.js +48 -0
  83. package/dist/schemas/validate.js +18 -0
  84. package/dist/skill-chain.js +63 -1
  85. package/dist/skill-evolver.js +456 -0
  86. package/dist/skill-execution-cache.js +254 -0
  87. package/dist/skills-lock.js +96 -0
  88. package/dist/smart-brain-router.js +184 -0
  89. package/dist/sprint-pipeline.js +26 -0
  90. package/dist/storage/index.js +21 -0
  91. package/dist/storage/repos/activity-repo.js +46 -0
  92. package/dist/storage/repos/message-repo.js +39 -0
  93. package/dist/storage/repos/project-repo.js +56 -0
  94. package/dist/storage/repos/task-repo.js +142 -0
  95. package/dist/storage/services/project-service.js +49 -0
  96. package/dist/storage/services/task-service.js +97 -0
  97. package/dist/storage/sqlite.js +113 -0
  98. package/dist/storage-backend.js +10 -8
  99. package/dist/tier-classify.js +131 -0
  100. package/dist/token-budget.js +88 -0
  101. package/dist/ui/onboarding.js +51 -15
  102. package/dist/utils/cli-utils.js +7 -2
  103. package/dist/utils/design-taste.js +108 -0
  104. package/dist/utils/output-compress.js +143 -0
  105. package/dist/vibecoding-index.js +126 -0
  106. package/package.json +20 -6
  107. package/public/dashboard/app.js +52 -1
  108. package/scripts/build-skills-lock.mjs +88 -0
  109. package/scripts/build-skills.mjs +187 -28
  110. package/scripts/compress-skill.mjs +73 -0
  111. package/scripts/deprecate-skill.mjs +72 -0
  112. package/scripts/install.sh +170 -0
  113. package/scripts/mcp-bridge.js +2 -2
  114. package/scripts/postinstall.js +53 -335
  115. package/scripts/update-changelog.sh +88 -0
  116. package/scripts/validate-skills.mjs +101 -4
  117. package/skills/CLAUDE.md +0 -5
  118. package/skills/_shared/SKILL_TEMPLATE.md +62 -0
  119. package/skills/_shared/helpers.md +2 -8
  120. package/skills/cm-autopilot/scripts/autopilot.py +19 -2
  121. package/skills/cm-brainstorm-idea/SKILL.md +9 -0
  122. package/skills/cm-browse/SKILL.md +6 -0
  123. package/skills/cm-clean-code/SKILL.md +20 -0
  124. package/skills/cm-code-review/SKILL.md +21 -0
  125. package/skills/cm-codeintell/SKILL.md +9 -0
  126. package/skills/cm-conductor-worktrees/SKILL.archive.md +28 -0
  127. package/skills/cm-conductor-worktrees/SKILL.md +20 -18
  128. package/skills/cm-continuity/SKILL.md +41 -33
  129. package/skills/cm-dashboard/SKILL.archive.md +15 -0
  130. package/skills/cm-dashboard/SKILL.md +20 -9
  131. package/skills/cm-dashboard/ui/app.js +9 -1
  132. package/skills/cm-debugging/SKILL.md +9 -0
  133. package/skills/cm-design-studio/SKILL.archive.md +34 -0
  134. package/skills/cm-design-studio/SKILL.md +20 -24
  135. package/skills/cm-design-system/SKILL.md +1 -0
  136. package/skills/cm-ecosystem-roadmap/SKILL.md +4 -0
  137. package/skills/cm-engineering-meta/SKILL.archive.md +73 -0
  138. package/skills/cm-engineering-meta/SKILL.md +19 -62
  139. package/skills/cm-execution/SKILL.md +98 -0
  140. package/skills/cm-git-worktrees/SKILL.archive.md +157 -0
  141. package/skills/cm-git-worktrees/SKILL.md +15 -146
  142. package/skills/cm-guardian-runtime/SKILL.md +5 -1
  143. package/skills/cm-identity-guard/SKILL.md +8 -0
  144. package/skills/cm-mcp-engineering/SKILL.md +4 -0
  145. package/skills/cm-planning/SKILL.md +63 -92
  146. package/skills/cm-post-deploy-canary/SKILL.archive.md +22 -0
  147. package/skills/cm-post-deploy-canary/SKILL.md +20 -12
  148. package/skills/cm-project-bootstrap/SKILL.md +11 -0
  149. package/skills/cm-qa-visual-cli/SKILL.archive.md +22 -0
  150. package/skills/cm-qa-visual-cli/SKILL.md +19 -11
  151. package/skills/cm-quality-gate/SKILL.md +38 -0
  152. package/skills/cm-retro-cli/SKILL.md +4 -0
  153. package/skills/cm-safe-deploy/SKILL.md +9 -0
  154. package/skills/cm-second-opinion-cli/SKILL.archive.md +23 -0
  155. package/skills/cm-second-opinion-cli/SKILL.md +20 -13
  156. package/skills/cm-secret-shield/SKILL.archive.md +580 -0
  157. package/skills/cm-secret-shield/SKILL.md +15 -569
  158. package/skills/cm-security-gate/SKILL.archive.md +239 -0
  159. package/skills/cm-security-gate/SKILL.md +16 -228
  160. package/skills/cm-skill-chain/SKILL.md +25 -4
  161. package/skills/cm-skill-evolution/SKILL.md +83 -0
  162. package/skills/cm-skill-health/SKILL.archive.md +83 -0
  163. package/skills/cm-skill-health/SKILL.md +26 -0
  164. package/skills/cm-skill-index/SKILL.md +19 -3
  165. package/skills/cm-skill-mastery/SKILL.archive.md +156 -0
  166. package/skills/cm-skill-mastery/SKILL.md +16 -146
  167. package/skills/cm-skill-search/SKILL.archive.md +49 -0
  168. package/skills/cm-skill-search/SKILL.md +26 -0
  169. package/skills/cm-skill-share/SKILL.archive.md +58 -0
  170. package/skills/cm-skill-share/SKILL.md +26 -0
  171. package/skills/cm-sprint-bus/SKILL.md +13 -0
  172. package/skills/cm-start/SKILL.md +17 -10
  173. package/skills/cm-tdd/SKILL.md +21 -2
  174. package/skills/cm-terminal/SKILL.md +15 -0
  175. package/skills/cm-test-gate/SKILL.archive.md +245 -0
  176. package/skills/cm-test-gate/SKILL.md +15 -234
  177. package/skills/cm-ui-preview/SKILL.archive.md +153 -0
  178. package/skills/cm-ui-preview/SKILL.md +16 -143
  179. package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +1 -1
  180. package/skills/cm-ux-master/mcp/mcp-config.json +1 -1
  181. package/skills/cm-ux-master/mcp/server.py +2 -2
  182. package/skills/profiles/design.txt +1 -1
  183. package/skills/profiles/full.txt +4 -10
  184. package/skills/profiles/growth.txt +8 -8
  185. package/skills/profiles/knowledge.txt +1 -1
  186. package/skills/profiles/top35.json +41 -0
  187. package/adapters/antigravity.js +0 -15
  188. package/adapters/claude-code.js +0 -17
  189. package/adapters/cursor.js +0 -16
  190. package/install.sh +0 -1125
  191. package/scripts/viking-demo.ts +0 -105
  192. package/skills/cm-ads-tracker/SKILL.md +0 -401
  193. package/skills/cm-ads-tracker/evals/evals.json +0 -55
  194. package/skills/cm-ads-tracker/references/gtm-architecture.md +0 -321
  195. package/skills/cm-ads-tracker/references/industry-events.md +0 -294
  196. package/skills/cm-ads-tracker/references/platforms-api.md +0 -238
  197. package/skills/cm-ads-tracker/templates/capi-payload.md +0 -79
  198. package/skills/cm-ads-tracker/templates/datalayer-push.js +0 -104
  199. package/skills/cm-ads-tracker/templates/gtm-variables.js +0 -56
  200. package/skills/cm-auto-publisher/SKILL.md +0 -81
  201. package/skills/cm-booking-calendar/SKILL.md +0 -521
  202. package/skills/cm-booking-calendar/references/industry-patterns.md +0 -527
  203. package/skills/cm-booking-calendar/templates/booking-form.css +0 -626
  204. package/skills/cm-booking-calendar/templates/booking-form.html +0 -477
  205. package/skills/cm-booking-calendar/templates/calendar-engine.js +0 -419
  206. package/skills/cm-booking-calendar/templates/calendar-export.js +0 -395
  207. package/skills/cm-booking-calendar/templates/reminder-config.js +0 -629
  208. package/skills/cm-content-factory/.content-factory-state.json +0 -132
  209. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +0 -1
  210. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +0 -1
  211. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  212. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  213. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  214. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  215. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  216. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  217. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  218. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  219. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  220. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  221. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  222. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  223. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  224. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  225. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  226. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  227. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  228. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  229. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  230. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  231. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  232. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  233. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  234. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  235. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  236. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  237. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  238. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  239. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  240. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  241. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  242. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  243. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  244. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  245. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  246. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  247. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  248. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  249. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  250. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  251. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  252. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  253. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  254. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +0 -5
  255. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  256. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  257. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  258. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  259. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  260. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  261. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  262. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  263. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  264. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  265. package/skills/cm-content-factory/.git 2/refs/heads/main +0 -1
  266. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +0 -1
  267. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +0 -76
  268. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +0 -1
  269. package/skills/cm-content-factory/AGENTS.md +0 -61
  270. package/skills/cm-content-factory/CLAUDE.md +0 -63
  271. package/skills/cm-content-factory/CURSOR.md +0 -43
  272. package/skills/cm-content-factory/Content Factory.zip +0 -0
  273. package/skills/cm-content-factory/SKILL.md +0 -416
  274. package/skills/cm-content-factory/cf +0 -313
  275. package/skills/cm-content-factory/config.schema.json +0 -397
  276. package/skills/cm-content-factory/dashboard/app.js +0 -556
  277. package/skills/cm-content-factory/dashboard/index.html +0 -397
  278. package/skills/cm-content-factory/dashboard/style.css +0 -1211
  279. package/skills/cm-content-factory/examples/01-real-estate.config.json +0 -146
  280. package/skills/cm-content-factory/examples/02-personal-finance.config.json +0 -146
  281. package/skills/cm-content-factory/examples/03-health-wellness.config.json +0 -147
  282. package/skills/cm-content-factory/examples/04-saas-software.config.json +0 -147
  283. package/skills/cm-content-factory/examples/05-legal-services.config.json +0 -147
  284. package/skills/cm-content-factory/examples/06-insurance.config.json +0 -146
  285. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +0 -146
  286. package/skills/cm-content-factory/examples/08-online-education.config.json +0 -147
  287. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +0 -147
  288. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +0 -147
  289. package/skills/cm-content-factory/examples/11-home-services.config.json +0 -146
  290. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +0 -147
  291. package/skills/cm-content-factory/examples/13-pet-care.config.json +0 -147
  292. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +0 -147
  293. package/skills/cm-content-factory/examples/15-ai-automation.config.json +0 -147
  294. package/skills/cm-content-factory/examples/16-wedding-events.config.json +0 -147
  295. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +0 -148
  296. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +0 -147
  297. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +0 -148
  298. package/skills/cm-content-factory/examples/20-solar-energy.config.json +0 -147
  299. package/skills/cm-content-factory/examples/fitness-blog.config.json +0 -116
  300. package/skills/cm-content-factory/examples/tech-blog.config.json +0 -107
  301. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +0 -72
  302. package/skills/cm-content-factory/extensions/hooks.py +0 -126
  303. package/skills/cm-content-factory/extensions/openclaw_adapter.py +0 -132
  304. package/skills/cm-content-factory/landing/docs/content/changelog.md +0 -36
  305. package/skills/cm-content-factory/landing/docs/content/deployment.md +0 -46
  306. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +0 -67
  307. package/skills/cm-content-factory/landing/docs/content/openspace.md +0 -27
  308. package/skills/cm-content-factory/landing/docs/content/openviking.md +0 -33
  309. package/skills/cm-content-factory/landing/docs/content/use-cases.md +0 -26
  310. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +0 -28
  311. package/skills/cm-content-factory/landing/docs/index.html +0 -240
  312. package/skills/cm-content-factory/landing/index.html +0 -680
  313. package/skills/cm-content-factory/landing/script.js +0 -143
  314. package/skills/cm-content-factory/landing/style.css +0 -1216
  315. package/skills/cm-content-factory/landing/translations.js +0 -508
  316. package/skills/cm-content-factory/logs/events.jsonl +0 -11
  317. package/skills/cm-content-factory/profiles/_template.profile.json +0 -231
  318. package/skills/cm-content-factory/profiles/finance.profile.json +0 -278
  319. package/skills/cm-content-factory/profiles/legal.profile.json +0 -263
  320. package/skills/cm-content-factory/profiles/medical-research.profile.json +0 -321
  321. package/skills/cm-content-factory/profiles/technology.profile.json +0 -275
  322. package/skills/cm-content-factory/scripts/agent_dispatcher.py +0 -266
  323. package/skills/cm-content-factory/scripts/audit.py +0 -106
  324. package/skills/cm-content-factory/scripts/dashboard_server.py +0 -225
  325. package/skills/cm-content-factory/scripts/deploy.py +0 -146
  326. package/skills/cm-content-factory/scripts/extract.py +0 -132
  327. package/skills/cm-content-factory/scripts/landing_generator.py +0 -459
  328. package/skills/cm-content-factory/scripts/memory.py +0 -521
  329. package/skills/cm-content-factory/scripts/monetize.py +0 -239
  330. package/skills/cm-content-factory/scripts/pipeline.py +0 -357
  331. package/skills/cm-content-factory/scripts/plan.py +0 -163
  332. package/skills/cm-content-factory/scripts/publish.py +0 -145
  333. package/skills/cm-content-factory/scripts/research.py +0 -337
  334. package/skills/cm-content-factory/scripts/scaffold.py +0 -464
  335. package/skills/cm-content-factory/scripts/scoreboard.py +0 -336
  336. package/skills/cm-content-factory/scripts/seo.py +0 -90
  337. package/skills/cm-content-factory/scripts/state_manager.py +0 -320
  338. package/skills/cm-content-factory/scripts/token_manager.py +0 -268
  339. package/skills/cm-content-factory/scripts/validate.py +0 -221
  340. package/skills/cm-content-factory/scripts/wizard.py +0 -329
  341. package/skills/cm-content-factory/scripts/write.py +0 -93
  342. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  343. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +0 -90
  344. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +0 -54
  345. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +0 -38
  346. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +0 -65
  347. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +0 -48
  348. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +0 -39
  349. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +0 -42
  350. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +0 -51
  351. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +0 -52
  352. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +0 -86
  353. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +0 -80
  354. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +0 -58
  355. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +0 -102
  356. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +0 -45
  357. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +0 -29
  358. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +0 -55
  359. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +0 -29
  360. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +0 -41
  361. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +0 -40
  362. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +0 -56
  363. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +0 -46
  364. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +0 -45
  365. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +0 -45
  366. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +0 -108
  367. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +0 -22
  368. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +0 -52
  369. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +0 -58
  370. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +0 -92
  371. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +0 -575
  372. package/skills/cm-content-factory/tests/conftest.py +0 -66
  373. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +0 -125
  374. package/skills/cm-content-factory/tests/test_memory.py +0 -128
  375. package/skills/cm-content-factory/tests/test_pipeline.py +0 -107
  376. package/skills/cm-content-factory/tests/test_research.py +0 -56
  377. package/skills/cm-content-factory/tests/test_state_manager.py +0 -131
  378. package/skills/cm-content-factory/tests/test_token_manager.py +0 -110
  379. package/skills/cm-content-factory/tests/test_wizard.py +0 -121
  380. package/skills/cm-cro-methodology/SKILL.md +0 -290
  381. package/skills/cm-cro-methodology/references/COPYWRITING.md +0 -178
  382. package/skills/cm-cro-methodology/references/OBJECTIONS.md +0 -135
  383. package/skills/cm-cro-methodology/references/PERSUASION.md +0 -158
  384. package/skills/cm-cro-methodology/references/RESEARCH.md +0 -220
  385. package/skills/cm-cro-methodology/references/funnel-analysis.md +0 -365
  386. package/skills/cm-cro-methodology/references/testing-methodology.md +0 -330
  387. package/skills/cm-google-form/SKILL.md +0 -266
  388. package/skills/cm-google-form/templates/apps-script.js +0 -55
  389. package/skills/cm-google-form/templates/form-markup.html +0 -110
  390. package/skills/cm-google-form/templates/form-submit.js +0 -201
  391. package/skills/cm-google-form/templates/toast.css +0 -152
  392. package/skills/cm-growth-hacking/SKILL.md +0 -282
  393. package/skills/cm-growth-hacking/bottom-sheet-engine.md +0 -261
  394. package/skills/cm-growth-hacking/calendar-integration.md +0 -264
  395. package/skills/cm-growth-hacking/references/engagement-patterns.md +0 -346
  396. package/skills/cm-growth-hacking/templates/bottom-sheet.css +0 -528
  397. package/skills/cm-growth-hacking/templates/bottom-sheet.js +0 -269
  398. package/skills/cm-growth-hacking/templates/calendar-cta.js +0 -213
  399. package/skills/cm-growth-hacking/templates/tracking-events.js +0 -211
  400. package/skills/cm-growth-hacking/templates/trigger-manager.js +0 -254
  401. package/skills/cm-growth-hacking/tracking-events.md +0 -246
  402. package/skills/cm-growth-hacking/trigger-system.md +0 -342
  403. package/skills/cm-jtbd/SKILL.md +0 -98
  404. package/skills/cm-notebooklm/SKILL.md +0 -156
  405. package/skills/cm-notebooklm/references/command_reference.md +0 -94
  406. package/skills/cm-notebooklm/references/workflows.md +0 -60
  407. package/skills/cm-notebooklm/resources/knowledge_sources.md +0 -106
  408. package/skills/cm-notebooklm/scripts/brain-sync.sh +0 -453
  409. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +0 -101
  410. package/skills/cm-readit/SKILL.md +0 -289
  411. package/skills/cm-readit/audio-player.md +0 -206
  412. package/skills/cm-readit/examples/blog-reader.js +0 -352
  413. package/skills/cm-readit/examples/voice-cro.js +0 -390
  414. package/skills/cm-readit/tts-engine.md +0 -262
  415. package/skills/cm-readit/ui-patterns.md +0 -362
  416. package/skills/cm-readit/voice-cro.md +0 -223
@@ -0,0 +1,88 @@
1
+ #!/bin/bash
2
+ # update-changelog.sh — Auto-update CHANGELOG.md from git commits
3
+ #
4
+ # Usage:
5
+ # bash scripts/update-changelog.sh # Update CHANGELOG.md
6
+ # bash scripts/update-changelog.sh --dry-run # Preview without writing
7
+ #
8
+ # Follows conventional commits format:
9
+ # feat: → 🚀 Features
10
+ # fix: → 🐛 Bug Fixes
11
+ # security: → 🔒 Security
12
+ # improve/refactor/perf: → 🚀 Improvements
13
+
14
+ set -e
15
+
16
+ REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
17
+ CHANGELOG="$REPO_ROOT/CHANGELOG.md"
18
+ DRY_RUN=false
19
+
20
+ if [[ "$1" == "--dry-run" ]]; then
21
+ DRY_RUN=true
22
+ fi
23
+
24
+ # Get last tag
25
+ LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
26
+
27
+ # Get commits since last tag
28
+ if [ -z "$LAST_TAG" ]; then
29
+ COMMITS=$(git log --oneline -20 --no-merges)
30
+ else
31
+ COMMITS=$(git log --oneline "$LAST_TAG"..HEAD --no-merges)
32
+ fi
33
+
34
+ if [ -z "$COMMITS" ]; then
35
+ echo "No commits found since last tag."
36
+ exit 0
37
+ fi
38
+
39
+ # Categorize commits
40
+ FEATURES=$(echo "$COMMITS" | grep -iE "^[a-f0-9]+ feat:" | sed 's/^[a-f0-9]* /- /' || true)
41
+ FIXES=$(echo "$COMMITS" | grep -iE "^[a-f0-9]+ fix:" | sed 's/^[a-f0-9]* /- /' || true)
42
+ SECURITY=$(echo "$COMMITS" | grep -iE "^[a-f0-9]+ (security|sec):" | sed 's/^[a-f0-9]* /- /' || true)
43
+ IMPROVEMENTS=$(echo "$COMMITS" | grep -iE "^[a-f0-9]+ (improve|refactor|perf):" | sed 's/^[a-f0-9]* /- /' || true)
44
+ OTHER=$(echo "$COMMITS" | grep -ivE "^[a-f0-9]+ (feat|fix|security|sec|improve|refactor|perf):" | sed 's/^[a-f0-9]* /- /' || true)
45
+
46
+ # Generate changelog entry
47
+ DATE=$(date +%Y-%m-%d)
48
+ VERSION=$(node -p "require('$REPO_ROOT/package.json').version" 2>/dev/null || echo "unreleased")
49
+
50
+ ENTRY="## [$VERSION] - $DATE\n\n"
51
+
52
+ if [ -n "$FEATURES" ]; then
53
+ ENTRY+="### 🚀 Features\n$FEATURES\n\n"
54
+ fi
55
+
56
+ if [ -n "$FIXES" ]; then
57
+ ENTRY+="### 🐛 Bug Fixes\n$FIXES\n\n"
58
+ fi
59
+
60
+ if [ -n "$SECURITY" ]; then
61
+ ENTRY+="### 🔒 Security\n$SECURITY\n\n"
62
+ fi
63
+
64
+ if [ -n "$IMPROVEMENTS" ]; then
65
+ ENTRY+="### 🚀 Improvements\n$IMPROVEMENTS\n\n"
66
+ fi
67
+
68
+ if [ -n "$OTHER" ]; then
69
+ ENTRY+="### 📦 Other\n$OTHER\n\n"
70
+ fi
71
+
72
+ if [ "$DRY_RUN" = true ]; then
73
+ echo "=== DRY RUN — would add to CHANGELOG.md ==="
74
+ echo -e "$ENTRY"
75
+ exit 0
76
+ fi
77
+
78
+ # Prepend to CHANGELOG.md
79
+ if [ -f "$CHANGELOG" ]; then
80
+ TEMP=$(mktemp)
81
+ echo -e "$ENTRY" > "$TEMP"
82
+ cat "$CHANGELOG" >> "$TEMP"
83
+ mv "$TEMP" "$CHANGELOG"
84
+ else
85
+ echo -e "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nCategories: 🚀 **Improvements** | 🐛 **Bug Fixes** | 🔒 **Security**\n\n---\n\n$ENTRY" > "$CHANGELOG"
86
+ fi
87
+
88
+ echo "✅ CHANGELOG.md updated (version: $VERSION)"
@@ -1,6 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Ensures each skill folder under skills/ has SKILL.md with a title line.
3
+ * Validates skills under skills/.
4
+ *
5
+ * Always-required (errors, fail build):
6
+ * - SKILL.md exists with H1 title and YAML frontmatter (`name`, `description`)
7
+ *
8
+ * Opt-in v2 rules (errors only when frontmatter `compressed: true`):
9
+ * - `token_budget` integer in [100, 6000]
10
+ * - `## TL;DR` section present, ≤8 non-empty lines (≤5 recommended)
11
+ * - SKILL.md ≤200 lines (warning only)
12
+ *
13
+ * Skills with `deprecated: true` are exempt from v2 rules.
14
+ *
15
+ * Migration: as skills are refactored to the new template
16
+ * (skills/_shared/SKILL_TEMPLATE.md), set `compressed: true` to enforce
17
+ * v2 quality. Once all core skills are migrated, the opt-in becomes default.
4
18
  */
5
19
  import fs from 'fs';
6
20
  import path from 'path';
@@ -9,32 +23,115 @@ import { fileURLToPath } from 'url';
9
23
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
24
  const root = path.join(__dirname, '..', 'skills');
11
25
 
12
- /** Directories under skills/ that are not standalone skills (assets, packs). */
13
26
  const SKIP_DIRS = new Set(['profiles', 'extensions', 'scripts']);
14
27
 
15
28
  let errors = 0;
29
+ let warnings = 0;
30
+
31
+ function parseFrontmatter(text) {
32
+ const m = text.match(/^---\n([\s\S]*?)\n---\n/);
33
+ if (!m) return null;
34
+ const out = {};
35
+ for (const line of m[1].split('\n')) {
36
+ const mm = line.match(/^([A-Za-z_][A-Za-z0-9_-]*)\s*:\s*(.*)$/);
37
+ if (!mm) continue;
38
+ let v = mm[2].trim();
39
+ if (v.startsWith('"') && v.endsWith('"')) v = v.slice(1, -1);
40
+ if (v === 'true') v = true;
41
+ else if (v === 'false') v = false;
42
+ else if (/^-?\d+$/.test(v)) v = parseInt(v, 10);
43
+ out[mm[1]] = v;
44
+ }
45
+ return out;
46
+ }
47
+
48
+ function extractTldr(text) {
49
+ const m = text.match(/^##\s+TL;DR\s*\n([\s\S]*?)(?=\n##\s|$)/m);
50
+ if (!m) return null;
51
+ return m[1].split('\n').filter((l) => l.trim().length > 0);
52
+ }
53
+
16
54
  if (!fs.existsSync(root)) {
17
55
  console.error('No skills/ directory');
18
56
  process.exit(1);
19
57
  }
20
58
 
59
+ let migratedCount = 0;
60
+ let totalCount = 0;
61
+
21
62
  for (const name of fs.readdirSync(root, { withFileTypes: true })) {
22
63
  if (!name.isDirectory()) continue;
23
64
  if (name.name.startsWith('_') || name.name.startsWith('.')) continue;
24
65
  if (SKIP_DIRS.has(name.name)) continue;
66
+
25
67
  const md = path.join(root, name.name, 'SKILL.md');
26
68
  if (!fs.existsSync(md)) {
27
- console.error(`Missing SKILL.md: ${name.name}`);
69
+ console.error(`✗ ${name.name}: missing SKILL.md`);
28
70
  errors++;
29
71
  continue;
30
72
  }
73
+ totalCount++;
74
+
31
75
  const text = fs.readFileSync(md, 'utf8');
76
+ const fm = parseFrontmatter(text);
77
+
32
78
  if (!/^#\s+\S/m.test(text)) {
33
- console.error(`SKILL.md missing H1 title: ${name.name}`);
79
+ console.error(`✗ ${name.name}: missing H1 title`);
80
+ errors++;
81
+ }
82
+
83
+ if (!fm) {
84
+ console.error(`✗ ${name.name}: missing YAML frontmatter`);
85
+ errors++;
86
+ continue;
87
+ }
88
+ if (!fm.name) {
89
+ console.error(`✗ ${name.name}: frontmatter missing 'name'`);
90
+ errors++;
91
+ }
92
+ if (!fm.description) {
93
+ console.error(`✗ ${name.name}: frontmatter missing 'description'`);
34
94
  errors++;
35
95
  }
96
+
97
+ const isDeprecated = fm.deprecated === true;
98
+ const isCompressed = fm.compressed === true;
99
+
100
+ if (isCompressed && !isDeprecated) {
101
+ migratedCount++;
102
+
103
+ if (typeof fm.token_budget !== 'number') {
104
+ console.error(`✗ ${name.name}: compressed skill missing 'token_budget' (number)`);
105
+ errors++;
106
+ } else if (fm.token_budget < 100 || fm.token_budget > 6000) {
107
+ console.error(`✗ ${name.name}: token_budget ${fm.token_budget} out of range [100, 6000]`);
108
+ errors++;
109
+ }
110
+
111
+ const tldr = extractTldr(text);
112
+ if (!tldr) {
113
+ console.error(`✗ ${name.name}: compressed skill missing '## TL;DR' section`);
114
+ errors++;
115
+ } else {
116
+ if (tldr.length > 8) {
117
+ console.error(`✗ ${name.name}: TL;DR has ${tldr.length} non-empty lines (max 8)`);
118
+ errors++;
119
+ } else if (tldr.length > 5) {
120
+ console.warn(`⚠ ${name.name}: TL;DR has ${tldr.length} non-empty lines (recommend ≤5)`);
121
+ warnings++;
122
+ }
123
+ }
124
+
125
+ const totalLines = text.split('\n').length;
126
+ if (totalLines > 200) {
127
+ console.warn(`⚠ ${name.name}: SKILL.md is ${totalLines} lines (recommend ≤200)`);
128
+ warnings++;
129
+ }
130
+ }
36
131
  }
37
132
 
133
+ console.log(`validate-skills: ${migratedCount}/${totalCount} skills migrated to v2 (compressed:true)`);
134
+ if (warnings) console.warn(`validate-skills: ${warnings} warning(s)`);
38
135
  if (errors) {
39
136
  console.error(`validate-skills: ${errors} error(s)`);
40
137
  process.exit(1);
package/skills/CLAUDE.md CHANGED
@@ -129,11 +129,6 @@ The YAML frontmatter `description` field is critical for skill discovery: includ
129
129
  /plugin install systems-architecture@wondelai-skills # DDIA, System Design, Clean Architecture, Release It!, High Performance Browser Networking
130
130
  ```
131
131
 
132
- ### Via skills.sh
133
- ```bash
134
- npx skills add wondelai/skills # All skills
135
- npx skills add wondelai/skills/{skill-name} # Individual skill
136
- ```
137
132
 
138
133
  ## Versioning Policy
139
134
 
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: cm-<name>
3
+ description: "<one-line trigger sentence: when to use this skill>"
4
+ token_budget: 1500
5
+ compressed: true
6
+ deprecated: false
7
+ ---
8
+
9
+ # cm-<name> — <short title>
10
+
11
+ ## TL;DR
12
+ - **Use when**: <trigger condition, 1 line>
13
+ - **Output**: <what artifact/state changes>
14
+ - **Handoff**: reads `.cm/handoff/<prev>.json` (if any), writes `.cm/handoff/<this>.json` (if any)
15
+ - **Chain**: typically follows `cm-<prev>`, precedes `cm-<next>`
16
+ - **Budget**: 1500 tokens (loaded full only when needed)
17
+
18
+ ## When to Use
19
+ <2-4 bullets describing concrete situations. Skip if TL;DR is sufficient.>
20
+
21
+ ## Adaptive Depth
22
+
23
+ Read `.cm/project-tier.md` (written by `cm tier classify`) and pick a rendering depth:
24
+
25
+ - **LITE / STANDARD** → stop after TL;DR. Skip "Full Protocol" unless the task explicitly requires deep instructions.
26
+ - **PROFESSIONAL / ENTERPRISE** → load the full protocol below.
27
+
28
+ If the tier file is absent, default to STANDARD.
29
+
30
+ ## Full Protocol
31
+ <Detailed instructions, examples, rules. Agent loads this only when TL;DR is insufficient or tier ≥ PROFESSIONAL.>
32
+
33
+ ### Step 1: <name>
34
+ <...>
35
+
36
+ ### Step 2: <name>
37
+ <...>
38
+
39
+ ## Integration
40
+
41
+ | After this skill... | Use skill |
42
+ |---|---|
43
+ | <situation> | `cm-<next>` |
44
+
45
+ ## Persona Dispatch (optional)
46
+
47
+ For complex tasks, dispatch via persona subagents in `agents/`:
48
+
49
+ | Need | Persona |
50
+ |------|---------|
51
+ | Clarify scope/intent | `pm` |
52
+ | Design / trade-offs | `architect` |
53
+ | Write code | `engineer` |
54
+ | Independent review | `reviewer` |
55
+ | Threat model / scan | `security` |
56
+
57
+ ## Anti-Patterns
58
+ - ❌ <thing not to do>
59
+ - ❌ <thing not to do>
60
+
61
+ ## The Bottom Line
62
+ **<one-sentence rule>**
@@ -35,11 +35,6 @@ Read .cm/skeleton-index.md (~500 tokens) — modules, entry points, config fi
35
35
  Query: cm_query(scope="learnings", query="{current module or error type}", limit=5)
36
36
  OR read .cm/memory/learnings.json filtered to scope == "global" | "module:X"
37
37
 
38
- # OpenViking backend (if storage.backend: viking in .cm/config.yaml):
39
- Query: cm_query(query="{current module or error type}", limit=5)
40
- → OpenViking uses VECTOR SEMANTIC SEARCH — no need for exact keyword match.
41
- "i18n locale update" will also match "translation missing" and "locale fallback"
42
-
43
38
  Rules:
44
39
  NEVER load status = "invalidated" (proven wrong)
45
40
  CAUTION status = "corrected" (verify before applying)
@@ -64,9 +59,8 @@ cm continuity budget (or: loadBudget + checkBudget in code)
64
59
  > L0 indexes + context bus + scope filter make this possible.
65
60
  > Only escalate to L2 when L0/L1 explicitly flag the need.
66
61
  >
67
- > **Viking bonus:** With OpenViking backend, L0/L1 indexes are auto-generated by the engine —
68
- > no manual `cm continuity index` needed. Vector search also improves Step 3 recall by ~40%.
69
- > Switch: set `storage.backend: viking` in `.cm/config.yaml`.
62
+ > **Legacy note:** Some older projects may still keep `storage.backend: viking` in config.
63
+ > CodyMaster now routes that back to SQLite, so do not design workflows around a separate Viking backend.
70
64
 
71
65
  ---
72
66
 
@@ -15,9 +15,26 @@ import subprocess
15
15
  import threading
16
16
  from pathlib import Path
17
17
 
18
- # Add cm-content-factory to sys.path to reuse the dispatcher and state manager
18
+ # Reuse dispatcher and state manager from the content-factory plugin.
19
+ # After the 2026-05-09 plugin split, content-factory lives in a separate plugin.
20
+ # Resolution order: env override → sibling extracted-plugins (dev) → installed plugin paths.
19
21
  SKILLS_DIR = Path(__file__).resolve().parent.parent.parent
20
- CF_SCRIPTS = SKILLS_DIR / "cm-content-factory" / "scripts"
22
+ REPO_ROOT = SKILLS_DIR.parent
23
+
24
+ def _find_cf_scripts() -> Path:
25
+ env = os.environ.get("CONTENT_FACTORY_SCRIPTS")
26
+ if env and Path(env).exists():
27
+ return Path(env)
28
+ candidates = [
29
+ REPO_ROOT / "extracted-plugins" / "content-factory" / "skills" / "content-factory" / "scripts",
30
+ Path.home() / ".claude" / "plugins" / "cache" / "content-factory" / "skills" / "content-factory" / "scripts",
31
+ ]
32
+ for c in candidates:
33
+ if c.exists():
34
+ return c
35
+ return SKILLS_DIR / "cm-content-factory" / "scripts" # legacy fallback
36
+
37
+ CF_SCRIPTS = _find_cf_scripts()
21
38
  sys.path.append(str(CF_SCRIPTS))
22
39
 
23
40
  try:
@@ -1,10 +1,19 @@
1
1
  ---
2
2
  name: cm-brainstorm-idea
3
3
  description: "Strategic analysis gate for existing products — multi-dimensional evaluation (tech, product, design, business) using Design Thinking + 9 Windows (TRIZ) + Double Diamond. Outputs 2-3 qualified options with recommendations. Use BEFORE cm-planning for complex initiatives and enhancements on existing codebases."
4
+ token_budget: 1500
5
+ compressed: true
6
+ deprecated: false
4
7
  ---
5
8
 
6
9
  # Brainstorm Idea — Strategic Analysis Gate
7
10
 
11
+ ## TL;DR
12
+ - **Use before** cm-planning for complex/ambiguous initiatives
13
+ - **Frameworks**: Design Thinking + 9 Windows (TRIZ) + Double Diamond
14
+ - **Output**: 2-3 qualified options + recommendation
15
+ - **Writes**: handoff/intent.json
16
+
8
17
  > **Understand deeply. Evaluate multi-dimensionally. Propose qualified options. Then — and only then — plan.**
9
18
  > This skill is the BRIDGE between an existing product and its next evolution.
10
19
 
@@ -1,5 +1,11 @@
1
+ ---
2
+ name: cm-browse
3
+ description: "Use when you need visual QA, screenshots, or post-deploy smoke testing through a real browser with Playwright."
4
+ ---
1
5
  # cm-browse — local Playwright daemon
2
6
 
7
+ > **Full runbook:** [docs/browse-daemon.md](../../docs/browse-daemon.md) (install Chromium, token, troubleshooting).
8
+
3
9
  ## When to use
4
10
 
5
11
  - Visual QA, screenshots, post-deploy smoke through a **real browser** (not only Stitch/Pencil).
@@ -1,10 +1,19 @@
1
1
  ---
2
2
  name: cm-clean-code
3
3
  description: "Code hygiene gate — detect and eliminate dead code, duplicates, naming mess, and code smells. TRIZ-powered. Run after features, before PRs, during debt sprints."
4
+ token_budget: 1200
5
+ compressed: true
6
+ deprecated: false
4
7
  ---
5
8
 
6
9
  # Clean Code — Code Hygiene Gate
7
10
 
11
+ ## TL;DR
12
+ - **Use after** a feature lands, before PR review
13
+ - **Detects**: dead code, duplicates, naming smells, dependency drift
14
+ - **Powered by** TRIZ contradictions and Boy Scout rule
15
+ - **Next**: cm-code-review
16
+
8
17
  > **Code that works is not enough. Code must be CLEAN.**
9
18
  > Inspired by Clean Code (Robert C. Martin) + Refactoring (Martin Fowler) + TRIZ.
10
19
 
@@ -295,6 +304,17 @@ cm-execution → cm-clean-code → cm-code-review → cm-quality-gate → cm-saf
295
304
  (build) (hygiene) (review) (verify) (ship)
296
305
  ```
297
306
 
307
+ ## Karpathy Discipline — Simplicity First
308
+
309
+ Combat over-engineering at the source, not after the fact:
310
+ - **No features beyond what was asked.** No "while I'm here" additions.
311
+ - **No abstractions for single-use code.** Three similar lines beats a premature interface.
312
+ - **No flexibility/configurability that wasn't requested.** YAGNI is the default.
313
+ - **No error handling for impossible scenarios.** Trust internal callers; validate at boundaries.
314
+ - **200 lines that should be 50 → rewrite, don't ship.**
315
+
316
+ **Senior-engineer test:** "Would a senior call this overcomplicated?" If yes, simplify before commit.
317
+
298
318
  ## The Bottom Line
299
319
 
300
320
  **Clean code = investment. Dirty code = debt. Pay as you go, or pay with interest later.**
@@ -1,10 +1,20 @@
1
1
  ---
2
2
  name: cm-code-review
3
3
  description: "Full review lifecycle — request reviews, handle feedback with technical rigor, and complete branch integration. Use when completing tasks, receiving feedback, or finishing feature branches."
4
+ token_budget: 1500
5
+ compressed: true
6
+ deprecated: false
4
7
  ---
5
8
 
6
9
  # Code Review — Request + Receive + Complete
7
10
 
11
+ ## TL;DR
12
+ - **Use when** task complete, before/during PR review
13
+ - **Pre-review**: lint, tests, diff scan, blast radius
14
+ - **Reads**: handoff/exec.json — **Writes**: handoff/review.json
15
+ - **Severity**: info | warn | error | critical
16
+ - **Next**: cm-quality-gate
17
+
8
18
  > **Full review lifecycle in one skill:** Request → Receive → Integrate.
9
19
 
10
20
  ## Part A: Requesting Code Review
@@ -146,6 +156,17 @@ After processing review feedback, ALWAYS update `.cm/CONTINUITY.md`:
146
156
  | `cm-identity-guard` | Before git push |
147
157
  | `cm-git-worktrees` | Cleanup worktree after completion |
148
158
 
159
+ ## Karpathy Discipline — Review Checklist
160
+
161
+ Block any PR/diff that violates these regardless of green tests:
162
+ - **Scope creep:** changed line that doesn't trace to the task → request removal.
163
+ - **Bloat:** new abstraction with one caller, premature config, error paths for impossible inputs → request simplification.
164
+ - **Side-effect edits:** unrelated formatting, renamed identifiers, "improved" comments not in scope → revert.
165
+ - **Hidden assumptions:** logic that depends on an unstated invariant → require it surfaced (test or doc) or rejected.
166
+ - **Weak goals:** PR description says "make it work" with no verifiable criterion → send back to planning.
167
+
168
+ **Review heuristic:** if you can't answer "what task forced this line?" for every changed line, the diff is too wide.
169
+
149
170
  ## The Bottom Line
150
171
 
151
172
  **Review early. Verify feedback. Ship with evidence, not hope.**
@@ -1,10 +1,19 @@
1
1
  ---
2
2
  name: cm-codeintell
3
3
  description: "Unified code intelligence — Skeleton Index (zero-dep, <4s) + AST knowledge graph (CodeGraph) + architecture diagrams (Mermaid) + smart context builder. Pre-indexes code structure so AI agents understand any codebase instantly. 95% token compression for onboarding. 30% fewer tokens for deep analysis."
4
+ token_budget: 1500
5
+ compressed: true
6
+ deprecated: false
4
7
  ---
5
8
 
6
9
  # Code Intelligence — Structural Understanding for AI Agents
7
10
 
11
+ ## TL;DR
12
+ - **Use to** index codebase for fast structural understanding
13
+ - **Outputs**: skeleton index, AST graph, Mermaid diagrams
14
+ - **Token saving**: ~95% for onboarding, ~30% for deep analysis
15
+ - **Next**: cm-planning or cm-debugging
16
+
8
17
  > **Stop scanning. Start querying.** Skeleton Index (<4s, zero deps) + AST graph + architecture diagrams = instant code understanding.
9
18
  > Inspired by [CodeGraph](https://github.com/colbymchenry/codegraph) + [GitDiagram](https://github.com/ahmedkhaleel2004/gitdiagram).
10
19
  > TRIZ-optimized: 10 inventive principles applied.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: cm-conductor-worktrees
3
+ description: "Use when you need to manage parallel git worktrees for isolated feature development."
4
+ ---
5
+ # cm-conductor-worktrees — parallel worktrees
6
+
7
+ ## CLI
8
+
9
+ ```bash
10
+ cm conductor add --at ../my-feature-wt --branch feat/my-feature --base main
11
+ cm conductor list
12
+ ```
13
+
14
+ ## Practice
15
+
16
+ - One **branch + worktree** per parallel agent/session.
17
+ - Reconcile with `git merge` / PR; avoid two agents editing the same files without coordination.
18
+
19
+ ## ELI16 (3+ sessions)
20
+
21
+ When running **three or more** parallel sessions, re-ground each session with:
22
+
23
+ - Current branch name + worktree path.
24
+ - Last artifact from `cm sprint status` or `.cm/context-bus.json`.
25
+
26
+ ## Future
27
+
28
+ Dashboard UI for active sprints is **not** in CLI yet — use `cm dashboard` / Hamster UI where available.
@@ -1,24 +1,26 @@
1
- # cm-conductor-worktrees — parallel worktrees
1
+ ---
2
+ name: cm-conductor-worktrees
3
+ description: "[Deprecated] parallel execution mode. Use `cm-execution` instead."
4
+ deprecated: true
5
+ merged_into: cm-execution
6
+ ---
2
7
 
3
- ## CLI
8
+ # cm-conductor-worktrees — Deprecated
4
9
 
5
- ```bash
6
- cm conductor add --at ../my-feature-wt --branch feat/my-feature --base main
7
- cm conductor list
8
- ```
9
-
10
- ## Practice
11
-
12
- - One **branch + worktree** per parallel agent/session.
13
- - Reconcile with `git merge` / PR; avoid two agents editing the same files without coordination.
10
+ > ⚠️ This skill is deprecated as of CodyMaster v6.0.0 and will be removed in v6.1.0.
11
+ >
12
+ > **Use `cm-execution` instead.** parallel execution mode.
13
+ >
14
+ > See [docs/migration-v2.md](../../docs/migration-v2.md) for the full mapping.
14
15
 
15
- ## ELI16 (3+ sessions)
16
+ The original content is preserved at [SKILL.archive.md](SKILL.archive.md) for reference.
16
17
 
17
- When running **three or more** parallel sessions, re-ground each session with:
18
+ ## Migration
18
19
 
19
- - Current branch name + worktree path.
20
- - Last artifact from `cm sprint status` or `.cm/context-bus.json`.
21
-
22
- ## Future
20
+ ```bash
21
+ # Old: cm <use this skill>
22
+ # New (v6.0+): cm execution <equivalent action>
23
+ ```
23
24
 
24
- Dashboard UI for active sprints is **not** in CLI yet use `cm dashboard` / Hamster UI where available.
25
+ If you depend on a capability that didn't carry over, please file an issue:
26
+ https://github.com/tody-agent/codymaster/issues