codymaster 5.2.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 (378) hide show
  1. package/CHANGELOG.md +276 -0
  2. package/README.md +216 -333
  3. package/dist/agent/antigravity.js +152 -0
  4. package/dist/agent/backend.js +2 -0
  5. package/dist/agent/claude.js +196 -0
  6. package/dist/agent/codex.js +204 -0
  7. package/dist/agent/copilot.js +284 -0
  8. package/dist/agent/cursor.js +211 -0
  9. package/dist/agent/factory.js +30 -0
  10. package/dist/agent/gemini.js +142 -0
  11. package/dist/agent/opencode.js +205 -0
  12. package/dist/agent/spawn-helper.js +237 -0
  13. package/dist/agent/version.js +25 -0
  14. package/dist/browse/adapter-factory.js +69 -0
  15. package/dist/browse/adapters/agent-browser-adapter.js +305 -0
  16. package/dist/browse/adapters/playwright-adapter.js +309 -0
  17. package/dist/browse/adapters/types.js +6 -0
  18. package/dist/browse/error-collector.js +132 -0
  19. package/dist/browse/event-log.js +109 -0
  20. package/dist/browse/index.js +17 -0
  21. package/dist/browse-server.js +204 -120
  22. package/dist/cli/command-registry.js +12 -0
  23. package/dist/cli/commands/dashboard.js +76 -2
  24. package/dist/cli/commands/engineering.js +218 -4
  25. package/dist/cli/commands/install.js +160 -0
  26. package/dist/cli/commands/learn.js +181 -0
  27. package/dist/cli/commands/parallel.js +138 -0
  28. package/dist/cli/commands/quality.js +105 -0
  29. package/dist/cli/commands/stack.js +49 -0
  30. package/dist/cli/commands/update.js +159 -0
  31. package/dist/cli/update-check.js +94 -10
  32. package/dist/continuity.js +3 -1
  33. package/dist/dashboard.js +47 -6
  34. package/dist/data.js +35 -0
  35. package/dist/execution/tdd-gate.js +113 -0
  36. package/dist/executor/cancel.js +34 -0
  37. package/dist/executor/gc.js +74 -0
  38. package/dist/executor/index.js +14 -0
  39. package/dist/executor/runner.js +70 -0
  40. package/dist/executor/workdir.js +31 -0
  41. package/dist/handoff/contracts.js +22 -0
  42. package/dist/handoff/index.js +18 -0
  43. package/dist/handoff/io.js +121 -0
  44. package/dist/index.js +7 -3
  45. package/dist/indexer/stack-detect.js +219 -0
  46. package/dist/install/copy.js +98 -0
  47. package/dist/install/engine.js +42 -0
  48. package/dist/install/paths.js +70 -0
  49. package/dist/install/platforms/_simple.js +85 -0
  50. package/dist/install/platforms/antigravity.js +91 -0
  51. package/dist/install/platforms/claude-code.js +107 -0
  52. package/dist/install/platforms/cursor.js +77 -0
  53. package/dist/install/platforms/index.js +27 -0
  54. package/dist/install/platforms/simple.js +163 -0
  55. package/dist/install/profiles.js +75 -0
  56. package/dist/install/types.js +2 -0
  57. package/dist/learnings.js +208 -0
  58. package/dist/middleware/metrics.js +30 -0
  59. package/dist/middleware/security-headers.js +14 -0
  60. package/dist/realtime/event-bus.js +29 -0
  61. package/dist/realtime/ws-hub.js +91 -0
  62. package/dist/schemas/task-schema.js +48 -0
  63. package/dist/schemas/validate.js +18 -0
  64. package/dist/skills-lock.js +96 -0
  65. package/dist/sprint-pipeline.js +26 -0
  66. package/dist/storage/index.js +21 -0
  67. package/dist/storage/repos/activity-repo.js +46 -0
  68. package/dist/storage/repos/message-repo.js +39 -0
  69. package/dist/storage/repos/project-repo.js +56 -0
  70. package/dist/storage/repos/task-repo.js +142 -0
  71. package/dist/storage/services/project-service.js +49 -0
  72. package/dist/storage/services/task-service.js +97 -0
  73. package/dist/storage/sqlite.js +113 -0
  74. package/dist/tier-classify.js +131 -0
  75. package/dist/ui/onboarding.js +51 -15
  76. package/dist/utils/cli-utils.js +7 -2
  77. package/dist/utils/design-taste.js +108 -0
  78. package/dist/utils/output-compress.js +143 -0
  79. package/dist/vibecoding-index.js +126 -0
  80. package/package.json +19 -4
  81. package/public/dashboard/app.js +52 -1
  82. package/scripts/build-skills-lock.mjs +88 -0
  83. package/scripts/build-skills.mjs +187 -28
  84. package/scripts/compress-skill.mjs +73 -0
  85. package/scripts/deprecate-skill.mjs +72 -0
  86. package/scripts/install.sh +170 -0
  87. package/scripts/mcp-bridge.js +2 -2
  88. package/scripts/postinstall.js +54 -287
  89. package/scripts/update-changelog.sh +88 -0
  90. package/scripts/validate-skills.mjs +101 -4
  91. package/skills/_shared/SKILL_TEMPLATE.md +62 -0
  92. package/skills/cm-autopilot/scripts/autopilot.py +19 -2
  93. package/skills/cm-brainstorm-idea/SKILL.md +9 -0
  94. package/skills/cm-clean-code/SKILL.md +20 -0
  95. package/skills/cm-code-review/SKILL.md +21 -0
  96. package/skills/cm-codeintell/SKILL.md +9 -0
  97. package/skills/cm-conductor-worktrees/SKILL.archive.md +28 -0
  98. package/skills/cm-conductor-worktrees/SKILL.md +17 -19
  99. package/skills/cm-continuity/SKILL.md +9 -0
  100. package/skills/cm-dashboard/SKILL.archive.md +15 -0
  101. package/skills/cm-dashboard/SKILL.md +20 -9
  102. package/skills/cm-dashboard/ui/app.js +9 -1
  103. package/skills/cm-debugging/SKILL.md +9 -0
  104. package/skills/cm-design-studio/SKILL.archive.md +34 -0
  105. package/skills/cm-design-studio/SKILL.md +17 -25
  106. package/skills/cm-design-system/SKILL.md +1 -0
  107. package/skills/cm-engineering-meta/SKILL.archive.md +73 -0
  108. package/skills/cm-engineering-meta/SKILL.md +16 -63
  109. package/skills/cm-execution/SKILL.md +98 -0
  110. package/skills/cm-git-worktrees/SKILL.archive.md +157 -0
  111. package/skills/cm-git-worktrees/SKILL.md +15 -146
  112. package/skills/cm-identity-guard/SKILL.md +8 -0
  113. package/skills/cm-planning/SKILL.md +63 -92
  114. package/skills/cm-post-deploy-canary/SKILL.archive.md +22 -0
  115. package/skills/cm-post-deploy-canary/SKILL.md +17 -13
  116. package/skills/cm-qa-visual-cli/SKILL.archive.md +22 -0
  117. package/skills/cm-qa-visual-cli/SKILL.md +16 -12
  118. package/skills/cm-quality-gate/SKILL.md +38 -0
  119. package/skills/cm-safe-deploy/SKILL.md +9 -0
  120. package/skills/cm-second-opinion-cli/SKILL.archive.md +23 -0
  121. package/skills/cm-second-opinion-cli/SKILL.md +17 -14
  122. package/skills/cm-secret-shield/SKILL.archive.md +580 -0
  123. package/skills/cm-secret-shield/SKILL.md +15 -569
  124. package/skills/cm-security-gate/SKILL.archive.md +239 -0
  125. package/skills/cm-security-gate/SKILL.md +15 -228
  126. package/skills/cm-skill-health/SKILL.archive.md +83 -0
  127. package/skills/cm-skill-health/SKILL.md +16 -73
  128. package/skills/cm-skill-index/SKILL.md +8 -0
  129. package/skills/cm-skill-mastery/SKILL.archive.md +156 -0
  130. package/skills/cm-skill-mastery/SKILL.md +16 -146
  131. package/skills/cm-skill-search/SKILL.archive.md +49 -0
  132. package/skills/cm-skill-search/SKILL.md +17 -40
  133. package/skills/cm-skill-share/SKILL.archive.md +58 -0
  134. package/skills/cm-skill-share/SKILL.md +17 -49
  135. package/skills/cm-sprint-bus/SKILL.md +9 -0
  136. package/skills/cm-start/SKILL.md +17 -0
  137. package/skills/cm-tdd/SKILL.md +19 -0
  138. package/skills/cm-terminal/SKILL.md +15 -0
  139. package/skills/cm-test-gate/SKILL.archive.md +245 -0
  140. package/skills/cm-test-gate/SKILL.md +15 -234
  141. package/skills/cm-ui-preview/SKILL.archive.md +153 -0
  142. package/skills/cm-ui-preview/SKILL.md +16 -143
  143. package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +1 -1
  144. package/skills/cm-ux-master/mcp/mcp-config.json +1 -1
  145. package/skills/cm-ux-master/mcp/server.py +2 -2
  146. package/skills/profiles/design.txt +1 -1
  147. package/skills/profiles/full.txt +0 -10
  148. package/skills/profiles/growth.txt +8 -8
  149. package/skills/profiles/knowledge.txt +1 -1
  150. package/skills/profiles/top35.json +41 -0
  151. package/adapters/antigravity.js +0 -15
  152. package/adapters/claude-code.js +0 -17
  153. package/adapters/cursor.js +0 -16
  154. package/skills/cm-ads-tracker/SKILL.md +0 -401
  155. package/skills/cm-ads-tracker/evals/evals.json +0 -55
  156. package/skills/cm-ads-tracker/references/gtm-architecture.md +0 -321
  157. package/skills/cm-ads-tracker/references/industry-events.md +0 -294
  158. package/skills/cm-ads-tracker/references/platforms-api.md +0 -238
  159. package/skills/cm-ads-tracker/templates/capi-payload.md +0 -79
  160. package/skills/cm-ads-tracker/templates/datalayer-push.js +0 -104
  161. package/skills/cm-ads-tracker/templates/gtm-variables.js +0 -56
  162. package/skills/cm-auto-publisher/SKILL.md +0 -81
  163. package/skills/cm-booking-calendar/SKILL.md +0 -521
  164. package/skills/cm-booking-calendar/references/industry-patterns.md +0 -527
  165. package/skills/cm-booking-calendar/templates/booking-form.css +0 -626
  166. package/skills/cm-booking-calendar/templates/booking-form.html +0 -477
  167. package/skills/cm-booking-calendar/templates/calendar-engine.js +0 -419
  168. package/skills/cm-booking-calendar/templates/calendar-export.js +0 -395
  169. package/skills/cm-booking-calendar/templates/reminder-config.js +0 -629
  170. package/skills/cm-content-factory/.content-factory-state.json +0 -132
  171. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +0 -1
  172. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +0 -1
  173. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  174. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  175. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  176. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  177. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  178. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  179. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  180. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  181. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  182. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  183. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  184. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  185. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  186. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  187. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  188. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  189. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  190. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  191. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  192. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  193. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  194. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  195. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  196. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  197. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  198. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  199. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  200. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  201. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  202. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  203. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  204. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  205. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  206. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  207. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  208. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  209. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  210. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  211. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  212. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  213. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  214. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  215. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  216. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +0 -5
  217. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  218. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  219. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  220. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  221. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  222. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  223. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  224. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  225. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  226. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  227. package/skills/cm-content-factory/.git 2/refs/heads/main +0 -1
  228. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +0 -1
  229. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +0 -76
  230. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +0 -1
  231. package/skills/cm-content-factory/AGENTS.md +0 -61
  232. package/skills/cm-content-factory/CLAUDE.md +0 -63
  233. package/skills/cm-content-factory/CURSOR.md +0 -43
  234. package/skills/cm-content-factory/Content Factory.zip +0 -0
  235. package/skills/cm-content-factory/SKILL.md +0 -416
  236. package/skills/cm-content-factory/cf +0 -313
  237. package/skills/cm-content-factory/config.schema.json +0 -397
  238. package/skills/cm-content-factory/dashboard/app.js +0 -556
  239. package/skills/cm-content-factory/dashboard/index.html +0 -397
  240. package/skills/cm-content-factory/dashboard/style.css +0 -1211
  241. package/skills/cm-content-factory/examples/01-real-estate.config.json +0 -146
  242. package/skills/cm-content-factory/examples/02-personal-finance.config.json +0 -146
  243. package/skills/cm-content-factory/examples/03-health-wellness.config.json +0 -147
  244. package/skills/cm-content-factory/examples/04-saas-software.config.json +0 -147
  245. package/skills/cm-content-factory/examples/05-legal-services.config.json +0 -147
  246. package/skills/cm-content-factory/examples/06-insurance.config.json +0 -146
  247. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +0 -146
  248. package/skills/cm-content-factory/examples/08-online-education.config.json +0 -147
  249. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +0 -147
  250. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +0 -147
  251. package/skills/cm-content-factory/examples/11-home-services.config.json +0 -146
  252. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +0 -147
  253. package/skills/cm-content-factory/examples/13-pet-care.config.json +0 -147
  254. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +0 -147
  255. package/skills/cm-content-factory/examples/15-ai-automation.config.json +0 -147
  256. package/skills/cm-content-factory/examples/16-wedding-events.config.json +0 -147
  257. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +0 -148
  258. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +0 -147
  259. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +0 -148
  260. package/skills/cm-content-factory/examples/20-solar-energy.config.json +0 -147
  261. package/skills/cm-content-factory/examples/fitness-blog.config.json +0 -116
  262. package/skills/cm-content-factory/examples/tech-blog.config.json +0 -107
  263. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +0 -72
  264. package/skills/cm-content-factory/extensions/hooks.py +0 -126
  265. package/skills/cm-content-factory/extensions/openclaw_adapter.py +0 -132
  266. package/skills/cm-content-factory/landing/docs/content/changelog.md +0 -36
  267. package/skills/cm-content-factory/landing/docs/content/deployment.md +0 -46
  268. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +0 -67
  269. package/skills/cm-content-factory/landing/docs/content/memory-system.md +0 -38
  270. package/skills/cm-content-factory/landing/docs/content/openspace.md +0 -27
  271. package/skills/cm-content-factory/landing/docs/content/use-cases.md +0 -26
  272. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +0 -28
  273. package/skills/cm-content-factory/landing/docs/index.html +0 -240
  274. package/skills/cm-content-factory/landing/index.html +0 -680
  275. package/skills/cm-content-factory/landing/script.js +0 -143
  276. package/skills/cm-content-factory/landing/style.css +0 -1216
  277. package/skills/cm-content-factory/landing/translations.js +0 -508
  278. package/skills/cm-content-factory/logs/events.jsonl +0 -11
  279. package/skills/cm-content-factory/profiles/_template.profile.json +0 -231
  280. package/skills/cm-content-factory/profiles/finance.profile.json +0 -278
  281. package/skills/cm-content-factory/profiles/legal.profile.json +0 -263
  282. package/skills/cm-content-factory/profiles/medical-research.profile.json +0 -321
  283. package/skills/cm-content-factory/profiles/technology.profile.json +0 -275
  284. package/skills/cm-content-factory/scripts/agent_dispatcher.py +0 -266
  285. package/skills/cm-content-factory/scripts/audit.py +0 -106
  286. package/skills/cm-content-factory/scripts/dashboard_server.py +0 -225
  287. package/skills/cm-content-factory/scripts/deploy.py +0 -146
  288. package/skills/cm-content-factory/scripts/extract.py +0 -132
  289. package/skills/cm-content-factory/scripts/landing_generator.py +0 -459
  290. package/skills/cm-content-factory/scripts/memory.py +0 -521
  291. package/skills/cm-content-factory/scripts/monetize.py +0 -239
  292. package/skills/cm-content-factory/scripts/pipeline.py +0 -357
  293. package/skills/cm-content-factory/scripts/plan.py +0 -163
  294. package/skills/cm-content-factory/scripts/publish.py +0 -145
  295. package/skills/cm-content-factory/scripts/research.py +0 -337
  296. package/skills/cm-content-factory/scripts/scaffold.py +0 -464
  297. package/skills/cm-content-factory/scripts/scoreboard.py +0 -336
  298. package/skills/cm-content-factory/scripts/seo.py +0 -90
  299. package/skills/cm-content-factory/scripts/state_manager.py +0 -320
  300. package/skills/cm-content-factory/scripts/token_manager.py +0 -268
  301. package/skills/cm-content-factory/scripts/validate.py +0 -221
  302. package/skills/cm-content-factory/scripts/wizard.py +0 -329
  303. package/skills/cm-content-factory/scripts/write.py +0 -93
  304. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  305. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +0 -90
  306. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +0 -54
  307. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +0 -38
  308. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +0 -65
  309. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +0 -48
  310. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +0 -39
  311. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +0 -42
  312. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +0 -51
  313. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +0 -52
  314. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +0 -86
  315. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +0 -80
  316. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +0 -58
  317. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +0 -102
  318. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +0 -45
  319. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +0 -29
  320. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +0 -55
  321. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +0 -29
  322. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +0 -41
  323. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +0 -40
  324. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +0 -56
  325. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +0 -46
  326. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +0 -45
  327. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +0 -45
  328. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +0 -108
  329. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +0 -22
  330. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +0 -52
  331. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +0 -58
  332. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +0 -92
  333. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +0 -575
  334. package/skills/cm-content-factory/tests/conftest.py +0 -66
  335. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +0 -125
  336. package/skills/cm-content-factory/tests/test_memory.py +0 -128
  337. package/skills/cm-content-factory/tests/test_pipeline.py +0 -107
  338. package/skills/cm-content-factory/tests/test_research.py +0 -56
  339. package/skills/cm-content-factory/tests/test_state_manager.py +0 -131
  340. package/skills/cm-content-factory/tests/test_token_manager.py +0 -110
  341. package/skills/cm-content-factory/tests/test_wizard.py +0 -121
  342. package/skills/cm-cro-methodology/SKILL.md +0 -290
  343. package/skills/cm-cro-methodology/references/COPYWRITING.md +0 -178
  344. package/skills/cm-cro-methodology/references/OBJECTIONS.md +0 -135
  345. package/skills/cm-cro-methodology/references/PERSUASION.md +0 -158
  346. package/skills/cm-cro-methodology/references/RESEARCH.md +0 -220
  347. package/skills/cm-cro-methodology/references/funnel-analysis.md +0 -365
  348. package/skills/cm-cro-methodology/references/testing-methodology.md +0 -330
  349. package/skills/cm-google-form/SKILL.md +0 -266
  350. package/skills/cm-google-form/templates/apps-script.js +0 -55
  351. package/skills/cm-google-form/templates/form-markup.html +0 -110
  352. package/skills/cm-google-form/templates/form-submit.js +0 -201
  353. package/skills/cm-google-form/templates/toast.css +0 -152
  354. package/skills/cm-growth-hacking/SKILL.md +0 -282
  355. package/skills/cm-growth-hacking/bottom-sheet-engine.md +0 -261
  356. package/skills/cm-growth-hacking/calendar-integration.md +0 -264
  357. package/skills/cm-growth-hacking/references/engagement-patterns.md +0 -346
  358. package/skills/cm-growth-hacking/templates/bottom-sheet.css +0 -528
  359. package/skills/cm-growth-hacking/templates/bottom-sheet.js +0 -269
  360. package/skills/cm-growth-hacking/templates/calendar-cta.js +0 -213
  361. package/skills/cm-growth-hacking/templates/tracking-events.js +0 -211
  362. package/skills/cm-growth-hacking/templates/trigger-manager.js +0 -254
  363. package/skills/cm-growth-hacking/tracking-events.md +0 -246
  364. package/skills/cm-growth-hacking/trigger-system.md +0 -342
  365. package/skills/cm-jtbd/SKILL.md +0 -98
  366. package/skills/cm-notebooklm/SKILL.md +0 -156
  367. package/skills/cm-notebooklm/references/command_reference.md +0 -94
  368. package/skills/cm-notebooklm/references/workflows.md +0 -60
  369. package/skills/cm-notebooklm/resources/knowledge_sources.md +0 -106
  370. package/skills/cm-notebooklm/scripts/brain-sync.sh +0 -453
  371. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +0 -101
  372. package/skills/cm-readit/SKILL.md +0 -289
  373. package/skills/cm-readit/audio-player.md +0 -206
  374. package/skills/cm-readit/examples/blog-reader.js +0 -352
  375. package/skills/cm-readit/examples/voice-cro.js +0 -390
  376. package/skills/cm-readit/tts-engine.md +0 -262
  377. package/skills/cm-readit/ui-patterns.md +0 -362
  378. package/skills/cm-readit/voice-cro.md +0 -223
