codymaster 7.0.1 → 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +117 -2
  3. package/dist/agent/codex.js +73 -21
  4. package/dist/agent-dispatch.js +63 -48
  5. package/dist/cli/commands/brain.js +18 -0
  6. package/dist/cli/commands/design-studio.js +1 -1
  7. package/dist/cm-suggest.js +3 -3
  8. package/dist/dashboard-project-summary.js +9 -0
  9. package/dist/dashboard.js +11 -5
  10. package/dist/execution-analyzer.js +9 -1
  11. package/dist/judge.js +16 -15
  12. package/dist/mcp-context-server.js +45 -23
  13. package/dist/mcp-skills-tools.js +2 -2
  14. package/dist/skill-chain.js +26 -3
  15. package/dist/skill-token-report.js +105 -0
  16. package/dist/sprint-pipeline.js +3 -3
  17. package/dist/ui/onboarding.js +3 -4
  18. package/dist/utils/design-taste.js +1 -1
  19. package/dist/utils/output-compress.js +8 -0
  20. package/package.json +3 -2
  21. package/public/dashboard/app.js +40 -13
  22. package/public/dashboard/index.html +190 -5
  23. package/public/dashboard/style.css +1 -1
  24. package/scripts/build-skills.mjs +36 -2
  25. package/scripts/mcp-bridge.js +41 -24
  26. package/scripts/pack-plugin.mjs +206 -0
  27. package/skills/cm-ads-tracker/SKILL.md +401 -0
  28. package/skills/cm-ads-tracker/evals/evals.json +55 -0
  29. package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
  30. package/skills/cm-ads-tracker/references/industry-events.md +294 -0
  31. package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
  32. package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
  33. package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
  34. package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
  35. package/skills/cm-auto-publisher/SKILL.md +81 -0
  36. package/skills/cm-booking-calendar/SKILL.md +521 -0
  37. package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
  38. package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
  39. package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
  40. package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
  41. package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
  42. package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
  43. package/skills/cm-brainstorm-idea/SKILL.md +5 -5
  44. package/skills/cm-code-review/SKILL.md +2 -2
  45. package/skills/cm-codeintell/SKILL.md +47 -580
  46. package/skills/cm-codeintell/references/integration-workflows.md +23 -0
  47. package/skills/cm-codeintell/references/layer-0-skeleton.md +54 -0
  48. package/skills/cm-codeintell/references/layer-1-codegraph.md +58 -0
  49. package/skills/cm-codeintell/references/layer-2-architecture.md +31 -0
  50. package/skills/cm-codeintell/references/layer-3-context-builder.md +32 -0
  51. package/skills/cm-content-factory/.content-factory-state.json +132 -0
  52. package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
  53. package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
  54. package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  55. package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  56. package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  57. package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  58. package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  59. package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  60. package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  61. package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  62. package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  63. package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  64. package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  65. package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  66. package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  67. package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  68. package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  69. package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  70. package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  71. package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  72. package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  73. package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  74. package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  75. package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  76. package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  77. package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  78. package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  79. package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  80. package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  81. package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  82. package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  83. package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  84. package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  85. package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  86. package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  87. package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  88. package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  89. package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  90. package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  91. package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  92. package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  93. package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  94. package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  95. package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  96. package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  97. package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
  98. package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  99. package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  100. package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  101. package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  102. package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  103. package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  104. package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  105. package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  106. package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  107. package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  108. package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
  109. package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
  110. package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
  111. package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
  112. package/skills/cm-content-factory/AGENTS.md +61 -0
  113. package/skills/cm-content-factory/CLAUDE.md +63 -0
  114. package/skills/cm-content-factory/CURSOR.md +43 -0
  115. package/skills/cm-content-factory/Content Factory.zip +0 -0
  116. package/skills/cm-content-factory/SKILL.md +416 -0
  117. package/skills/cm-content-factory/cf +313 -0
  118. package/skills/cm-content-factory/config.schema.json +397 -0
  119. package/skills/cm-content-factory/dashboard/app.js +556 -0
  120. package/skills/cm-content-factory/dashboard/index.html +397 -0
  121. package/skills/cm-content-factory/dashboard/style.css +1211 -0
  122. package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
  123. package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
  124. package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
  125. package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
  126. package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
  127. package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
  128. package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
  129. package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
  130. package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
  131. package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
  132. package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
  133. package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
  134. package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
  135. package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
  136. package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
  137. package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
  138. package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
  139. package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
  140. package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
  141. package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
  142. package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
  143. package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
  144. package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
  145. package/skills/cm-content-factory/extensions/hooks.py +126 -0
  146. package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
  147. package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
  148. package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
  149. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
  150. package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
  151. package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
  152. package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
  153. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
  154. package/skills/cm-content-factory/landing/docs/index.html +240 -0
  155. package/skills/cm-content-factory/landing/index.html +680 -0
  156. package/skills/cm-content-factory/landing/script.js +143 -0
  157. package/skills/cm-content-factory/landing/style.css +1216 -0
  158. package/skills/cm-content-factory/landing/translations.js +508 -0
  159. package/skills/cm-content-factory/logs/events.jsonl +11 -0
  160. package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
  161. package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
  162. package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
  163. package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
  164. package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
  165. package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
  166. package/skills/cm-content-factory/scripts/audit.py +106 -0
  167. package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
  168. package/skills/cm-content-factory/scripts/deploy.py +146 -0
  169. package/skills/cm-content-factory/scripts/extract.py +132 -0
  170. package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
  171. package/skills/cm-content-factory/scripts/memory.py +521 -0
  172. package/skills/cm-content-factory/scripts/monetize.py +239 -0
  173. package/skills/cm-content-factory/scripts/pipeline.py +357 -0
  174. package/skills/cm-content-factory/scripts/plan.py +163 -0
  175. package/skills/cm-content-factory/scripts/publish.py +145 -0
  176. package/skills/cm-content-factory/scripts/research.py +337 -0
  177. package/skills/cm-content-factory/scripts/scaffold.py +464 -0
  178. package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
  179. package/skills/cm-content-factory/scripts/seo.py +90 -0
  180. package/skills/cm-content-factory/scripts/state_manager.py +320 -0
  181. package/skills/cm-content-factory/scripts/token_manager.py +268 -0
  182. package/skills/cm-content-factory/scripts/validate.py +221 -0
  183. package/skills/cm-content-factory/scripts/wizard.py +329 -0
  184. package/skills/cm-content-factory/scripts/write.py +93 -0
  185. package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
  186. package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
  187. package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
  188. package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
  189. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
  190. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
  191. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
  192. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
  193. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
  194. package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
  195. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
  196. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
  197. package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
  198. package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
  199. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
  200. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
  201. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
  202. package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
  203. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
  204. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
  205. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
  206. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
  207. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
  208. package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
  209. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
  210. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
  211. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
  212. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
  213. package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
  214. package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
  215. package/skills/cm-content-factory/tests/conftest.py +66 -0
  216. package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
  217. package/skills/cm-content-factory/tests/test_memory.py +128 -0
  218. package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
  219. package/skills/cm-content-factory/tests/test_research.py +56 -0
  220. package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
  221. package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
  222. package/skills/cm-content-factory/tests/test_wizard.py +121 -0
  223. package/skills/cm-continuity/SKILL.md +49 -480
  224. package/skills/cm-continuity/references/cm-uri-scheme.md +23 -0
  225. package/skills/cm-continuity/references/continuity-template.md +48 -0
  226. package/skills/cm-continuity/references/mcp-context-server.md +27 -0
  227. package/skills/cm-continuity/references/memory-architecture.md +26 -0
  228. package/skills/cm-continuity/references/memory-audit.md +18 -0
  229. package/skills/cm-continuity/references/session-protocol.md +31 -0
  230. package/skills/cm-continuity/references/storage-formats.md +20 -0
  231. package/skills/cm-cro-methodology/SKILL.md +290 -0
  232. package/skills/cm-cro-methodology/references/COPYWRITING.md +178 -0
  233. package/skills/cm-cro-methodology/references/OBJECTIONS.md +135 -0
  234. package/skills/cm-cro-methodology/references/PERSUASION.md +158 -0
  235. package/skills/cm-cro-methodology/references/RESEARCH.md +220 -0
  236. package/skills/cm-cro-methodology/references/funnel-analysis.md +365 -0
  237. package/skills/cm-cro-methodology/references/testing-methodology.md +330 -0
  238. package/skills/cm-design-system/SKILL.md +5 -6
  239. package/skills/cm-execution/SKILL.md +61 -379
  240. package/skills/cm-execution/references/mode-a-batch.md +28 -0
  241. package/skills/cm-execution/references/mode-b-subagent.md +46 -0
  242. package/skills/cm-execution/references/mode-c-parallel.md +39 -0
  243. package/skills/cm-execution/references/mode-d-rarv.md +62 -0
  244. package/skills/cm-execution/references/mode-e-triz-parallel.md +53 -0
  245. package/skills/cm-execution/references/mode-f-party.md +61 -0
  246. package/skills/cm-execution/references/persona-dispatch.md +22 -0
  247. package/skills/cm-execution/references/security-rules.md +47 -0
  248. package/skills/cm-google-form/SKILL.md +266 -0
  249. package/skills/cm-google-form/templates/apps-script.js +55 -0
  250. package/skills/cm-google-form/templates/form-markup.html +110 -0
  251. package/skills/cm-google-form/templates/form-submit.js +201 -0
  252. package/skills/cm-google-form/templates/toast.css +152 -0
  253. package/skills/cm-growth-hacking/SKILL.md +282 -0
  254. package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
  255. package/skills/cm-growth-hacking/calendar-integration.md +264 -0
  256. package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
  257. package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
  258. package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
  259. package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
  260. package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
  261. package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
  262. package/skills/cm-growth-hacking/tracking-events.md +246 -0
  263. package/skills/cm-growth-hacking/trigger-system.md +342 -0
  264. package/skills/cm-how-it-work/SKILL.md +8 -9
  265. package/skills/cm-identity-guard/SKILL.md +4 -4
  266. package/skills/cm-jtbd/SKILL.md +98 -0
  267. package/skills/cm-notebooklm/SKILL.md +156 -0
  268. package/skills/cm-notebooklm/references/command_reference.md +94 -0
  269. package/skills/cm-notebooklm/references/workflows.md +60 -0
  270. package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
  271. package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
  272. package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
  273. package/skills/cm-planning/SKILL.md +3 -3
  274. package/skills/cm-project-bootstrap/SKILL.md +2 -2
  275. package/skills/cm-quality-gate/SKILL.md +1 -1
  276. package/skills/cm-readit/SKILL.md +289 -0
  277. package/skills/cm-readit/audio-player.md +206 -0
  278. package/skills/cm-readit/examples/blog-reader.js +352 -0
  279. package/skills/cm-readit/examples/voice-cro.js +390 -0
  280. package/skills/cm-readit/tts-engine.md +262 -0
  281. package/skills/cm-readit/ui-patterns.md +362 -0
  282. package/skills/cm-readit/voice-cro.md +223 -0
  283. package/skills/cm-safe-deploy/SKILL.md +80 -510
  284. package/skills/cm-safe-deploy/references/gate-0-5-security-scan.md +31 -0
  285. package/skills/cm-safe-deploy/references/gate-0-secret-hygiene.md +68 -0
  286. package/skills/cm-safe-deploy/references/gate-1-syntax.md +23 -0
  287. package/skills/cm-safe-deploy/references/gate-2-test-suite.md +28 -0
  288. package/skills/cm-safe-deploy/references/gate-3-i18n.md +19 -0
  289. package/skills/cm-safe-deploy/references/gate-4-5-build-dist.md +16 -0
  290. package/skills/cm-safe-deploy/references/gate-6-deploy-smoke.md +18 -0
  291. package/skills/cm-safe-deploy/references/rollback.md +17 -0
  292. package/skills/cm-safe-deploy/references/setup-new-project.md +20 -0
  293. package/skills/cm-skill-index/SKILL.md +15 -15
  294. package/skills/cm-start/SKILL.md +1 -1
  295. package/skills/cm-tdd/SKILL.md +51 -356
  296. package/skills/cm-tdd/references/bugfix-example.md +15 -0
  297. package/skills/cm-tdd/references/rationalizations.md +20 -0
  298. package/skills/cm-tdd/references/red-green-refactor.md +33 -0
  299. package/skills/cm-tdd/references/stuck-debugging.md +18 -0
  300. package/skills/cm-tdd/references/test-quality.md +19 -0
  301. package/skills/cm-ux-master/SKILL.md +368 -115
  302. package/skills/profiles/core.txt +1 -4
  303. package/skills/profiles/design.txt +1 -2
  304. package/skills/profiles/full.txt +10 -16
  305. package/skills/profiles/growth.txt +9 -9
  306. package/skills/profiles/top35.json +13 -13
  307. package/skills/cm-conductor-worktrees/SKILL.archive.md +0 -28
  308. package/skills/cm-conductor-worktrees/SKILL.md +0 -26
  309. package/skills/cm-dashboard/SKILL.archive.md +0 -15
  310. package/skills/cm-dashboard/SKILL.md +0 -26
  311. package/skills/cm-dashboard/ui/app.js +0 -1278
  312. package/skills/cm-dashboard/ui/index.html +0 -206
  313. package/skills/cm-dashboard/ui/style.css +0 -440
  314. package/skills/cm-design-studio/SKILL.archive.md +0 -34
  315. package/skills/cm-design-studio/SKILL.md +0 -26
  316. package/skills/cm-engineering-meta/SKILL.archive.md +0 -73
  317. package/skills/cm-engineering-meta/SKILL.md +0 -26
  318. package/skills/cm-git-worktrees/SKILL.archive.md +0 -157
  319. package/skills/cm-git-worktrees/SKILL.md +0 -26
  320. package/skills/cm-post-deploy-canary/SKILL.archive.md +0 -22
  321. package/skills/cm-post-deploy-canary/SKILL.md +0 -26
  322. package/skills/cm-qa-visual-cli/SKILL.archive.md +0 -22
  323. package/skills/cm-qa-visual-cli/SKILL.md +0 -26
  324. package/skills/cm-second-opinion-cli/SKILL.archive.md +0 -23
  325. package/skills/cm-second-opinion-cli/SKILL.md +0 -26
  326. package/skills/cm-secret-shield/SKILL.archive.md +0 -580
  327. package/skills/cm-secret-shield/SKILL.md +0 -26
  328. package/skills/cm-security-gate/SKILL.archive.md +0 -239
  329. package/skills/cm-security-gate/SKILL.md +0 -26
  330. package/skills/cm-skill-health/SKILL.archive.md +0 -83
  331. package/skills/cm-skill-health/SKILL.md +0 -26
  332. package/skills/cm-skill-mastery/SKILL.archive.md +0 -156
  333. package/skills/cm-skill-mastery/SKILL.md +0 -26
  334. package/skills/cm-skill-search/SKILL.archive.md +0 -49
  335. package/skills/cm-skill-search/SKILL.md +0 -26
  336. package/skills/cm-skill-share/SKILL.archive.md +0 -58
  337. package/skills/cm-skill-share/SKILL.md +0 -26
  338. package/skills/cm-test-gate/SKILL.archive.md +0 -245
  339. package/skills/cm-test-gate/SKILL.md +0 -26
  340. package/skills/cm-ui-preview/SKILL.archive.md +0 -153
  341. package/skills/cm-ui-preview/SKILL.md +0 -26
