ai-developer-skill-os 7.5.0 → 8.1.4
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/.agents/CHANGELOG.md +2 -1
- package/.agents/README.md +51 -10
- package/.agents/docs/ARCHITECTURE.md +156 -0
- package/.agents/docs/CHI_TIET_SKILLS.md +2 -1
- package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +36 -0
- package/.agents/docs/MIGRATION-STATUS.md +35 -0
- package/.agents/docs/MIGRATION-V8.md +10 -0
- package/.agents/docs/ROADMAP-V8.2.md +78 -0
- package/.agents/docs/V8-CERTIFICATION.md +27 -0
- package/.agents/docs/VERSIONING.md +95 -0
- package/.agents/docs/decisions/ADR-001-v8-migration.md +58 -0
- package/.agents/docs/decisions/ADR-002-workflow-separation.md +50 -0
- package/.agents/docs/decisions/ADR-003-registry-generated.md +54 -0
- package/.agents/docs/decisions/ADR-008-skill-boundary-review.md +27 -0
- package/.agents/docs/schemas/learning.schema.yml +69 -0
- package/.agents/docs/schemas/skill.schema.yml +188 -0
- package/.agents/docs/schemas/workflow.schema.yml +33 -0
- package/.agents/knowledge/design-intelligence/industries/ecommerce.md +3 -0
- package/.agents/knowledge/design-intelligence/industries/fintech.md +3 -0
- package/.agents/knowledge/design-intelligence/industries/healthcare.md +3 -0
- package/.agents/learnings/draft/README.md +37 -0
- package/.agents/registry/capability-graph.yml +500 -0
- package/.agents/registry/skills-index.yml +525 -0
- package/.agents/reports/RELEASE-CHECKLIST.md +29 -0
- package/.agents/reports/architecture-audit.md +13 -0
- package/.agents/reports/graph-health.md +20 -0
- package/.agents/reports/skill-audit.md +215 -0
- package/.agents/rules/coding.md +102 -0
- package/.agents/rules/command-safety.md +21 -0
- package/.agents/rules/global.md +135 -0
- package/.agents/rules/priorities.yml +24 -0
- package/.agents/rules/safety.md +84 -0
- package/.agents/rules/security.md +13 -0
- package/.agents/rules/skill-quality.md +14 -0
- package/.agents/skills/_template/SKILL.md +132 -0
- package/.agents/skills/qk-access-policy/SKILL.md +61 -5
- package/.agents/skills/qk-agent-observability/SKILL.md +73 -0
- package/.agents/skills/qk-ai-builder/SKILL.md +62 -5
- package/.agents/skills/qk-api-lifecycle/SKILL.md +59 -6
- package/.agents/skills/qk-bug-resolution/SKILL.md +64 -6
- package/.agents/skills/qk-context-loader/SKILL.md +63 -11
- package/.agents/skills/qk-data-lifecycle/SKILL.md +61 -5
- package/.agents/skills/qk-db-optimizer/SKILL.md +61 -5
- package/.agents/skills/qk-design-system-engineering/SKILL.md +112 -0
- package/.agents/skills/qk-devops-platform/SKILL.md +117 -0
- package/.agents/skills/qk-docs/SKILL.md +62 -6
- package/.agents/skills/qk-engineering-standard/SKILL.md +62 -12
- package/.agents/skills/qk-fe-api-integration/SKILL.md +60 -6
- package/.agents/skills/qk-feature-delivery/SKILL.md +65 -6
- package/.agents/skills/qk-frontend-architecture/SKILL.md +134 -0
- package/.agents/skills/qk-help/SKILL.md +245 -193
- package/.agents/skills/qk-orchestrator/SKILL.md +67 -13
- package/.agents/skills/qk-orchestrator/references/routing-table.md +4 -3
- package/.agents/skills/qk-product-specification/SKILL.md +130 -0
- package/.agents/skills/qk-production-release/SKILL.md +59 -6
- package/.agents/skills/qk-project-bootstrap/SKILL.md +68 -7
- package/.agents/skills/qk-project-health/SKILL.md +63 -6
- package/.agents/skills/qk-project-memory/SKILL.md +109 -6
- package/.agents/skills/qk-security-audit/SKILL.md +135 -0
- package/.agents/skills/qk-system-evolution/SKILL.md +63 -12
- package/.agents/skills/qk-test-engineering/SKILL.md +139 -0
- package/.agents/skills/qk-ui-audit/SKILL.md +63 -8
- package/.agents/skills/qk-ui-builder/SKILL.md +509 -0
- package/.agents/skills/qk-ui-builder/references/anti-patterns.md +295 -0
- package/.agents/skills/qk-ui-builder/references/color.md +115 -0
- package/.agents/skills/qk-ui-builder/references/component-cookbook.md +1194 -0
- package/.agents/skills/qk-ui-builder/references/copy.md +250 -0
- package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +115 -0
- package/.agents/skills/qk-ui-builder/references/layout-and-space.md +111 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +51 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +44 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +51 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +51 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +45 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures.md +38 -0
- package/.agents/skills/qk-ui-builder/references/motion.md +95 -0
- package/.agents/skills/qk-ui-builder/references/responsive.md +115 -0
- package/.agents/skills/qk-ui-builder/references/slop-test.md +135 -0
- package/.agents/skills/qk-ui-builder/references/structure.md +280 -0
- package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +53 -0
- package/.agents/skills/qk-ui-builder/references/themes/carnival.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/editorial.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/garden.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/hum.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/lumen.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/midnight.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/playful.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/specimen.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/terminal.md +52 -0
- package/.agents/skills/qk-ui-builder/references/typography.md +129 -0
- package/.agents/skills/qk-ui-system-builder/SKILL.md +61 -5
- package/.agents/skills/qk-validation-gate/SKILL.md +63 -11
- package/.agents/skills/qk-web-quality-gate/SKILL.md +114 -0
- package/.agents/workflows/_schema.yml +109 -0
- package/.agents/workflows/bug-resolution.yml +101 -0
- package/.agents/workflows/code-review.yml +77 -0
- package/.agents/workflows/documentation.yml +75 -0
- package/.agents/workflows/feature-delivery.yml +103 -0
- package/.agents/workflows/refactor.yml +81 -0
- package/.agents/workflows/research.yml +60 -0
- package/.agents/workflows/security-audit.yml +72 -0
- package/.agents/workflows/skill-evolution.yml +65 -0
- package/.agents/workflows/spec-driven-development.yml +57 -0
- package/CHANGELOG.md +91 -69
- package/README.md +50 -45
- package/bin/install.js +57 -309
- package/package.json +14 -3
- package/tooling/generate-evaluation-cases.cjs +44 -0
- package/tooling/generate-registry.js +157 -0
- package/tooling/run-aar.js +143 -0
- package/tooling/validate-graph.js +87 -0
- package/tooling/validate-skills.js +102 -0
- package/.agents/_template/BEHAVIOR_SPEC.md +0 -96
- package/.agents/_template/examples/example-en.md +0 -49
- package/.agents/_template/examples/example-vi.md +0 -49
- package/.agents/skills/qk-design-to-code/SKILL.md +0 -285
- package/.agents/skills.json +0 -819
- package/.github/workflows/ci.yml +0 -56
- package/.qk-ai-skill-os/CHANGELOG.md +0 -69
- package/.qk-ai-skill-os/LICENSE +0 -21
- package/.qk-ai-skill-os/README.md +0 -59
- package/.qk-ai-skill-os/_template/BEHAVIOR_SPEC.md +0 -96
- package/.qk-ai-skill-os/_template/examples/example-en.md +0 -49
- package/.qk-ai-skill-os/_template/examples/example-vi.md +0 -49
- package/.qk-ai-skill-os/docs/CHI_TIET_SKILLS.md +0 -125
- package/.qk-ai-skill-os/docs/GOVERNANCE.md +0 -40
- package/.qk-ai-skill-os/docs/HUONG_DAN_SU_DUNG.md +0 -120
- package/.qk-ai-skill-os/docs/SPEC.md +0 -87
- package/.qk-ai-skill-os/docs/adr/0001-intent-based-architecture.md +0 -19
- package/.qk-ai-skill-os/docs/adr/0002-kernel-freeze.md +0 -21
- package/.qk-ai-skill-os/docs/adr/0003-risk-based-verification.md +0 -20
- package/.qk-ai-skill-os/docs/adr/0004-progressive-evidence.md +0 -19
- package/.qk-ai-skill-os/docs/skill-classification.md +0 -25
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +0 -121
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +0 -179
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-api-integration/SKILL.md +0 -389
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-auth-security/SKILL.md +0 -96
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +0 -125
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-bug-fix/SKILL.md +0 -213
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-component-generator/SKILL.md +0 -136
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-context-manager/SKILL.md +0 -175
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-database-engineer/SKILL.md +0 -104
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-deployment/SKILL.md +0 -96
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-design-system/SKILL.md +0 -137
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-form-builder/SKILL.md +0 -140
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +0 -155
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +0 -133
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +0 -129
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +0 -146
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-git-engineer/SKILL.md +0 -304
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-help/SKILL.md +0 -68
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-migration/SKILL.md +0 -284
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-project-audit/SKILL.md +0 -280
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-refactor/SKILL.md +0 -222
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-state-management/SKILL.md +0 -140
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +0 -127
- package/.qk-ai-skill-os/skills/_archive_old_skills/qk-ui-builder/SKILL.md +0 -152
- package/.qk-ai-skill-os/skills/_template/SKILL.md +0 -238
- package/.qk-ai-skill-os/skills/qk-access-policy/SKILL.md +0 -179
- package/.qk-ai-skill-os/skills/qk-ai-builder/SKILL.md +0 -221
- package/.qk-ai-skill-os/skills/qk-api-lifecycle/SKILL.md +0 -176
- package/.qk-ai-skill-os/skills/qk-bug-resolution/SKILL.md +0 -307
- package/.qk-ai-skill-os/skills/qk-context-loader/SKILL.md +0 -218
- package/.qk-ai-skill-os/skills/qk-data-lifecycle/SKILL.md +0 -192
- package/.qk-ai-skill-os/skills/qk-db-optimizer/SKILL.md +0 -196
- package/.qk-ai-skill-os/skills/qk-design-to-code/SKILL.md +0 -291
- package/.qk-ai-skill-os/skills/qk-docs/SKILL.md +0 -198
- package/.qk-ai-skill-os/skills/qk-engineering-standard/SKILL.md +0 -351
- package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/backend.md +0 -122
- package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/database.md +0 -3
- package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/frontend.md +0 -152
- package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/security.md +0 -3
- package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/testing.md +0 -3
- package/.qk-ai-skill-os/skills/qk-fe-api-integration/SKILL.md +0 -326
- package/.qk-ai-skill-os/skills/qk-feature-delivery/SKILL.md +0 -305
- package/.qk-ai-skill-os/skills/qk-help/SKILL.md +0 -193
- package/.qk-ai-skill-os/skills/qk-orchestrator/SKILL.md +0 -277
- package/.qk-ai-skill-os/skills/qk-orchestrator/references/routing-table.md +0 -77
- package/.qk-ai-skill-os/skills/qk-production-release/SKILL.md +0 -290
- package/.qk-ai-skill-os/skills/qk-project-bootstrap/SKILL.md +0 -240
- package/.qk-ai-skill-os/skills/qk-project-health/SKILL.md +0 -199
- package/.qk-ai-skill-os/skills/qk-project-memory/SKILL.md +0 -172
- package/.qk-ai-skill-os/skills/qk-system-evolution/SKILL.md +0 -285
- package/.qk-ai-skill-os/skills/qk-ui-audit/SKILL.md +0 -314
- package/.qk-ai-skill-os/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
- package/.qk-ai-skill-os/skills/qk-ui-system-builder/SKILL.md +0 -225
- package/.qk-ai-skill-os/skills/qk-validation-gate/SKILL.md +0 -361
- package/.qk-ai-skill-os/skills.json +0 -819
- package/CLAUDE.md +0 -110
- package/_template/BEHAVIOR_SPEC.md +0 -96
- package/_template/examples/example-en.md +0 -49
- package/_template/examples/example-vi.md +0 -49
- package/add_lang.js +0 -21
- package/add_lang.py +0 -25
- package/add_sections.py +0 -53
- package/bin/lint.js +0 -122
- package/docs/CHI_TIET_SKILLS.md +0 -125
- package/docs/GOVERNANCE.md +0 -40
- package/docs/HUONG_DAN_SU_DUNG.md +0 -120
- package/docs/SPEC.md +0 -87
- package/docs/adr/0001-intent-based-architecture.md +0 -19
- package/docs/adr/0002-kernel-freeze.md +0 -21
- package/docs/adr/0003-risk-based-verification.md +0 -20
- package/docs/adr/0004-progressive-evidence.md +0 -19
- package/docs/skill-classification.md +0 -25
- package/fix_seeds.js +0 -22
- package/framework/KERNEL.md +0 -83
- package/framework/bias-library/cosmetic-refactor.md +0 -21
- package/framework/bias-library/enterprise-crud.md +0 -21
- package/framework/bias-library/fake-ui-slop.md +0 -20
- package/framework/bias-library/hallucinated-tools.md +0 -20
- package/framework/bias-library/missing-ui-states.md +0 -19
- package/framework/bias-library/over-indexing.md +0 -20
- package/framework/bias-library/swallow-errors.md +0 -19
- package/framework/bias-library/ui-only-security.md +0 -17
- package/framework/decision-primitives.md +0 -47
- package/framework/dial-library/complexity-budget.md +0 -13
- package/framework/dial-library/granularity.md +0 -13
- package/framework/dial-library/optimization-strategy.md +0 -13
- package/framework/dial-library/strictness.md +0 -13
- package/framework/rule-library/delegation-only.md +0 -9
- package/framework/rule-library/minimal-diff.md +0 -9
- package/framework/skill-schema.md +0 -310
- package/knowledge/backend/nodejs.md +0 -52
- package/knowledge/frontend/react.md +0 -81
- package/migrate-to-v6.js +0 -130
- package/migrate.js +0 -147
- package/migrate.py +0 -133
- package/migrate_all.cjs +0 -96
- package/patch.js +0 -15
- package/patch.py +0 -89
- package/patch2.py +0 -83
- package/rename.js +0 -64
- package/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +0 -121
- package/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +0 -179
- package/skills/_archive_old_skills/qk-api-integration/SKILL.md +0 -389
- package/skills/_archive_old_skills/qk-auth-security/SKILL.md +0 -96
- package/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +0 -125
- package/skills/_archive_old_skills/qk-bug-fix/SKILL.md +0 -213
- package/skills/_archive_old_skills/qk-component-generator/SKILL.md +0 -136
- package/skills/_archive_old_skills/qk-context-manager/SKILL.md +0 -175
- package/skills/_archive_old_skills/qk-database-engineer/SKILL.md +0 -104
- package/skills/_archive_old_skills/qk-deployment/SKILL.md +0 -96
- package/skills/_archive_old_skills/qk-design-system/SKILL.md +0 -137
- package/skills/_archive_old_skills/qk-form-builder/SKILL.md +0 -140
- package/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +0 -155
- package/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +0 -133
- package/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +0 -129
- package/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +0 -146
- package/skills/_archive_old_skills/qk-git-engineer/SKILL.md +0 -304
- package/skills/_archive_old_skills/qk-help/SKILL.md +0 -68
- package/skills/_archive_old_skills/qk-migration/SKILL.md +0 -284
- package/skills/_archive_old_skills/qk-project-audit/SKILL.md +0 -280
- package/skills/_archive_old_skills/qk-refactor/SKILL.md +0 -222
- package/skills/_archive_old_skills/qk-state-management/SKILL.md +0 -140
- package/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +0 -127
- package/skills/_archive_old_skills/qk-ui-builder/SKILL.md +0 -152
- package/skills/_template/SKILL.md +0 -238
- package/skills/qk-access-policy/SKILL.md +0 -179
- package/skills/qk-ai-builder/SKILL.md +0 -215
- package/skills/qk-api-lifecycle/SKILL.md +0 -176
- package/skills/qk-bug-resolution/SKILL.md +0 -307
- package/skills/qk-context-loader/SKILL.md +0 -218
- package/skills/qk-data-lifecycle/SKILL.md +0 -192
- package/skills/qk-db-optimizer/SKILL.md +0 -196
- package/skills/qk-design-to-code/SKILL.md +0 -285
- package/skills/qk-docs/SKILL.md +0 -198
- package/skills/qk-engineering-standard/SKILL.md +0 -351
- package/skills/qk-engineering-standard/rules/backend.md +0 -122
- package/skills/qk-engineering-standard/rules/database.md +0 -3
- package/skills/qk-engineering-standard/rules/frontend.md +0 -152
- package/skills/qk-engineering-standard/rules/security.md +0 -3
- package/skills/qk-engineering-standard/rules/testing.md +0 -3
- package/skills/qk-fe-api-integration/SKILL.md +0 -326
- package/skills/qk-feature-delivery/SKILL.md +0 -305
- package/skills/qk-help/SKILL.md +0 -193
- package/skills/qk-orchestrator/SKILL.md +0 -277
- package/skills/qk-orchestrator/references/routing-table.md +0 -77
- package/skills/qk-production-release/SKILL.md +0 -284
- package/skills/qk-project-bootstrap/SKILL.md +0 -234
- package/skills/qk-project-health/SKILL.md +0 -199
- package/skills/qk-project-memory/SKILL.md +0 -172
- package/skills/qk-system-evolution/SKILL.md +0 -281
- package/skills/qk-ui-audit/SKILL.md +0 -314
- package/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
- package/skills/qk-ui-system-builder/SKILL.md +0 -221
- package/skills/qk-validation-gate/SKILL.md +0 -359
- package/skills.json +0 -819
- package/specs/contracts/behavior-contract.yaml +0 -40
- package/specs/expectations/qk-bug-resolution.yaml +0 -35
- package/specs/fixtures/user-payload.json +0 -12
- package/specs/regressions/api-integration-null-fields.yaml +0 -19
- package/specs/scenarios/fix-login-nullref.yaml +0 -3
- package/taste-skill/.claude-plugin/marketplace.json +0 -20
- package/taste-skill/.claude-plugin/plugin.json +0 -19
- package/taste-skill/.github/FUNDING.yml +0 -1
- package/taste-skill/.github/copilot-instructions.md +0 -11
- package/taste-skill/CHANGELOG.md +0 -111
- package/taste-skill/LICENSE +0 -21
- package/taste-skill/README.md +0 -212
- package/taste-skill/assets/.gitkeep +0 -0
- package/taste-skill/assets/readme-banner.webp +0 -0
- package/taste-skill/assets/readme-buttons/btn-agent-skills.webp +0 -0
- package/taste-skill/assets/readme-buttons/btn-changelog.webp +0 -0
- package/taste-skill/assets/readme-buttons/btn-mit.webp +0 -0
- package/taste-skill/assets/readme-buttons/btn-site.webp +0 -0
- package/taste-skill/assets/readme-buttons/btn-tools.webp +0 -0
- package/taste-skill/assets/readme-cta-tasteskill.svg +0 -5
- package/taste-skill/assets/sponsors/animations-dev.webp +0 -0
- package/taste-skill/assets/sponsors/emil-animations-dev.webp +0 -0
- package/taste-skill/assets/taste-skill-logo.png +0 -0
- package/taste-skill/assets/taste-skill-logo.webp +0 -0
- package/taste-skill/assets/vercel-oss-program-badge.svg +0 -44
- package/taste-skill/examples/floria-bottom.webp +0 -0
- package/taste-skill/examples/floria-full.webp +0 -0
- package/taste-skill/examples/floria-top.webp +0 -0
- package/taste-skill/research/README.md +0 -8
- package/taste-skill/research/laziness/README.md +0 -25
- package/taste-skill/research/laziness/findings/empirical-results.md +0 -58
- package/taste-skill/research/laziness/findings/references.md +0 -20
- package/taste-skill/research/laziness/remediation/architectural-patterns.md +0 -55
- package/taste-skill/research/laziness/remediation/parameter-tuning.md +0 -44
- package/taste-skill/research/laziness/remediation/prompt-engineering.md +0 -52
- package/taste-skill/research/laziness/remediation/reference-prompts.md +0 -79
- package/taste-skill/research/laziness/root-causes/cognitive-shortcuts.md +0 -23
- package/taste-skill/research/laziness/root-causes/output-limits.md +0 -39
- package/taste-skill/research/laziness/root-causes/rlhf-and-compute.md +0 -27
- package/taste-skill/research/laziness/root-causes/training-data-bias.md +0 -28
- package/taste-skill/scripts/build-emil-sponsor-row.mjs +0 -41
- package/taste-skill/scripts/convert-readme-assets-webp.mjs +0 -142
- package/taste-skill/scripts/process-readme-buttons.mjs +0 -108
- package/taste-skill/scripts/process-sponsor-badge.mjs +0 -83
- package/taste-skill/skill.sh +0 -25
- package/taste-skill/skills/brandkit/SKILL.md +0 -798
- package/taste-skill/skills/brutalist-skill/SKILL.md +0 -92
- package/taste-skill/skills/gpt-tasteskill/SKILL.md +0 -74
- package/taste-skill/skills/image-to-code-skill/SKILL.md +0 -1228
- package/taste-skill/skills/imagegen-frontend-mobile/SKILL.md +0 -1465
- package/taste-skill/skills/imagegen-frontend-web/SKILL.md +0 -987
- package/taste-skill/skills/llms.txt +0 -13
- package/taste-skill/skills/minimalist-skill/SKILL.md +0 -85
- package/taste-skill/skills/output-skill/SKILL.md +0 -49
- package/taste-skill/skills/redesign-skill/SKILL.md +0 -178
- package/taste-skill/skills/soft-skill/SKILL.md +0 -98
- package/taste-skill/skills/stitch-skill/DESIGN.md +0 -121
- package/taste-skill/skills/stitch-skill/SKILL.md +0 -184
- package/taste-skill/skills/taste-skill/SKILL.md +0 -1206
- package/taste-skill/skills/taste-skill-v1/SKILL.md +0 -226
- package/temp_fix.js +0 -61
- package/templates/DESIGN.md +0 -38
- package/templates/bug-report.md +0 -21
- package/templates/design-report.md +0 -21
- package/templates/feature-report.md +0 -20
- package/templates/review-report.md +0 -21
- package/templates/skill-template.md +0 -38
- package/tests/behavior-conformance.test.js +0 -154
- package/tests/install-script.test.js +0 -38
- package/tests/registry.test.js +0 -111
- package/update_template.js +0 -28
- package/vitest.config.js +0 -11
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-
|
|
3
|
-
description: >-
|
|
4
|
-
Triển khai tính năng đăng nhập (JWT, OAuth), phân quyền (RBAC) và bảo vệ app khỏi các lỗ hổng OWASP.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: backend
|
|
7
|
-
tags: [auth, security, jwt, oauth, rbac, owasp]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Auth & Security Engineer
|
|
12
|
-
|
|
13
|
-
> **Language rule:**
|
|
14
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
15
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
16
|
-
> The user may write in any language — detect and match it automatically.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Trigger
|
|
21
|
-
|
|
22
|
-
Activate this skill when:
|
|
23
|
-
- User asks to "add login", "protect this route", or "implement OAuth"
|
|
24
|
-
- Defining user roles and permissions (Admin vs User)
|
|
25
|
-
- Project audit flags security vulnerabilities (P0/P1)
|
|
26
|
-
- Handling sensitive data (passwords, PII, API keys)
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Scope
|
|
31
|
-
|
|
32
|
-
- ✅ **Authentication:** JWT, Session Cookies, OAuth2 (Google, GitHub, etc.), Magic Links.
|
|
33
|
-
- ✅ **Authorization:** Role-Based Access Control (RBAC), Middleware guards.
|
|
34
|
-
- ✅ **Data Protection:** Hashing passwords (bcrypt, Argon2), encrypting sensitive fields.
|
|
35
|
-
- ✅ **Vulnerability Prevention:** CSRF protection, Rate Limiting, CORS config, input sanitization (SQLi/XSS).
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Non-goals
|
|
40
|
-
|
|
41
|
-
- ❌ Do NOT store passwords in plain text. Ever.
|
|
42
|
-
- ❌ Do NOT hardcode secrets or private keys in the code (use `.env`).
|
|
43
|
-
- ❌ Do NOT store JWTs in `localStorage` if cookies (`httpOnly`) are an option, unless explicitly requested.
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Workflow
|
|
48
|
-
|
|
49
|
-
### Phase 1 — Strategy Selection
|
|
50
|
-
|
|
51
|
-
Determine the auth mechanism:
|
|
52
|
-
1. **Stateless (JWT):** Good for mobile/SPAs, distributed systems.
|
|
53
|
-
2. **Stateful (Sessions):** Good for traditional web apps, easier revocation.
|
|
54
|
-
3. **Third-party (OAuth / Auth0 / NextAuth / Supabase):** Offload auth complexity.
|
|
55
|
-
|
|
56
|
-
### Phase 2 — Implementation
|
|
57
|
-
|
|
58
|
-
**For JWT + Cookies (Recommended Web Pattern):**
|
|
59
|
-
1. Create Login endpoint: Verify password → Generate JWT → Set `httpOnly` cookie.
|
|
60
|
-
2. Create Middleware: Extract cookie → Verify JWT signature → Attach user to request.
|
|
61
|
-
3. Create Logout endpoint: Clear the cookie.
|
|
62
|
-
|
|
63
|
-
**For Authorization:**
|
|
64
|
-
1. Define roles (e.g., `enum Role { ADMIN, USER }`).
|
|
65
|
-
2. Create Role Middleware: Check `req.user.role`.
|
|
66
|
-
|
|
67
|
-
### Phase 3 — Security Audit
|
|
68
|
-
|
|
69
|
-
Verify:
|
|
70
|
-
- Passwords are hashed with a salt (e.g., `bcrypt.hash(password, 10)`).
|
|
71
|
-
- Cookies are `httpOnly`, `Secure` (in prod), and `SameSite`.
|
|
72
|
-
- CORS is configured to only allow trusted origins.
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Output Format
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
🛡️ Auth & Security Report
|
|
80
|
-
─────────────────────────────────────────────────
|
|
81
|
-
Mechanism: [JWT in httpOnly Cookie / OAuth / Session]
|
|
82
|
-
Roles: [Admin, User]
|
|
83
|
-
|
|
84
|
-
Components Implemented:
|
|
85
|
-
✅ Login/Logout handlers
|
|
86
|
-
✅ Auth Middleware (Guard)
|
|
87
|
-
✅ Password hashing (bcrypt)
|
|
88
|
-
|
|
89
|
-
Security measures enforced:
|
|
90
|
-
• `httpOnly`, `Secure`, `SameSite=Strict` on cookies
|
|
91
|
-
• CORS restricted to frontend origin
|
|
92
|
-
|
|
93
|
-
🔗 Next Steps:
|
|
94
|
-
Remember to add `JWT_SECRET` to your production environment variables.
|
|
95
|
-
```
|
|
96
|
-
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-
|
|
3
|
-
description: >-
|
|
4
|
-
Kiểm soát cấu trúc backend, ép buộc tuân thủ mô hình Layer (Controller/Service/Repository) và vị trí file.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: backend
|
|
7
|
-
tags: [architecture, backend, controller, service, repository, structure]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Backend Architecture
|
|
12
|
-
|
|
13
|
-
> **Language rule:**
|
|
14
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
15
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
16
|
-
> The user may write in any language — detect and match it automatically.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Trigger
|
|
21
|
-
|
|
22
|
-
Activate this skill when:
|
|
23
|
-
- Creating new backend API endpoints, services, or models
|
|
24
|
-
- User asks "where should I put this business logic?"
|
|
25
|
-
- Project audit flags mixed concerns (e.g., SQL queries inside a controller)
|
|
26
|
-
- Inheriting or setting up a Node.js, Python, or Go backend
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Scope
|
|
31
|
-
|
|
32
|
-
- ✅ Discover existing backend folder structure
|
|
33
|
-
- ✅ Enforce Layered Architecture (Controller → Service → Data Access)
|
|
34
|
-
- ✅ Enforce Domain/Module-based structure if applicable (`src/users/`, `src/orders/`)
|
|
35
|
-
- ✅ Define where validation, mapping, and error handling should live
|
|
36
|
-
- ✅ Validate file placement before code generation
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Non-goals
|
|
41
|
-
|
|
42
|
-
- ❌ Do NOT rewrite the architecture unless requested
|
|
43
|
-
- ❌ Do NOT write the actual database queries (delegate to `database-engineer`)
|
|
44
|
-
- ❌ Do NOT configure server infrastructure (delegate to `deployment`)
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Severity Levels
|
|
49
|
-
|
|
50
|
-
| Level | Meaning |
|
|
51
|
-
|-------|---------|
|
|
52
|
-
| P0 | Circular dependency or security bypass in architecture |
|
|
53
|
-
| P1 | Mixed concerns (e.g., ORM logic in route handler) |
|
|
54
|
-
| P2 | Inconsistent folder or file naming |
|
|
55
|
-
| P3 | Minor deviation from convention |
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## Workflow
|
|
60
|
-
|
|
61
|
-
### Phase 1 — Architecture Discovery
|
|
62
|
-
|
|
63
|
-
Analyze the project structure:
|
|
64
|
-
1. **Classic MVC / Layered:** `controllers/`, `services/`, `models/`, `routes/`
|
|
65
|
-
2. **Domain-Driven (Module):** `src/modules/user/{controller, service, repository}`
|
|
66
|
-
3. **Framework-specific:** NestJS (`.controller.ts`, `.service.ts`), Django apps, Express monolithic.
|
|
67
|
-
4. **Serverless:** `functions/`, `handlers/`
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
### Phase 2 — Rule Extraction
|
|
72
|
-
|
|
73
|
-
Extract conventions:
|
|
74
|
-
- **Routes/Controllers:** Should only handle HTTP req/res, params validation, and calling services. No business logic.
|
|
75
|
-
- **Services:** Pure business logic. Does not know about HTTP (`req`/`res`).
|
|
76
|
-
- **Repositories/Data Access:** Only layer that interacts with the DB.
|
|
77
|
-
- **Error Handling:** Centralized error middleware vs local try/catch.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
### Phase 3 — File Placement & Routing
|
|
82
|
-
|
|
83
|
-
Map a new requirement to the architecture:
|
|
84
|
-
|
|
85
|
-
*Request: "Add an endpoint to update user profile"*
|
|
86
|
-
- Route: `PUT /api/users/:id` mapped in `src/routes/user.routes.ts`
|
|
87
|
-
- Controller: `updateProfile(req, res)` in `src/controllers/user.controller.ts`
|
|
88
|
-
- Service: `updateUserProfile(userId, data)` in `src/services/user.service.ts`
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Decision Tree
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
Does the project group files by Layer or by Domain?
|
|
96
|
-
├── Layer → Place in `src/controllers/` and `src/services/`
|
|
97
|
-
└── Domain → Place in `src/modules/users/`
|
|
98
|
-
|
|
99
|
-
Where does data validation happen?
|
|
100
|
-
├── Middleware → Add Zod/Joi validation at the router level
|
|
101
|
-
└── Controller → Validate inside the controller function before calling service
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Output Format
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
🏗️ Backend Architecture Plan
|
|
110
|
-
─────────────────────────────────────────────────
|
|
111
|
-
Structure Type: [Layered / Domain-based / Framework-specific]
|
|
112
|
-
|
|
113
|
-
Layer Mapping:
|
|
114
|
-
✅ Controller: [path/to/controller.ts] — handles HTTP
|
|
115
|
-
✅ Service: [path/to/service.ts] — business logic
|
|
116
|
-
✅ Repo/DB: [handled by database-engineer]
|
|
117
|
-
|
|
118
|
-
⚠️ Constraints enforced:
|
|
119
|
-
• Do not pass `req` or `res` objects into the Service layer.
|
|
120
|
-
• Validate all inputs at the Controller/Route level.
|
|
121
|
-
|
|
122
|
-
🔗 Next Steps:
|
|
123
|
-
Proceeding to implement the layers.
|
|
124
|
-
```
|
|
125
|
-
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-bug-fix
|
|
3
|
-
description: >-
|
|
4
|
-
Chẩn đoán và sửa lỗi an toàn. Tái hiện lỗi, tìm nguyên nhân gốc rễ và áp dụng bản sửa lỗi tối thiểu, có kiểm chứng.
|
|
5
|
-
version: 2.0.0
|
|
6
|
-
category: engineering
|
|
7
|
-
tags: [bug, fix, debug, root-cause, regression]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Bug Fix — Diagnose & Repair
|
|
12
|
-
|
|
13
|
-
> **Language rule:**
|
|
14
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
15
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
16
|
-
> The user may write in any language — detect and match it automatically.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Trigger
|
|
21
|
-
|
|
22
|
-
Activate this skill when:
|
|
23
|
-
- User reports a specific bug with a stack trace, error message, or behavior description
|
|
24
|
-
- A test is failing
|
|
25
|
-
- The app crashes or hangs
|
|
26
|
-
- A regression occurred after a code change
|
|
27
|
-
- User says "it's broken", "this doesn't work", "I'm getting an error"
|
|
28
|
-
|
|
29
|
-
**Not this skill** → Use `project-audit` if the problem is unknown and needs discovery first.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Scope
|
|
34
|
-
|
|
35
|
-
- ✅ Reproduce the reported bug
|
|
36
|
-
- ✅ Identify the root cause (not just the symptom)
|
|
37
|
-
- ✅ Apply a minimal, targeted fix
|
|
38
|
-
- ✅ Verify the fix with evidence (tests, logs, comparison)
|
|
39
|
-
- ✅ Prevent recurrence with guards or tests
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Non-goals
|
|
44
|
-
|
|
45
|
-
- ❌ Do NOT refactor code outside the buggy area
|
|
46
|
-
- ❌ Do NOT change public APIs unless the bug requires it
|
|
47
|
-
- ❌ Do NOT silence errors with empty `try/catch` or blind `?.` / `!`
|
|
48
|
-
- ❌ Do NOT change formatting or unrelated code
|
|
49
|
-
- ❌ Do NOT mark as done without verifying the fix
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Severity Levels
|
|
54
|
-
|
|
55
|
-
| Level | Meaning |
|
|
56
|
-
|-------|---------|
|
|
57
|
-
| P0 | Production down, data loss, security breach |
|
|
58
|
-
| P1 | Core feature broken, blocking users |
|
|
59
|
-
| P2 | Non-critical feature broken, workaround exists |
|
|
60
|
-
| P3 | Edge case, cosmetic, minor annoyance |
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Workflow
|
|
65
|
-
|
|
66
|
-
### Phase 1 — Triage & Understand
|
|
67
|
-
|
|
68
|
-
Before touching code, gather:
|
|
69
|
-
- What is the symptom? (error message, wrong behavior, crash)
|
|
70
|
-
- What is the expected behavior?
|
|
71
|
-
- How to reproduce? (steps, conditions, environment)
|
|
72
|
-
- What changed recently? (git log, deployment, dependency update)
|
|
73
|
-
- What is the severity and impact scope?
|
|
74
|
-
|
|
75
|
-
If critical information is missing → ask before proceeding.
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
### Phase 2 — Reproduce the Issue
|
|
80
|
-
|
|
81
|
-
1. Write a failing test or script that triggers the bug
|
|
82
|
-
2. Confirm the bug is consistently reproducible
|
|
83
|
-
3. For intermittent bugs → identify timing, data, or environment conditions
|
|
84
|
-
4. Document the exact reproduction steps
|
|
85
|
-
|
|
86
|
-
> Rule: **Never skip reproduction.** A fix without a repro is a guess.
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
### Phase 3 — Localize the Problem
|
|
91
|
-
|
|
92
|
-
1. Read the stack trace top-down, following frames inside project code
|
|
93
|
-
2. Use logs, breakpoints, or `git blame` / `git bisect` to narrow scope
|
|
94
|
-
3. Identify the exact file and line where the failure originates
|
|
95
|
-
4. Trace the data flow that leads to the failure
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
### Phase 4 — Root Cause Analysis
|
|
100
|
-
|
|
101
|
-
Answer: *Why does this happen? What condition triggers it?*
|
|
102
|
-
|
|
103
|
-
Common root cause categories:
|
|
104
|
-
- Logic error (wrong condition, wrong operator)
|
|
105
|
-
- Off-by-one or boundary case
|
|
106
|
-
- Null / undefined / missing data
|
|
107
|
-
- Async timing or race condition
|
|
108
|
-
- Type mismatch
|
|
109
|
-
- Stale state or stale closure
|
|
110
|
-
- Config or environment issue
|
|
111
|
-
- API contract change
|
|
112
|
-
- Dependency version change
|
|
113
|
-
|
|
114
|
-
Use 5 Whys: keep asking "why" until you reach the actual cause, not just the symptom.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
### Phase 5 — Apply the Fix
|
|
119
|
-
|
|
120
|
-
Rules:
|
|
121
|
-
- Fix the root cause, not the symptom
|
|
122
|
-
- Smallest possible change that fully resolves the issue
|
|
123
|
-
- Keep existing code style, naming, and conventions
|
|
124
|
-
- Handle related edge cases to prevent similar bugs
|
|
125
|
-
- Remove all debug code, console.logs, and temporary patches
|
|
126
|
-
- Do not change public APIs unless strictly required
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
### Phase 6 — Verify the Result
|
|
131
|
-
|
|
132
|
-
- [ ] The failing test from Phase 2 now passes
|
|
133
|
-
- [ ] Run the related test suite — no new failures
|
|
134
|
-
- [ ] Run lint and type-check — clean
|
|
135
|
-
- [ ] Manually reproduce the original steps — bug is gone
|
|
136
|
-
- [ ] No regressions in adjacent functionality
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
### Phase 7 — Report & Prevent
|
|
141
|
-
|
|
142
|
-
Summarize and propose prevention:
|
|
143
|
-
- What was the root cause?
|
|
144
|
-
- What was changed and why?
|
|
145
|
-
- Are there similar patterns elsewhere in the codebase?
|
|
146
|
-
- Should a test be added to prevent regression?
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## Decision Tree
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
Is the bug reproducible?
|
|
154
|
-
├── No → Isolate timing, data, environment conditions first
|
|
155
|
-
└── Yes → Is the root cause known?
|
|
156
|
-
├── No → Run Phase 3-4 (localize + analyze)
|
|
157
|
-
└── Yes → Apply minimal fix → verify → report
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
Is the fix risky (touches shared code / public API)?
|
|
162
|
-
├── Yes → Confirm scope with user before applying
|
|
163
|
-
└── No → Apply fix
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Output Format
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
🐛 Bug Report
|
|
172
|
-
─────────────────────────────────────────────────
|
|
173
|
-
Symptom: [What broke + how to reproduce]
|
|
174
|
-
Root cause: [Exact file:line — why it happens]
|
|
175
|
-
Severity: [P0 / P1 / P2 / P3]
|
|
176
|
-
|
|
177
|
-
🔧 Fix Applied
|
|
178
|
-
─────────────────────────────────────────────────
|
|
179
|
-
Changed: [File(s) modified]
|
|
180
|
-
Change: [What was changed and why it's minimal]
|
|
181
|
-
|
|
182
|
-
✅ Verification
|
|
183
|
-
─────────────────────────────────────────────────
|
|
184
|
-
Tests: [Test name / command — PASSED]
|
|
185
|
-
Lint/Types: [Clean / warnings noted]
|
|
186
|
-
Manual: [Reproduced original steps — bug gone]
|
|
187
|
-
Regression: [No new failures]
|
|
188
|
-
|
|
189
|
-
🛡️ Prevention
|
|
190
|
-
─────────────────────────────────────────────────
|
|
191
|
-
Test added: [Yes / No — reason]
|
|
192
|
-
Similar areas to check: [file or pattern to review]
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## Validation Checklist
|
|
198
|
-
|
|
199
|
-
- [ ] Bug was reproduced before fixing
|
|
200
|
-
- [ ] Root cause identified at exact file:line with explanation
|
|
201
|
-
- [ ] Fix is minimal — only changes what's needed
|
|
202
|
-
- [ ] Failing test now passes
|
|
203
|
-
- [ ] Related tests and lint/type-check clean
|
|
204
|
-
- [ ] No debug code left behind
|
|
205
|
-
- [ ] Side effects documented
|
|
206
|
-
- [ ] Prevention strategy noted
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
## Examples
|
|
211
|
-
|
|
212
|
-
See `examples/` folder.
|
|
213
|
-
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-component-generator
|
|
3
|
-
description: >-
|
|
4
|
-
Tạo các UI Component độc lập, tái sử dụng được, có type an toàn và tuân thủ chuẩn design system.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: frontend
|
|
7
|
-
tags: [component, react, vue, ui, props, reusable]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Component Generator
|
|
12
|
-
|
|
13
|
-
> **Language rule:**
|
|
14
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
15
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
16
|
-
> The user may write in any language — detect and match it automatically.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Trigger
|
|
21
|
-
|
|
22
|
-
Activate this skill when:
|
|
23
|
-
- User says "create a Card component", "make a reusable Button", "extract this into a component"
|
|
24
|
-
- A larger skill (`ui-builder`, `form-builder`) requires a new isolated UI piece to be built
|
|
25
|
-
- Refactoring a large component by splitting it into smaller, reusable parts
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## Scope
|
|
30
|
-
|
|
31
|
-
- ✅ Generate a single, focused component (e.g., `UserCard`, `StatBadge`, `Dropdown`)
|
|
32
|
-
- ✅ Define strict, explicit types/interfaces for all props
|
|
33
|
-
- ✅ Implement component variants (e.g., `size`, `color`, `variant`) if needed
|
|
34
|
-
- ✅ Follow project styling rules (Tailwind, CSS Modules, Styled Components)
|
|
35
|
-
- ✅ Ensure accessibility (ARIA attributes, semantic HTML) where applicable
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Non-goals
|
|
40
|
-
|
|
41
|
-
- ❌ Do NOT build full pages or complex screens (delegate to `ui-builder`)
|
|
42
|
-
- ❌ Do NOT handle complex business logic or data fetching inside a dumb/presentational component
|
|
43
|
-
- ❌ Do NOT overwrite existing components without explicit instruction
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Workflow
|
|
48
|
-
|
|
49
|
-
### Phase 1 — Component Design
|
|
50
|
-
|
|
51
|
-
Determine:
|
|
52
|
-
1. **Name:** PascalCase (e.g., `ProductCard`).
|
|
53
|
-
2. **Responsibility:** What exactly does this component do? Keep it single-responsibility.
|
|
54
|
-
3. **Props:** What data does it need from its parent? What events does it emit?
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### Phase 2 — API (Props) Definition
|
|
59
|
-
|
|
60
|
-
Draft the interface first.
|
|
61
|
-
- Make required props explicit.
|
|
62
|
-
- Use optional props (`?`) for variants or non-essential data.
|
|
63
|
-
- Avoid `any`.
|
|
64
|
-
|
|
65
|
-
*Example:*
|
|
66
|
-
```typescript
|
|
67
|
-
interface ProductCardProps {
|
|
68
|
-
id: string;
|
|
69
|
-
title: string;
|
|
70
|
-
price: number;
|
|
71
|
-
imageUrl?: string;
|
|
72
|
-
isAvailable?: boolean;
|
|
73
|
-
onAddToCart: (id: string) => void;
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
### Phase 3 — Implementation
|
|
80
|
-
|
|
81
|
-
Write the component code.
|
|
82
|
-
1. Use destructuring for props.
|
|
83
|
-
2. Apply styling based on `design-system` rules.
|
|
84
|
-
3. Handle empty/null states (e.g., if `imageUrl` is missing, show a placeholder).
|
|
85
|
-
4. Add basic interactivity (e.g., calling `onAddToCart` when clicked).
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
### Phase 4 — Validation
|
|
90
|
-
|
|
91
|
-
- [ ] Are all props typed correctly?
|
|
92
|
-
- [ ] Is it truly reusable (no hardcoded data)?
|
|
93
|
-
- [ ] Does it use project design tokens?
|
|
94
|
-
- [ ] Is it exported correctly according to project conventions (default vs. named export)?
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Decision Tree
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
Does the component need to manage its own state (e.g., an accordion opening/closing)?
|
|
102
|
-
├── Yes → Add local state (`useState`). Keep it minimal.
|
|
103
|
-
└── No → Make it a pure "dumb" component receiving props.
|
|
104
|
-
|
|
105
|
-
Are there multiple visual styles requested (e.g., primary, secondary, outline)?
|
|
106
|
-
├── Yes → Add a `variant` prop and map it to style classes.
|
|
107
|
-
└── No → Implement the single required style.
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## Output Format
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
🧩 Component Generated
|
|
116
|
-
─────────────────────────────────────────────────
|
|
117
|
-
Name: [ComponentName]
|
|
118
|
-
Path: [path/to/Component.tsx]
|
|
119
|
-
|
|
120
|
-
Props Interface:
|
|
121
|
-
[List key props here briefly]
|
|
122
|
-
|
|
123
|
-
Features:
|
|
124
|
-
• [Feature 1, e.g., "Supports primary/secondary variants"]
|
|
125
|
-
• [Feature 2, e.g., "Fully typed with TypeScript"]
|
|
126
|
-
|
|
127
|
-
🔗 Next Steps:
|
|
128
|
-
Component is ready to be imported into your layout.
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Examples
|
|
134
|
-
|
|
135
|
-
See `examples/` folder.
|
|
136
|
-
|