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,251 @@
|
|
|
1
|
+
# Finding Conversations
|
|
2
|
+
|
|
3
|
+
The hardest part of customer development isn't knowing what to ask -- it's finding people to ask. This reference covers where to find your target customers, how to approach them, and how to keep conversations casual enough to produce honest answers.
|
|
4
|
+
|
|
5
|
+
## The Framing Problem
|
|
6
|
+
|
|
7
|
+
How you frame a conversation determines the quality of data you receive. Compare:
|
|
8
|
+
|
|
9
|
+
| Framing | Effect |
|
|
10
|
+
|---------|--------|
|
|
11
|
+
| "Can I interview you for my startup?" | They put on armor. Answers become polished and guarded. |
|
|
12
|
+
| "I'm doing customer research for a new product" | Slightly better, but they still perform for the researcher. |
|
|
13
|
+
| "I'm trying to understand how your industry works" | Good -- positions them as the expert. |
|
|
14
|
+
| "I'm thinking about getting into [space] and I don't want to be an idiot" | Great -- triggers their desire to help and teach. |
|
|
15
|
+
| (Casual conversation at an event about their work) | Best -- no framing needed, pure honesty. |
|
|
16
|
+
|
|
17
|
+
**Key insight:** The less formal the conversation, the more honest the data. The best customer conversations don't feel like interviews at all.
|
|
18
|
+
|
|
19
|
+
## Seven Channels for Finding Conversations
|
|
20
|
+
|
|
21
|
+
### 1. Warm Introductions
|
|
22
|
+
|
|
23
|
+
The highest-quality channel. A warm intro from a mutual contact starts the conversation with trust already established.
|
|
24
|
+
|
|
25
|
+
**How to build an intro network:**
|
|
26
|
+
- Tell everyone you know what you're exploring (not what you're building)
|
|
27
|
+
- Ask: "Do you know anyone who deals with [problem area]? I'd love to learn from them."
|
|
28
|
+
- Be specific: "I'm looking for [role] at [company type] who [relevant behavior]"
|
|
29
|
+
- Make it easy: offer to write the intro email for them
|
|
30
|
+
|
|
31
|
+
**The intro email formula:**
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Subject: Intro -- [Your Name] <> [Their Name] re: [topic]
|
|
35
|
+
|
|
36
|
+
[Contact Name] -- meet [Your Name], who's researching how
|
|
37
|
+
[industry/role] handles [problem area]. I thought you'd be a
|
|
38
|
+
great person for them to learn from.
|
|
39
|
+
|
|
40
|
+
[Your Name] -- [Contact Name] is [one sentence on their expertise].
|
|
41
|
+
|
|
42
|
+
I'll let you two take it from here!
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Volume target:** Ask 10 people for intros. Expect 3-5 to follow through. Each intro should produce 1-2 additional referrals, creating a snowball effect.
|
|
46
|
+
|
|
47
|
+
### 2. Industry Events and Conferences
|
|
48
|
+
|
|
49
|
+
Go where your customers already gather. The conversations happen naturally.
|
|
50
|
+
|
|
51
|
+
**Types of events:**
|
|
52
|
+
- Industry conferences (large, diverse, good for initial exploration)
|
|
53
|
+
- Local meetups (smaller, more intimate, better for deeper conversations)
|
|
54
|
+
- Trade shows (good for B2B, especially supply-side conversations)
|
|
55
|
+
- Workshops and seminars (people come to learn, which means they're aware of problems)
|
|
56
|
+
- Online communities with meetups (Reddit, Discord, Slack groups)
|
|
57
|
+
|
|
58
|
+
**How to approach people at events:**
|
|
59
|
+
- Don't pitch. Don't hand out business cards unprompted.
|
|
60
|
+
- Open with genuine curiosity: "What brings you to this event?"
|
|
61
|
+
- Ask about their work: "What's the biggest challenge you're facing in [area]?"
|
|
62
|
+
- Share your interest: "I've been exploring [space] -- what should I know?"
|
|
63
|
+
- Follow up within 24 hours with a specific reference to your conversation
|
|
64
|
+
|
|
65
|
+
**Event preparation checklist:**
|
|
66
|
+
- [ ] Identify 5-10 people you'd like to meet (check speaker list, attendee list)
|
|
67
|
+
- [ ] Prepare 3 open-ended questions about their work
|
|
68
|
+
- [ ] Bring a notebook, not business cards
|
|
69
|
+
- [ ] Set a goal: have 5 substantive conversations
|
|
70
|
+
- [ ] Plan follow-up within 24 hours
|
|
71
|
+
|
|
72
|
+
### 3. Cold Outreach
|
|
73
|
+
|
|
74
|
+
Cold emails and messages work if you lead with their expertise, not your needs.
|
|
75
|
+
|
|
76
|
+
**The cold outreach formula:**
|
|
77
|
+
|
|
78
|
+
**Subject:** Quick question about [specific thing they know about]
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Hi [Name],
|
|
82
|
+
|
|
83
|
+
I saw your [talk/post/article] about [specific topic].
|
|
84
|
+
I'm exploring [problem area] and trying to understand
|
|
85
|
+
how [their role/industry] handles it.
|
|
86
|
+
|
|
87
|
+
Would you have 15 minutes for a quick call this week?
|
|
88
|
+
I'm not selling anything -- just trying to learn from
|
|
89
|
+
people who know this space.
|
|
90
|
+
|
|
91
|
+
Best,
|
|
92
|
+
[Name]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Key principles for cold outreach:**
|
|
96
|
+
- Keep it under 5 sentences
|
|
97
|
+
- Reference something specific about them (not a generic template)
|
|
98
|
+
- Be transparent: you're learning, not selling
|
|
99
|
+
- Ask for 15 minutes, not 30 or 60
|
|
100
|
+
- Provide a clear reason why you're reaching out to them specifically
|
|
101
|
+
- Follow up once after 3-5 days, then stop
|
|
102
|
+
|
|
103
|
+
**Response rates by channel:**
|
|
104
|
+
|
|
105
|
+
| Channel | Typical Response Rate | Best For |
|
|
106
|
+
|---------|----------------------|----------|
|
|
107
|
+
| LinkedIn DM | 5-15% | B2B professionals |
|
|
108
|
+
| Cold email | 3-10% | Anyone with a public email |
|
|
109
|
+
| Twitter/X DM | 10-25% | Thought leaders, indie makers |
|
|
110
|
+
| Community forum post | 15-30% | Niche communities |
|
|
111
|
+
| Reddit comment/DM | 5-20% | Consumer insights |
|
|
112
|
+
|
|
113
|
+
### 4. Landing Pages and Signups
|
|
114
|
+
|
|
115
|
+
Create a simple page that describes the problem (not the solution) and collect emails from people who resonate.
|
|
116
|
+
|
|
117
|
+
**How to use landing pages for conversations:**
|
|
118
|
+
1. Describe the problem in your target customer's language
|
|
119
|
+
2. Add a signup: "We're exploring solutions -- want to help shape what we build?"
|
|
120
|
+
3. When someone signs up, email them within 24 hours: "Thanks for signing up. I'd love to learn more about how you handle [problem]. Do you have 15 minutes this week?"
|
|
121
|
+
4. These are your warmest leads -- they self-selected by caring about the problem
|
|
122
|
+
|
|
123
|
+
**Landing page copy principles:**
|
|
124
|
+
- Lead with the problem, not the solution
|
|
125
|
+
- Use language from your initial conversations (mirror their words)
|
|
126
|
+
- Don't promise a product -- promise involvement in shaping one
|
|
127
|
+
- Include a short survey (3-5 questions) to pre-qualify
|
|
128
|
+
|
|
129
|
+
### 5. Online Communities
|
|
130
|
+
|
|
131
|
+
Participate genuinely in communities where your target customers hang out.
|
|
132
|
+
|
|
133
|
+
**Where to look:**
|
|
134
|
+
- Reddit subreddits related to the problem space
|
|
135
|
+
- Industry-specific Slack groups
|
|
136
|
+
- Discord servers
|
|
137
|
+
- Facebook groups (especially for consumer products)
|
|
138
|
+
- Hacker News (for developer/startup audiences)
|
|
139
|
+
- Specialized forums (e.g., Indie Hackers, Product Hunt discussions)
|
|
140
|
+
|
|
141
|
+
**How to participate without being slimy:**
|
|
142
|
+
- Join 4-6 weeks before you start asking questions
|
|
143
|
+
- Contribute value first: answer questions, share relevant resources
|
|
144
|
+
- When you do ask, be transparent: "I'm exploring [problem area] and would love to hear how people here handle it"
|
|
145
|
+
- Never pitch in a community. Ever. Even if someone asks you to.
|
|
146
|
+
- DM people who post about relevant problems: "I saw your post about [problem]. I'm researching this area -- would you mind telling me more?"
|
|
147
|
+
|
|
148
|
+
### 6. Advisors as a Channel
|
|
149
|
+
|
|
150
|
+
Formalize relationships with well-connected people who can open doors at scale.
|
|
151
|
+
|
|
152
|
+
**What makes a good advisor for conversations:**
|
|
153
|
+
- They know 50+ people in your target customer segment
|
|
154
|
+
- They're respected in the community (their intro carries weight)
|
|
155
|
+
- They understand what you're trying to learn (so they can make relevant intros)
|
|
156
|
+
- They have a genuine interest in your success
|
|
157
|
+
|
|
158
|
+
**How to structure an advisor relationship for conversations:**
|
|
159
|
+
- Be explicit: "I don't need strategy advice. I need introductions to [specific type of person]."
|
|
160
|
+
- Set expectations: "Would you be able to make 3-5 introductions over the next month?"
|
|
161
|
+
- Make it easy: provide them with a one-sentence description of who you want to meet and a template intro email
|
|
162
|
+
- Give them credit: "Sarah introduced us, and she mentioned you're the expert on [thing]"
|
|
163
|
+
|
|
164
|
+
**The advisor pipeline:**
|
|
165
|
+
1. Identify 5-10 well-connected people in your space
|
|
166
|
+
2. Approach them honestly: "I'm trying to learn about [problem]. You know everyone in this space. Can I buy you coffee?"
|
|
167
|
+
3. If the coffee goes well: "Would you be open to being an informal advisor? Mainly, I'd love your help making introductions."
|
|
168
|
+
4. Formalize if appropriate (advisory shares, compensation)
|
|
169
|
+
|
|
170
|
+
### 7. Customer-Adjacent Roles
|
|
171
|
+
|
|
172
|
+
When you can't easily reach end customers, talk to people who serve them.
|
|
173
|
+
|
|
174
|
+
**Who to talk to:**
|
|
175
|
+
- Consultants who advise your target customers
|
|
176
|
+
- Sales reps who sell to your target segment
|
|
177
|
+
- Customer support agents who hear complaints daily
|
|
178
|
+
- Industry analysts who study the market
|
|
179
|
+
- Journalists who cover the space
|
|
180
|
+
|
|
181
|
+
**Why this works:**
|
|
182
|
+
These people talk to hundreds of your potential customers. They have pattern-matched the common problems, objections, and buying behaviors. One conversation with a consultant can compress what would take 20 customer interviews.
|
|
183
|
+
|
|
184
|
+
**How to approach customer-adjacent roles:**
|
|
185
|
+
- "You work with dozens of [type of company]. What's the most common problem you see them struggling with?"
|
|
186
|
+
- "When companies in [industry] buy new tools, what's the typical process?"
|
|
187
|
+
- "What are the top 3 complaints you hear from your clients?"
|
|
188
|
+
|
|
189
|
+
## Keeping Conversations Casual
|
|
190
|
+
|
|
191
|
+
### The Vision/Framing/Weakness/Pedestal/Ask Framework
|
|
192
|
+
|
|
193
|
+
A five-part structure for getting meetings that produce honest conversations:
|
|
194
|
+
|
|
195
|
+
**1. Vision (one sentence)**
|
|
196
|
+
"I'm exploring how small businesses handle their bookkeeping."
|
|
197
|
+
|
|
198
|
+
**2. Framing (set expectations)**
|
|
199
|
+
"I'm not selling anything. I'm just talking to people who deal with this to understand the space."
|
|
200
|
+
|
|
201
|
+
**3. Weakness (show vulnerability)**
|
|
202
|
+
"I'm an engineer, so I don't know much about the accounting side. I'm trying not to build something stupid."
|
|
203
|
+
|
|
204
|
+
**4. Pedestal (elevate them)**
|
|
205
|
+
"You've been doing this for 10 years, so you'd know better than anyone."
|
|
206
|
+
|
|
207
|
+
**5. Ask (specific and small)**
|
|
208
|
+
"Would you have 15 minutes for a quick chat? Coffee's on me."
|
|
209
|
+
|
|
210
|
+
### Rules for Keeping It Casual
|
|
211
|
+
|
|
212
|
+
1. **Never use a clipboard or formal survey.** Use a small notebook or your phone's notes app.
|
|
213
|
+
2. **Don't record without permission.** And know that recording changes behavior.
|
|
214
|
+
3. **Meet in their territory.** Their office, their favorite coffee shop, their coworking space.
|
|
215
|
+
4. **Start with rapport.** Talk about something other than your topic for the first 2-3 minutes.
|
|
216
|
+
5. **Don't ask all your questions.** Ask 3-5 important ones, not a 20-question script.
|
|
217
|
+
6. **Let the conversation flow.** Follow interesting tangents. Your best insights will come from unexpected directions.
|
|
218
|
+
7. **End naturally.** Don't abruptly end at exactly 15 minutes. Let the conversation wind down organically (but respect their time).
|
|
219
|
+
8. **Follow up with value.** Send them an article, a connection, or a thank-you note. Not a pitch deck.
|
|
220
|
+
|
|
221
|
+
## How Many Conversations Do You Need?
|
|
222
|
+
|
|
223
|
+
### Convergence Theory
|
|
224
|
+
|
|
225
|
+
You don't need hundreds of conversations. You need enough to see patterns.
|
|
226
|
+
|
|
227
|
+
| Signal | Number of Conversations |
|
|
228
|
+
|--------|------------------------|
|
|
229
|
+
| Hearing brand-new information in every conversation | You need more. Keep going. |
|
|
230
|
+
| Starting to hear similar themes from 3-4 people | Getting close. Focus your questions. |
|
|
231
|
+
| Conversations are repeating -- nothing surprises you | You've reached saturation. Time to act. |
|
|
232
|
+
|
|
233
|
+
**Rule of thumb by stage:**
|
|
234
|
+
|
|
235
|
+
| Stage | Conversations Needed | Goal |
|
|
236
|
+
|-------|---------------------|------|
|
|
237
|
+
| Problem exploration | 10-15 | Understand if the problem is real and who has it |
|
|
238
|
+
| Customer segment validation | 5-10 per segment | Identify which segment cares most |
|
|
239
|
+
| Solution validation | 5-10 with prototype | Test whether your approach works |
|
|
240
|
+
| Pre-launch | 3-5 commitment conversations | Collect real commitments (time, money, reputation) |
|
|
241
|
+
|
|
242
|
+
### When to Stop and Build
|
|
243
|
+
|
|
244
|
+
Stop talking when:
|
|
245
|
+
- You can predict what the next person will say
|
|
246
|
+
- Multiple people describe the same problem in the same way
|
|
247
|
+
- You've received concrete commitments (not just compliments)
|
|
248
|
+
- You have a clear picture of the problem, the customer, and the existing alternatives
|
|
249
|
+
- You're procrastinating on building by scheduling more conversations
|
|
250
|
+
|
|
251
|
+
**Warning:** "Just one more conversation" can become a form of procrastination. If you're past saturation and still not building, you might be using conversations to avoid the risk of building something real.
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Processing and Learning
|
|
2
|
+
|
|
3
|
+
Customer conversations generate raw material. Without a system for processing that material, you'll unconsciously cherry-pick the data that confirms your existing beliefs and ignore the signals that challenge them. This reference covers note-taking, team sharing, belief updating, and knowing when to stop talking.
|
|
4
|
+
|
|
5
|
+
## Note-Taking During Conversations
|
|
6
|
+
|
|
7
|
+
### What to Capture
|
|
8
|
+
|
|
9
|
+
Take notes on facts and commitments, not opinions and feelings. Your notes should be useful to someone who wasn't in the room.
|
|
10
|
+
|
|
11
|
+
**Capture these:**
|
|
12
|
+
|
|
13
|
+
| Category | Examples | Why It Matters |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Exact quotes | "I spend 3 hours every Friday on this" | Customer language reveals real pain points |
|
|
16
|
+
| Specific behaviors | "She uses a spreadsheet + Slack + email to coordinate" | Reveals current workflow and workarounds |
|
|
17
|
+
| Numbers | "$2,000/month on the current tool" | Quantifies willingness to pay |
|
|
18
|
+
| Emotions | "He got visibly frustrated describing the process" | Emotional weight = real pain |
|
|
19
|
+
| Commitments | "Agreed to a 15-min demo next Tuesday" | Separates real interest from politeness |
|
|
20
|
+
| Surprises | "Nobody has mentioned the feature we thought was key" | Challenges assumptions |
|
|
21
|
+
|
|
22
|
+
**Don't waste space on these:**
|
|
23
|
+
|
|
24
|
+
| Category | Example | Why It's Noise |
|
|
25
|
+
|----------|---------|----------------|
|
|
26
|
+
| Compliments | "They said they loved the idea" | Zero predictive value |
|
|
27
|
+
| Generics | "He usually handles it quickly" | No specific instance = fluff |
|
|
28
|
+
| Your interpretations | "I think she'd definitely buy" | Your opinion, not a fact |
|
|
29
|
+
| Feature requests (raw) | "They want a mobile app" | Record the underlying problem instead |
|
|
30
|
+
|
|
31
|
+
### Note-Taking Systems
|
|
32
|
+
|
|
33
|
+
#### The Two-Column Method
|
|
34
|
+
|
|
35
|
+
Divide your notebook page (or document) into two columns:
|
|
36
|
+
|
|
37
|
+
| Left Column: Raw Data (Facts) | Right Column: Interpretation (Your Thoughts) |
|
|
38
|
+
|-------------------------------|----------------------------------------------|
|
|
39
|
+
| "We tried Asana but quit after 2 months" | Asana might be too complex for small teams |
|
|
40
|
+
| "Our CEO checks the dashboard every morning at 8am" | Dashboard is part of the CEO's daily routine |
|
|
41
|
+
| "We pay $500/month for HubSpot but only use email" | Significant overpaying for what they actually use |
|
|
42
|
+
| "She pulled up a spreadsheet with 47 tabs" | They've built a complex workaround (strong signal) |
|
|
43
|
+
|
|
44
|
+
This separation is critical because it prevents you from conflating what you observed with what you think it means. Raw data is permanent; interpretations are hypotheses that should be tested.
|
|
45
|
+
|
|
46
|
+
#### The Shorthand System
|
|
47
|
+
|
|
48
|
+
During fast conversations, use shorthand symbols to tag important moments:
|
|
49
|
+
|
|
50
|
+
| Symbol | Meaning |
|
|
51
|
+
|--------|---------|
|
|
52
|
+
| :) | Emotional moment (positive) |
|
|
53
|
+
| :( | Emotional moment (pain point) |
|
|
54
|
+
| $ | Money mentioned (budget, spending, willingness to pay) |
|
|
55
|
+
| ! | Surprising or unexpected information |
|
|
56
|
+
| -> | Commitment or next step |
|
|
57
|
+
| ? | Something to follow up on |
|
|
58
|
+
| X | Contradicts your current belief |
|
|
59
|
+
| "" | Direct quote (write it verbatim) |
|
|
60
|
+
|
|
61
|
+
**Example note with shorthand:**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Sara, VP Ops at Acme Corp, Jan 15
|
|
65
|
+
|
|
66
|
+
"" "I spend my entire Friday doing reports that nobody reads" :(
|
|
67
|
+
! She didn't know her company paid for Tableau ($1,200/mo) $
|
|
68
|
+
"" "If someone could just email me the 3 numbers that matter, I'd be so happy"
|
|
69
|
+
X She doesn't want a dashboard (contradicts our assumption)
|
|
70
|
+
-> Agreed to 20-min demo next Wed 2pm
|
|
71
|
+
? Who else on her team does reports? Ask next time
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### When to Take Notes
|
|
75
|
+
|
|
76
|
+
**During the conversation:**
|
|
77
|
+
- Jot quick keywords and quotes
|
|
78
|
+
- Don't let note-taking disrupt the flow
|
|
79
|
+
- Say "That's really interesting, let me write that down" if you need a moment
|
|
80
|
+
- A small notebook is less intimidating than a laptop
|
|
81
|
+
|
|
82
|
+
**Immediately after the conversation (within 5 minutes):**
|
|
83
|
+
- Expand your shorthand into full sentences
|
|
84
|
+
- Add context you remember but didn't write down
|
|
85
|
+
- Separate facts from interpretations (two-column method)
|
|
86
|
+
- Rate the conversation quality: did you learn new facts or just collect compliments?
|
|
87
|
+
|
|
88
|
+
**Never rely on memory alone.** After 24 hours, you'll have lost or distorted most of the details. After a week, you'll remember only what confirms your existing beliefs.
|
|
89
|
+
|
|
90
|
+
## Processing with Your Team
|
|
91
|
+
|
|
92
|
+
### The Weekly Customer Learning Session
|
|
93
|
+
|
|
94
|
+
Set aside 30-60 minutes per week to review conversations as a team. This is the single most important ritual in customer development.
|
|
95
|
+
|
|
96
|
+
**Agenda:**
|
|
97
|
+
|
|
98
|
+
**1. Raw Data Review (20 minutes)**
|
|
99
|
+
- Each team member shares their conversation notes (facts and quotes only)
|
|
100
|
+
- No interpretation yet -- just the raw data
|
|
101
|
+
- Other team members ask clarifying questions
|
|
102
|
+
|
|
103
|
+
**2. Pattern Identification (15 minutes)**
|
|
104
|
+
- What themes are repeating across conversations?
|
|
105
|
+
- What problems come up most frequently?
|
|
106
|
+
- What surprised us?
|
|
107
|
+
- What contradicted our assumptions?
|
|
108
|
+
|
|
109
|
+
**3. Belief Update (15 minutes)**
|
|
110
|
+
- Review and update the team's three core beliefs (see below)
|
|
111
|
+
- Document what evidence supports or challenges each belief
|
|
112
|
+
- Decide whether any beliefs need to change
|
|
113
|
+
|
|
114
|
+
**4. Next Actions (10 minutes)**
|
|
115
|
+
- Who do we need to talk to next?
|
|
116
|
+
- What questions should we add or remove?
|
|
117
|
+
- Are we ready to stop talking and start building?
|
|
118
|
+
|
|
119
|
+
### Why Team Processing Matters
|
|
120
|
+
|
|
121
|
+
Individual processing is biased. Every person unconsciously filters information through their own lens:
|
|
122
|
+
- Engineers focus on technical feasibility, not customer pain
|
|
123
|
+
- Designers remember the UX complaints, not the business model signals
|
|
124
|
+
- Founders remember the validation, not the contradictions
|
|
125
|
+
- Salespeople remember the "yeses," not the hesitation
|
|
126
|
+
|
|
127
|
+
When the whole team processes raw data together, these biases partially cancel out. The group sees patterns that individuals miss.
|
|
128
|
+
|
|
129
|
+
### Rules for Team Processing
|
|
130
|
+
|
|
131
|
+
1. **Share raw notes, not filtered summaries.** Saying "I talked to Sara and she liked the idea" is useless. Sharing Sara's exact quotes is useful.
|
|
132
|
+
2. **No hierarchy in interpretation.** The founder's interpretation isn't more valid than the intern's. Evidence decides.
|
|
133
|
+
3. **Celebrate surprising data.** When someone brings a conversation that challenges the team's beliefs, that's the most valuable contribution. Don't shoot the messenger.
|
|
134
|
+
4. **Distinguish between "interesting" and "actionable."** Some facts are fascinating but don't change what you should build. Focus on data that has decision-making power.
|
|
135
|
+
|
|
136
|
+
## The Three Core Beliefs
|
|
137
|
+
|
|
138
|
+
At any point in customer development, your team should be able to articulate three beliefs:
|
|
139
|
+
|
|
140
|
+
### Belief 1: The Problem
|
|
141
|
+
"We believe that [customer segment] struggles with [specific problem] because [root cause]."
|
|
142
|
+
|
|
143
|
+
**Example:** "We believe that freelance designers struggle with invoicing because they use generic tools that don't account for project-based billing and revision cycles."
|
|
144
|
+
|
|
145
|
+
### Belief 2: The Customer Segment
|
|
146
|
+
"We believe that the people who care most about this problem are [specific description] who [observable characteristic]."
|
|
147
|
+
|
|
148
|
+
**Example:** "We believe that the people who care most are solo freelance designers earning $50-150K who manage 5-15 clients simultaneously."
|
|
149
|
+
|
|
150
|
+
### Belief 3: The Solution Direction
|
|
151
|
+
"We believe that the right solution [approach] because [evidence from conversations]."
|
|
152
|
+
|
|
153
|
+
**Example:** "We believe the right solution integrates invoicing with project milestones because 7 of 10 designers told us their biggest pain is tracking which revision rounds are billable."
|
|
154
|
+
|
|
155
|
+
### Updating Beliefs
|
|
156
|
+
|
|
157
|
+
After each batch of conversations, review each belief:
|
|
158
|
+
|
|
159
|
+
| Question | Interpretation |
|
|
160
|
+
|----------|---------------|
|
|
161
|
+
| How many conversations support this belief? | Track the count explicitly |
|
|
162
|
+
| How many conversations contradict this belief? | Track this too -- don't ignore it |
|
|
163
|
+
| Has new evidence strengthened or weakened this belief? | Be honest |
|
|
164
|
+
| Should we update, narrow, or abandon this belief? | Make a decision |
|
|
165
|
+
|
|
166
|
+
**When to update a belief:**
|
|
167
|
+
- 3+ conversations provide contradictory evidence
|
|
168
|
+
- A new pattern emerges that your current belief can't explain
|
|
169
|
+
- You discover that a different customer segment cares more than your current target
|
|
170
|
+
|
|
171
|
+
**When to abandon a belief:**
|
|
172
|
+
- Majority of conversations contradict it
|
|
173
|
+
- You can't find anyone who exhibits the problem
|
|
174
|
+
- Everyone who has the problem already has a satisfactory solution
|
|
175
|
+
|
|
176
|
+
## Organizing Customer Data
|
|
177
|
+
|
|
178
|
+
### The Conversation Spreadsheet
|
|
179
|
+
|
|
180
|
+
Maintain a central spreadsheet (or Notion database, or Airtable) with one row per conversation:
|
|
181
|
+
|
|
182
|
+
| Column | Content |
|
|
183
|
+
|--------|---------|
|
|
184
|
+
| Date | When the conversation happened |
|
|
185
|
+
| Name | Who you spoke with |
|
|
186
|
+
| Company/Context | Where they work or their relevant context |
|
|
187
|
+
| Segment | Which customer segment they represent |
|
|
188
|
+
| Key quotes (3-5) | Exact words, not your paraphrase |
|
|
189
|
+
| Problems mentioned | What pain points came up (unprompted only) |
|
|
190
|
+
| Current solutions | What they're using now |
|
|
191
|
+
| Money signals | What they pay, what they'd pay, budget context |
|
|
192
|
+
| Commitment given | What they agreed to do next |
|
|
193
|
+
| Commitment fulfilled? | Did they follow through? |
|
|
194
|
+
| Belief impact | Did this change any of our three core beliefs? |
|
|
195
|
+
| Surprise | What was unexpected? |
|
|
196
|
+
|
|
197
|
+
### Tagging and Filtering
|
|
198
|
+
|
|
199
|
+
As your conversation count grows, you'll need to filter by:
|
|
200
|
+
- **Customer segment:** Which type of person said this?
|
|
201
|
+
- **Problem area:** Which problem does this relate to?
|
|
202
|
+
- **Signal strength:** How strong was the evidence? (fact/commitment > opinion/fluff)
|
|
203
|
+
- **Recency:** When was this collected? Old data may be stale.
|
|
204
|
+
|
|
205
|
+
### Quantifying Qualitative Data
|
|
206
|
+
|
|
207
|
+
While customer conversations are qualitative, you can and should count patterns:
|
|
208
|
+
|
|
209
|
+
| Metric | How to Track | Threshold |
|
|
210
|
+
|--------|-------------|-----------|
|
|
211
|
+
| Problem mention rate | N people who mentioned problem X unprompted out of M total conversations | >50% = strong signal |
|
|
212
|
+
| Willingness to pay | N people who are currently paying for a solution | >30% = real market |
|
|
213
|
+
| Commitment rate | N people who gave a concrete commitment out of M conversations | >20% = real interest |
|
|
214
|
+
| Segment concentration | Which segment produces the strongest signals? | If one segment dominates, focus there |
|
|
215
|
+
|
|
216
|
+
## Knowing When to Stop Talking
|
|
217
|
+
|
|
218
|
+
### Signs You've Talked Enough
|
|
219
|
+
|
|
220
|
+
1. **Convergence:** The last 3-5 conversations didn't teach you anything new. You can predict what the next person will say.
|
|
221
|
+
2. **Clear problem:** You can describe the problem in the customer's own words, and multiple customers have confirmed it.
|
|
222
|
+
3. **Clear segment:** You know exactly who has this problem most acutely and can describe them specifically.
|
|
223
|
+
4. **Existing spending:** You've confirmed that people are already spending time or money on this problem.
|
|
224
|
+
5. **Commitments collected:** You have concrete commitments (time, reputation, or money) from real potential customers.
|
|
225
|
+
|
|
226
|
+
### Signs You Haven't Talked Enough
|
|
227
|
+
|
|
228
|
+
1. **Every conversation surprises you:** You're still discovering the problem space.
|
|
229
|
+
2. **Segment unclear:** You can't describe your ideal customer specifically.
|
|
230
|
+
3. **No commitments:** Nobody has invested time, reputation, or money -- only compliments.
|
|
231
|
+
4. **Contradictory data:** Different conversations point in completely different directions.
|
|
232
|
+
5. **You're guessing:** Your three core beliefs are assumptions, not evidence-based conclusions.
|
|
233
|
+
|
|
234
|
+
### The Conversation-to-Action Transition
|
|
235
|
+
|
|
236
|
+
When you've hit convergence, make the transition explicit:
|
|
237
|
+
|
|
238
|
+
**Team exercise: The "Stop Talking" Decision**
|
|
239
|
+
1. Review all conversations from the last 2-4 weeks.
|
|
240
|
+
2. For each of your three core beliefs, count supporting vs contradicting evidence.
|
|
241
|
+
3. Ask: "If we build based on what we know now, what's our biggest remaining risk?"
|
|
242
|
+
4. If the risk can be addressed by more conversations, keep talking.
|
|
243
|
+
5. If the risk can only be addressed by building something, stop talking and build.
|
|
244
|
+
|
|
245
|
+
**The dangerous middle ground:** Teams often get stuck in an infinite loop of conversations because talking is less scary than building. If your conversations are no longer producing new insights, you're procrastinating. Ship something and learn from real usage.
|
|
246
|
+
|
|
247
|
+
## Anti-Patterns in Processing
|
|
248
|
+
|
|
249
|
+
| Anti-Pattern | What It Looks Like | Fix |
|
|
250
|
+
|-------------|--------------------|----|
|
|
251
|
+
| Cherry-picking | Only sharing quotes that support your thesis | Share all raw notes, including contradictions |
|
|
252
|
+
| Founder filtering | One person summarizes conversations and filters the data | Everyone reads raw notes independently before discussion |
|
|
253
|
+
| Recency bias | Over-weighting the most recent conversation | Review all conversations together, not just the latest |
|
|
254
|
+
| Confirmation bias | "9 people love it!" (ignoring the 3 who didn't) | Track and report both supporting and contradicting evidence |
|
|
255
|
+
| Analysis paralysis | Endless analysis without action | Set a hard deadline: after N conversations, we build |
|
|
256
|
+
| Sunk cost | "We've done 50 conversations, we can't pivot now" | Conversations are cheap; building the wrong thing is expensive |
|