codymaster 4.1.4 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -2
- package/README.md +54 -84
- package/dist/index.js +118 -4
- package/install.sh +2 -2
- package/package.json +3 -8
- package/skills/AGENTS.md +61 -0
- package/skills/CLAUDE.md +158 -0
- package/skills/boxme-git-config/SKILL.md +56 -0
- package/skills/boxme-local-dev/SKILL.md +66 -0
- package/skills/build.sh +30 -0
- package/skills/cf +314 -0
- package/skills/cf 2 +313 -0
- package/skills/cm-ads-tracker/SKILL.md +364 -69
- package/skills/cm-auto-publisher/SKILL.md +81 -0
- package/skills/cm-booking-calendar/SKILL.md +521 -0
- package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
- package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
- package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
- package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
- package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
- package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
- package/skills/cm-brainstorm-idea/SKILL.md +15 -24
- package/skills/cm-clean-code/SKILL.md +300 -0
- package/skills/cm-code-review/SKILL.md +0 -27
- package/skills/cm-codeintell/SKILL.md +598 -0
- package/skills/cm-content-factory/.content-factory-state.json +132 -0
- package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/cm-content-factory/AGENTS.md +61 -0
- package/skills/cm-content-factory/CLAUDE.md +63 -0
- package/skills/cm-content-factory/CURSOR.md +43 -0
- package/skills/cm-content-factory/Content Factory.zip +0 -0
- package/skills/cm-content-factory/cf +313 -0
- package/skills/cm-content-factory/config.schema.json +397 -0
- package/skills/cm-content-factory/dashboard/app.js +556 -0
- package/skills/cm-content-factory/dashboard/index.html +397 -0
- package/skills/cm-content-factory/dashboard/style.css +1211 -0
- package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
- package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
- package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
- package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
- package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
- package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
- package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
- package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
- package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
- package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
- package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
- package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
- package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
- package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
- package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
- package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
- package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
- package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
- package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
- package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
- package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
- package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
- package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
- package/skills/cm-content-factory/extensions/hooks.py +126 -0
- package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
- package/skills/cm-content-factory/landing/index.html +680 -0
- package/skills/cm-content-factory/landing/script.js +101 -0
- package/skills/cm-content-factory/landing/style.css +1216 -0
- package/skills/cm-content-factory/landing/translations.js +508 -0
- package/skills/cm-content-factory/logs/events.jsonl +11 -0
- package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
- package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
- package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
- package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
- package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
- package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
- package/skills/cm-content-factory/scripts/audit.py +106 -0
- package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
- package/skills/cm-content-factory/scripts/deploy.py +146 -0
- package/skills/cm-content-factory/scripts/extract.py +132 -0
- package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
- package/skills/cm-content-factory/scripts/memory.py +521 -0
- package/skills/cm-content-factory/scripts/monetize.py +239 -0
- package/skills/cm-content-factory/scripts/pipeline.py +357 -0
- package/skills/cm-content-factory/scripts/plan.py +163 -0
- package/skills/cm-content-factory/scripts/publish.py +145 -0
- package/skills/cm-content-factory/scripts/research.py +337 -0
- package/skills/cm-content-factory/scripts/scaffold.py +464 -0
- package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
- package/skills/cm-content-factory/scripts/seo.py +90 -0
- package/skills/cm-content-factory/scripts/state_manager.py +320 -0
- package/skills/cm-content-factory/scripts/token_manager.py +268 -0
- package/skills/cm-content-factory/scripts/validate.py +221 -0
- package/skills/cm-content-factory/scripts/wizard.py +329 -0
- package/skills/cm-content-factory/scripts/write.py +93 -0
- package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
- package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
- package/skills/cm-content-factory/tests/conftest.py +66 -0
- package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
- package/skills/cm-content-factory/tests/test_memory.py +128 -0
- package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
- package/skills/cm-content-factory/tests/test_research.py +56 -0
- package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
- package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
- package/skills/cm-content-factory/tests/test_wizard.py +121 -0
- package/skills/cm-continuity/SKILL.md +7 -0
- package/skills/cm-cro-methodology/SKILL.md +290 -0
- package/skills/cm-dashboard/SKILL.md +7 -525
- package/skills/cm-debugging/SKILL.md +7 -116
- package/skills/cm-deep-search/SKILL.md +5 -1
- package/skills/cm-dockit/README.md +6 -15
- package/skills/cm-dockit/SKILL.md +20 -37
- package/skills/cm-execution/SKILL.md +6 -1
- package/skills/cm-frappe-agent/SKILL.md +134 -0
- package/skills/cm-frappe-agent/agents/doctype-architect.md +596 -0
- package/skills/cm-frappe-agent/agents/erpnext-customizer.md +643 -0
- package/skills/cm-frappe-agent/agents/frappe-backend.md +814 -0
- package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +557 -0
- package/skills/cm-frappe-agent/agents/frappe-debugger.md +625 -0
- package/skills/cm-frappe-agent/agents/frappe-fixer.md +275 -0
- package/skills/cm-frappe-agent/agents/frappe-frontend.md +660 -0
- package/skills/cm-frappe-agent/agents/frappe-installer.md +158 -0
- package/skills/cm-frappe-agent/agents/frappe-performance.md +307 -0
- package/skills/cm-frappe-agent/agents/frappe-planner.md +419 -0
- package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +153 -0
- package/skills/cm-frappe-agent/agents/github-workflow.md +286 -0
- package/skills/cm-frappe-agent/commands/frappe-app.md +351 -0
- package/skills/cm-frappe-agent/commands/frappe-backend.md +162 -0
- package/skills/cm-frappe-agent/commands/frappe-bench.md +254 -0
- package/skills/cm-frappe-agent/commands/frappe-debug.md +263 -0
- package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +272 -0
- package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +310 -0
- package/skills/cm-frappe-agent/commands/frappe-erpnext.md +210 -0
- package/skills/cm-frappe-agent/commands/frappe-fix.md +59 -0
- package/skills/cm-frappe-agent/commands/frappe-frontend.md +210 -0
- package/skills/cm-frappe-agent/commands/frappe-fullstack.md +243 -0
- package/skills/cm-frappe-agent/commands/frappe-github.md +57 -0
- package/skills/cm-frappe-agent/commands/frappe-install.md +52 -0
- package/skills/cm-frappe-agent/commands/frappe-plan.md +442 -0
- package/skills/cm-frappe-agent/commands/frappe-remote.md +58 -0
- package/skills/cm-frappe-agent/commands/frappe-test.md +356 -0
- package/skills/cm-frappe-agent/docs/README.md +51 -0
- package/skills/cm-frappe-agent/docs/agents-catalog.md +113 -0
- package/skills/cm-frappe-agent/docs/architecture.md +149 -0
- package/skills/cm-frappe-agent/docs/commands-catalog.md +82 -0
- package/skills/cm-frappe-agent/docs/resources-catalog.md +66 -0
- package/skills/cm-frappe-agent/docs/sitemap-urls.txt +52 -0
- package/skills/cm-frappe-agent/docs/sitemap.md +81 -0
- package/skills/cm-frappe-agent/docs/sop/user-guide.md +178 -0
- package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +122 -0
- package/skills/cm-frappe-agent/resources/7-layer-architecture.md +985 -0
- package/skills/cm-frappe-agent/resources/bench_commands.md +73 -0
- package/skills/cm-frappe-agent/resources/code-patterns-guide.md +948 -0
- package/skills/cm-frappe-agent/resources/common_pitfalls.md +266 -0
- package/skills/cm-frappe-agent/resources/doctype-registry.md +158 -0
- package/skills/cm-frappe-agent/resources/installation-guide.md +289 -0
- package/skills/cm-frappe-agent/resources/rest-api-patterns.md +182 -0
- package/skills/cm-frappe-agent/resources/scaffold_checklist.md +82 -0
- package/skills/cm-frappe-agent/resources/upgrade_patterns.md +113 -0
- package/skills/cm-frappe-agent/resources/web-form-patterns.md +252 -0
- package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +621 -0
- package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +642 -0
- package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +576 -0
- package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +740 -0
- package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +47 -0
- package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +608 -0
- package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +46 -0
- package/skills/cm-git-worktrees/SKILL.md +0 -7
- package/skills/cm-google-form/SKILL.md +266 -0
- package/skills/cm-google-form/templates/apps-script.js +55 -0
- package/skills/cm-google-form/templates/form-markup.html +110 -0
- package/skills/cm-google-form/templates/form-submit.js +201 -0
- package/skills/cm-google-form/templates/toast.css +152 -0
- package/skills/cm-growth-hacking/SKILL.md +293 -0
- package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
- package/skills/cm-growth-hacking/calendar-integration.md +264 -0
- package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
- package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
- package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
- package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
- package/skills/cm-growth-hacking/tracking-events.md +246 -0
- package/skills/cm-growth-hacking/trigger-system.md +342 -0
- package/skills/cm-how-it-work/SKILL.md +20 -4
- package/skills/cm-identity-guard/SKILL.md +0 -11
- package/skills/cm-jtbd/SKILL.md +1 -1
- package/skills/cm-notebooklm/SKILL.md +172 -0
- package/skills/cm-notebooklm/references/command_reference.md +94 -0
- package/skills/cm-notebooklm/references/workflows.md +60 -0
- package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
- package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
- package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
- package/skills/cm-planning/SKILL.md +39 -52
- package/skills/cm-project-bootstrap/SKILL.md +1307 -99
- package/skills/cm-quality-gate/SKILL.md +13 -106
- package/skills/cm-reactor/SKILL.md +274 -0
- package/skills/cm-safe-deploy/SKILL.md +415 -52
- package/skills/cm-safe-i18n/SKILL.md +1 -22
- package/skills/cm-secret-shield/SKILL.md +2 -2
- package/skills/cm-security-gate/SKILL.md +114 -0
- package/skills/cm-skill-chain/SKILL.md +2 -2
- package/skills/cm-skill-index/SKILL.md +9 -6
- package/skills/cm-skill-mastery/SKILL.md +2 -15
- package/skills/cm-start/SKILL.md +9 -0
- package/skills/cm-tdd/SKILL.md +16 -49
- package/skills/cm-ui-preview/SKILL.md +35 -173
- package/skills/cm-ux-master/FEATURES-v4.md +305 -0
- package/skills/cm-ux-master/README-ru.md +135 -0
- package/skills/cm-ux-master/README-vi.md +135 -0
- package/skills/cm-ux-master/README-zh.md +135 -0
- package/skills/cm-ux-master/README.md +489 -0
- package/skills/cm-ux-master/SKILL.md +773 -62
- package/skills/cm-ux-master/cli/README.md +180 -0
- package/skills/cm-ux-master/cli/pyproject.toml +106 -0
- package/skills/cm-ux-master/cli/requirements.txt +21 -0
- package/skills/cm-ux-master/cli/templates/base/skill-core.md +262 -0
- package/skills/cm-ux-master/cli/templates/platforms/claude.yaml +21 -0
- package/skills/cm-ux-master/cli/templates/platforms/cursor.yaml +21 -0
- package/skills/cm-ux-master/cli/templates/platforms/figma.yaml +24 -0
- package/skills/cm-ux-master/cli/templates/platforms/vscode-mcp.yaml +28 -0
- package/skills/cm-ux-master/cli/templates/platforms/windsurf.yaml +21 -0
- package/skills/cm-ux-master/cli/uxmaster/__init__.py +10 -0
- package/skills/cm-ux-master/cli/uxmaster/__main__.py +19 -0
- package/skills/cm-ux-master/cli/uxmaster/cli.py +349 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/__init__.py +8 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/extract.py +18 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/init.py +58 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +194 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/search.py +23 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/validate.py +270 -0
- package/skills/cm-ux-master/cli/uxmaster/search_engine.py +532 -0
- package/skills/cm-ux-master/cli/uxmaster/template_engine.py +458 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/__init__.py +9 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/console.py +42 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/detect.py +83 -0
- package/skills/cm-ux-master/data/accessibility-advanced.csv +26 -0
- package/skills/cm-ux-master/data/animation.csv +31 -0
- package/skills/cm-ux-master/data/charts.csv +26 -0
- package/skills/cm-ux-master/data/colors.csv +97 -0
- package/skills/cm-ux-master/data/design-tests.csv +37 -0
- package/skills/cm-ux-master/data/devices.csv +21 -0
- package/skills/cm-ux-master/data/icons.csv +101 -0
- package/skills/cm-ux-master/data/landing.csv +31 -0
- package/skills/cm-ux-master/data/products.csv +97 -0
- package/skills/cm-ux-master/data/react-performance.csv +45 -0
- package/skills/cm-ux-master/data/responsive.csv +26 -0
- package/skills/cm-ux-master/data/semi-tokens.csv +52 -0
- package/skills/cm-ux-master/data/stacks/angular.csv +34 -0
- package/skills/cm-ux-master/data/stacks/astro.csv +54 -0
- package/skills/cm-ux-master/data/stacks/electron.csv +32 -0
- package/skills/cm-ux-master/data/stacks/flutter.csv +53 -0
- package/skills/cm-ux-master/data/stacks/html-tailwind.csv +56 -0
- package/skills/cm-ux-master/data/stacks/htmx.csv +28 -0
- package/skills/cm-ux-master/data/stacks/jetpack-compose.csv +53 -0
- package/skills/cm-ux-master/data/stacks/nextjs.csv +53 -0
- package/skills/cm-ux-master/data/stacks/nuxt-ui.csv +51 -0
- package/skills/cm-ux-master/data/stacks/nuxtjs.csv +59 -0
- package/skills/cm-ux-master/data/stacks/react-native.csv +52 -0
- package/skills/cm-ux-master/data/stacks/react.csv +54 -0
- package/skills/cm-ux-master/data/stacks/shadcn.csv +61 -0
- package/skills/cm-ux-master/data/stacks/svelte.csv +54 -0
- package/skills/cm-ux-master/data/stacks/swiftui.csv +51 -0
- package/skills/cm-ux-master/data/stacks/tauri.csv +29 -0
- package/skills/cm-ux-master/data/stacks/vue.csv +50 -0
- package/skills/cm-ux-master/data/styles.csv +68 -0
- package/skills/cm-ux-master/data/typography.csv +58 -0
- package/skills/cm-ux-master/data/ui-reasoning.csv +101 -0
- package/skills/cm-ux-master/data/ux-guidelines.csv +100 -0
- package/skills/cm-ux-master/data/ux-laws.csv +49 -0
- package/skills/cm-ux-master/data/web-interface.csv +31 -0
- package/skills/cm-ux-master/docs/LANDING-PAGE.html +377 -0
- package/skills/cm-ux-master/docs/README.md +108 -0
- package/skills/cm-ux-master/docs/css/styles.css +573 -0
- package/skills/cm-ux-master/docs/examples/demo-script.md +319 -0
- package/skills/cm-ux-master/docs/guides/for-designers.md +692 -0
- package/skills/cm-ux-master/docs/guides/for-developers.md +778 -0
- package/skills/cm-ux-master/docs/guides/for-product-managers.md +693 -0
- package/skills/cm-ux-master/docs/guides/react-guide-vi.md +50 -0
- package/skills/cm-ux-master/docs/index.html +1062 -0
- package/skills/cm-ux-master/docs/js/i18n.js +84 -0
- package/skills/cm-ux-master/docs/js/lang/de.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/en.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/fr.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/hi.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/id.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ja.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ko.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ru.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/vi.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/zh.js +145 -0
- package/skills/cm-ux-master/docs/js/main.js +117 -0
- package/skills/cm-ux-master/docs/plan/PHASE1-COMPLETION.md +217 -0
- package/skills/cm-ux-master/docs/plan/PHASE2-COMPLETION.md +199 -0
- package/skills/cm-ux-master/docs/plan/PHASE2-ENHANCED-COMPLETION.md +352 -0
- package/skills/cm-ux-master/docs/plan/PHASE3-VALIDATION-COMPLETION.md +499 -0
- package/skills/cm-ux-master/docs/plan/PHASE4-TESTING-POLISH-COMPLETION.md +483 -0
- package/skills/cm-ux-master/docs/plan/UXM-2.0-ROADMAP.md +681 -0
- package/skills/cm-ux-master/docs/plan/WOW-PITCH.md +410 -0
- package/skills/cm-ux-master/docs/technical/api-reference.md +824 -0
- package/skills/cm-ux-master/docs/technical/harvester-v4.md +328 -0
- package/skills/cm-ux-master/docs/technical/how-it-works.md +1128 -0
- package/skills/cm-ux-master/docs/tutorials/quickstart.md +339 -0
- package/skills/cm-ux-master/docs/tutorials/tutorials.md +939 -0
- package/skills/cm-ux-master/docs/tutorials/user-guide.md +716 -0
- package/skills/cm-ux-master/examples/README.md +63 -0
- package/skills/cm-ux-master/mcp/__init__.py +3 -0
- package/skills/cm-ux-master/mcp/integrations/__init__.py +11 -0
- package/skills/cm-ux-master/mcp/integrations/figma/__init__.py +6 -0
- package/skills/cm-ux-master/mcp/integrations/figma/client.py +293 -0
- package/skills/cm-ux-master/mcp/integrations/figma/plugin/code.js +561 -0
- package/skills/cm-ux-master/mcp/integrations/figma/plugin/ui.html +334 -0
- package/skills/cm-ux-master/mcp/integrations/stitch/__init__.py +5 -0
- package/skills/cm-ux-master/mcp/integrations/stitch/client.py +410 -0
- package/skills/cm-ux-master/mcp/integrations/vscode/package.json +167 -0
- package/skills/cm-ux-master/mcp/integrations/vscode/src/extension.ts +81 -0
- package/skills/cm-ux-master/mcp/mcp-config.json +274 -0
- package/skills/cm-ux-master/mcp/server.py +771 -0
- package/skills/cm-ux-master/mcp/tools/__init__.py +13 -0
- package/skills/cm-ux-master/mcp-server/server.py +595 -0
- package/skills/cm-ux-master/output/fila/FilaDashboard.tsx +47 -0
- package/skills/cm-ux-master/output/fila/components/badge/component.tsx +35 -0
- package/skills/cm-ux-master/output/fila/components/badge/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/button/component.tsx +53 -0
- package/skills/cm-ux-master/output/fila/components/button/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/card/component.tsx +35 -0
- package/skills/cm-ux-master/output/fila/components/card/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/input/component.tsx +41 -0
- package/skills/cm-ux-master/output/fila/components/input/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/design-system.css +151 -0
- package/skills/cm-ux-master/output/fila/design-system.html +1596 -0
- package/skills/cm-ux-master/output/fila/design-system.json +168 -0
- package/skills/cm-ux-master/output/fila/figma-tokens.json +523 -0
- package/skills/cm-ux-master/output/fila/harvest-v4-raw.json +406 -0
- package/skills/cm-ux-master/output/fila/semi-theme-override.css +95 -0
- package/skills/cm-ux-master/output/haravan/HaravanDashboard.tsx +103 -0
- package/skills/cm-ux-master/output/haravan/design-system-v3-live.html +2716 -0
- package/skills/cm-ux-master/output/haravan/design-system-v3.html +1770 -0
- package/skills/cm-ux-master/output/haravan/design-system.html +914 -0
- package/skills/cm-ux-master/output/haravan/figma-tokens.json +84 -0
- package/skills/cm-ux-master/output/haravan/haravan-harvest.json +33 -0
- package/skills/cm-ux-master/output/haravan/harvest-v3-raw.json +167 -0
- package/skills/cm-ux-master/output/haravan/semi-theme-override.css +39 -0
- package/skills/cm-ux-master/references/audit-template.md +257 -0
- package/skills/cm-ux-master/references/cultural-ux.md +346 -0
- package/skills/cm-ux-master/references/dark-patterns.md +362 -0
- package/skills/cm-ux-master/references/heuristic-conflicts.md +296 -0
- package/skills/cm-ux-master/references/krug-principles.md +289 -0
- package/skills/cm-ux-master/references/nielsen-heuristics.md +360 -0
- package/skills/cm-ux-master/references/wcag-checklist.md +306 -0
- package/skills/cm-ux-master/scripts/component_generator.py +631 -0
- package/skills/cm-ux-master/scripts/core.py +305 -0
- package/skills/cm-ux-master/scripts/demo_validation.py +452 -0
- package/skills/cm-ux-master/scripts/design_doc_generator.py +1325 -0
- package/skills/cm-ux-master/scripts/design_system.py +1141 -0
- package/skills/cm-ux-master/scripts/design_system_indexer.py +889 -0
- package/skills/cm-ux-master/scripts/extract_i18n.py +251 -0
- package/skills/cm-ux-master/scripts/extractor.py +1437 -0
- package/skills/cm-ux-master/scripts/figma_bridge.py +406 -0
- package/skills/cm-ux-master/scripts/generate.py +147 -0
- package/skills/cm-ux-master/scripts/harvest_session.py +207 -0
- package/skills/cm-ux-master/scripts/harvester.js +240 -0
- package/skills/cm-ux-master/scripts/harvester_browser.py +717 -0
- package/skills/cm-ux-master/scripts/harvester_cli.py +431 -0
- package/skills/cm-ux-master/scripts/harvester_v1.js +275 -0
- package/skills/cm-ux-master/scripts/harvester_v3.js +620 -0
- package/skills/cm-ux-master/scripts/harvester_v4.js +1003 -0
- package/skills/cm-ux-master/scripts/install.py +528 -0
- package/skills/cm-ux-master/scripts/license.py +81 -0
- package/skills/cm-ux-master/scripts/media/qrpayment.png +0 -0
- package/skills/cm-ux-master/scripts/pro_stubs.py +120 -0
- package/skills/cm-ux-master/scripts/project_registry.py +217 -0
- package/skills/cm-ux-master/scripts/search.py +114 -0
- package/skills/cm-ux-master/scripts/semi_mcp_bridge.py +425 -0
- package/skills/cm-ux-master/scripts/stitch_integration.py +583 -0
- package/skills/cm-ux-master/scripts/test_harvester_v4.py +335 -0
- package/skills/cm-ux-master/scripts/token_mapper.py +626 -0
- package/skills/cm-ux-master/scripts/validation_engine.py +1571 -0
- package/skills/cm-ux-master/scripts/wizard.py +653 -0
- package/skills/cm-ux-master/setup.py +93 -0
- package/skills/cm-ux-master/templates/base/flutter-widget.dart +69 -0
- package/skills/cm-ux-master/templates/base/html-page.html +152 -0
- package/skills/cm-ux-master/templates/base/react-component.tsx +47 -0
- package/skills/cm-ux-master/templates/base/swiftui-view.swift +62 -0
- package/skills/cm-ux-master/templates/quick-start.sh +176 -0
- package/skills/cm-ux-master/tests/automation/batch-validate.sh +250 -0
- package/skills/cm-ux-master/tests/automation/generate-test-projects.sh +561 -0
- package/skills/cm-ux-master/tests/automation/run-all-tests.sh +315 -0
- package/skills/cm-ux-master/tests/test_design_doc.py +145 -0
- package/skills/cm-ux-master/tests/test_devices.py +74 -0
- package/skills/cm-ux-master/tests/test_generator.py +116 -0
- package/skills/cm-ux-master/tests/test_harvest_session.py +131 -0
- package/skills/cm-ux-master/tests/test_harvester.py +127 -0
- package/skills/cm-ux-master/tests/test_harvester_v3.py +324 -0
- package/skills/cm-ux-master/tests/test_mcp_server.py +496 -0
- package/skills/cm-ux-master/tests/test_new_domains.py +108 -0
- package/skills/cm-ux-master/tests/test_new_stacks.py +103 -0
- package/skills/cm-ux-master/tests/test_project_registry.py +146 -0
- package/skills/cm-ux-master/tests/test_semi_mcp_bridge.py +207 -0
- package/skills/cm-ux-master/tests/test_token_mapper.py +247 -0
- package/skills/cm-ux-master/tests/test_validation_engine.py +617 -0
- package/skills/config.schema.json +397 -0
- package/skills/frappe-app-builder.zip +0 -0
- package/skills/jobs-to-be-done/SKILL.md +266 -0
- package/skills/jobs-to-be-done/references/case-studies.md +154 -0
- package/skills/jobs-to-be-done/references/competitive-strategy.md +280 -0
- package/skills/jobs-to-be-done/references/diagnostics.md +158 -0
- package/skills/jobs-to-be-done/references/innovation-process.md +392 -0
- package/skills/jobs-to-be-done/references/organizational-change.md +328 -0
- package/skills/marketplace-report-crawler/SKILL.md +176 -0
- package/skills/marketplace-report-crawler/config/accounts.json +41 -0
- package/skills/marketplace-report-crawler/config/report-types.json +422 -0
- package/skills/marketplace-report-crawler/config/sessions.json +3 -0
- package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +102 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +114 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +94 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +272 -0
- package/skills/marketplace-report-crawler/scripts/crawl-runner.js +281 -0
- package/skills/marketplace-report-crawler/scripts/session-check.sh +72 -0
- package/skills/marketplace-report-crawler/scripts/session-manager.sh +349 -0
- package/skills/marketplace-report-crawler/scripts/setup-folders.sh +83 -0
- package/skills/medical-research/SKILL.md +194 -0
- package/skills/medical-research/scripts/evidence_checker.py +288 -0
- package/skills/mom-test/SKILL.md +267 -0
- package/skills/mom-test/references/avoiding-bad-data.md +221 -0
- package/skills/mom-test/references/case-studies.md +306 -0
- package/skills/mom-test/references/commitment-advancement.md +219 -0
- package/skills/mom-test/references/finding-conversations.md +251 -0
- package/skills/mom-test/references/processing-learning.md +256 -0
- package/skills/mom-test/references/question-patterns.md +198 -0
- package/skills/pandasai-analytics/SKILL.md +251 -0
- package/skills/release-it/SKILL.md +235 -0
- package/skills/release-it/references/anti-patterns.md +279 -0
- package/skills/release-it/references/capacity-planning.md +285 -0
- package/skills/release-it/references/chaos-engineering.md +325 -0
- package/skills/release-it/references/deployment-strategies.md +331 -0
- package/skills/release-it/references/observability.md +301 -0
- package/skills/release-it/references/stability-patterns.md +355 -0
- package/skills/scripts/sync-ide-skills.sh +61 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +37 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +34 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +51 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +39 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +52 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +25 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +31 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +25 -0
- package/skills/skill-creator-ultra/README.md +1242 -0
- package/skills/skill-creator-ultra/SKILL.md +388 -0
- package/skills/skill-creator-ultra/agents/analyzer.md +274 -0
- package/skills/skill-creator-ultra/agents/comparator.md +202 -0
- package/skills/skill-creator-ultra/agents/grader.md +223 -0
- package/skills/skill-creator-ultra/assets/eval_review.html +146 -0
- package/skills/skill-creator-ultra/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator-ultra/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +109 -0
- package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +116 -0
- package/skills/skill-creator-ultra/examples/example_api_docs.md +189 -0
- package/skills/skill-creator-ultra/examples/example_db_migration.md +253 -0
- package/skills/skill-creator-ultra/examples/example_git_commit.md +111 -0
- package/skills/skill-creator-ultra/install.ps1 +289 -0
- package/skills/skill-creator-ultra/install.sh +313 -0
- package/skills/skill-creator-ultra/phases/phase1_interview.md +202 -0
- package/skills/skill-creator-ultra/phases/phase2_extract.md +55 -0
- package/skills/skill-creator-ultra/phases/phase3_detect.md +57 -0
- package/skills/skill-creator-ultra/phases/phase4_generate.md +543 -0
- package/skills/skill-creator-ultra/phases/phase5_test.md +319 -0
- package/skills/skill-creator-ultra/phases/phase6_eval.md +301 -0
- package/skills/skill-creator-ultra/phases/phase7_iterate.md +103 -0
- package/skills/skill-creator-ultra/phases/phase8_optimize.md +113 -0
- package/skills/skill-creator-ultra/resources/advanced_patterns.md +499 -0
- package/skills/skill-creator-ultra/resources/anti_patterns.md +376 -0
- package/skills/skill-creator-ultra/resources/blueprints.md +498 -0
- package/skills/skill-creator-ultra/resources/checklist.md +243 -0
- package/skills/skill-creator-ultra/resources/composition_cookbook.md +291 -0
- package/skills/skill-creator-ultra/resources/description_optimization.md +90 -0
- package/skills/skill-creator-ultra/resources/eval_guide.md +133 -0
- package/skills/skill-creator-ultra/resources/industry_questions.md +189 -0
- package/skills/skill-creator-ultra/resources/interview_questions.md +200 -0
- package/skills/skill-creator-ultra/resources/pattern_detection.md +200 -0
- package/skills/skill-creator-ultra/resources/prompt_engineering.md +531 -0
- package/skills/skill-creator-ultra/resources/schemas.md +430 -0
- package/skills/skill-creator-ultra/resources/script_integration.md +593 -0
- package/skills/skill-creator-ultra/resources/scripts_guide.md +339 -0
- package/skills/skill-creator-ultra/resources/skill_template.md +124 -0
- package/skills/skill-creator-ultra/resources/skill_writing_guide.md +634 -0
- package/skills/skill-creator-ultra/resources/versioning_guide.md +193 -0
- package/skills/skill-creator-ultra/scripts/ci_eval.py +200 -0
- package/skills/skill-creator-ultra/scripts/package_skill.py +165 -0
- package/skills/skill-creator-ultra/scripts/simulate_skill.py +398 -0
- package/skills/skill-creator-ultra/scripts/skill_audit.py +611 -0
- package/skills/skill-creator-ultra/scripts/skill_compare.py +265 -0
- package/skills/skill-creator-ultra/scripts/skill_export.py +334 -0
- package/skills/skill-creator-ultra/scripts/skill_scaffold.py +403 -0
- package/skills/skill-creator-ultra/scripts/skill_stats.py +339 -0
- package/skills/skill-creator-ultra/scripts/validate_skill.py +411 -0
- package/skills/tailwind-mastery/SKILL.md +229 -0
- package/skills/vercel-react-best-practices/AGENTS.md +3373 -0
- package/skills/vercel-react-best-practices/README.md +123 -0
- package/skills/vercel-react-best-practices/SKILL.md +143 -0
- package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/skills/web-design-guidelines/SKILL.md +39 -0
- package/skills/cro-methodology/SKILL.md +0 -98
- /package/skills/{cro-methodology → cm-cro-methodology}/references/COPYWRITING.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/OBJECTIONS.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/PERSUASION.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/RESEARCH.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/funnel-analysis.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/testing-methodology.md +0 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import re
|
|
2
|
+
import json
|
|
3
|
+
|
|
4
|
+
with open('docs/index.html', 'r', encoding='utf-8') as f:
|
|
5
|
+
html = f.read()
|
|
6
|
+
|
|
7
|
+
# We only want to target certain textual segments manually to be safe,
|
|
8
|
+
# or use a regex that matches tags with text inside.
|
|
9
|
+
# A simpler approach: Define a dictionary of Exact Match -> (Key, en_translation)
|
|
10
|
+
# and do a safe replacement on the HTML string.
|
|
11
|
+
|
|
12
|
+
translations = {
|
|
13
|
+
# Nav
|
|
14
|
+
"Why": ("nav_why", "Why"),
|
|
15
|
+
"Magic": ("nav_magic", "Magic"),
|
|
16
|
+
"How": ("nav_how", "How"),
|
|
17
|
+
"Start Free": ("nav_start", "Start Free"),
|
|
18
|
+
"Try It\n Free →": ("nav_try", "Try It\n Free →"),
|
|
19
|
+
|
|
20
|
+
# Hero
|
|
21
|
+
"Founders & PMs đang dùng trên 6 nền tảng AI": ("hero_badge", "Founders & PMs using on 6 AI platforms"),
|
|
22
|
+
"Bạn nói ý\n tưởng.": ("hero_h1a", "You speak the\n idea."),
|
|
23
|
+
"AI biến\n nó thành sản phẩm đẹp.": ("hero_h1b", "AI turns\n it into beautiful products."),
|
|
24
|
+
"Không cần biết code. Không cần thuê designer.": ("hero_p1", "No coding skills needed. No designer required."),
|
|
25
|
+
"biến mọi AI tool thành design studio chuyên nghiệp.": ("hero_p2", "turns any AI tool into a professional design studio."),
|
|
26
|
+
"Hoạt động với Cursor, Claude, Gemini, Amp, và mọi AI\n coding tool bạn đang dùng.": ("hero_p3", "Works with Cursor, Claude, Gemini, Amp, and any AI\n coding tool you use."),
|
|
27
|
+
"✦\n Bắt đầu miễn phí — 60 giây": ("hero_cta1", "✦\n Start Free — 60 seconds"),
|
|
28
|
+
"Xem\n phép màu ↓": ("hero_cta2", "See\n the magic ↓"),
|
|
29
|
+
"Quy tắc thiết kế": ("hero_stat1", "Design Rules"),
|
|
30
|
+
"Cài đặt xong": ("hero_stat2", "Setup Time"),
|
|
31
|
+
"Chi phí designer": ("hero_stat3", "Designer Cost"),
|
|
32
|
+
"Nền tảng AI": ("hero_stat4", "AI Platforms"),
|
|
33
|
+
|
|
34
|
+
# Problem
|
|
35
|
+
"Vấn đề thật sự": ("prob_tag", "The Real Problem"),
|
|
36
|
+
"Bạn có ý tưởng tuyệt vời.<br>Nhưng AI\n tạo ra UI... xấu.": ("prob_h2", "You have a great idea.<br>But AI\n creates ugly UI."),
|
|
37
|
+
"Đây là thực trạng mà 90% founders và PMs đang gặp phải.": ("prob_sub", "This is the reality 90% of founders and PMs face."),
|
|
38
|
+
|
|
39
|
+
"Không có UX Master": ("prob_no_ux", "Without UX Master"),
|
|
40
|
+
"UI trông\n \"AI-generated\" — generic, không chuyên nghiệp": ("prob_no_1", "UI looks\n \"AI-generated\" — generic, unprofessional"),
|
|
41
|
+
"Mỗi trang một\n style — không có design system nhất quán": ("prob_no_2", "Every page different\n style — no consistent design system"),
|
|
42
|
+
"User bị\n confused — nút bấm nhỏ, menu quá nhiều item, load chậm": ("prob_no_3", "Users get\n confused — tiny buttons, crowded menus, slow loads"),
|
|
43
|
+
"Thuê\n designer: $3,000–$15,000. Chờ 2–4 tuần.": ("prob_no_4", "Hire a\n designer: $3,000–$15,000. Wait 2–4 weeks."),
|
|
44
|
+
"Không biết\n design đúng hay sai — \"trông ổn\" ≠ chuyển đổi tốt": ("prob_no_5", "Don't know if\n design is right — \"looks fine\" ≠ converts well"),
|
|
45
|
+
|
|
46
|
+
"Với UX Master": ("prob_with_ux", "With UX Master"),
|
|
47
|
+
"UI đẹp\n chuẩn studio — khách hàng <span class=\"text-white font-medium\">wow</span> ngay lần đầu": ("prob_yes_1", "Beautiful studio\n quality UI — customers say <span class=\"text-white font-medium\">wow</span> at first sight"),
|
|
48
|
+
"Design\n system tự động — mọi trang đồng bộ, chuyên nghiệp": ("prob_yes_2", "Auto design\n system — every page synchronized and professional"),
|
|
49
|
+
"48 quy\n luật UX khoa học — user <span class=\"text-white font-medium\">thích dùng</span> & quay lại": ("prob_yes_3", "48 scientific\n UX laws — users <span class=\"text-white font-medium\">love using it</span> & return"),
|
|
50
|
+
"$0 chi\n phí. 0 chờ đợi. Kết quả trong <span class=\"text-white font-medium\">vài phút</span>.": ("prob_yes_4", "$0\n cost. 0 wait. Results in <span class=\"text-white font-medium\">minutes</span>."),
|
|
51
|
+
"37 bài\n test chất lượng tự động — biết chính xác đâu cần sửa": ("prob_yes_5", "37 automated\n quality tests — know exactly what to fix"),
|
|
52
|
+
|
|
53
|
+
"\"Sản phẩm tốt không chỉ hoạt động đúng — nó phải <span\n class=\"text-white\">cảm thấy đúng</span>.\"": ("prob_quote", "\"A great product doesn't just work right — it must <span\n class=\"text-white\">feel right</span>.\""),
|
|
54
|
+
|
|
55
|
+
# Magic
|
|
56
|
+
"Phép màu": ("magic_tag", "The Magic"),
|
|
57
|
+
"Chỉ cần nói. AI hiểu bạn muốn gì.": ("magic_h2", "Just speak. AI understands what you want."),
|
|
58
|
+
"UX Master hoạt động ngầm — tự động biến mọi yêu cầu thành\n thiết kế chuyên nghiệp.": ("magic_sub", "UX Master works silently — automatically turning every request into\n professional design."),
|
|
59
|
+
"Bạn": ("magic_you", "You"),
|
|
60
|
+
"\"Tạo cho tôi\n landing page cho dịch vụ spa cao cấp, phong cách sang trọng, có booking form\"": ("magic_prompt", "\"Create a luxury spa landing page, premium style, with booking form\""),
|
|
61
|
+
"AI": ("magic_ai", "AI"),
|
|
62
|
+
"✦ UX Master đang phân tích...": ("magic_analyzing", "✦ UX Master is analyzing..."),
|
|
63
|
+
"🎨 <span class=\"text-zinc-200\">Style:</span> Glassmorphism + Soft UI — hoàn hảo cho luxury spa": ("magic_a1", "🎨 <span class=\"text-zinc-200\">Style:</span> Glassmorphism + Soft UI — perfect for luxury spa"),
|
|
64
|
+
"🎯 <span class=\"text-zinc-200\">Màu sắc:</span> Soft pink + Calming teal trên nền tối": ("magic_a2", "🎯 <span class=\"text-zinc-200\">Colors:</span> Soft pink + Calming teal on dark background"),
|
|
65
|
+
"✍️ <span class=\"text-zinc-200\">Font:</span> Playfair Display / Lato — sang trọng, dễ đọc": ("magic_a3", "✍️ <span class=\"text-zinc-200\">Font:</span> Playfair Display / Lato — elegant, readable"),
|
|
66
|
+
"⚖️ <span class=\"text-zinc-200\">UX Law:</span> Hick's Law — tối đa 2 nút CTA trên hero": ("magic_a4", "⚖️ <span class=\"text-zinc-200\">UX Law:</span> Hick's Law — max 2 CTAs on hero"),
|
|
67
|
+
"🧪 <span class=\"text-zinc-200\">Test:</span> Nút booking ≥ 44px, form ≤ 4 fields": ("magic_a5", "🧪 <span class=\"text-zinc-200\">Test:</span> Booking button ≥ 44px, form ≤ 4 fields"),
|
|
68
|
+
"Tôi đã tạo\n landing page cho Serenity Spa với thiết kế Glassmorphism sang trọng. Booking form chỉ 3 bước, nút CTA nổi\n bật, tuân thủ 48 quy luật UX...": ("magic_output", "I have created the landing page for Serenity Spa with luxury Glassmorphism design. 3-step booking form, prominent CTA button, adheres to 48 UX laws..."),
|
|
69
|
+
|
|
70
|
+
"Tự động chọn design đẹp": ("feature_1_title", "Auto-selects beautiful design"),
|
|
71
|
+
"Từ 67 phong cách thiết kế — UX Master tự chọn style phù hợp\n nhất cho ngành của bạn.": ("feature_1_desc", "From 67 design styles — UX Master auto-picks the perfect match for your industry."),
|
|
72
|
+
"48 quy luật UX khoa học": ("feature_2_title", "48 scientific UX laws"),
|
|
73
|
+
"Nút bấm đủ lớn, menu không quá dài, load nhanh, form ngắn gọn —\n tất cả được tự động áp dụng.": ("feature_2_desc", "Buttons large enough, menus not too long, fast loads, short forms — all automatically applied."),
|
|
74
|
+
"Tự kiểm tra chất lượng": ("feature_3_title", "Auto-quality checks"),
|
|
75
|
+
"37 bài test tự động đảm bảo sản phẩm đạt chuẩn. Contrast đủ?\n Responsive? Accessible?": ("feature_3_desc", "37 automated tests ensure standard compliance. Contrast sufficient? Responsive? Accessible?"),
|
|
76
|
+
"Copy design từ site yêu thích": ("feature_4_title", "Clone your favorite sites"),
|
|
77
|
+
"Thích design của Linear, Stripe hay Airbnb? UX Master trích\n xuất màu sắc, font, spacing.": ("feature_4_desc", "Love Linear, Stripe, or Airbnb's design? UX Master extracts colors, fonts, spacing."),
|
|
78
|
+
"Mọi AI tool đều dùng được": ("feature_5_title", "Works with any AI tool"),
|
|
79
|
+
"Cursor, Claude, Gemini, Amp, OpenCode — cài 1 lần, dùng mãi.": ("feature_5_desc", "Cursor, Claude, Gemini, Amp, OpenCode — install once, use forever."),
|
|
80
|
+
"Tối ưu conversion rate": ("feature_6_title", "Optimizes conversion rates"),
|
|
81
|
+
"CTA đặt đúng chỗ, form ngắn gọn, flow mượt mà — tăng tỷ lệ\n chuyển đổi ngay từ lần đầu.": ("feature_6_desc", "CTAs placed right, concise forms, smooth flow — instantly boosts conversion rates."),
|
|
82
|
+
|
|
83
|
+
# Who is this for
|
|
84
|
+
"Dành cho ai?": ("who_tag", "Who is this for?"),
|
|
85
|
+
"Bạn không cần biết code.<br>Bạn chỉ\n cần biết mình muốn gì.": ("who_h2", "You don't need to code.<br>You just need to know what you want."),
|
|
86
|
+
|
|
87
|
+
"🚀 Startup Founders": ("persona_1", "🚀 Startup Founders"),
|
|
88
|
+
"Ship MVP đẹp hơn — gọi vốn tự tin hơn.": ("persona_1_desc", "Ship better looking MVPs — pitch with confidence."),
|
|
89
|
+
"📋 Product Managers": ("persona_2", "📋 Product Managers"),
|
|
90
|
+
"Biến PRD thành prototype đẹp — không cần chờ design team.": ("persona_2_desc", "Turn PRDs into beautiful prototypes — no waiting for design teams."),
|
|
91
|
+
"💼 Business Owners": ("persona_3", "💼 Business Owners"),
|
|
92
|
+
"Website, landing page, dashboard — professional quality, zero\n cost.": ("persona_3_desc", "Website, landing pages, dashboards — professional quality, zero cost."),
|
|
93
|
+
"🎯 Growth & Marketing": ("persona_4", "🎯 Growth & Marketing"),
|
|
94
|
+
"Landing page chuyển đổi cao. A/B test visual nhanh.": ("persona_4_desc", "High-converting landing pages. Fast visual A/B tests."),
|
|
95
|
+
"✨ Vibe Coders": ("persona_5", "✨ Vibe Coders"),
|
|
96
|
+
"Bạn nói AI làm — UX Master đảm bảo kết quả đẹp & đúng chuẩn.": ("persona_5_desc", "You speak, AI codes — UX Master ensures beautiful & standard-compliant results."),
|
|
97
|
+
"💡 Solo Makers": ("persona_6", "💡 Solo Makers"),
|
|
98
|
+
"Một người = cả team. UX Master là designer trong túi của bạn.": ("persona_6_desc", "One person = entire team. UX Master is the designer in your pocket."),
|
|
99
|
+
|
|
100
|
+
# How
|
|
101
|
+
"Đơn giản đến bất ngờ": ("how_tag", "Surprisingly simple"),
|
|
102
|
+
"3 bước. Xong.": ("how_h2", "3 steps. Done."),
|
|
103
|
+
"Không cần học gì mới. Không cần cài package. Không cần config.": ("how_sub", "No learning curve. No packages to install. No config required."),
|
|
104
|
+
"Cài đặt": ("how_s1_title", "Install"),
|
|
105
|
+
"Chạy 1 lệnh duy nhất. UX Master tự nhận diện AI tool bạn\n đang dùng.": ("how_s1_desc", "Run a single command. UX Master auto-detects the AI tool you're using."),
|
|
106
|
+
"Gọi tên": ("how_s2_title", "Invoke"),
|
|
107
|
+
"Thêm <code class=\"text-xs text-magic\">@ux-master</code> vào prompt của bạn.": ("how_s2_desc", "Add <code class=\"text-xs text-magic\">@ux-master</code> to your prompt."),
|
|
108
|
+
"Tận hưởng": ("how_s3_title", "Enjoy"),
|
|
109
|
+
"AI tự động áp dụng 838+ quy tắc thiết kế vào code của bạn.": ("how_s3_desc", "AI automatically applies 838+ design rules to your code."),
|
|
110
|
+
|
|
111
|
+
# Proof
|
|
112
|
+
"Kết quả thật": ("proof_tag", "Real Results"),
|
|
113
|
+
"Không phải lời hứa. Là kết quả.": ("proof_h2", "Not promises. Just results."),
|
|
114
|
+
"Trước UX Master, AI tạo UI như student project. Giờ khách\n hàng hỏi \"bạn thuê agency nào design?\"": ("proof_q1", "Before UX Master, AI created student-project UI. Now clients ask \"which agency designed this?\""),
|
|
115
|
+
"Là dân backend, CSS luôn là ác mộng. UX Master giúp tôi làm ra\n dashboard nhìn xịn như Stripe.": ("proof_q2", "As a backend dev, CSS was a nightmare. UX Master helps me build Stripe-level dashboards."),
|
|
116
|
+
"Tôi không biết code, không biết design. Nhưng với Cursor +\n UX Master, tôi ship được app đầu tiên trong 1 ngày.": ("proof_q3", "I don't code, I don't design. But with Cursor + UX Master, I shipped my first app in 1 day."),
|
|
117
|
+
|
|
118
|
+
# Use Cases
|
|
119
|
+
"Mọi ngành, mọi sản phẩm": ("use_tag", "Every Industry, Every Product"),
|
|
120
|
+
"UX Master biết ngành của bạn.": ("use_h2", "UX Master knows your industry."),
|
|
121
|
+
"838+ quy tắc thiết kế được ánh xạ vào 13 lĩnh vực.": ("use_sub", "838+ design rules mapped across 13 domains."),
|
|
122
|
+
|
|
123
|
+
# Start
|
|
124
|
+
"Bắt đầu ngay": ("start_tag", "Start Now"),
|
|
125
|
+
"60 giây. Miễn phí. Mãi mãi.": ("start_h2", "60 seconds. Free. Forever."),
|
|
126
|
+
"Chỉ cần Python (đã cài sẵn trên Mac/Linux). Không cần thẻ tín\n dụng.": ("start_sub", "Only requires Python (pre-installed on Mac/Linux). No credit card required."),
|
|
127
|
+
"Cài đặt tự động (Khuyên dùng)": ("start_op1", "Auto Install (Recommended)"),
|
|
128
|
+
"Tự detect AI tool & cài đặt phù hợp": ("start_op1_desc", "Auto detects AI tool & installs properly"),
|
|
129
|
+
"→ Chọn: Cursor, Claude, Gemini, Amp, hoặc All": ("start_hint", "→ Select: Cursor, Claude, Gemini, Amp, or All"),
|
|
130
|
+
|
|
131
|
+
# Under the hood
|
|
132
|
+
"Under the Hood": ("data_tag", "Under the Hood"),
|
|
133
|
+
"838+ quy tắc. 13 domains. Không phải\n template.": ("data_h2", "838+ rules. 13 domains. Not a template."),
|
|
134
|
+
"Mỗi quy tắc được ánh xạ theo ngành, loại sản phẩm, và context\n cụ thể.": ("data_sub", "Every rule is mapped by industry, product type, and specific context."),
|
|
135
|
+
"Quy tắc Colors & Theme": ("data_1", "Color & Theme Rules"),
|
|
136
|
+
"Quy tắc Typography": ("data_2", "Typography Rules"),
|
|
137
|
+
"Quy tắc Bố cục": ("data_3", "Layout Rules"),
|
|
138
|
+
"Quy tắc Box & Shadow": ("data_4", "Box & Shadow Rules"),
|
|
139
|
+
"Quy luật UX": ("data_5", "UX Laws"),
|
|
140
|
+
"Tiêu chuẩn Accessibility": ("data_6", "Accessibility Standards"),
|
|
141
|
+
"Ngành hàng tối ưu": ("data_7", "Optimized Industries"),
|
|
142
|
+
"Tự động Test": ("data_8", "Automated Tests"),
|
|
143
|
+
|
|
144
|
+
# Pricing
|
|
145
|
+
"Pricing": ("price_tag", "Pricing"),
|
|
146
|
+
"Free forever. Pro when you need power.\n ": ("price_h2", "Free forever. Pro when you need power."),
|
|
147
|
+
"838+ rules free. Upgrade to Pro for Harvester v3, Token\n Mapper, and the full design extraction pipeline.": ("price_sub", "838+ rules free. Upgrade to Pro for Harvester v3, Token Mapper, and the full design extraction pipeline."),
|
|
148
|
+
|
|
149
|
+
"Free forever, no catch": ("price_free_sub", "Free forever, no catch"),
|
|
150
|
+
"forever": ("price_free_dur", "forever"),
|
|
151
|
+
"838+ design rules": ("ft_rules", "838+ design rules"),
|
|
152
|
+
"48 UX Laws": ("ft_ux", "48 UX Laws"),
|
|
153
|
+
"37 Design Tests": ("ft_tests", "37 Design Tests"),
|
|
154
|
+
"67 UI styles, 96 color\n palettes": ("ft_styles", "67 UI styles, 96 color palettes"),
|
|
155
|
+
"6 AI platform support": ("ft_platform", "6 AI platform support"),
|
|
156
|
+
"Harvester v1 (~15\n tokens)": ("ft_harv1", "Harvester v1 (~15 tokens)"),
|
|
157
|
+
"Harvester v3 (80+ tokens)": ("ft_harv3", "Harvester v3 (80+ tokens)"),
|
|
158
|
+
"Token Mapper": ("ft_mapper", "Token Mapper"),
|
|
159
|
+
"Design Doc Generator": ("ft_docgen", "Design Doc Generator"),
|
|
160
|
+
"Multi-Project Registry": ("ft_registry", "Multi-Project Registry"),
|
|
161
|
+
|
|
162
|
+
"Get\n Started Free": ("price_free_cta", "Get Started Free"),
|
|
163
|
+
|
|
164
|
+
"Most Popular": ("price_popular", "Most Popular"),
|
|
165
|
+
"One-time payment. Yours forever.": ("price_pro_sub", "One-time payment. Yours forever."),
|
|
166
|
+
"61% off": ("price_discount", "61% off"),
|
|
167
|
+
"slots left": ("price_slots", "slots left"),
|
|
168
|
+
"Price increases to $49 after 100 copies. Never this low again.": ("price_increase", "Price increases to $49 after 100 copies. Never this low again."),
|
|
169
|
+
"Everything in Free": ("pt_all", "Everything in Free"),
|
|
170
|
+
"Harvester v3\n — 80+ tokens 🔥": ("pt_harv3", "Harvester v3 — 80+ tokens 🔥"),
|
|
171
|
+
"Token Mapper\n → CSS/Figma 🔥": ("pt_mapper", "Token Mapper → CSS/Figma 🔥"),
|
|
172
|
+
"Multi-Harvest Merge +\n Confidence": ("pt_merge", "Multi-Harvest Merge + Confidence"),
|
|
173
|
+
"Semi MCP Bridge": ("pt_mcp", "Semi MCP Bridge"),
|
|
174
|
+
"All future updates\n included": ("pt_updates", "All future updates included"),
|
|
175
|
+
"Priority support": ("pt_support", "Priority support"),
|
|
176
|
+
"Get UX Master Pro — $39": ("price_pro_cta", "Get UX Master Pro — $39"),
|
|
177
|
+
|
|
178
|
+
# Pricing Table
|
|
179
|
+
"Free vs Pro — Detailed Comparison": ("price_compare", "Free vs Pro — Detailed Comparison"),
|
|
180
|
+
"Feature": ("price_feat", "Feature"),
|
|
181
|
+
"Design Rules": ("pf_rules", "Design Rules"),
|
|
182
|
+
"UX Laws": ("pf_ux", "UX Laws"),
|
|
183
|
+
"Design Tests": ("pf_tests", "Design Tests"),
|
|
184
|
+
"UI Styles": ("pf_styles", "UI Styles"),
|
|
185
|
+
"Platform Support": ("pf_platform", "Platform Support"),
|
|
186
|
+
"Color Histogram": ("pf_histogram", "Color Histogram"),
|
|
187
|
+
"Semantic Colors": ("pf_semantic", "Semantic Colors"),
|
|
188
|
+
"Neutral Scale": ("pf_neutral", "Neutral Scale"),
|
|
189
|
+
"Component Blueprints": ("pf_blueprint", "Component Blueprints"),
|
|
190
|
+
"Typography Scale": ("pf_typo", "Typography Scale"),
|
|
191
|
+
"Shadow/Border System": ("pf_shadow", "Shadow/Border System"),
|
|
192
|
+
"Layout Metrics": ("pf_layout", "Layout Metrics"),
|
|
193
|
+
|
|
194
|
+
# FAQ
|
|
195
|
+
"Frequently Asked Questions": ("faq_title", "Frequently Asked Questions"),
|
|
196
|
+
"Is it really lifetime access?": ("faq_q1", "Is it really lifetime access?"),
|
|
197
|
+
"Yes. Pay once, yours forever. All future updates included at no extra cost.": ("faq_a1", "Yes. Pay once, yours forever. All future updates included at no extra cost."),
|
|
198
|
+
"Will the price go up?": ("faq_q2", "Will the price go up?"),
|
|
199
|
+
"Yes. Every 100 sales, the price increases permanently. Current tier: $39.\n Next tier: $49. It will never be this low again.": ("faq_a2", "Yes. Every 100 sales, the price increases permanently. Current tier: $39. Next tier: $49. It will never be this low again."),
|
|
200
|
+
"What about refunds?": ("faq_q3", "What about refunds?"),
|
|
201
|
+
"14-day no-questions-asked refund. Try it risk-free.": ("faq_a3", "14-day no-questions-asked refund. Try it risk-free."),
|
|
202
|
+
"Can I use it with any AI tool?": ("faq_q4", "Can I use it with any AI tool?"),
|
|
203
|
+
"Free tier works with Cursor, Claude, Gemini, Amp, OpenCode, Antigravity. Pro\n features work locally via CLI — no cloud dependency.": ("faq_a4", "Free tier works with Cursor, Claude, Gemini, Amp, OpenCode, Antigravity. Pro features work locally via CLI — no cloud dependency."),
|
|
204
|
+
"Do I need coding skills?": ("faq_q5", "Do I need coding skills?"),
|
|
205
|
+
"Free tier: No. Just install and use your AI tool normally. Pro features:\n basic terminal knowledge (copy-paste commands).": ("faq_a5", "Free tier: No. Just install and use your AI tool normally. Pro features: basic terminal knowledge (copy-paste commands)."),
|
|
206
|
+
|
|
207
|
+
# Final CTA
|
|
208
|
+
"Price increases to <span class=\"text-white font-medium\">$49</span> in <span\n class=\"text-accent-light font-medium\" id=\"finalSlotCount\">27</span> sales. This is the lowest it will ever be.": ("final_cta_msg", "Price increases to <span class=\"text-white font-medium\">$49</span> in <span class=\"text-accent-light font-medium\" id=\"finalSlotCount\">27</span> sales. This is the lowest it will ever be."),
|
|
209
|
+
|
|
210
|
+
# Share
|
|
211
|
+
"Biết ai đang build sản phẩm?<br>Gửi\n cho họ.": ("share_h2", "Know someone building a product?<br>Share with them."),
|
|
212
|
+
"Mỗi founder, PM, hay maker bạn giới thiệu là thêm một sản\n phẩm đẹp hơn ra đời.": ("share_sub", "Every founder, PM, or maker you refer means one more beautiful product born."),
|
|
213
|
+
"Share on X": ("share_x", "Share on X"),
|
|
214
|
+
"Share on\n LinkedIn": ("share_in", "Share on LinkedIn"),
|
|
215
|
+
"Copy\n Link": ("share_link", "Copy Link"),
|
|
216
|
+
|
|
217
|
+
# Footer
|
|
218
|
+
"Biến AI thành design studio của bạn.": ("footer_sub", "Turn AI into your design studio."),
|
|
219
|
+
"Hướng dẫn": ("footer_guide", "Guide"),
|
|
220
|
+
"Miễn phí mãi mãi": ("footer_f1", "Free forever"),
|
|
221
|
+
"6 nền tảng AI": ("footer_f2", "6 AI platforms"),
|
|
222
|
+
"838+ quy tắc\n design": ("footer_f3", "838+ design rules"),
|
|
223
|
+
"Bạn mơ nó. AI xây nó. UX Master làm nó đẹp.": ("footer_tagline", "You dream it. AI builds it. UX Master makes it beautiful.")
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
vi_json = {}
|
|
227
|
+
en_json = {}
|
|
228
|
+
|
|
229
|
+
for old_text, (key, en_text) in translations.items():
|
|
230
|
+
# Only replace if old_text is actually in HTML
|
|
231
|
+
if old_text in html:
|
|
232
|
+
# Wrap old_text in data-i18n
|
|
233
|
+
new_text = f'<span data-i18n="{key}">{old_text}</span>'
|
|
234
|
+
html = html.replace(old_text, new_text)
|
|
235
|
+
vi_json[key] = old_text.replace('\n', ' ').strip()
|
|
236
|
+
en_json[key] = en_text.replace('\n', ' ').strip()
|
|
237
|
+
|
|
238
|
+
# Some texts might be part of an existing element (e.g. <a href...>text</a>).
|
|
239
|
+
# We should intelligently just add data-i18n to the element instead of wrapping in <span> if possible.
|
|
240
|
+
# Actually, wrapping in <span> is perfectly valid HTML and safer than regex parsing attributes.
|
|
241
|
+
with open('docs/index.html', 'w', encoding='utf-8') as f:
|
|
242
|
+
f.write(html)
|
|
243
|
+
|
|
244
|
+
with open('docs/js/lang/vi.js', 'w', encoding='utf-8') as f:
|
|
245
|
+
f.write(f'export const vi = {json.dumps(vi_json, ensure_ascii=False, indent=2)};')
|
|
246
|
+
|
|
247
|
+
with open('docs/js/lang/en.js', 'w', encoding='utf-8') as f:
|
|
248
|
+
f.write(f'export const en = {json.dumps(en_json, ensure_ascii=False, indent=2)};')
|
|
249
|
+
|
|
250
|
+
print("Translation mapped and replaced. Keys found:", len(vi_json))
|
|
251
|
+
|