codymaster 7.0.1 → 7.0.3

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 (341) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +117 -2
  3. package/dist/agent/codex.js +73 -21
  4. package/dist/agent-dispatch.js +63 -48
  5. package/dist/cli/commands/brain.js +18 -0
  6. package/dist/cli/commands/design-studio.js +1 -1
  7. package/dist/cm-suggest.js +3 -3
  8. package/dist/dashboard-project-summary.js +9 -0
  9. package/dist/dashboard.js +11 -5
  10. package/dist/execution-analyzer.js +9 -1
  11. package/dist/judge.js +16 -15
  12. package/dist/mcp-context-server.js +45 -23
  13. package/dist/mcp-skills-tools.js +2 -2
  14. package/dist/skill-chain.js +26 -3
  15. package/dist/skill-token-report.js +105 -0
  16. package/dist/sprint-pipeline.js +3 -3
  17. package/dist/ui/onboarding.js +3 -4
  18. package/dist/utils/design-taste.js +1 -1
  19. package/dist/utils/output-compress.js +8 -0
  20. package/package.json +3 -2
  21. package/public/dashboard/app.js +40 -13
  22. package/public/dashboard/index.html +190 -5
  23. package/public/dashboard/style.css +1 -1
  24. package/scripts/build-skills.mjs +36 -2
  25. package/scripts/mcp-bridge.js +41 -24
  26. package/scripts/pack-plugin.mjs +206 -0
  27. package/skills/cm-ads-tracker/SKILL.md +401 -0
  28. package/skills/cm-ads-tracker/evals/evals.json +55 -0
  29. package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
  30. package/skills/cm-ads-tracker/references/industry-events.md +294 -0
  31. package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
  32. package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
  33. package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
  34. package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
  35. package/skills/cm-auto-publisher/SKILL.md +81 -0
  36. package/skills/cm-booking-calendar/SKILL.md +521 -0
  37. package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
  38. package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
  39. package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
  40. package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
  41. package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
  42. package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
  43. package/skills/cm-brainstorm-idea/SKILL.md +5 -5
  44. package/skills/cm-code-review/SKILL.md +2 -2
  45. package/skills/cm-codeintell/SKILL.md +47 -580
  46. package/skills/cm-codeintell/references/integration-workflows.md +23 -0
  47. package/skills/cm-codeintell/references/layer-0-skeleton.md +54 -0
  48. package/skills/cm-codeintell/references/layer-1-codegraph.md +58 -0
  49. package/skills/cm-codeintell/references/layer-2-architecture.md +31 -0
  50. package/skills/cm-codeintell/references/layer-3-context-builder.md +32 -0
  51. package/skills/cm-content-factory/.content-factory-state.json +132 -0
  52. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
  53. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
  54. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  55. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  56. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  57. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  58. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  59. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  60. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  61. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  62. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  63. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  64. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  65. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  66. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  67. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  68. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  69. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  70. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  71. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  72. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  73. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  74. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  75. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  76. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  77. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  78. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  79. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  80. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  81. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  82. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  83. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  84. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  85. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  86. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  87. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  88. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  89. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  90. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  91. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  92. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  93. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  94. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  95. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  96. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  97. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
  98. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  99. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  100. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  101. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  102. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  103. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  104. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  105. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  106. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  107. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  108. package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
  109. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
  110. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
  111. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
  112. package/skills/cm-content-factory/AGENTS.md +61 -0
  113. package/skills/cm-content-factory/CLAUDE.md +63 -0
  114. package/skills/cm-content-factory/CURSOR.md +43 -0
  115. package/skills/cm-content-factory/Content Factory.zip +0 -0
  116. package/skills/cm-content-factory/SKILL.md +416 -0
  117. package/skills/cm-content-factory/cf +313 -0
  118. package/skills/cm-content-factory/config.schema.json +397 -0
  119. package/skills/cm-content-factory/dashboard/app.js +556 -0
  120. package/skills/cm-content-factory/dashboard/index.html +397 -0
  121. package/skills/cm-content-factory/dashboard/style.css +1211 -0
  122. package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
  123. package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
  124. package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
  125. package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
  126. package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
  127. package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
  128. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
  129. package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
  130. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
  131. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
  132. package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
  133. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
  134. package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
  135. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
  136. package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
  137. package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
  138. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
  139. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
  140. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
  141. package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
  142. package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
  143. package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
  144. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
  145. package/skills/cm-content-factory/extensions/hooks.py +126 -0
  146. package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
  147. package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
  148. package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
  149. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
  150. package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
  151. package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
  152. package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
  153. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
  154. package/skills/cm-content-factory/landing/docs/index.html +240 -0
  155. package/skills/cm-content-factory/landing/index.html +680 -0
  156. package/skills/cm-content-factory/landing/script.js +143 -0
  157. package/skills/cm-content-factory/landing/style.css +1216 -0
  158. package/skills/cm-content-factory/landing/translations.js +508 -0
  159. package/skills/cm-content-factory/logs/events.jsonl +11 -0
  160. package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
  161. package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
  162. package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
  163. package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
  164. package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
  165. package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
  166. package/skills/cm-content-factory/scripts/audit.py +106 -0
  167. package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
  168. package/skills/cm-content-factory/scripts/deploy.py +146 -0
  169. package/skills/cm-content-factory/scripts/extract.py +132 -0
  170. package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
  171. package/skills/cm-content-factory/scripts/memory.py +521 -0
  172. package/skills/cm-content-factory/scripts/monetize.py +239 -0
  173. package/skills/cm-content-factory/scripts/pipeline.py +357 -0
  174. package/skills/cm-content-factory/scripts/plan.py +163 -0
  175. package/skills/cm-content-factory/scripts/publish.py +145 -0
  176. package/skills/cm-content-factory/scripts/research.py +337 -0
  177. package/skills/cm-content-factory/scripts/scaffold.py +464 -0
  178. package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
  179. package/skills/cm-content-factory/scripts/seo.py +90 -0
  180. package/skills/cm-content-factory/scripts/state_manager.py +320 -0
  181. package/skills/cm-content-factory/scripts/token_manager.py +268 -0
  182. package/skills/cm-content-factory/scripts/validate.py +221 -0
  183. package/skills/cm-content-factory/scripts/wizard.py +329 -0
  184. package/skills/cm-content-factory/scripts/write.py +93 -0
  185. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  186. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
  187. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
  188. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
  189. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
  190. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
  191. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
  192. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
  193. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
  194. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
  195. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
  196. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
  197. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
  198. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
  199. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
  200. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
  201. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
  202. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
  203. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
  204. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
  205. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
  206. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
  207. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
  208. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
  209. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
  210. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
  211. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
  212. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
  213. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
  214. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
  215. package/skills/cm-content-factory/tests/conftest.py +66 -0
  216. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
  217. package/skills/cm-content-factory/tests/test_memory.py +128 -0
  218. package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
  219. package/skills/cm-content-factory/tests/test_research.py +56 -0
  220. package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
  221. package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
  222. package/skills/cm-content-factory/tests/test_wizard.py +121 -0
  223. package/skills/cm-continuity/SKILL.md +49 -480
  224. package/skills/cm-continuity/references/cm-uri-scheme.md +23 -0
  225. package/skills/cm-continuity/references/continuity-template.md +48 -0
  226. package/skills/cm-continuity/references/mcp-context-server.md +27 -0
  227. package/skills/cm-continuity/references/memory-architecture.md +26 -0
  228. package/skills/cm-continuity/references/memory-audit.md +18 -0
  229. package/skills/cm-continuity/references/session-protocol.md +31 -0
  230. package/skills/cm-continuity/references/storage-formats.md +20 -0
  231. package/skills/cm-cro-methodology/SKILL.md +290 -0
  232. package/skills/cm-cro-methodology/references/COPYWRITING.md +178 -0
  233. package/skills/cm-cro-methodology/references/OBJECTIONS.md +135 -0
  234. package/skills/cm-cro-methodology/references/PERSUASION.md +158 -0
  235. package/skills/cm-cro-methodology/references/RESEARCH.md +220 -0
  236. package/skills/cm-cro-methodology/references/funnel-analysis.md +365 -0
  237. package/skills/cm-cro-methodology/references/testing-methodology.md +330 -0
  238. package/skills/cm-design-system/SKILL.md +5 -6
  239. package/skills/cm-execution/SKILL.md +61 -379
  240. package/skills/cm-execution/references/mode-a-batch.md +28 -0
  241. package/skills/cm-execution/references/mode-b-subagent.md +46 -0
  242. package/skills/cm-execution/references/mode-c-parallel.md +39 -0
  243. package/skills/cm-execution/references/mode-d-rarv.md +62 -0
  244. package/skills/cm-execution/references/mode-e-triz-parallel.md +53 -0
  245. package/skills/cm-execution/references/mode-f-party.md +61 -0
  246. package/skills/cm-execution/references/persona-dispatch.md +22 -0
  247. package/skills/cm-execution/references/security-rules.md +47 -0
  248. package/skills/cm-google-form/SKILL.md +266 -0
  249. package/skills/cm-google-form/templates/apps-script.js +55 -0
  250. package/skills/cm-google-form/templates/form-markup.html +110 -0
  251. package/skills/cm-google-form/templates/form-submit.js +201 -0
  252. package/skills/cm-google-form/templates/toast.css +152 -0
  253. package/skills/cm-growth-hacking/SKILL.md +282 -0
  254. package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
  255. package/skills/cm-growth-hacking/calendar-integration.md +264 -0
  256. package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
  257. package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
  258. package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
  259. package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
  260. package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
  261. package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
  262. package/skills/cm-growth-hacking/tracking-events.md +246 -0
  263. package/skills/cm-growth-hacking/trigger-system.md +342 -0
  264. package/skills/cm-how-it-work/SKILL.md +8 -9
  265. package/skills/cm-identity-guard/SKILL.md +4 -4
  266. package/skills/cm-jtbd/SKILL.md +98 -0
  267. package/skills/cm-notebooklm/SKILL.md +156 -0
  268. package/skills/cm-notebooklm/references/command_reference.md +94 -0
  269. package/skills/cm-notebooklm/references/workflows.md +60 -0
  270. package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
  271. package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
  272. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
  273. package/skills/cm-planning/SKILL.md +3 -3
  274. package/skills/cm-project-bootstrap/SKILL.md +2 -2
  275. package/skills/cm-quality-gate/SKILL.md +1 -1
  276. package/skills/cm-readit/SKILL.md +289 -0
  277. package/skills/cm-readit/audio-player.md +206 -0
  278. package/skills/cm-readit/examples/blog-reader.js +352 -0
  279. package/skills/cm-readit/examples/voice-cro.js +390 -0
  280. package/skills/cm-readit/tts-engine.md +262 -0
  281. package/skills/cm-readit/ui-patterns.md +362 -0
  282. package/skills/cm-readit/voice-cro.md +223 -0
  283. package/skills/cm-safe-deploy/SKILL.md +80 -510
  284. package/skills/cm-safe-deploy/references/gate-0-5-security-scan.md +31 -0
  285. package/skills/cm-safe-deploy/references/gate-0-secret-hygiene.md +68 -0
  286. package/skills/cm-safe-deploy/references/gate-1-syntax.md +23 -0
  287. package/skills/cm-safe-deploy/references/gate-2-test-suite.md +28 -0
  288. package/skills/cm-safe-deploy/references/gate-3-i18n.md +19 -0
  289. package/skills/cm-safe-deploy/references/gate-4-5-build-dist.md +16 -0
  290. package/skills/cm-safe-deploy/references/gate-6-deploy-smoke.md +18 -0
  291. package/skills/cm-safe-deploy/references/rollback.md +17 -0
  292. package/skills/cm-safe-deploy/references/setup-new-project.md +20 -0
  293. package/skills/cm-skill-index/SKILL.md +15 -15
  294. package/skills/cm-start/SKILL.md +1 -1
  295. package/skills/cm-tdd/SKILL.md +51 -356
  296. package/skills/cm-tdd/references/bugfix-example.md +15 -0
  297. package/skills/cm-tdd/references/rationalizations.md +20 -0
  298. package/skills/cm-tdd/references/red-green-refactor.md +33 -0
  299. package/skills/cm-tdd/references/stuck-debugging.md +18 -0
  300. package/skills/cm-tdd/references/test-quality.md +19 -0
  301. package/skills/cm-ux-master/SKILL.md +368 -115
  302. package/skills/profiles/core.txt +1 -4
  303. package/skills/profiles/design.txt +1 -2
  304. package/skills/profiles/full.txt +10 -16
  305. package/skills/profiles/growth.txt +9 -9
  306. package/skills/profiles/top35.json +13 -13
  307. package/skills/cm-conductor-worktrees/SKILL.archive.md +0 -28
  308. package/skills/cm-conductor-worktrees/SKILL.md +0 -26
  309. package/skills/cm-dashboard/SKILL.archive.md +0 -15
  310. package/skills/cm-dashboard/SKILL.md +0 -26
  311. package/skills/cm-dashboard/ui/app.js +0 -1278
  312. package/skills/cm-dashboard/ui/index.html +0 -206
  313. package/skills/cm-dashboard/ui/style.css +0 -440
  314. package/skills/cm-design-studio/SKILL.archive.md +0 -34
  315. package/skills/cm-design-studio/SKILL.md +0 -26
  316. package/skills/cm-engineering-meta/SKILL.archive.md +0 -73
  317. package/skills/cm-engineering-meta/SKILL.md +0 -26
  318. package/skills/cm-git-worktrees/SKILL.archive.md +0 -157
  319. package/skills/cm-git-worktrees/SKILL.md +0 -26
  320. package/skills/cm-post-deploy-canary/SKILL.archive.md +0 -22
  321. package/skills/cm-post-deploy-canary/SKILL.md +0 -26
  322. package/skills/cm-qa-visual-cli/SKILL.archive.md +0 -22
  323. package/skills/cm-qa-visual-cli/SKILL.md +0 -26
  324. package/skills/cm-second-opinion-cli/SKILL.archive.md +0 -23
  325. package/skills/cm-second-opinion-cli/SKILL.md +0 -26
  326. package/skills/cm-secret-shield/SKILL.archive.md +0 -580
  327. package/skills/cm-secret-shield/SKILL.md +0 -26
  328. package/skills/cm-security-gate/SKILL.archive.md +0 -239
  329. package/skills/cm-security-gate/SKILL.md +0 -26
  330. package/skills/cm-skill-health/SKILL.archive.md +0 -83
  331. package/skills/cm-skill-health/SKILL.md +0 -26
  332. package/skills/cm-skill-mastery/SKILL.archive.md +0 -156
  333. package/skills/cm-skill-mastery/SKILL.md +0 -26
  334. package/skills/cm-skill-search/SKILL.archive.md +0 -49
  335. package/skills/cm-skill-search/SKILL.md +0 -26
  336. package/skills/cm-skill-share/SKILL.archive.md +0 -58
  337. package/skills/cm-skill-share/SKILL.md +0 -26
  338. package/skills/cm-test-gate/SKILL.archive.md +0 -245
  339. package/skills/cm-test-gate/SKILL.md +0 -26
  340. package/skills/cm-ui-preview/SKILL.archive.md +0 -153
  341. package/skills/cm-ui-preview/SKILL.md +0 -26
