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.
- package/CHANGELOG.md +64 -0
- package/README.md +117 -2
- package/dist/agent/codex.js +73 -21
- package/dist/agent-dispatch.js +63 -48
- package/dist/cli/commands/brain.js +18 -0
- package/dist/cli/commands/design-studio.js +1 -1
- package/dist/cm-suggest.js +3 -3
- package/dist/dashboard-project-summary.js +9 -0
- package/dist/dashboard.js +11 -5
- package/dist/execution-analyzer.js +9 -1
- package/dist/judge.js +16 -15
- package/dist/mcp-context-server.js +45 -23
- package/dist/mcp-skills-tools.js +2 -2
- package/dist/skill-chain.js +26 -3
- package/dist/skill-token-report.js +105 -0
- package/dist/sprint-pipeline.js +3 -3
- package/dist/ui/onboarding.js +3 -4
- package/dist/utils/design-taste.js +1 -1
- package/dist/utils/output-compress.js +8 -0
- package/package.json +3 -2
- package/public/dashboard/app.js +40 -13
- package/public/dashboard/index.html +190 -5
- package/public/dashboard/style.css +1 -1
- package/scripts/build-skills.mjs +36 -2
- package/scripts/mcp-bridge.js +41 -24
- package/scripts/pack-plugin.mjs +206 -0
- package/skills/cm-ads-tracker/SKILL.md +401 -0
- package/skills/cm-ads-tracker/evals/evals.json +55 -0
- package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
- package/skills/cm-ads-tracker/references/industry-events.md +294 -0
- package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
- package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
- package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
- package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
- package/skills/cm-auto-publisher/SKILL.md +81 -0
- package/skills/cm-booking-calendar/SKILL.md +521 -0
- package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
- package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
- package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
- package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
- package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
- package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
- package/skills/cm-brainstorm-idea/SKILL.md +5 -5
- package/skills/cm-code-review/SKILL.md +2 -2
- package/skills/cm-codeintell/SKILL.md +47 -580
- package/skills/cm-codeintell/references/integration-workflows.md +23 -0
- package/skills/cm-codeintell/references/layer-0-skeleton.md +54 -0
- package/skills/cm-codeintell/references/layer-1-codegraph.md +58 -0
- package/skills/cm-codeintell/references/layer-2-architecture.md +31 -0
- package/skills/cm-codeintell/references/layer-3-context-builder.md +32 -0
- package/skills/cm-content-factory/.content-factory-state.json +132 -0
- package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/cm-content-factory/AGENTS.md +61 -0
- package/skills/cm-content-factory/CLAUDE.md +63 -0
- package/skills/cm-content-factory/CURSOR.md +43 -0
- package/skills/cm-content-factory/Content Factory.zip +0 -0
- package/skills/cm-content-factory/SKILL.md +416 -0
- package/skills/cm-content-factory/cf +313 -0
- package/skills/cm-content-factory/config.schema.json +397 -0
- package/skills/cm-content-factory/dashboard/app.js +556 -0
- package/skills/cm-content-factory/dashboard/index.html +397 -0
- package/skills/cm-content-factory/dashboard/style.css +1211 -0
- package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
- package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
- package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
- package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
- package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
- package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
- package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
- package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
- package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
- package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
- package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
- package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
- package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
- package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
- package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
- package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
- package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
- package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
- package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
- package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
- package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
- package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
- package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
- package/skills/cm-content-factory/extensions/hooks.py +126 -0
- package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
- package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
- package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
- package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
- package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
- package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
- package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
- package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
- package/skills/cm-content-factory/landing/docs/index.html +240 -0
- package/skills/cm-content-factory/landing/index.html +680 -0
- package/skills/cm-content-factory/landing/script.js +143 -0
- package/skills/cm-content-factory/landing/style.css +1216 -0
- package/skills/cm-content-factory/landing/translations.js +508 -0
- package/skills/cm-content-factory/logs/events.jsonl +11 -0
- package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
- package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
- package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
- package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
- package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
- package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
- package/skills/cm-content-factory/scripts/audit.py +106 -0
- package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
- package/skills/cm-content-factory/scripts/deploy.py +146 -0
- package/skills/cm-content-factory/scripts/extract.py +132 -0
- package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
- package/skills/cm-content-factory/scripts/memory.py +521 -0
- package/skills/cm-content-factory/scripts/monetize.py +239 -0
- package/skills/cm-content-factory/scripts/pipeline.py +357 -0
- package/skills/cm-content-factory/scripts/plan.py +163 -0
- package/skills/cm-content-factory/scripts/publish.py +145 -0
- package/skills/cm-content-factory/scripts/research.py +337 -0
- package/skills/cm-content-factory/scripts/scaffold.py +464 -0
- package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
- package/skills/cm-content-factory/scripts/seo.py +90 -0
- package/skills/cm-content-factory/scripts/state_manager.py +320 -0
- package/skills/cm-content-factory/scripts/token_manager.py +268 -0
- package/skills/cm-content-factory/scripts/validate.py +221 -0
- package/skills/cm-content-factory/scripts/wizard.py +329 -0
- package/skills/cm-content-factory/scripts/write.py +93 -0
- package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
- package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
- package/skills/cm-content-factory/tests/conftest.py +66 -0
- package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
- package/skills/cm-content-factory/tests/test_memory.py +128 -0
- package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
- package/skills/cm-content-factory/tests/test_research.py +56 -0
- package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
- package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
- package/skills/cm-content-factory/tests/test_wizard.py +121 -0
- package/skills/cm-continuity/SKILL.md +49 -480
- package/skills/cm-continuity/references/cm-uri-scheme.md +23 -0
- package/skills/cm-continuity/references/continuity-template.md +48 -0
- package/skills/cm-continuity/references/mcp-context-server.md +27 -0
- package/skills/cm-continuity/references/memory-architecture.md +26 -0
- package/skills/cm-continuity/references/memory-audit.md +18 -0
- package/skills/cm-continuity/references/session-protocol.md +31 -0
- package/skills/cm-continuity/references/storage-formats.md +20 -0
- package/skills/cm-cro-methodology/SKILL.md +290 -0
- package/skills/cm-cro-methodology/references/COPYWRITING.md +178 -0
- package/skills/cm-cro-methodology/references/OBJECTIONS.md +135 -0
- package/skills/cm-cro-methodology/references/PERSUASION.md +158 -0
- package/skills/cm-cro-methodology/references/RESEARCH.md +220 -0
- package/skills/cm-cro-methodology/references/funnel-analysis.md +365 -0
- package/skills/cm-cro-methodology/references/testing-methodology.md +330 -0
- package/skills/cm-design-system/SKILL.md +5 -6
- package/skills/cm-execution/SKILL.md +61 -379
- package/skills/cm-execution/references/mode-a-batch.md +28 -0
- package/skills/cm-execution/references/mode-b-subagent.md +46 -0
- package/skills/cm-execution/references/mode-c-parallel.md +39 -0
- package/skills/cm-execution/references/mode-d-rarv.md +62 -0
- package/skills/cm-execution/references/mode-e-triz-parallel.md +53 -0
- package/skills/cm-execution/references/mode-f-party.md +61 -0
- package/skills/cm-execution/references/persona-dispatch.md +22 -0
- package/skills/cm-execution/references/security-rules.md +47 -0
- package/skills/cm-google-form/SKILL.md +266 -0
- package/skills/cm-google-form/templates/apps-script.js +55 -0
- package/skills/cm-google-form/templates/form-markup.html +110 -0
- package/skills/cm-google-form/templates/form-submit.js +201 -0
- package/skills/cm-google-form/templates/toast.css +152 -0
- package/skills/cm-growth-hacking/SKILL.md +282 -0
- package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
- package/skills/cm-growth-hacking/calendar-integration.md +264 -0
- package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
- package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
- package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
- package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
- package/skills/cm-growth-hacking/tracking-events.md +246 -0
- package/skills/cm-growth-hacking/trigger-system.md +342 -0
- package/skills/cm-how-it-work/SKILL.md +8 -9
- package/skills/cm-identity-guard/SKILL.md +4 -4
- package/skills/cm-jtbd/SKILL.md +98 -0
- package/skills/cm-notebooklm/SKILL.md +156 -0
- package/skills/cm-notebooklm/references/command_reference.md +94 -0
- package/skills/cm-notebooklm/references/workflows.md +60 -0
- package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
- package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
- package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
- package/skills/cm-planning/SKILL.md +3 -3
- package/skills/cm-project-bootstrap/SKILL.md +2 -2
- package/skills/cm-quality-gate/SKILL.md +1 -1
- package/skills/cm-readit/SKILL.md +289 -0
- package/skills/cm-readit/audio-player.md +206 -0
- package/skills/cm-readit/examples/blog-reader.js +352 -0
- package/skills/cm-readit/examples/voice-cro.js +390 -0
- package/skills/cm-readit/tts-engine.md +262 -0
- package/skills/cm-readit/ui-patterns.md +362 -0
- package/skills/cm-readit/voice-cro.md +223 -0
- package/skills/cm-safe-deploy/SKILL.md +80 -510
- package/skills/cm-safe-deploy/references/gate-0-5-security-scan.md +31 -0
- package/skills/cm-safe-deploy/references/gate-0-secret-hygiene.md +68 -0
- package/skills/cm-safe-deploy/references/gate-1-syntax.md +23 -0
- package/skills/cm-safe-deploy/references/gate-2-test-suite.md +28 -0
- package/skills/cm-safe-deploy/references/gate-3-i18n.md +19 -0
- package/skills/cm-safe-deploy/references/gate-4-5-build-dist.md +16 -0
- package/skills/cm-safe-deploy/references/gate-6-deploy-smoke.md +18 -0
- package/skills/cm-safe-deploy/references/rollback.md +17 -0
- package/skills/cm-safe-deploy/references/setup-new-project.md +20 -0
- package/skills/cm-skill-index/SKILL.md +15 -15
- package/skills/cm-start/SKILL.md +1 -1
- package/skills/cm-tdd/SKILL.md +51 -356
- package/skills/cm-tdd/references/bugfix-example.md +15 -0
- package/skills/cm-tdd/references/rationalizations.md +20 -0
- package/skills/cm-tdd/references/red-green-refactor.md +33 -0
- package/skills/cm-tdd/references/stuck-debugging.md +18 -0
- package/skills/cm-tdd/references/test-quality.md +19 -0
- package/skills/cm-ux-master/SKILL.md +368 -115
- package/skills/profiles/core.txt +1 -4
- package/skills/profiles/design.txt +1 -2
- package/skills/profiles/full.txt +10 -16
- package/skills/profiles/growth.txt +9 -9
- package/skills/profiles/top35.json +13 -13
- package/skills/cm-conductor-worktrees/SKILL.archive.md +0 -28
- package/skills/cm-conductor-worktrees/SKILL.md +0 -26
- package/skills/cm-dashboard/SKILL.archive.md +0 -15
- package/skills/cm-dashboard/SKILL.md +0 -26
- package/skills/cm-dashboard/ui/app.js +0 -1278
- package/skills/cm-dashboard/ui/index.html +0 -206
- package/skills/cm-dashboard/ui/style.css +0 -440
- package/skills/cm-design-studio/SKILL.archive.md +0 -34
- package/skills/cm-design-studio/SKILL.md +0 -26
- package/skills/cm-engineering-meta/SKILL.archive.md +0 -73
- package/skills/cm-engineering-meta/SKILL.md +0 -26
- package/skills/cm-git-worktrees/SKILL.archive.md +0 -157
- package/skills/cm-git-worktrees/SKILL.md +0 -26
- package/skills/cm-post-deploy-canary/SKILL.archive.md +0 -22
- package/skills/cm-post-deploy-canary/SKILL.md +0 -26
- package/skills/cm-qa-visual-cli/SKILL.archive.md +0 -22
- package/skills/cm-qa-visual-cli/SKILL.md +0 -26
- package/skills/cm-second-opinion-cli/SKILL.archive.md +0 -23
- package/skills/cm-second-opinion-cli/SKILL.md +0 -26
- package/skills/cm-secret-shield/SKILL.archive.md +0 -580
- package/skills/cm-secret-shield/SKILL.md +0 -26
- package/skills/cm-security-gate/SKILL.archive.md +0 -239
- package/skills/cm-security-gate/SKILL.md +0 -26
- package/skills/cm-skill-health/SKILL.archive.md +0 -83
- package/skills/cm-skill-health/SKILL.md +0 -26
- package/skills/cm-skill-mastery/SKILL.archive.md +0 -156
- package/skills/cm-skill-mastery/SKILL.md +0 -26
- package/skills/cm-skill-search/SKILL.archive.md +0 -49
- package/skills/cm-skill-search/SKILL.md +0 -26
- package/skills/cm-skill-share/SKILL.archive.md +0 -58
- package/skills/cm-skill-share/SKILL.md +0 -26
- package/skills/cm-test-gate/SKILL.archive.md +0 -245
- package/skills/cm-test-gate/SKILL.md +0 -26
- package/skills/cm-ui-preview/SKILL.archive.md +0 -153
- package/skills/cm-ui-preview/SKILL.md +0 -26
|
@@ -0,0 +1,521 @@
|
|
|
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]` |
|