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,296 @@
|
|
|
1
|
+
# Resolving Heuristic Conflicts
|
|
2
|
+
|
|
3
|
+
When usability principles contradict each other—frameworks for making trade-off decisions.
|
|
4
|
+
|
|
5
|
+
## The Nature of Conflicts
|
|
6
|
+
|
|
7
|
+
Usability heuristics are guidelines, not laws. In real design, they often pull in opposite directions. Good UX design requires recognizing these tensions and making thoughtful trade-offs.
|
|
8
|
+
|
|
9
|
+
**Common tension patterns:**
|
|
10
|
+
- Simplicity vs. Power
|
|
11
|
+
- Consistency vs. Optimal for context
|
|
12
|
+
- Efficiency vs. Error prevention
|
|
13
|
+
- User control vs. Guidance
|
|
14
|
+
- Discoverability vs. Clean interface
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Major Heuristic Conflicts
|
|
19
|
+
|
|
20
|
+
### 1. Simplicity vs. Flexibility
|
|
21
|
+
|
|
22
|
+
**The tension:**
|
|
23
|
+
- "Keep it simple" (Krug, Nielsen)
|
|
24
|
+
- "Support user control and freedom" (Nielsen #3)
|
|
25
|
+
- "Flexibility and efficiency of use" (Nielsen #7)
|
|
26
|
+
|
|
27
|
+
**Example:** Photo editing app
|
|
28
|
+
- Simple: Few options, quick editing
|
|
29
|
+
- Flexible: Many controls, professional results
|
|
30
|
+
|
|
31
|
+
**Resolution framework:**
|
|
32
|
+
|
|
33
|
+
| Factor | Lean Simple | Lean Flexible |
|
|
34
|
+
|--------|-------------|---------------|
|
|
35
|
+
| User expertise | Novice | Expert |
|
|
36
|
+
| Task frequency | Occasional | Daily |
|
|
37
|
+
| Consequences of error | Low | High |
|
|
38
|
+
| Time pressure | High | Low |
|
|
39
|
+
|
|
40
|
+
**Design patterns:**
|
|
41
|
+
- Progressive disclosure (simple default, power underneath)
|
|
42
|
+
- Personas-based modes (Basic/Advanced)
|
|
43
|
+
- Contextual features (show when relevant)
|
|
44
|
+
|
|
45
|
+
### 2. Consistency vs. Context Optimization
|
|
46
|
+
|
|
47
|
+
**The tension:**
|
|
48
|
+
- "Consistency and standards" (Nielsen #4)
|
|
49
|
+
- "Match between system and real world" (Nielsen #2)
|
|
50
|
+
|
|
51
|
+
**Example:** Destructive actions
|
|
52
|
+
- Consistent: Red "Delete" button everywhere
|
|
53
|
+
- Context-optimized: Prominent delete for items that should be deleted, hidden for critical data
|
|
54
|
+
|
|
55
|
+
**Resolution framework:**
|
|
56
|
+
|
|
57
|
+
| Factor | Lean Consistent | Lean Contextual |
|
|
58
|
+
|--------|-----------------|-----------------|
|
|
59
|
+
| User base diversity | High | Low |
|
|
60
|
+
| Learning curve concern | Yes | No |
|
|
61
|
+
| Action frequency | Common | Rare |
|
|
62
|
+
| Mental model strength | Established | Forming |
|
|
63
|
+
|
|
64
|
+
**Design patterns:**
|
|
65
|
+
- Consistent patterns, contextual prominence
|
|
66
|
+
- Same actions, different emphasis
|
|
67
|
+
- Gradual introduction of contextual variations
|
|
68
|
+
|
|
69
|
+
### 3. Efficiency vs. Error Prevention
|
|
70
|
+
|
|
71
|
+
**The tension:**
|
|
72
|
+
- "Error prevention" (Nielsen #5)
|
|
73
|
+
- "Flexibility and efficiency of use" (Nielsen #7)
|
|
74
|
+
|
|
75
|
+
**Example:** Checkout flow
|
|
76
|
+
- Error prevention: Confirmation at every step
|
|
77
|
+
- Efficiency: One-click purchase
|
|
78
|
+
|
|
79
|
+
**Resolution framework:**
|
|
80
|
+
|
|
81
|
+
| Factor | Lean Error Prevention | Lean Efficiency |
|
|
82
|
+
|--------|----------------------|-----------------|
|
|
83
|
+
| Reversibility | Irreversible | Easily undone |
|
|
84
|
+
| Cost of error | High (money, data) | Low |
|
|
85
|
+
| User familiarity | New users | Power users |
|
|
86
|
+
| Frequency | Rare | Very frequent |
|
|
87
|
+
|
|
88
|
+
**Design patterns:**
|
|
89
|
+
- Undo instead of confirm (efficient + safe)
|
|
90
|
+
- Confidence-based friction (add steps for risky actions)
|
|
91
|
+
- User-controlled safety level
|
|
92
|
+
|
|
93
|
+
### 4. Discoverability vs. Clean Interface
|
|
94
|
+
|
|
95
|
+
**The tension:**
|
|
96
|
+
- "Recognition rather than recall" (Nielsen #6)
|
|
97
|
+
- "Aesthetic and minimalist design" (Nielsen #8)
|
|
98
|
+
|
|
99
|
+
**Example:** Feature-rich application
|
|
100
|
+
- Discoverable: Show all options visibly
|
|
101
|
+
- Clean: Hide features until needed
|
|
102
|
+
|
|
103
|
+
**Resolution framework:**
|
|
104
|
+
|
|
105
|
+
| Factor | Lean Discoverable | Lean Clean |
|
|
106
|
+
|--------|-------------------|------------|
|
|
107
|
+
| Feature frequency | Core features | Edge cases |
|
|
108
|
+
| User expertise | Beginner | Expert |
|
|
109
|
+
| Task complexity | Simple | Complex |
|
|
110
|
+
| Screen real estate | Generous | Limited |
|
|
111
|
+
|
|
112
|
+
**Design patterns:**
|
|
113
|
+
- Primary actions visible, secondary in menus
|
|
114
|
+
- Progressive disclosure
|
|
115
|
+
- Contextual menus
|
|
116
|
+
- Search/command palettes for power users
|
|
117
|
+
|
|
118
|
+
### 5. Guidance vs. User Control
|
|
119
|
+
|
|
120
|
+
**The tension:**
|
|
121
|
+
- Help users avoid errors
|
|
122
|
+
- Respect user autonomy
|
|
123
|
+
|
|
124
|
+
**Example:** Form validation
|
|
125
|
+
- Guidance: Prevent submission until valid
|
|
126
|
+
- Control: Let users submit and see what happens
|
|
127
|
+
|
|
128
|
+
**Resolution framework:**
|
|
129
|
+
|
|
130
|
+
| Factor | Lean Guidance | Lean Control |
|
|
131
|
+
|--------|---------------|--------------|
|
|
132
|
+
| User expertise | Novice | Expert |
|
|
133
|
+
| Error recovery | Difficult | Easy |
|
|
134
|
+
| System tolerance | Low (strict rules) | High (flexible) |
|
|
135
|
+
| User frustration with restrictions | Low | High |
|
|
136
|
+
|
|
137
|
+
**Design patterns:**
|
|
138
|
+
- Inline guidance (not blocking)
|
|
139
|
+
- Warnings vs. blockers
|
|
140
|
+
- "Are you sure?" rather than "You can't"
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Resolution Framework
|
|
145
|
+
|
|
146
|
+
### Step 1: Identify the Conflict
|
|
147
|
+
|
|
148
|
+
Name the specific heuristics in tension:
|
|
149
|
+
- Which principle says do A?
|
|
150
|
+
- Which principle says do B?
|
|
151
|
+
- Why can't we fully satisfy both?
|
|
152
|
+
|
|
153
|
+
### Step 2: Assess the Context
|
|
154
|
+
|
|
155
|
+
Consider:
|
|
156
|
+
- **User type:** Novice vs. expert
|
|
157
|
+
- **Task criticality:** Browsing vs. financial transaction
|
|
158
|
+
- **Frequency:** One-time vs. daily
|
|
159
|
+
- **Reversibility:** Can they undo?
|
|
160
|
+
- **Consequence:** What happens if wrong?
|
|
161
|
+
|
|
162
|
+
### Step 3: Prioritize for This Context
|
|
163
|
+
|
|
164
|
+
| Context | Usually Prioritize |
|
|
165
|
+
|---------|-------------------|
|
|
166
|
+
| Critical data, irreversible | Error prevention > Efficiency |
|
|
167
|
+
| Frequent actions, low stakes | Efficiency > Error prevention |
|
|
168
|
+
| New users, unfamiliar domain | Guidance > Control |
|
|
169
|
+
| Expert users, familiar domain | Flexibility > Simplicity |
|
|
170
|
+
| Limited screen, focused task | Minimalism > Discoverability |
|
|
171
|
+
| Learning interface | Discoverability > Minimalism |
|
|
172
|
+
|
|
173
|
+
### Step 4: Design for Both When Possible
|
|
174
|
+
|
|
175
|
+
Often, clever design satisfies both:
|
|
176
|
+
|
|
177
|
+
| Conflict | Both-And Solution |
|
|
178
|
+
|----------|-------------------|
|
|
179
|
+
| Simple vs. Powerful | Progressive disclosure |
|
|
180
|
+
| Efficient vs. Safe | Undo instead of confirm |
|
|
181
|
+
| Clean vs. Discoverable | Contextual reveal |
|
|
182
|
+
| Consistent vs. Optimal | Consistent patterns, variable emphasis |
|
|
183
|
+
| Guided vs. Controlled | Warnings, not blockers |
|
|
184
|
+
|
|
185
|
+
### Step 5: Test the Trade-off
|
|
186
|
+
|
|
187
|
+
Validate with real users:
|
|
188
|
+
- Does the chosen priority work for target users?
|
|
189
|
+
- Are edge cases handled acceptably?
|
|
190
|
+
- Do users understand why limitations exist?
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Common Conflict Scenarios
|
|
195
|
+
|
|
196
|
+
### Scenario: Onboarding Flow
|
|
197
|
+
|
|
198
|
+
**Conflict:** Efficiency (skip it) vs. Guidance (require it)
|
|
199
|
+
|
|
200
|
+
**Resolution:**
|
|
201
|
+
- Allow skip but show value
|
|
202
|
+
- Defer to contextual moments
|
|
203
|
+
- Progressive onboarding during natural use
|
|
204
|
+
|
|
205
|
+
### Scenario: Mobile Navigation
|
|
206
|
+
|
|
207
|
+
**Conflict:** Discoverability (show all options) vs. Minimalism (hamburger menu)
|
|
208
|
+
|
|
209
|
+
**Resolution:**
|
|
210
|
+
- Bottom navigation for 3-5 key items
|
|
211
|
+
- Hamburger for secondary items
|
|
212
|
+
- Tab bar > hamburger for primary navigation
|
|
213
|
+
|
|
214
|
+
### Scenario: Form Validation
|
|
215
|
+
|
|
216
|
+
**Conflict:** Error prevention (validate immediately) vs. Efficiency (let them type)
|
|
217
|
+
|
|
218
|
+
**Resolution:**
|
|
219
|
+
- Validate on blur (not on keystroke)
|
|
220
|
+
- Show errors inline, not modal
|
|
221
|
+
- Allow submission, show all errors
|
|
222
|
+
|
|
223
|
+
### Scenario: Confirmation Dialogs
|
|
224
|
+
|
|
225
|
+
**Conflict:** Error prevention (confirm everything) vs. Efficiency (just do it)
|
|
226
|
+
|
|
227
|
+
**Resolution:**
|
|
228
|
+
- Confirm only irreversible/high-cost actions
|
|
229
|
+
- Provide undo instead of confirm
|
|
230
|
+
- Use clear language about consequences
|
|
231
|
+
|
|
232
|
+
### Scenario: Default Settings
|
|
233
|
+
|
|
234
|
+
**Conflict:** User control (let them configure) vs. Simplicity (sensible defaults)
|
|
235
|
+
|
|
236
|
+
**Resolution:**
|
|
237
|
+
- Smart defaults that work for 80%
|
|
238
|
+
- Easy access to change settings
|
|
239
|
+
- Don't require configuration to start
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Decision Documentation
|
|
244
|
+
|
|
245
|
+
When making trade-off decisions, document:
|
|
246
|
+
|
|
247
|
+
```markdown
|
|
248
|
+
## Design Decision: [Feature]
|
|
249
|
+
|
|
250
|
+
### Conflict
|
|
251
|
+
[Heuristic A] suggests we should...
|
|
252
|
+
[Heuristic B] suggests we should...
|
|
253
|
+
|
|
254
|
+
### Context
|
|
255
|
+
- User type: [Novice/Expert]
|
|
256
|
+
- Task: [Critical/Casual]
|
|
257
|
+
- Frequency: [Daily/Occasional]
|
|
258
|
+
- Reversibility: [Yes/No]
|
|
259
|
+
|
|
260
|
+
### Decision
|
|
261
|
+
We chose to prioritize [Heuristic] because...
|
|
262
|
+
|
|
263
|
+
### Mitigation
|
|
264
|
+
We addressed the other concern by...
|
|
265
|
+
|
|
266
|
+
### Validation
|
|
267
|
+
We'll know this is right when...
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Key Principles
|
|
273
|
+
|
|
274
|
+
### 1. Context Is King
|
|
275
|
+
|
|
276
|
+
The same conflict should be resolved differently in different contexts. A banking app and a social media app may reach opposite conclusions.
|
|
277
|
+
|
|
278
|
+
### 2. Know Your Users
|
|
279
|
+
|
|
280
|
+
The trade-off depends heavily on user expertise and expectations. Test with real users, not assumptions.
|
|
281
|
+
|
|
282
|
+
### 3. Design for Both When Possible
|
|
283
|
+
|
|
284
|
+
Often, the conflict is artificial and clever design can satisfy both principles.
|
|
285
|
+
|
|
286
|
+
### 4. Make Conscious Trade-offs
|
|
287
|
+
|
|
288
|
+
Don't accidentally violate a heuristic. Violate it consciously with reasoning.
|
|
289
|
+
|
|
290
|
+
### 5. Document Decisions
|
|
291
|
+
|
|
292
|
+
Future you (and your team) will want to know why choices were made.
|
|
293
|
+
|
|
294
|
+
### 6. Revisit Trade-offs
|
|
295
|
+
|
|
296
|
+
As products and users evolve, optimal trade-offs may shift. Periodically review past decisions.
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# Krug's Usability Principles
|
|
2
|
+
|
|
3
|
+
Full methodology from "Don't Make Me Think" for creating intuitive, usable interfaces.
|
|
4
|
+
|
|
5
|
+
## The Reality of How Users Use the Web
|
|
6
|
+
|
|
7
|
+
### Fact 1: We Don't Read, We Scan
|
|
8
|
+
|
|
9
|
+
**Why users scan:**
|
|
10
|
+
- They're on a mission (have a goal)
|
|
11
|
+
- They know they don't need to read everything
|
|
12
|
+
- They're good at scanning from years of practice
|
|
13
|
+
|
|
14
|
+
**Design implications:**
|
|
15
|
+
- Create visual hierarchy (important things bigger, bolder)
|
|
16
|
+
- Use headings and subheadings liberally
|
|
17
|
+
- Keep paragraphs short
|
|
18
|
+
- Use bulleted lists
|
|
19
|
+
- Highlight key terms
|
|
20
|
+
|
|
21
|
+
### Fact 2: We Don't Make Optimal Choices, We Satisfice
|
|
22
|
+
|
|
23
|
+
**Satisficing** = "satisfying" + "sufficing"
|
|
24
|
+
|
|
25
|
+
Users click the first reasonable option, not the best option.
|
|
26
|
+
|
|
27
|
+
**Why satisficing:**
|
|
28
|
+
- Optimizing is hard and takes time
|
|
29
|
+
- The penalty for guessing wrong is low (back button)
|
|
30
|
+
- Weighing options doesn't improve results much
|
|
31
|
+
- Guessing is more fun
|
|
32
|
+
|
|
33
|
+
**Design implications:**
|
|
34
|
+
- Make the right choice obvious
|
|
35
|
+
- Don't rely on users reading all options
|
|
36
|
+
- Make consequences clear before clicking
|
|
37
|
+
|
|
38
|
+
### Fact 3: We Don't Figure Out How Things Work, We Muddle Through
|
|
39
|
+
|
|
40
|
+
Users don't read instructions. They try things until something works.
|
|
41
|
+
|
|
42
|
+
**Why muddling through:**
|
|
43
|
+
- It's not important to them to know how it works
|
|
44
|
+
- If they find something that works, they stick with it
|
|
45
|
+
- It rarely matters if they don't use something optimally
|
|
46
|
+
|
|
47
|
+
**Design implications:**
|
|
48
|
+
- Make things obvious so "figuring out" isn't needed
|
|
49
|
+
- Expect users to use things "wrong"
|
|
50
|
+
- Design for recovery from mistakes
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Things You Should Never Do
|
|
55
|
+
|
|
56
|
+
### Don't Make Users Think
|
|
57
|
+
|
|
58
|
+
Signs that your page makes users think:
|
|
59
|
+
|
|
60
|
+
| Symptom | Example |
|
|
61
|
+
|---------|---------|
|
|
62
|
+
| Puzzling labels | "Solutions" (solutions to what?) |
|
|
63
|
+
| Links that could go anywhere | "Click here" |
|
|
64
|
+
| Unexplained options | Checkboxes without context |
|
|
65
|
+
| Unfamiliar terminology | Industry jargon |
|
|
66
|
+
| Gratuitous cleverness | Puns, wordplay in navigation |
|
|
67
|
+
|
|
68
|
+
### Don't Waste Users' Goodwill
|
|
69
|
+
|
|
70
|
+
Users have a finite reservoir of goodwill:
|
|
71
|
+
|
|
72
|
+
**Things that diminish goodwill:**
|
|
73
|
+
- Hiding info they need (phone numbers, prices)
|
|
74
|
+
- Punishing them for not doing things your way
|
|
75
|
+
- Asking for unnecessary information
|
|
76
|
+
- Making them feel stupid
|
|
77
|
+
- Making them repeat themselves
|
|
78
|
+
- Sites that look like an afterthought
|
|
79
|
+
- Amateur errors (broken links, typos)
|
|
80
|
+
|
|
81
|
+
**Things that increase goodwill:**
|
|
82
|
+
- Know what questions they have and answer them
|
|
83
|
+
- Minimize steps
|
|
84
|
+
- Put effort into UI quality
|
|
85
|
+
- Know what they're likely to struggle with
|
|
86
|
+
- Make it easy to recover from errors
|
|
87
|
+
- Apologize when things go wrong
|
|
88
|
+
|
|
89
|
+
### Don't Make Words Seem Important If They're Not
|
|
90
|
+
|
|
91
|
+
**Happy talk example:**
|
|
92
|
+
> "Welcome to our website! We're excited to help you find exactly what you're looking for. Our team of dedicated professionals is committed to providing you with the best possible experience."
|
|
93
|
+
|
|
94
|
+
**Reality:** Users skip this. It says nothing.
|
|
95
|
+
|
|
96
|
+
**Rule:** If users will skip it, remove it.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Navigation Must-Haves
|
|
101
|
+
|
|
102
|
+
### The Permanent Navigation
|
|
103
|
+
|
|
104
|
+
Every page needs:
|
|
105
|
+
|
|
106
|
+
1. **Site ID** (logo/name) - Top left corner
|
|
107
|
+
2. **Page name** - Prominent, matches link that brought them
|
|
108
|
+
3. **Sections** - Major site areas
|
|
109
|
+
4. **Local navigation** - What's in this section
|
|
110
|
+
5. **Utilities** - Sign in, Search, Help, Cart
|
|
111
|
+
6. **"You are here" indicator** - Highlighted nav item
|
|
112
|
+
|
|
113
|
+
### The Trunk Test
|
|
114
|
+
|
|
115
|
+
Can users answer these on any random page?
|
|
116
|
+
|
|
117
|
+
| Question | Element That Answers It |
|
|
118
|
+
|----------|------------------------|
|
|
119
|
+
| What site is this? | Logo/Site ID |
|
|
120
|
+
| What page am I on? | Page title |
|
|
121
|
+
| What major sections exist? | Main navigation |
|
|
122
|
+
| What are my options here? | Local navigation |
|
|
123
|
+
| Where am I in the structure? | Breadcrumbs, highlighted nav |
|
|
124
|
+
| How can I search? | Search box |
|
|
125
|
+
|
|
126
|
+
### Breadcrumbs
|
|
127
|
+
|
|
128
|
+
**Good breadcrumbs:**
|
|
129
|
+
```
|
|
130
|
+
Home > Products > Shoes > Running > Men's Trail Runners
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Rules:**
|
|
134
|
+
- Put them at the top
|
|
135
|
+
- Use ">" between levels
|
|
136
|
+
- Make the current page name visible but not a link
|
|
137
|
+
- Use small text (secondary importance)
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Homepage Guidelines
|
|
142
|
+
|
|
143
|
+
The homepage has to do too many things:
|
|
144
|
+
|
|
145
|
+
1. Site identity and mission
|
|
146
|
+
2. Site hierarchy (navigation)
|
|
147
|
+
3. Search
|
|
148
|
+
4. Teases (content, features)
|
|
149
|
+
5. Timely content
|
|
150
|
+
6. Deals
|
|
151
|
+
7. Shortcuts (popular items)
|
|
152
|
+
8. Registration/Sign in
|
|
153
|
+
|
|
154
|
+
### Homepage Priorities
|
|
155
|
+
|
|
156
|
+
**Must do:**
|
|
157
|
+
- Tell me what this site is
|
|
158
|
+
- Tell me what I can do here
|
|
159
|
+
- Tell me why I should be here (and not somewhere else)
|
|
160
|
+
- Start me on my way
|
|
161
|
+
|
|
162
|
+
**Should do:**
|
|
163
|
+
- Show me what I'm looking for
|
|
164
|
+
- Show me where to start
|
|
165
|
+
- Establish credibility and trust
|
|
166
|
+
|
|
167
|
+
### The Big Bang Theory of Web Design
|
|
168
|
+
|
|
169
|
+
**You have 3-4 seconds to answer:**
|
|
170
|
+
1. What is this?
|
|
171
|
+
2. What can I do here?
|
|
172
|
+
3. Why should I be here?
|
|
173
|
+
|
|
174
|
+
### Tagline Guidelines
|
|
175
|
+
|
|
176
|
+
| Good Tagline | Bad Tagline |
|
|
177
|
+
|--------------|-------------|
|
|
178
|
+
| Conveys unique value | Generic platitude |
|
|
179
|
+
| Specific and informative | Vague and fluffy |
|
|
180
|
+
| 6-8 words | Too long or too short |
|
|
181
|
+
| Instantly understandable | Requires thought |
|
|
182
|
+
|
|
183
|
+
Examples:
|
|
184
|
+
- Good: "Find anything from thousands of stores"
|
|
185
|
+
- Bad: "Welcome to the future of shopping"
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Mobile Usability
|
|
190
|
+
|
|
191
|
+
### Mobile Considerations
|
|
192
|
+
|
|
193
|
+
**Constraints:**
|
|
194
|
+
- Smaller viewport
|
|
195
|
+
- Fat fingers (need bigger targets)
|
|
196
|
+
- Single-column layout
|
|
197
|
+
- No hover states
|
|
198
|
+
- Variable attention and context
|
|
199
|
+
|
|
200
|
+
### Mobile Specifics
|
|
201
|
+
|
|
202
|
+
| Issue | Solution |
|
|
203
|
+
|-------|----------|
|
|
204
|
+
| Tiny tap targets | Minimum 44×44 px |
|
|
205
|
+
| Crowded nav | Hamburger or bottom nav |
|
|
206
|
+
| Long forms | Break into steps |
|
|
207
|
+
| Hover-dependent UI | Alternative for touch |
|
|
208
|
+
| Text too small | 16px minimum body text |
|
|
209
|
+
|
|
210
|
+
### Mobile Trade-offs
|
|
211
|
+
|
|
212
|
+
**What to prioritize:**
|
|
213
|
+
- Primary tasks front and center
|
|
214
|
+
- Essential content visible
|
|
215
|
+
- Fast load times
|
|
216
|
+
- Easy to tap, hard to mis-tap
|
|
217
|
+
|
|
218
|
+
**What to hide/remove:**
|
|
219
|
+
- Secondary navigation
|
|
220
|
+
- Non-essential images
|
|
221
|
+
- Decorative elements
|
|
222
|
+
- Long-form content
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Usability Testing on $0
|
|
227
|
+
|
|
228
|
+
### How Many Users?
|
|
229
|
+
|
|
230
|
+
**3-4 users catches most issues.**
|
|
231
|
+
|
|
232
|
+
Testing with more users has diminishing returns. Better to test with 3, fix issues, then test again with 3.
|
|
233
|
+
|
|
234
|
+
### What to Test
|
|
235
|
+
|
|
236
|
+
1. Can they complete core tasks?
|
|
237
|
+
2. Where do they get stuck?
|
|
238
|
+
3. What do they say out loud?
|
|
239
|
+
4. What did they expect vs. what happened?
|
|
240
|
+
|
|
241
|
+
### Test Protocol
|
|
242
|
+
|
|
243
|
+
**Before:**
|
|
244
|
+
- "I'm testing the site, not you"
|
|
245
|
+
- "Think out loud as you go"
|
|
246
|
+
- "There are no wrong answers"
|
|
247
|
+
|
|
248
|
+
**During:**
|
|
249
|
+
- Don't help. Don't explain. Just watch.
|
|
250
|
+
- Note hesitations and confusions
|
|
251
|
+
- Write down what they say
|
|
252
|
+
|
|
253
|
+
**After:**
|
|
254
|
+
- Ask what was confusing
|
|
255
|
+
- Ask what they expected
|
|
256
|
+
- Ask how they'd describe the site
|
|
257
|
+
|
|
258
|
+
### Common Findings
|
|
259
|
+
|
|
260
|
+
| What Users Do | What It Means |
|
|
261
|
+
|---------------|---------------|
|
|
262
|
+
| Click wrong thing | Label is confusing |
|
|
263
|
+
| Hesitate | Decision isn't obvious |
|
|
264
|
+
| Look around lost | "You are here" is unclear |
|
|
265
|
+
| Read everything | Design isn't self-evident |
|
|
266
|
+
| Use search immediately | Navigation is failing |
|
|
267
|
+
| Express confusion | Copy is unclear |
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Accessibility Basics
|
|
272
|
+
|
|
273
|
+
### Why It Matters
|
|
274
|
+
|
|
275
|
+
- 15-20% of population has some disability
|
|
276
|
+
- Accessible sites are better for everyone
|
|
277
|
+
- It's often required by law
|
|
278
|
+
- It's the right thing to do
|
|
279
|
+
|
|
280
|
+
### Quick Wins
|
|
281
|
+
|
|
282
|
+
| Fix | Benefit |
|
|
283
|
+
|-----|---------|
|
|
284
|
+
| Add alt text to images | Screen readers can describe |
|
|
285
|
+
| Use sufficient contrast | Low-vision users can read |
|
|
286
|
+
| Allow keyboard navigation | Motor-impaired users can navigate |
|
|
287
|
+
| Use semantic HTML | Assistive tech understands structure |
|
|
288
|
+
| Add focus indicators | Keyboard users know where they are |
|
|
289
|
+
| Make touch targets large | Everyone benefits |
|