package/CHANGELOG.md CHANGED
@@ -6,6 +6,70 @@ Categories: 🚀 **Improvements** | 🐛 **Bug Fixes** | 🔒 **Security**
6
6
 
7
7
  ---
8
8
 
9
+ ## [7.0.3] - 2026-05-13
10
+
11
+ ### 🚀 Improvements — Codex Runtime + Token-Efficient Handoffs
12
+
13
+ Focused compatibility and cleanup release. Align CodyMaster with the current Codex CLI, reduce agent handoff noise, and remove dead references to deprecated skills across docs, profiles, and runtime hints.
14
+
15
+ ### 🚀 Improvements — Skill Token Auditing + Progressive Disclosure
16
+
17
+ Added first-class skill token footprint auditing and used it to refactor the heaviest always-on skills into lazy-loaded `references/` packs.
18
+
19
+ **Skill Token Auditing:**
20
+ - Added `cm token skill <skillName>` under the existing `cm token` namespace
21
+ - New `--project`, `--json`, and `--baseline` options for repo-scoped reports, machine-readable output, and before/after comparisons
22
+ - New `src/skill-token-report.ts` analyzer for `SKILL.md`, direct `references/`, `progressive_min`, `progressive_max`, and baseline deltas
23
+ - Added `test/skill-token-report.test.ts` and `test/brain-token-skill.test.ts`
24
+
25
+ **Progressive Disclosure Refactors:**
26
+ - Split `skills/cm-execution/` into a short router `SKILL.md` plus mode-specific references
27
+ - Split `skills/cm-codeintell/` by intelligence layer: skeleton, codegraph, architecture, context builder, integration workflows
28
+ - Split `skills/cm-safe-deploy/` by deploy path: individual gates, setup, and rollback
29
+ - Split `skills/cm-continuity/` by concern: session protocol, template, memory model, MCP bridge, URI scheme, storage, audit
30
+ - Split `skills/cm-tdd/` by workflow/support: red-green-refactor, test quality, rationalizations, bugfix example, stuck/debugging
31
+ - Preserved existing skill names, compressed frontmatter style, and distribution compatibility with flat `references/`
32
+
33
+ **Measured Token Wins (`progressive_min`):**
34
+ - `cm-execution`: `3990 → 963` tokens
35
+ - `cm-codeintell`: `4981 → 685` tokens
36
+ - `cm-safe-deploy`: `4268 → 780` tokens
37
+ - `cm-continuity`: `4157 → 652` tokens
38
+ - `cm-tdd`: `2953 → 554` tokens
39
+
40
+ **Codex Compatibility:**
41
+ - Updated `src/agent/codex.ts` to use `codex exec --json`
42
+ - Added proper `codex exec resume` support for resumed sessions
43
+ - Parse real Codex JSONL events (`thread.started`, `item.completed`, `turn.completed`)
44
+ - Preserve `sessionId` and token `usage` from Codex runtime output
45
+
46
+ **Token Efficiency + Runtime Reuse:**
47
+ - Refactored `src/agent-dispatch.ts` to emit compact structured JSON task envelopes instead of verbose Markdown task files
48
+ - Fixed generated CLI handoff commands for Codex and Claude Code to match current CLIs
49
+ - Wired `SkillExecutionCache` into `src/skill-chain.ts` for real cached skill-chain reuse during execution
50
+ - Wired successful execution write-back into `src/execution-analyzer.ts`
51
+ - Added `compressMaybe()` helper in `src/utils/output-compress.ts` for safer runtime log compression
52
+
53
+ **Docs, Profiles, and Naming Cleanup:**
54
+ - Synced skill install manifests in `skills/profiles/{core,design,growth,full}.txt` and `skills/profiles/top35.json`
55
+ - Updated skill library docs under `docs/skills/` to remove broken links to deleted/deprecated skill folders
56
+ - Cleaned workflow and operations docs to point at current skills like `cm-safe-deploy`, `cm-design-system`, `cm-quality-gate`, `cm-execution`, and `cm-skill-index`
57
+ - Reduced deprecation-heavy copywriting in user-facing docs so new users see the current path first
58
+ - Kept migration-specific references only where they still serve version-upgrade guidance (`docs/migration-v2.md`) or advisory protocol compatibility
59
+
60
+ **Tests Added:**
61
+ - `test/codex-backend.test.ts`
62
+ - `test/agent-dispatch.test.ts`
63
+ - `test/skill-chain-cache.test.ts`
64
+ - `test/skill-token-report.test.ts`
65
+ - `test/brain-token-skill.test.ts`
66
+
67
+ **Verification:**
68
+ - `npm run test:gate:kit`
69
+ - Result: 54 test files passed, 422 tests passed
70
+
71
+ ---
72
+
9
73
  ## [7.0.0] - 2026-05-11
