codymaster 4.1.4 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -2
- package/README.md +54 -84
- package/dist/index.js +118 -4
- package/install.sh +2 -2
- package/package.json +3 -8
- package/skills/AGENTS.md +61 -0
- package/skills/CLAUDE.md +158 -0
- package/skills/boxme-git-config/SKILL.md +56 -0
- package/skills/boxme-local-dev/SKILL.md +66 -0
- package/skills/build.sh +30 -0
- package/skills/cf +314 -0
- package/skills/cf 2 +313 -0
- package/skills/cm-ads-tracker/SKILL.md +364 -69
- 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 +15 -24
- package/skills/cm-clean-code/SKILL.md +300 -0
- package/skills/cm-code-review/SKILL.md +0 -27
- package/skills/cm-codeintell/SKILL.md +598 -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/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/index.html +680 -0
- package/skills/cm-content-factory/landing/script.js +101 -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 +7 -0
- package/skills/cm-cro-methodology/SKILL.md +290 -0
- package/skills/cm-dashboard/SKILL.md +7 -525
- package/skills/cm-debugging/SKILL.md +7 -116
- package/skills/cm-deep-search/SKILL.md +5 -1
- package/skills/cm-dockit/README.md +6 -15
- package/skills/cm-dockit/SKILL.md +20 -37
- package/skills/cm-execution/SKILL.md +6 -1
- package/skills/cm-frappe-agent/SKILL.md +134 -0
- package/skills/cm-frappe-agent/agents/doctype-architect.md +596 -0
- package/skills/cm-frappe-agent/agents/erpnext-customizer.md +643 -0
- package/skills/cm-frappe-agent/agents/frappe-backend.md +814 -0
- package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +557 -0
- package/skills/cm-frappe-agent/agents/frappe-debugger.md +625 -0
- package/skills/cm-frappe-agent/agents/frappe-fixer.md +275 -0
- package/skills/cm-frappe-agent/agents/frappe-frontend.md +660 -0
- package/skills/cm-frappe-agent/agents/frappe-installer.md +158 -0
- package/skills/cm-frappe-agent/agents/frappe-performance.md +307 -0
- package/skills/cm-frappe-agent/agents/frappe-planner.md +419 -0
- package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +153 -0
- package/skills/cm-frappe-agent/agents/github-workflow.md +286 -0
- package/skills/cm-frappe-agent/commands/frappe-app.md +351 -0
- package/skills/cm-frappe-agent/commands/frappe-backend.md +162 -0
- package/skills/cm-frappe-agent/commands/frappe-bench.md +254 -0
- package/skills/cm-frappe-agent/commands/frappe-debug.md +263 -0
- package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +272 -0
- package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +310 -0
- package/skills/cm-frappe-agent/commands/frappe-erpnext.md +210 -0
- package/skills/cm-frappe-agent/commands/frappe-fix.md +59 -0
- package/skills/cm-frappe-agent/commands/frappe-frontend.md +210 -0
- package/skills/cm-frappe-agent/commands/frappe-fullstack.md +243 -0
- package/skills/cm-frappe-agent/commands/frappe-github.md +57 -0
- package/skills/cm-frappe-agent/commands/frappe-install.md +52 -0
- package/skills/cm-frappe-agent/commands/frappe-plan.md +442 -0
- package/skills/cm-frappe-agent/commands/frappe-remote.md +58 -0
- package/skills/cm-frappe-agent/commands/frappe-test.md +356 -0
- package/skills/cm-frappe-agent/docs/README.md +51 -0
- package/skills/cm-frappe-agent/docs/agents-catalog.md +113 -0
- package/skills/cm-frappe-agent/docs/architecture.md +149 -0
- package/skills/cm-frappe-agent/docs/commands-catalog.md +82 -0
- package/skills/cm-frappe-agent/docs/resources-catalog.md +66 -0
- package/skills/cm-frappe-agent/docs/sitemap-urls.txt +52 -0
- package/skills/cm-frappe-agent/docs/sitemap.md +81 -0
- package/skills/cm-frappe-agent/docs/sop/user-guide.md +178 -0
- package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +122 -0
- package/skills/cm-frappe-agent/resources/7-layer-architecture.md +985 -0
- package/skills/cm-frappe-agent/resources/bench_commands.md +73 -0
- package/skills/cm-frappe-agent/resources/code-patterns-guide.md +948 -0
- package/skills/cm-frappe-agent/resources/common_pitfalls.md +266 -0
- package/skills/cm-frappe-agent/resources/doctype-registry.md +158 -0
- package/skills/cm-frappe-agent/resources/installation-guide.md +289 -0
- package/skills/cm-frappe-agent/resources/rest-api-patterns.md +182 -0
- package/skills/cm-frappe-agent/resources/scaffold_checklist.md +82 -0
- package/skills/cm-frappe-agent/resources/upgrade_patterns.md +113 -0
- package/skills/cm-frappe-agent/resources/web-form-patterns.md +252 -0
- package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +621 -0
- package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +642 -0
- package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +576 -0
- package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +740 -0
- package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +47 -0
- package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +608 -0
- package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +46 -0
- package/skills/cm-git-worktrees/SKILL.md +0 -7
- 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 +293 -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 +20 -4
- package/skills/cm-identity-guard/SKILL.md +0 -11
- package/skills/cm-jtbd/SKILL.md +1 -1
- package/skills/cm-notebooklm/SKILL.md +172 -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 +39 -52
- package/skills/cm-project-bootstrap/SKILL.md +1307 -99
- package/skills/cm-quality-gate/SKILL.md +13 -106
- package/skills/cm-reactor/SKILL.md +274 -0
- package/skills/cm-safe-deploy/SKILL.md +415 -52
- package/skills/cm-safe-i18n/SKILL.md +1 -22
- package/skills/cm-secret-shield/SKILL.md +2 -2
- package/skills/cm-security-gate/SKILL.md +114 -0
- package/skills/cm-skill-chain/SKILL.md +2 -2
- package/skills/cm-skill-index/SKILL.md +9 -6
- package/skills/cm-skill-mastery/SKILL.md +2 -15
- package/skills/cm-start/SKILL.md +9 -0
- package/skills/cm-tdd/SKILL.md +16 -49
- package/skills/cm-ui-preview/SKILL.md +35 -173
- package/skills/cm-ux-master/FEATURES-v4.md +305 -0
- package/skills/cm-ux-master/README-ru.md +135 -0
- package/skills/cm-ux-master/README-vi.md +135 -0
- package/skills/cm-ux-master/README-zh.md +135 -0
- package/skills/cm-ux-master/README.md +489 -0
- package/skills/cm-ux-master/SKILL.md +773 -62
- package/skills/cm-ux-master/cli/README.md +180 -0
- package/skills/cm-ux-master/cli/pyproject.toml +106 -0
- package/skills/cm-ux-master/cli/requirements.txt +21 -0
- package/skills/cm-ux-master/cli/templates/base/skill-core.md +262 -0
- package/skills/cm-ux-master/cli/templates/platforms/claude.yaml +21 -0
- package/skills/cm-ux-master/cli/templates/platforms/cursor.yaml +21 -0
- package/skills/cm-ux-master/cli/templates/platforms/figma.yaml +24 -0
- package/skills/cm-ux-master/cli/templates/platforms/vscode-mcp.yaml +28 -0
- package/skills/cm-ux-master/cli/templates/platforms/windsurf.yaml +21 -0
- package/skills/cm-ux-master/cli/uxmaster/__init__.py +10 -0
- package/skills/cm-ux-master/cli/uxmaster/__main__.py +19 -0
- package/skills/cm-ux-master/cli/uxmaster/cli.py +349 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/__init__.py +8 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/extract.py +18 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/init.py +58 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +194 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/search.py +23 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/validate.py +270 -0
- package/skills/cm-ux-master/cli/uxmaster/search_engine.py +532 -0
- package/skills/cm-ux-master/cli/uxmaster/template_engine.py +458 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/__init__.py +9 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/console.py +42 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/detect.py +83 -0
- package/skills/cm-ux-master/data/accessibility-advanced.csv +26 -0
- package/skills/cm-ux-master/data/animation.csv +31 -0
- package/skills/cm-ux-master/data/charts.csv +26 -0
- package/skills/cm-ux-master/data/colors.csv +97 -0
- package/skills/cm-ux-master/data/design-tests.csv +37 -0
- package/skills/cm-ux-master/data/devices.csv +21 -0
- package/skills/cm-ux-master/data/icons.csv +101 -0
- package/skills/cm-ux-master/data/landing.csv +31 -0
- package/skills/cm-ux-master/data/products.csv +97 -0
- package/skills/cm-ux-master/data/react-performance.csv +45 -0
- package/skills/cm-ux-master/data/responsive.csv +26 -0
- package/skills/cm-ux-master/data/semi-tokens.csv +52 -0
- package/skills/cm-ux-master/data/stacks/angular.csv +34 -0
- package/skills/cm-ux-master/data/stacks/astro.csv +54 -0
- package/skills/cm-ux-master/data/stacks/electron.csv +32 -0
- package/skills/cm-ux-master/data/stacks/flutter.csv +53 -0
- package/skills/cm-ux-master/data/stacks/html-tailwind.csv +56 -0
- package/skills/cm-ux-master/data/stacks/htmx.csv +28 -0
- package/skills/cm-ux-master/data/stacks/jetpack-compose.csv +53 -0
- package/skills/cm-ux-master/data/stacks/nextjs.csv +53 -0
- package/skills/cm-ux-master/data/stacks/nuxt-ui.csv +51 -0
- package/skills/cm-ux-master/data/stacks/nuxtjs.csv +59 -0
- package/skills/cm-ux-master/data/stacks/react-native.csv +52 -0
- package/skills/cm-ux-master/data/stacks/react.csv +54 -0
- package/skills/cm-ux-master/data/stacks/shadcn.csv +61 -0
- package/skills/cm-ux-master/data/stacks/svelte.csv +54 -0
- package/skills/cm-ux-master/data/stacks/swiftui.csv +51 -0
- package/skills/cm-ux-master/data/stacks/tauri.csv +29 -0
- package/skills/cm-ux-master/data/stacks/vue.csv +50 -0
- package/skills/cm-ux-master/data/styles.csv +68 -0
- package/skills/cm-ux-master/data/typography.csv +58 -0
- package/skills/cm-ux-master/data/ui-reasoning.csv +101 -0
- package/skills/cm-ux-master/data/ux-guidelines.csv +100 -0
- package/skills/cm-ux-master/data/ux-laws.csv +49 -0
- package/skills/cm-ux-master/data/web-interface.csv +31 -0
- package/skills/cm-ux-master/docs/LANDING-PAGE.html +377 -0
- package/skills/cm-ux-master/docs/README.md +108 -0
- package/skills/cm-ux-master/docs/css/styles.css +573 -0
- package/skills/cm-ux-master/docs/examples/demo-script.md +319 -0
- package/skills/cm-ux-master/docs/guides/for-designers.md +692 -0
- package/skills/cm-ux-master/docs/guides/for-developers.md +778 -0
- package/skills/cm-ux-master/docs/guides/for-product-managers.md +693 -0
- package/skills/cm-ux-master/docs/guides/react-guide-vi.md +50 -0
- package/skills/cm-ux-master/docs/index.html +1062 -0
- package/skills/cm-ux-master/docs/js/i18n.js +84 -0
- package/skills/cm-ux-master/docs/js/lang/de.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/en.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/fr.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/hi.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/id.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ja.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ko.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ru.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/vi.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/zh.js +145 -0
- package/skills/cm-ux-master/docs/js/main.js +117 -0
- package/skills/cm-ux-master/docs/plan/PHASE1-COMPLETION.md +217 -0
- package/skills/cm-ux-master/docs/plan/PHASE2-COMPLETION.md +199 -0
- package/skills/cm-ux-master/docs/plan/PHASE2-ENHANCED-COMPLETION.md +352 -0
- package/skills/cm-ux-master/docs/plan/PHASE3-VALIDATION-COMPLETION.md +499 -0
- package/skills/cm-ux-master/docs/plan/PHASE4-TESTING-POLISH-COMPLETION.md +483 -0
- package/skills/cm-ux-master/docs/plan/UXM-2.0-ROADMAP.md +681 -0
- package/skills/cm-ux-master/docs/plan/WOW-PITCH.md +410 -0
- package/skills/cm-ux-master/docs/technical/api-reference.md +824 -0
- package/skills/cm-ux-master/docs/technical/harvester-v4.md +328 -0
- package/skills/cm-ux-master/docs/technical/how-it-works.md +1128 -0
- package/skills/cm-ux-master/docs/tutorials/quickstart.md +339 -0
- package/skills/cm-ux-master/docs/tutorials/tutorials.md +939 -0
- package/skills/cm-ux-master/docs/tutorials/user-guide.md +716 -0
- package/skills/cm-ux-master/examples/README.md +63 -0
- package/skills/cm-ux-master/mcp/__init__.py +3 -0
- package/skills/cm-ux-master/mcp/integrations/__init__.py +11 -0
- package/skills/cm-ux-master/mcp/integrations/figma/__init__.py +6 -0
- package/skills/cm-ux-master/mcp/integrations/figma/client.py +293 -0
- package/skills/cm-ux-master/mcp/integrations/figma/plugin/code.js +561 -0
- package/skills/cm-ux-master/mcp/integrations/figma/plugin/ui.html +334 -0
- package/skills/cm-ux-master/mcp/integrations/stitch/__init__.py +5 -0
- package/skills/cm-ux-master/mcp/integrations/stitch/client.py +410 -0
- package/skills/cm-ux-master/mcp/integrations/vscode/package.json +167 -0
- package/skills/cm-ux-master/mcp/integrations/vscode/src/extension.ts +81 -0
- package/skills/cm-ux-master/mcp/mcp-config.json +274 -0
- package/skills/cm-ux-master/mcp/server.py +771 -0
- package/skills/cm-ux-master/mcp/tools/__init__.py +13 -0
- package/skills/cm-ux-master/mcp-server/server.py +595 -0
- package/skills/cm-ux-master/output/fila/FilaDashboard.tsx +47 -0
- package/skills/cm-ux-master/output/fila/components/badge/component.tsx +35 -0
- package/skills/cm-ux-master/output/fila/components/badge/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/button/component.tsx +53 -0
- package/skills/cm-ux-master/output/fila/components/button/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/card/component.tsx +35 -0
- package/skills/cm-ux-master/output/fila/components/card/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/input/component.tsx +41 -0
- package/skills/cm-ux-master/output/fila/components/input/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/design-system.css +151 -0
- package/skills/cm-ux-master/output/fila/design-system.html +1596 -0
- package/skills/cm-ux-master/output/fila/design-system.json +168 -0
- package/skills/cm-ux-master/output/fila/figma-tokens.json +523 -0
- package/skills/cm-ux-master/output/fila/harvest-v4-raw.json +406 -0
- package/skills/cm-ux-master/output/fila/semi-theme-override.css +95 -0
- package/skills/cm-ux-master/output/haravan/HaravanDashboard.tsx +103 -0
- package/skills/cm-ux-master/output/haravan/design-system-v3-live.html +2716 -0
- package/skills/cm-ux-master/output/haravan/design-system-v3.html +1770 -0
- package/skills/cm-ux-master/output/haravan/design-system.html +914 -0
- package/skills/cm-ux-master/output/haravan/figma-tokens.json +84 -0
- package/skills/cm-ux-master/output/haravan/haravan-harvest.json +33 -0
- package/skills/cm-ux-master/output/haravan/harvest-v3-raw.json +167 -0
- package/skills/cm-ux-master/output/haravan/semi-theme-override.css +39 -0
- package/skills/cm-ux-master/references/audit-template.md +257 -0
- package/skills/cm-ux-master/references/cultural-ux.md +346 -0
- package/skills/cm-ux-master/references/dark-patterns.md +362 -0
- package/skills/cm-ux-master/references/heuristic-conflicts.md +296 -0
- package/skills/cm-ux-master/references/krug-principles.md +289 -0
- package/skills/cm-ux-master/references/nielsen-heuristics.md +360 -0
- package/skills/cm-ux-master/references/wcag-checklist.md +306 -0
- package/skills/cm-ux-master/scripts/component_generator.py +631 -0
- package/skills/cm-ux-master/scripts/core.py +305 -0
- package/skills/cm-ux-master/scripts/demo_validation.py +452 -0
- package/skills/cm-ux-master/scripts/design_doc_generator.py +1325 -0
- package/skills/cm-ux-master/scripts/design_system.py +1141 -0
- package/skills/cm-ux-master/scripts/design_system_indexer.py +889 -0
- package/skills/cm-ux-master/scripts/extract_i18n.py +251 -0
- package/skills/cm-ux-master/scripts/extractor.py +1437 -0
- package/skills/cm-ux-master/scripts/figma_bridge.py +406 -0
- package/skills/cm-ux-master/scripts/generate.py +147 -0
- package/skills/cm-ux-master/scripts/harvest_session.py +207 -0
- package/skills/cm-ux-master/scripts/harvester.js +240 -0
- package/skills/cm-ux-master/scripts/harvester_browser.py +717 -0
- package/skills/cm-ux-master/scripts/harvester_cli.py +431 -0
- package/skills/cm-ux-master/scripts/harvester_v1.js +275 -0
- package/skills/cm-ux-master/scripts/harvester_v3.js +620 -0
- package/skills/cm-ux-master/scripts/harvester_v4.js +1003 -0
- package/skills/cm-ux-master/scripts/install.py +528 -0
- package/skills/cm-ux-master/scripts/license.py +81 -0
- package/skills/cm-ux-master/scripts/media/qrpayment.png +0 -0
- package/skills/cm-ux-master/scripts/pro_stubs.py +120 -0
- package/skills/cm-ux-master/scripts/project_registry.py +217 -0
- package/skills/cm-ux-master/scripts/search.py +114 -0
- package/skills/cm-ux-master/scripts/semi_mcp_bridge.py +425 -0
- package/skills/cm-ux-master/scripts/stitch_integration.py +583 -0
- package/skills/cm-ux-master/scripts/test_harvester_v4.py +335 -0
- package/skills/cm-ux-master/scripts/token_mapper.py +626 -0
- package/skills/cm-ux-master/scripts/validation_engine.py +1571 -0
- package/skills/cm-ux-master/scripts/wizard.py +653 -0
- package/skills/cm-ux-master/setup.py +93 -0
- package/skills/cm-ux-master/templates/base/flutter-widget.dart +69 -0
- package/skills/cm-ux-master/templates/base/html-page.html +152 -0
- package/skills/cm-ux-master/templates/base/react-component.tsx +47 -0
- package/skills/cm-ux-master/templates/base/swiftui-view.swift +62 -0
- package/skills/cm-ux-master/templates/quick-start.sh +176 -0
- package/skills/cm-ux-master/tests/automation/batch-validate.sh +250 -0
- package/skills/cm-ux-master/tests/automation/generate-test-projects.sh +561 -0
- package/skills/cm-ux-master/tests/automation/run-all-tests.sh +315 -0
- package/skills/cm-ux-master/tests/test_design_doc.py +145 -0
- package/skills/cm-ux-master/tests/test_devices.py +74 -0
- package/skills/cm-ux-master/tests/test_generator.py +116 -0
- package/skills/cm-ux-master/tests/test_harvest_session.py +131 -0
- package/skills/cm-ux-master/tests/test_harvester.py +127 -0
- package/skills/cm-ux-master/tests/test_harvester_v3.py +324 -0
- package/skills/cm-ux-master/tests/test_mcp_server.py +496 -0
- package/skills/cm-ux-master/tests/test_new_domains.py +108 -0
- package/skills/cm-ux-master/tests/test_new_stacks.py +103 -0
- package/skills/cm-ux-master/tests/test_project_registry.py +146 -0
- package/skills/cm-ux-master/tests/test_semi_mcp_bridge.py +207 -0
- package/skills/cm-ux-master/tests/test_token_mapper.py +247 -0
- package/skills/cm-ux-master/tests/test_validation_engine.py +617 -0
- package/skills/config.schema.json +397 -0
- package/skills/frappe-app-builder.zip +0 -0
- package/skills/jobs-to-be-done/SKILL.md +266 -0
- package/skills/jobs-to-be-done/references/case-studies.md +154 -0
- package/skills/jobs-to-be-done/references/competitive-strategy.md +280 -0
- package/skills/jobs-to-be-done/references/diagnostics.md +158 -0
- package/skills/jobs-to-be-done/references/innovation-process.md +392 -0
- package/skills/jobs-to-be-done/references/organizational-change.md +328 -0
- package/skills/marketplace-report-crawler/SKILL.md +176 -0
- package/skills/marketplace-report-crawler/config/accounts.json +41 -0
- package/skills/marketplace-report-crawler/config/report-types.json +422 -0
- package/skills/marketplace-report-crawler/config/sessions.json +3 -0
- package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +102 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +114 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +94 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +272 -0
- package/skills/marketplace-report-crawler/scripts/crawl-runner.js +281 -0
- package/skills/marketplace-report-crawler/scripts/session-check.sh +72 -0
- package/skills/marketplace-report-crawler/scripts/session-manager.sh +349 -0
- package/skills/marketplace-report-crawler/scripts/setup-folders.sh +83 -0
- package/skills/medical-research/SKILL.md +194 -0
- package/skills/medical-research/scripts/evidence_checker.py +288 -0
- package/skills/mom-test/SKILL.md +267 -0
- package/skills/mom-test/references/avoiding-bad-data.md +221 -0
- package/skills/mom-test/references/case-studies.md +306 -0
- package/skills/mom-test/references/commitment-advancement.md +219 -0
- package/skills/mom-test/references/finding-conversations.md +251 -0
- package/skills/mom-test/references/processing-learning.md +256 -0
- package/skills/mom-test/references/question-patterns.md +198 -0
- package/skills/pandasai-analytics/SKILL.md +251 -0
- package/skills/release-it/SKILL.md +235 -0
- package/skills/release-it/references/anti-patterns.md +279 -0
- package/skills/release-it/references/capacity-planning.md +285 -0
- package/skills/release-it/references/chaos-engineering.md +325 -0
- package/skills/release-it/references/deployment-strategies.md +331 -0
- package/skills/release-it/references/observability.md +301 -0
- package/skills/release-it/references/stability-patterns.md +355 -0
- package/skills/scripts/sync-ide-skills.sh +61 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +37 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +34 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +51 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +39 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +52 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +25 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +31 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +25 -0
- package/skills/skill-creator-ultra/README.md +1242 -0
- package/skills/skill-creator-ultra/SKILL.md +388 -0
- package/skills/skill-creator-ultra/agents/analyzer.md +274 -0
- package/skills/skill-creator-ultra/agents/comparator.md +202 -0
- package/skills/skill-creator-ultra/agents/grader.md +223 -0
- package/skills/skill-creator-ultra/assets/eval_review.html +146 -0
- package/skills/skill-creator-ultra/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator-ultra/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +109 -0
- package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +116 -0
- package/skills/skill-creator-ultra/examples/example_api_docs.md +189 -0
- package/skills/skill-creator-ultra/examples/example_db_migration.md +253 -0
- package/skills/skill-creator-ultra/examples/example_git_commit.md +111 -0
- package/skills/skill-creator-ultra/install.ps1 +289 -0
- package/skills/skill-creator-ultra/install.sh +313 -0
- package/skills/skill-creator-ultra/phases/phase1_interview.md +202 -0
- package/skills/skill-creator-ultra/phases/phase2_extract.md +55 -0
- package/skills/skill-creator-ultra/phases/phase3_detect.md +57 -0
- package/skills/skill-creator-ultra/phases/phase4_generate.md +543 -0
- package/skills/skill-creator-ultra/phases/phase5_test.md +319 -0
- package/skills/skill-creator-ultra/phases/phase6_eval.md +301 -0
- package/skills/skill-creator-ultra/phases/phase7_iterate.md +103 -0
- package/skills/skill-creator-ultra/phases/phase8_optimize.md +113 -0
- package/skills/skill-creator-ultra/resources/advanced_patterns.md +499 -0
- package/skills/skill-creator-ultra/resources/anti_patterns.md +376 -0
- package/skills/skill-creator-ultra/resources/blueprints.md +498 -0
- package/skills/skill-creator-ultra/resources/checklist.md +243 -0
- package/skills/skill-creator-ultra/resources/composition_cookbook.md +291 -0
- package/skills/skill-creator-ultra/resources/description_optimization.md +90 -0
- package/skills/skill-creator-ultra/resources/eval_guide.md +133 -0
- package/skills/skill-creator-ultra/resources/industry_questions.md +189 -0
- package/skills/skill-creator-ultra/resources/interview_questions.md +200 -0
- package/skills/skill-creator-ultra/resources/pattern_detection.md +200 -0
- package/skills/skill-creator-ultra/resources/prompt_engineering.md +531 -0
- package/skills/skill-creator-ultra/resources/schemas.md +430 -0
- package/skills/skill-creator-ultra/resources/script_integration.md +593 -0
- package/skills/skill-creator-ultra/resources/scripts_guide.md +339 -0
- package/skills/skill-creator-ultra/resources/skill_template.md +124 -0
- package/skills/skill-creator-ultra/resources/skill_writing_guide.md +634 -0
- package/skills/skill-creator-ultra/resources/versioning_guide.md +193 -0
- package/skills/skill-creator-ultra/scripts/ci_eval.py +200 -0
- package/skills/skill-creator-ultra/scripts/package_skill.py +165 -0
- package/skills/skill-creator-ultra/scripts/simulate_skill.py +398 -0
- package/skills/skill-creator-ultra/scripts/skill_audit.py +611 -0
- package/skills/skill-creator-ultra/scripts/skill_compare.py +265 -0
- package/skills/skill-creator-ultra/scripts/skill_export.py +334 -0
- package/skills/skill-creator-ultra/scripts/skill_scaffold.py +403 -0
- package/skills/skill-creator-ultra/scripts/skill_stats.py +339 -0
- package/skills/skill-creator-ultra/scripts/validate_skill.py +411 -0
- package/skills/tailwind-mastery/SKILL.md +229 -0
- package/skills/vercel-react-best-practices/AGENTS.md +3373 -0
- package/skills/vercel-react-best-practices/README.md +123 -0
- package/skills/vercel-react-best-practices/SKILL.md +143 -0
- package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/skills/web-design-guidelines/SKILL.md +39 -0
- package/skills/cro-methodology/SKILL.md +0 -98
- /package/skills/{cro-methodology → cm-cro-methodology}/references/COPYWRITING.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/OBJECTIONS.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/PERSUASION.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/RESEARCH.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/funnel-analysis.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/testing-methodology.md +0 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mom-test
|
|
3
|
+
description: 'Talk to customers without leading them using Mom Test rules: discuss their life not your idea, ask about specifics in the past, and talk less. Use when the user mentions "customer interviews", "validate my idea", "users say they want it but don''t buy", "leading questions", or "The Mom Test". Covers commitment and advancement, avoiding compliments, and extracting signal from noise. For product-market fit, see jobs-to-be-done. For rapid prototype testing, see design-sprint.'
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: wondelai
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# The Mom Test Framework
|
|
11
|
+
|
|
12
|
+
Framework for having useful customer conversations that won't lead you astray. Based on a fundamental truth: everyone is lying to you -- not because they're malicious, but because you're asking the wrong questions. Your mom will tell you your idea is great because she loves you. Investors, friends, and even potential customers will do the same. The Mom Test provides rules for asking questions so good that even your mom can't lie to you.
|
|
13
|
+
|
|
14
|
+
## Core Principle
|
|
15
|
+
|
|
16
|
+
**Good customer conversations are about their life, not your idea.** The moment you mention what you're building, people switch from sharing truth to performing politeness. They tell you what you want to hear. The antidote is simple: talk about their problems, their lives, and their existing behavior instead of pitching your solution. Ask about specifics in the past, not hypotheticals about the future. And above all, talk less and listen more.
|
|
17
|
+
|
|
18
|
+
## Scoring
|
|
19
|
+
|
|
20
|
+
**Goal: 10/10.** When reviewing or planning customer conversations, rate them 0-10 based on adherence to the principles below. A 10/10 means questions focus entirely on the customer's life and past behavior, with no leading, no pitching, and clear commitment signals; lower scores indicate gaps to address. Always provide the current score and specific improvements needed to reach 10/10.
|
|
21
|
+
|
|
22
|
+
## Framework Sections
|
|
23
|
+
|
|
24
|
+
### 1. The Mom Test Rules
|
|
25
|
+
|
|
26
|
+
**Core concept:** Three simple rules that, when followed, make it impossible for even your most supportive loved ones to give you false validation. The rules shift conversations from opinion-gathering to fact-finding.
|
|
27
|
+
|
|
28
|
+
**Why it works:** Opinions are worthless because people are unreliable predictors of their own future behavior. Past behavior is the only reliable data. By focusing on what people have actually done rather than what they say they would do, you extract facts that can genuinely inform product decisions.
|
|
29
|
+
|
|
30
|
+
**Key insights:**
|
|
31
|
+
- Rule 1: Talk about their life, not your idea -- never mention your solution until the end (if at all)
|
|
32
|
+
- Rule 2: Ask about specifics in the past, not generics or hypotheticals about the future
|
|
33
|
+
- Rule 3: Talk less, listen more -- aim for them to speak 80% of the time
|
|
34
|
+
- A question fails the Mom Test if the answer is always "yes" regardless of whether the business will succeed
|
|
35
|
+
- Good questions are ones that could potentially destroy your currently imagined business
|
|
36
|
+
- You want facts and commitments, not compliments and opinions
|
|
37
|
+
- The best learning happens when you shut up and let awkward silences do the work
|
|
38
|
+
|
|
39
|
+
**Product applications:**
|
|
40
|
+
|
|
41
|
+
| Context | Application | Example |
|
|
42
|
+
|---------|-------------|---------|
|
|
43
|
+
| Idea validation | Ask about the problem, never the solution | "Tell me about the last time you tried to [problem area]" instead of "Would you use an app that does X?" |
|
|
44
|
+
| Feature prioritization | Discover what people actually do vs. what they say | "Walk me through how you handled this last week" reveals real workflow |
|
|
45
|
+
| Pricing research | Anchor to existing spending behavior | "What are you currently paying to solve this?" instead of "Would you pay $X?" |
|
|
46
|
+
|
|
47
|
+
**Copy patterns:**
|
|
48
|
+
- "Tell me about the last time you..."
|
|
49
|
+
- "What happened next?"
|
|
50
|
+
- "How are you dealing with that currently?"
|
|
51
|
+
- "Can you walk me through your process?"
|
|
52
|
+
- "What else have you tried?"
|
|
53
|
+
|
|
54
|
+
**Ethical boundary:** Never weaponize someone's honest answers against them. The Mom Test earns trust by respecting people's time and honesty -- using vulnerability data to manipulate sales crosses the line.
|
|
55
|
+
|
|
56
|
+
See: [references/question-patterns.md](references/question-patterns.md)
|
|
57
|
+
|
|
58
|
+
### 2. Good vs Bad Questions
|
|
59
|
+
|
|
60
|
+
**Core concept:** Most customer interview questions are fundamentally broken because they ask people to predict the future, evaluate hypothetical products, or confirm your assumptions. Good questions anchor in observable past behavior and extract concrete facts.
|
|
61
|
+
|
|
62
|
+
**Why it works:** Humans are terrible at predicting their own behavior. Asking "would you buy this?" is like asking "will you go to the gym next week?" -- the answer is always yes, the follow-through is rarely there. Questions about what people have already done are reliable because behavior has already happened and can't be rationalized away.
|
|
63
|
+
|
|
64
|
+
**Key insights:**
|
|
65
|
+
- Bad: "Do you think it's a good idea?" -- always gets a yes
|
|
66
|
+
- Bad: "Would you buy a product that does X?" -- hypothetical, meaningless
|
|
67
|
+
- Bad: "How much would you pay for X?" -- people anchor to what you want to hear
|
|
68
|
+
- Good: "How are you dealing with this problem today?" -- reveals actual behavior
|
|
69
|
+
- Good: "What have you tried before and why did you stop?" -- reveals past decisions
|
|
70
|
+
- Good: "Where does the money come from for solutions like this?" -- reveals real budgets
|
|
71
|
+
- The scariest questions (ones you're afraid to ask) usually produce the most useful data
|
|
72
|
+
- Ask questions that have the power to change what you're building
|
|
73
|
+
|
|
74
|
+
**Product applications:**
|
|
75
|
+
|
|
76
|
+
| Context | Application | Example |
|
|
77
|
+
|---------|-------------|---------|
|
|
78
|
+
| Problem validation | Confirm the problem exists and matters enough | "When did this last come up? What did you do? What didn't work?" |
|
|
79
|
+
| Market sizing | Understand if enough people have this problem | "Who else in your company/industry deals with this? How do they handle it?" |
|
|
80
|
+
| Competitive analysis | Discover real alternatives people already use | "What tools/processes do you currently use for this?" |
|
|
81
|
+
|
|
82
|
+
**Copy patterns:**
|
|
83
|
+
- "What's the hardest part about [doing this thing]?"
|
|
84
|
+
- "Why was that hard?"
|
|
85
|
+
- "How often does this come up?"
|
|
86
|
+
- "What does a perfect week look like for this workflow?"
|
|
87
|
+
- "Talk me through the last time this happened"
|
|
88
|
+
|
|
89
|
+
**Ethical boundary:** Never use leading or loaded questions that anchor the respondent toward your desired answer. Your job is to learn, not to sell.
|
|
90
|
+
|
|
91
|
+
See: [references/question-patterns.md](references/question-patterns.md)
|
|
92
|
+
|
|
93
|
+
### 3. Avoiding Compliments and Opinions
|
|
94
|
+
|
|
95
|
+
**Core concept:** There are three types of bad data that feel like progress but actively mislead you: compliments ("That's a great idea!"), fluff (hypothetical statements, maybes, future promises), and ideas (feature requests disconnected from real problems). Learning to deflect these and dig for truth is the core skill of customer conversations.
|
|
96
|
+
|
|
97
|
+
**Why it works:** Compliments are the fool's gold of customer development. They feel amazing -- "Everyone loves our idea!" -- but they contain zero information about whether anyone will actually pay for or use your product. Fluff and opinions give the illusion of validation without any concrete evidence. Only specifics about real past behavior and genuine commitments provide signal.
|
|
98
|
+
|
|
99
|
+
**Key insights:**
|
|
100
|
+
- Compliments: deflect immediately and get back to concrete facts ("Thanks -- but let me understand how you're actually handling this today")
|
|
101
|
+
- Fluff: generic claims ("I usually," "I always," "I would never") are worthless without a specific instance
|
|
102
|
+
- Ideas: when someone suggests a feature, dig into the motivation ("That's interesting -- what's driving that? Tell me about the last time you needed something like that")
|
|
103
|
+
- The "would you buy this?" trap: the answer is always yes because saying no feels rude
|
|
104
|
+
- Fishing for compliments: unconsciously seeking validation ("Don't you think this would be really useful?")
|
|
105
|
+
- Symptoms of a bad conversation: you walk away feeling great but have no concrete facts or commitments
|
|
106
|
+
|
|
107
|
+
**Product applications:**
|
|
108
|
+
|
|
109
|
+
| Context | Application | Example |
|
|
110
|
+
|---------|-------------|---------|
|
|
111
|
+
| Post-demo feedback | Deflect "this looks awesome" to get actionable data | "Thanks! What part of your current workflow would this actually replace?" |
|
|
112
|
+
| Feature requests | Dig for the underlying job behind the request | "Why do you want that? Can you show me the last time you needed it?" |
|
|
113
|
+
| Investor conversations | Separate encouragement from real interest | Ask for intros to customers, not just "great idea" feedback |
|
|
114
|
+
|
|
115
|
+
**Copy patterns:**
|
|
116
|
+
- "Thanks, but to make sure I'm not wasting your time -- what does your current process look like?"
|
|
117
|
+
- "Interesting. Can you tell me about a specific time that happened?"
|
|
118
|
+
- "When you say you'd 'definitely' use this, what would you stop using?"
|
|
119
|
+
- "That's a great feature idea -- what problem would it solve for you specifically?"
|
|
120
|
+
|
|
121
|
+
**Ethical boundary:** Do not manipulate people into false commitments. Deflecting compliments is about getting to truth, not about pressuring someone into a sale.
|
|
122
|
+
|
|
123
|
+
See: [references/avoiding-bad-data.md](references/avoiding-bad-data.md)
|
|
124
|
+
|
|
125
|
+
### 4. Commitment and Advancement
|
|
126
|
+
|
|
127
|
+
**Core concept:** The currency of a customer conversation is not compliments -- it's commitment. Real interest shows up as willingness to invest something of value: time, reputation, or money. Every conversation should end with a clear "advance" (moving toward a sale/adoption) or a clear "rejection" (which is also valuable data). The worst outcome is a "zombie lead" -- someone who is polite but never commits.
|
|
128
|
+
|
|
129
|
+
**Why it works:** Talk is cheap. When someone says "I'd definitely buy that," it costs them nothing. When someone offers to introduce you to their boss, puts a deposit down, or agrees to a pilot program, they're investing something real. The gap between what people say and what they do is the most dangerous trap in customer development. Commitment closes that gap.
|
|
130
|
+
|
|
131
|
+
**Key insights:**
|
|
132
|
+
- Commitment currencies: time (meeting, trial), reputation (intro, testimonial), money (deposit, pre-order, letter of intent)
|
|
133
|
+
- Advancing: the conversation moves the relationship closer to a sale or adoption
|
|
134
|
+
- Spinning wheels: pleasant conversations that never progress and produce zombie leads
|
|
135
|
+
- Always know your "ask" before the meeting -- what's the minimum commitment that proves this is real?
|
|
136
|
+
- A "no" is more valuable than a "maybe" -- at least you can learn from it and move on
|
|
137
|
+
- First meeting ask: "Would you be open to a 15-minute trial next week?"
|
|
138
|
+
- If they won't give you their time, they definitely won't give you their money
|
|
139
|
+
|
|
140
|
+
**Product applications:**
|
|
141
|
+
|
|
142
|
+
| Context | Application | Example |
|
|
143
|
+
|---------|-------------|---------|
|
|
144
|
+
| Early validation | Request a commitment that tests real interest | "Can I follow up with a prototype next week for 15 minutes of your time?" |
|
|
145
|
+
| B2B sales | Advance toward a decision-maker meeting | "Could you introduce me to the person who handles the budget for this?" |
|
|
146
|
+
| Pre-launch | Collect pre-orders or letters of intent | "We're launching in 8 weeks -- would you like to be in the first cohort at 40% off?" |
|
|
147
|
+
|
|
148
|
+
**Copy patterns:**
|
|
149
|
+
- "What's the next step here?"
|
|
150
|
+
- "Who else should I talk to about this?"
|
|
151
|
+
- "Would you be willing to try a prototype next week?"
|
|
152
|
+
- "Can I put you on the early access list?"
|
|
153
|
+
- "If I built this, would you be willing to pilot it for 30 days?"
|
|
154
|
+
|
|
155
|
+
**Ethical boundary:** Never pressure people into commitments they'll regret. The goal is to separate real interest from politeness, not to close a sale prematurely.
|
|
156
|
+
|
|
157
|
+
See: [references/commitment-advancement.md](references/commitment-advancement.md)
|
|
158
|
+
|
|
159
|
+
### 5. Finding Conversations
|
|
160
|
+
|
|
161
|
+
**Core concept:** You don't need a formal meeting to learn from customers. The best customer conversations happen casually -- at industry events, through warm intros, in online communities, or over coffee. Formal "customer interview" framing triggers performance mode where people tell you what they think you want to hear. Casual conversations produce more honest data.
|
|
162
|
+
|
|
163
|
+
**Why it works:** When you say "Can I interview you about your problems?", people put on armor. They become polished, guarded, and performative. When you say "I'm trying to learn about the industry -- can I buy you coffee?", people open up. The framing of the conversation determines the quality of the data you receive.
|
|
164
|
+
|
|
165
|
+
**Key insights:**
|
|
166
|
+
- Cold outreach: keep it short, lead with their expertise, don't pitch
|
|
167
|
+
- Warm intros: the best source -- one good advisor can open dozens of doors
|
|
168
|
+
- Industry events and meetups: go where your customers already gather
|
|
169
|
+
- Online communities: participate genuinely before asking questions
|
|
170
|
+
- Landing pages: use "learn more" signups to find engaged prospects
|
|
171
|
+
- Keep it casual: "I'm trying to learn" beats "I'm doing customer research"
|
|
172
|
+
- Vision/framing/weakness/pedestal/ask: a five-part structure for getting meetings
|
|
173
|
+
- Advisors as a distribution channel: formalize relationships with well-connected people
|
|
174
|
+
|
|
175
|
+
**Product applications:**
|
|
176
|
+
|
|
177
|
+
| Context | Application | Example |
|
|
178
|
+
|---------|-------------|---------|
|
|
179
|
+
| Pre-idea exploration | Immerse yourself in the target community | Attend 3 industry events and have 20 casual conversations before writing a line of code |
|
|
180
|
+
| B2B prospecting | Use warm intros through advisors and investors | "Our advisor [Name] suggested I talk to you about how you handle [problem area]" |
|
|
181
|
+
| Consumer research | Intercept people at the point of behavior | Talk to people in line at the store, at the gym, at the coworking space |
|
|
182
|
+
|
|
183
|
+
**Copy patterns:**
|
|
184
|
+
- "I'm researching how [industry] handles [problem] -- could I learn from your experience over a 15-minute coffee?"
|
|
185
|
+
- "[Mutual contact] suggested I talk to you because you know a lot about [area]"
|
|
186
|
+
- "I'm not trying to sell anything -- I'm just trying to understand the space"
|
|
187
|
+
- "I'm thinking about starting something in [space] and want to make sure I'm not delusional"
|
|
188
|
+
|
|
189
|
+
**Ethical boundary:** Never disguise a sales call as a learning conversation. If you already have a product and are selling, be transparent. The Mom Test is for genuine learning, not for covert pitching.
|
|
190
|
+
|
|
191
|
+
See: [references/finding-conversations.md](references/finding-conversations.md)
|
|
192
|
+
|
|
193
|
+
### 6. Processing and Learning
|
|
194
|
+
|
|
195
|
+
**Core concept:** Customer conversations are only useful if you process them properly. Raw notes must be distilled into beliefs, updated regularly, and shared with your team. Without a system, you'll cherry-pick quotes that confirm your biases and ignore signals that challenge your assumptions.
|
|
196
|
+
|
|
197
|
+
**Why it works:** Memory is unreliable and biased toward recent and emotionally charged information. Without structured note-taking and review, teams selectively remember the data that confirms what they already believe. Processing conversations as a team prevents any single person's bias from dominating the narrative.
|
|
198
|
+
|
|
199
|
+
**Key insights:**
|
|
200
|
+
- Take notes during or immediately after -- never rely on memory
|
|
201
|
+
- Separate facts (what they said and did) from interpretations (what you think it means)
|
|
202
|
+
- Share raw notes with your team, not filtered summaries
|
|
203
|
+
- Update your three key beliefs: the problem, the customer segment, and the solution
|
|
204
|
+
- Know when to stop talking and start building -- when conversations start repeating, you've learned enough
|
|
205
|
+
- Conversations are for learning, not for convincing yourself you're right
|
|
206
|
+
- Use a simple spreadsheet: who, date, key quotes, facts, commitments, and belief changes
|
|
207
|
+
|
|
208
|
+
**Product applications:**
|
|
209
|
+
|
|
210
|
+
| Context | Application | Example |
|
|
211
|
+
|---------|-------------|---------|
|
|
212
|
+
| Team alignment | Share notes in weekly standups to build shared understanding | Review 5 conversations per week as a team and update the belief board |
|
|
213
|
+
| Pivot decisions | Track when evidence contradicts your core beliefs | If 8 of 10 conversations reveal a different problem than expected, pivot |
|
|
214
|
+
| Feature validation | Count how many people mention a problem unprompted | A problem mentioned by 7 of 10 people is real; one mentioned by 1 of 10 might not be |
|
|
215
|
+
|
|
216
|
+
**Copy patterns:**
|
|
217
|
+
- "Here are the exact quotes from this week's conversations"
|
|
218
|
+
- "Our current belief is X -- here's what confirms it and what challenges it"
|
|
219
|
+
- "We've heard this from N of M people -- is that enough signal?"
|
|
220
|
+
- "Time to stop talking and build -- conversations are repeating"
|
|
221
|
+
|
|
222
|
+
**Ethical boundary:** Never misrepresent or selectively quote customer conversations to justify a predetermined conclusion. Honest processing means accepting uncomfortable truths.
|
|
223
|
+
|
|
224
|
+
See: [references/processing-learning.md](references/processing-learning.md)
|
|
225
|
+
|
|
226
|
+
## Common Mistakes
|
|
227
|
+
|
|
228
|
+
| Mistake | Why It Fails | Fix |
|
|
229
|
+
|---------|-------------|-----|
|
|
230
|
+
| Pitching your idea instead of asking about their life | Triggers politeness, produces compliments instead of facts | Don't mention your idea until the very end, if at all |
|
|
231
|
+
| Asking "would you buy this?" | People always say yes to hypotheticals; it costs them nothing | Ask what they've already done: "How much are you spending on this now?" |
|
|
232
|
+
| Accepting compliments as validation | "Great idea!" contains zero information about future behavior | Deflect immediately: "Thanks -- but what are you doing about this today?" |
|
|
233
|
+
| Talking too much | You learn nothing while talking; you learn everything while listening | Set a timer: they should talk 80% of the time or more |
|
|
234
|
+
| Not having a clear ask at the end | Produces zombie leads -- pleasant conversations that go nowhere | Know your advance before the meeting: trial, intro, pre-order |
|
|
235
|
+
| Running formal "interview" sessions | Triggers performance mode where people filter their answers | Keep it casual: coffee, hallway conversations, Slack DMs |
|
|
236
|
+
| Not processing notes as a team | Individual bias filters raw data into confirmation of existing beliefs | Share raw notes weekly and update shared beliefs together |
|
|
237
|
+
|
|
238
|
+
## Quick Diagnostic
|
|
239
|
+
|
|
240
|
+
| Question | If No | Action |
|
|
241
|
+
|----------|-------|--------|
|
|
242
|
+
| Did the conversation focus on their life and past behavior, not your idea? | You ran a pitch, not a Mom Test conversation | Redo with zero mention of your solution |
|
|
243
|
+
| Did you get concrete facts about what they've already done? | You collected opinions and hypotheticals, which are meaningless | Ask about the last time they experienced the problem and what they did |
|
|
244
|
+
| Did they give you a commitment (time, reputation, or money)? | You may have a zombie lead -- polite but not interested | Ask for a specific next step: trial, intro, or pre-order |
|
|
245
|
+
| Did they do most of the talking? | You talked too much and learned too little | Practice silence; let awkward pauses work for you |
|
|
246
|
+
| Did you learn something that could change what you're building? | You asked safe questions that confirmed what you already believed | Ask the scary questions you've been avoiding |
|
|
247
|
+
| Did you update your beliefs based on the conversation? | You're collecting data but not learning from it | Review notes with your team and update your problem/segment/solution beliefs |
|
|
248
|
+
| Can you summarize the key facts (not opinions) from the conversation? | You didn't take good notes or you're confusing opinions for facts | Separate facts from interpretations in your notes immediately after |
|
|
249
|
+
|
|
250
|
+
## Reference Files
|
|
251
|
+
|
|
252
|
+
- [question-patterns.md](references/question-patterns.md): Good vs bad question examples, the three rules in depth, question formulation exercises
|
|
253
|
+
- [commitment-advancement.md](references/commitment-advancement.md): Commitment currencies, advancing vs spinning wheels, how to push for commitment
|
|
254
|
+
- [avoiding-bad-data.md](references/avoiding-bad-data.md): Compliments, fluff, ideas -- the three types of bad data and how to deflect them
|
|
255
|
+
- [finding-conversations.md](references/finding-conversations.md): Where to find people, cold vs warm approaches, keeping conversations casual
|
|
256
|
+
- [processing-learning.md](references/processing-learning.md): Note-taking, team sharing, updating beliefs, knowing when to stop talking
|
|
257
|
+
- [case-studies.md](references/case-studies.md): Realistic scenarios showing Mom Test principles applied to SaaS, consumer, B2B, and marketplace contexts
|
|
258
|
+
|
|
259
|
+
## Further Reading
|
|
260
|
+
|
|
261
|
+
This skill is based on The Mom Test methodology developed by Rob Fitzpatrick. For the complete framework, examples, and deeper insights, read the original book:
|
|
262
|
+
|
|
263
|
+
- [*"The Mom Test: How to Talk to Customers & Learn if Your Business is a Good Idea When Everyone is Lying to You"*](https://www.amazon.com/Mom-Test-customers-business-everyone/dp/1492180742?tag=wondelai00-20) by Rob Fitzpatrick
|
|
264
|
+
|
|
265
|
+
## About the Author
|
|
266
|
+
|
|
267
|
+
**Rob Fitzpatrick** is an entrepreneur, author, and educator who has founded multiple venture-backed startups and learned the hard way that most customer conversations are useless. After years of collecting misleading feedback and building products nobody wanted, he distilled the principles of effective customer conversations into *The Mom Test* (2013), which became one of the most recommended books in the startup ecosystem. The book has been translated into over 20 languages and is required reading at accelerators including Y Combinator, Techstars, and 500 Startups. Fitzpatrick has also written *The Workshop Survival Guide* and *Write Useful Books*, applying the same evidence-based approach to education and publishing. He teaches and advises startups across Europe and the US, and is known for his direct, practical style that prioritizes actionable frameworks over theory. He is based in the UK.
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Avoiding Bad Data: Compliments, Fluff, and Ideas
|
|
2
|
+
|
|
3
|
+
Bad data is worse than no data because it gives you false confidence. You build the wrong thing, launch to crickets, and can't figure out what went wrong because "everyone said they loved it." This reference covers the three types of bad data, how to recognize them in real-time, and specific techniques for deflecting each type back to useful information.
|
|
4
|
+
|
|
5
|
+
## The Three Types of Bad Data
|
|
6
|
+
|
|
7
|
+
### Type 1: Compliments
|
|
8
|
+
|
|
9
|
+
Compliments are the most common and most dangerous form of bad data. They feel amazing in the moment and are completely worthless for decision-making.
|
|
10
|
+
|
|
11
|
+
**What compliments sound like:**
|
|
12
|
+
- "That's a really cool idea!"
|
|
13
|
+
- "I can definitely see myself using that."
|
|
14
|
+
- "You guys are going to crush it."
|
|
15
|
+
- "This is exactly what the market needs."
|
|
16
|
+
- "I love it. When can I get it?"
|
|
17
|
+
- "You're solving a real problem."
|
|
18
|
+
- "My team would love this."
|
|
19
|
+
|
|
20
|
+
**Why compliments are dangerous:**
|
|
21
|
+
Compliments contain zero information about whether someone will change their behavior, pay money, or use your product. They're a social reflex -- the same way you say "I'm good" when someone asks how you are. People compliment you because:
|
|
22
|
+
- They want to be supportive
|
|
23
|
+
- Saying "bad idea" feels cruel
|
|
24
|
+
- They haven't thought about it deeply enough to have a real opinion
|
|
25
|
+
- They want the conversation to end pleasantly
|
|
26
|
+
|
|
27
|
+
**How to deflect compliments:**
|
|
28
|
+
|
|
29
|
+
| Compliment | Deflection |
|
|
30
|
+
|-----------|------------|
|
|
31
|
+
| "That's a great idea!" | "Thanks! But tell me -- how are you dealing with this problem right now?" |
|
|
32
|
+
| "I'd definitely use that" | "That's encouraging. What are you currently using? What's frustrating about it?" |
|
|
33
|
+
| "My team would love this" | "What's your team struggling with specifically? Walk me through a recent example." |
|
|
34
|
+
| "You're going to crush it" | "I appreciate that. To make sure we build the right thing -- what's the biggest pain point in your workflow today?" |
|
|
35
|
+
| "This is exactly what we need" | "What have you tried before? Why didn't those solutions work?" |
|
|
36
|
+
|
|
37
|
+
**The golden rule:** Every time you receive a compliment, convert it into a question about their life and past behavior.
|
|
38
|
+
|
|
39
|
+
### Type 2: Fluff
|
|
40
|
+
|
|
41
|
+
Fluff is vague, generic, or hypothetical talk that sounds informative but carries no real-world weight. It's the verbal equivalent of empty calories.
|
|
42
|
+
|
|
43
|
+
**Three sub-types of fluff:**
|
|
44
|
+
|
|
45
|
+
#### Generic Claims
|
|
46
|
+
- "I usually..." (without a specific instance)
|
|
47
|
+
- "I always..." (really? always?)
|
|
48
|
+
- "I never..." (provably false in most cases)
|
|
49
|
+
- "We generally..." (who, specifically? when?)
|
|
50
|
+
|
|
51
|
+
**Deflection:** "Can you give me a specific example of the last time that happened?"
|
|
52
|
+
|
|
53
|
+
#### Hypothetical Promises
|
|
54
|
+
- "I would definitely..." (but you haven't)
|
|
55
|
+
- "If you built that, I'd..." (future tense = fiction)
|
|
56
|
+
- "I think I'd probably..." (double hedging)
|
|
57
|
+
- "That would be worth at least $X to me" (imaginary money)
|
|
58
|
+
|
|
59
|
+
**Deflection:** "You mentioned you'd pay $X. What's the most you've actually paid for a tool like this?"
|
|
60
|
+
|
|
61
|
+
#### Future-Tense Predictions
|
|
62
|
+
- "Next quarter, we're planning to..."
|
|
63
|
+
- "We'll probably need something like this soon"
|
|
64
|
+
- "I'm going to start looking for a solution"
|
|
65
|
+
- "That's on our roadmap for later this year"
|
|
66
|
+
|
|
67
|
+
**Deflection:** "When did you first realize this was a problem? What have you done about it so far?"
|
|
68
|
+
|
|
69
|
+
**The fluff test:** If you can't assign a date, a dollar amount, or a specific event to what they said, it's fluff. Dig until you hit concrete ground.
|
|
70
|
+
|
|
71
|
+
### Type 3: Ideas (Unsolicited Feature Requests)
|
|
72
|
+
|
|
73
|
+
When people understand what you're building, they start designing your product for you. This feels collaborative and exciting, but it's usually misleading because they're solving an imagined version of the problem.
|
|
74
|
+
|
|
75
|
+
**What idea-giving sounds like:**
|
|
76
|
+
- "You should totally add [feature]"
|
|
77
|
+
- "It would be amazing if it could also [function]"
|
|
78
|
+
- "Have you thought about integrating with [tool]?"
|
|
79
|
+
- "What if it also did [tangentially related thing]?"
|
|
80
|
+
- "The real killer feature would be [thing they thought of in the last 30 seconds]"
|
|
81
|
+
|
|
82
|
+
**Why ideas are dangerous:**
|
|
83
|
+
Feature requests are solutions, not problems. When someone says "you should add a chat feature," you don't know:
|
|
84
|
+
- What problem they're trying to solve
|
|
85
|
+
- Whether they've actually experienced that problem
|
|
86
|
+
- Whether they'd use the feature if you built it
|
|
87
|
+
- Whether this is a deal-breaker or a nice-to-have
|
|
88
|
+
|
|
89
|
+
**How to deflect ideas back to problems:**
|
|
90
|
+
|
|
91
|
+
| Idea | Deflection |
|
|
92
|
+
|------|------------|
|
|
93
|
+
| "You should add Slack integration" | "That's interesting. How does Slack fit into your current workflow for this?" |
|
|
94
|
+
| "It needs a mobile app" | "Tell me about the last time you needed to do this on mobile. What happened?" |
|
|
95
|
+
| "Add AI to automate the reports" | "Walk me through how you create reports today. Where's the most time spent?" |
|
|
96
|
+
| "You need a dashboard" | "What metrics are you currently tracking? How? What do you do when they change?" |
|
|
97
|
+
|
|
98
|
+
**The idea deflection formula:**
|
|
99
|
+
1. Acknowledge: "That's an interesting idea."
|
|
100
|
+
2. Record: Write it down (shows respect).
|
|
101
|
+
3. Dig: "What's driving that? Tell me about the last time you needed something like that."
|
|
102
|
+
|
|
103
|
+
## The Approval-Seeking Trap
|
|
104
|
+
|
|
105
|
+
The most subtle form of bad data collection is when you unconsciously seek validation instead of information. This happens when:
|
|
106
|
+
|
|
107
|
+
### You're Fishing for Compliments Without Realizing It
|
|
108
|
+
|
|
109
|
+
**Signs you're fishing:**
|
|
110
|
+
- You describe the idea in glowing terms before asking questions
|
|
111
|
+
- You lead with the solution and then ask "what do you think?"
|
|
112
|
+
- You show excitement and energy that makes disagreement feel rude
|
|
113
|
+
- You ask leading questions: "Don't you think it would be better if...?"
|
|
114
|
+
- You share your vision for 10 minutes, then ask a token question
|
|
115
|
+
|
|
116
|
+
**Signs you're genuinely learning:**
|
|
117
|
+
- You haven't mentioned your idea yet and they're doing most of the talking
|
|
118
|
+
- You're asking about their problems, not your solution
|
|
119
|
+
- You're comfortable with silence after a question
|
|
120
|
+
- You're genuinely curious about answers that might kill your idea
|
|
121
|
+
- You're taking notes on what they say, not on how they react to your pitch
|
|
122
|
+
|
|
123
|
+
### The Pitch-Creep Problem
|
|
124
|
+
|
|
125
|
+
Pitch-creep happens when a learning conversation gradually becomes a sales pitch. It usually follows this pattern:
|
|
126
|
+
|
|
127
|
+
1. You start with good questions about their problems (learning mode)
|
|
128
|
+
2. They describe a problem you can solve (excitement builds)
|
|
129
|
+
3. You say "Actually, that's exactly what we're building!" (pitch mode activated)
|
|
130
|
+
4. The rest of the conversation is about your solution (learning stops)
|
|
131
|
+
5. They say "That sounds great!" (compliment received)
|
|
132
|
+
6. You leave feeling validated (but you learned nothing new after step 2)
|
|
133
|
+
|
|
134
|
+
**How to prevent pitch-creep:**
|
|
135
|
+
- Set a rule: no pitching until the last 5 minutes
|
|
136
|
+
- Bring a partner who kicks you under the table when you start pitching
|
|
137
|
+
- Write "SHUT UP" on the top of your notepad
|
|
138
|
+
- Practice the phrase: "That's really helpful context. Can you tell me more about [their problem]?"
|
|
139
|
+
|
|
140
|
+
## The "Would You Buy" Trap
|
|
141
|
+
|
|
142
|
+
"Would you buy this?" is the single most popular and most useless question in customer development. Here's why:
|
|
143
|
+
|
|
144
|
+
**The scenario:** You describe your product. You ask "would you buy this?" They say "yes." You feel great.
|
|
145
|
+
|
|
146
|
+
**The reality:** Of course they said yes. Saying "no" to your face would be uncomfortable. They're not lying -- in this hypothetical moment, they genuinely believe they would. But this belief has no predictive power because:
|
|
147
|
+
- They haven't felt the pain of actually parting with money
|
|
148
|
+
- They haven't compared your solution to alternatives
|
|
149
|
+
- They haven't considered whether this is a top priority
|
|
150
|
+
- They haven't thought about the switching cost from their current workflow
|
|
151
|
+
- They're answering in a context of social pressure (you're sitting right there)
|
|
152
|
+
|
|
153
|
+
**What to ask instead:**
|
|
154
|
+
|
|
155
|
+
| Instead of... | Ask... |
|
|
156
|
+
|---------------|--------|
|
|
157
|
+
| "Would you buy this?" | "What are you currently spending on this problem?" |
|
|
158
|
+
| "Would you pay $50/month?" | "What's your budget for tools in this category?" |
|
|
159
|
+
| "Is this worth paying for?" | "What have you tried before? What did you pay for it?" |
|
|
160
|
+
| "Would your company buy this?" | "How does your company typically buy new tools? Who decides? What's the process?" |
|
|
161
|
+
|
|
162
|
+
## Real-Time Bad Data Detection
|
|
163
|
+
|
|
164
|
+
During a conversation, monitor for these warning signs:
|
|
165
|
+
|
|
166
|
+
### Conversation Quality Scorecard
|
|
167
|
+
|
|
168
|
+
| Signal | Score | Meaning |
|
|
169
|
+
|--------|-------|---------|
|
|
170
|
+
| They're describing specific past events | +3 | You're getting real data |
|
|
171
|
+
| They're using exact numbers (dates, dollars, hours) | +3 | High-quality factual data |
|
|
172
|
+
| They're showing you their current workflow | +2 | Observable behavior |
|
|
173
|
+
| They're volunteering problems you didn't ask about | +2 | Genuine pain points |
|
|
174
|
+
| They're offering to connect you to someone | +2 | Reputation commitment |
|
|
175
|
+
| They're nodding and saying "great idea" a lot | -2 | Compliment mode |
|
|
176
|
+
| They're using "I would" or "I usually" without specifics | -2 | Fluff mode |
|
|
177
|
+
| They're suggesting features | -1 | Idea mode (dig for the problem) |
|
|
178
|
+
| You've been talking for more than 2 minutes straight | -3 | You're pitching, not learning |
|
|
179
|
+
| They seem eager to end the conversation | -3 | They're being polite |
|
|
180
|
+
|
|
181
|
+
**Running score interpretation:**
|
|
182
|
+
- Positive score: You're learning. Keep going.
|
|
183
|
+
- Zero or negative: You've drifted into bad data territory. Reset with a behavior question.
|
|
184
|
+
|
|
185
|
+
### Recovery Phrases
|
|
186
|
+
|
|
187
|
+
When you realize you're in bad data territory, use these phrases to reset:
|
|
188
|
+
|
|
189
|
+
- "I appreciate the encouragement. To make sure we get this right -- can you walk me through how you dealt with this last week?"
|
|
190
|
+
- "That's helpful. Let me back up -- tell me about the last time this problem actually cost you time or money."
|
|
191
|
+
- "I want to make sure I'm not just hearing what I want to hear. What would make this NOT work for you?"
|
|
192
|
+
- "Let's put my idea aside for a second. What's the biggest headache in your [relevant area] right now?"
|
|
193
|
+
- "I hear you saying you'd use this. Help me understand -- what would you stop doing if you started using something like this?"
|
|
194
|
+
|
|
195
|
+
## The Post-Conversation Gut Check
|
|
196
|
+
|
|
197
|
+
After every conversation, ask yourself these five questions:
|
|
198
|
+
|
|
199
|
+
1. **Did I learn any new facts I didn't know before?** If no, you were probably collecting compliments.
|
|
200
|
+
|
|
201
|
+
2. **Can I summarize what I learned without mentioning my product?** If no, the conversation was about your idea, not their life.
|
|
202
|
+
|
|
203
|
+
3. **Did anything surprise me or challenge my assumptions?** If no, you were probably asking leading questions.
|
|
204
|
+
|
|
205
|
+
4. **Did they give a concrete commitment?** If no, you may have a zombie lead.
|
|
206
|
+
|
|
207
|
+
5. **Would my co-founder learn something new from these notes?** If no, the notes contain opinions rather than facts.
|
|
208
|
+
|
|
209
|
+
If you answer "no" to three or more of these questions, the conversation produced bad data. Don't count it as validation. Learn from the mistake and adjust your approach for the next conversation.
|
|
210
|
+
|
|
211
|
+
## The Emotional Cost of Good Conversations
|
|
212
|
+
|
|
213
|
+
Good conversations are uncomfortable. You will hear things like:
|
|
214
|
+
- "I don't think I'd actually pay for that."
|
|
215
|
+
- "That's not really a problem for me."
|
|
216
|
+
- "I already have a solution that works fine."
|
|
217
|
+
- "I don't think this is a priority."
|
|
218
|
+
|
|
219
|
+
These responses feel bad in the moment but are enormously valuable. A painful truth heard early saves you months of building the wrong thing. The emotional cost of a hard conversation is tiny compared to the cost of building a product nobody wants.
|
|
220
|
+
|
|
221
|
+
**Reframe:** A conversation that kills a bad idea is the most valuable conversation you'll ever have. It just saved you a year of your life.
|