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
package/skills/CLAUDE.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Repository Purpose
|
|
6
|
+
|
|
7
|
+
This is a collection of 41 agent skills for Claude Code and agentskills.io-compatible agents. Skills provide specialized domain knowledge and frameworks for specific use cases (UX design, marketing, product strategy, sales, operations, positioning, virality, code quality, systems architecture, etc.).
|
|
8
|
+
|
|
9
|
+
## Repository Structure
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
skills/
|
|
13
|
+
├── .claude-plugin/
|
|
14
|
+
│ └── marketplace.json # Marketplace configuration for plugin installation
|
|
15
|
+
├── {skill-name}/
|
|
16
|
+
│ ├── SKILL.md # Main skill file with YAML frontmatter + markdown instructions
|
|
17
|
+
│ └── references/ # Supporting reference files (optional)
|
|
18
|
+
│ └── *.md
|
|
19
|
+
├── scripts/ # Utility scripts
|
|
20
|
+
├── CLAUDE.md # This file
|
|
21
|
+
└── README.md # Skill catalog with descriptions and installation instructions
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Current Skills (41)
|
|
25
|
+
|
|
26
|
+
| Category | Skills |
|
|
27
|
+
|----------|--------|
|
|
28
|
+
| **UX/Design** | refactoring-ui, ios-hig-design, ux-heuristics, hooked-ux, improve-retention, web-typography, top-design, design-everyday-things, lean-ux, microinteractions |
|
|
29
|
+
| **Marketing/CRO** | cm-cro-methodology, storybrand-messaging, scorecard-marketing, contagious, one-page-marketing |
|
|
30
|
+
| **Sales/Influence** | influence-psychology, predictable-revenue, made-to-stick, hundred-million-offers |
|
|
31
|
+
| **Product/Innovation** | jobs-to-be-done, lean-startup, design-sprint, inspired-product, continuous-discovery |
|
|
32
|
+
| **Product/Strategy** | mom-test, negotiation |
|
|
33
|
+
| **Strategy/Growth** | crossing-the-chasm, blue-ocean-strategy, traction-eos, obviously-awesome |
|
|
34
|
+
| **Code Quality** | clean-code, refactoring-patterns, software-design-philosophy, pragmatic-programmer, domain-driven-design |
|
|
35
|
+
| **Systems/Architecture** | ddia-systems, system-design, clean-architecture, release-it, high-perf-browser |
|
|
36
|
+
| **Other** | drive-motivation |
|
|
37
|
+
|
|
38
|
+
## Skill File Format
|
|
39
|
+
|
|
40
|
+
Each skill has a `SKILL.md` with this structure:
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
---
|
|
44
|
+
name: skill-name
|
|
45
|
+
description: 'Framework description based on Author''s "Book Title". Use when you need to: (1) first use case, (2) second use case, (3) third use case.'
|
|
46
|
+
license: MIT
|
|
47
|
+
metadata:
|
|
48
|
+
author: wondelai
|
|
49
|
+
version: "1.0.0"
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# Skill Title
|
|
53
|
+
|
|
54
|
+
Intro paragraph about the framework.
|
|
55
|
+
|
|
56
|
+
## Core Principle
|
|
57
|
+
|
|
58
|
+
**Bold opening statement.** Foundation paragraph.
|
|
59
|
+
|
|
60
|
+
## Scoring
|
|
61
|
+
|
|
62
|
+
**Goal: 10/10.** Rate 0-10 based on adherence to the principles below...
|
|
63
|
+
|
|
64
|
+
## Framework Sections
|
|
65
|
+
|
|
66
|
+
### 1. First Section
|
|
67
|
+
|
|
68
|
+
**Core concept:** ...
|
|
69
|
+
**Why it works:** ...
|
|
70
|
+
**Key insights:** (bullet list)
|
|
71
|
+
**Product applications:** (table: Context | Application | Example)
|
|
72
|
+
**Copy patterns:** (bullet list with quoted examples)
|
|
73
|
+
**Ethical boundary:** ...
|
|
74
|
+
See: [references/file.md](references/file.md)
|
|
75
|
+
|
|
76
|
+
## Common Mistakes
|
|
77
|
+
(Table: Mistake | Why It Fails | Fix)
|
|
78
|
+
|
|
79
|
+
## Quick Diagnostic
|
|
80
|
+
(Table: Question | If No | Action)
|
|
81
|
+
|
|
82
|
+
## Reference Files
|
|
83
|
+
(List with descriptions)
|
|
84
|
+
|
|
85
|
+
## Further Reading
|
|
86
|
+
(Amazon links with ?tag=wondelai00-20)
|
|
87
|
+
|
|
88
|
+
## About the Author
|
|
89
|
+
(Author bio)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Required Fields
|
|
93
|
+
- `name`: Unique identifier (lowercase, hyphens for spaces, max 64 chars)
|
|
94
|
+
- `description`: What the skill does and when to use it (max 1024 chars). Use numbered use cases: `(1) ..., (2) ..., (3) ...`
|
|
95
|
+
|
|
96
|
+
### Recommended Fields (for marketplace)
|
|
97
|
+
- `license`: License name (we use MIT)
|
|
98
|
+
- `metadata.author`: Author/organization name (we use `wondelai`)
|
|
99
|
+
- `metadata.version`: Semantic version
|
|
100
|
+
|
|
101
|
+
The YAML frontmatter `description` field is critical for skill discovery - it should include keywords and trigger phrases that help match user requests to the skill. Single quotes in YAML values must be escaped by doubling them (`''`).
|
|
102
|
+
|
|
103
|
+
## Adding New Skills
|
|
104
|
+
|
|
105
|
+
1. Create a new folder: `{skill-name}/`
|
|
106
|
+
2. Create `SKILL.md` with YAML frontmatter (`name`, `description`) and skill instructions
|
|
107
|
+
3. Add `references/` folder with supporting `.md` files (each 1500-3000 words)
|
|
108
|
+
4. Add the skill to `README.md`:
|
|
109
|
+
- Add to "Via skills.sh" installation list
|
|
110
|
+
- Add row to "Available Skills" table
|
|
111
|
+
- Add "Skill Details" section (description, About the author, Use when, Example prompts)
|
|
112
|
+
- Add to "Copyright & Disclaimer" section
|
|
113
|
+
5. Add the skill to `.claude-plugin/marketplace.json` under the appropriate plugin collection
|
|
114
|
+
|
|
115
|
+
## Installation
|
|
116
|
+
|
|
117
|
+
### Via Claude Code Plugin Marketplace
|
|
118
|
+
```bash
|
|
119
|
+
/plugin marketplace add wondelai/skills
|
|
120
|
+
|
|
121
|
+
/plugin install product-strategy@wondelai-skills # Jobs to Be Done, Negotiation, Mom Test
|
|
122
|
+
/plugin install ux-design@wondelai-skills # Refactoring UI, iOS HIG, UX Heuristics, Hooked, Improve Retention, Web Typography, Top Design, Design of Everyday Things, Lean UX, Microinteractions
|
|
123
|
+
/plugin install marketing-cro@wondelai-skills # CRO, StoryBrand, Scorecard Marketing, Contagious, 1-Page Marketing
|
|
124
|
+
/plugin install sales-influence@wondelai-skills # Influence Psychology, Predictable Revenue, Made to Stick, $100M Offers
|
|
125
|
+
/plugin install product-innovation@wondelai-skills # Lean Startup, Design Sprint, Design of Everyday Things, Inspired, Continuous Discovery
|
|
126
|
+
/plugin install strategy-growth@wondelai-skills # Crossing the Chasm, Blue Ocean Strategy, Traction/EOS, Obviously Awesome
|
|
127
|
+
/plugin install team-motivation@wondelai-skills # Drive (Autonomy, Mastery, Purpose)
|
|
128
|
+
/plugin install code-craftsmanship@wondelai-skills # Clean Code, Refactoring Patterns, Software Design Philosophy, Pragmatic Programmer, DDD
|
|
129
|
+
/plugin install systems-architecture@wondelai-skills # DDIA, System Design, Clean Architecture, Release It!, High Performance Browser Networking
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Via skills.sh
|
|
133
|
+
```bash
|
|
134
|
+
npx skills add wondelai/skills # All skills
|
|
135
|
+
npx skills add wondelai/skills/{skill-name} # Individual skill
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Versioning Policy
|
|
139
|
+
|
|
140
|
+
Skills use semantic versioning (`MAJOR.MINOR.PATCH`):
|
|
141
|
+
- **MAJOR**: Breaking changes or complete rewrites
|
|
142
|
+
- **MINOR**: New features, significant enhancements, new sections
|
|
143
|
+
- **PATCH**: Bug fixes, typo corrections, small clarifications
|
|
144
|
+
|
|
145
|
+
**Auto-increment rule:** When modifying a skill's `SKILL.md` or its `references/` files, always bump the version in the frontmatter:
|
|
146
|
+
- Content addition/enhancement → bump MINOR (e.g., `1.0.0` → `1.1.0`)
|
|
147
|
+
- Small fix/typo → bump PATCH (e.g., `1.1.0` → `1.1.1`)
|
|
148
|
+
|
|
149
|
+
Example:
|
|
150
|
+
```yaml
|
|
151
|
+
metadata:
|
|
152
|
+
author: wondelai
|
|
153
|
+
version: "1.1.0"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Commit Policy
|
|
157
|
+
|
|
158
|
+
Commit directly to main.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verify and fix git configuration to ensure all pushes go to omisocial GitHub account
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Git Account Verification
|
|
6
|
+
|
|
7
|
+
Use this skill when: "check git", "verify git", "git account", "fix remote", "push fails", or before any deploy/push operation.
|
|
8
|
+
|
|
9
|
+
## Expected Configuration
|
|
10
|
+
|
|
11
|
+
| Setting | Expected Value |
|
|
12
|
+
|---------|---------------|
|
|
13
|
+
| `gh auth status` | `omisocial` |
|
|
14
|
+
| `git remote origin` | `https://github.com/omisocial/boxme_levelling.git` |
|
|
15
|
+
| `git config user.name` | `omisocial` |
|
|
16
|
+
| `git config user.email` | `omisocial@users.noreply.github.com` |
|
|
17
|
+
|
|
18
|
+
## Quick Check
|
|
19
|
+
|
|
20
|
+
Run this one-liner to verify everything:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
echo "=== GitHub CLI ===" && gh auth status 2>&1 | head -3 && echo "=== Git Remote ===" && git remote get-url origin && echo "=== Git User ===" && git config user.name && git config user.email
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Fix if Wrong
|
|
27
|
+
|
|
28
|
+
### GitHub CLI (gh) logged into wrong account
|
|
29
|
+
```bash
|
|
30
|
+
gh auth logout
|
|
31
|
+
gh auth login
|
|
32
|
+
# Select: Login with web browser → omisocial
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Git remote pointing to wrong repo
|
|
36
|
+
```bash
|
|
37
|
+
git remote set-url origin https://github.com/omisocial/boxme_levelling.git
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Git user config wrong
|
|
41
|
+
```bash
|
|
42
|
+
git config user.name "omisocial"
|
|
43
|
+
git config user.email "omisocial@users.noreply.github.com"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Project Root
|
|
47
|
+
```
|
|
48
|
+
/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Account History
|
|
52
|
+
|
|
53
|
+
| Account | Purpose | Status |
|
|
54
|
+
|---------|---------|--------|
|
|
55
|
+
| `omisocial` | Current active GitHub account | ✅ Active |
|
|
56
|
+
| `boxmevibe` | Previous GitHub account | ⚠️ Archived as `old-boxmevibe` remote |
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start all Boxme Scoring System local development modules (PRMS, Seller SOS, Docs Site)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Boxme Local Dev — Start All Modules
|
|
6
|
+
|
|
7
|
+
Use this skill when the user says any of: "start local", "run local", "dev local", "start dev", or asks to run the Boxme project locally.
|
|
8
|
+
|
|
9
|
+
## Project Root
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Modules
|
|
16
|
+
|
|
17
|
+
| Module | Directory | Command | URL |
|
|
18
|
+
|--------|-----------|---------|-----|
|
|
19
|
+
| **PRMS** (Performance Review) | project root | `npm run dev` | http://localhost:5173 |
|
|
20
|
+
| **Seller SOS** | `seller-sos/` | `npm run dev` | http://localhost:5174 |
|
|
21
|
+
| **Docs Site** (Docusaurus) | `docs-site/` | `npm start` | http://localhost:3000 |
|
|
22
|
+
|
|
23
|
+
## Instructions
|
|
24
|
+
|
|
25
|
+
### Step 1 – Start PRMS
|
|
26
|
+
|
|
27
|
+
Open terminal and run:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cd "/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main"
|
|
31
|
+
npm run dev
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Step 2 – Start Seller SOS
|
|
35
|
+
|
|
36
|
+
Open a **new terminal** and run:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cd "/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main/seller-sos"
|
|
40
|
+
npm run dev
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Step 3 – Start Docs Site
|
|
44
|
+
|
|
45
|
+
Open another **new terminal** and run:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cd "/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main/docs-site"
|
|
49
|
+
npm start
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Notes
|
|
53
|
+
|
|
54
|
+
- PRMS uses **Vite + Hono** (Cloudflare Workers backend), served via `@hono/vite-dev-server`
|
|
55
|
+
- Seller SOS also uses **Vite + Hono**, port 5174
|
|
56
|
+
- Docs Site is **Docusaurus 3.x**, starts on port 3000
|
|
57
|
+
- All modules use their own `node_modules` — run `npm install` in each directory if fresh clone
|
|
58
|
+
- If a port is busy, kill it: `lsof -ti:5173 | xargs kill -9`
|
|
59
|
+
|
|
60
|
+
## Ports Quick Reference
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
http://localhost:5173 → PRMS
|
|
64
|
+
http://localhost:5174 → Seller SOS
|
|
65
|
+
http://localhost:3000 → Docs Site
|
|
66
|
+
```
|
package/skills/build.sh
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Build script: combines landing page + docs site into one dist/
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
echo "🏗️ Building Content Factory..."
|
|
6
|
+
|
|
7
|
+
# 1. Create clean dist
|
|
8
|
+
rm -rf dist
|
|
9
|
+
mkdir -p dist/docs
|
|
10
|
+
|
|
11
|
+
# 2. Copy landing page to root
|
|
12
|
+
echo "📄 Copying landing page..."
|
|
13
|
+
cp landing/index.html dist/
|
|
14
|
+
cp landing/style.css dist/
|
|
15
|
+
cp landing/script.js dist/
|
|
16
|
+
cp landing/translations.js dist/
|
|
17
|
+
|
|
18
|
+
# 3. Build docs site
|
|
19
|
+
echo "📚 Building docs site..."
|
|
20
|
+
cd docs-site
|
|
21
|
+
npx astro build
|
|
22
|
+
cd ..
|
|
23
|
+
|
|
24
|
+
# 4. Copy docs build to dist/docs/
|
|
25
|
+
echo "📦 Copying docs to dist/docs/..."
|
|
26
|
+
cp -r docs-site/dist/* dist/docs/
|
|
27
|
+
|
|
28
|
+
echo "✅ Build complete! Output → dist/"
|
|
29
|
+
echo " Landing: dist/index.html"
|
|
30
|
+
echo " Docs: dist/docs/index.html"
|
package/skills/cf
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
cf — Content Factory CLI v2.0
|
|
4
|
+
|
|
5
|
+
Unified command-line interface for the Content Factory platform.
|
|
6
|
+
Run from any project directory that has a content-factory.config.json.
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
cf run # Full pipeline
|
|
10
|
+
cf run --dashboard # Full pipeline + live dashboard
|
|
11
|
+
cf run --budget 5.0 # With cost limit
|
|
12
|
+
cf dashboard # Open dashboard only
|
|
13
|
+
cf status # Pipeline status
|
|
14
|
+
cf tokens # Token usage summary
|
|
15
|
+
cf queue # Task queue summary
|
|
16
|
+
cf landing # Generate landing pages
|
|
17
|
+
cf landing --list # List personas
|
|
18
|
+
cf init # Interactive project setup (wizard)
|
|
19
|
+
cf reset # Reset state + tokens
|
|
20
|
+
cf test # Run all tests
|
|
21
|
+
cf help # Show this help
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
import os
|
|
25
|
+
import sys
|
|
26
|
+
import subprocess
|
|
27
|
+
from pathlib import Path
|
|
28
|
+
|
|
29
|
+
# Resolve skill directory (where scripts live)
|
|
30
|
+
SKILL_DIR = Path(__file__).resolve().parent
|
|
31
|
+
SCRIPTS_DIR = SKILL_DIR / "scripts"
|
|
32
|
+
|
|
33
|
+
# Add scripts to path for imports
|
|
34
|
+
sys.path.insert(0, str(SCRIPTS_DIR))
|
|
35
|
+
|
|
36
|
+
# Colors
|
|
37
|
+
C_CYAN = "\033[36m"
|
|
38
|
+
C_GREEN = "\033[32m"
|
|
39
|
+
C_YELLOW = "\033[33m"
|
|
40
|
+
C_RED = "\033[31m"
|
|
41
|
+
C_DIM = "\033[2m"
|
|
42
|
+
C_BOLD = "\033[1m"
|
|
43
|
+
C_RESET = "\033[0m"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def logo():
|
|
47
|
+
print(f"""
|
|
48
|
+
{C_CYAN}{C_BOLD} ╭─────────────────────────────╮
|
|
49
|
+
│ 🏭 Content Factory v2.0 │
|
|
50
|
+
│ AI Content Machine Platform│
|
|
51
|
+
╰─────────────────────────────╯{C_RESET}
|
|
52
|
+
""")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def help_text():
|
|
56
|
+
logo()
|
|
57
|
+
print(f"""{C_BOLD}COMMANDS{C_RESET}
|
|
58
|
+
{C_CYAN}cf run{C_RESET} Full pipeline
|
|
59
|
+
{C_CYAN}cf run --dashboard{C_RESET} Pipeline + live dashboard
|
|
60
|
+
{C_CYAN}cf run --budget 5.0{C_RESET} Pipeline with cost limit
|
|
61
|
+
{C_CYAN}cf run --phase write{C_RESET} Run single phase
|
|
62
|
+
{C_CYAN}cf run --from-phase audit{C_RESET} Start from phase
|
|
63
|
+
{C_CYAN}cf run --batch 20{C_RESET} Custom batch size
|
|
64
|
+
{C_CYAN}cf run --dry-run{C_RESET} Preview without executing
|
|
65
|
+
|
|
66
|
+
{C_GREEN}cf dashboard{C_RESET} Open dashboard (localhost:5050)
|
|
67
|
+
{C_GREEN}cf dashboard --port 8080{C_RESET} Custom port
|
|
68
|
+
|
|
69
|
+
{C_YELLOW}cf status{C_RESET} Pipeline status
|
|
70
|
+
{C_YELLOW}cf tokens{C_RESET} Token usage & cost
|
|
71
|
+
{C_YELLOW}cf queue{C_RESET} Task queue summary
|
|
72
|
+
|
|
73
|
+
{C_CYAN}cf landing{C_RESET} Generate landing pages
|
|
74
|
+
{C_CYAN}cf landing --list{C_RESET} List available personas
|
|
75
|
+
{C_CYAN}cf landing --persona slug{C_RESET} Generate for specific persona
|
|
76
|
+
{C_CYAN}cf landing --lang en,vi,zh{C_RESET} Multi-language pages
|
|
77
|
+
|
|
78
|
+
{C_GREEN}cf init{C_RESET} Interactive project setup
|
|
79
|
+
{C_RED}cf reset{C_RESET} Reset state, tokens, queue
|
|
80
|
+
|
|
81
|
+
{C_DIM}cf test{C_RESET} Run test suite
|
|
82
|
+
{C_DIM}cf help{C_RESET} Show this help
|
|
83
|
+
|
|
84
|
+
{C_BOLD}PHASES{C_RESET}
|
|
85
|
+
extract → plan → write → audit → seo → publish
|
|
86
|
+
|
|
87
|
+
{C_BOLD}EXAMPLES{C_RESET}
|
|
88
|
+
{C_DIM}# Start new project{C_RESET}
|
|
89
|
+
cf init
|
|
90
|
+
|
|
91
|
+
{C_DIM}# Run pipeline with dashboard + $5 budget{C_RESET}
|
|
92
|
+
cf run --dashboard --budget 5.0
|
|
93
|
+
|
|
94
|
+
{C_DIM}# Write 20 articles{C_RESET}
|
|
95
|
+
cf run --phase write --batch 20
|
|
96
|
+
|
|
97
|
+
{C_DIM}# Check how much you've spent{C_RESET}
|
|
98
|
+
cf tokens
|
|
99
|
+
""")
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def run_script(script_name: str, args: list = None):
|
|
103
|
+
"""Run a script from the scripts directory."""
|
|
104
|
+
script = SCRIPTS_DIR / script_name
|
|
105
|
+
if not script.exists():
|
|
106
|
+
print(f"{C_RED}❌ Script not found: {script}{C_RESET}")
|
|
107
|
+
sys.exit(1)
|
|
108
|
+
cmd = [sys.executable, str(script)] + (args or [])
|
|
109
|
+
try:
|
|
110
|
+
result = subprocess.run(cmd, cwd=os.getcwd())
|
|
111
|
+
return result.returncode
|
|
112
|
+
except KeyboardInterrupt:
|
|
113
|
+
print(f"\n{C_YELLOW}⏹ Stopped{C_RESET}")
|
|
114
|
+
return 1
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def cmd_run(args):
|
|
118
|
+
"""Run the pipeline with optional flags."""
|
|
119
|
+
run_script("pipeline.py", args)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def cmd_dashboard(args):
|
|
123
|
+
"""Start the dashboard server."""
|
|
124
|
+
logo()
|
|
125
|
+
run_script("dashboard_server.py", args)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def cmd_status(args):
|
|
129
|
+
"""Show pipeline status."""
|
|
130
|
+
from state_manager import StateManager
|
|
131
|
+
sm = StateManager(os.getcwd())
|
|
132
|
+
snap = sm.get_snapshot()
|
|
133
|
+
|
|
134
|
+
logo()
|
|
135
|
+
status = snap.get("status", "idle")
|
|
136
|
+
status_colors = {"idle": C_DIM, "running": C_CYAN, "completed": C_GREEN, "error": C_RED}
|
|
137
|
+
color = status_colors.get(status, C_RESET)
|
|
138
|
+
print(f" Status: {color}{C_BOLD}{status.upper()}{C_RESET}")
|
|
139
|
+
|
|
140
|
+
# Pipeline phases
|
|
141
|
+
phases = snap.get("pipeline", {}).get("phases", {})
|
|
142
|
+
if phases:
|
|
143
|
+
print(f"\n {C_BOLD}Pipeline:{C_RESET}")
|
|
144
|
+
for name, data in phases.items():
|
|
145
|
+
s = data.get("status", "pending")
|
|
146
|
+
pct = int(data.get("progress", 0) * 100)
|
|
147
|
+
icons = {"pending": "⬜", "running": "🔵", "done": "✅", "failed": "❌"}
|
|
148
|
+
icon = icons.get(s, "⬜")
|
|
149
|
+
bar_len = 15
|
|
150
|
+
filled = int(bar_len * pct / 100)
|
|
151
|
+
bar = "█" * filled + "░" * (bar_len - filled)
|
|
152
|
+
print(f" {icon} {name:<8} [{bar}] {pct}%")
|
|
153
|
+
|
|
154
|
+
# Stats
|
|
155
|
+
stats = snap.get("stats", {})
|
|
156
|
+
if stats.get("articles_total"):
|
|
157
|
+
print(f"\n Articles: {stats.get('articles_written', 0)}/{stats['articles_total']}")
|
|
158
|
+
|
|
159
|
+
# Tokens
|
|
160
|
+
tokens = snap.get("tokens", {})
|
|
161
|
+
if tokens.get("total_cost_usd"):
|
|
162
|
+
print(f" Cost: ${tokens['total_cost_usd']:.4f}")
|
|
163
|
+
|
|
164
|
+
# Errors
|
|
165
|
+
errors = snap.get("errors", [])
|
|
166
|
+
if errors:
|
|
167
|
+
print(f"\n {C_RED}Errors ({len(errors)}):{C_RESET}")
|
|
168
|
+
for err in errors[-3:]:
|
|
169
|
+
print(f" ❌ [{err.get('source', '?')}] {err.get('message', '')}")
|
|
170
|
+
print()
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def cmd_tokens(args):
|
|
174
|
+
"""Show token usage."""
|
|
175
|
+
from token_manager import TokenManager
|
|
176
|
+
tm = TokenManager(os.getcwd())
|
|
177
|
+
s = tm.get_summary()
|
|
178
|
+
|
|
179
|
+
logo()
|
|
180
|
+
print(f" {C_BOLD}Token Usage{C_RESET}")
|
|
181
|
+
print(f" Input: {s['total_input_tokens']:>12,} tokens")
|
|
182
|
+
print(f" Output: {s['total_output_tokens']:>12,} tokens")
|
|
183
|
+
print(f" Cost: {C_CYAN}${s['total_cost_usd']:.4f}{C_RESET}")
|
|
184
|
+
print(f" Requests: {s['total_requests']}")
|
|
185
|
+
|
|
186
|
+
b = s["budget"]
|
|
187
|
+
if b["limit_usd"]:
|
|
188
|
+
pct = b["percentage_used"]
|
|
189
|
+
bar_len = 25
|
|
190
|
+
filled = int(bar_len * pct / 100)
|
|
191
|
+
bar = "█" * filled + "░" * (bar_len - filled)
|
|
192
|
+
color = C_GREEN if pct < 60 else C_YELLOW if pct < 85 else C_RED
|
|
193
|
+
print(f"\n Budget: [{color}{bar}{C_RESET}] {pct}%")
|
|
194
|
+
print(f" ${b['spent_usd']:.4f} / ${b['limit_usd']:.2f}")
|
|
195
|
+
|
|
196
|
+
if s["providers"]:
|
|
197
|
+
print(f"\n {C_BOLD}Per Provider:{C_RESET}")
|
|
198
|
+
for name, data in s["providers"].items():
|
|
199
|
+
fail_str = f" ({C_RED}{data['failures']} fail{C_RESET})" if data.get("failures") else ""
|
|
200
|
+
print(f" {name:<20} {data['requests']:>4} req ${data['cost_usd']:.4f}{fail_str}")
|
|
201
|
+
print()
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def cmd_queue(args):
|
|
205
|
+
"""Show task queue."""
|
|
206
|
+
from agent_dispatcher import AgentDispatcher
|
|
207
|
+
d = AgentDispatcher(os.getcwd())
|
|
208
|
+
q = d.get_queue()
|
|
209
|
+
|
|
210
|
+
logo()
|
|
211
|
+
print(f" {C_BOLD}Task Queue{C_RESET}")
|
|
212
|
+
print(f" Total: {q['total']}")
|
|
213
|
+
print(f" Queued: {C_DIM}{q['queued']}{C_RESET}")
|
|
214
|
+
print(f" Running: {C_CYAN}{q['claimed']}{C_RESET}")
|
|
215
|
+
print(f" Done: {C_GREEN}{q['done']}{C_RESET}")
|
|
216
|
+
print(f" Failed: {C_RED}{q['failed']}{C_RESET}")
|
|
217
|
+
|
|
218
|
+
if q["agents"]:
|
|
219
|
+
print(f"\n {C_BOLD}Active Agents:{C_RESET}")
|
|
220
|
+
for aid, info in q["agents"].items():
|
|
221
|
+
task = info.get("current_task") or "idle"
|
|
222
|
+
print(f" 🤖 {aid}: {task}")
|
|
223
|
+
|
|
224
|
+
# Show recent tasks
|
|
225
|
+
recent = [t for t in q["tasks"] if t["status"] in ("claimed", "queued")]
|
|
226
|
+
if recent:
|
|
227
|
+
print(f"\n {C_BOLD}Next Up:{C_RESET}")
|
|
228
|
+
for t in recent[:5]:
|
|
229
|
+
icons = {"queued": "⬜", "claimed": "🔵"}
|
|
230
|
+
topic = t.get("meta", {}).get("topic", "")
|
|
231
|
+
label = f"{t['id']}" + (f" — {topic}" if topic else "")
|
|
232
|
+
print(f" {icons.get(t['status'], '⬜')} {label}")
|
|
233
|
+
print()
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def cmd_landing(args):
|
|
237
|
+
"""Generate landing pages."""
|
|
238
|
+
config_path = find_config()
|
|
239
|
+
run_script("landing_generator.py", ["--config", str(config_path)] + args)
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def cmd_init(args):
|
|
243
|
+
"""Interactive project setup."""
|
|
244
|
+
run_script("wizard.py", args)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def cmd_reset(args):
|
|
248
|
+
"""Reset state, tokens, and queue."""
|
|
249
|
+
from state_manager import StateManager
|
|
250
|
+
from token_manager import TokenManager
|
|
251
|
+
from agent_dispatcher import AgentDispatcher
|
|
252
|
+
|
|
253
|
+
sm = StateManager(os.getcwd())
|
|
254
|
+
tm = TokenManager(os.getcwd())
|
|
255
|
+
d = AgentDispatcher(os.getcwd())
|
|
256
|
+
|
|
257
|
+
sm.reset()
|
|
258
|
+
tm.reset()
|
|
259
|
+
d.reset()
|
|
260
|
+
print(f"{C_GREEN}✅ State, tokens, and queue reset{C_RESET}")
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
def cmd_test(args):
|
|
264
|
+
"""Run tests."""
|
|
265
|
+
test_dir = SKILL_DIR / "tests"
|
|
266
|
+
subprocess.run([sys.executable, "-m", "pytest", str(test_dir), "-v"] + args)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
def find_config() -> Path:
|
|
270
|
+
"""Find config file in current directory."""
|
|
271
|
+
cwd = Path(os.getcwd())
|
|
272
|
+
for name in ["content-factory.config.json", "cf.config.json"]:
|
|
273
|
+
p = cwd / name
|
|
274
|
+
if p.exists():
|
|
275
|
+
return p
|
|
276
|
+
# Fallback: any .config.json
|
|
277
|
+
configs = list(cwd.glob("*.config.json"))
|
|
278
|
+
if configs:
|
|
279
|
+
return configs[0]
|
|
280
|
+
print(f"{C_YELLOW}⚠️ No config found. Run 'cf init' first.{C_RESET}")
|
|
281
|
+
sys.exit(1)
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def main():
|
|
285
|
+
if len(sys.argv) < 2 or sys.argv[1] in ("help", "--help", "-h"):
|
|
286
|
+
help_text()
|
|
287
|
+
return
|
|
288
|
+
|
|
289
|
+
cmd = sys.argv[1]
|
|
290
|
+
args = sys.argv[2:]
|
|
291
|
+
|
|
292
|
+
commands = {
|
|
293
|
+
"run": cmd_run,
|
|
294
|
+
"dashboard": cmd_dashboard,
|
|
295
|
+
"status": cmd_status,
|
|
296
|
+
"tokens": cmd_tokens,
|
|
297
|
+
"queue": cmd_queue,
|
|
298
|
+
"landing": cmd_landing,
|
|
299
|
+
"init": cmd_init,
|
|
300
|
+
"reset": cmd_reset,
|
|
301
|
+
"test": cmd_test,
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
handler = commands.get(cmd)
|
|
305
|
+
if handler:
|
|
306
|
+
handler(args)
|
|
307
|
+
else:
|
|
308
|
+
print(f"{C_RED}❌ Unknown command: {cmd}{C_RESET}")
|
|
309
|
+
print(f" Run {C_CYAN}cf help{C_RESET} to see available commands.")
|
|
310
|
+
sys.exit(1)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
if __name__ == "__main__":
|
|
314
|
+
main()
|