10
74
 
11
75
  ### 🚀 Improvements — Browse Hybrid Bridge
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  **50+ skills. One install. Your AI coding agent becomes a full team.**
8
8
 
9
- **v7.0 — Browse Hybrid Bridge:** AI-native browser automation with a11y snapshots, error collection, video recording.
9
+ **v7.0.2 — Browse Hybrid Bridge:** AI-native browser automation with a11y snapshots, error collection, video recording.
10
10
 
11
11
  ```
12
12
  ( . \ --- / . )
@@ -17,7 +17,9 @@
17
17
  Meet Cody 🐹
18
18
  ```
19
19
 
20
- [![Discord](https://img.shields.io/badge/Discord-Join-7289da?logo=discord&logoColor=white)](https://discord.gg/codymaster)
20
+ [![npm version](https://img.shields.io/npm/v/codymaster.svg)](https://www.npmjs.com/package/codymaster)
21
+ [![npm downloads](https://img.shields.io/npm/dm/codymaster.svg)](https://www.npmjs.com/package/codymaster)
22
+ [![license](https://img.shields.io/npm/l/codymaster.svg)](https://github.com/tody-agent/codymaster/blob/main/LICENSE)
21
23
 
22
24
  ---
23
25
 
@@ -243,12 +245,58 @@ cm status # See your tasks and progress
243
245
  cm dashboard # Open the visual dashboard
244
246
  ```
245
247
 
248
+ ### For OpenCode users
249
+
250
+ OpenCode supports both skills and plugins:
251
+
252
+ ```bash
253
+ git clone https://github.com/tody-agent/codymaster.git ~/.cody-master
254
+
255
+ # Skills (auto-load)
256
+ ln -s ~/.cody-master/.opencode/skills ~/.opencode/skills
257
+
258
+ # Plugins (optional — adds custom tools)
259
+ mkdir -p ~/.opencode/plugins
260
+ ln -s ~/.cody-master/.opencode/plugins/cm-brainstorm-idea.ts ~/.opencode/plugins/
261
+ ```
262
+
263
+ Restart OpenCode to activate. The `cm-brainstorm-idea` plugin adds a strategic analysis tool with auto-detection for brainstorm keywords.
264
+
265
+ 📖 [Full OpenCode installation guide →](.opencode/INSTALL.md)
266
+
267
+ ### For Codex users
268
+
269
+ Fastest path:
270
+
271
+ ```bash
272
+ git clone https://github.com/tody-agent/codymaster.git ~/.cody-master
273
+ cd ~/.cody-master
274
+ npm ci
275
+ npm run build:platforms
276
+ ```
277
+
278
+ Then tell Codex:
279
+
280
+ ```text
281
+ Fetch and follow instructions from https://raw.githubusercontent.com/tody-agent/codymaster/main/.codex/INSTALL.md
282
+ ```
283
+
284
+ Or use the local Codex skill tree directly at `.codex/skills/`.
285
+
246
286
  ### No Node.js?
247
287
 
248
288
  ```bash
249
289
  bash <(curl -fsSL https://raw.githubusercontent.com/tody-agent/codymaster/main/install.sh) --all --profile core
250
290
  ```
251
291
 
292
+ ### What's in the package
293
+
294
+ - **50+ skills** — ready-to-use SKILL.md files for every major AI coding agent
295
+ - **CLI (`cm`)** — install wizard, doctor, dashboard, MCP server, browse daemon
296
+ - **Skill profiles** — curated bundles: `core`, `growth`, `full`, `knowledge`
297
+ - **Multi-platform** — installs to Claude Code, Cursor, Gemini, Codex, OpenCode, Windsurf, Cline, Aider, Continue, Kiro, Amazon Q, Amp, Copilot, Claude Desktop
298
+ - **Zero config** — detects your tools, installs skills, you're done
299
+
252
300
  ---
253
301
 
254
302
  ## The Dashboard
@@ -315,6 +363,71 @@ cm mcp-serve --print-config # Paste into Goose config
315
363
 
316
364
  ---
317
365
 
366
+ ## CLI Commands
367
+
368
+ | Command | Description |
369
+ |---------|-------------|
370
+ | `cm` | Launch interactive wizard (auto-detect AI tools) |
371
+ | `cm doctor` | Check installation health across all platforms |
372
+ | `cm status` | View current tasks and progress |
373
+ | `cm dashboard` | Open visual mission control |
374
+ | `cm install <platform> --profile <name>` | Install skills to a specific platform |
375
+ | `cm update --full` | Update all skills to latest |
376
+ | `cm upgrade` | Upgrade CodyMaster itself |
377
+ | `cm mcp-serve` | Run as MCP server for Claude Desktop |
378
+ | `cm browse` | Open a URL in the browse daemon |
379
+ | `cm browse screenshot <url>` | Capture a screenshot |
380
+ | `cm browse snapshot <url>` | Get accessibility tree snapshot |
381
+
382
+ ### Skill Profiles
383
+
384
+ | Profile | Skills | Best For |
385
+ |---------|--------|----------|
386
+ | `core` | 15 | Daily coding — planning, TDD, debug, review, deploy |
387
+ | `growth` | 25 | + design system, i18n, content factory |
388
+ | `full` | 50+ | Everything — full senior team |
389
+ | `knowledge` | 10 | Docs, code intelligence, retros |
390
+
391
+ ```bash
392
+ cm install claude-code --profile core
393
+ cm install cursor --profile growth
394
+ cm install gemini --profile full
395
+ ```
396
+
397
+ ---
398
+
399
+ ## Troubleshooting
400
+
401
+ ### `cm: command not found`
402
+
403
+ ```bash
404
+ # Make sure global npm bin is in PATH
405
+ npm config get prefix
406
+ # Add the output bin/ folder to your PATH
407
+ ```
408
+
409
+ ### Skills not showing in AI agent
410
+
411
+ ```bash
412
+ cm doctor # Check what's installed where
413
+ cm install --all # Re-install to all detected platforms
414
+ ```
415
+
416
+ ### Build fails
417
+
418
+ ```bash
419
+ npm run build # Rebuild TypeScript
420
+ npm run test:gate:kit # Run full quality gate
421
+ ```
422
+
423
+ ### Permission errors (macOS/Linux)
424
+
425
+ ```bash
426
+ sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
427
+ ```
428
+
429
+ ---
430
+
318
431
  ## Contributing
319
432
 
320
433
  1. ⭐ **Star the repo** — helps more builders find this
@@ -335,6 +448,8 @@ CI runs `npm run test:gate:kit` on every push and PR.
335
448
  | 🎨 Design Pipeline | [docs/design-pipeline.md](docs/design-pipeline.md) |
336
449
  | 🛠️ Skills | [skills/](skills/) |
337
450
  | 📖 Our Story | [cody.todyle.com/story](https://cody.todyle.com/story) |
451
+ | 📋 Changelog | [CHANGELOG.md](CHANGELOG.md) |
452
+ | 🐛 Issues | [GitHub Issues](https://github.com/tody-agent/codymaster/issues) |
338
453
 
339
454
  ---
340
455
 
@@ -30,32 +30,79 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.CodexBackend = void 0;
33
+ exports.buildCodexPrompt = buildCodexPrompt;
34
+ exports.buildCodexArgs = buildCodexArgs;
33
35
  const spawn_helper_1 = require("./spawn-helper");
36
+ function buildCodexPrompt(prompt, opts) {
37
+ var _a;
38
+ if (!((_a = opts.systemPrompt) === null || _a === void 0 ? void 0 : _a.trim()))
39
+ return prompt;
40
+ return [
41
+ '<system_prompt>',
42
+ opts.systemPrompt.trim(),
43
+ '</system_prompt>',
44
+ '',
45
+ prompt,
46
+ ].join('\n');
47
+ }
48
+ function buildCodexArgs(prompt, opts) {
49
+ const baseArgs = ['--json', '--skip-git-repo-check'];
50
+ if (opts.model)
51
+ baseArgs.push('--model', opts.model);
52
+ if (opts.customArgs)
53
+ baseArgs.push(...opts.customArgs);
54
+ const finalPrompt = buildCodexPrompt(prompt, opts);
55
+ if (opts.resumeSessionId) {
56
+ return ['exec', 'resume', ...baseArgs, opts.resumeSessionId, finalPrompt];
57
+ }
58
+ return ['exec', ...baseArgs, finalPrompt];
59
+ }
34
60
  class AgentMessageTransformer {
35
61
  constructor() {
36
62
  this.output = [];
37
63
  }
38
64
  transform(msg) {
39
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
65
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
66
+ const codexEvent = msg;
67
+ if (codexEvent.thread_id) {
68
+ this.lastThreadId = codexEvent.thread_id;
69
+ }
70
+ if (codexEvent.type === 'item.completed' && ((_a = codexEvent.item) === null || _a === void 0 ? void 0 : _a.type) === 'agent_message') {
71
+ const content = (_b = codexEvent.item.text) !== null && _b !== void 0 ? _b : '';
72
+ if (content) {
73
+ this.output.push(content);
74
+ return [{ type: 'text', content, sessionId: this.lastThreadId }];
75
+ }
76
+ }
77
+ if (codexEvent.type === 'turn.completed' && codexEvent.usage) {
78
+ this.usage = {
79
+ codex: {
80
+ input: (_c = codexEvent.usage.input_tokens) !== null && _c !== void 0 ? _c : 0,
81
+ output: (_d = codexEvent.usage.output_tokens) !== null && _d !== void 0 ? _d : 0,
82
+ cacheRead: (_e = codexEvent.usage.cached_input_tokens) !== null && _e !== void 0 ? _e : 0,
83
+ },
84
+ };
85
+ return [];
86
+ }
40
87
  const t = msg.type;
41
88
  if (t === 'message' || t === 'text' || t === 'assistant') {
42
- const content = (_b = (_a = msg.content) !== null && _a !== void 0 ? _a : msg.text) !== null && _b !== void 0 ? _b : '';
89
+ const content = (_g = (_f = msg.content) !== null && _f !== void 0 ? _f : msg.text) !== null && _g !== void 0 ? _g : '';
43
90
  if (content) {
44
91
  this.output.push(content);
45
- return [{ type: 'text', content }];
92
+ return [{ type: 'text', content, sessionId: this.lastThreadId }];
46
93
  }
47
94
  }
48
95
  if (t === 'thinking') {
49
- return [{ type: 'thinking', content: (_c = msg.content) !== null && _c !== void 0 ? _c : '' }];
96
+ return [{ type: 'thinking', content: (_h = msg.content) !== null && _h !== void 0 ? _h : '' }];
50
97
  }
51
98
  if (t === 'tool_use' || t === 'tool-use') {
52
99
  return [
53
100
  {
54
101
  type: 'tool-use',
55
- tool: (_e = (_d = msg.tool) !== null && _d !== void 0 ? _d : msg.name) !== null && _e !== void 0 ? _e : 'unknown',
56
- callId: (_g = (_f = msg.callId) !== null && _f !== void 0 ? _f : msg.id) !== null && _g !== void 0 ? _g : '',
57
- input: (_j = (_h = msg.input) !== null && _h !== void 0 ? _h : msg.arguments) !== null && _j !== void 0 ? _j : {},
58
- attempt: (_k = msg.attempt) !== null && _k !== void 0 ? _k : 1,
102
+ tool: (_k = (_j = msg.tool) !== null && _j !== void 0 ? _j : msg.name) !== null && _k !== void 0 ? _k : 'unknown',
103
+ callId: (_m = (_l = msg.callId) !== null && _l !== void 0 ? _l : msg.id) !== null && _m !== void 0 ? _m : '',
104
+ input: (_p = (_o = msg.input) !== null && _o !== void 0 ? _o : msg.arguments) !== null && _p !== void 0 ? _p : {},
105
+ attempt: (_q = msg.attempt) !== null && _q !== void 0 ? _q : 1,
59
106
  parentCallId: msg.parentCallId,
60
107
  },
61
108
  ];
@@ -64,26 +111,26 @@ class AgentMessageTransformer {
64
111
  return [
65
112
  {
66
113
  type: 'tool-result',
67
- callId: (_m = (_l = msg.callId) !== null && _l !== void 0 ? _l : msg.id) !== null && _m !== void 0 ? _m : '',
68
- output: (_p = (_o = msg.output) !== null && _o !== void 0 ? _o : msg.content) !== null && _p !== void 0 ? _p : '',
69
- isError: (_q = msg.isError) !== null && _q !== void 0 ? _q : false,
114
+ callId: (_s = (_r = msg.callId) !== null && _r !== void 0 ? _r : msg.id) !== null && _s !== void 0 ? _s : '',
115
+ output: (_u = (_t = msg.output) !== null && _t !== void 0 ? _t : msg.content) !== null && _u !== void 0 ? _u : '',
116
+ isError: (_v = msg.isError) !== null && _v !== void 0 ? _v : false,
70
117
  },
71
118
  ];
72
119
  }
73
120
  if (t === 'status') {
74
- return [{ type: 'status', status: (_r = msg.status) !== null && _r !== void 0 ? _r : '' }];
121
+ return [{ type: 'status', status: (_w = msg.status) !== null && _w !== void 0 ? _w : '' }];
75
122
  }
76
123
  if (t === 'log') {
77
124
  return [
78
125
  {
79
126
  type: 'log',
80
- level: (_s = msg.level) !== null && _s !== void 0 ? _s : 'info',
81
- content: (_t = msg.content) !== null && _t !== void 0 ? _t : '',
127
+ level: (_x = msg.level) !== null && _x !== void 0 ? _x : 'info',
128
+ content: (_y = msg.content) !== null && _y !== void 0 ? _y : '',
82
129
  },
83
130
  ];
84
131
  }
85
132
  if (t === 'error') {
86
- return [{ type: 'error', content: (_v = (_u = msg.content) !== null && _u !== void 0 ? _u : msg.message) !== null && _v !== void 0 ? _v : '' }];
133
+ return [{ type: 'error', content: (_0 = (_z = msg.content) !== null && _z !== void 0 ? _z : msg.message) !== null && _0 !== void 0 ? _0 : '' }];
87
134
  }
88
135
  // Unknown message types are surfaced as status
89
136
  return [{ type: 'status', status: JSON.stringify(msg) }];
@@ -91,6 +138,12 @@ class AgentMessageTransformer {
91
138
  getOutput() {
92
139
  return this.output.join('');
93
140
  }
141
+ getSessionId() {
142
+ return this.lastThreadId;
143
+ }
144
+ getUsage() {
145
+ return this.usage;
146
+ }
94
147
  }
95
148
  function transformMessages(raw, transformer) {
96
149
  return __asyncGenerator(this, arguments, function* transformMessages_1() {
@@ -134,6 +187,8 @@ function collectResult(proc, transformer, startTime) {
134
187
  output: transformer.getOutput(),
135
188
  durationMs,
136
189
  failureReason,
190
+ sessionId: transformer.getSessionId(),
191
+ usage: transformer.getUsage(),
137
192
  });
138
193
  });
139
194
  proc.child.on('error', (err) => {
@@ -144,6 +199,8 @@ function collectResult(proc, transformer, startTime) {
144
199
  error: err instanceof Error ? err.message : String(err),
145
200
  failureReason: 'agent_crash',
146
201
  durationMs,
202
+ sessionId: transformer.getSessionId(),
203
+ usage: transformer.getUsage(),
147
204
  });
148
205
  });
149
206
  });
@@ -177,12 +234,7 @@ class CodexBackend {
177
234
  }
178
235
  execute(prompt, opts) {
179
236
  return __awaiter(this, void 0, void 0, function* () {
180
- const args = ['--full-auto'];
181
- if (opts.model)
182
- args.push('--model', opts.model);
183
- if (opts.customArgs)
184
- args.push(...opts.customArgs);
185
- args.push(prompt);
237
+ const args = buildCodexArgs(prompt, opts);
186
238
  const proc = (0, spawn_helper_1.spawnProcess)({
187
239
  command: 'codex',
188
240
  args,
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.validateDispatch = validateDispatch;
7
+ exports.generateTaskEnvelope = generateTaskEnvelope;
7
8
  exports.dispatchTaskToAgent = dispatchTaskToAgent;
8
9
  const fs_1 = __importDefault(require("fs"));
9
10
  const path_1 = __importDefault(require("path"));
@@ -11,6 +12,8 @@ const path_1 = __importDefault(require("path"));
11
12
  const AGENT_SKILL_PREFIX = {
12
13
  'antigravity': '@[/',
13
14
  'claude-code': '/',
15
+ 'codex': '/',
16
+ 'opencode': '/',
14
17
  'cursor': '@',
15
18
  'gemini-cli': '@[/',
16
19
  'windsurf': '@',
@@ -20,6 +23,8 @@ const AGENT_SKILL_PREFIX = {
20
23
  const AGENT_DISPLAY = {
21
24
  'antigravity': 'Google Antigravity',
22
25
  'claude-code': 'Claude Code',
26
+ 'codex': 'OpenAI Codex',
27
+ 'opencode': 'OpenCode',
23
28
  'cursor': 'Cursor',
24
29
  'gemini-cli': 'Gemini CLI',
25
30
  'windsurf': 'Windsurf',
@@ -56,58 +61,60 @@ function validateDispatch(task, project, force = false) {
56
61
  return null; // All validations passed
57
62
  }
58
63
  // ─── Task File Generation ───────────────────────────────────────────────────
59
- function generateTaskFileContent(task, project, dashboardPort = 6969) {
64
+ function buildDoneCriteria(task) {
65
+ const criteria = [
66
+ 'Complete the requested scope only.',
67
+ 'Preserve unrelated existing changes.',
68
+ 'Report verification evidence before claiming completion.',
69
+ ];
70
+ if (task.skill) {
71
+ criteria.unshift(`Follow the workflow guidance from skill "${task.skill}" when it applies.`);
72
+ }
73
+ return criteria;
74
+ }
75
+ function generateTaskEnvelope(task, project, dashboardPort = 6969) {
60
76
  const agentName = AGENT_DISPLAY[task.agent] || task.agent;
61
77
  const skillPrefix = AGENT_SKILL_PREFIX[task.agent] || '';
62
78
  const skillSuffix = task.agent === 'antigravity' || task.agent === 'gemini-cli' ? ']' : '';
63
79
  const skillRef = task.skill ? `${skillPrefix}${task.skill}${skillSuffix}` : 'None';
64
- const now = new Date().toISOString();
65
- const priorityEmoji = {
66
- 'low': '🟢', 'medium': '🟡', 'high': '🟠', 'urgent': '🔴',
80
+ return {
81
+ schema: 'codymaster-task@2',
82
+ task: {
83
+ id: task.id,
84
+ title: task.title,
85
+ description: task.description || '',
86
+ priority: task.priority,
87
+ createdAt: task.createdAt,
88
+ dispatchedAt: new Date().toISOString(),
89
+ },
90
+ execution: {
91
+ agent: agentName,
92
+ workspace: project.path,
93
+ skill: task.skill || null,
94
+ skillInvocation: task.skill ? skillRef : null,
95
+ doneCriteria: buildDoneCriteria(task),
96
+ },
97
+ project: {
98
+ id: project.id,
99
+ name: project.name,
100
+ },
101
+ progressReporting: {
102
+ baseUrl: `http://localhost:${dashboardPort}`,
103
+ inProgress: {
104
+ method: 'PUT',
105
+ path: `/api/tasks/${task.id}/move`,
106
+ body: { column: 'in-progress' },
107
+ },
108
+ done: {
109
+ method: 'PUT',
110
+ path: `/api/tasks/${task.id}/move`,
111
+ body: { column: 'done' },
112
+ },
113
+ },
67
114
  };
68
- let content = `# Task: ${task.title}
69
-
70
- | Field | Value |
71
- |-------|-------|
72
- | Agent | ${agentName} |
73
- | Skill | ${skillRef} |
74
- | Priority | ${priorityEmoji[task.priority] || '🟡'} ${task.priority} |
75
- | Project | ${project.name} |
76
- | Created | ${task.createdAt} |
77
- | Dispatched | ${now} |
78
- | Task ID | ${task.id} |
79
-
80
- ## Description
81
-
82
- ${task.description || 'No additional description provided.'}
83
-
84
- ## Instructions
85
-
86
- Execute this task in the project workspace at: \`${project.path}\`
87
- `;
88
- if (task.skill) {
89
- content += `
90
- Use the skill \`${task.skill}\` to guide execution. Invoke it with: ${skillRef}
91
- `;
92
- }
93
- content += `
94
- ## Progress Reporting
95
-
96
- After completing the task, update the status via CodyMaster API:
97
-
98
- \`\`\`bash
99
- # Mark as in-progress
100
- curl -s -X PUT http://localhost:${dashboardPort}/api/tasks/${task.id}/move \\
101
- -H "Content-Type: application/json" \\
102
- -d '{"column": "in-progress"}'
103
-
104
- # Mark as done when complete
105
- curl -s -X PUT http://localhost:${dashboardPort}/api/tasks/${task.id}/move \\
106
- -H "Content-Type: application/json" \\
107
- -d '{"column": "done"}'
108
- \`\`\`
109
- `;
110
- return content;
115
+ }
116
+ function generateTaskFileContent(task, project, dashboardPort = 6969) {
117
+ return JSON.stringify(generateTaskEnvelope(task, project, dashboardPort), null, 2);
111
118
  }
112
119
  // ─── Dispatcher ─────────────────────────────────────────────────────────────
113
120
  function dispatchTaskToAgent(task, project, force = false) {
@@ -156,6 +163,14 @@ function dispatchTaskToAgent(task, project, force = false) {
156
163
  }
157
164
  // Generate CLI command
158
165
  const relativePath = path_1.default.relative(project.path, filePath);
159
- const cliCommand = `gemini run --task "${relativePath}"`;
166
+ const AGENT_CLI = {
167
+ 'antigravity': `antigravity -p "$(cat \\"${relativePath}\\")"`,
168
+ 'codex': `codex exec "$(cat \\"${relativePath}\\")"`,
169
+ 'opencode': `opencode --task "${relativePath}"`,
170
+ 'cursor': `cursor --task "${relativePath}"`,
171
+ 'gemini-cli': `gemini run --task "${relativePath}"`,
172
+ 'claude-code': `claude -p "$(cat \\"${relativePath}\\")"`,
173
+ };
174
+ const cliCommand = AGENT_CLI[task.agent] || `# Open and run: ${relativePath}`;
160
175
  return { success: true, filePath, prompt: content, cliCommand };
161
176
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerBrainCommands = registerBrainCommands;
4
4
  const smart_brain_router_1 = require("../../smart-brain-router");
5
5
  const skill_execution_cache_1 = require("../../skill-execution-cache");
6
+ const skill_token_report_1 = require("../../skill-token-report");
6
7
  const token_budget_1 = require("../../token-budget");
7
8
  // ─── Brain & Token CLI Commands ──────────────────────────────────────────────
8
9
  function registerBrainCommands(program) {
@@ -27,6 +28,23 @@ function registerBrainCommands(program) {
27
28
  const token = program
28
29
  .command('token')
29
30
  .description('Token usage analysis and savings tracking');
31
+ token
32
+ .command('skill <skillName>')
33
+ .description('Show token footprint for a skill SKILL.md and direct references/')
34
+ .option('-p, --project <path>', 'Project path', process.cwd())
35
+ .option('--json', 'Emit stable JSON output', false)
36
+ .option('--baseline <file>', 'Compare against a legacy monolithic file')
37
+ .action((skillName, opts) => {
38
+ const report = (0, skill_token_report_1.analyzeSkillTokenFootprint)(skillName, {
39
+ projectPath: opts.project,
40
+ baselinePath: opts.baseline,
41
+ });
42
+ if (opts.json) {
43
+ console.log(JSON.stringify(report, null, 2));
44
+ return;
45
+ }
46
+ console.log((0, skill_token_report_1.formatSkillTokenReport)(report));
47
+ });
30
48
  token
31
49
  .command('report')
32
50
  .description('Show current token budget allocation')
@@ -44,7 +44,7 @@ Implement the chosen variant using existing design system tokens. …
44
44
  `;
45
45
  const README = `# .cm/design-studio
46
46
 
47
- Local artifact folder for **cm-design-studio**: variants, checklist, handoff.
47
+ Local artifact folder for the **design-studio** flow: variants, checklist, handoff.
48
48
 
49
49
  Happy path:
50
50
 
@@ -50,13 +50,13 @@ function suggestFromContext(projectPath) {
50
50
  out.push({ skill: 'cm-dockit', reason: 'Markdown/docs paths changed.' });
51
51
  }
52
52
  if (/(package\.json|package-lock\.json|pnpm-lock|yarn\.lock)/m.test(joined)) {
53
- out.push({ skill: 'cm-test-gate', reason: 'Dependency lockfiles changed; run the test gate.' });
53
+ out.push({ skill: 'cm-quality-gate', reason: 'Dependency lockfiles changed; run the verification gate.' });
54
54
  }
55
55
  if (/(\.github\/workflows\/|Dockerfile|fly\.toml|wrangler)/m.test(joined)) {
56
56
  out.push({ skill: 'cm-safe-deploy', reason: 'CI or deploy config changed.' });
57
57
  }
58
58
  if (lines.length > 8) {
59
- out.push({ skill: 'cm-git-worktrees', reason: 'Many working-tree changes; consider an isolated worktree.' });
59
+ out.push({ skill: 'cm-execution', reason: 'Many working-tree changes; consider isolated execution or a clean workspace.' });
60
60
  }
61
61
  const sprint = (0, sprint_pipeline_1.readSprintState)(root);
62
62
  if (sprint && sprint.current_index >= 0 && sprint.current_index < sprint.pipeline.length) {
@@ -69,7 +69,7 @@ function suggestFromContext(projectPath) {
69
69
  }
70
70
  if (fs_1.default.existsSync(path_1.default.join(root, '.cm', 'config.yaml'))) {
71
71
  out.push({
72
- skill: 'cm-engineering-meta',
72
+ skill: 'cm-mcp-engineering',
73
73
  reason: '`.cm/config.yaml` present; engineering commands honor shared config.',
74
74
  });
75
75
  }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProjectActiveAgents = getProjectActiveAgents;
4
+ function getProjectActiveAgents(project, tasks) {
5
+ return [...new Set([
6
+ ...(Array.isArray(project.agents) ? project.agents : []),
7
+ ...tasks.map(t => t.agent).filter(Boolean),
8
+ ])];
9
+ }