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,154 @@
|
|
|
1
|
+
# JTBD Case Studies
|
|
2
|
+
|
|
3
|
+
## 1. McDonald's Milkshake
|
|
4
|
+
|
|
5
|
+
### Situation
|
|
6
|
+
McDonald's wanted to increase milkshake sales. Traditional research (focus groups, surveys) gave conflicting results: "less sweet," "more chocolate," "more fruit chunks."
|
|
7
|
+
|
|
8
|
+
### Job Discovery
|
|
9
|
+
Observation revealed that 40% of milkshakes were bought in the morning, by solo drivers, to-go.
|
|
10
|
+
|
|
11
|
+
**Morning job:** "When I'm driving alone to work and have a boring hour of commute, I want something to keep my hands busy, satisfy my hunger until lunch, and give me a small pleasure."
|
|
12
|
+
|
|
13
|
+
**Afternoon job (different!):** "When picking up my child from school, I want to be a good parent and give them a small reward, but without feeling guilty."
|
|
14
|
+
|
|
15
|
+
### Competition Through Job Lens
|
|
16
|
+
- Morning job: banana, bagel, coffee, boredom, podcast
|
|
17
|
+
- Afternoon job: ice cream, candy, toy, parental attention
|
|
18
|
+
|
|
19
|
+
### Solution
|
|
20
|
+
- **Morning milkshake:** thicker (takes longer to drink), with chunks (more interesting), larger, easier to buy (drive-through kiosk)
|
|
21
|
+
- **Afternoon milkshake:** smaller (sense of moderation), faster to drink (child doesn't get bored)
|
|
22
|
+
|
|
23
|
+
### Lesson
|
|
24
|
+
The same product can serve completely different jobs. Improving the "product" without understanding the job leads nowhere.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Southern New Hampshire University (SNHU)
|
|
29
|
+
|
|
30
|
+
### Situation
|
|
31
|
+
SNHU was a small college with 2,500 students. They launched an online program that exploded to 100,000+ students.
|
|
32
|
+
|
|
33
|
+
### Job Discovery
|
|
34
|
+
Typical online student: 30+ years old, working, often with family, interrupted education years ago.
|
|
35
|
+
|
|
36
|
+
**Job:** "When I realize I'm stuck in my career and need a degree to advance, but I have a job, family, and little time, I want to get a degree without turning my life upside down."
|
|
37
|
+
|
|
38
|
+
### Job Dimensions
|
|
39
|
+
- **Functional:** Get a degree from an accredited institution
|
|
40
|
+
- **Emotional:** Feel that I'm growing, prove to myself that I can do it
|
|
41
|
+
- **Social:** Show my family I'm setting a good example; not look like a "student" at work
|
|
42
|
+
|
|
43
|
+
### Competition
|
|
44
|
+
- Doing nothing (most common!)
|
|
45
|
+
- Other online universities
|
|
46
|
+
- Industry certifications
|
|
47
|
+
- Changing jobs without a degree
|
|
48
|
+
|
|
49
|
+
### Breakthrough Changes
|
|
50
|
+
1. **Onboarding:** Calling applicants within minutes (not days) - reduces "can I do this" anxiety
|
|
51
|
+
2. **Personal advisor:** One point of contact throughout studies - like GPS, not bureaucracy
|
|
52
|
+
3. **Credit transfer:** Liberal policy for recognizing previous courses - faster to the goal
|
|
53
|
+
4. **Communication:** Simplicity, no academic jargon - "we work for you, not the other way around"
|
|
54
|
+
|
|
55
|
+
### Lesson
|
|
56
|
+
SNHU doesn't compete with Harvard - it competes with "doing nothing." The job isn't "education" but "unfreezing a stuck life."
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. American Girl
|
|
61
|
+
|
|
62
|
+
### Situation
|
|
63
|
+
Premium doll company ($100+) at a time when competitors offered dolls for $20.
|
|
64
|
+
|
|
65
|
+
### Job
|
|
66
|
+
**Mothers/grandmothers:** "When I want to have a meaningful moment with my daughter/granddaughter and pass on values, I want an experience that connects us and teaches, not just a toy."
|
|
67
|
+
|
|
68
|
+
**Girls (8-12):** "When I'm at an age where I don't want to be a 'little girl' anymore but I'm not yet a teenager, I want something that takes me seriously and says my interests matter."
|
|
69
|
+
|
|
70
|
+
### Dimensions
|
|
71
|
+
- **Functional:** Playing with doll, reading stories
|
|
72
|
+
- **Emotional:** Feeling "grown up," understood
|
|
73
|
+
- **Social:** Ritual with mother/grandmother, belonging to American Girl "club"
|
|
74
|
+
|
|
75
|
+
### Experience Integration
|
|
76
|
+
- Doll + book with story (context, values)
|
|
77
|
+
- Stores with hair salons for dolls
|
|
78
|
+
- Restaurants where girls eat with their dolls
|
|
79
|
+
- Magazine, events, community
|
|
80
|
+
|
|
81
|
+
### Competition
|
|
82
|
+
- Not other dolls (!)
|
|
83
|
+
- Other "moments with daughter": trips, movies, shopping
|
|
84
|
+
- Other ways to pass on values: conversations, books
|
|
85
|
+
- Non-consumption: "I'll just buy something at the store"
|
|
86
|
+
|
|
87
|
+
### Lesson
|
|
88
|
+
American Girl sells an experience-ritual, not a doll. That's why $100+ price makes sense - it's not a "toy" but a "moment with daughter."
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. Intuit QuickBooks
|
|
93
|
+
|
|
94
|
+
### Situation
|
|
95
|
+
QuickBooks dominated among small businesses. Attempts to enter the "even smaller" segment (freelancers, single-person) by simplifying the product didn't work.
|
|
96
|
+
|
|
97
|
+
### Job Discovery
|
|
98
|
+
Freelancers have a different job than small businesses.
|
|
99
|
+
|
|
100
|
+
**Small business job:** "Manage company finances professionally and in compliance with regulations"
|
|
101
|
+
|
|
102
|
+
**Freelancer job:** "When I send an invoice to a client, I want to know I'll get paid, and I don't want to feel like an amateur"
|
|
103
|
+
|
|
104
|
+
### Breakthrough: Mint.com → QuickBooks Self-Employed
|
|
105
|
+
Instead of "stripped-down QuickBooks" - a completely new product:
|
|
106
|
+
- Automatic expense tracking (not manual bookkeeping)
|
|
107
|
+
- Bank account integration
|
|
108
|
+
- Simple split: business vs personal
|
|
109
|
+
- Real-time tax estimation
|
|
110
|
+
|
|
111
|
+
### Lesson
|
|
112
|
+
"Simpler version of the same thing" isn't innovation. Different job requires different product, not a simplified old one.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 5. Airbnb vs Hotels
|
|
117
|
+
|
|
118
|
+
### Business traveler job
|
|
119
|
+
"When I travel for work, I want efficiency, predictability, and ability to work"
|
|
120
|
+
→ Hotel wins (standardization, wifi, desk, room service)
|
|
121
|
+
|
|
122
|
+
### Family traveler job
|
|
123
|
+
"When we go somewhere with kids for a week, we want to feel at home, have space, cook, be together"
|
|
124
|
+
→ Airbnb wins (kitchen, rooms, locality, group pricing)
|
|
125
|
+
|
|
126
|
+
### "Experience" job
|
|
127
|
+
"When I want to really get to know a place and feel the locality, not be a tourist"
|
|
128
|
+
→ Airbnb wins (local hosts, authentic locations)
|
|
129
|
+
|
|
130
|
+
### Lesson
|
|
131
|
+
Airbnb doesn't compete with "hotels" - it competes for specific jobs. For some jobs, a hotel is a better "employee."
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Patterns from Case Studies
|
|
136
|
+
|
|
137
|
+
### 1. Same product, different jobs
|
|
138
|
+
Morning vs afternoon milkshake - require different solutions even though it's "the same product."
|
|
139
|
+
|
|
140
|
+
### 2. Competition from unexpected places
|
|
141
|
+
- SNHU: competitor is "doing nothing"
|
|
142
|
+
- American Girl: competitor is "other activities with daughter"
|
|
143
|
+
- Milkshake: competitor is banana and boredom
|
|
144
|
+
|
|
145
|
+
### 3. Integration for poorly understood jobs
|
|
146
|
+
American Girl and SNHU heavily integrated the experience because the job was poorly served by existing solutions.
|
|
147
|
+
|
|
148
|
+
### 4. Emotions and social aspects often more important than functionality
|
|
149
|
+
- SNHU: "prove to myself I can do it"
|
|
150
|
+
- American Girl: "moment with daughter"
|
|
151
|
+
- Milkshake: "small pleasure to start the day"
|
|
152
|
+
|
|
153
|
+
### 5. Anti-change forces are powerful
|
|
154
|
+
SNHU won mainly by reducing anxiety (quick callback, personal advisor) - not by "better education."
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
# JTBD Competitive Strategy
|
|
2
|
+
|
|
3
|
+
Analyzing competition through the jobs lens and building differentiated positioning.
|
|
4
|
+
|
|
5
|
+
## Rethinking Competition
|
|
6
|
+
|
|
7
|
+
### The Traditional View (Wrong)
|
|
8
|
+
|
|
9
|
+
"Our competitors are companies that sell similar products in our category."
|
|
10
|
+
|
|
11
|
+
### The JTBD View (Right)
|
|
12
|
+
|
|
13
|
+
"Our competitors are anything a customer might hire to get their job done."
|
|
14
|
+
|
|
15
|
+
This fundamental shift reveals:
|
|
16
|
+
- Non-obvious competitors you're losing to
|
|
17
|
+
- Opportunities in adjacent spaces
|
|
18
|
+
- Why customers choose seemingly inferior solutions
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Non-Obvious Competition
|
|
23
|
+
|
|
24
|
+
### Finding Hidden Competitors
|
|
25
|
+
|
|
26
|
+
Ask: "What else do customers hire for this job?"
|
|
27
|
+
|
|
28
|
+
| Job | Obvious Competitor | Non-Obvious Competitors |
|
|
29
|
+
|-----|-------------------|------------------------|
|
|
30
|
+
| Commute entertainment | Other podcasts | Music, audiobooks, silence, phone calls |
|
|
31
|
+
| Evening relaxation | Other streaming services | Video games, reading, wine, sleep |
|
|
32
|
+
| Learn new skills | Other courses | Books, YouTube, mentors, trial and error |
|
|
33
|
+
| Stay informed | Other news apps | Twitter, newsletters, colleagues, podcasts |
|
|
34
|
+
| Celebrate achievement | Other restaurants | Home cooking, vacation, gifts, party |
|
|
35
|
+
|
|
36
|
+
### The Milkshake Discovery
|
|
37
|
+
|
|
38
|
+
The famous milkshake study revealed:
|
|
39
|
+
- **Assumed competitors:** Other fast food beverages, breakfast items
|
|
40
|
+
- **Actual competitors:** Bananas, bagels, donuts, boredom itself
|
|
41
|
+
|
|
42
|
+
The job wasn't "consume breakfast"—it was "make my commute tolerable and keep me full until lunch."
|
|
43
|
+
|
|
44
|
+
### Mapping Your Competition
|
|
45
|
+
|
|
46
|
+
**Step 1:** Define the job (not the product category)
|
|
47
|
+
|
|
48
|
+
**Step 2:** List everything customers currently hire:
|
|
49
|
+
- Direct competitors (same category)
|
|
50
|
+
- Indirect competitors (different category, same job)
|
|
51
|
+
- Non-consumption (doing nothing)
|
|
52
|
+
- DIY/workarounds (cobbling solutions together)
|
|
53
|
+
|
|
54
|
+
**Step 3:** Understand why each gets hired:
|
|
55
|
+
- What's the circumstance?
|
|
56
|
+
- What dimension does it serve best? (Functional/Emotional/Social)
|
|
57
|
+
- What trade-offs do customers accept?
|
|
58
|
+
|
|
59
|
+
**Example: Project Management Software**
|
|
60
|
+
|
|
61
|
+
Job: "Keep my team aligned and projects on track so nothing falls through cracks"
|
|
62
|
+
|
|
63
|
+
| Alternative | Why Hired | Dimension Served |
|
|
64
|
+
|-------------|-----------|------------------|
|
|
65
|
+
| Asana/Monday | Full visibility, accountability | Functional |
|
|
66
|
+
| Spreadsheets | Flexibility, no learning curve | Functional |
|
|
67
|
+
| Email threads | Everyone has it, simple | Functional |
|
|
68
|
+
| Slack channels | Real-time, casual | Social |
|
|
69
|
+
| Regular meetings | Face-to-face accountability | Emotional/Social |
|
|
70
|
+
| One person remembers everything | No tool adoption needed | Functional |
|
|
71
|
+
| Nothing (hope for the best) | Zero effort | - |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Jobs-Based Positioning
|
|
76
|
+
|
|
77
|
+
### The Positioning Formula
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
For [customers in these circumstances]
|
|
81
|
+
who [have this job to do]
|
|
82
|
+
our [product/service]
|
|
83
|
+
is the [frame of reference]
|
|
84
|
+
that [does the job better because]
|
|
85
|
+
unlike [alternative]
|
|
86
|
+
we [key differentiator].
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Example Positioning Statements
|
|
90
|
+
|
|
91
|
+
**Traditional (weak):**
|
|
92
|
+
"Monday.com is a work operating system that helps teams manage projects and workflows."
|
|
93
|
+
|
|
94
|
+
**Jobs-based (strong):**
|
|
95
|
+
"For growing teams who feel like projects keep slipping through cracks, Monday.com is the work management platform that gives everyone visibility into what's happening without adding overhead, unlike spreadsheets that get outdated or meetings that waste time."
|
|
96
|
+
|
|
97
|
+
**More examples:**
|
|
98
|
+
|
|
99
|
+
Slack:
|
|
100
|
+
"For remote teams who feel disconnected and out of the loop, Slack is the communication hub that makes you feel like you're in the same room, unlike email that buries important messages or video calls that require scheduling."
|
|
101
|
+
|
|
102
|
+
Duolingo:
|
|
103
|
+
"For busy people who want to learn a language but have always given up, Duolingo is the learning app that fits language practice into small daily moments, unlike courses that require big time commitments or tutors that require scheduling and money."
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Competing Against Non-Consumption
|
|
108
|
+
|
|
109
|
+
### Why Non-Consumption Matters
|
|
110
|
+
|
|
111
|
+
The biggest competitor is often "doing nothing." People who:
|
|
112
|
+
- Haven't realized they have the problem
|
|
113
|
+
- Don't think solutions exist
|
|
114
|
+
- Think solutions are too expensive/complicated
|
|
115
|
+
- Tried before and gave up
|
|
116
|
+
|
|
117
|
+
### Non-Consumption Opportunities
|
|
118
|
+
|
|
119
|
+
| Category | Non-Consumer | Why They Don't Consume | Opportunity |
|
|
120
|
+
|----------|--------------|----------------------|-------------|
|
|
121
|
+
| Financial planning | Young professionals | Think it's for wealthy people | Simplified, low-cost planning |
|
|
122
|
+
| Higher education | Working adults | Can't attend campus | Online, flexible degrees |
|
|
123
|
+
| Video editing | Small business owners | Too complicated | Simplified, template-based tools |
|
|
124
|
+
| Home improvement | Renters, beginners | Feels overwhelming | Step-by-step guidance |
|
|
125
|
+
| Mental health | Most adults | Stigma, cost, access | Anonymous, affordable apps |
|
|
126
|
+
|
|
127
|
+
### Winning Non-Consumers
|
|
128
|
+
|
|
129
|
+
To convert non-consumers:
|
|
130
|
+
|
|
131
|
+
1. **Lower the barrier to entry**
|
|
132
|
+
- Reduce price
|
|
133
|
+
- Simplify the experience
|
|
134
|
+
- Remove expertise requirements
|
|
135
|
+
|
|
136
|
+
2. **Reduce anxiety**
|
|
137
|
+
- Eliminate commitment
|
|
138
|
+
- Provide strong guarantees
|
|
139
|
+
- Show "people like me" success stories
|
|
140
|
+
|
|
141
|
+
3. **Reframe the job**
|
|
142
|
+
- Make it about a job they already care about
|
|
143
|
+
- Connect to existing behaviors
|
|
144
|
+
- Show quick wins possible
|
|
145
|
+
|
|
146
|
+
**SNHU Example:**
|
|
147
|
+
- Traditional barrier: Campus attendance required
|
|
148
|
+
- SNHU reframe: "Get a degree without putting life on hold"
|
|
149
|
+
- Job focus: Career advancement, not "being a student"
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Price Strategy Through JTBD
|
|
154
|
+
|
|
155
|
+
### Price Based on Job Value, Not Cost
|
|
156
|
+
|
|
157
|
+
Traditional pricing: Cost + margin = price
|
|
158
|
+
JTBD pricing: Job value to customer = pricing ceiling
|
|
159
|
+
|
|
160
|
+
**Questions to determine job value:**
|
|
161
|
+
- What does getting this job done save/earn the customer?
|
|
162
|
+
- What are they currently paying to get it done (including time)?
|
|
163
|
+
- How important is this job relative to other spending?
|
|
164
|
+
- What's the cost of the job NOT getting done?
|
|
165
|
+
|
|
166
|
+
### Premium Pricing Justification
|
|
167
|
+
|
|
168
|
+
Charge more when:
|
|
169
|
+
- You serve job dimensions competitors ignore (especially emotional/social)
|
|
170
|
+
- You reduce anxiety in high-stakes situations
|
|
171
|
+
- You save significant time for time-strapped customers
|
|
172
|
+
- You eliminate effort for effort-averse customers
|
|
173
|
+
|
|
174
|
+
### Price Relative to Alternatives
|
|
175
|
+
|
|
176
|
+
| Alternative | Price | Job Performance |
|
|
177
|
+
|-------------|-------|-----------------|
|
|
178
|
+
| Your product | $100/mo | Excellent |
|
|
179
|
+
| Direct competitor | $80/mo | Good |
|
|
180
|
+
| DIY solution | $0 (but hours/week) | Adequate |
|
|
181
|
+
| Doing nothing | $0 | Job not done |
|
|
182
|
+
|
|
183
|
+
**Frame your price against the cost of alternatives, including their hidden costs (time, frustration, opportunity cost).**
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Differentiation Strategy
|
|
188
|
+
|
|
189
|
+
### Differentiate on the Underserved Dimension
|
|
190
|
+
|
|
191
|
+
Most competitors fight on functional dimensions. Differentiate on:
|
|
192
|
+
|
|
193
|
+
**Emotional dimension:**
|
|
194
|
+
- How customers feel while using the product
|
|
195
|
+
- Confidence, peace of mind, delight
|
|
196
|
+
- Reduced anxiety, eliminated frustration
|
|
197
|
+
|
|
198
|
+
**Social dimension:**
|
|
199
|
+
- How customers appear to others
|
|
200
|
+
- Status, belonging, identity
|
|
201
|
+
- What others think of their choice
|
|
202
|
+
|
|
203
|
+
### Differentiation Examples
|
|
204
|
+
|
|
205
|
+
| Product | Functional (table stakes) | Real Differentiation |
|
|
206
|
+
|---------|---------------------------|---------------------|
|
|
207
|
+
| Mailchimp | Sends emails | Makes small business owners feel like legitimate marketers |
|
|
208
|
+
| Slack | Team messaging | Makes teams feel connected and in sync |
|
|
209
|
+
| Notion | Documentation | Makes users feel organized and in control |
|
|
210
|
+
| Tesla | Electric car | Makes owners feel innovative and responsible |
|
|
211
|
+
|
|
212
|
+
### The Differentiation Test
|
|
213
|
+
|
|
214
|
+
Ask current customers:
|
|
215
|
+
- "Why did you choose us over [alternative]?"
|
|
216
|
+
- "What would you tell a friend about why they should use us?"
|
|
217
|
+
- "What would you miss most if you couldn't use us anymore?"
|
|
218
|
+
|
|
219
|
+
**If answers are only functional, you have a differentiation problem.**
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Competitive Response Framework
|
|
224
|
+
|
|
225
|
+
### When a Competitor Launches a Feature
|
|
226
|
+
|
|
227
|
+
**Don't automatically copy.** Instead ask:
|
|
228
|
+
1. What job does this feature serve?
|
|
229
|
+
2. Is that job a priority for OUR customers?
|
|
230
|
+
3. Do we serve that job differently/better already?
|
|
231
|
+
4. Should we compete or differentiate?
|
|
232
|
+
|
|
233
|
+
### When Losing Deals to Competitors
|
|
234
|
+
|
|
235
|
+
Interview lost customers:
|
|
236
|
+
1. "What job were you trying to get done?"
|
|
237
|
+
2. "What did [competitor] do better for that job?"
|
|
238
|
+
3. "Was there anything we did better that wasn't enough?"
|
|
239
|
+
4. "What almost made you choose us?"
|
|
240
|
+
|
|
241
|
+
**Pattern recognition:** If you consistently lose on price, you're not communicating job value. If you consistently lose on features, you might be targeting the wrong customers.
|
|
242
|
+
|
|
243
|
+
### When Entering an Established Market
|
|
244
|
+
|
|
245
|
+
Don't compete head-to-head. Instead:
|
|
246
|
+
1. Find underserved customer segments (different circumstances)
|
|
247
|
+
2. Find underserved job dimensions (emotional/social)
|
|
248
|
+
3. Find simpler jobs that incumbents over-serve
|
|
249
|
+
4. Find more demanding jobs that incumbents can't serve
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Strategic Decision Framework
|
|
254
|
+
|
|
255
|
+
### Should We Build This Feature?
|
|
256
|
+
|
|
257
|
+
| Question | If Yes | If No |
|
|
258
|
+
|----------|--------|-------|
|
|
259
|
+
| Does it help customers do the job better? | Consider building | Don't build |
|
|
260
|
+
| Do customers currently struggle with this part of the job? | Higher priority | Lower priority |
|
|
261
|
+
| Will competitors match it easily? | Temporary advantage | Sustainable advantage |
|
|
262
|
+
| Does it serve our target customer's priority jobs? | Aligned | Misaligned |
|
|
263
|
+
|
|
264
|
+
### Should We Enter This Market?
|
|
265
|
+
|
|
266
|
+
| Question | If Yes | If No |
|
|
267
|
+
|----------|--------|-------|
|
|
268
|
+
| Is there an important job being poorly served? | Opportunity | Crowded market |
|
|
269
|
+
| Can we serve it better than alternatives? | Competitive advantage | Why would customers switch? |
|
|
270
|
+
| Are the customers we'd serve aligned with our strengths? | Good fit | Resource stretch |
|
|
271
|
+
| Is the job stable or growing? | Sustainable | Declining opportunity |
|
|
272
|
+
|
|
273
|
+
### Should We Worry About This Competitor?
|
|
274
|
+
|
|
275
|
+
| Question | If Yes | If No |
|
|
276
|
+
|----------|--------|-------|
|
|
277
|
+
| Are they serving the same job? | Direct threat | Different jobs |
|
|
278
|
+
| Are they serving our customers' priority dimensions? | Serious threat | Parallel play |
|
|
279
|
+
| Are they better on dimensions that matter? | Urgent response needed | Monitor |
|
|
280
|
+
| Can they take our customers? | Defensive action needed | Offensive opportunity |
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Product Diagnostics Through JTBD Lens
|
|
2
|
+
|
|
3
|
+
## Checklist: Do You Know Your Product's Job?
|
|
4
|
+
|
|
5
|
+
### Level 1: Basic Understanding
|
|
6
|
+
|
|
7
|
+
- [ ] You can describe the job in one sentence without using the product name
|
|
8
|
+
- [ ] You know the circumstances in which the job arises
|
|
9
|
+
- [ ] You know what customer did BEFORE using your product
|
|
10
|
+
- [ ] You understand the functional, emotional, AND social dimensions
|
|
11
|
+
|
|
12
|
+
### Level 2: Deep Understanding
|
|
13
|
+
|
|
14
|
+
- [ ] You know what you really compete with (not just "direct competitors")
|
|
15
|
+
- [ ] You understand push/pull and habit/anxiety forces for your customer
|
|
16
|
+
- [ ] You can distinguish Big Hire from Little Hire
|
|
17
|
+
- [ ] You know why customers "fire" your product
|
|
18
|
+
|
|
19
|
+
### Level 3: Organizational Implementation
|
|
20
|
+
|
|
21
|
+
- [ ] Product decisions are filtered through the job lens
|
|
22
|
+
- [ ] Metrics measure job completion, not just usage
|
|
23
|
+
- [ ] Roadmap is oriented toward better job execution
|
|
24
|
+
- [ ] Team can articulate the customer's job
|
|
25
|
+
|
|
26
|
+
## Red Flags - Signs You Don't Know the Job
|
|
27
|
+
|
|
28
|
+
1. **You describe product through features** - "it's a tool for X with Y feature"
|
|
29
|
+
2. **Competition is only "similar products"** - you don't see non-obvious competitors
|
|
30
|
+
3. **You segment by demographics** - "target is men 25-35"
|
|
31
|
+
4. **High acquisition, low retention** - you win Big Hire, lose Little Hire
|
|
32
|
+
5. **Customers use product "wrong"** - they create workarounds
|
|
33
|
+
|
|
34
|
+
## Diagnostic Framework
|
|
35
|
+
|
|
36
|
+
### Why Aren't Customers Buying?
|
|
37
|
+
|
|
38
|
+
| Symptom | Probable Cause | Action |
|
|
39
|
+
|---------|----------------|--------|
|
|
40
|
+
| They don't know we exist | Job is poorly articulated in messaging | Rewrite messaging around the job |
|
|
41
|
+
| They know but don't try | Anxiety about new > Pull | Reduce friction, offer guarantees |
|
|
42
|
+
| They try but don't buy | Product doesn't do the job | Investigate gap between promise and reality |
|
|
43
|
+
| They buy but don't use | Little Hire lost | Redesign the moment of use |
|
|
44
|
+
| They use but churn | Job changed or better "employee" appeared | Investigate "firing" reasons |
|
|
45
|
+
|
|
46
|
+
### "Firing" Interview (Churn Interview)
|
|
47
|
+
|
|
48
|
+
Questions for customers who left:
|
|
49
|
+
|
|
50
|
+
1. "What did you do before us? Why did you come to us?"
|
|
51
|
+
2. "What changed that made you start looking for alternatives?"
|
|
52
|
+
3. "What ultimately convinced you to leave?"
|
|
53
|
+
4. "What do you do now instead of us? Does it do the job better?"
|
|
54
|
+
5. "If we could change one thing, what would it be?"
|
|
55
|
+
|
|
56
|
+
### "Hiring" Interview (New Customer Interview)
|
|
57
|
+
|
|
58
|
+
Questions for new customers (within 2 weeks):
|
|
59
|
+
|
|
60
|
+
1. "When did you first think about looking for a solution?"
|
|
61
|
+
2. "What was the trigger - what was happening then?"
|
|
62
|
+
3. "What alternatives did you look for? What disqualified them?"
|
|
63
|
+
4. "What ultimately convinced you to choose us?"
|
|
64
|
+
5. "What were you afraid of before buying?"
|
|
65
|
+
6. "Is the product doing what you expected?"
|
|
66
|
+
|
|
67
|
+
## JTBD Metrics
|
|
68
|
+
|
|
69
|
+
### Instead of Traditional Metrics:
|
|
70
|
+
|
|
71
|
+
| Traditional Metric | Problem | JTBD Metric |
|
|
72
|
+
|-------------------|---------|-------------|
|
|
73
|
+
| DAU/MAU | Doesn't tell if job is being done | % of completed "jobs" |
|
|
74
|
+
| Time in app | More ≠ better | Time to job completion |
|
|
75
|
+
| Feature adoption | Features ≠ value | Does feature help with job? |
|
|
76
|
+
| NPS | General satisfaction | Would you hire us again for this job? |
|
|
77
|
+
| Churn rate | Retrospective | Leading indicators of "searching for alternatives" |
|
|
78
|
+
|
|
79
|
+
### Job Completion Rate
|
|
80
|
+
|
|
81
|
+
Define what "job done" means and measure:
|
|
82
|
+
- % of sessions where job was completed
|
|
83
|
+
- Time to first success (Time to Value)
|
|
84
|
+
- Repeatability of "hiring" (hire frequency)
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Post-Launch Iteration
|
|
89
|
+
|
|
90
|
+
### Continuous Job Discovery
|
|
91
|
+
|
|
92
|
+
After launch, keep learning:
|
|
93
|
+
|
|
94
|
+
**Usage data signals:**
|
|
95
|
+
- Features used ≠ Features valued (may use out of necessity)
|
|
96
|
+
- Time spent ≠ Job done (frustration can increase time)
|
|
97
|
+
- Feature requests often describe solutions, not jobs
|
|
98
|
+
|
|
99
|
+
**Ongoing research:**
|
|
100
|
+
- Interview new customers within 2 weeks of purchase
|
|
101
|
+
- Interview churned customers within 1 week of leaving
|
|
102
|
+
- Observe actual usage (session recordings, support tickets)
|
|
103
|
+
- Track "aha moments" that predict retention
|
|
104
|
+
|
|
105
|
+
### Iteration Framework
|
|
106
|
+
|
|
107
|
+
| Signal | What It Means | Action |
|
|
108
|
+
|--------|---------------|--------|
|
|
109
|
+
| High acquisition, low retention | Win Big Hire, lose Little Hire | Investigate moment of use |
|
|
110
|
+
| Feature used but low satisfaction | Functional works, emotional doesn't | Research emotional dimension |
|
|
111
|
+
| Unexpected use patterns | Hidden jobs emerging | Interview these users |
|
|
112
|
+
| Power users vs. casual users | Different jobs being done | May need segmentation |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Churn Analysis Through JTBD Lens
|
|
117
|
+
|
|
118
|
+
### Why "Firing" Happens
|
|
119
|
+
|
|
120
|
+
Customers fire products when:
|
|
121
|
+
1. **Job changed** - Circumstances evolved (company grew, life changed)
|
|
122
|
+
2. **Better "employee" appeared** - Competitor does job better
|
|
123
|
+
3. **Job wasn't being done** - Product never delivered on promise
|
|
124
|
+
4. **Friction accumulated** - Too hard to use, not worth the effort
|
|
125
|
+
5. **Priorities shifted** - Other jobs became more important
|
|
126
|
+
|
|
127
|
+
### Churn Interview Framework
|
|
128
|
+
|
|
129
|
+
**Timing:** Within 1 week of cancellation (memory fresh)
|
|
130
|
+
|
|
131
|
+
**Questions:**
|
|
132
|
+
|
|
133
|
+
| Phase | Questions |
|
|
134
|
+
|-------|-----------|
|
|
135
|
+
| Original hiring | "When you first signed up, what were you hoping to accomplish?" |
|
|
136
|
+
| Experience | "How well did we help you with that?" |
|
|
137
|
+
| The turn | "When did you start thinking about leaving?" |
|
|
138
|
+
| Alternatives | "What will you do instead? How did you find it?" |
|
|
139
|
+
| The switch | "What ultimately convinced you to leave?" |
|
|
140
|
+
| Retrospective | "If we could change one thing, what would make you stay?" |
|
|
141
|
+
|
|
142
|
+
### Churn Patterns to Watch
|
|
143
|
+
|
|
144
|
+
| Pattern | Probable Cause | Investigation |
|
|
145
|
+
|---------|----------------|---------------|
|
|
146
|
+
| Early churn (<30 days) | Never got job done | Onboarding + activation issues |
|
|
147
|
+
| Churn after initial success | Job completed, no ongoing need | Is this a one-time job? |
|
|
148
|
+
| Churn after competitor mention | Better employee exists | Competitive analysis |
|
|
149
|
+
| Churn with "too complicated" | Friction > value | UX and simplification |
|
|
150
|
+
| Churn without replacement | Job deprioritized | Were we targeting right customers? |
|
|
151
|
+
|
|
152
|
+
### Acting on Churn Insights
|
|
153
|
+
|
|
154
|
+
**If job changed:** Consider segments, expansion products, or accepting churn as natural
|
|
155
|
+
**If competitor wins:** Investigate which dimension they're serving better
|
|
156
|
+
**If job wasn't done:** Product or onboarding needs improvement
|
|
157
|
+
**If friction accumulated:** UX improvements, training, simplification
|
|
158
|
+
**If priorities shifted:** May be targeting wrong customer profile
|