codymaster 4.1.4 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -2
- package/README.md +54 -84
- package/dist/index.js +118 -4
- package/install.sh +2 -2
- package/package.json +3 -8
- package/skills/AGENTS.md +61 -0
- package/skills/CLAUDE.md +158 -0
- package/skills/boxme-git-config/SKILL.md +56 -0
- package/skills/boxme-local-dev/SKILL.md +66 -0
- package/skills/build.sh +30 -0
- package/skills/cf +314 -0
- package/skills/cf 2 +313 -0
- package/skills/cm-ads-tracker/SKILL.md +364 -69
- package/skills/cm-auto-publisher/SKILL.md +81 -0
- package/skills/cm-booking-calendar/SKILL.md +521 -0
- package/skills/cm-booking-calendar/references/industry-patterns.md +527 -0
- package/skills/cm-booking-calendar/templates/booking-form.css +626 -0
- package/skills/cm-booking-calendar/templates/booking-form.html +477 -0
- package/skills/cm-booking-calendar/templates/calendar-engine.js +419 -0
- package/skills/cm-booking-calendar/templates/calendar-export.js +395 -0
- package/skills/cm-booking-calendar/templates/reminder-config.js +629 -0
- package/skills/cm-brainstorm-idea/SKILL.md +15 -24
- package/skills/cm-clean-code/SKILL.md +300 -0
- package/skills/cm-code-review/SKILL.md +0 -27
- package/skills/cm-codeintell/SKILL.md +598 -0
- package/skills/cm-content-factory/.content-factory-state.json +132 -0
- package/skills/cm-content-factory/.git 2/logs/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/cm-content-factory/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/cm-content-factory/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/cm-content-factory/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/cm-content-factory/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/cm-content-factory/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/cm-content-factory/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/cm-content-factory/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/cm-content-factory/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/cm-content-factory/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/cm-content-factory/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/cm-content-factory/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/cm-content-factory/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/cm-content-factory/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/cm-content-factory/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/cm-content-factory/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/cm-content-factory/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/cm-content-factory/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/cm-content-factory/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/cm-content-factory/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/cm-content-factory/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/cm-content-factory/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/cm-content-factory/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/cm-content-factory/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/cm-content-factory/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/cm-content-factory/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/cm-content-factory/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/cm-content-factory/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/cm-content-factory/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/cm-content-factory/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/cm-content-factory/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/cm-content-factory/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/cm-content-factory/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/cm-content-factory/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/cm-content-factory/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/cm-content-factory/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/cm-content-factory/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/cm-content-factory/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/cm-content-factory/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/cm-content-factory/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/cm-content-factory/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/cm-content-factory/.git 2/refs/heads/main +1 -0
- package/skills/cm-content-factory/.git 2/refs/remotes/origin/main +1 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/cm-content-factory/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/cm-content-factory/AGENTS.md +61 -0
- package/skills/cm-content-factory/CLAUDE.md +63 -0
- package/skills/cm-content-factory/CURSOR.md +43 -0
- package/skills/cm-content-factory/Content Factory.zip +0 -0
- package/skills/cm-content-factory/cf +313 -0
- package/skills/cm-content-factory/config.schema.json +397 -0
- package/skills/cm-content-factory/dashboard/app.js +556 -0
- package/skills/cm-content-factory/dashboard/index.html +397 -0
- package/skills/cm-content-factory/dashboard/style.css +1211 -0
- package/skills/cm-content-factory/examples/01-real-estate.config.json +146 -0
- package/skills/cm-content-factory/examples/02-personal-finance.config.json +146 -0
- package/skills/cm-content-factory/examples/03-health-wellness.config.json +147 -0
- package/skills/cm-content-factory/examples/04-saas-software.config.json +147 -0
- package/skills/cm-content-factory/examples/05-legal-services.config.json +147 -0
- package/skills/cm-content-factory/examples/06-insurance.config.json +146 -0
- package/skills/cm-content-factory/examples/07-ecommerce-dropship.config.json +146 -0
- package/skills/cm-content-factory/examples/08-online-education.config.json +147 -0
- package/skills/cm-content-factory/examples/09-crypto-defi.config.json +147 -0
- package/skills/cm-content-factory/examples/10-beauty-skincare.config.json +147 -0
- package/skills/cm-content-factory/examples/11-home-services.config.json +146 -0
- package/skills/cm-content-factory/examples/12-dental-clinic.config.json +147 -0
- package/skills/cm-content-factory/examples/13-pet-care.config.json +147 -0
- package/skills/cm-content-factory/examples/14-travel-hospitality.config.json +147 -0
- package/skills/cm-content-factory/examples/15-ai-automation.config.json +147 -0
- package/skills/cm-content-factory/examples/16-wedding-events.config.json +147 -0
- package/skills/cm-content-factory/examples/17-fitness-coaching.config.json +148 -0
- package/skills/cm-content-factory/examples/18-cybersecurity.config.json +147 -0
- package/skills/cm-content-factory/examples/19-food-restaurant.config.json +148 -0
- package/skills/cm-content-factory/examples/20-solar-energy.config.json +147 -0
- package/skills/cm-content-factory/examples/fitness-blog.config.json +116 -0
- package/skills/cm-content-factory/examples/tech-blog.config.json +107 -0
- package/skills/cm-content-factory/extensions/EXTENSION_GUIDE.md +72 -0
- package/skills/cm-content-factory/extensions/hooks.py +126 -0
- package/skills/cm-content-factory/extensions/openclaw_adapter.py +132 -0
- package/skills/cm-content-factory/landing/index.html +680 -0
- package/skills/cm-content-factory/landing/script.js +101 -0
- package/skills/cm-content-factory/landing/style.css +1216 -0
- package/skills/cm-content-factory/landing/translations.js +508 -0
- package/skills/cm-content-factory/logs/events.jsonl +11 -0
- package/skills/cm-content-factory/profiles/_template.profile.json +231 -0
- package/skills/cm-content-factory/profiles/finance.profile.json +278 -0
- package/skills/cm-content-factory/profiles/legal.profile.json +263 -0
- package/skills/cm-content-factory/profiles/medical-research.profile.json +321 -0
- package/skills/cm-content-factory/profiles/technology.profile.json +275 -0
- package/skills/cm-content-factory/scripts/agent_dispatcher.py +266 -0
- package/skills/cm-content-factory/scripts/audit.py +106 -0
- package/skills/cm-content-factory/scripts/dashboard_server.py +225 -0
- package/skills/cm-content-factory/scripts/deploy.py +146 -0
- package/skills/cm-content-factory/scripts/extract.py +132 -0
- package/skills/cm-content-factory/scripts/landing_generator.py +459 -0
- package/skills/cm-content-factory/scripts/memory.py +521 -0
- package/skills/cm-content-factory/scripts/monetize.py +239 -0
- package/skills/cm-content-factory/scripts/pipeline.py +357 -0
- package/skills/cm-content-factory/scripts/plan.py +163 -0
- package/skills/cm-content-factory/scripts/publish.py +145 -0
- package/skills/cm-content-factory/scripts/research.py +337 -0
- package/skills/cm-content-factory/scripts/scaffold.py +464 -0
- package/skills/cm-content-factory/scripts/scoreboard.py +336 -0
- package/skills/cm-content-factory/scripts/seo.py +90 -0
- package/skills/cm-content-factory/scripts/state_manager.py +320 -0
- package/skills/cm-content-factory/scripts/token_manager.py +268 -0
- package/skills/cm-content-factory/scripts/validate.py +221 -0
- package/skills/cm-content-factory/scripts/wizard.py +329 -0
- package/skills/cm-content-factory/scripts/write.py +93 -0
- package/skills/cm-content-factory/sites/docs-site/src/assets/houston.webp +0 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/architecture.md +90 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/data-flow.md +54 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/deployment.md +38 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/index.md +65 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/lc-content-lifecycle.md +48 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/seq-write-mode.md +39 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/uj-first-batch.md +42 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-content-pipeline.md +51 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/flows/wf-learning-cycle.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/configuration.md +86 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/installation.md +80 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/getting-started/intro.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/index.md +102 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/index.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/optimize-seo.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/scale-content-production.md +55 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/jtbd/standardize-quality.md +29 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-cmo-huong.md +41 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/buyer-content-lead-khoa.md +40 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/index.md +56 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-content-manager-lan.md +46 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-seo-minh.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/personas/user-writer-tu.md +45 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/content-pipeline.md +108 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/index.md +22 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/memory-system.md +52 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/seo-optimization.md +58 -0
- package/skills/cm-content-factory/sites/docs-site/src/content/docs/sop/troubleshooting-guide.md +92 -0
- package/skills/cm-content-factory/sites/docs-site/src/styles/custom.css +575 -0
- package/skills/cm-content-factory/tests/conftest.py +66 -0
- package/skills/cm-content-factory/tests/test_agent_dispatcher.py +125 -0
- package/skills/cm-content-factory/tests/test_memory.py +128 -0
- package/skills/cm-content-factory/tests/test_pipeline.py +107 -0
- package/skills/cm-content-factory/tests/test_research.py +56 -0
- package/skills/cm-content-factory/tests/test_state_manager.py +131 -0
- package/skills/cm-content-factory/tests/test_token_manager.py +110 -0
- package/skills/cm-content-factory/tests/test_wizard.py +121 -0
- package/skills/cm-continuity/SKILL.md +7 -0
- package/skills/cm-cro-methodology/SKILL.md +290 -0
- package/skills/cm-dashboard/SKILL.md +7 -525
- package/skills/cm-debugging/SKILL.md +7 -116
- package/skills/cm-deep-search/SKILL.md +5 -1
- package/skills/cm-dockit/README.md +6 -15
- package/skills/cm-dockit/SKILL.md +20 -37
- package/skills/cm-execution/SKILL.md +6 -1
- package/skills/cm-frappe-agent/SKILL.md +134 -0
- package/skills/cm-frappe-agent/agents/doctype-architect.md +596 -0
- package/skills/cm-frappe-agent/agents/erpnext-customizer.md +643 -0
- package/skills/cm-frappe-agent/agents/frappe-backend.md +814 -0
- package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +557 -0
- package/skills/cm-frappe-agent/agents/frappe-debugger.md +625 -0
- package/skills/cm-frappe-agent/agents/frappe-fixer.md +275 -0
- package/skills/cm-frappe-agent/agents/frappe-frontend.md +660 -0
- package/skills/cm-frappe-agent/agents/frappe-installer.md +158 -0
- package/skills/cm-frappe-agent/agents/frappe-performance.md +307 -0
- package/skills/cm-frappe-agent/agents/frappe-planner.md +419 -0
- package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +153 -0
- package/skills/cm-frappe-agent/agents/github-workflow.md +286 -0
- package/skills/cm-frappe-agent/commands/frappe-app.md +351 -0
- package/skills/cm-frappe-agent/commands/frappe-backend.md +162 -0
- package/skills/cm-frappe-agent/commands/frappe-bench.md +254 -0
- package/skills/cm-frappe-agent/commands/frappe-debug.md +263 -0
- package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +272 -0
- package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +310 -0
- package/skills/cm-frappe-agent/commands/frappe-erpnext.md +210 -0
- package/skills/cm-frappe-agent/commands/frappe-fix.md +59 -0
- package/skills/cm-frappe-agent/commands/frappe-frontend.md +210 -0
- package/skills/cm-frappe-agent/commands/frappe-fullstack.md +243 -0
- package/skills/cm-frappe-agent/commands/frappe-github.md +57 -0
- package/skills/cm-frappe-agent/commands/frappe-install.md +52 -0
- package/skills/cm-frappe-agent/commands/frappe-plan.md +442 -0
- package/skills/cm-frappe-agent/commands/frappe-remote.md +58 -0
- package/skills/cm-frappe-agent/commands/frappe-test.md +356 -0
- package/skills/cm-frappe-agent/docs/README.md +51 -0
- package/skills/cm-frappe-agent/docs/agents-catalog.md +113 -0
- package/skills/cm-frappe-agent/docs/architecture.md +149 -0
- package/skills/cm-frappe-agent/docs/commands-catalog.md +82 -0
- package/skills/cm-frappe-agent/docs/resources-catalog.md +66 -0
- package/skills/cm-frappe-agent/docs/sitemap-urls.txt +52 -0
- package/skills/cm-frappe-agent/docs/sitemap.md +81 -0
- package/skills/cm-frappe-agent/docs/sop/user-guide.md +178 -0
- package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +122 -0
- package/skills/cm-frappe-agent/resources/7-layer-architecture.md +985 -0
- package/skills/cm-frappe-agent/resources/bench_commands.md +73 -0
- package/skills/cm-frappe-agent/resources/code-patterns-guide.md +948 -0
- package/skills/cm-frappe-agent/resources/common_pitfalls.md +266 -0
- package/skills/cm-frappe-agent/resources/doctype-registry.md +158 -0
- package/skills/cm-frappe-agent/resources/installation-guide.md +289 -0
- package/skills/cm-frappe-agent/resources/rest-api-patterns.md +182 -0
- package/skills/cm-frappe-agent/resources/scaffold_checklist.md +82 -0
- package/skills/cm-frappe-agent/resources/upgrade_patterns.md +113 -0
- package/skills/cm-frappe-agent/resources/web-form-patterns.md +252 -0
- package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +621 -0
- package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +642 -0
- package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +576 -0
- package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +740 -0
- package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +47 -0
- package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +608 -0
- package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +46 -0
- package/skills/cm-git-worktrees/SKILL.md +0 -7
- package/skills/cm-google-form/SKILL.md +266 -0
- package/skills/cm-google-form/templates/apps-script.js +55 -0
- package/skills/cm-google-form/templates/form-markup.html +110 -0
- package/skills/cm-google-form/templates/form-submit.js +201 -0
- package/skills/cm-google-form/templates/toast.css +152 -0
- package/skills/cm-growth-hacking/SKILL.md +293 -0
- package/skills/cm-growth-hacking/bottom-sheet-engine.md +261 -0
- package/skills/cm-growth-hacking/calendar-integration.md +264 -0
- package/skills/cm-growth-hacking/references/engagement-patterns.md +346 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.css +528 -0
- package/skills/cm-growth-hacking/templates/bottom-sheet.js +269 -0
- package/skills/cm-growth-hacking/templates/calendar-cta.js +213 -0
- package/skills/cm-growth-hacking/templates/tracking-events.js +211 -0
- package/skills/cm-growth-hacking/templates/trigger-manager.js +254 -0
- package/skills/cm-growth-hacking/tracking-events.md +246 -0
- package/skills/cm-growth-hacking/trigger-system.md +342 -0
- package/skills/cm-how-it-work/SKILL.md +20 -4
- package/skills/cm-identity-guard/SKILL.md +0 -11
- package/skills/cm-jtbd/SKILL.md +1 -1
- package/skills/cm-notebooklm/SKILL.md +172 -0
- package/skills/cm-notebooklm/references/command_reference.md +94 -0
- package/skills/cm-notebooklm/references/workflows.md +60 -0
- package/skills/cm-notebooklm/resources/knowledge_sources.md +106 -0
- package/skills/cm-notebooklm/scripts/brain-sync.sh +453 -0
- package/skills/cm-notebooklm/scripts/graduate_wisdom.py +101 -0
- package/skills/cm-planning/SKILL.md +39 -52
- package/skills/cm-project-bootstrap/SKILL.md +1307 -99
- package/skills/cm-quality-gate/SKILL.md +13 -106
- package/skills/cm-reactor/SKILL.md +274 -0
- package/skills/cm-safe-deploy/SKILL.md +415 -52
- package/skills/cm-safe-i18n/SKILL.md +1 -22
- package/skills/cm-secret-shield/SKILL.md +2 -2
- package/skills/cm-security-gate/SKILL.md +114 -0
- package/skills/cm-skill-chain/SKILL.md +2 -2
- package/skills/cm-skill-index/SKILL.md +9 -6
- package/skills/cm-skill-mastery/SKILL.md +2 -15
- package/skills/cm-start/SKILL.md +9 -0
- package/skills/cm-tdd/SKILL.md +16 -49
- package/skills/cm-ui-preview/SKILL.md +35 -173
- package/skills/cm-ux-master/FEATURES-v4.md +305 -0
- package/skills/cm-ux-master/README-ru.md +135 -0
- package/skills/cm-ux-master/README-vi.md +135 -0
- package/skills/cm-ux-master/README-zh.md +135 -0
- package/skills/cm-ux-master/README.md +489 -0
- package/skills/cm-ux-master/SKILL.md +773 -62
- package/skills/cm-ux-master/cli/README.md +180 -0
- package/skills/cm-ux-master/cli/pyproject.toml +106 -0
- package/skills/cm-ux-master/cli/requirements.txt +21 -0
- package/skills/cm-ux-master/cli/templates/base/skill-core.md +262 -0
- package/skills/cm-ux-master/cli/templates/platforms/claude.yaml +21 -0
- package/skills/cm-ux-master/cli/templates/platforms/cursor.yaml +21 -0
- package/skills/cm-ux-master/cli/templates/platforms/figma.yaml +24 -0
- package/skills/cm-ux-master/cli/templates/platforms/vscode-mcp.yaml +28 -0
- package/skills/cm-ux-master/cli/templates/platforms/windsurf.yaml +21 -0
- package/skills/cm-ux-master/cli/uxmaster/__init__.py +10 -0
- package/skills/cm-ux-master/cli/uxmaster/__main__.py +19 -0
- package/skills/cm-ux-master/cli/uxmaster/cli.py +349 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/__init__.py +8 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/extract.py +18 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/init.py +58 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/mcp.py +194 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/search.py +23 -0
- package/skills/cm-ux-master/cli/uxmaster/commands/validate.py +270 -0
- package/skills/cm-ux-master/cli/uxmaster/search_engine.py +532 -0
- package/skills/cm-ux-master/cli/uxmaster/template_engine.py +458 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/__init__.py +9 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/console.py +42 -0
- package/skills/cm-ux-master/cli/uxmaster/utils/detect.py +83 -0
- package/skills/cm-ux-master/data/accessibility-advanced.csv +26 -0
- package/skills/cm-ux-master/data/animation.csv +31 -0
- package/skills/cm-ux-master/data/charts.csv +26 -0
- package/skills/cm-ux-master/data/colors.csv +97 -0
- package/skills/cm-ux-master/data/design-tests.csv +37 -0
- package/skills/cm-ux-master/data/devices.csv +21 -0
- package/skills/cm-ux-master/data/icons.csv +101 -0
- package/skills/cm-ux-master/data/landing.csv +31 -0
- package/skills/cm-ux-master/data/products.csv +97 -0
- package/skills/cm-ux-master/data/react-performance.csv +45 -0
- package/skills/cm-ux-master/data/responsive.csv +26 -0
- package/skills/cm-ux-master/data/semi-tokens.csv +52 -0
- package/skills/cm-ux-master/data/stacks/angular.csv +34 -0
- package/skills/cm-ux-master/data/stacks/astro.csv +54 -0
- package/skills/cm-ux-master/data/stacks/electron.csv +32 -0
- package/skills/cm-ux-master/data/stacks/flutter.csv +53 -0
- package/skills/cm-ux-master/data/stacks/html-tailwind.csv +56 -0
- package/skills/cm-ux-master/data/stacks/htmx.csv +28 -0
- package/skills/cm-ux-master/data/stacks/jetpack-compose.csv +53 -0
- package/skills/cm-ux-master/data/stacks/nextjs.csv +53 -0
- package/skills/cm-ux-master/data/stacks/nuxt-ui.csv +51 -0
- package/skills/cm-ux-master/data/stacks/nuxtjs.csv +59 -0
- package/skills/cm-ux-master/data/stacks/react-native.csv +52 -0
- package/skills/cm-ux-master/data/stacks/react.csv +54 -0
- package/skills/cm-ux-master/data/stacks/shadcn.csv +61 -0
- package/skills/cm-ux-master/data/stacks/svelte.csv +54 -0
- package/skills/cm-ux-master/data/stacks/swiftui.csv +51 -0
- package/skills/cm-ux-master/data/stacks/tauri.csv +29 -0
- package/skills/cm-ux-master/data/stacks/vue.csv +50 -0
- package/skills/cm-ux-master/data/styles.csv +68 -0
- package/skills/cm-ux-master/data/typography.csv +58 -0
- package/skills/cm-ux-master/data/ui-reasoning.csv +101 -0
- package/skills/cm-ux-master/data/ux-guidelines.csv +100 -0
- package/skills/cm-ux-master/data/ux-laws.csv +49 -0
- package/skills/cm-ux-master/data/web-interface.csv +31 -0
- package/skills/cm-ux-master/docs/LANDING-PAGE.html +377 -0
- package/skills/cm-ux-master/docs/README.md +108 -0
- package/skills/cm-ux-master/docs/css/styles.css +573 -0
- package/skills/cm-ux-master/docs/examples/demo-script.md +319 -0
- package/skills/cm-ux-master/docs/guides/for-designers.md +692 -0
- package/skills/cm-ux-master/docs/guides/for-developers.md +778 -0
- package/skills/cm-ux-master/docs/guides/for-product-managers.md +693 -0
- package/skills/cm-ux-master/docs/guides/react-guide-vi.md +50 -0
- package/skills/cm-ux-master/docs/index.html +1062 -0
- package/skills/cm-ux-master/docs/js/i18n.js +84 -0
- package/skills/cm-ux-master/docs/js/lang/de.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/en.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/fr.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/hi.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/id.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ja.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ko.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/ru.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/vi.js +145 -0
- package/skills/cm-ux-master/docs/js/lang/zh.js +145 -0
- package/skills/cm-ux-master/docs/js/main.js +117 -0
- package/skills/cm-ux-master/docs/plan/PHASE1-COMPLETION.md +217 -0
- package/skills/cm-ux-master/docs/plan/PHASE2-COMPLETION.md +199 -0
- package/skills/cm-ux-master/docs/plan/PHASE2-ENHANCED-COMPLETION.md +352 -0
- package/skills/cm-ux-master/docs/plan/PHASE3-VALIDATION-COMPLETION.md +499 -0
- package/skills/cm-ux-master/docs/plan/PHASE4-TESTING-POLISH-COMPLETION.md +483 -0
- package/skills/cm-ux-master/docs/plan/UXM-2.0-ROADMAP.md +681 -0
- package/skills/cm-ux-master/docs/plan/WOW-PITCH.md +410 -0
- package/skills/cm-ux-master/docs/technical/api-reference.md +824 -0
- package/skills/cm-ux-master/docs/technical/harvester-v4.md +328 -0
- package/skills/cm-ux-master/docs/technical/how-it-works.md +1128 -0
- package/skills/cm-ux-master/docs/tutorials/quickstart.md +339 -0
- package/skills/cm-ux-master/docs/tutorials/tutorials.md +939 -0
- package/skills/cm-ux-master/docs/tutorials/user-guide.md +716 -0
- package/skills/cm-ux-master/examples/README.md +63 -0
- package/skills/cm-ux-master/mcp/__init__.py +3 -0
- package/skills/cm-ux-master/mcp/integrations/__init__.py +11 -0
- package/skills/cm-ux-master/mcp/integrations/figma/__init__.py +6 -0
- package/skills/cm-ux-master/mcp/integrations/figma/client.py +293 -0
- package/skills/cm-ux-master/mcp/integrations/figma/plugin/code.js +561 -0
- package/skills/cm-ux-master/mcp/integrations/figma/plugin/ui.html +334 -0
- package/skills/cm-ux-master/mcp/integrations/stitch/__init__.py +5 -0
- package/skills/cm-ux-master/mcp/integrations/stitch/client.py +410 -0
- package/skills/cm-ux-master/mcp/integrations/vscode/package.json +167 -0
- package/skills/cm-ux-master/mcp/integrations/vscode/src/extension.ts +81 -0
- package/skills/cm-ux-master/mcp/mcp-config.json +274 -0
- package/skills/cm-ux-master/mcp/server.py +771 -0
- package/skills/cm-ux-master/mcp/tools/__init__.py +13 -0
- package/skills/cm-ux-master/mcp-server/server.py +595 -0
- package/skills/cm-ux-master/output/fila/FilaDashboard.tsx +47 -0
- package/skills/cm-ux-master/output/fila/components/badge/component.tsx +35 -0
- package/skills/cm-ux-master/output/fila/components/badge/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/button/component.tsx +53 -0
- package/skills/cm-ux-master/output/fila/components/button/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/card/component.tsx +35 -0
- package/skills/cm-ux-master/output/fila/components/card/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/components/input/component.tsx +41 -0
- package/skills/cm-ux-master/output/fila/components/input/index.ts +1 -0
- package/skills/cm-ux-master/output/fila/design-system.css +151 -0
- package/skills/cm-ux-master/output/fila/design-system.html +1596 -0
- package/skills/cm-ux-master/output/fila/design-system.json +168 -0
- package/skills/cm-ux-master/output/fila/figma-tokens.json +523 -0
- package/skills/cm-ux-master/output/fila/harvest-v4-raw.json +406 -0
- package/skills/cm-ux-master/output/fila/semi-theme-override.css +95 -0
- package/skills/cm-ux-master/output/haravan/HaravanDashboard.tsx +103 -0
- package/skills/cm-ux-master/output/haravan/design-system-v3-live.html +2716 -0
- package/skills/cm-ux-master/output/haravan/design-system-v3.html +1770 -0
- package/skills/cm-ux-master/output/haravan/design-system.html +914 -0
- package/skills/cm-ux-master/output/haravan/figma-tokens.json +84 -0
- package/skills/cm-ux-master/output/haravan/haravan-harvest.json +33 -0
- package/skills/cm-ux-master/output/haravan/harvest-v3-raw.json +167 -0
- package/skills/cm-ux-master/output/haravan/semi-theme-override.css +39 -0
- package/skills/cm-ux-master/references/audit-template.md +257 -0
- package/skills/cm-ux-master/references/cultural-ux.md +346 -0
- package/skills/cm-ux-master/references/dark-patterns.md +362 -0
- package/skills/cm-ux-master/references/heuristic-conflicts.md +296 -0
- package/skills/cm-ux-master/references/krug-principles.md +289 -0
- package/skills/cm-ux-master/references/nielsen-heuristics.md +360 -0
- package/skills/cm-ux-master/references/wcag-checklist.md +306 -0
- package/skills/cm-ux-master/scripts/component_generator.py +631 -0
- package/skills/cm-ux-master/scripts/core.py +305 -0
- package/skills/cm-ux-master/scripts/demo_validation.py +452 -0
- package/skills/cm-ux-master/scripts/design_doc_generator.py +1325 -0
- package/skills/cm-ux-master/scripts/design_system.py +1141 -0
- package/skills/cm-ux-master/scripts/design_system_indexer.py +889 -0
- package/skills/cm-ux-master/scripts/extract_i18n.py +251 -0
- package/skills/cm-ux-master/scripts/extractor.py +1437 -0
- package/skills/cm-ux-master/scripts/figma_bridge.py +406 -0
- package/skills/cm-ux-master/scripts/generate.py +147 -0
- package/skills/cm-ux-master/scripts/harvest_session.py +207 -0
- package/skills/cm-ux-master/scripts/harvester.js +240 -0
- package/skills/cm-ux-master/scripts/harvester_browser.py +717 -0
- package/skills/cm-ux-master/scripts/harvester_cli.py +431 -0
- package/skills/cm-ux-master/scripts/harvester_v1.js +275 -0
- package/skills/cm-ux-master/scripts/harvester_v3.js +620 -0
- package/skills/cm-ux-master/scripts/harvester_v4.js +1003 -0
- package/skills/cm-ux-master/scripts/install.py +528 -0
- package/skills/cm-ux-master/scripts/license.py +81 -0
- package/skills/cm-ux-master/scripts/media/qrpayment.png +0 -0
- package/skills/cm-ux-master/scripts/pro_stubs.py +120 -0
- package/skills/cm-ux-master/scripts/project_registry.py +217 -0
- package/skills/cm-ux-master/scripts/search.py +114 -0
- package/skills/cm-ux-master/scripts/semi_mcp_bridge.py +425 -0
- package/skills/cm-ux-master/scripts/stitch_integration.py +583 -0
- package/skills/cm-ux-master/scripts/test_harvester_v4.py +335 -0
- package/skills/cm-ux-master/scripts/token_mapper.py +626 -0
- package/skills/cm-ux-master/scripts/validation_engine.py +1571 -0
- package/skills/cm-ux-master/scripts/wizard.py +653 -0
- package/skills/cm-ux-master/setup.py +93 -0
- package/skills/cm-ux-master/templates/base/flutter-widget.dart +69 -0
- package/skills/cm-ux-master/templates/base/html-page.html +152 -0
- package/skills/cm-ux-master/templates/base/react-component.tsx +47 -0
- package/skills/cm-ux-master/templates/base/swiftui-view.swift +62 -0
- package/skills/cm-ux-master/templates/quick-start.sh +176 -0
- package/skills/cm-ux-master/tests/automation/batch-validate.sh +250 -0
- package/skills/cm-ux-master/tests/automation/generate-test-projects.sh +561 -0
- package/skills/cm-ux-master/tests/automation/run-all-tests.sh +315 -0
- package/skills/cm-ux-master/tests/test_design_doc.py +145 -0
- package/skills/cm-ux-master/tests/test_devices.py +74 -0
- package/skills/cm-ux-master/tests/test_generator.py +116 -0
- package/skills/cm-ux-master/tests/test_harvest_session.py +131 -0
- package/skills/cm-ux-master/tests/test_harvester.py +127 -0
- package/skills/cm-ux-master/tests/test_harvester_v3.py +324 -0
- package/skills/cm-ux-master/tests/test_mcp_server.py +496 -0
- package/skills/cm-ux-master/tests/test_new_domains.py +108 -0
- package/skills/cm-ux-master/tests/test_new_stacks.py +103 -0
- package/skills/cm-ux-master/tests/test_project_registry.py +146 -0
- package/skills/cm-ux-master/tests/test_semi_mcp_bridge.py +207 -0
- package/skills/cm-ux-master/tests/test_token_mapper.py +247 -0
- package/skills/cm-ux-master/tests/test_validation_engine.py +617 -0
- package/skills/config.schema.json +397 -0
- package/skills/frappe-app-builder.zip +0 -0
- package/skills/jobs-to-be-done/SKILL.md +266 -0
- package/skills/jobs-to-be-done/references/case-studies.md +154 -0
- package/skills/jobs-to-be-done/references/competitive-strategy.md +280 -0
- package/skills/jobs-to-be-done/references/diagnostics.md +158 -0
- package/skills/jobs-to-be-done/references/innovation-process.md +392 -0
- package/skills/jobs-to-be-done/references/organizational-change.md +328 -0
- package/skills/marketplace-report-crawler/SKILL.md +176 -0
- package/skills/marketplace-report-crawler/config/accounts.json +41 -0
- package/skills/marketplace-report-crawler/config/report-types.json +422 -0
- package/skills/marketplace-report-crawler/config/sessions.json +3 -0
- package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +102 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +114 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +94 -0
- package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +272 -0
- package/skills/marketplace-report-crawler/scripts/crawl-runner.js +281 -0
- package/skills/marketplace-report-crawler/scripts/session-check.sh +72 -0
- package/skills/marketplace-report-crawler/scripts/session-manager.sh +349 -0
- package/skills/marketplace-report-crawler/scripts/setup-folders.sh +83 -0
- package/skills/medical-research/SKILL.md +194 -0
- package/skills/medical-research/scripts/evidence_checker.py +288 -0
- package/skills/mom-test/SKILL.md +267 -0
- package/skills/mom-test/references/avoiding-bad-data.md +221 -0
- package/skills/mom-test/references/case-studies.md +306 -0
- package/skills/mom-test/references/commitment-advancement.md +219 -0
- package/skills/mom-test/references/finding-conversations.md +251 -0
- package/skills/mom-test/references/processing-learning.md +256 -0
- package/skills/mom-test/references/question-patterns.md +198 -0
- package/skills/pandasai-analytics/SKILL.md +251 -0
- package/skills/release-it/SKILL.md +235 -0
- package/skills/release-it/references/anti-patterns.md +279 -0
- package/skills/release-it/references/capacity-planning.md +285 -0
- package/skills/release-it/references/chaos-engineering.md +325 -0
- package/skills/release-it/references/deployment-strategies.md +331 -0
- package/skills/release-it/references/observability.md +301 -0
- package/skills/release-it/references/stability-patterns.md +355 -0
- package/skills/scripts/sync-ide-skills.sh +61 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +37 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +34 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +51 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +39 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +52 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +25 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +31 -0
- package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +25 -0
- package/skills/skill-creator-ultra/README.md +1242 -0
- package/skills/skill-creator-ultra/SKILL.md +388 -0
- package/skills/skill-creator-ultra/agents/analyzer.md +274 -0
- package/skills/skill-creator-ultra/agents/comparator.md +202 -0
- package/skills/skill-creator-ultra/agents/grader.md +223 -0
- package/skills/skill-creator-ultra/assets/eval_review.html +146 -0
- package/skills/skill-creator-ultra/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator-ultra/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +109 -0
- package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +116 -0
- package/skills/skill-creator-ultra/examples/example_api_docs.md +189 -0
- package/skills/skill-creator-ultra/examples/example_db_migration.md +253 -0
- package/skills/skill-creator-ultra/examples/example_git_commit.md +111 -0
- package/skills/skill-creator-ultra/install.ps1 +289 -0
- package/skills/skill-creator-ultra/install.sh +313 -0
- package/skills/skill-creator-ultra/phases/phase1_interview.md +202 -0
- package/skills/skill-creator-ultra/phases/phase2_extract.md +55 -0
- package/skills/skill-creator-ultra/phases/phase3_detect.md +57 -0
- package/skills/skill-creator-ultra/phases/phase4_generate.md +543 -0
- package/skills/skill-creator-ultra/phases/phase5_test.md +319 -0
- package/skills/skill-creator-ultra/phases/phase6_eval.md +301 -0
- package/skills/skill-creator-ultra/phases/phase7_iterate.md +103 -0
- package/skills/skill-creator-ultra/phases/phase8_optimize.md +113 -0
- package/skills/skill-creator-ultra/resources/advanced_patterns.md +499 -0
- package/skills/skill-creator-ultra/resources/anti_patterns.md +376 -0
- package/skills/skill-creator-ultra/resources/blueprints.md +498 -0
- package/skills/skill-creator-ultra/resources/checklist.md +243 -0
- package/skills/skill-creator-ultra/resources/composition_cookbook.md +291 -0
- package/skills/skill-creator-ultra/resources/description_optimization.md +90 -0
- package/skills/skill-creator-ultra/resources/eval_guide.md +133 -0
- package/skills/skill-creator-ultra/resources/industry_questions.md +189 -0
- package/skills/skill-creator-ultra/resources/interview_questions.md +200 -0
- package/skills/skill-creator-ultra/resources/pattern_detection.md +200 -0
- package/skills/skill-creator-ultra/resources/prompt_engineering.md +531 -0
- package/skills/skill-creator-ultra/resources/schemas.md +430 -0
- package/skills/skill-creator-ultra/resources/script_integration.md +593 -0
- package/skills/skill-creator-ultra/resources/scripts_guide.md +339 -0
- package/skills/skill-creator-ultra/resources/skill_template.md +124 -0
- package/skills/skill-creator-ultra/resources/skill_writing_guide.md +634 -0
- package/skills/skill-creator-ultra/resources/versioning_guide.md +193 -0
- package/skills/skill-creator-ultra/scripts/ci_eval.py +200 -0
- package/skills/skill-creator-ultra/scripts/package_skill.py +165 -0
- package/skills/skill-creator-ultra/scripts/simulate_skill.py +398 -0
- package/skills/skill-creator-ultra/scripts/skill_audit.py +611 -0
- package/skills/skill-creator-ultra/scripts/skill_compare.py +265 -0
- package/skills/skill-creator-ultra/scripts/skill_export.py +334 -0
- package/skills/skill-creator-ultra/scripts/skill_scaffold.py +403 -0
- package/skills/skill-creator-ultra/scripts/skill_stats.py +339 -0
- package/skills/skill-creator-ultra/scripts/validate_skill.py +411 -0
- package/skills/tailwind-mastery/SKILL.md +229 -0
- package/skills/vercel-react-best-practices/AGENTS.md +3373 -0
- package/skills/vercel-react-best-practices/README.md +123 -0
- package/skills/vercel-react-best-practices/SKILL.md +143 -0
- package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
- package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/skills/web-design-guidelines/SKILL.md +39 -0
- package/skills/cro-methodology/SKILL.md +0 -98
- /package/skills/{cro-methodology → cm-cro-methodology}/references/COPYWRITING.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/OBJECTIONS.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/PERSUASION.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/RESEARCH.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/funnel-analysis.md +0 -0
- /package/skills/{cro-methodology → cm-cro-methodology}/references/testing-methodology.md +0 -0
|
@@ -0,0 +1,634 @@
|
|
|
1
|
+
# ✍️ Skill Writing Guide — Từ Kiến Trúc Sư AI Hàng Đầu
|
|
2
|
+
|
|
3
|
+
> Tổng hợp insights từ Anthropic's Skill System, OpenAI's GPTs Architecture,
|
|
4
|
+
> Google DeepMind's Agent Design, và kinh nghiệm xây dựng hàng trăm production skills.
|
|
5
|
+
>
|
|
6
|
+
> "Skill tốt không phải skill viết hay — mà là skill hoạt động đúng 100 lần liên tiếp."
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Nền tảng: 3 Lớp Nhận Thức của AI Agent
|
|
11
|
+
|
|
12
|
+
AI Agent không đọc skill như người đọc sách. Nó đọc theo **3 lớp**, mỗi lớp
|
|
13
|
+
có ngưỡng quyết định riêng. Nếu bạn không tối ưu đúng lớp — skill của bạn
|
|
14
|
+
sẽ thất bại trước khi nó kịp chạy.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
┌─────────────────────────────────────────────────┐
|
|
18
|
+
│ LỚP 1: METADATA (~100 tokens) │
|
|
19
|
+
│ AI đọc: name + description │
|
|
20
|
+
│ Quyết định: "Có DÙNG skill này không?" │
|
|
21
|
+
│ Nếu fail ở đây → Skill KHÔNG BAO GIỜ được gọi │
|
|
22
|
+
├─────────────────────────────────────────────────┤
|
|
23
|
+
│ LỚP 2: BODY (~2000 tokens) │
|
|
24
|
+
│ AI đọc: Goal + Instructions + Examples │
|
|
25
|
+
│ Quyết định: "LÀM như thế nào?" │
|
|
26
|
+
│ Nếu fail ở đây → Output sai format, thiếu logic │
|
|
27
|
+
├─────────────────────────────────────────────────┤
|
|
28
|
+
│ LỚP 3: RESOURCES (unlimited) │
|
|
29
|
+
│ AI đọc: files trong resources/, examples/ │
|
|
30
|
+
│ Quyết định: "Chi tiết CỤ THỂ là gì?" │
|
|
31
|
+
│ Chỉ đọc khi cần — KHÔNG đọc mặc định │
|
|
32
|
+
└─────────────────────────────────────────────────┘
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Hệ quả thiết kế:**
|
|
36
|
+
- Lớp 1 phải **aggressive** — overfit trigger tốt hơn under-trigger
|
|
37
|
+
- Lớp 2 phải **self-contained** — AI chạy được MÀ KHÔNG đọc Lớp 3
|
|
38
|
+
- Lớp 3 là **reference** — chỉ cần khi edge case hoặc chi tiết domain
|
|
39
|
+
|
|
40
|
+
→ **Quy tắc 500**: SKILL.md < 500 dòng. Vượt → tách ra resources/.
|
|
41
|
+
→ **Quy tắc 80/20**: 80% use cases phải chạy đúng chỉ với Lớp 2.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 10 Kỹ Thuật Viết — Đặt Tên Theo Nguyên Lý
|
|
46
|
+
|
|
47
|
+
### 🎯 Pattern 1: The Sniper — Imperative Precision
|
|
48
|
+
|
|
49
|
+
**Nguyên lý:** Mỗi câu instruction phải là MỘT lệnh rõ ràng mà AI execute
|
|
50
|
+
không cần suy nghĩ. Giống sniper — 1 viên, 1 mục tiêu.
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
❌ SAI — The Shotgun (bắn tản mát):
|
|
54
|
+
# Instructions
|
|
55
|
+
1. Khi user cung cấp file, file nên được phân tích kỹ lưỡng
|
|
56
|
+
trước khi tiến hành các bước xử lý tiếp theo
|
|
57
|
+
2. Sau khi phân tích xong, cần đảm bảo kết quả phù hợp
|
|
58
|
+
|
|
59
|
+
✅ ĐÚNG — The Sniper (bắn chính xác):
|
|
60
|
+
# Instructions
|
|
61
|
+
1. Đọc file user cung cấp → Xác định: encoding, separator, số dòng
|
|
62
|
+
2. Parse header (dòng 1) → Tạo danh sách tên cột
|
|
63
|
+
3. Với MỖI dòng dữ liệu: map giá trị → cột tương ứng
|
|
64
|
+
4. Validate: đếm cột mỗi dòng = đếm header?
|
|
65
|
+
- Nếu khác → log warning + skip dòng đó
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Tại sao hoạt động:** AI models là instruction followers, không phải mind readers.
|
|
69
|
+
Câu "phân tích kỹ lưỡng" có thể hiểu 50 cách khác nhau. "Xác định encoding,
|
|
70
|
+
separator, số dòng" chỉ có 1 cách hiểu.
|
|
71
|
+
|
|
72
|
+
**Test:** Đưa 1 instruction cho 3 người khác nhau. Nếu cả 3 hiểu GIỐNG nhau → đủ tốt.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### 🧬 Pattern 2: The DNA — Explain The Why
|
|
77
|
+
|
|
78
|
+
**Nguyên lý:** AI follow rules tốt hơn ~30% khi hiểu LÝ DO đằng sau rule
|
|
79
|
+
(data từ Anthropic's internal testing). Như DNA — mã nguồn quyết định hành vi.
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
❌ SAI — Blind Commands (lệnh mù):
|
|
83
|
+
- TUYỆT ĐỐI KHÔNG viết quá 400 từ
|
|
84
|
+
- LUÔN LUÔN ghi ngày tháng
|
|
85
|
+
- KHÔNG ĐƯỢC bỏ phần "Vướng mắc"
|
|
86
|
+
|
|
87
|
+
✅ ĐÚNG — DNA Rules (lệnh có mã nguồn):
|
|
88
|
+
- Giữ dưới 400 từ — sếp đọc trên điện thoại lúc di chuyển,
|
|
89
|
+
quá dài sẽ bị skip hoặc đọc lướt mất thông tin quan trọng
|
|
90
|
+
- Luôn ghi ngày tháng cụ thể (VD: "24/02-28/02") — để dễ trace
|
|
91
|
+
khi review performance sau 3 tháng, không nhầm tuần nào với tuần nào
|
|
92
|
+
- Luôn có phần "Vướng mắc" dù không có gì — vì sếp SẼ HỎI nếu thiếu,
|
|
93
|
+
ghi "Không có" thể hiện bạn đã cân nhắc chứ không phải quên
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Ngoại lệ duy nhất — dùng CAPS LOCK khi:**
|
|
97
|
+
Hậu quả **KHÔNG thể undo** + ảnh hưởng security/data:
|
|
98
|
+
- 🚫 TUYỆT ĐỐI KHÔNG hardcode API keys vào source code
|
|
99
|
+
- 🚫 TUYỆT ĐỐI KHÔNG chạy `rm -rf` hoặc `DROP TABLE` mà không confirm
|
|
100
|
+
|
|
101
|
+
**Insight từ production:** Khi AI hiểu WHY "dưới 400 từ" (sếp đọc trên điện thoại),
|
|
102
|
+
nó tự biết cắt phần nào — ưu tiên giữ action items, cắt background. Khi chỉ
|
|
103
|
+
nói "dưới 400 từ" — nó cắt ngẫu nhiên, có thể mất thông tin quan trọng.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### 🪞 Pattern 3: The Mirror — Show Don't Tell
|
|
108
|
+
|
|
109
|
+
**Nguyên lý:** AI là pattern matcher. Cho xem 1 ví dụ hoàn hảo hiệu quả
|
|
110
|
+
hơn 50 dòng quy tắc. Như tấm gương — AI soi vào và phản chiếu.
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
❌ SAI — Dạy lý thuyết:
|
|
114
|
+
# Instructions
|
|
115
|
+
Viết commit message theo Conventional Commits standard.
|
|
116
|
+
Message phải có type, optional scope, và description.
|
|
117
|
+
Type gồm feat, fix, docs, style, refactor, test, chore.
|
|
118
|
+
Description viết ở imperative mood, không capitalize, không dấu chấm cuối.
|
|
119
|
+
|
|
120
|
+
✅ ĐÚNG — Cho xem mẫu:
|
|
121
|
+
# Examples
|
|
122
|
+
## Input:
|
|
123
|
+
git diff: Thêm hàm validateEmail() vào utils/validators.ts
|
|
124
|
+
|
|
125
|
+
## Output:
|
|
126
|
+
feat(validators): add email validation function
|
|
127
|
+
|
|
128
|
+
Supports RFC 5322 format with unicode domain names.
|
|
129
|
+
Includes unit tests for edge cases (empty, no @, multiple @).
|
|
130
|
+
|
|
131
|
+
## Input:
|
|
132
|
+
git diff: Sửa lỗi crash khi user không nhập password
|
|
133
|
+
|
|
134
|
+
## Output:
|
|
135
|
+
fix(auth): handle empty password input gracefully
|
|
136
|
+
|
|
137
|
+
Previously threw NullPointerException. Now shows inline
|
|
138
|
+
error message "Password is required" without page reload.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Data thực nghiệm:**
|
|
142
|
+
|
|
143
|
+
| Approach | AI Follow Accuracy |
|
|
144
|
+
|---|---|
|
|
145
|
+
| Rules only (text mô tả) | ~60% |
|
|
146
|
+
| Rules + 1 example | ~75% |
|
|
147
|
+
| Rules + 2 diverse examples | ~90% |
|
|
148
|
+
| Rules + 2 examples + constraints | ~95% |
|
|
149
|
+
|
|
150
|
+
**Chọn ví dụ thế nào? — Nguyên tắc 3C:**
|
|
151
|
+
1. **Contrasting**: 2 ví dụ phải KHÁC NHAU rõ (happy path vs edge case)
|
|
152
|
+
2. **Complete**: Input VÀ Output đều đầy đủ, không placeholder
|
|
153
|
+
3. **Contextual**: Có backstory — TẠI SAO user cần làm việc này
|
|
154
|
+
|
|
155
|
+
📚 **Chi tiết:** `resources/prompt_engineering.md` (Nguyên tắc #3)
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### 🏗️ Pattern 4: The Blueprint — Domain Organization
|
|
160
|
+
|
|
161
|
+
**Nguyên lý:** Khi skill hỗ trợ nhiều biến thể, tách domain knowledge ra
|
|
162
|
+
từng file riêng. AI chỉ đọc file cần thiết → tiết kiệm context, tăng accuracy.
|
|
163
|
+
|
|
164
|
+
```markdown
|
|
165
|
+
❌ SAI — The Monolith (1 file khổng lồ):
|
|
166
|
+
SKILL.md (800 dòng):
|
|
167
|
+
→ Report template loại A (200 dòng)
|
|
168
|
+
→ Report template loại B (200 dòng)
|
|
169
|
+
→ Report template loại C (200 dòng)
|
|
170
|
+
→ Logic chọn template (200 dòng)
|
|
171
|
+
# AI phải đọc 800 dòng dù chỉ cần 1 template
|
|
172
|
+
|
|
173
|
+
✅ ĐÚNG — The Blueprint (bản vẽ module):
|
|
174
|
+
skills/report-writer/
|
|
175
|
+
├── SKILL.md ← 150 dòng: workflow + selection logic
|
|
176
|
+
│ "IF weekly → đọc resources/weekly_template.md"
|
|
177
|
+
│ "IF monthly → đọc resources/monthly_template.md"
|
|
178
|
+
│ "IF incident → đọc resources/incident_template.md"
|
|
179
|
+
└── resources/
|
|
180
|
+
├── weekly_template.md ← 100 dòng
|
|
181
|
+
├── monthly_template.md ← 150 dòng
|
|
182
|
+
└── incident_template.md ← 80 dòng
|
|
183
|
+
# AI chỉ đọc 150 + 100 = 250 dòng cho weekly report
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Khi nào tách — Quy tắc 50/3:**
|
|
187
|
+
- Variant > 50 dòng → tách file
|
|
188
|
+
- \> 3 variants → chắc chắn tách
|
|
189
|
+
- Variant có logic riêng biệt → tách luôn dù ngắn
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### 🛡️ Pattern 5: The Safety Net — Error Recovery
|
|
194
|
+
|
|
195
|
+
**Nguyên lý:** AI SẼ gặp lỗi. Skill production phải có plan B cho MỌI bước
|
|
196
|
+
quan trọng. Không có safety net = Anti-Pattern #14 (Silent Failure).
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
❌ SAI — The Tightrope (đi dây không lưới):
|
|
200
|
+
# Instructions
|
|
201
|
+
1. Đọc PDF file
|
|
202
|
+
2. Trích xuất data từ tables
|
|
203
|
+
3. Format output JSON
|
|
204
|
+
|
|
205
|
+
# Nếu PDF không đọc được? → AI đứng im hoặc hallucinate
|
|
206
|
+
# Nếu table format lạ? → AI đoán bừa
|
|
207
|
+
# Nếu output sai schema? → User nhận data rác
|
|
208
|
+
|
|
209
|
+
✅ ĐÚNG — The Safety Net (có lưới hứng):
|
|
210
|
+
# Instructions
|
|
211
|
+
1. Đọc PDF file
|
|
212
|
+
- Nếu PDF encrypted → Hỏi user: "File có mật khẩu. Anh nhập password?"
|
|
213
|
+
- Nếu PDF corrupted → Báo: "File lỗi, anh gửi lại file khác?"
|
|
214
|
+
2. Trích xuất data từ tables
|
|
215
|
+
- Nếu OCR thất bại → Thử: (a) tăng resolution, (b) preprocess contrast
|
|
216
|
+
- Nếu vẫn fail → Hỏi: "Em không đọc được bảng này. Anh paste text thủ công?"
|
|
217
|
+
- Nếu table format lạ → Show user sample + hỏi: "Format này đúng không?"
|
|
218
|
+
3. Format output JSON
|
|
219
|
+
- Validate schema trước khi trả
|
|
220
|
+
- Nếu thiếu field bắt buộc → Ghi null + warning: "Thiếu [field], em để null"
|
|
221
|
+
- Đếm records input = output? Nếu khác → Báo: "⚠️ Input 50 dòng → Output 48. 2 dòng lỗi"
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**Nguyên tắc 3 tầng recovery:**
|
|
225
|
+
|
|
226
|
+
| Tầng | Khi nào | Hành động |
|
|
227
|
+
|---|---|---|
|
|
228
|
+
| **Auto-fix** | Lỗi nhỏ, biết cách sửa | Sửa tự động + báo user |
|
|
229
|
+
| **Ask user** | Lỗi mơ hồ, nhiều hướng xử lý | Đề xuất options + hỏi |
|
|
230
|
+
| **Bail out** | Lỗi nghiêm trọng, không thể tiếp | Dừng + giải thích + gợi ý thủ công |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### 🎚️ Pattern 6: The Dial — Confidence Scoring
|
|
235
|
+
|
|
236
|
+
**Nguyên lý:** AI thường "tự tin sai" (hallucination). Buộc nó tự chấm confidence
|
|
237
|
+
trước khi act → user biết khi nào cần can thiệp. Như núm điều chỉnh âm lượng —
|
|
238
|
+
tùy mức tự tin mà hành động khác nhau.
|
|
239
|
+
|
|
240
|
+
```markdown
|
|
241
|
+
❌ SAI — The Overconfident (quá tự tin):
|
|
242
|
+
# Instructions
|
|
243
|
+
3. Xác định loại bug → Đề xuất fix
|
|
244
|
+
|
|
245
|
+
# AI luôn đề xuất fix, kể cả khi chỉ 20% chắc chắn
|
|
246
|
+
# User blindly apply fix → production crash
|
|
247
|
+
|
|
248
|
+
✅ ĐÚNG — The Dial (có scale):
|
|
249
|
+
# Instructions
|
|
250
|
+
3. Xác định loại bug + self-rate confidence:
|
|
251
|
+
|
|
252
|
+
IF confidence ≥ 85%:
|
|
253
|
+
→ Fix tự động + giải thích: "Em chắc 92% đây là null pointer.
|
|
254
|
+
Em đã thêm null check. Review code phía dưới."
|
|
255
|
+
|
|
256
|
+
IF confidence 50-84%:
|
|
257
|
+
→ Đề xuất + hỏi confirm: "Em nghĩ đây là race condition (67%).
|
|
258
|
+
Có 2 cách fix: (A) mutex lock, (B) async queue. Anh chọn?"
|
|
259
|
+
|
|
260
|
+
IF confidence < 50%:
|
|
261
|
+
→ Liệt kê khả năng + nhờ user: "Em thấy 3 khả năng:
|
|
262
|
+
1. Memory leak (35%)
|
|
263
|
+
2. Deadlock (30%)
|
|
264
|
+
3. Logic error (25%)
|
|
265
|
+
Anh check thêm logs giúp em?"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Tại sao chưa ai làm tốt điều này:**
|
|
269
|
+
Anthropic và OpenAI đều khuyên "be transparent about uncertainty",
|
|
270
|
+
nhưng KHÔNG có tool nào encode confidence thresholds trực tiếp vào skill.
|
|
271
|
+
Đây là advantage của skill-creator-ultra.
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
### 🔬 Pattern 7: The Microscope — Semantic Verbs
|
|
276
|
+
|
|
277
|
+
**Nguyên lý:** AI phân biệt được "Generate" vs "Validate" vs "Transform"
|
|
278
|
+
rất tốt. Nhưng "Xử lý" và "Kiểm tra"? Nó hiểu 10 cách khác nhau.
|
|
279
|
+
Như kính hiển vi — zoom vào đúng hành động.
|
|
280
|
+
|
|
281
|
+
```markdown
|
|
282
|
+
❌ SAI — Blurry Verbs (động từ mờ):
|
|
283
|
+
1. Xử lý dữ liệu đầu vào
|
|
284
|
+
2. Kiểm tra kết quả
|
|
285
|
+
3. Tối ưu output
|
|
286
|
+
4. Phân tích file
|
|
287
|
+
|
|
288
|
+
✅ ĐÚNG — Microscope Verbs (động từ sắc nét):
|
|
289
|
+
1. PARSE input CSV → extract rows as dictionaries
|
|
290
|
+
2. VALIDATE each row against schema → flag invalid fields
|
|
291
|
+
3. COMPRESS output JSON → remove whitespace, minify
|
|
292
|
+
4. DECOMPOSE PDF → extract text layer + image layer separately
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Bảng chuyển đổi — dán cạnh bàn phím:**
|
|
296
|
+
|
|
297
|
+
| ❌ Mờ | ✅ Chính xác (chọn theo ngữ cảnh) |
|
|
298
|
+
|---|---|
|
|
299
|
+
| "Xử lý" | **Generate** / Parse / Transform / Normalize / Sanitize |
|
|
300
|
+
| "Kiểm tra" | **Validate** / Assert / Compare / Scan / Verify / Lint |
|
|
301
|
+
| "Tối ưu" | **Minimize** / Compress / Cache / Deduplicate / Refactor |
|
|
302
|
+
| "Phân tích" | **Decompose** / Measure / Profile / Audit / Classify |
|
|
303
|
+
| "Cập nhật" | **Overwrite** / Append / Patch / Increment / Sync |
|
|
304
|
+
| "Gửi" | **POST** / Emit / Publish / Forward / Broadcast |
|
|
305
|
+
|
|
306
|
+
📚 **Chi tiết bảng mở rộng:** `resources/prompt_engineering.md` (Nguyên tắc #5)
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
### 🌳 Pattern 8: The Decision Tree — Explicit Branching
|
|
311
|
+
|
|
312
|
+
**Nguyên lý:** Khi có nhiều nhánh logic, viết IF/ELSE tường minh.
|
|
313
|
+
AI rất giỏi follow decision trees — nhưng rất tệ khi tự xây tree.
|
|
314
|
+
Skill architect phải xây tree sẵn.
|
|
315
|
+
|
|
316
|
+
```markdown
|
|
317
|
+
❌ SAI — The Fog (sương mù):
|
|
318
|
+
# Instructions
|
|
319
|
+
2. Xử lý file phù hợp theo format
|
|
320
|
+
|
|
321
|
+
# AI tự quyết định "phù hợp" nghĩa là gì → mỗi lần khác nhau
|
|
322
|
+
|
|
323
|
+
✅ ĐÚNG — The Decision Tree (cây rõ ràng):
|
|
324
|
+
# Instructions
|
|
325
|
+
2. Xác định format → chọn pipeline:
|
|
326
|
+
|
|
327
|
+
┌── .csv → run parse_csv(delimiter=auto_detect)
|
|
328
|
+
├── .json → run validate_json_schema(strict=true)
|
|
329
|
+
├── .xlsx → run extract_sheets() → hỏi user chọn sheet
|
|
330
|
+
├── .pdf → IF has_text_layer → extract_text()
|
|
331
|
+
│ ELSE → OCR_first() THEN extract_text()
|
|
332
|
+
├── .xml → run parse_xml(namespace_aware=true)
|
|
333
|
+
└── ELSE → Hỏi user: "File này format gì? Em hỗ trợ: CSV, JSON, XLSX, PDF, XML"
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
**Nguyên tắc MECE:** Mỗi nhánh phải:
|
|
337
|
+
- **M**utually **E**xclusive: Không overlap (file không thể vừa .csv vừa .json)
|
|
338
|
+
- **C**ollectively **E**xhaustive: Cover mọi case (có ELSE cho unexpected)
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
### 📐 Pattern 9: The Contract — Output Specification
|
|
343
|
+
|
|
344
|
+
**Nguyên lý:** Nếu bạn không define output format → AI tự chọn → mỗi lần khác.
|
|
345
|
+
Skill production cần output consistent 100%. Như hợp đồng — hai bên đồng ý format.
|
|
346
|
+
|
|
347
|
+
```markdown
|
|
348
|
+
❌ SAI — The Surprise (output bất ngờ):
|
|
349
|
+
# Instructions
|
|
350
|
+
5. Trả kết quả phân tích cho user
|
|
351
|
+
|
|
352
|
+
# Lần 1: trả bullet list
|
|
353
|
+
# Lần 2: trả paragraphs
|
|
354
|
+
# Lần 3: trả table
|
|
355
|
+
# User confused, không parse được programmatically
|
|
356
|
+
|
|
357
|
+
✅ ĐÚNG — The Contract (output hợp đồng):
|
|
358
|
+
# Instructions
|
|
359
|
+
5. Output BẮT BUỘC theo format sau — KHÔNG được thay đổi structure:
|
|
360
|
+
|
|
361
|
+
## 📊 Analysis Report
|
|
362
|
+
**File:** [tên file] | **Records:** [số dòng] | **Date:** [ngày]
|
|
363
|
+
|
|
364
|
+
### Findings
|
|
365
|
+
| # | Issue | Severity | Line | Suggestion |
|
|
366
|
+
|---|-------|----------|------|------------|
|
|
367
|
+
| 1 | [mô tả] | 🔴/🟡/🟢 | [số] | [cách fix] |
|
|
368
|
+
|
|
369
|
+
### Summary
|
|
370
|
+
- Total issues: [N]
|
|
371
|
+
- Critical (🔴): [n1] | Warning (🟡): [n2] | Info (🟢): [n3]
|
|
372
|
+
|
|
373
|
+
### Next Steps
|
|
374
|
+
- [ ] [action item 1]
|
|
375
|
+
- [ ] [action item 2]
|
|
376
|
+
|
|
377
|
+
⚠️ KHÔNG được thêm section khác.
|
|
378
|
+
⚠️ KHÔNG được bỏ section nào dù không có data (ghi "None" nếu trống).
|
|
379
|
+
⚠️ Table PHẢI có header row.
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
**Tại sao quan trọng:** Output consistent = user có thể:
|
|
383
|
+
1. Regex/parse output tự động
|
|
384
|
+
2. Build workflow chain (output skill A → input skill B)
|
|
385
|
+
3. Tin tưởng format → đỡ phải review toàn bộ
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
### 📆 Pattern 10: The Changelog — Versioning & Evolution
|
|
390
|
+
|
|
391
|
+
**Nguyên lý:** Skill là living document. Production skill không có version =
|
|
392
|
+
ticking time bomb. API thay đổi, requirements thay đổi, AI model thay đổi.
|
|
393
|
+
|
|
394
|
+
```markdown
|
|
395
|
+
❌ SAI — The Fossil (hóa thạch):
|
|
396
|
+
# Skill tạo tháng 1/2026
|
|
397
|
+
# Tháng 6/2026: Tool đã update API v3 → skill vẫn gọi API v2 → 404 errors
|
|
398
|
+
# Tháng 9/2026: AI model mới hiểu instructions khác → output sai
|
|
399
|
+
# Không ai biết lần cuối skill được review là khi nào
|
|
400
|
+
|
|
401
|
+
✅ ĐÚNG — The Changelog (có lịch sử):
|
|
402
|
+
---
|
|
403
|
+
name: invoice-processor
|
|
404
|
+
description: |
|
|
405
|
+
...
|
|
406
|
+
---
|
|
407
|
+
<!-- Version: 2.3.1 -->
|
|
408
|
+
<!-- Last reviewed: 2026-03-01 -->
|
|
409
|
+
<!-- Changelog:
|
|
410
|
+
v2.3.1 (2026-03-01) - Fix: handle new VNPay API response format
|
|
411
|
+
v2.3.0 (2026-02-15) - Feature: thêm support MoMo payment
|
|
412
|
+
v2.2.0 (2026-01-20) - Feature: export CSV ngoài JSON
|
|
413
|
+
v2.1.0 (2025-12-01) - Fix: encoding CP1258 cho tên tiếng Việt
|
|
414
|
+
v2.0.0 (2025-10-15) - BREAKING: đổi output format sang table
|
|
415
|
+
v1.0.0 (2025-09-01) - Initial release
|
|
416
|
+
-->
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**SemVer cho Skill — Khi nào tăng version gì:**
|
|
420
|
+
|
|
421
|
+
| Change | Version | Ví dụ |
|
|
422
|
+
|---|---|---|
|
|
423
|
+
| **BREAKING** — Output format thay đổi | Major (v2→v3) | Đổi JSON → table |
|
|
424
|
+
| **Feature** — Thêm khả năng mới | Minor (v2.0→v2.1) | Thêm export CSV |
|
|
425
|
+
| **Fix** — Sửa lỗi, adjust wording | Patch (v2.1.0→v2.1.1) | Fix encoding bug |
|
|
426
|
+
|
|
427
|
+
**Review cycle:** Mỗi 3 tháng → đọc lại skill → chạy Phase 6 eval lại.
|
|
428
|
+
Xem Anti-Pattern #15 (The Frozen Skill) để hiểu rủi ro.
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## Atomic Logic — 1 Skill = 1 Việc Hoàn Hảo
|
|
433
|
+
|
|
434
|
+
Nguyên tắc số 1 từ mọi AI lab: **Single Responsibility**.
|
|
435
|
+
Giống function trong code — 1 function = 1 nhiệm vụ.
|
|
436
|
+
|
|
437
|
+
**3 dấu hiệu skill cần tách:**
|
|
438
|
+
1. Tên có "and" → `"review AND deploy code"` → tách thành 2
|
|
439
|
+
2. Description cần > 3 dòng → quá phức tạp
|
|
440
|
+
3. User dùng skill cho 2 mục đích khác nhau → 2 skills
|
|
441
|
+
|
|
442
|
+
```markdown
|
|
443
|
+
❌ The Octopus (ôm đồm):
|
|
444
|
+
"code-assistant" → review + deploy + test + format + PR + branch
|
|
445
|
+
SKILL.md: 700 dòng, 15 nhánh IF/ELSE
|
|
446
|
+
|
|
447
|
+
✅ The Specialist (chuyên sâu):
|
|
448
|
+
"code-reviewer" → 120 dòng, 1 việc, trigger chính xác
|
|
449
|
+
"app-deployer" → 150 dòng, 1 việc, safety checks
|
|
450
|
+
"test-writer" → 100 dòng, 1 việc, framework-aware
|
|
451
|
+
"commit-formatter" → 80 dòng, 1 việc, conventional commits
|
|
452
|
+
Mỗi skill "sắc" hơn vì tập trung 100% vào 1 nhiệm vụ.
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## Repeated Work Detection — Tối Ưu Execution
|
|
458
|
+
|
|
459
|
+
Đọc lại transcripts sau test runs. Tìm pattern:
|
|
460
|
+
|
|
461
|
+
**Checklist phát hiện repeated work:**
|
|
462
|
+
- [ ] Có đoạn code > 10 dòng AI viết lại giống nhau giữa 2+ runs?
|
|
463
|
+
- [ ] AI luôn Google/search cùng 1 thông tin mỗi lần chạy?
|
|
464
|
+
- [ ] Có validation phức tạp mà AI phải tự viết lại mỗi lần?
|
|
465
|
+
- [ ] AI mất > 30 giây xây dựng lại context mà lần trước đã có?
|
|
466
|
+
|
|
467
|
+
→ **Nếu YES:** Bundle vào `scripts/` hoặc `resources/`.
|
|
468
|
+
Giảm execution time, tăng consistency, giảm token cost.
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## Safety Architecture — 3 Tầng Bảo Vệ
|
|
473
|
+
|
|
474
|
+
Không phải afterthought. Safety là **foundation layer** — xây trước, không phải sau.
|
|
475
|
+
|
|
476
|
+
| Tầng | Bảo vệ gì | Ví dụ | Check |
|
|
477
|
+
|---|---|---|---|
|
|
478
|
+
| **L1: Data** | Không leak thông tin nhạy cảm | API keys, passwords, PII | Pattern scan output |
|
|
479
|
+
| **L2: Action** | Không destructive commands | `rm -rf`, `DROP TABLE`, `format disk` | Require confirm |
|
|
480
|
+
| **L3: Scope** | Không vượt ranh giới skill | Skill format code KHÔNG deploy | Scope boundary check |
|
|
481
|
+
|
|
482
|
+
**Nguyên tắc Lack of Surprise (từ Anthropic):**
|
|
483
|
+
Skill không được chứa hành vi mà user sẽ "bất ngờ" nếu được mô tả.
|
|
484
|
+
Nếu bạn cần giấu behavior trong description → behavior đó có vấn đề.
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
## 📋 Master Checklist — Trước Khi Deploy
|
|
489
|
+
|
|
490
|
+
### Metadata (Lớp 1)
|
|
491
|
+
- [ ] `name` kebab-case, ≤ 30 ký tự, mô tả 1-2 từ
|
|
492
|
+
- [ ] `description` ≥ 50 ký tự, "pushy" (📚 `resources/description_optimization.md`)
|
|
493
|
+
- [ ] Có ≥ 3 trigger phrases + ≥ 1 anti-trigger
|
|
494
|
+
- [ ] Cover cả formal + casual language ("viết báo cáo" + "report đi sếp")
|
|
495
|
+
|
|
496
|
+
### Goal
|
|
497
|
+
- [ ] Đúng 1 câu, trả lời "Skill tồn tại để làm gì?"
|
|
498
|
+
- [ ] Có metric đo lường ("trong 2 phút", "coverage ≥ 80%")
|
|
499
|
+
- [ ] Đọc xong không cần hỏi "rồi sao?"
|
|
500
|
+
|
|
501
|
+
### Instructions (Lớp 2)
|
|
502
|
+
- [ ] Mỗi step = 1 hành động CỤ THỂ (🎯 The Sniper)
|
|
503
|
+
- [ ] Dùng semantic verbs — không "xử lý", "kiểm tra" (🔬 The Microscope)
|
|
504
|
+
- [ ] Logic rẽ nhánh dùng IF/ELSE tường minh (🌳 The Decision Tree)
|
|
505
|
+
- [ ] Giải thích WHY cho rules quan trọng (🧬 The DNA)
|
|
506
|
+
- [ ] Có error recovery ≥ 3 tầng (🛡️ The Safety Net)
|
|
507
|
+
- [ ] Confidence scoring cho output mơ hồ (🎚️ The Dial)
|
|
508
|
+
- [ ] Có ≥ 1 VERIFY step cuối
|
|
509
|
+
|
|
510
|
+
### Examples
|
|
511
|
+
- [ ] ≥ 2 ví dụ theo nguyên tắc 3C: Contrasting, Complete, Contextual (🪞 The Mirror)
|
|
512
|
+
- [ ] Dữ liệu THẬT — không placeholder, không lorem ipsum
|
|
513
|
+
- [ ] Input VÀ Output đều đầy đủ
|
|
514
|
+
|
|
515
|
+
### Constraints
|
|
516
|
+
- [ ] ≥ 1 "KHÔNG ĐƯỢC" (nghĩ: "điều tệ nhất?" → cấm nó)
|
|
517
|
+
- [ ] CAPS LOCK chỉ cho security/safety rules
|
|
518
|
+
- [ ] Safety 3 tầng: Data + Action + Scope
|
|
519
|
+
|
|
520
|
+
### Meta
|
|
521
|
+
- [ ] SKILL.md < 500 dòng
|
|
522
|
+
- [ ] Có version number + changelog (📆 The Changelog)
|
|
523
|
+
- [ ] Output format contract rõ ràng (📐 The Contract)
|
|
524
|
+
- [ ] Complex logic → tách resources/ (🏗️ The Blueprint)
|
|
525
|
+
- [ ] Cross-ref resources/ khi cần chi tiết
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
## 📊 Bảng Tổng Hợp — 10 Patterns
|
|
530
|
+
|
|
531
|
+
| # | Pattern | Tên | Giải quyết gì | Phát hiện bằng |
|
|
532
|
+
|---|---|---|---|---|
|
|
533
|
+
| 1 | 🎯 The Sniper | Imperative Precision | Instructions mơ hồ | Step có thể hiểu 2 cách |
|
|
534
|
+
| 2 | 🧬 The DNA | Explain The Why | AI không follow rules | Rules thiếu lý do |
|
|
535
|
+
| 3 | 🪞 The Mirror | Show Don't Tell | Output sai format | Thiếu examples |
|
|
536
|
+
| 4 | 🏗️ The Blueprint | Domain Organization | SKILL.md quá dài | > 500 dòng, nhiều variants |
|
|
537
|
+
| 5 | 🛡️ The Safety Net | Error Recovery | AI crash khi gặp lỗi | Steps thiếu IF error |
|
|
538
|
+
| 6 | 🎚️ The Dial | Confidence Scoring | AI tự tin sai | Output mơ hồ, no scale |
|
|
539
|
+
| 7 | 🔬 The Microscope | Semantic Verbs | AI hiểu sai hành động | Dùng "xử lý", "kiểm tra" |
|
|
540
|
+
| 8 | 🌳 The Decision Tree | Explicit Branching | Output inconsistent | Nhiều nhánh, không IF/ELSE |
|
|
541
|
+
| 9 | 📐 The Contract | Output Specification | Mỗi lần output khác | Không define format |
|
|
542
|
+
| 10 | 📆 The Changelog | Versioning | Skill outdated | Không có version/date |
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## 🔬 Case Study: Từ Ý Tưởng → Skill Production
|
|
547
|
+
|
|
548
|
+
**Bài toán thực tế:** Team 5 dev, mỗi thứ 6 phải gửi báo cáo tuần cho PM.
|
|
549
|
+
Mỗi người mất 20-30 phút viết. Muốn AI tự viết từ data Jira.
|
|
550
|
+
|
|
551
|
+
### Bước 1: User nói
|
|
552
|
+
|
|
553
|
+
> "Tạo skill viết weekly report từ Jira. Format markdown, gửi Slack."
|
|
554
|
+
|
|
555
|
+
### Bước 2: Apply 10 Patterns
|
|
556
|
+
|
|
557
|
+
| Vấn đề phát hiện | Pattern áp dụng | Hành động |
|
|
558
|
+
|---|---|---|
|
|
559
|
+
| "Viết weekly report" quá mơ hồ | 🎯 Sniper | Tách thành 6 steps cụ thể |
|
|
560
|
+
| Tại sao < 400 từ? Tại sao có "Vướng mắc"? | 🧬 DNA | Thêm WHY cho mỗi constraint |
|
|
561
|
+
| AI không biết format mong muốn | 🪞 Mirror | Thêm 2 examples (happy + thiếu data) |
|
|
562
|
+
| Jira API có thể fail | 🛡️ Safety Net | Thêm fallback: hỏi user nhập tay |
|
|
563
|
+
| "Gửi Slack" ngoài scope format | Atomic Logic | Tách thành 2 skills: writer + sender |
|
|
564
|
+
| Output mỗi lần khác nhau | 📐 Contract | Define exact format 4 sections |
|
|
565
|
+
| AI có thể đoán sai tasks | 🎚️ Dial | Confidence check trước khi submit |
|
|
566
|
+
|
|
567
|
+
### Bước 3: Skill hoàn chỉnh sau khi apply patterns
|
|
568
|
+
|
|
569
|
+
```markdown
|
|
570
|
+
---
|
|
571
|
+
name: weekly-report-writer
|
|
572
|
+
description: |
|
|
573
|
+
Sinh báo cáo tuần chuyên nghiệp từ dữ liệu công việc. Dùng khi user
|
|
574
|
+
nói "viết báo cáo tuần", "weekly report", "gửi update cho sếp",
|
|
575
|
+
"tóm tắt công việc tuần này", kể cả "report đi sếp ơi".
|
|
576
|
+
KHÔNG dùng cho: viết email, tạo slide, phân tích data.
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
# Goal
|
|
580
|
+
Sinh báo cáo tuần 4 phần trong 2 phút, consistent 100% across team members.
|
|
581
|
+
|
|
582
|
+
# Instructions
|
|
583
|
+
1. Hỏi user: "Tuần này em làm được gì? Đang dở gì? Có vướng gì không?"
|
|
584
|
+
- Nếu user paste Jira link → đọc trực tiếp
|
|
585
|
+
- Nếu user nói tóm tắt → extract từ text
|
|
586
|
+
- Nếu user nói "không biết" → hỏi 3 câu gợi ý:
|
|
587
|
+
"Mở Jira/Git lên, tuần này em commit bao nhiêu? PR nào merge?"
|
|
588
|
+
2. Parse → 4 phần BẮT BUỘC (thứ tự không đổi):
|
|
589
|
+
- ✅ Đã hoàn thành (quantify: "5 tasks", "3 PRs")
|
|
590
|
+
- 🔄 Đang thực hiện (progress: "70% xong", "chờ review")
|
|
591
|
+
- ⚠️ Vướng mắc (nếu không có → ghi "Không có" — sếp SẼ HỎI nếu thiếu)
|
|
592
|
+
- 📋 Kế hoạch tuần tới (≤ 3 items, actionable)
|
|
593
|
+
3. Format markdown table — giữ dưới 400 từ
|
|
594
|
+
(sếp đọc trên điện thoại lúc di chuyển, quá dài skip)
|
|
595
|
+
4. Verify: đếm 4 sections? Dưới 400 từ? Có số liệu cụ thể?
|
|
596
|
+
IF confidence < 70%: "Em chưa chắc phần vướng mắc. Anh confirm giúp?"
|
|
597
|
+
|
|
598
|
+
# Examples
|
|
599
|
+
## Ví dụ 1: Happy path
|
|
600
|
+
**Input:** "tuần này push 3 PRs merge hết, đang review VNPay, không vướng gì"
|
|
601
|
+
**Output:**
|
|
602
|
+
| Mục | Chi tiết |
|
|
603
|
+
|-----|---------|
|
|
604
|
+
| ✅ Đã hoàn thành | Push 3 PRs → tất cả đã merged |
|
|
605
|
+
| 🔄 Đang thực hiện | Review tích hợp VNPay (60%) |
|
|
606
|
+
| ⚠️ Vướng mắc | Không có |
|
|
607
|
+
| 📋 Tuần tới | Hoàn thành VNPay integration |
|
|
608
|
+
|
|
609
|
+
## Ví dụ 2: Edge case — user nói ít
|
|
610
|
+
**Input:** "tuần này bận quá không nhớ làm gì"
|
|
611
|
+
**Output (AI hỏi lại):**
|
|
612
|
+
"Không sao anh. Để em gợi ý nhé:
|
|
613
|
+
1. Mở Git → tuần này anh commit bao nhiêu lần?
|
|
614
|
+
2. Mở Jira → có task nào chuyển Done không?
|
|
615
|
+
3. Có meeting hay discussion nào quan trọng không?"
|
|
616
|
+
|
|
617
|
+
# Constraints
|
|
618
|
+
- 🚫 KHÔNG quá 400 từ (WHY: sếp đọc điện thoại)
|
|
619
|
+
- 🚫 KHÔNG bỏ section "Vướng mắc" dù trống (WHY: sếp hỏi)
|
|
620
|
+
- ✅ LUÔN có số liệu cụ thể (3 PRs, 5 tasks, 70%)
|
|
621
|
+
- ✅ LUÔN đủ 4 sections theo đúng thứ tự
|
|
622
|
+
- ⚠️ Nếu user chỉ nói 1-2 câu → hỏi lại, KHÔNG tự bịa
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
**Kết quả:** 5 dev dùng → báo cáo consistent, mỗi người tiết kiệm 25 phút/tuần =
|
|
626
|
+
**10+ giờ/tháng cho team.** PM happy vì format luôn giống nhau, dễ scan.
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
📚 **Cross-references:**
|
|
631
|
+
- `resources/prompt_engineering.md` — 16 nguyên tắc viết instructions
|
|
632
|
+
- `resources/anti_patterns.md` — 15 lỗi phổ biến cần tránh
|
|
633
|
+
- `resources/skill_template.md` — Template chuẩn cho SKILL.md
|
|
634
|
+
- `resources/description_optimization.md` — Tối ưu trigger accuracy
|