@@ -0,0 +1,401 @@
1
+ ---
2
+ name: cm-ads-tracker
3
+ description: "End-to-end ad conversion tracking: Meta Pixel+CAPI, TikTok Events API, Google Ads Enhanced Conversions, GTM, attribution. Auto-detects industry, maps standard events, outputs a developer-ready implementation doc. Use for pixels, GTM, CAPI, ROAS, or 'set up tracking' requests."
4
+ ---
5
+
6
+ # CM Ads Tracker v2
7
+
8
+ **Triggers (non-exhaustive):** pixel, GTM, Meta/Facebook CAPI, TikTok Events API, Google Ads conversions, UTM, first/last-touch attribution, install tracking, lead/purchase events, ROAS.
9
+
10
+ You are the world's best conversion tracking architect. Your mission: from **a single chat message**, produce a complete, platform-specific, attribution-aware tracking setup that any developer or marketer can implement immediately.
11
+
12
+ You know by heart every standard event spec for Meta, TikTok, and Google Ads. You think in dataLayer-first architecture, where GTM is the intelligent orchestration layer between the website and all ad platforms.
13
+
14
+ ---
15
+
16
+ ## Phase 1: Express Onboarding (Maximum 5 Questions, One Message)
17
+
18
+ Use `AskUserQuestion` to ask ALL questions in a single shot. Keep it lean — you can infer a lot from their answers:
19
+
20
+ 1. **Industry / website type** — E-commerce (fashion/electronics/FMCG)? Lead gen (real estate/insurance/education/finance)? SaaS/app? Online courses? Restaurant/F&B? Other?
21
+ 2. **Ad platforms in use** — Facebook/Meta? TikTok? Google (Search/Shopping/Display)? Other?
22
+ 3. **Tracking IDs** — Provide all IDs you have: Facebook Pixel ID, TikTok Pixel ID, Google Ads Conversion ID + Label, GTM Container ID, GA4 Measurement ID
23
+ 4. **Website platform** — Shopify? WooCommerce? Custom HTML? Next.js/React? Webflow?
24
+ 5. **Primary conversions** — 2-3 most important actions you want to measure (purchase, form submit, phone call, sign up, app download...)
25
+
26
+ > After receiving answers, proceed directly to Phase 2. Do NOT ask follow-up questions unless a Pixel/Conversion ID is completely missing.
27
+
28
+ ---
29
+
30
+ ## Phase 2: Industry Auto-Detection and Event Taxonomy
31
+
32
+ Based on the user's industry, select the appropriate event set from this master taxonomy. Read `references/industry-events.md` for the full event library with all platform-specific parameters.
33
+
34
+ ### Quick Industry to Event Map
35
+
36
+ **E-COMMERCE (fashion, electronics, FMCG)**
37
+ Priority events (train algorithm most): `Purchase` > `InitiateCheckout` > `AddToCart` > `ViewContent`
38
+ Supporting: `Search`, `AddToWishlist`, `AddPaymentInfo`
39
+
40
+ **LEAD GEN (real estate, insurance, finance, B2B)**
41
+ Priority events: `Lead` / `SubmitForm` > `Contact` > `ViewContent` (key pages)
42
+ Supporting: `CompleteRegistration`, `Schedule` (if booking flow exists)
43
+
44
+ **EDUCATION / ONLINE COURSES**
45
+ Priority events: `Purchase` (enroll) > `CompleteRegistration` (free signup) > `InitiateCheckout` > `ViewContent` (course page)
46
+ Supporting: `Subscribe` (newsletter/lead magnet), `Download` (syllabus/brochure)
47
+
48
+ **SAAS / APP**
49
+ Priority events: `CompleteRegistration` (trial/signup) > `Purchase` (paid plan) > `ViewContent` (pricing page)
50
+ Supporting: `Subscribe`, `Contact`
51
+
52
+ **F&B / RESTAURANT**
53
+ Priority events: `Contact` (reservation/call) > `SubmitForm` (booking form) > `ViewContent` (menu/location)
54
+ Supporting: `CompleteRegistration` (loyalty signup), `Purchase` (online order)
55
+
56
+ **TRAVEL / HOTEL**
57
+ Priority events: `Purchase` (booking) > `InitiateCheckout` > `Search` (date/destination) > `ViewContent`
58
+ Supporting: `AddToWishlist`, `AddPaymentInfo`
59
+
60
+ ---
61
+
62
+ ## Phase 3: GTM Architecture — DataLayer-First Design
63
+
64
+ The core principle: **the website speaks to the dataLayer; GTM listens and broadcasts to all platforms.**
65
+
66
+ Read `references/gtm-architecture.md` for full GTM container build specs.
67
+
68
+ ### The GTM Orchestration Model
69
+
70
+ ```
71
+ Website Action
72
+
73
+ dataLayer.push({ event: 'cro_purchase', ... })
74
+
75
+ GTM Custom Event Trigger: "cro_purchase"
76
+ ↓ (fires simultaneously to all platforms)
77
+ FB Pixel Purchase | TikTok Purchase | Google Ads Conversion | GA4 purchase
78
+ ```
79
+
80
+ Why this matters: Developer writes ONE dataLayer.push() per event. GTM broadcasts to all platforms. Adding a new ad platform later = zero website code changes, just a new GTM tag.
81
+
82
+ ### GTM Variables to Always Create
83
+
84
+ | Variable Name | Type | Value / Rule |
85
+ |---|---|---|
86
+ | `DL - event_id` | DataLayer | event_id |
87
+ | `DL - order_id` | DataLayer | transaction_id |
88
+ | `DL - order_value` | DataLayer | value |
89
+ | `DL - currency` | DataLayer | currency |
90
+ | `DL - content_ids` | DataLayer | content_ids |
91
+ | `DL - content_type` | DataLayer | content_type |
92
+ | `DL - content_name` | DataLayer | content_name |
93
+ | `DL - email_hashed` | DataLayer | email_hashed (SHA256) |
94
+ | `DL - phone_hashed` | DataLayer | phone_hashed (SHA256) |
95
+ | `FTC - source` | 1st-Party Cookie | Cookie name: _ftc, key: src |
96
+ | `FTC - medium` | 1st-Party Cookie | Cookie name: _ftc, key: med |
97
+ | `FTC - campaign` | 1st-Party Cookie | Cookie name: _ftc, key: cmp |
98
+ | `URL - utm_source` | URL | Query param: utm_source |
99
+ | `URL - utm_medium` | URL | Query param: utm_medium |
100
+ | `URL - utm_campaign` | URL | Query param: utm_campaign |
101
+ | `URL - fbclid` | URL | Query param: fbclid |
102
+ | `URL - ttclid` | URL | Query param: ttclid |
103
+ | `URL - gclid` | URL | Query param: gclid |
104
+
105
+ ---
106
+
107
+ ## Phase 4: Platform-Specific Implementation
108
+
109
+ ### 4.1 Facebook / Meta Pixel + Conversions API (CAPI)
110
+
111
+ Pixel (browser-side via GTM) + CAPI (server-side) = best signal quality. Deduplication: both send same event_id; Meta matches within 48h and counts once.
112
+
113
+ #### Facebook Standard Events
114
+
115
+ | User Action | FB Event Name | Required Parameters | Optional for Enhanced Matching |
116
+ |---|---|---|---|
117
+ | Purchase | `Purchase` | value, currency, order_id (as eventID) | content_ids, content_type, num_items, email_hashed, phone_hashed |
118
+ | Add to Cart | `AddToCart` | content_ids, content_type, value, currency | content_name, contents |
119
+ | Initiate Checkout | `InitiateCheckout` | value, currency, num_items | content_ids |
120
+ | View Product | `ViewContent` | content_ids, content_type, value, currency | content_name |
121
+ | Lead / Form Submit | `Lead` | — | content_name (form name), value (lead value) |
122
+ | Registration | `CompleteRegistration` | status | value, currency |
123
+ | Search | `Search` | search_string | value |
124
+ | Contact | `Contact` | — | — |
125
+ | Subscribe | `Subscribe` | value, currency | — |
126
+
127
+ **Enhanced Matching — always pass these on conversions (hashed):**
128
+ - em: SHA256(lowercase(email))
129
+ - ph: SHA256(digits-only phone)
130
+ - fn: SHA256(lowercase(first name))
131
+ - ln: SHA256(lowercase(last name))
132
+
133
+ **CAPI Required Payload Fields:**
134
+ event_name, event_time (Unix), event_id, action_source: "website", event_source_url,
135
+ user_data: { em, ph, client_ip_address, client_user_agent, fbp, fbc },
136
+ custom_data: { value, currency, order_id, content_ids }
137
+
138
+ ### 4.2 TikTok Pixel + Events API
139
+
140
+ 14 Standard Events with TikTok-specific naming:
141
+
142
+ | User Action | TikTok Event Name | Required Parameters | Notes |
143
+ |---|---|---|---|
144
+ | Purchase | `CompletePayment` / `Purchase` | value, currency, content_ids, content_type | Pass contents array |
145
+ | Add to Cart | `AddToCart` | content_id, content_type, value, currency | |
146
+ | Checkout Start | `InitiateCheckout` | value, currency | |
147
+ | View Product | `ViewContent` | content_id, content_type, content_name | |
148
+ | Submit Form / Lead | `SubmitForm` | — | For lead gen |
149
+ | Registration | `CompleteRegistration` | status | |
150
+ | Search | `Search` | search_string | |
151
+ | Button Click | `ClickButton` | — | Soft CTAs |
152
+ | Download | `Download` | — | Lead magnets |
153
+ | Subscribe | `Subscribe` | value, currency | |
154
+ | Contact | `Contact` | — | Call/chat triggers |
155
+ | Add to Wishlist | `AddToWishlist` | content_id, value | |
156
+ | Add Payment Info | `AddPaymentInfo` | — | Between checkout steps |
157
+ | Place an Order | `PlaceAnOrder` | value, currency | |
158
+
159
+ TikTok contents array format: [{content_id, content_type, content_name, quantity, price}]
160
+ Currency VND is supported. Pass event_id for Events API dedup (48h window).
161
+
162
+ ### 4.3 Google Ads + Enhanced Conversions
163
+
164
+ | Conversion Action | GTM Trigger | Value | Key Settings |
165
+ |---|---|---|---|
166
+ | Purchase | cro_purchase dataLayer event | DL - order_value | Pass Order ID as transaction ID |
167
+ | Lead / Form Submit | cro_lead event or thank-you URL | Fixed or dynamic lead value | |
168
+ | Phone Call Click | Click on tel: links | Fixed value | Click URL Contains "tel:" |
169
+ | Button CTA | Specific button click trigger | Optional | |
170
+
171
+ **Enhanced Conversions (2025 — critical, adds 15-25% conversion recovery):**
172
+ - Enable in Google Ads > Conversions > Enhanced Conversions settings
173
+ - In GTM Google Ads tag: add user_data object with email_address, phone_number
174
+ - GTM reads DL - email_hashed and DL - phone_hashed variables
175
+ - Hashing: SHA256 lowercase for email, digits-only for phone
176
+
177
+ ---
178
+
179
+ ## Phase 5: Attribution Strategy
180
+
181
+ ### First-Touch — Cookie Architecture
182
+
183
+ GTM fires a "First Touch Capture" Custom HTML tag on All Pages, but ONLY writes cookie if _ftc is absent (90-day expiry).
184
+
185
+ Cookie _ftc structure (JSON-serialized):
186
+ { src, med, cmp, cnt, trm, fbclid, ttclid, gclid, ref (referrer domain), ts (timestamp) }
187
+
188
+ On every conversion event, GTM reads _ftc cookie and passes FTC - source, FTC - medium, FTC - campaign as custom parameters to all platforms. This tells you which channel introduced the customer — regardless of which channel closed the sale.
189
+
190
+ ### Last-Touch — Platform Native
191
+
192
+ Each platform pixel tracks its own most recent click via click IDs:
193
+ - Facebook: fbp (browser cookie) + fbc (fbclid at event time)
194
+ - TikTok: ttclid parameter passed at event time
195
+ - Google: gclid auto-tagged
196
+
197
+ Pass click IDs explicitly on every conversion to maximize match rates.
198
+
199
+ ### Cross-Channel Deduplication — The Overlap Problem and Solution
200
+
201
+ When customer clicks Facebook on Day 1, Google on Day 7, then buys:
202
+ Both platforms claim full credit. Neither is lying — both influenced the sale.
203
+
204
+ Solution:
205
+ 1. Unique Event ID: Generate UUID per conversion page load. Pass to ALL platforms as event_id simultaneously. Each platform deduplicates its pixel vs. API (not across platforms).
206
+ 2. Order ID: Always pass same order ID across all platforms as reference key.
207
+ 3. GA4 as Single Source of Truth: Use GA4 data-driven attribution (or linear model). GA4 is neutral — it sees all channels without incentive to over-claim.
208
+ 4. Inflation Rate Check: Total reported conversions across platforms / actual orders. Above 1.5x means significant double-counting. Fix by tightening attribution windows or adding CAPI.
209
+
210
+ ### Attribution Window Recommendations
211
+
212
+ | Platform | Click Window | View Window | Best For |
213
+ |---|---|---|---|
214
+ | Facebook/Meta | 7-day click | 1-day view | E-commerce |
215
+ | Facebook/Meta | 1-day click | Off | Lead gen, short sales cycle |
216
+ | TikTok | 7-day click | 1-day view | E-commerce |
217
+ | TikTok | 1-day click | Off | Lead gen |
218
+ | Google Search | 30-day | — | All |
219
+ | Google Display | 7-day | 1-day | Retargeting |
220
+ | Google Shopping | 30-day | — | E-commerce |
221
+
222
+ ---
223
+
224
+ ## Phase 6: DataLayer Push Specifications
225
+
226
+ These are the EXACT specifications to give the developer. One push per event. GTM does the rest.
227
+
228
+ ### Standard DataLayer Event Names
229
+
230
+ | Conversion | dataLayer event name | When to fire |
231
+ |---|---|---|
232
+ | Page/Product View | cro_view_content | Product/service page load |
233
+ | Add to Cart | cro_add_to_cart | Add to cart button click |
234
+ | Initiate Checkout | cro_initiate_checkout | Checkout page load |
235
+ | Add Payment Info | cro_add_payment_info | Payment step reached |
236
+ | Purchase | cro_purchase | Order confirmation page load |
237
+ | Lead / Form Submit | cro_lead | Form success callback |
238
+ | Registration | cro_registration | Account/signup completion |
239
+ | Phone Call Click | cro_phone_call | Tel: link click |
240
+ | Search | cro_search | Search executed |
241
+ | Button Click | cro_click_button | CTA click (non-purchase) |
242
+
243
+ ### Master DataLayer Schema — Purchase
244
+
245
+ dataLayer.push({
246
+ event: 'cro_purchase',
247
+ event_id: '[UUID generated server-side — same value sent to CAPI]',
248
+ transaction_id: '[order_id]',
249
+ value: [numeric order total — NOT string],
250
+ currency: '[CURRENCY_CODE]', // e.g., 'USD', 'VND', 'EUR' — from Phase 1 answers
251
+ content_type: 'product',
252
+ content_ids: ['[product_id_1]', '[product_id_2]'],
253
+ contents: [
254
+ { content_id: '[id]', content_name: '[name]', content_type: 'product', quantity: 1, price: [price] }
255
+ ],
256
+ num_items: [total_item_count],
257
+ email_hashed: '[SHA256(lowercase(email))]',
258
+ phone_hashed: '[SHA256(digits-only phone)]'
259
+ });
260
+
261
+ ### Master DataLayer Schema — Lead
262
+
263
+ dataLayer.push({
264
+ event: 'cro_lead',
265
+ event_id: '[UUID]',
266
+ lead_id: '[unique lead identifier]',
267
+ content_name: '[form_name or page_name]',
268
+ value: [lead_value_if_known — optional],
269
+ currency: '[CURRENCY_CODE]', // e.g., 'USD', 'VND', 'EUR' — from Phase 1 answers
270
+ email_hashed: '[SHA256(lowercase(email))]',
271
+ phone_hashed: '[SHA256(digits-only phone)]'
272
+ });
273
+
274
+ Customize the schema based on the user's specific industry and conversion events.
275
+
276
+ ---
277
+
278
+ ## Phase 7: UTM Naming Convention
279
+
280
+ Universal rules: always lowercase, use hyphens not underscores, no special chars.
281
+ Campaign format: [product/offer]-[audience-segment]-[YYYYMM]
282
+ Content format: [ad-format]-[creative-variant]
283
+
284
+ | Platform | utm_source | utm_medium | utm_campaign example | utm_content example |
285
+ |---|---|---|---|---|
286
+ | Facebook Feed | facebook | paid-social | product-retarget-202501 | video-15s-a |
287
+ | Facebook Story | facebook | paid-social | product-cold-lookalike-202501 | story-img-b |
288
+ | TikTok Feed | tiktok | paid-social | product-roas-202501 | ugc-30s-a |
289
+ | Google Search | google | paid-search | keyword-group-branded-202501 | rsp-ad-1 |
290
+ | Google Shopping | google | paid-shopping | all-products-202501 | — |
291
+ | Google Display | google | paid-display | retarget-cart-abandon-202501 | banner-300x250 |
292
+ | Zalo Ads | zalo | paid-social | product-zalo-202501 | img-a |
293
+ | Email | email | email | promo-tet-202501 | btn-cta |
294
+
295
+ ---
296
+
297
+ ## Phase 8: Tracking ID Registry
298
+
299
+ | Platform | ID Type | ID Value | Status |
300
+ |---|---|---|---|
301
+ | Facebook/Meta | Pixel ID | [from user] | Pending |
302
+ | Facebook/Meta | CAPI Access Token | [to be generated in Events Manager — store as server env var only, NEVER in GTM or client-side code] | Pending |
303
+ | TikTok | Pixel ID | [from user] | Pending |
304
+ | Google Ads | Conversion ID | [from user] | Pending |
305
+ | Google Ads | Conversion Label | [from user] | Pending |
306
+ | GTM | Container ID | [from user] | Pending |
307
+ | GA4 | Measurement ID | [from user if provided] | Pending |
308
+
309
+ ---
310
+
311
+ ## Phase 9: Implementation Checklist
312
+
313
+ Phase A — GTM Foundation (Developer, 2h)
314
+ - [ ] Install GTM head + body snippets on all pages
315
+ - [ ] Verify GTM fires on all pages via GTM Preview mode
316
+ - [ ] Create all GTM Variables from Phase 3 table (verify exact count matches your setup)
317
+ - [ ] Create First-Touch Cookie tag (Custom HTML, All Pages, once if _ftc absent)
318
+ - [ ] Test _ftc cookie in DevTools > Application > Cookies
319
+
320
+ Phase B — Base Pixels (1h)
321
+ - [ ] Facebook Base Pixel tag > All Pages trigger
322
+ - [ ] TikTok Base Pixel tag > All Pages trigger
323
+ - [ ] Google Ads Remarketing tag > All Pages trigger
324
+ - [ ] GA4 Configuration tag > All Pages trigger
325
+ - [ ] Verify with platform pixel helper browser extensions
326
+
327
+ Phase C — DataLayer Pushes (Developer, 2-4h)
328
+ - [ ] cro_purchase on order confirmation page
329
+ - [ ] cro_lead on form success / thank-you
330
+ - [ ] cro_view_content on product/service pages
331
+ - [ ] cro_initiate_checkout on checkout page
332
+ - [ ] cro_add_to_cart on cart button click
333
+ - [ ] Test all pushes in GTM Preview > dataLayer tab
334
+
335
+ Phase D — Conversion Tags (GTM, 2h)
336
+ For each [conversion event] x [active platform]: create a tag
337
+ - [ ] FB Purchase > cro_purchase trigger
338
+ - [ ] TikTok Purchase/CompletePayment > cro_purchase trigger
339
+ - [ ] Google Ads Purchase Conversion > cro_purchase trigger
340
+ - [ ] GA4 purchase event > cro_purchase trigger
341
+ - [ ] Repeat pattern for Lead, ViewContent, AddToCart, InitiateCheckout
342
+
343
+ Phase E — Enhanced Signals (1-2h)
344
+ - [ ] Enable Enhanced Conversions in Google Ads settings
345
+ - [ ] Add user_data to Google Ads tags (email, phone via hashed DL variables)
346
+ - [ ] Configure Meta CAPI: generate Access Token in Events Manager, set up server-side
347
+ - [ ] Configure TikTok Events API
348
+
349
+ Phase F — QA and Verification (2h)
350
+ - [ ] Test purchase > verify in FB Events Manager (Pixel + CAPI deduplicated)
351
+ - [ ] Test lead > verify in TikTok Pixel Helper
352
+ - [ ] Verify Google Ads tag fires in GTM Preview
353
+ - [ ] Check UTM params in GA4 > Reports > Acquisition
354
+ - [ ] Confirm no duplicate events (each event fires once per platform)
355
+ - [ ] Verify event_id deduplication: Events Manager shows "Matched events" count
356
+
357
+ ---
358
+
359
+ ## Phase 10: Common Anti-Patterns and Fixes
360
+
361
+ Anti-pattern: Pixel fires a second Purchase event from base pixel tag
362
+ Fix: Use GTM trigger exceptions or sequencing to prevent base pixel re-firing on conversion page.
363
+
364
+ Anti-pattern: Missing event_id causes CAPI double-counting
365
+ Fix: Generate one UUID server-side, send to both browser dataLayer and CAPI payload with the same value.
366
+
367
+ Anti-pattern: UTM parameters lost on redirect (session shows direct)
368
+ Fix: Capture UTM on first page load immediately into _ftc cookie. Never rely on document.referrer.
369
+
370
+ Anti-pattern: Pixel fires before dataLayer.push() completes (empty parameters)
371
+ Fix: Use Custom Event trigger keyed to cro_purchase, not Page View. GTM waits for the push.
372
+
373
+ Anti-pattern: value sent as string not number (breaks revenue reporting)
374
+ Fix: Always parseFloat(orderTotal) before pushing to dataLayer.
375
+
376
+ Anti-pattern: Not passing hashed email/phone on conversions (CAPI match rate drops)
377
+ Fix: SHA256 hash and pass em/ph on every purchase and lead event.
378
+
379
+ Anti-pattern: Cross-domain tracking broken (landing page to checkout subdomain)
380
+ Fix: Configure GTM cross-domain linker + add both domains to GA4 configuration.
381
+
382
+ ---
383
+
384
+ ## Output Format
385
+
386
+ Save the complete strategy as: tracking-strategy-[brand]-[YYYYMMDD].md
387
+
388
+ The document must be so specific that a developer can implement without asking a single follow-up question. Every tag, trigger, variable, and dataLayer push must be fully specified using the user's exact IDs and event names.
389
+
390
+ Include a Quick Reference Card at the end (1-page summary):
391
+ - All tracking IDs in one table
392
+ - DataLayer event names cheat sheet
393
+ - UTM convention quick reference
394
+ - Top 3 priority events to implement first (ranked by algorithm impact)
395
+
396
+ After saving, use present_files if available, otherwise share file link.
397
+
398
+ Offer follow-up options:
399
+ 1. "Want me to create a GTM Container JSON spec for direct import?"
400
+ 2. "Want me to create a separate CAPI server-side implementation guide?"
401
+ 3. "Need a Google Sheets template for UTM convention tracking for the whole team?"
@@ -0,0 +1,55 @@
1
+ {
2
+ "skill_name": "cm-ads-tracker",
3
+ "test_data_only": true,
4
+ "evals": [
5
+ {
6
+ "id": 1,
7
+ "prompt": "Tôi cần setup tracking cho shop bán quần áo online của tôi. Tôi đang chạy quảng cáo Facebook và TikTok, website dùng WordPress + WooCommerce. Pixel Facebook của tôi là 1234567890123456, TikTok Pixel ID là C8ABC12345DEF, GTM container là GTM-XWQR456. Tôi muốn track: mua hàng (purchase), thêm vào giỏ (add to cart), xem sản phẩm, và điền form liên hệ. Mục tiêu là biết kênh nào đem về doanh thu nhiều nhất, và xử lý được trường hợp khách click cả 2 kênh trước khi mua.",
8
+ "expected_output": "Complete tracking strategy document with: GTM tags/triggers/variables for Facebook + TikTok, event mapping table for all 4 conversion events, first-touch + last-touch attribution setup, cross-channel deduplication via order_id, UTM naming convention for both platforms, WooCommerce dataLayer push specifications, implementation checklist",
9
+ "files": [],
10
+ "expectations": [
11
+ "Document includes Facebook Pixel ID 1234567890123456 and TikTok Pixel ID C8ABC12345DEF",
12
+ "Document includes GTM container configuration with at least 4 conversion tags (Purchase, AddToCart, ViewContent, Lead)",
13
+ "Document explains first-touch cookie storage mechanism",
14
+ "Document addresses cross-channel attribution deduplication using order_id or event_id",
15
+ "Document includes UTM naming convention table for Facebook and TikTok",
16
+ "Document includes WooCommerce-specific dataLayer.push specifications",
17
+ "Document includes a QA/implementation checklist",
18
+ "Document is saved as a file (docx or md) in the workspace"
19
+ ]
20
+ },
21
+ {
22
+ "id": 2,
23
+ "prompt": "Help me set up Google Ads and Facebook tracking for my lead generation website. It's a custom HTML site for a real estate company. I have: Google Ads Conversion ID = AW-9876543210 with label = AbCdEfGhIj, Facebook Pixel = 9988776655443322, no GTM yet. Main conversions: phone call clicks, contact form submissions, and 'schedule a tour' button clicks. I want to understand which campaigns bring the most qualified leads and handle the case where the same lead converts through both Google and Facebook campaigns.",
24
+ "expected_output": "Full tracking strategy with GTM setup from scratch, Google Ads + Facebook event configuration, phone call click tracking setup, form submission tracking, cross-platform lead deduplication strategy, attribution comparison between Google and Facebook for lead gen, UTM conventions",
25
+ "files": [],
26
+ "expectations": [
27
+ "Document includes Google Ads Conversion ID AW-9876543210 and Facebook Pixel ID 9988776655443322",
28
+ "Document covers GTM installation from scratch (container snippet placement)",
29
+ "Document includes phone call click tracking setup (click trigger on tel: links)",
30
+ "Document includes form submission tracking for contact form and schedule tour button",
31
+ "Document addresses lead deduplication across Google and Facebook",
32
+ "Document includes lead gen specific attribution window recommendations",
33
+ "Document includes UTM naming conventions for Google Search and Facebook campaigns",
34
+ "Document is saved as a file in the workspace"
35
+ ]
36
+ },
37
+ {
38
+ "id": 3,
39
+ "prompt": "Tôi đang chạy quảng cáo trên Facebook, TikTok, Google Ads và cả Zalo Ads cho website landing page bán khóa học online (Shopify). GTM: GTM-KLP987, Facebook Pixel: 1122334455667788, TikTok: BCP98765QWER, Google Ads: AW-1122334455/XyZabc123, GA4: G-ABCD1234. Tôi muốn biết: kênh nào khách biết đến đầu tiên (first touch), kênh nào chốt sale (last touch), và cách xử lý khi khách click quảng cáo từ nhiều kênh trước khi mua. Conversion chính: mua khóa học, đăng ký trial, và xem trang pricing.",
40
+ "expected_output": "Multi-platform tracking strategy with all 5 platforms (FB, TikTok, Google Ads, Zalo, GA4), full attribution model including first-touch cookie, last-touch standard, cross-channel deduplication, Shopify-specific implementation notes, event taxonomy for course business (Purchase, Trial Signup, ViewContent for pricing), UTM conventions for all 4 ad platforms",
41
+ "files": [],
42
+ "expectations": [
43
+ "Document includes all provided tracking IDs: GTM-KLP987, Facebook Pixel 1122334455667788, TikTok BCP98765QWER, Google Ads AW-1122334455, GA4 G-ABCD1234",
44
+ "Document covers first-touch attribution via first-party cookie mechanism",
45
+ "Document covers last-touch attribution approach",
46
+ "Document addresses multi-platform overlap/deduplication scenario",
47
+ "Document mentions Shopify-specific implementation considerations",
48
+ "Document includes UTM naming conventions for all 4 ad platforms including Zalo Ads",
49
+ "Document includes event taxonomy for online course business (Purchase, Trial, ViewContent)",
50
+ "Document addresses GA4 integration alongside paid platform tracking",
51
+ "Document is saved as a file in the workspace"
52
+ ]
53
+ }
54
+ ]
55
+ }