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,280 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-project-audit
|
|
3
|
-
description: >-
|
|
4
|
-
Kiểm toán toàn bộ dự án để phát hiện bug ẩn, rủi ro bảo mật, vấn đề hiệu năng và nợ kỹ thuật trước khi sửa code.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: engineering
|
|
7
|
-
tags: [audit, review, bug-detection, architecture, security, performance]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Project Audit
|
|
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
|
-
> ⚠️ **CRITICAL: Do NOT modify any code during audit.**
|
|
19
|
-
> The audit produces a report. Changes happen only after the user reviews and approves.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Trigger
|
|
24
|
-
|
|
25
|
-
Activate this skill when:
|
|
26
|
-
- User says "audit", "review", "health check", "what's wrong with my project"
|
|
27
|
-
- Before starting a large feature or refactor
|
|
28
|
-
- After inheriting a codebase
|
|
29
|
-
- Before a major release
|
|
30
|
-
- When the system behaves unexpectedly and the root cause is unknown
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## Scope
|
|
35
|
-
|
|
36
|
-
- ✅ Detect hidden bugs, race conditions, and unstable areas
|
|
37
|
-
- ✅ Review architecture and separation of concerns
|
|
38
|
-
- ✅ Identify security vulnerabilities
|
|
39
|
-
- ✅ Find performance bottlenecks
|
|
40
|
-
- ✅ Audit dependencies (outdated, risky, unused)
|
|
41
|
-
- ✅ Produce prioritized findings with recommended fixes
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Non-goals
|
|
46
|
-
|
|
47
|
-
- ❌ Do NOT fix anything during the audit
|
|
48
|
-
- ❌ Do NOT refactor code
|
|
49
|
-
- ❌ Do NOT make assumptions — document uncertainty instead
|
|
50
|
-
- ❌ Do NOT audit `node_modules`, `dist`, `build`, `.git`
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Audit Modes
|
|
55
|
-
|
|
56
|
-
Choose based on context:
|
|
57
|
-
|
|
58
|
-
| Mode | Scope | When to use |
|
|
59
|
-
|------|-------|-------------|
|
|
60
|
-
| **Quick** | Changed files only (git diff / recent edits) | Fast pre-commit check, small bug scope |
|
|
61
|
-
| **Standard** | Current feature / module being worked on | Default — before implementing changes |
|
|
62
|
-
| **Full** | Entire repository | Onboarding, pre-release, inherited codebase |
|
|
63
|
-
|
|
64
|
-
**Default: Standard mode.**
|
|
65
|
-
Use Full mode only when explicitly requested or before a major release.
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Severity Levels
|
|
70
|
-
|
|
71
|
-
All findings use this shared scale:
|
|
72
|
-
|
|
73
|
-
| Level | Label | Meaning |
|
|
74
|
-
|-------|-------|---------|
|
|
75
|
-
| P0 | Critical | Security breach, data loss, production crash — fix immediately |
|
|
76
|
-
| P1 | High | Bug affecting core functionality — fix before shipping |
|
|
77
|
-
| P2 | Medium | Performance issue or bad pattern — schedule soon |
|
|
78
|
-
| P3 | Low | Technical debt, code smell — fix when possible |
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## Workflow
|
|
83
|
-
|
|
84
|
-
### Phase 1 — Project Discovery
|
|
85
|
-
|
|
86
|
-
*(Use `context-manager` if project context is not yet loaded)*
|
|
87
|
-
|
|
88
|
-
Analyze:
|
|
89
|
-
- Framework, language, build system
|
|
90
|
-
- Folder structure and architecture style
|
|
91
|
-
- Key dependencies and their versions
|
|
92
|
-
- Entry points, routing, data flow
|
|
93
|
-
|
|
94
|
-
Output: **Project Overview** (2-5 lines)
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
### Phase 2 — Architecture Review
|
|
99
|
-
|
|
100
|
-
Check:
|
|
101
|
-
|
|
102
|
-
**Separation of concerns:**
|
|
103
|
-
- Are UI components mixing API calls and business logic?
|
|
104
|
-
- Are services doing too much?
|
|
105
|
-
- Is there duplicated logic across modules?
|
|
106
|
-
|
|
107
|
-
**Folder structure:**
|
|
108
|
-
- Does file placement follow the declared architecture?
|
|
109
|
-
- Are there misplaced files or responsibilities?
|
|
110
|
-
|
|
111
|
-
**Patterns:**
|
|
112
|
-
- Are patterns applied consistently? (hooks, services, stores)
|
|
113
|
-
- Are there anti-patterns? (prop drilling, God components, circular imports)
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
### Phase 3 — Bug Detection
|
|
118
|
-
|
|
119
|
-
#### Frontend
|
|
120
|
-
|
|
121
|
-
Check for:
|
|
122
|
-
- `useEffect` with missing or wrong dependency arrays
|
|
123
|
-
- State updates after component unmount (memory leak)
|
|
124
|
-
- Missing cleanup in subscriptions, timers, event listeners
|
|
125
|
-
- Stale closures in async callbacks
|
|
126
|
-
- Race conditions in data fetching
|
|
127
|
-
- Infinite re-render loops
|
|
128
|
-
- `key` prop issues in lists
|
|
129
|
-
|
|
130
|
-
#### Backend
|
|
131
|
-
|
|
132
|
-
Check for:
|
|
133
|
-
- Unhandled promise rejections
|
|
134
|
-
- Missing input validation
|
|
135
|
-
- Incorrect HTTP status codes
|
|
136
|
-
- Transaction issues (missing rollback on error)
|
|
137
|
-
- Race conditions in concurrent operations
|
|
138
|
-
|
|
139
|
-
#### API Layer
|
|
140
|
-
|
|
141
|
-
Check for:
|
|
142
|
-
- Inconsistent response handling
|
|
143
|
-
- Missing error states
|
|
144
|
-
- Duplicate requests without debounce/cancellation
|
|
145
|
-
- Missing loading/error/empty states in UI
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
### Phase 4 — Security Audit
|
|
150
|
-
|
|
151
|
-
Check for:
|
|
152
|
-
- Hardcoded secrets, tokens, credentials in code
|
|
153
|
-
- Sensitive data in `localStorage` or URL params
|
|
154
|
-
- Missing authentication/authorization checks
|
|
155
|
-
- SQL injection or NoSQL injection risks
|
|
156
|
-
- XSS vulnerabilities (dangerouslySetInnerHTML, unsanitized input)
|
|
157
|
-
- Insecure direct object references (IDOR)
|
|
158
|
-
- CORS misconfiguration
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
### Phase 5 — Performance Audit
|
|
163
|
-
|
|
164
|
-
Check for:
|
|
165
|
-
- Large bundle size (missing code splitting, lazy loading)
|
|
166
|
-
- Expensive computations on every render (missing `useMemo`, `useCallback`)
|
|
167
|
-
- Unnecessary re-renders (missing `memo`, wrong dependency arrays)
|
|
168
|
-
- N+1 query problems
|
|
169
|
-
- Missing pagination on large datasets
|
|
170
|
-
- Unoptimized images or assets
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
### Phase 6 — Dependency Audit
|
|
175
|
-
|
|
176
|
-
Check:
|
|
177
|
-
- Outdated packages with known CVEs
|
|
178
|
-
- Packages with very low maintenance (abandoned)
|
|
179
|
-
- Duplicate packages doing the same job
|
|
180
|
-
- Unused dependencies in `package.json`
|
|
181
|
-
- Major version gaps that indicate deferred upgrades
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Decision Tree
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
Which audit mode?
|
|
189
|
-
├── Quick → Read only git diff / recently changed files
|
|
190
|
-
├── Standard → Read current feature/module files + related
|
|
191
|
-
└── Full → Scan entire src/ directory systematically
|
|
192
|
-
|
|
193
|
-
Issue found → Assess severity:
|
|
194
|
-
├── P0 → Flag immediately, recommend pausing current work
|
|
195
|
-
├── P1 → Include in required fixes before shipping
|
|
196
|
-
├── P2 → Include in scheduled improvements
|
|
197
|
-
└── P3 → Log as technical debt
|
|
198
|
-
|
|
199
|
-
No issues found in area → Mark as ✅ Clean
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
## Output Format
|
|
205
|
-
|
|
206
|
-
### Executive Summary
|
|
207
|
-
|
|
208
|
-
```
|
|
209
|
-
🏥 Project Health Report
|
|
210
|
-
─────────────────────────
|
|
211
|
-
Health: [Excellent / Good / Needs Attention / Critical]
|
|
212
|
-
Risk Level: [Low / Medium / High / Critical]
|
|
213
|
-
Audit Mode: [Quick / Standard / Full]
|
|
214
|
-
Files Reviewed: [N]
|
|
215
|
-
Total Findings: [N] (P0: N · P1: N · P2: N · P3: N)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Findings (one per issue)
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
───────────────────────────────
|
|
222
|
-
ID: AUDIT-001
|
|
223
|
-
Severity: P1 — High
|
|
224
|
-
Location: src/hooks/useUserData.ts:47
|
|
225
|
-
Problem: useEffect fetches data but missing cleanup — causes state update
|
|
226
|
-
on unmounted component, triggering React warning and potential
|
|
227
|
-
memory leak under slow networks.
|
|
228
|
-
Impact: Console errors in production, potential memory leak.
|
|
229
|
-
Root cause: No AbortController or isMounted flag used.
|
|
230
|
-
Fix: Add AbortController + cleanup return in useEffect.
|
|
231
|
-
Effort: ~15 min
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### Priority Roadmap
|
|
235
|
-
|
|
236
|
-
```
|
|
237
|
-
🗺️ Fix Roadmap
|
|
238
|
-
──────────────────
|
|
239
|
-
P0 — Fix immediately (before anything else):
|
|
240
|
-
• [AUDIT-00X] [Brief description]
|
|
241
|
-
|
|
242
|
-
P1 — Fix before shipping:
|
|
243
|
-
• [AUDIT-00X] [Brief description]
|
|
244
|
-
|
|
245
|
-
P2 — Schedule this sprint:
|
|
246
|
-
• [AUDIT-00X] [Brief description]
|
|
247
|
-
|
|
248
|
-
P3 — Technical debt backlog:
|
|
249
|
-
• [AUDIT-00X] [Brief description]
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Next Steps
|
|
253
|
-
|
|
254
|
-
```
|
|
255
|
-
🔗 Recommended next skills:
|
|
256
|
-
→ bug-fix (for P0/P1 issues)
|
|
257
|
-
→ refactor (for architecture issues)
|
|
258
|
-
→ migration (for outdated dependencies)
|
|
259
|
-
→ frontend-performance (for P2 performance issues)
|
|
260
|
-
|
|
261
|
-
⏳ Awaiting your approval to proceed with fixes.
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## Validation Checklist
|
|
267
|
-
|
|
268
|
-
- [ ] Correct audit mode selected for the task
|
|
269
|
-
- [ ] All 6 phases covered (or scoped ones for Quick/Standard)
|
|
270
|
-
- [ ] Every finding has: ID, severity, location, problem, root cause, fix, effort
|
|
271
|
-
- [ ] Priority roadmap is ordered correctly (P0 first)
|
|
272
|
-
- [ ] No code was modified during audit
|
|
273
|
-
- [ ] User informed — awaiting approval before any changes
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
## Examples
|
|
278
|
-
|
|
279
|
-
See `examples/` folder.
|
|
280
|
-
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-refactor
|
|
3
|
-
description: >-
|
|
4
|
-
Tái cấu trúc và dọn dẹp mã nguồn để dễ bảo trì hơn mà không làm thay đổi logic hoạt động bên ngoài.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: engineering
|
|
7
|
-
tags: [refactor, clean-code, restructure, technical-debt, maintainability]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Refactor — Safe Restructuring
|
|
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
|
-
> ⚠️ **Core constraint: Refactoring must NOT change observable behavior.**
|
|
19
|
-
> If behavior changes are needed → that is a feature, not a refactor.
|
|
20
|
-
> Stop and clarify with the user before proceeding.
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Trigger
|
|
25
|
-
|
|
26
|
-
Activate this skill when:
|
|
27
|
-
- User says "clean up", "refactor", "it's too messy", "hard to maintain"
|
|
28
|
-
- Code has grown beyond its original design (God component, fat service, spaghetti logic)
|
|
29
|
-
- Duplicate patterns exist across multiple files
|
|
30
|
-
- `project-audit` identified architecture issues (P2/P3) ready to be addressed
|
|
31
|
-
- User asks to "improve code quality" without changing functionality
|
|
32
|
-
|
|
33
|
-
**Not this skill** → Use `bug-fix` if behavior is wrong. Use `migration` if upgrading dependencies.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Scope
|
|
38
|
-
|
|
39
|
-
- ✅ Rename for clarity (variables, functions, files, components)
|
|
40
|
-
- ✅ Extract reusable logic into functions, hooks, services, or utilities
|
|
41
|
-
- ✅ Remove dead code, unused imports, and orphaned files
|
|
42
|
-
- ✅ Split large components / functions into focused units
|
|
43
|
-
- ✅ Apply consistent patterns across the codebase
|
|
44
|
-
- ✅ Improve type coverage (replace `any`, add missing types)
|
|
45
|
-
- ✅ Reduce complexity (flatten nested conditions, simplify logic)
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Non-goals
|
|
50
|
-
|
|
51
|
-
- ❌ Do NOT change behavior — if you must, stop and discuss first
|
|
52
|
-
- ❌ Do NOT change public APIs or exported interfaces without explicit approval
|
|
53
|
-
- ❌ Do NOT rewrite everything — prefer incremental, targeted changes
|
|
54
|
-
- ❌ Do NOT apply opinionated style changes (formatting belongs to linter/prettier)
|
|
55
|
-
- ❌ Do NOT introduce new dependencies
|
|
56
|
-
- ❌ Do NOT refactor code unrelated to the stated scope
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Severity Levels (for issues found during analysis)
|
|
61
|
-
|
|
62
|
-
| Level | Meaning |
|
|
63
|
-
|-------|---------|
|
|
64
|
-
| P0 | Refactor introduces breaking change — stop immediately |
|
|
65
|
-
| P1 | High coupling or duplication blocking feature work |
|
|
66
|
-
| P2 | Code smell reducing maintainability |
|
|
67
|
-
| P3 | Minor naming or style inconsistency |
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Workflow
|
|
72
|
-
|
|
73
|
-
### Phase 1 — Understand Current State
|
|
74
|
-
|
|
75
|
-
Before changing anything:
|
|
76
|
-
1. Read the target code thoroughly
|
|
77
|
-
2. Identify what it does (behavior, inputs, outputs, side effects)
|
|
78
|
-
3. Note all callers and dependents of the code being refactored
|
|
79
|
-
4. Check for existing tests — these are the safety net
|
|
80
|
-
|
|
81
|
-
If there are **no tests** for the code being refactored → recommend writing characterization tests first, or proceed with extra caution and document risks.
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
### Phase 2 — Identify Refactor Targets
|
|
86
|
-
|
|
87
|
-
Common code smells to look for:
|
|
88
|
-
|
|
89
|
-
| Smell | Description |
|
|
90
|
-
|-------|-------------|
|
|
91
|
-
| God Component/Function | Does too many things — split by responsibility |
|
|
92
|
-
| Duplicate Logic | Same pattern repeated — extract to shared utility |
|
|
93
|
-
| Long Parameter Lists | >4 params — use options object |
|
|
94
|
-
| Deep Nesting | >3 levels of if/else — flatten with early returns |
|
|
95
|
-
| Magic Numbers/Strings | Unnamed constants — extract to named constants |
|
|
96
|
-
| Dead Code | Unused variables, functions, imports — remove |
|
|
97
|
-
| Inconsistent Naming | Mixed conventions — standardize |
|
|
98
|
-
| Missing Types | `any`, missing return types — add precise types |
|
|
99
|
-
| Large Files | >300 lines — consider splitting by concern |
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### Phase 3 — Plan the Refactor
|
|
104
|
-
|
|
105
|
-
Create a step-by-step plan before touching code:
|
|
106
|
-
|
|
107
|
-
1. List each specific change with its justification
|
|
108
|
-
2. Order changes from lowest to highest risk
|
|
109
|
-
3. Identify what tests must pass after each step
|
|
110
|
-
4. Flag any changes that touch shared/exported code
|
|
111
|
-
|
|
112
|
-
Present plan to user if scope is large or changes are risky.
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
### Phase 4 — Execute Incrementally
|
|
117
|
-
|
|
118
|
-
Apply changes in small, verifiable steps:
|
|
119
|
-
|
|
120
|
-
**Safe refactor order:**
|
|
121
|
-
1. Rename (lowest risk — IDEs can do this safely)
|
|
122
|
-
2. Extract (pull logic into new functions/hooks without changing callers)
|
|
123
|
-
3. Inline (remove unnecessary abstraction)
|
|
124
|
-
4. Move (relocate to correct file/folder)
|
|
125
|
-
5. Simplify (reduce complexity in logic)
|
|
126
|
-
6. Remove (delete dead code last — confirm nothing breaks)
|
|
127
|
-
|
|
128
|
-
After **each step** → verify tests still pass before moving on.
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
### Phase 5 — Verify Behavior Preserved
|
|
133
|
-
|
|
134
|
-
- [ ] All existing tests pass
|
|
135
|
-
- [ ] Run lint and type-check — clean
|
|
136
|
-
- [ ] Manual smoke test of affected functionality
|
|
137
|
-
- [ ] No new `any` types introduced
|
|
138
|
-
- [ ] No unused imports or dead code left
|
|
139
|
-
- [ ] Public API unchanged (or explicitly approved to change)
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
### Phase 6 — Report
|
|
144
|
-
|
|
145
|
-
Document what changed and why:
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
What changed: [List of changes]
|
|
149
|
-
Why: [Specific smell or issue addressed]
|
|
150
|
-
Risk level: [Low / Medium / High]
|
|
151
|
-
Tests status: [All pass / N new tests added]
|
|
152
|
-
Behavior: [Unchanged — verified]
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Decision Tree
|
|
158
|
-
|
|
159
|
-
```
|
|
160
|
-
Is there existing test coverage?
|
|
161
|
-
├── Yes → Proceed — tests are the safety net
|
|
162
|
-
└── No → Recommend characterization tests first
|
|
163
|
-
├── User agrees → write tests then refactor
|
|
164
|
-
└── User wants to proceed anyway → proceed with caution, document risk
|
|
165
|
-
|
|
166
|
-
Does the refactor change public APIs?
|
|
167
|
-
├── Yes → Stop — confirm with user, this may be a breaking change
|
|
168
|
-
└── No → Proceed
|
|
169
|
-
|
|
170
|
-
Is the scope larger than expected?
|
|
171
|
-
├── Yes → Present updated plan, get approval before continuing
|
|
172
|
-
└── No → Continue
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## Output Format
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
🔧 Refactor Summary
|
|
181
|
-
─────────────────────────────────────────────────
|
|
182
|
-
Scope: [What was refactored]
|
|
183
|
-
Changes: [N files modified, N extracted, N removed]
|
|
184
|
-
|
|
185
|
-
Changes applied:
|
|
186
|
-
✅ [Rename: oldName → newName in path/to/file.ts]
|
|
187
|
-
✅ [Extract: logic → useCustomHook in path/to/hook.ts]
|
|
188
|
-
✅ [Remove: dead code in path/to/old.ts]
|
|
189
|
-
✅ [Split: LargeComponent → ComponentA + ComponentB]
|
|
190
|
-
|
|
191
|
-
📊 Quality improvement:
|
|
192
|
-
Before: [brief description of the problem]
|
|
193
|
-
After: [brief description of improvement]
|
|
194
|
-
|
|
195
|
-
✅ Verification:
|
|
196
|
-
Tests: PASS (N tests)
|
|
197
|
-
Lint: Clean
|
|
198
|
-
Types: No new `any`
|
|
199
|
-
Behavior: Unchanged
|
|
200
|
-
|
|
201
|
-
⚠️ Notes:
|
|
202
|
-
[Any assumptions, risks, or follow-up suggestions]
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## Validation Checklist
|
|
208
|
-
|
|
209
|
-
- [ ] Behavior is unchanged — verified with tests or manual check
|
|
210
|
-
- [ ] All tests pass
|
|
211
|
-
- [ ] Lint and type-check clean
|
|
212
|
-
- [ ] No dead code, unused imports, or console.logs left
|
|
213
|
-
- [ ] Public APIs unchanged (or explicitly approved)
|
|
214
|
-
- [ ] Changes are documented with justification
|
|
215
|
-
- [ ] No new dependencies introduced
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Examples
|
|
220
|
-
|
|
221
|
-
See `examples/` folder.
|
|
222
|
-
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-state-management
|
|
3
|
-
description: >-
|
|
4
|
-
Xác định và triển khai chiến lược quản lý state phù hợp (Zustand, Redux, React Query, Local State).
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: frontend
|
|
7
|
-
tags: [state, redux, zustand, react-query, context, pinia, data-flow]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# State Management
|
|
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 "store this data", "share state between components", or "cache API results"
|
|
24
|
-
- Prop drilling becomes excessive (>3 levels deep)
|
|
25
|
-
- Integrating complex UI interactions that need memory (e.g., shopping cart, multi-step wizard)
|
|
26
|
-
- Managing async server data and loading/error states
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Scope
|
|
31
|
-
|
|
32
|
-
- ✅ Decide which state layer to use based on the data's lifecycle and scope
|
|
33
|
-
- ✅ Implement local state (`useState`, `useReducer`, `ref`)
|
|
34
|
-
- ✅ Implement global UI state (Zustand, Pinia, Context, Redux)
|
|
35
|
-
- ✅ Implement server state (React Query, SWR, Apollo)
|
|
36
|
-
- ✅ Ensure state is immutable and updates correctly
|
|
37
|
-
- ✅ Prevent race conditions and stale state bugs
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Non-goals
|
|
42
|
-
|
|
43
|
-
- ❌ Do NOT introduce a new state management library if the project already uses one
|
|
44
|
-
- ❌ Do NOT put server data (API responses) in a global UI store (like Redux) if React Query is available
|
|
45
|
-
- ❌ Do NOT use global state for something that should be local (e.g., a modal's `isOpen` state)
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Workflow
|
|
50
|
-
|
|
51
|
-
### Phase 1 — State Classification
|
|
52
|
-
|
|
53
|
-
Analyze the data the user wants to manage and classify it:
|
|
54
|
-
|
|
55
|
-
1. **Local UI State:** Only needed by one component (e.g., toggle button, input value).
|
|
56
|
-
2. **Shared UI State:** Needed by multiple components, but not saved to DB (e.g., dark mode, cart items, selected filters).
|
|
57
|
-
3. **Server State:** Data fetched from an API. Needs caching, refetching, and loading states.
|
|
58
|
-
4. **URL State:** Data that should be shareable or survive refresh (e.g., search query `?q=shoes`, current page).
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
### Phase 2 — Strategy Selection
|
|
63
|
-
|
|
64
|
-
Based on the classification and project stack (`project-audit`), choose the tool:
|
|
65
|
-
|
|
66
|
-
| State Type | Recommended Tool |
|
|
67
|
-
|------------|------------------|
|
|
68
|
-
| Local UI | `useState`, `useReducer` |
|
|
69
|
-
| Shared UI | Zustand, Pinia, Redux, Context API |
|
|
70
|
-
| Server | React Query, RTK Query, Apollo, SWR |
|
|
71
|
-
| URL | React Router `useSearchParams`, Next.js `useRouter` |
|
|
72
|
-
|
|
73
|
-
**Rule:** Always respect existing project conventions. If they use Redux for everything, use Redux.
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
### Phase 3 — Implementation
|
|
78
|
-
|
|
79
|
-
Generate the required code.
|
|
80
|
-
|
|
81
|
-
**Example for Server State (React Query):**
|
|
82
|
-
- Create query key factory
|
|
83
|
-
- Create custom hook (`useUserList`)
|
|
84
|
-
- Handle `isLoading`, `isError`, and `data`
|
|
85
|
-
|
|
86
|
-
**Example for Global UI State (Zustand):**
|
|
87
|
-
- Create store file (`userStore.ts`)
|
|
88
|
-
- Define state interface and initial values
|
|
89
|
-
- Define update actions (mutations)
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
### Phase 4 — Validation
|
|
94
|
-
|
|
95
|
-
- [ ] Does it update correctly without mutating state directly?
|
|
96
|
-
- [ ] Are unnecessary re-renders avoided?
|
|
97
|
-
- [ ] Is server state properly cached and invalidated after mutations?
|
|
98
|
-
- [ ] Is it placed in the correct directory (e.g., `src/store/` or `src/hooks/`)?
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Decision Tree
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
Is the data fetched from a backend API?
|
|
106
|
-
├── Yes → Use Server State (React Query / SWR / RTK Query)
|
|
107
|
-
└── No → Is the data only needed in one component and its direct children?
|
|
108
|
-
├── Yes → Use Local State (`useState`)
|
|
109
|
-
└── No → Is the data used across many distinct branches of the app?
|
|
110
|
-
├── Yes → Use Global State (Zustand / Redux)
|
|
111
|
-
└── No → Use Context API or lift state up
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## Output Format
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
🧠 State Management Plan
|
|
120
|
-
─────────────────────────────────────────────────
|
|
121
|
-
State Type: [Server / Global UI / Local / URL]
|
|
122
|
-
Tool Used: [React Query / Zustand / useState / etc.]
|
|
123
|
-
|
|
124
|
-
Implementation:
|
|
125
|
-
✅ [File 1] — [Store / Hook definition]
|
|
126
|
-
✅ [File 2] — [Component integration]
|
|
127
|
-
|
|
128
|
-
⚠️ Considerations:
|
|
129
|
-
• [Note on caching, stale time, or performance]
|
|
130
|
-
|
|
131
|
-
🔗 Next Steps:
|
|
132
|
-
State is ready. Use the hook in your component.
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Examples
|
|
138
|
-
|
|
139
|
-
See `examples/` folder.
|
|
140
|
-
|