codymaster 4.1.3 → 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 +589 -510
- package/dist/ui/box.js +49 -0
- package/install.sh +2 -2
- package/package.json +3 -9
- 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 +8 -41
- 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,342 @@
|
|
|
1
|
+
# Trigger System
|
|
2
|
+
|
|
3
|
+
> Khi nào hiện bottom sheet? Trigger system quyết định.
|
|
4
|
+
> Hỗ trợ: scroll, time, exit-intent, click, return-visitor, interaction.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🎯 Trigger Types
|
|
9
|
+
|
|
10
|
+
| Type | Description | Best For |
|
|
11
|
+
|------|-------------|----------|
|
|
12
|
+
| `scroll` | User scrolls past X% of page | Service pages, blog content |
|
|
13
|
+
| `time` | X seconds after page load | Homepage, landing pages |
|
|
14
|
+
| `exit` | Mouse moves toward browser chrome (desktop) | Lead capture, promo |
|
|
15
|
+
| `click` | User clicks specific element | Manual CTA buttons |
|
|
16
|
+
| `return` | Returning visitor (cookie-based) | Re-engagement, loyalty |
|
|
17
|
+
| `interaction` | User completes N interactions | Surveys after using tool |
|
|
18
|
+
| `dual` | Time + Scroll combined (both must fire) | Audio CRO, booking nudge |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## ⚙️ TriggerManager Architecture
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
class TriggerManager {
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.config = config;
|
|
28
|
+
this.triggered = false;
|
|
29
|
+
this.listeners = [];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
init() {
|
|
33
|
+
if (this.isDismissed()) return;
|
|
34
|
+
if (this.respectsReducedMotion()) return;
|
|
35
|
+
|
|
36
|
+
const type = this.config.trigger.type;
|
|
37
|
+
|
|
38
|
+
switch (type) {
|
|
39
|
+
case 'scroll': this.initScroll(); break;
|
|
40
|
+
case 'time': this.initTime(); break;
|
|
41
|
+
case 'exit': this.initExitIntent(); break;
|
|
42
|
+
case 'click': this.initClick(); break;
|
|
43
|
+
case 'return': this.initReturnVisitor(); break;
|
|
44
|
+
case 'interaction': this.initInteraction(); break;
|
|
45
|
+
case 'dual': this.initDual(); break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
fire() {
|
|
50
|
+
if (this.triggered) return;
|
|
51
|
+
this.triggered = true;
|
|
52
|
+
this.cleanup();
|
|
53
|
+
if (typeof this.config.onTrigger === 'function') {
|
|
54
|
+
this.config.onTrigger();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
cleanup() {
|
|
59
|
+
this.listeners.forEach(({ el, event, fn }) => el.removeEventListener(event, fn));
|
|
60
|
+
this.listeners = [];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
destroy() {
|
|
64
|
+
this.cleanup();
|
|
65
|
+
this.triggered = true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 📜 Scroll Trigger
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
initScroll() {
|
|
76
|
+
const threshold = this.config.trigger.value || 0.3; // 30% default
|
|
77
|
+
const delay = this.config.trigger.delay || 0;
|
|
78
|
+
|
|
79
|
+
const onScroll = () => {
|
|
80
|
+
const scrollPct = window.scrollY /
|
|
81
|
+
(document.documentElement.scrollHeight - window.innerHeight);
|
|
82
|
+
|
|
83
|
+
if (scrollPct >= threshold) {
|
|
84
|
+
if (delay > 0) {
|
|
85
|
+
setTimeout(() => this.fire(), delay);
|
|
86
|
+
} else {
|
|
87
|
+
this.fire();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
window.addEventListener('scroll', onScroll, { passive: true });
|
|
93
|
+
this.listeners.push({ el: window, event: 'scroll', fn: onScroll });
|
|
94
|
+
|
|
95
|
+
// Check immediately (user may already be scrolled)
|
|
96
|
+
onScroll();
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Recommended thresholds:**
|
|
101
|
+
|
|
102
|
+
| Page Type | Scroll % | Rationale |
|
|
103
|
+
|-----------|----------|-----------|
|
|
104
|
+
| Homepage | 30% | After hero + intro |
|
|
105
|
+
| Service page | 25% | After service description |
|
|
106
|
+
| Blog/article | 40% | After first section |
|
|
107
|
+
| Product page | 20% | After product image |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## ⏱️ Time Trigger
|
|
112
|
+
|
|
113
|
+
```javascript
|
|
114
|
+
initTime() {
|
|
115
|
+
const delay = this.config.trigger.value || 15000; // 15s default
|
|
116
|
+
|
|
117
|
+
const timer = setTimeout(() => this.fire(), delay);
|
|
118
|
+
|
|
119
|
+
// Store for cleanup
|
|
120
|
+
this._timer = timer;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Override cleanup to clear timer
|
|
124
|
+
cleanup() {
|
|
125
|
+
super.cleanup();
|
|
126
|
+
if (this._timer) clearTimeout(this._timer);
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Recommended delays:**
|
|
131
|
+
|
|
132
|
+
| Page Type | Delay | Rationale |
|
|
133
|
+
|-----------|-------|-----------|
|
|
134
|
+
| Homepage | 20-25s | Let user explore first |
|
|
135
|
+
| Landing page | 10-15s | Faster engagement needed |
|
|
136
|
+
| Service page | 15-20s | After reading key info |
|
|
137
|
+
| Blog | 25-30s | Don't interrupt reading |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 🚪 Exit Intent Trigger (Desktop Only)
|
|
142
|
+
|
|
143
|
+
```javascript
|
|
144
|
+
initExitIntent() {
|
|
145
|
+
// Only works on desktop (mouse-based)
|
|
146
|
+
if ('ontouchstart' in window) return;
|
|
147
|
+
|
|
148
|
+
const onMouseLeave = (e) => {
|
|
149
|
+
// Mouse moved above viewport (toward browser chrome)
|
|
150
|
+
if (e.clientY <= 0) {
|
|
151
|
+
this.fire();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
document.addEventListener('mouseleave', onMouseLeave);
|
|
156
|
+
this.listeners.push({ el: document, event: 'mouseleave', fn: onMouseLeave });
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Mobile alternative:** Use `time` or `scroll` trigger instead. Exit intent doesn't exist on touch devices.
|
|
161
|
+
|
|
162
|
+
**Enhancement — debounce:**
|
|
163
|
+
|
|
164
|
+
```javascript
|
|
165
|
+
// Prevent rapid-fire on mouse-near-top
|
|
166
|
+
let exitTimeout;
|
|
167
|
+
const onMouseLeave = (e) => {
|
|
168
|
+
if (e.clientY <= 0) {
|
|
169
|
+
clearTimeout(exitTimeout);
|
|
170
|
+
exitTimeout = setTimeout(() => this.fire(), 300);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 🖱️ Click Trigger
|
|
178
|
+
|
|
179
|
+
```javascript
|
|
180
|
+
initClick() {
|
|
181
|
+
const selector = this.config.trigger.value; // CSS selector
|
|
182
|
+
|
|
183
|
+
const elements = document.querySelectorAll(selector);
|
|
184
|
+
elements.forEach(el => {
|
|
185
|
+
const onClick = (e) => {
|
|
186
|
+
e.preventDefault();
|
|
187
|
+
this.fire();
|
|
188
|
+
};
|
|
189
|
+
el.addEventListener('click', onClick);
|
|
190
|
+
this.listeners.push({ el, event: 'click', fn: onClick });
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Use case:** Manual CTA buttons that open bottom sheets.
|
|
196
|
+
|
|
197
|
+
```html
|
|
198
|
+
<button data-trigger="booking-sheet">📅 Đặt Lịch</button>
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```javascript
|
|
202
|
+
new TriggerManager({
|
|
203
|
+
trigger: { type: 'click', value: '[data-trigger="booking-sheet"]' },
|
|
204
|
+
onTrigger: () => bookingSheet.show()
|
|
205
|
+
});
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 🔄 Return Visitor Trigger
|
|
211
|
+
|
|
212
|
+
```javascript
|
|
213
|
+
initReturnVisitor() {
|
|
214
|
+
const VISIT_KEY = 'eng_visit_count';
|
|
215
|
+
const minVisits = this.config.trigger.value || 2; // minimum visits to trigger
|
|
216
|
+
|
|
217
|
+
try {
|
|
218
|
+
let visits = parseInt(localStorage.getItem(VISIT_KEY) || '0');
|
|
219
|
+
visits++;
|
|
220
|
+
localStorage.setItem(VISIT_KEY, visits.toString());
|
|
221
|
+
|
|
222
|
+
if (visits >= minVisits) {
|
|
223
|
+
// Add time delay so page loads first
|
|
224
|
+
setTimeout(() => this.fire(), this.config.trigger.delay || 3000);
|
|
225
|
+
}
|
|
226
|
+
} catch { /* localStorage blocked */ }
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 🎮 Interaction Trigger
|
|
233
|
+
|
|
234
|
+
```javascript
|
|
235
|
+
initInteraction() {
|
|
236
|
+
const { selector, minCount } = this.config.trigger.value;
|
|
237
|
+
// e.g., { selector: '.checklist input[type=checkbox]', minCount: 3 }
|
|
238
|
+
|
|
239
|
+
const elements = document.querySelectorAll(selector);
|
|
240
|
+
|
|
241
|
+
const checkCount = () => {
|
|
242
|
+
const interacted = document.querySelectorAll(selector + ':checked').length;
|
|
243
|
+
if (interacted >= minCount) {
|
|
244
|
+
this.fire();
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
elements.forEach(el => {
|
|
249
|
+
el.addEventListener('change', checkCount);
|
|
250
|
+
this.listeners.push({ el, event: 'change', fn: checkCount });
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Use case:** After user checks 3+ symptoms → show "Đặt lịch khám" sheet.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 🔀 Dual Trigger (Time + Scroll)
|
|
260
|
+
|
|
261
|
+
Both conditions must be met before firing:
|
|
262
|
+
|
|
263
|
+
```javascript
|
|
264
|
+
initDual() {
|
|
265
|
+
let timeReady = false;
|
|
266
|
+
let scrollReady = false;
|
|
267
|
+
|
|
268
|
+
const tryFire = () => {
|
|
269
|
+
if (timeReady && scrollReady) this.fire();
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
// Time leg
|
|
273
|
+
const delay = this.config.trigger.value?.time || 15000;
|
|
274
|
+
setTimeout(() => { timeReady = true; tryFire(); }, delay);
|
|
275
|
+
|
|
276
|
+
// Scroll leg
|
|
277
|
+
const threshold = this.config.trigger.value?.scroll || 0.25;
|
|
278
|
+
const onScroll = () => {
|
|
279
|
+
const pct = window.scrollY /
|
|
280
|
+
(document.documentElement.scrollHeight - window.innerHeight);
|
|
281
|
+
if (pct >= threshold) {
|
|
282
|
+
scrollReady = true;
|
|
283
|
+
window.removeEventListener('scroll', onScroll);
|
|
284
|
+
tryFire();
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
window.addEventListener('scroll', onScroll, { passive: true });
|
|
288
|
+
this.listeners.push({ el: window, event: 'scroll', fn: onScroll });
|
|
289
|
+
onScroll();
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 💾 Session Management
|
|
296
|
+
|
|
297
|
+
```javascript
|
|
298
|
+
// Check if user dismissed this engagement
|
|
299
|
+
isDismissed() {
|
|
300
|
+
const key = this.config.session?.dismissKey || 'eng_dismissed';
|
|
301
|
+
const storage = this.config.session?.storage === 'localStorage'
|
|
302
|
+
? localStorage : sessionStorage;
|
|
303
|
+
try { return storage.getItem(key) === '1'; }
|
|
304
|
+
catch { return false; }
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Mark as dismissed
|
|
308
|
+
setDismissed() {
|
|
309
|
+
const key = this.config.session?.dismissKey || 'eng_dismissed';
|
|
310
|
+
const storage = this.config.session?.storage === 'localStorage'
|
|
311
|
+
? localStorage : sessionStorage;
|
|
312
|
+
try { storage.setItem(key, '1'); }
|
|
313
|
+
catch { /* noop */ }
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// Respect prefers-reduced-motion
|
|
317
|
+
respectsReducedMotion() {
|
|
318
|
+
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Storage Strategy
|
|
323
|
+
|
|
324
|
+
| Behavior | Storage | Result |
|
|
325
|
+
|----------|---------|--------|
|
|
326
|
+
| Show once per tab session | `sessionStorage` | Resets on browser close |
|
|
327
|
+
| Show once per device forever | `localStorage` | Persistent |
|
|
328
|
+
| Show once per day | `localStorage` + timestamp check | Custom expiry |
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## ❌ Anti-Patterns
|
|
333
|
+
|
|
334
|
+
| ❌ Don't | ✅ Do |
|
|
335
|
+
|----------|------|
|
|
336
|
+
| Trigger popup on page load without delay | Minimum 10s or 20% scroll |
|
|
337
|
+
| Use exit-intent on mobile | Fallback to scroll/time trigger |
|
|
338
|
+
| Trigger on checkout/payment pages | Exclude conversion-critical pages |
|
|
339
|
+
| Trigger multiple sheets at once | Queue or prioritize |
|
|
340
|
+
| Ignore `prefers-reduced-motion` | Skip trigger for such users |
|
|
341
|
+
| Trigger every page visit | Respect session dismiss state |
|
|
342
|
+
| Use `setInterval` for scroll check | Use passive scroll event listener |
|
|
@@ -26,14 +26,28 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
+
### Phase 0.3: Knowledge Infrastructure Setup 🧠
|
|
30
|
+
> **For large codebases, establish the memory foundation before planning.**
|
|
31
|
+
|
|
32
|
+
- **Skills:** `cm-codeintell` + `cm-dockit` + `cm-deep-search` + `cm-notebooklm`
|
|
33
|
+
- **When:** When onboarding to a new codebase or starting a massive refactoring initiative.
|
|
34
|
+
- **Action:**
|
|
35
|
+
1. Scan structure with `cm-codeintell` to build the Skeleton Index.
|
|
36
|
+
2. Generate missing architectural docs with `cm-dockit`.
|
|
37
|
+
3. Index the docs for fast local retrieval with `cm-deep-search` (qmd).
|
|
38
|
+
4. Sync high-value patterns to the Cloud Brain with `cm-notebooklm`.
|
|
39
|
+
- **Output:** A fully indexed 5-tier memory ecosystem ready for precise, low-token AI problem solving.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
29
43
|
### Phase 0.5: Strategic Analysis 🔍
|
|
30
44
|
> **For complex initiatives and enhancements on existing products.**
|
|
31
45
|
|
|
32
|
-
- **
|
|
46
|
+
- **Skills:** `cm-brainstorm-idea` + `cm-codeintell`
|
|
33
47
|
- **When:** When the task is complex and requires multi-dimensional analysis (tech, product, design, business) before planning.
|
|
34
48
|
- **Action:**
|
|
35
|
-
1. Scan codebase
|
|
36
|
-
2.
|
|
49
|
+
1. Scan codebase with **code intelligence** (AST graph + architecture diagram via `cm-codeintell`).
|
|
50
|
+
2. Interview user and analyze with 9 Windows (TRIZ).
|
|
37
51
|
3. Propose 2-3 options, evaluate multi-dimensionally, recommend the best option.
|
|
38
52
|
- **Output:** `brainstorm-output.md` — qualified problem + recommended option → passes to `cm-planning`.
|
|
39
53
|
|
|
@@ -92,6 +106,7 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
92
106
|
| `cm-quality-gate` | 6-gate verification: static analysis → blind review → ship. |
|
|
93
107
|
| `cm-test-gate` | Setup 4-layer test infrastructure (unit → integration → e2e → security). |
|
|
94
108
|
| `cm-code-review` | Manage PR lifecycle: request → receive feedback → complete branch. |
|
|
109
|
+
| `cm-codeintell` | AST knowledge graph + architecture diagrams + smart context (30% fewer tokens). |
|
|
95
110
|
|
|
96
111
|
### ⚙️ Operations
|
|
97
112
|
| Skill | Primary Function |
|
|
@@ -120,7 +135,7 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
120
135
|
|-------|-----------------|
|
|
121
136
|
| `cm-content-factory` | Self-learning content engine: research → generate → audit → deploy. |
|
|
122
137
|
| `cm-ads-tracker` | Conversion tracking setup: GTM, Meta CAPI, TikTok, Google Ads. |
|
|
123
|
-
| `cro-methodology` | CRO audit: funnel mapping → persuasion assets → A/B test design. |
|
|
138
|
+
| `cm-cro-methodology` | CRO audit: funnel mapping → persuasion assets → A/B test design. |
|
|
124
139
|
|
|
125
140
|
### 🎯 Orchestration
|
|
126
141
|
| Skill | Primary Function |
|
|
@@ -131,6 +146,7 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
131
146
|
| `cm-skill-chain` | Compose skills into automated multi-step pipelines (5 built-in chains). |
|
|
132
147
|
| `cm-skill-index` | Progressive disclosure index — 90% token savings on skill discovery. |
|
|
133
148
|
| `cm-deep-search` | Semantic search via qmd for large codebases (>200 src / >50 docs files). |
|
|
149
|
+
| `cm-notebooklm` | Cloud Brain sync — cross-machine knowledge persistence via NotebookLM. |
|
|
134
150
|
| `cm-how-it-work` | Full vibe coding guide — phases, skills per phase, use cases. |
|
|
135
151
|
|
|
136
152
|
### 🖥️ Workflow Commands
|
|
@@ -224,16 +224,6 @@ git remote get-url origin # Must match expected
|
|
|
224
224
|
gh auth status # Must show correct account
|
|
225
225
|
```
|
|
226
226
|
|
|
227
|
-
#### Record Identity Decision (cm-continuity)
|
|
228
|
-
|
|
229
|
-
After locking identity for a new project, write to `.cm/memory/decisions.json`:
|
|
230
|
-
- `decision`: "GitHub identity locked to [account], CF account [id], DB: [provider/project]"
|
|
231
|
-
- `rationale`: "Multi-account safety — prevents wrong-account deploys"
|
|
232
|
-
- `scope`: `global`
|
|
233
|
-
- `status`: `active`
|
|
234
|
-
|
|
235
|
-
Also update `.cm/CONTINUITY.md` Working Context with the locked identity.
|
|
236
|
-
|
|
237
227
|
---
|
|
238
228
|
|
|
239
229
|
## Phase 4: Multi-Account Git Setup (OS Level)
|
|
@@ -401,7 +391,6 @@ npm run deploy
|
|
|
401
391
|
| `cm-safe-deploy` | Gate 0 secret hygiene checks wrangler.jsonc |
|
|
402
392
|
| `cm-test-gate` | Phase 4 secret hygiene in test gate setup |
|
|
403
393
|
| `cm-secret-shield` | Layer 5 token lifecycle extends identity management |
|
|
404
|
-
| `cm-continuity` | Record identity decisions to decisions.json |
|
|
405
394
|
|
|
406
395
|
## The Bottom Line
|
|
407
396
|
|
package/skills/cm-jtbd/SKILL.md
CHANGED
|
@@ -94,5 +94,5 @@ Save JTBD canvas to `docs/jtbd/jtbd-canvas-[date].md`.
|
|
|
94
94
|
|-------|-------------|
|
|
95
95
|
| `cm-brainstorm-idea` | UPSTREAM: JTBD feeds into strategic analysis |
|
|
96
96
|
| `cm-planning` | DOWNSTREAM: Validated jobs inform feature plans |
|
|
97
|
-
| `cro-methodology` | COMPLEMENT: JTBD objections → CRO objection handling |
|
|
97
|
+
| `cm-cro-methodology` | COMPLEMENT: JTBD objections → CRO objection handling |
|
|
98
98
|
| `cm-dockit` | OUTPUT: JTBD canvases are a document type in DocKit |
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cm-notebooklm
|
|
3
|
+
description: |
|
|
4
|
+
CodyMaster NotebookLM — Cloud-based AI brain/soul engine. Stores the most
|
|
5
|
+
valuable knowledge (skills, lessons learned, coding experiences, key decisions)
|
|
6
|
+
into Google NotebookLM for cross-machine sync and AI-powered recall.
|
|
7
|
+
Combines cm-dockit (codebase → docs) + cm-deep-search (local BM25) +
|
|
8
|
+
NotebookLM (cloud AI memory + podcast + flashcards).
|
|
9
|
+
|
|
10
|
+
Offers LOCAL vs CLOUD choice for large codebases. Auto-sync mechanism.
|
|
11
|
+
Selective indexing — only high-value content, not everything.
|
|
12
|
+
|
|
13
|
+
Use when user says: "notebooklm", "notebook lm", "nlm", "nạp kiến thức",
|
|
14
|
+
"knowledge base", "create notebook", "sync skills to notebook", "tạo notebook",
|
|
15
|
+
"knowledge memory", "podcast từ skills", "flashcards từ docs",
|
|
16
|
+
"add to notebooklm", "query notebooklm", "hỏi notebooklm",
|
|
17
|
+
"lưu kinh nghiệm", "bộ nhớ AI", "AI memory", "tạo podcast",
|
|
18
|
+
"codymaster notebook", "skill notebook", "sync knowledge",
|
|
19
|
+
"cloud brain", "soul sync", "cross-machine sync".
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Goal
|
|
23
|
+
|
|
24
|
+
Cloud brain / soul cho AI — lưu trữ kiến thức **giá trị nhất**, đồng bộ qua
|
|
25
|
+
nhiều máy tính. `brain.md` = compiled source of truth, upload 1 lần thay vì 50.
|
|
26
|
+
|
|
27
|
+
# How It Works
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Skills + Lessons + Experiences
|
|
31
|
+
↓ compile
|
|
32
|
+
~/.codymaster/brain.md (local file = backup)
|
|
33
|
+
↓ upload (1 API call)
|
|
34
|
+
NotebookLM (cloud = cross-machine sync)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
All automation via `scripts/brain-sync.sh` — AI chỉ cần gọi script.
|
|
38
|
+
|
|
39
|
+
# Instructions
|
|
40
|
+
|
|
41
|
+
## The Dual-Brain Architecture
|
|
42
|
+
|
|
43
|
+
CodyMaster uses a **Dual-Brain** approach to scale memory across multiple projects without context collapse:
|
|
44
|
+
|
|
45
|
+
1. **Master Brain (`codymaster`)**: Global brain storing Meta-Learnings, proven Architecture Decisions, and universal patterns. Evolved via the "Rule of 3" (knowledge graduation).
|
|
46
|
+
2. **Project Brain (Isolated)**: Optional local brain created per project to hold internal PRDs, APIs, and local code context from `./docs`.
|
|
47
|
+
|
|
48
|
+
| Level | Goal | Query Command |
|
|
49
|
+
|-------|------|---------------|
|
|
50
|
+
| **Master** | Tìm pattern chung | `nlm notebook query codymaster "..."` |
|
|
51
|
+
| **Project** | Tìm context domain | `nlm notebook query $(cat .cm/notebook_id) "..."` |
|
|
52
|
+
|
|
53
|
+
> 🤖 **AI Rule:** Tự đưa quyết định khi hỏi: Hỏi `codymaster` cho các giải pháp mang tính hệ thống chung. Hỏi qua `.cm/notebook_id` cho các business logic đặc thù dự án đang làm.
|
|
54
|
+
|
|
55
|
+
## Master Brain Setup (Global)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 1. Install CLI
|
|
59
|
+
uv tool install notebooklm-mcp-cli
|
|
60
|
+
|
|
61
|
+
# 2. Setup Master Brain
|
|
62
|
+
bash ~/.gemini/antigravity/skills/cm-notebooklm/scripts/brain-sync.sh init
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Project Brain Setup (Local - Optional)
|
|
66
|
+
|
|
67
|
+
Nếu dự án đủ lớn và nhiều doc:
|
|
68
|
+
```bash
|
|
69
|
+
# Tạo Project Brain riêng cho thư mục hiện tại
|
|
70
|
+
bash ~/.gemini/antigravity/skills/cm-notebooklm/scripts/brain-sync.sh init-project
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Daily Usage
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
SCRIPT=~/.gemini/antigravity/skills/cm-notebooklm/scripts/brain-sync.sh
|
|
77
|
+
|
|
78
|
+
# Add a lesson learned
|
|
79
|
+
bash $SCRIPT lesson "Tên bài học"
|
|
80
|
+
# → Edit ~/.codymaster/lessons.md → fill in details
|
|
81
|
+
|
|
82
|
+
# Add coding experience
|
|
83
|
+
bash $SCRIPT experience "Tên pattern"
|
|
84
|
+
# → Edit ~/.codymaster/experiences.md → fill in details
|
|
85
|
+
|
|
86
|
+
# Sync to Master Brain (Thêm rule of 3)
|
|
87
|
+
bash $SCRIPT sync
|
|
88
|
+
|
|
89
|
+
# Sync to Project Brain (Up tài liệu local docs/)
|
|
90
|
+
bash $SCRIPT sync-project
|
|
91
|
+
|
|
92
|
+
# Check status
|
|
93
|
+
bash $SCRIPT status
|
|
94
|
+
|
|
95
|
+
# Query
|
|
96
|
+
nlm notebook query codymaster "your question"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Auto-Sync Triggers
|
|
100
|
+
|
|
101
|
+
AI detect và **hỏi user** (không tự động):
|
|
102
|
+
|
|
103
|
+
| Trigger | Prompt |
|
|
104
|
+
|---------|--------|
|
|
105
|
+
| Skill mới tạo | "Sync skill mới vào brain?" → `bash $SCRIPT sync` |
|
|
106
|
+
| Bug fixed / post-mortem | "Lưu bài học?" → `bash $SCRIPT lesson "..."` |
|
|
107
|
+
| Architecture changed | "Update brain?" → `bash $SCRIPT sync` |
|
|
108
|
+
| User nói "sync/update" | → `bash $SCRIPT sync` |
|
|
109
|
+
|
|
110
|
+
## Cross-Machine (Máy Mới)
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
uv tool install notebooklm-mcp-cli
|
|
114
|
+
nlm login
|
|
115
|
+
nlm notebook list # CodyMaster Brain already there
|
|
116
|
+
nlm alias set codymaster <id>
|
|
117
|
+
# Done! Query ngay: nlm notebook query codymaster "..."
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Content Generation
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
nlm audio create codymaster --format deep_dive --confirm # Podcast
|
|
124
|
+
nlm report create codymaster --format "Study Guide" --confirm
|
|
125
|
+
nlm flashcards create codymaster --difficulty medium --confirm
|
|
126
|
+
nlm studio status codymaster
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
# What Gets Indexed
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
✅ HIGH-VALUE (auto-compiled into brain.md):
|
|
133
|
+
├── Skill Index (names + descriptions — NOT full SKILL.md)
|
|
134
|
+
├── Lessons Learned (~/.codymaster/lessons.md)
|
|
135
|
+
├── Coding Experiences (~/.codymaster/experiences.md)
|
|
136
|
+
└── AGENTS.md (project identity)
|
|
137
|
+
|
|
138
|
+
❌ NOT INDEXED (use qmd/cm-deep-search instead):
|
|
139
|
+
├── Full SKILL.md files (too many, hard to maintain)
|
|
140
|
+
├── Source code, tests, configs
|
|
141
|
+
└── Duplicated content
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
# Memory Architecture
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Session → variables → temporary
|
|
148
|
+
Working → CONTINUITY.md → ~500 words/turn
|
|
149
|
+
Local → qmd → BM25+vector, offline, stable
|
|
150
|
+
Cloud → NotebookLM → AI brain, cross-machine, podcast
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
# Integration
|
|
154
|
+
|
|
155
|
+
| Skill | Role |
|
|
156
|
+
|-------|------|
|
|
157
|
+
| `cm-deep-search` | Local search complement (code) |
|
|
158
|
+
| `cm-dockit` | Generate docs → select high-value → feed to brain |
|
|
159
|
+
| `cm-continuity` | Session memory, brain = long-term |
|
|
160
|
+
| `skill-creator-ultra` | TRIGGER: new skill → prompt sync |
|
|
161
|
+
| `cm-debugging` | TRIGGER: bug fixed → prompt lesson |
|
|
162
|
+
|
|
163
|
+
# Constraints
|
|
164
|
+
|
|
165
|
+
- 🔌 `nlm` CLI = **third-party** (jacob-bd). May break. Fallback: cm-deep-search.
|
|
166
|
+
- 🧠 **Selective only** — quality > quantity. Don't dump everything.
|
|
167
|
+
- 🔐 NO secrets in NotebookLM — cloud service.
|
|
168
|
+
- ❌ NO delete without user confirmation.
|
|
169
|
+
- 🤖 NO `nlm chat start` — use `nlm notebook query` only.
|
|
170
|
+
- 🔄 Auto-sync = **ask first**, never silent upload.
|
|
171
|
+
|
|
172
|
+
<!-- Generated by Skill Creator Ultra v1.0 -->
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# NLM CLI Command Reference (for cm-notebooklm)
|
|
2
|
+
|
|
3
|
+
Essential commands for knowledge ingestion workflows.
|
|
4
|
+
|
|
5
|
+
## Authentication
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
nlm login # Launch Chrome, extract cookies
|
|
9
|
+
nlm login --check # Validate current session
|
|
10
|
+
nlm login --profile work # Named profile for multiple accounts
|
|
11
|
+
nlm auth status # Check if authenticated
|
|
12
|
+
nlm auth list # List all profiles
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Session lifetime: ~20 minutes. Re-authenticate when commands fail.
|
|
16
|
+
|
|
17
|
+
## Notebook Management
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
nlm notebook list # List all notebooks
|
|
21
|
+
nlm notebook list --json # JSON output
|
|
22
|
+
nlm notebook list --quiet # IDs only
|
|
23
|
+
nlm notebook create "Title" # Create → returns ID
|
|
24
|
+
nlm notebook get <id> # Notebook details
|
|
25
|
+
nlm notebook describe <id> # AI-generated summary
|
|
26
|
+
nlm notebook query <id> "question" # One-shot Q&A
|
|
27
|
+
nlm notebook rename <id> "New Title" # Rename
|
|
28
|
+
nlm notebook delete <id> --confirm # ⚠️ PERMANENT
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Source Management
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Add sources
|
|
35
|
+
nlm source add <nb-id> --url "https://..." # Web page
|
|
36
|
+
nlm source add <nb-id> --url "https://youtube.com/..." # YouTube
|
|
37
|
+
nlm source add <nb-id> --text "content" --title "Title" # Pasted text
|
|
38
|
+
nlm source add <nb-id> --drive <doc-id> # Drive doc
|
|
39
|
+
nlm source add <nb-id> --drive <doc-id> --type slides # Explicit type
|
|
40
|
+
|
|
41
|
+
# View sources
|
|
42
|
+
nlm source list <nb-id> # Table of sources
|
|
43
|
+
nlm source list <nb-id> --drive # Drive sources + freshness
|
|
44
|
+
nlm source describe <source-id> # AI summary
|
|
45
|
+
nlm source content <source-id> # Raw text
|
|
46
|
+
|
|
47
|
+
# Sync & delete
|
|
48
|
+
nlm source stale <nb-id> # Outdated Drive sources
|
|
49
|
+
nlm source sync <nb-id> --confirm # Sync all stale
|
|
50
|
+
nlm source delete <source-id> --confirm
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Content Generation
|
|
54
|
+
|
|
55
|
+
All require `--confirm` or `-y`:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
nlm audio create <id> --confirm # Podcast
|
|
59
|
+
nlm audio create <id> --format deep_dive --confirm # Deep dive podcast
|
|
60
|
+
nlm report create <id> --confirm # Briefing doc
|
|
61
|
+
nlm report create <id> --format "Study Guide" --confirm # Study guide
|
|
62
|
+
nlm quiz create <id> --count 10 --difficulty 3 --confirm # Quiz
|
|
63
|
+
nlm flashcards create <id> --difficulty medium --confirm # Flashcards
|
|
64
|
+
nlm mindmap create <id> --confirm # Mind map
|
|
65
|
+
nlm slides create <id> --confirm # Slides
|
|
66
|
+
nlm studio status <id> # Check generation
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Aliases
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
nlm alias set myproject <uuid> # Create alias
|
|
73
|
+
nlm alias get myproject # Resolve to UUID
|
|
74
|
+
nlm alias list # List all aliases
|
|
75
|
+
nlm alias delete myproject # Remove alias
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Research
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
nlm research start "query" --notebook-id <id> # Fast (~30s)
|
|
82
|
+
nlm research start "query" --notebook-id <id> --mode deep # Deep (~5min)
|
|
83
|
+
nlm research status <id> # Check progress
|
|
84
|
+
nlm research import <id> <task-id> # Import sources
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Rate Limits
|
|
88
|
+
|
|
89
|
+
| Operation | Wait time |
|
|
90
|
+
|-----------|-----------|
|
|
91
|
+
| Source add/delete | 2-3 seconds |
|
|
92
|
+
| Content generation | 5 seconds |
|
|
93
|
+
| Research | 2 seconds |
|
|
94
|
+
| Query | 2 seconds |
|