@@ -1,521 +0,0 @@
1
- ---
2
- name: cm-booking-calendar
3
- description: |
4
- Booking & Calendar CRO Engine — Packages all booking, scheduling, .ics download, and Google Calendar integration into a revenue-boosting system.
5
- Auto-detect industry → select matching pattern → generate calendar engine + booking UI + export logic.
6
- Integrates with cm-google-form (form → sheet) and cm-ads-tracker (conversion events).
7
-
8
- ALWAYS trigger for: booking, appointment, calendar, reminder,
9
- download ics, google calendar, add to calendar, book appointment, schedule,
10
- "create booking", "add scheduling", "appointment reminder system", "calendar CRO", "reduce no-show"
11
- allowed-tools: Read, Write, Edit, Glob, Grep, Browser
12
- version: 1.0
13
- priority: HIGH
14
- skills:
15
- - cm-google-form
16
- - cm-ads-tracker
17
- ---
18
-
19
- # Booking Calendar CRO Engine
20
-
21
- > **Booking + Calendar Reminders = Replace expensive SMS/notification costs.**
22
- > Auto-detect industry → Ready-made patterns → Generate code → Increase revenue.
23
- > Zero dependencies, works on any static site.
24
-
25
- ---
26
-
27
- ## 💰 WHY This Increases Revenue
28
-
29
- | Metric | Impact | Mechanism |
30
- |--------|--------|-----------|
31
- | **No-show reduced 30-60%** | Directly increases revenue | Calendar reminder replaces SMS, free |
32
- | **Conversion Rate +15-25%** | "Add to Calendar" CTA = micro-commitment | User commits via action, not just form |
33
- | **LTV increases 2-3x** | Appointments = continuous touchpoints | Brand exposure every time calendar opens |
34
- | **SMS/notification cost = 0** | Saves $0.05-0.10/message | Calendar notification is free forever |
35
- | **Organic referrals** | Calendar events can be shared | "Invite a friend" via calendar |
36
-
37
- ---
38
-
39
- ## 🎯 When to Use
40
-
41
- | Trigger | Action |
42
- |---------|--------|
43
- | User says "booking", "appointment", "schedule" | Activate — start Phase 1 |
44
- | User says "reminder", "calendar" | Activate — focus calendar export |
45
- | User says "reduce no-show", "increase conversion" | Activate — focus ROI explanation |
46
- | User says "download calendar", "download ics" | Jump to Phase 4 (calendar-export.js) |
47
- | Detected booking form on website | Suggest this skill proactively |
48
-
49
- ---
50
-
51
- ## 📋 7-Phase Workflow
52
-
53
- ```
54
- Phase 1: DISCOVER → Auto-detect industry, scan existing forms/booking
55
- Phase 2: SOCRATIC GATE → Ask 5-7 strategic questions
56
- Phase 3: CONFIGURE → Select industry pattern + customize
57
- Phase 4: BUILD → Generate calendar engine + UI + export
58
- Phase 5: INTEGRATE → Wire to site + cm-google-form + cro-tracking
59
- Phase 6: VERIFY → Test ICS, GCal, form submit, tracking events
60
- Phase 7: REVENUE REPORT → Explain ROI to user per feature
61
- ```
62
-
63
- > 🔴 **Rule:** NEVER skip Phase 1 & 2. Always scan first, ask second.
64
-
65
- ---
66
-
67
- ## Phase 1: DISCOVER (Auto-Detect Industry & Scan)
68
-
69
- **Goal:** Understand the website's industry and existing booking/form infrastructure.
70
-
71
- ### 1A. Industry Auto-Detection
72
-
73
- Scan the website to classify industry:
74
-
75
- ```
76
- grep -ri "keywords\|description\|og:title" --include="*.html" --include="*.astro" .
77
- grep -ri "service\|booking\|appointment" --include="*.html" --include="*.astro" .
78
- ```
79
-
80
- **Detection signals:**
81
-
82
- | Signal | Where to Find | Example |
83
- |--------|---------------|---------|
84
- | Meta keywords | `<meta name="keywords">` | "obstetrics, ultrasound" → Healthcare:OB/GYN |
85
- | Page titles | `<title>`, `<h1>` | "Dental Clinic" → Healthcare:Dental |
86
- | Service lists | Service section content | "Haircut, coloring, perming" → Salon |
87
- | Form fields | `<select>` options | "Prenatal exam, 5D ultrasound" → OB/GYN |
88
- | Address/Maps | Google Maps embed | Location-based business |
89
-
90
- ### 1B. Scan Existing Forms
91
-
92
- ```
93
- grep -r "data-form-type\|onsubmit\|<form\|booking" --include="*.html" --include="*.astro" .
94
- ```
95
-
96
- For each form found, extract:
97
-
98
- | Info | How to Find |
99
- |------|-------------|
100
- | Form type | `data-form-type` or form class/id |
101
- | Fields | `<input name="...">`, `<select name="...">` |
102
- | Calendar integration | `google.com/calendar`, `.ics`, `VCALENDAR` |
103
- | Submit handler | `onsubmit` attribute or JS handler |
104
-
105
- ### 1C. Scan Existing Calendar Code
106
-
107
- ```
108
- grep -r "VCALENDAR\|google.com/calendar\|\.ics\|VEVENT\|VALARM" --include="*.js" --include="*.html" .
109
- ```
110
-
111
- ### Output: Discovery Report
112
-
113
- ```markdown
114
- ## Discovery Report
115
-
116
- **Industry detected:** [industry name] (confidence: HIGH/MEDIUM/LOW)
117
- **Detection signals:** [list signals found]
118
- **Existing forms:** [count] forms found
119
- **Existing calendar:** [YES/NO] — [details if yes]
120
- **Recommended pattern:** [industry-pattern key]
121
- ```
122
-
123
- ---
124
-
125
- ## Phase 2: SOCRATIC GATE (Strategic Questions)
126
-
127
- > 🔴 **MANDATORY.** Ask ALL in ONE message. Max 7 questions.
128
-
129
- Ask user these questions, adapting language to their industry:
130
-
131
- ### Core Questions (Always Ask)
132
-
133
- 1. **Industry confirmation** — I detected your website is [industry]. Is that correct? Any unique specifics?
134
- 2. **Appointment frequency** — How often do customers need appointments? (one-time / weekly / monthly / treatment course of X sessions / milestone-based)
135
- 3. **Information to collect** — Besides phone + name, what else do you need? (email, ID, address, specific service, notes)
136
- 4. **Reminder content** — What should customers prepare before arriving? (fasting required, bring documents, arrive 15 minutes early...)
137
- 5. **Reminder timing** — How far in advance to remind? (1 day + 2 hours before is default, need additional 1 week before?)
138
-
139
- ### Extended Questions (Ask if Relevant)
140
-
141
- 6. **Google Maps** — Want to embed a Google Maps link in the calendar event? Provide the link or location name.
142
- 7. **Follow-up** — After the appointment, do you want to automatically suggest booking the next one? (re-booking prompt)
143
-
144
- ### User WOW Information
145
-
146
- After receiving answers, explain back to user **WHY** each feature increases revenue. This is the "exceeding expectations" moment:
147
-
148
- ```markdown
149
- ## 💡 Why Each Feature Drives Revenue:
150
-
151
- 1. **Calendar Reminder replaces SMS** → Saves ~$0.05-0.10/message.
152
- If 100 appointments/month = saves $5-10/month, $60-120/year.
153
-
154
- 2. **"Add to Calendar" CTA** → Increases commitment 40%.
155
- Research shows: users who add calendar events have 2.5x higher
156
- show-up rate compared to form-only submissions.
157
-
158
- 3. **Google Maps in event** → Reduces "got lost" cancellations 25%.
159
- Calendar event with location → 1 tap opens navigation → no drop-off.
160
-
161
- 4. **Preparation reminders** → Reduces cancellations/postponements 35%.
162
- "Remember to fast for 8 hours" in reminder → patient prepares correctly
163
- → no rescheduling needed → no lost revenue.
164
-
165
- 5. **Re-booking prompt** → Increases LTV 2x.
166
- After 6 months auto-reminds "Time for your next check-up" → recurring revenue.
167
- ```
168
-
169
- ---
170
-
171
- ## Phase 3: CONFIGURE (Select Pattern & Customize)
172
-
173
- **Goal:** Load industry pattern + apply user customizations.
174
-
175
- ### 3A. Load Industry Pattern
176
-
177
- Read `references/industry-patterns.md` → find matching industry → load defaults.
178
-
179
- ### 3B. Override with User Answers
180
-
181
- Merge user answers from Phase 2 onto the industry defaults:
182
-
183
- ```javascript
184
- const config = {
185
- ...INDUSTRY_PATTERNS[detectedIndustry], // defaults
186
- ...userOverrides, // from Phase 2
187
- // Computed fields
188
- googleMapsUrl: userGoogleMapsUrl || buildMapsSearchUrl(clinicName, clinicAddress),
189
- reminderAlarms: buildAlarmConfig(userReminderTiming),
190
- calendarTitle: `${userServiceName} — ${clinicName}`,
191
- };
192
- ```
193
-
194
- ### 3C. Customization Points
195
-
196
- | Setting | Source | Default |
197
- |---------|--------|---------|
198
- | Industry pattern | Auto-detect + user confirm | From detection |
199
- | Clinic/business name | User input | From `<title>` tag |
200
- | Address | User input | From Google Maps embed or contact section |
201
- | Google Maps link | User provides or auto-build | Search URL |
202
- | Reminder content | Industry default + user override | From pattern |
203
- | Reminder timing | User choice | 1 day + 2 hours before |
204
- | Working hours | User input | Mon-Sat 8:00-17:00 |
205
- | Services list | Scan existing `<select>` or user input | From form |
206
- | Follow-up interval | Industry default + user override | From pattern |
207
- | Form fields | Industry default + user additions | phone + name + date + service |
208
-
209
- ---
210
-
211
- ## Phase 4: BUILD (Generate Code)
212
-
213
- ### 4A. Calendar Engine (`templates/calendar-engine.js`)
214
-
215
- > See `templates/calendar-engine.js` for the full template.
216
-
217
- Core `BookingCalendarEngine` class:
218
-
219
- | Method | Purpose |
220
- |--------|---------|
221
- | `constructor(config)` | Init with industry config |
222
- | `generateSchedule(startDate, preferences)` | Build appointment list from milestones/frequency |
223
- | `getSmartDateChips()` | Return next 5 smart date options (Today, Tomorrow, next available slots) |
224
- | `getTimeSlots(date)` | Return available time slots for a given date |
225
- | `filterPastAppointments(appointments)` | Remove past dates |
226
- | `getNextAppointment()` | Get the soonest upcoming appointment |
227
-
228
- ### 4B. Calendar Export (`templates/calendar-export.js`)
229
-
230
- > See `templates/calendar-export.js` for the full template.
231
-
232
- | Function | Purpose |
233
- |----------|---------|
234
- | `buildGoogleCalUrl(event, config)` | Generate Google Calendar deep link |
235
- | `buildICSContent(events, config)` | Generate RFC 5545 .ics content with VALARM |
236
- | `triggerICSDownload(content, filename)` | Trigger browser download |
237
- | `addToGoogleCal(event)` | Open GCal in new tab |
238
- | `addAllToGoogleCal(events)` | Batch add with confirmation |
239
- | `downloadICS(event)` | Download single event .ics |
240
- | `downloadAllICS(events)` | Download all events as single .ics |
241
- | `detectDevice()` | iOS → ICS, Android → GCal deep link |
242
- | `buildCalendarCTA(event, config)` | Generate post-submit calendar buttons HTML |
243
-
244
- ### 4C. Booking Form UI (`templates/booking-form.html`)
245
-
246
- > See `templates/booking-form.html` for markup templates.
247
-
248
- **3 form variants:**
249
-
250
- | Variant | Use Case |
251
- |---------|----------|
252
- | `bottom-sheet` | Mobile-first popup (like existing BookingBottomSheet) |
253
- | `inline` | Embedded in page content |
254
- | `standalone` | Full-page booking form |
255
-
256
- **Required attributes:**
257
- ```html
258
- <form data-form-type="booking"
259
- data-industry="[INDUSTRY_KEY]"
260
- onsubmit="window.submitBooking(event)">
261
- <input type="hidden" name="url" value="">
262
- <input type="hidden" name="industry" value="[INDUSTRY_KEY]">
263
- <!-- form fields per industry config -->
264
- <button type="submit">Confirm Booking</button>
265
- </form>
266
-
267
- <!-- Post-submit Calendar CTA (shown after successful submit) -->
268
- <div class="booking-calendar-cta" id="booking-calendar-cta" hidden>
269
- <p class="cta-title">📅 Add to your calendar so you don't forget!</p>
270
- <div class="cta-buttons">
271
- <button onclick="addToGoogleCal()" class="btn-gcal">
272
- <img src="gcal-icon" alt=""> Google Calendar
273
- </button>
274
- <button onclick="downloadICS()" class="btn-ics">
275
- 📥 Download calendar file (.ics)
276
- </button>
277
- </div>
278
- <p class="cta-benefit">💡 Your calendar will automatically remind you 1 day before — completely free</p>
279
- </div>
280
- ```
281
-
282
- ### 4D. Booking Form CSS (`templates/booking-form.css`)
283
-
284
- > See `templates/booking-form.css` for full styles.
285
-
286
- Key components:
287
- - Bottom sheet with handle
288
- - Date chips grid (3-column, touch targets ≥ 44px)
289
- - Time slot chips
290
- - Calendar CTA section (post-submit — green accent, celebration feel)
291
- - Toast notifications (success/error/retrying)
292
- - Mobile-first responsive
293
-
294
- ### 4E. Reminder Configuration (`templates/reminder-config.js`)
295
-
296
- > See `templates/reminder-config.js` for the full config object.
297
-
298
- Each industry config:
299
- ```javascript
300
- {
301
- key: 'obgyn',
302
- name: 'OB/GYN',
303
- icon: '🏥',
304
- frequency: 'milestone',
305
- milestones: [...],
306
- reminderAlarms: [
307
- { trigger: '-P1D', description: 'Appointment reminder for tomorrow' },
308
- { trigger: '-PT2H', description: 'Your appointment today at {time}' }
309
- ],
310
- reminderContent: {
311
- preparation: 'Bring your pregnancy record, latest test results',
312
- arriveEarly: '15 minutes',
313
- fasting: false,
314
- bringDocuments: ['Pregnancy record', 'ID card', 'Insurance card'],
315
- },
316
- calendarTitleTemplate: '{service} — {clinicName}',
317
- calendarDescTemplate: '{desc}\n\n📍 {clinicName}\n📌 {address}\n📞 {phone}\n🗺️ {mapsUrl}',
318
- workingHours: { start: '08:00', end: '17:00', days: [1,2,3,4,5,6] },
319
- bookingFields: ['phone', 'name', 'date', 'timeSlot', 'service', 'note'],
320
- conversionValue: 50,
321
- followUp: { interval: 'per-milestone', promptText: 'Time for your next check-up' }
322
- }
323
- ```
324
-
325
- ---
326
-
327
- ## Phase 5: INTEGRATE (Wire Everything)
328
-
329
- ### 5A. Wire to Website
330
-
331
- 1. **Add CSS** → Append booking-form.css to main stylesheet
332
- 2. **Add JS** → Add calendar-engine.js + calendar-export.js + reminder-config.js
333
- 3. **Add HTML** → Insert booking form component (bottom-sheet or inline)
334
- 4. **Configure** → Set industry config, clinic info, Google Maps link
335
- 5. **Wire triggers** → Connect CTA buttons to open booking sheet
336
-
337
- ### 5B. Integrate with `cm-google-form`
338
-
339
- The booking form uses the SAME `submitToGoogleSheet()` from cm-google-form skill, with extra fields:
340
-
341
- ```javascript
342
- // After cm-google-form success callback:
343
- window.submitToGoogleSheet = function(event) {
344
- // ... existing cm-google-form logic ...
345
-
346
- // ADDITION: After success, show calendar CTA
347
- .then(() => {
348
- showCalendarCTA(formData); // from cm-booking-calendar skill
349
-
350
- // Track calendar availability
351
- dataLayer.push({
352
- event: 'cro_booking_submit',
353
- event_id: generateUUID(),
354
- content_name: formData.service,
355
- value: INDUSTRY_CONFIG.conversionValue,
356
- currency: 'USD'
357
- });
358
- });
359
- };
360
- ```
361
-
362
- **Google Sheet extra columns:**
363
-
364
- | Column | Value | Purpose |
365
- |--------|-------|---------|
366
- | Timestamp | auto | Timestamp |
367
- | (form fields) | from form | Core data |
368
- | Page Source | `url` field | Attribution |
369
- | Calendar Added | YES/NO | Track calendar adoption |
370
- | Calendar Type | gcal/ics/none | Which calendar used |
371
-
372
- ### 5C. Integrate with `cm-ads-tracker`
373
-
374
- New dataLayer events for booking:
375
-
376
- ```javascript
377
- // Event 1: Booking form submitted
378
- dataLayer.push({
379
- event: 'cro_booking_submit',
380
- event_id: '[UUID]',
381
- content_name: '[service_name]',
382
- value: [conversion_value],
383
- currency: 'USD',
384
- booking_date: '[selected_date]',
385
- booking_time: '[selected_time]',
386
- industry: '[industry_key]'
387
- });
388
-
389
- // Event 2: Calendar added (Google Cal or ICS)
390
- dataLayer.push({
391
- event: 'cro_calendar_add',
392
- event_id: '[UUID]',
393
- content_name: '[service_name]',
394
- calendar_type: 'gcal' | 'ics',
395
- appointments_count: [number],
396
- industry: '[industry_key]'
397
- });
398
- ```
399
-
400
- **GTM Tags to create:**
401
-
402
- | Tag | Trigger | Platform |
403
- |-----|---------|----------|
404
- | FB Lead | cro_booking_submit | Facebook Pixel |
405
- | TikTok SubmitForm | cro_booking_submit | TikTok Pixel |
406
- | Google Ads Lead | cro_booking_submit | Google Ads |
407
- | GA4 booking_submit | cro_booking_submit | GA4 |
408
- | GA4 calendar_add | cro_calendar_add | GA4 |
409
-
410
- ---
411
-
412
- ## Phase 6: VERIFY (Test & Report)
413
-
414
- ### Test Checklist
415
-
416
- | # | Test Case | Expected | Status |
417
- |---|-----------|----------|--------|
418
- | 1 | Open booking form | Bottom sheet slides up | |
419
- | 2 | Select date chip | Chip active + time slots appear | |
420
- | 3 | Select time slot | Chip active + hidden input updated | |
421
- | 4 | Submit valid form | Toast success → Calendar CTA appears | |
422
- | 5 | Click "Google Calendar" | New tab with pre-filled GCal event | |
423
- | 6 | Click "Download calendar file" | .ics file downloads | |
424
- | 7 | Open .ics on iOS | Apple Calendar shows event with reminders | |
425
- | 8 | Open .ics on Android | Calendar app shows event | |
426
- | 9 | Check Google Sheet | New row with calendarAdded column | |
427
- | 10 | Check GTM Preview | cro_booking_submit fires | |
428
- | 11 | Check GTM Preview | cro_calendar_add fires on calendar click | |
429
- | 12 | Submit invalid phone | Validation error toast | |
430
- | 13 | Network offline | 3 retries → error toast with fallback | |
431
- | 14 | Verify reminder alarms | Calendar shows reminder 1d + 2h before | |
432
- | 15 | Verify Google Maps in event | Location link opens Maps correctly | |
433
-
434
- ### Verification Commands
435
-
436
- ```bash
437
- # Check calendar export works
438
- node -e "const c = require('./calendar-export.js'); console.log(c.buildICSContent([{...}], config))"
439
-
440
- # Validate ICS format
441
- grep -c "BEGIN:VEVENT" test-output.ics
442
- grep -c "VALARM" test-output.ics
443
- ```
444
-
445
- ---
446
-
447
- ## Phase 7: REVENUE REPORT (Explain ROI to User)
448
-
449
- > 🔴 **This phase is what makes the skill exceed expectations.**
450
-
451
- After implementation, generate a revenue impact report for the user:
452
-
453
- ```markdown
454
- ## 📊 Revenue Impact Report
455
-
456
- ### Features Implemented:
457
-
458
- | Feature | Impact | Mechanism |
459
- |---------|--------|-----------|
460
- | Calendar Reminder | Reduces no-show 30-60% | Auto-reminder, no cost |
461
- | Google Maps in calendar | Reduces "got lost" cancellations 25% | One-tap navigation |
462
- | Preparation reminder content | Reduces cancellations/postponements 35% | Patient prepares correctly |
463
- | Post-submit CTA | Increases adoption 40% | Micro-commitment |
464
- | Re-booking prompt | Increases LTV 2x | Recurring revenue |
465
-
466
- ### Estimated Monthly ROI:
467
-
468
- Assuming [X] appointments/month, average service price $[Y]:
469
-
470
- - **SMS/notification savings:** [X] × $0.05 = $[total]/month
471
- - **No-show reduction:** [X] × 40% no-show × 50% reduction × $[Y] = $[total]/month
472
- - **Re-booking increase:** [X] × 15% re-book × $[Y] = $[total]/month
473
- - **Estimated total revenue increase:** $[grand total]/month
474
- ```
475
-
476
- ---
477
-
478
- ## ❌ Anti-Patterns
479
-
480
- | ❌ Don't | ✅ Do |
481
- |----------|------|
482
- | Hardcode clinic info | Use config object |
483
- | Skip calendar CTA after form success | ALWAYS show calendar CTA |
484
- | Only offer Google Calendar | Offer BOTH GCal + ICS download |
485
- | Generic reminder "You have an appointment" | Industry-specific "Remember to fast..." |
486
- | Same reminder timing all industries | Customize per industry needs |
487
- | Skip Google Maps in event | ALWAYS include location |
488
- | No tracking on calendar actions | Track cro_calendar_add event |
489
- | Build from scratch | Use industry pattern as base |
490
- | Skip Socratic Gate questions | ALWAYS ask Phase 2 questions |
491
- | Forget mobile device detection | iOS → ICS, Android → GCal |
492
-
493
- ---
494
-
495
- ## 📑 Templates
496
-
497
- | File | Purpose |
498
- |------|---------|
499
- | `templates/calendar-engine.js` | Core booking/scheduling engine |
500
- | `templates/calendar-export.js` | ICS + Google Calendar export |
501
- | `templates/booking-form.html` | HTML form markup (3 variants) |
502
- | `templates/booking-form.css` | Booking form styles |
503
- | `templates/reminder-config.js` | 20 industry configurations |
504
-
505
- ## 📚 References
506
-
507
- | File | Purpose |
508
- |------|---------|
509
- | `references/industry-patterns.md` | Complete 20-industry pattern library |
510
-
511
- ---
512
-
513
- ## 🔗 Related Skills
514
-
515
- | Need | Skill |
516
- |------|-------|
517
- | Form → Google Sheet | `@[skills/cm-google-form]` |
518
- | Conversion tracking | `@[skills/cm-ads-tracker]` |
519
- | Form UI/UX design | `@[skills/cm-ux-master]` |
520
- | SEO for booking pages | `@[skills/cm-dockit]` |
521
- | Mobile booking UX | `@[skills/cm-ux-master]` |