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,170 @@
1
+ #!/bin/bash
2
+ # CodyMaster CLI Installer
3
+ # Usage: curl -fsSL https://raw.githubusercontent.com/todyle/codymaster/main/scripts/install.sh | bash
4
+ #
5
+ # Detects platform, checks prerequisites, installs globally via npm.
6
+
7
+ set -e
8
+
9
+ CM_VERSION="${CM_VERSION:-latest}"
10
+ PACKAGE_NAME="codymaster"
11
+
12
+ # Colors
13
+ RED='\033[0;31m'
14
+ GREEN='\033[0;32m'
15
+ YELLOW='\033[1;33m'
16
+ BLUE='\033[0;34m'
17
+ BOLD='\033[1m'
18
+ RESET='\033[0m'
19
+
20
+ info() { echo -e "${BLUE} ℹ ${RESET}$1"; }
21
+ ok() { echo -e "${GREEN} ✅ ${RESET}$1"; }
22
+ warn() { echo -e "${YELLOW} ⚠️ ${RESET}$1"; }
23
+ err() { echo -e "${RED} ❌ ${RESET}$1"; }
24
+
25
+ echo ""
26
+ echo -e "${BOLD} 🐹 CodyMaster Installer${RESET}"
27
+ echo -e " The Hamster-Powered AI Agent Framework"
28
+ echo ""
29
+
30
+ # ─── Detect Platform ──────────────────────────────────────────────
31
+ detect_platform() {
32
+ local os arch
33
+
34
+ case "$(uname -s)" in
35
+ Darwin*) os="macos" ;;
36
+ Linux*) os="linux" ;;
37
+ MINGW*|MSYS*|CYGWIN*) os="windows" ;;
38
+ *) os="unknown" ;;
39
+ esac
40
+
41
+ case "$(uname -m)" in
42
+ x86_64|amd64) arch="x64" ;;
43
+ arm64|aarch64) arch="arm64" ;;
44
+ *) arch="$(uname -m)" ;;
45
+ esac
46
+
47
+ echo "${os}-${arch}"
48
+ }
49
+
50
+ PLATFORM=$(detect_platform)
51
+ info "Platform: ${PLATFORM}"
52
+
53
+ # ─── Check Node.js ────────────────────────────────────────────────
54
+ check_node() {
55
+ if command -v node &>/dev/null; then
56
+ local node_version
57
+ node_version=$(node --version 2>/dev/null | sed 's/v//')
58
+ local major
59
+ major=$(echo "$node_version" | cut -d. -f1)
60
+
61
+ if [ "$major" -ge 18 ]; then
62
+ ok "Node.js v${node_version} found"
63
+ return 0
64
+ else
65
+ err "Node.js v${node_version} found but v18+ required"
66
+ return 1
67
+ fi
68
+ else
69
+ err "Node.js not found"
70
+ return 1
71
+ fi
72
+ }
73
+
74
+ # ─── Check npm ────────────────────────────────────────────────────
75
+ check_npm() {
76
+ if command -v npm &>/dev/null; then
77
+ local npm_version
78
+ npm_version=$(npm --version 2>/dev/null)
79
+ ok "npm v${npm_version} found"
80
+ return 0
81
+ else
82
+ err "npm not found"
83
+ return 1
84
+ fi
85
+ }
86
+
87
+ # ─── Install Node.js if missing ───────────────────────────────────
88
+ install_node() {
89
+ info "Installing Node.js via nvm..."
90
+
91
+ if command -v nvm &>/dev/null; then
92
+ nvm install --lts
93
+ nvm use --lts
94
+ elif [ -f "$HOME/.nvm/nvm.sh" ]; then
95
+ # shellcheck source=/dev/null
96
+ source "$HOME/.nvm/nvm.sh"
97
+ nvm install --lts
98
+ nvm use --lts
99
+ else
100
+ # Install nvm
101
+ info "Installing nvm..."
102
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
103
+
104
+ export NVM_DIR="$HOME/.nvm"
105
+ # shellcheck source=/dev/null
106
+ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
107
+ nvm install --lts
108
+ nvm use --lts
109
+ fi
110
+
111
+ if check_node; then
112
+ ok "Node.js installed successfully"
113
+ else
114
+ err "Node.js installation failed. Please install manually: https://nodejs.org"
115
+ exit 1
116
+ fi
117
+ }
118
+
119
+ # ─── Main Install Flow ───────────────────────────────────────────
120
+ main() {
121
+ # Check/install Node.js
122
+ if ! check_node; then
123
+ install_node
124
+ fi
125
+
126
+ # Check npm
127
+ if ! check_npm; then
128
+ err "npm is required but not found. Please install Node.js from https://nodejs.org"
129
+ exit 1
130
+ fi
131
+
132
+ # Install codymaster
133
+ echo ""
134
+ info "Installing codymaster..."
135
+
136
+ if [ "$CM_VERSION" = "latest" ]; then
137
+ npm install -g "$PACKAGE_NAME@latest"
138
+ else
139
+ npm install -g "$PACKAGE_NAME@${CM_VERSION}"
140
+ fi
141
+
142
+ # Verify installation
143
+ echo ""
144
+ if command -v cm &>/dev/null; then
145
+ local installed_version
146
+ installed_version=$(cm --version 2>/dev/null || echo "unknown")
147
+ ok "CodyMaster installed successfully!"
148
+ echo ""
149
+ echo -e " ${BOLD}Version:${RESET} v${installed_version}"
150
+ echo -e " ${BOLD}Command:${RESET} cm --help"
151
+ echo -e " ${BOLD}Docs:${RESET} https://github.com/todyle/codymaster"
152
+ echo ""
153
+ echo -e " ${BOLD}Quick start:${RESET}"
154
+ echo -e " cm status Show project summary"
155
+ echo -e " cm task add \"...\" Create a task"
156
+ echo -e " cm dashboard Start dashboard"
157
+ echo ""
158
+ else
159
+ warn "cm command not found in PATH. You may need to restart your shell:"
160
+ echo ""
161
+ echo " # For bash/zsh:"
162
+ echo " source ~/.bashrc # or source ~/.zshrc"
163
+ echo ""
164
+ echo " # Or add npm global bin to PATH:"
165
+ echo " export PATH=\"\$(npm config get prefix)/bin:\$PATH\""
166
+ echo ""
167
+ fi
168
+ }
169
+
170
+ main
@@ -89,7 +89,7 @@ async function cmSyncTodos({ todos, projectName, sessionId }) {
89
89
  dashboardRequest('POST', '/api/tasks/auto-sync', {
90
90
  conversationId: `${sid}:${todo.id}`,
91
91
  title: todo.content,
92
- status: STATUS_TO_COLUMN[todo.status] || 'backlog',
92
+ status: todo.status || 'pending', // Send original status, not mapped column
93
93
  agent: 'claude-code',
94
94
  priority: todo.priority || 'medium',
95
95
  projectName: project,
@@ -124,7 +124,7 @@ async function cmUpdateTask({ conversationId, status, title, projectName }) {
124
124
  const result = await dashboardRequest('POST', '/api/tasks/auto-sync', {
125
125
  conversationId: conversationId || `mcp-${Date.now()}:manual`,
126
126
  title: title || conversationId,
127
- status: STATUS_TO_COLUMN[status] || 'in-progress',
127
+ status: status || 'in_progress', // Send original status, not mapped column
128
128
  agent: 'claude-code',
129
129
  projectName: projectName || 'Claude Desktop',
130
130
  });
@@ -1,347 +1,65 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * CodyMaster postinstall — minimal, friendly, no surprise actions.
4
+ * The actual platform install runs through `cm` (the onboarding wizard) so
5
+ * users always opt in interactively.
6
+ */
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
2
10
 
3
- const G = '\x1b[32m';
4
11
  const C = '\x1b[36m';
5
- const W = '\x1b[37m';
12
+ const G = '\x1b[32m';
6
13
  const O = '\x1b[33m';
7
- const Y = '\x1b[1;33m';
8
- const BOLD = '\x1b[1m';
14
+ const W = '\x1b[1;37m';
9
15
  const DIM = '\x1b[2m';
10
16
  const NC = '\x1b[0m';
11
17
 
12
- const fs = require('fs');
13
- const path = require('path');
14
- const { execSync, execFileSync } = require('child_process');
15
-
16
18
  let skillCount = 60;
17
19
  try {
18
20
  const skillsDir = path.join(__dirname, '..', 'skills');
19
21
  if (fs.existsSync(skillsDir)) {
20
- skillCount = fs.readdirSync(skillsDir)
21
- .filter(f => {
22
- const fullPath = path.join(skillsDir, f);
23
- return f.startsWith('cm-') && fs.statSync(fullPath).isDirectory() && fs.existsSync(path.join(fullPath, 'SKILL.md'));
24
- })
25
- .length;
22
+ skillCount = fs
23
+ .readdirSync(skillsDir)
24
+ .filter((f) => {
25
+ const full = path.join(skillsDir, f);
26
+ return (
27
+ f.startsWith('cm-') &&
28
+ fs.statSync(full).isDirectory() &&
29
+ fs.existsSync(path.join(full, 'SKILL.md'))
30
+ );
31
+ }).length;
26
32
  }
27
- } catch (e) {}
28
-
29
-
30
- // Simple check for Vietnamese environment for the CORE UI
31
- const isVi = Intl.DateTimeFormat().resolvedOptions().locale.startsWith('vi');
32
-
33
- const sentiments = {
34
- start: [
35
- "🐹: Whiskers twitching... CodyMaster incoming!",
36
- `🐹: Let's fill these cheeks with ${skillCount} skills! ✨`,
37
- "🐹: Waking up from a power nap! Let's build! 🐭"
38
- ],
39
- progress: [
40
- "🐹: Sniffing out your AI agents...",
41
- "🐹: Running on the wheel to speed this up! 🏃💨",
42
- "🐹: Found a skill! Stashing it in my pocket... 💎"
43
- ],
44
- finish: [
45
- "🐹: Mission accomplished! Can I have a walnut now? 🥜",
46
- `🐹: My cheeks are stuffed with ${skillCount} skills for you! ✨`,
47
- "🐹: Terminal is Hamster-approved! Better than a wheel! 🎡",
48
- `🐹: ${skillCount} skills stored. I'm ready for vibe coding! ⚡`
49
- ]
50
- };
51
-
52
- const getSentiment = (state) => {
53
- const list = sentiments[state];
54
- return ` ${C}${list[Math.floor(Math.random() * list.length)]}${NC}`;
55
- };
56
-
57
- const showSkillGuide = (choice) => {
58
- console.clear();
59
- console.log(` ${G}\\${NC} ${O}( \\_/ )${NC} ${G}/${NC}`);
60
- console.log(` ${G}\\${NC} ${O}(${NC} ${G}^ u ^${NC} ${O})${NC} ${G}/${NC}`);
61
- console.log(` ${G}--${NC} ${O}( ___ )${NC} ${G}--${NC}`);
62
- console.log('');
63
-
64
- if (isVi) {
65
- switch(choice) {
66
- case '1':
67
- console.log(`${Y}${BOLD}1. Hướng dẫn toàn tập${NC} (${C}cm-how-it-work${NC})`);
68
- console.log(`${BOLD}🎯 Tình huống:${NC} Bạn mới cài CodyMaster và chưa biết bắt đầu từ đâu.`);
69
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-how-it-work\``);
70
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Giải thích quy trình từ ý tưởng đến lúc deploy một ứng dụng web bằng bộ skill này."`);
71
- break;
72
- case '2':
73
- console.log(`${Y}${BOLD}2. Vibe Coding (Zero Code)${NC} (${C}cm-start${NC})`);
74
- console.log(`${BOLD}🎯 Tình huống:${NC} Bạn có ý tưởng nhưng lười gõ từng dòng code.`);
75
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-start\``);
76
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Tôi muốn làm một trang web bán cà phê có giỏ hàng, dùng Tailwind CSS."`);
77
- break;
78
- case '3':
79
- console.log(`${Y}${BOLD}3. Tham gia dự án có sẵn${NC} (${C}cm-brainstorm-idea${NC})`);
80
- console.log(`${BOLD}🎯 Tình huống:${NC} Bạn nhảy vào một dự án có sẵn và thấy code quá rắc rối.`);
81
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-brainstorm-idea\``);
82
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Đọc toàn bộ project này và chỉ cho tôi 3 điểm yếu lớn nhất cần cải thiện ngay."`);
83
- break;
84
- case '4':
85
- console.log(`${Y}${BOLD}4. Thiết kế giao diện (UX/UI)${NC} (${C}cm-ux-master / cm-ui-preview${NC})`);
86
- console.log(`${BOLD}🎯 Tình huống:${NC} Bạn muốn web của mình đẹp như Apple hay Linear.`);
87
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-ux-master\``);
88
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Lấy style từ trang stripe.com và thiết kế cho tôi một trang thanh toán cực sang."`);
89
- break;
90
- case '5':
91
- console.log(`${Y}${BOLD}5. Lập trình TDD & Pair code${NC} (${C}cm-tdd${NC})`);
92
- console.log(`${BOLD}🎯 Tình huống:${NC} Bạn muốn code chắc chắn, không có lỗi khi chạy production.`);
93
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-tdd\``);
94
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Viết test case trước, sau đó code chức năng đăng ký người dùng cho tôi."`);
95
- break;
96
- case '6':
97
- console.log(`${Y}${BOLD}6. Dọn dẹp & Tái cấu trúc${NC} (${C}cm-clean-code${NC})`);
98
- console.log(`${BOLD}🎯 Tình huống:${NC} Code chạy được nhưng nhìn như "bãi rác".`);
99
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-clean-code\``);
100
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Tối ưu lại file này: xóa code thừa, đặt lại tên biến cho chuẩn và dễ hiểu hơn."`);
101
- break;
102
- case '7':
103
- console.log(`${Y}${BOLD}7. Quét & Sửa lỗi bảo mật${NC} (${C}cm-security-gate${NC})`);
104
- console.log(`${BOLD}🎯 Tình huống:${NC} Sợ lộ API key hoặc web bị hack XSS.`);
105
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-security-gate\``);
106
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Kiểm tra xem project có lỗ hổng bảo mật nào không trước khi tôi push lên GitHub."`);
107
- break;
108
- case '8':
109
- console.log(`${Y}${BOLD}8. Viết tài liệu Docs & API${NC} (${C}cm-dockit${NC})`);
110
- console.log(`${BOLD}🎯 Tình huống:${NC} Lười viết tài liệu hướng dẫn cho đồng nghiệp hoặc khách hàng.`);
111
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-dockit\``);
112
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Tự động tạo file hướng dẫn sử dụng (README) cho toàn bộ project này."`);
113
- break;
114
- case '9':
115
- console.log(`${Y}${BOLD}9. Tạo WOW Landing Page${NC} (${C}cm-cro-methodology${NC})`);
116
- console.log(`${BOLD}🎯 Tình huống:${NC} Web có người vào nhưng không ai mua hàng/đăng ký.`);
117
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm @/cm-cro-methodology\``);
118
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Phân tích trang web này và chỉ cách tăng gấp đôi tỷ lệ khách hàng đăng ký."`);
119
- break;
120
- case '10':
121
- console.log(`${Y}${BOLD}10. Bảng theo dõi tiến độ${NC} (${C}cm dashboard${NC})`);
122
- console.log(`${BOLD}🎯 Tình huống:${NC} Muốn biết mình đã làm được bao nhiêu % công việc rồi.`);
123
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm dashboard\``);
124
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Hiện bảng dashboard để tôi xem tiến độ các task hiện tại."`);
125
- break;
126
- case '11':
127
- console.log(`${Y}${BOLD}11. Xem Demo (Claude Code)${NC} (${C}/cm:demo${NC})`);
128
- console.log(`${BOLD}🎯 Tình huống:${NC} Muốn xem CodyMaster tự "múa" code như thế nào.`);
129
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`/cm:demo\``);
130
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Bắt đầu demo: tự tạo một ứng dụng TodoList từ A-Z trong 1 phút."`);
131
- break;
132
- case '12':
133
- console.log(`${Y}${BOLD}12. Trợ giúp & Cú pháp lệnh${NC} (${C}cm help${NC})`);
134
- console.log(`${BOLD}🎯 Tình huống:${NC} Quên lệnh hoặc muốn tìm thêm skill xịn khác.`);
135
- console.log(`${BOLD}🚀 Câu lệnh:${NC} \`cm help\``);
136
- console.log(`${BOLD}💡 Thử copy prompt này:${NC} "Liệt kê các skill liên quan đến Growth Hacking và Marketing."`);
137
- break;
138
- }
139
- } else {
140
- switch(choice) {
141
- case '1':
142
- console.log(`${Y}${BOLD}1. The Ultimate Guide${NC} (${C}cm-how-it-work${NC})`);
143
- console.log(`${BOLD}🎯 Situation:${NC} You just installed CodyMaster and don't know where to start.`);
144
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-how-it-work\``);
145
- console.log(`${BOLD}💡 Try this prompt:${NC} "Explain the process from idea to deployment using this skill kit."`);
146
- break;
147
- case '2':
148
- console.log(`${Y}${BOLD}2. Vibe Coding (Zero Code)${NC} (${C}cm-start${NC})`);
149
- console.log(`${BOLD}🎯 Situation:${NC} You have an idea but are too lazy to write code manually.`);
150
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-start\``);
151
- console.log(`${BOLD}💡 Try this prompt:${NC} "Build a coffee shop website with a cart using Tailwind CSS."`);
152
- break;
153
- case '3':
154
- console.log(`${Y}${BOLD}3. Code an Existing Project${NC} (${C}cm-brainstorm-idea${NC})`);
155
- console.log(`${BOLD}🎯 Situation:${NC} You're joining an existing project and the code is a mess.`);
156
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-brainstorm-idea\``);
157
- console.log(`${BOLD}💡 Try this prompt:${NC} "Read this entire project and tell me the 3 biggest weaknesses."`);
158
- break;
159
- case '4':
160
- console.log(`${Y}${BOLD}4. Generate UX/UI Designs${NC} (${C}cm-ux-master / cm-ui-preview${NC})`);
161
- console.log(`${BOLD}🎯 Situation:${NC} You want your web app to look as premium as Apple or Linear.`);
162
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-ux-master\``);
163
- console.log(`${BOLD}💡 Try this prompt:${NC} "Copy the style from stripe.com and design a high-end checkout page."`);
164
- break;
165
- case '5':
166
- console.log(`${Y}${BOLD}5. Code TDD & Pair Coding${NC} (${C}cm-tdd${NC})`);
167
- console.log(`${BOLD}🎯 Situation:${NC} You want reliable code that doesn't break in production.`);
168
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-tdd\``);
169
- console.log(`${BOLD}💡 Try this prompt:${NC} "Write test cases first, then implement user registration for me."`);
170
- break;
171
- case '6':
172
- console.log(`${Y}${BOLD}6. Clean & Refactor Codebase${NC} (${C}cm-clean-code${NC})`);
173
- console.log(`${BOLD}🎯 Situation:${NC} The code works but it looks like a "garbage dump".`);
174
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-clean-code\``);
175
- console.log(`${BOLD}💡 Try this prompt:${NC} "Optimize this file: remove dead code and rename variables for clarity."`);
176
- break;
177
- case '7':
178
- console.log(`${Y}${BOLD}7. Scan for Vulnerabilities${NC} (${C}cm-security-gate${NC})`);
179
- console.log(`${BOLD}🎯 Situation:${NC} Worried about leaking API keys or XSS hacks.`);
180
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-security-gate\``);
181
- console.log(`${BOLD}💡 Try this prompt:${NC} "Check if there are any security vulnerabilities before I push to GitHub."`);
182
- break;
183
- case '8':
184
- console.log(`${Y}${BOLD}8. Write Docs & Generate APIs${NC} (${C}cm-dockit${NC})`);
185
- console.log(`${BOLD}🎯 Situation:${NC} Lazy to write documentation for teammates or clients.`);
186
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-dockit\``);
187
- console.log(`${BOLD}💡 Try this prompt:${NC} "Automatically generate a README guide for this entire project."`);
188
- break;
189
- case '9':
190
- console.log(`${Y}${BOLD}9. Release WOW Landing Page${NC} (${C}cm-cro-methodology${NC})`);
191
- console.log(`${BOLD}🎯 Situation:${NC} Visitors come to your site but don't buy or sign up.`);
192
- console.log(`${BOLD}🚀 Command:${NC} \`cm @/cm-cro-methodology\``);
193
- console.log(`${BOLD}💡 Try this prompt:${NC} "Analyze this website and show me how to double my sign-up rate."`);
194
- break;
195
- case '10':
196
- console.log(`${Y}${BOLD}10. Open Progress Dashboard${NC} (${C}cm dashboard${NC})`);
197
- console.log(`${BOLD}🎯 Situation:${NC} Want to know how much work is actually completed.`);
198
- console.log(`${BOLD}🚀 Command:${NC} \`cm dashboard\``);
199
- console.log(`${BOLD}💡 Try this prompt:${NC} "Show the dashboard so I can see the progress of current tasks."`);
200
- break;
201
- case '11':
202
- console.log(`${Y}${BOLD}11. See an Interactive Demo${NC} (${C}/cm:demo${NC})`);
203
- console.log(`${BOLD}🎯 Situation:${NC} Want to see CodyMaster perform its magic automatically.`);
204
- console.log(`${BOLD}🚀 Command:${NC} \`/cm:demo\``);
205
- console.log(`${BOLD}💡 Try this prompt:${NC} "Start demo: build a TodoList app from scratch in 1 minute."`);
206
- break;
207
- case '12':
208
- console.log(`${Y}${BOLD}12. Help & Command List${NC} (${C}cm help${NC})`);
209
- console.log(`${BOLD}🎯 Situation:${NC} Forgot a command or looking for more cool skills.`);
210
- console.log(`${BOLD}🚀 Command:${NC} \`cm help\``);
211
- console.log(`${BOLD}💡 Try this prompt:${NC} "List all skills related to Growth Hacking and Marketing."`);
212
- break;
213
- }
214
- }
215
-
216
- console.log('');
217
- console.log(`${W}${BOLD}${isVi ? 'Nhấn ENTER để quay lại...' : 'Press ENTER to go back...'}${NC}`);
218
- };
219
-
220
- const printMenu = () => {
221
- console.clear();
222
- console.log(` ${G}\\${NC} ${O}( \\_/ )${NC} ${G}/${NC}`);
223
- console.log(` ${G}\\${NC} ${O}(${NC} ${G}^ u ^${NC} ${O})${NC} ${G}/${NC}`);
224
- console.log(` ${G}--${NC} ${O}( ___ )${NC} ${G}--${NC} ${G}${BOLD}${isVi ? '✅ Hoàn tất!' : '✅ Done!'}${NC}`);
225
- console.log(` ${O}| [ ] |${NC}`);
226
- console.log(` ${O}'--w-w--'${NC}`);
227
- console.log('');
228
-
229
- if (isVi) {
230
- console.log(` ${W}${BOLD}🎉 Thành công! Bạn đã mở khóa ${skillCount} kỹ năng AI toàn năng:${NC}`);
231
- } else {
232
- console.log(` ${W}${BOLD}🎉 Success! You just unlocked ${skillCount} omnipotent AI skills:${NC}`);
233
- }
234
-
235
- console.log('');
236
- console.log(getSentiment('finish'));
237
- console.log('');
238
-
239
- if (isVi) {
240
- console.log(` ${C}🎯 Orchestration${NC} : Lên kế hoạch & Điều phối Agent`);
241
- console.log(` ${C}🎨 Product${NC} : Thiết kế UX/UI & Tâm lý hành vi`);
242
- console.log(` ${C}🔧 Engineering${NC} : Code Full-stack & Tái cấu trúc`);
243
- console.log(` ${C}🔒 Security${NC} : Bảo mật tự động & Chống rò rỉ`);
244
- console.log(` ${C}⚙️ Operations${NC} : Triển khai an toàn & Quản lý CI/CD`);
245
- console.log(` ${C}📈 Growth${NC} : Tối ưu chuyển đổi (CRO) & Tracking`);
246
- console.log('');
247
- console.log(` ${W}${BOLD}💡 Nhập số (1-12) để xem hướng dẫn & ví dụ:${NC}`);
248
- console.log('');
249
- console.log(` 1. ${Y}Cách CodyMaster vận hành ${NC} → cm-how-it-work`);
250
- console.log(` 2. ${Y}Vibe coding (Zero code) ${NC} → cm-start`);
251
- console.log(` 3. ${Y}Tham gia dự án có sẵn ${NC} → cm-brainstorm-idea`);
252
- console.log(` 4. ${Y}Code giao diện từ URL/Ảnh ${NC} → cm-ux-master`);
253
- console.log(` 5. ${Y}Lập trình TDD & Pair code ${NC} → cm-tdd`);
254
- console.log(` 6. ${Y}Dọn dẹp & Tái cấu trúc ${NC} → cm-clean-code`);
255
- console.log(` 7. ${Y}Quét & Sửa lỗi bảo mật ${NC} → cm-security-gate`);
256
- console.log(` 8. ${Y}Viết tài liệu Docs & API ${NC} → cm-dockit`);
257
- console.log(` 9. ${Y}Tạo Landing Page "WOW" ${NC} → cm-cro-methodology`);
258
- console.log(` 10. ${Y}Bảng theo dõi tiến độ ${NC} → cm dashboard`);
259
- console.log(` 11. ${Y}Xem Demo tự động ${NC} → /cm:demo`);
260
- console.log(` 12. ${Y}Trợ giúp & Cú pháp lệnh ${NC} → cm help`);
261
- } else {
262
- console.log(` ${C}🎯 Orchestration${NC} : Task Planning & Agent Synergy`);
263
- console.log(` ${C}🎨 Product${NC} : UX/UI Mastery & User Psychology`);
264
- console.log(` ${C}🔧 Engineering${NC} : Full-stack TDD & Refactoring`);
265
- console.log(` ${C}🔒 Security${NC} : Automated Gates & Secret Shields`);
266
- console.log(` ${C}⚙️ Operations${NC} : Safe Deployments & CI/CD Excellence`);
267
- console.log(` ${C}📈 Growth${NC} : Conversion Tracking & Hacks`);
268
- console.log('');
269
- console.log(` ${W}${BOLD}💡 Type a number (1-12) for guide & examples:${NC}`);
270
- console.log('');
271
- console.log(` 1. ${Y}The ultimate guide ${NC} → cm-how-it-work`);
272
- console.log(` 2. ${Y}Vibe coding (Zero code) ${NC} → cm-start`);
273
- console.log(` 3. ${Y}Code an existing project ${NC} → cm-brainstorm-idea`);
274
- console.log(` 4. ${Y}Generate UX/UI designs ${NC} → cm-ux-master`);
275
- console.log(` 5. ${Y}Code TDD & Pair coding ${NC} → cm-tdd`);
276
- console.log(` 6. ${Y}Clean & Refactor codebase ${NC} → cm-clean-code`);
277
- console.log(` 7. ${Y}Scan for vulnerabilities ${NC} → cm-security-gate`);
278
- console.log(` 8. ${Y}Write docs & generate APIs ${NC} → cm-dockit`);
279
- console.log(` 9. ${Y}Release WOW landing page ${NC} → cm-cro-methodology`);
280
- console.log(` 10. ${Y}Open progress dashboard ${NC} → cm dashboard`);
281
- console.log(` 11. ${Y}See an interactive demo ${NC} → /cm:demo`);
282
- console.log(` 12. ${Y}Help & Command list ${NC} → cm help`);
283
- }
284
-
285
- console.log('');
286
- console.log(` ${W}${BOLD}${isVi ? '📚 Tài liệu:' : '📚 Documentation:'}${NC} ${C}https://cody.todyle.com/docs${NC}`);
287
- console.log('');
288
- };
289
-
290
- const installOpenViking = () => {
291
- console.log('');
292
- console.log(`${G}${BOLD}OpenViking — Installing Core Feature${NC}`);
293
- try {
294
- console.log(` ${W}Running: pip install openviking${NC}`);
295
- execSync('pip install openviking', { stdio: 'inherit' });
296
- console.log(` ${G}✅ OpenViking installed.${NC}`);
297
- } catch (e) {
298
- try {
299
- console.log(` ${W}Running: pip3 install openviking${NC}`);
300
- execSync('pip3 install openviking', { stdio: 'inherit' });
301
- console.log(` ${G}✅ OpenViking installed.${NC}`);
302
- } catch (err) {
303
- console.log(` ${O}⚠️ Could not install OpenViking automatically. Please run 'pip install openviking' manually.${NC}`);
304
- }
305
- }
306
- console.log('');
307
- };
308
-
309
- const isInstalledAsNpmDependency = () => {
310
- const root = path.resolve(__dirname, '..').replace(/\\/g, '/');
311
- return /[/\\]node_modules[/\\]codymaster$/i.test(root);
312
- };
313
-
314
- const npmCmd = () => (process.platform === 'win32' ? 'npm.cmd' : 'npm');
315
-
316
- const activateCli = () => {
317
- const pkgRoot = path.join(__dirname, '..');
318
-
319
- if (isInstalledAsNpmDependency()) {
320
- console.log(` ${C}CodyMaster CLI (per-project install — official path):${NC}`);
321
- console.log(` ${W}npx cm${NC} or ${W}npx codymaster${NC}`);
322
- console.log(
323
- ` ${DIM}Optional — bare ${W}cm${DIM} in any terminal: ${W}npm install -g codymaster${NC}`,
324
- );
325
- return;
326
- }
327
-
328
- if (fs.existsSync(path.join(pkgRoot, 'package.json'))) {
329
- try {
330
- const pkg = require(path.join(pkgRoot, 'package.json'));
331
- if (pkg.name === 'codymaster') {
332
- console.log(` ${W}Linking ${C}cm${W} for local repo development (npm link)...${NC}`);
333
- execFileSync(npmCmd(), ['link'], { stdio: 'inherit', cwd: pkgRoot });
334
- }
335
- } catch (e) {
336
- // Ignore if npm link fails
337
- }
338
- }
339
- };
340
-
341
- const main = () => {
342
- installOpenViking();
343
- activateCli();
344
- printMenu();
345
- };
346
-
347
- main();
33
+ } catch {}
34
+
35
+ const sentiments = [
36
+ `🐹: ${skillCount} skills stuffed in my cheeks. Ready when you are! ✨`,
37
+ `🐹: Whiskers twitching — type ${W}cm${NC}${C} to start the wizard.`,
38
+ '🐹: Power-nap over. Let\'s build! 🐭',
39
+ ];
40
+ const pick = (arr) => arr[Math.floor(Math.random() * arr.length)];
41
+
42
+ const isGlobal =
43
+ process.env.npm_config_global === 'true' ||
44
+ /[/\\]npm[/\\]node_modules[/\\]codymaster$/i.test(path.resolve(__dirname, '..').replace(/\\/g, '/'));
45
+
46
+ console.log('');
47
+ console.log(` ${G}\\${NC} ${O}( \\_/ )${NC} ${G}/${NC}`);
48
+ console.log(` ${G}\\${NC} ${O}(${NC} ${G}^ u ^${NC} ${O})${NC} ${G}/${NC}`);
49
+ console.log(` ${G}--${NC} ${O}( ___ )${NC} ${G}--${NC} ${G}${W}CodyMaster ready${NC}`);
50
+ console.log(` ${O}| [ ] |${NC}`);
51
+ console.log(` ${O}'--w-w--'${NC}`);
52
+ console.log('');
53
+ console.log(` ${C}${pick(sentiments)}${NC}`);
54
+ console.log('');
55
+
56
+ if (isGlobal) {
57
+ console.log(` Next: run ${W}cm${NC} to start the onboarding wizard.`);
58
+ console.log(` ${DIM}It will detect your AI coding tools and install skills where you choose.${NC}`);
59
+ } else {
60
+ console.log(` Next: run ${W}npx cm${NC} inside this project to start the wizard.`);
61
+ console.log(` ${DIM}For a global \`cm\` command: ${W}npm install -g codymaster${NC}${DIM}.${NC}`);
62
+ }
63
+ console.log('');
64
+ console.log(` ${DIM}Docs: https://cody.todyle.com/docs${NC}`);
65
+ console.log('');