ai-developer-skill-os 7.5.1 → 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/docs/ARCHITECTURE.md +156 -0
- 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 +64 -11
- package/.agents/skills/qk-orchestrator/references/routing-table.md +1 -1
- 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 +66 -6
- package/.agents/skills/qk-project-health/SKILL.md +63 -6
- package/.agents/skills/qk-project-memory/SKILL.md +63 -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 +60 -6
- package/.agents/skills/qk-ui-builder/SKILL.md +509 -446
- 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 -70
- package/README.md +44 -59
- package/bin/install.js +57 -309
- package/package.json +13 -2
- 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/skills.json +0 -819
- package/.github/workflows/ci.yml +0 -56
- 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 -123
- package/docs/CHI_TIET_SKILLS.md +0 -126
- 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 -48
- 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 -239
- package/skills/qk-access-policy/SKILL.md +0 -180
- package/skills/qk-ai-builder/SKILL.md +0 -216
- package/skills/qk-api-lifecycle/SKILL.md +0 -177
- package/skills/qk-bug-resolution/SKILL.md +0 -308
- package/skills/qk-context-loader/SKILL.md +0 -219
- package/skills/qk-data-lifecycle/SKILL.md +0 -193
- package/skills/qk-db-optimizer/SKILL.md +0 -197
- package/skills/qk-docs/SKILL.md +0 -199
- package/skills/qk-engineering-standard/SKILL.md +0 -352
- 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 -327
- package/skills/qk-feature-delivery/SKILL.md +0 -306
- package/skills/qk-help/SKILL.md +0 -194
- package/skills/qk-orchestrator/SKILL.md +0 -279
- package/skills/qk-orchestrator/references/routing-table.md +0 -78
- package/skills/qk-production-release/SKILL.md +0 -285
- package/skills/qk-project-bootstrap/SKILL.md +0 -236
- package/skills/qk-project-health/SKILL.md +0 -200
- package/skills/qk-project-memory/SKILL.md +0 -219
- package/skills/qk-system-evolution/SKILL.md +0 -282
- package/skills/qk-ui-audit/SKILL.md +0 -316
- package/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
- package/skills/qk-ui-builder/SKILL.md +0 -447
- package/skills/qk-ui-builder/references/anti-patterns.md +0 -295
- package/skills/qk-ui-builder/references/color.md +0 -115
- package/skills/qk-ui-builder/references/component-cookbook.md +0 -1194
- package/skills/qk-ui-builder/references/copy.md +0 -250
- package/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
- package/skills/qk-ui-builder/references/layout-and-space.md +0 -111
- package/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
- package/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
- package/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
- package/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
- package/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
- package/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
- package/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
- package/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
- package/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
- package/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
- package/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
- package/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
- package/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
- package/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
- package/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
- package/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
- package/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
- package/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
- package/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
- package/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
- package/skills/qk-ui-builder/references/macrostructures.md +0 -38
- package/skills/qk-ui-builder/references/motion.md +0 -95
- package/skills/qk-ui-builder/references/responsive.md +0 -115
- package/skills/qk-ui-builder/references/slop-test.md +0 -135
- package/skills/qk-ui-builder/references/structure.md +0 -280
- package/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
- package/skills/qk-ui-builder/references/themes/carnival.md +0 -52
- package/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
- package/skills/qk-ui-builder/references/themes/editorial.md +0 -52
- package/skills/qk-ui-builder/references/themes/garden.md +0 -52
- package/skills/qk-ui-builder/references/themes/hum.md +0 -52
- package/skills/qk-ui-builder/references/themes/lumen.md +0 -52
- package/skills/qk-ui-builder/references/themes/midnight.md +0 -52
- package/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
- package/skills/qk-ui-builder/references/themes/playful.md +0 -52
- package/skills/qk-ui-builder/references/themes/specimen.md +0 -52
- package/skills/qk-ui-builder/references/themes/terminal.md +0 -52
- package/skills/qk-ui-builder/references/typography.md +0 -129
- package/skills/qk-ui-system-builder/SKILL.md +0 -222
- package/skills/qk-validation-gate/SKILL.md +0 -360
- package/skills.json +0 -820
- 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
package/rename.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import { execSync } from 'child_process';
|
|
4
|
-
|
|
5
|
-
const skillsDir = 'skills';
|
|
6
|
-
const categories = fs.readdirSync(skillsDir).filter(f => fs.statSync(path.join(skillsDir, f)).isDirectory());
|
|
7
|
-
|
|
8
|
-
categories.forEach(category => {
|
|
9
|
-
const catPath = path.join(skillsDir, category);
|
|
10
|
-
const skills = fs.readdirSync(catPath).filter(f => fs.statSync(path.join(catPath, f)).isDirectory());
|
|
11
|
-
skills.forEach(skill => {
|
|
12
|
-
if (!skill.startsWith('qk-')) {
|
|
13
|
-
const oldPath = path.join(catPath, skill).replace(/\\/g, '/');
|
|
14
|
-
const newPath = path.join(catPath, 'qk-' + skill).replace(/\\/g, '/');
|
|
15
|
-
try {
|
|
16
|
-
console.log(`Đang đổi tên: ${oldPath} -> ${newPath}`);
|
|
17
|
-
execSync(`git mv "${oldPath}" "${newPath}"`);
|
|
18
|
-
} catch(e) {
|
|
19
|
-
console.error('LỖI (Hãy chắc chắn bạn đã tắt hoàn toàn IDE/Cursor đang mở folder này):', e.message);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
// Update skills.json
|
|
26
|
-
const skillsJsonPath = 'skills.json';
|
|
27
|
-
let skillsData = JSON.parse(fs.readFileSync(skillsJsonPath, 'utf8'));
|
|
28
|
-
|
|
29
|
-
// Fix entries and modify their paths
|
|
30
|
-
if(skillsData.skills) {
|
|
31
|
-
skillsData.skills = skillsData.skills.map(s => {
|
|
32
|
-
if(!s.name.startsWith('qk-')) {
|
|
33
|
-
s.name = 'qk-' + s.name;
|
|
34
|
-
const parts = s.path.split('/');
|
|
35
|
-
const skillFolder = parts[2];
|
|
36
|
-
if(!skillFolder.startsWith('qk-')) {
|
|
37
|
-
parts[2] = 'qk-' + skillFolder;
|
|
38
|
-
}
|
|
39
|
-
s.path = parts.join('/');
|
|
40
|
-
}
|
|
41
|
-
return s;
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
fs.writeFileSync(skillsJsonPath, JSON.stringify(skillsData, null, 2));
|
|
45
|
-
|
|
46
|
-
// Update SKILL.md names
|
|
47
|
-
categories.forEach(category => {
|
|
48
|
-
const catPath = path.join(skillsDir, category);
|
|
49
|
-
const skills = fs.readdirSync(catPath).filter(f => fs.statSync(path.join(catPath, f)).isDirectory());
|
|
50
|
-
skills.forEach(skill => {
|
|
51
|
-
if (skill.startsWith('qk-')) {
|
|
52
|
-
const skillMdPath = path.join(catPath, skill, 'SKILL.md');
|
|
53
|
-
if (fs.existsSync(skillMdPath)) {
|
|
54
|
-
let content = fs.readFileSync(skillMdPath, 'utf8');
|
|
55
|
-
content = content.replace(/^name:\s*([a-zA-Z0-9-]+)\s*$/m, (match, p1) => {
|
|
56
|
-
if (!p1.startsWith('qk-')) return 'name: qk-' + p1;
|
|
57
|
-
return match;
|
|
58
|
-
});
|
|
59
|
-
fs.writeFileSync(skillMdPath, content);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
console.log('✅ Đã đổi tên thành công toàn bộ sang hệ qk-* !');
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-accessibility-audit
|
|
3
|
-
description: >-
|
|
4
|
-
Kiểm tra và sửa lỗi khả năng tiếp cận (a11y/WCAG). Đảm bảo hỗ trợ phím, screen reader và semantic HTML.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: frontend
|
|
7
|
-
tags: [accessibility, a11y, aria, wcag, screen-reader, keyboard]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Accessibility (A11y) 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
|
-
---
|
|
19
|
-
|
|
20
|
-
## Trigger
|
|
21
|
-
|
|
22
|
-
Activate this skill when:
|
|
23
|
-
- User asks to "make this accessible", "fix a11y", or "audit accessibility"
|
|
24
|
-
- Building complex interactive components (modals, dropdowns, tabs, sliders)
|
|
25
|
-
- Preparing an app for production or public release
|
|
26
|
-
- Project audit flags missing semantic HTML or ARIA issues
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Scope
|
|
31
|
-
|
|
32
|
-
- ✅ **Keyboard Navigation:** Ensure all interactive elements are reachable via `Tab`, and operable via `Enter`/`Space`/Arrows. Focus management (trapping focus in modals).
|
|
33
|
-
- ✅ **Screen Reader Support:** Add proper `aria-` attributes, `alt` text, and visually hidden text (`sr-only`).
|
|
34
|
-
- ✅ **Semantic HTML:** Replace `div` soups with `<nav>`, `<main>`, `<article>`, `<button>`, etc.
|
|
35
|
-
- ✅ **Color Contrast:** Verify text vs. background contrast meets WCAG AA (4.5:1 for normal text).
|
|
36
|
-
- ✅ **Form Labels:** Ensure all inputs have associated `<label>`s or `aria-label`s.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Non-goals
|
|
41
|
-
|
|
42
|
-
- ❌ Do NOT completely redesign the UI visually (unless fixing a severe contrast issue, and even then, ask first).
|
|
43
|
-
- ❌ Do NOT overuse ARIA. The first rule of ARIA is: "No ARIA is better than bad ARIA." Use semantic HTML first.
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Workflow
|
|
48
|
-
|
|
49
|
-
### Phase 1 — Semantic HTML Check
|
|
50
|
-
|
|
51
|
-
Scan the component for basic HTML semantics:
|
|
52
|
-
- Are buttons actually `<button>` elements (not `<div onClick>`)?
|
|
53
|
-
- Are links actually `<a>` elements with `href`s?
|
|
54
|
-
- Do images have meaningful `alt` text (or `alt=""` if decorative)?
|
|
55
|
-
- Are headings (`h1`-`h6`) in a logical, unbroken hierarchy?
|
|
56
|
-
|
|
57
|
-
### Phase 2 — Keyboard & Focus Management
|
|
58
|
-
|
|
59
|
-
- Can the user tab through the component logically?
|
|
60
|
-
- Does every interactive element have a visible focus state (`:focus-visible`)?
|
|
61
|
-
- For Modals/Dialogs: Is focus trapped inside when open? Is focus restored when closed?
|
|
62
|
-
- For custom widgets (Tabs/Dropdowns): Implement correct arrow key navigation per WAI-ARIA authoring practices.
|
|
63
|
-
|
|
64
|
-
### Phase 3 — Screen Reader (ARIA) Check
|
|
65
|
-
|
|
66
|
-
- Do custom interactive elements have correct `role`s (e.g., `role="tablist"`)?
|
|
67
|
-
- Is dynamic state communicated? (`aria-expanded`, `aria-selected`, `aria-invalid`, `aria-busy`).
|
|
68
|
-
- Are icon-only buttons properly labeled? (`aria-label` or `<span className="sr-only">Label</span>`).
|
|
69
|
-
- Are dynamic live regions used for important announcements (`aria-live="polite"` or `assertive`)?
|
|
70
|
-
|
|
71
|
-
### Phase 4 — Contrast & Visuals
|
|
72
|
-
|
|
73
|
-
- Check text colors against backgrounds.
|
|
74
|
-
- Ensure form fields have visible borders or indicators.
|
|
75
|
-
- Ensure information is not conveyed *only* by color (e.g., a red border for an error must also have error text).
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Decision Tree
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
Is the component a native HTML element (e.g., standard `<button>`)?
|
|
83
|
-
├── Yes → Ensure it has accessible text/labels. No ARIA roles needed.
|
|
84
|
-
└── No → (e.g., a custom `div` acting as a checkbox)
|
|
85
|
-
├── Can it be refactored to use native HTML?
|
|
86
|
-
│ ├── Yes → Refactor to native HTML `<input type="checkbox">`
|
|
87
|
-
│ └── No → Apply `role="checkbox"`, `tabIndex={0}`, `aria-checked`, and keyboard event handlers.
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Output Format
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
♿ Accessibility Audit Report
|
|
96
|
-
─────────────────────────────────────────────────
|
|
97
|
-
Component: [ComponentName]
|
|
98
|
-
|
|
99
|
-
Issues Found & Fixed:
|
|
100
|
-
✅ Semantic HTML: Replaced `<div onClick>` with `<button>`
|
|
101
|
-
✅ Screen Readers: Added `aria-label` to icon-only close button
|
|
102
|
-
✅ Keyboard: Added focus trap inside the Modal
|
|
103
|
-
✅ Forms: Associated `<label htmlFor="email">` with Input
|
|
104
|
-
|
|
105
|
-
⚠️ Remaining Warnings (Manual Check Required):
|
|
106
|
-
- Please verify color contrast of primary button in light mode (needs 4.5:1 ratio).
|
|
107
|
-
|
|
108
|
-
🔗 Next Steps:
|
|
109
|
-
Code updated. Recommend testing with a screen reader (VoiceOver/NVDA).
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Validation Checklist
|
|
115
|
-
|
|
116
|
-
- [ ] Semantic HTML preferred over ARIA
|
|
117
|
-
- [ ] Keyboard navigation (Tab + Enter/Space) works correctly
|
|
118
|
-
- [ ] Focus is visible on all interactive elements
|
|
119
|
-
- [ ] Forms have proper labels
|
|
120
|
-
- [ ] Icon-only buttons have accessible names
|
|
121
|
-
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-agent-orchestrator
|
|
3
|
-
description: >-
|
|
4
|
-
Phân tích yêu cầu, lên kế hoạch thực thi chi tiết và điều phối các tác vụ cho đúng skill. Không tự viết code.
|
|
5
|
-
version: 1.0.0
|
|
6
|
-
category: engineering
|
|
7
|
-
tags: [orchestration, planning, workflow, task-decomposition]
|
|
8
|
-
platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Agent Orchestrator
|
|
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 CONSTRAINT: This skill MUST NOT write any code.**
|
|
19
|
-
> Its only job is to analyze, plan, and delegate.
|
|
20
|
-
> If the orchestrator starts writing implementation code — it is violating its role.
|
|
21
|
-
> Immediately stop and delegate to the appropriate skill instead.
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Trigger
|
|
26
|
-
|
|
27
|
-
Activate this skill when:
|
|
28
|
-
- User describes a task without knowing where to start
|
|
29
|
-
- User request spans multiple concerns (UI + API + state + tests)
|
|
30
|
-
- Request is ambiguous and needs decomposition before action
|
|
31
|
-
- User says: "help me plan", "what should I do first", "how do I approach this"
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Scope
|
|
36
|
-
|
|
37
|
-
- ✅ Analyze the user's request
|
|
38
|
-
- ✅ Identify which skills are needed
|
|
39
|
-
- ✅ Define the correct execution order
|
|
40
|
-
- ✅ Create a step-by-step plan
|
|
41
|
-
- ✅ Delegate each step to the correct skill
|
|
42
|
-
- ✅ Track overall progress
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Non-goals
|
|
47
|
-
|
|
48
|
-
- ❌ Do NOT write implementation code
|
|
49
|
-
- ❌ Do NOT modify files
|
|
50
|
-
- ❌ Do NOT fix bugs directly (delegate to `bug-fix`)
|
|
51
|
-
- ❌ Do NOT build UI directly (delegate to `ui-builder`)
|
|
52
|
-
- ❌ Do NOT make architectural decisions unilaterally (delegate to `frontend-architecture`)
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Workflow
|
|
57
|
-
|
|
58
|
-
### Phase 1 — Request Analysis
|
|
59
|
-
|
|
60
|
-
Parse the user's request:
|
|
61
|
-
|
|
62
|
-
1. **What** is being asked? (feature, fix, refactor, review, deploy?)
|
|
63
|
-
2. **Where** does it belong? (frontend, backend, shared, infrastructure?)
|
|
64
|
-
3. **What is the scope?** (single component, full feature, entire codebase?)
|
|
65
|
-
4. **What is unknown?** List any ambiguities that need clarification.
|
|
66
|
-
|
|
67
|
-
If critical information is missing → ask before planning.
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
### Phase 2 — Skill Selection
|
|
72
|
-
|
|
73
|
-
Map the request to skills from the registry:
|
|
74
|
-
|
|
75
|
-
| Request type | Recommended skill(s) |
|
|
76
|
-
|---|---|
|
|
77
|
-
| "I don't know what's wrong" | `project-audit` → `bug-fix` |
|
|
78
|
-
| "Build a new page" | `frontend-architecture` → `design-system` → `ui-builder` |
|
|
79
|
-
| "Add API call" | `context-manager` → `api-integration` |
|
|
80
|
-
| "App is slow" | `project-audit` → `frontend-performance` |
|
|
81
|
-
| "Upgrade dependencies" | `migration` |
|
|
82
|
-
| "Write tests" | `frontend-testing` |
|
|
83
|
-
|
|
84
|
-
Always check dependencies from `skills.json` — load dependent skills first.
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### Phase 3 — Execution Plan
|
|
89
|
-
|
|
90
|
-
Produce a numbered, ordered plan. Each step maps to one skill.
|
|
91
|
-
|
|
92
|
-
Format:
|
|
93
|
-
```
|
|
94
|
-
Step 1: [skill-name] — [what it will do]
|
|
95
|
-
Step 2: [skill-name] — [what it will do]
|
|
96
|
-
Step 3: [skill-name] — [what it will do]
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Mark dependencies explicitly:
|
|
100
|
-
```
|
|
101
|
-
Step 2 requires Step 1 to complete first.
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
### Phase 4 — Delegation
|
|
107
|
-
|
|
108
|
-
For each step in the plan:
|
|
109
|
-
1. Announce which skill is being activated
|
|
110
|
-
2. Pass relevant context to that skill
|
|
111
|
-
3. Wait for skill output
|
|
112
|
-
4. Confirm completion before moving to next step
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
### Phase 5 — Progress Tracking
|
|
117
|
-
|
|
118
|
-
After each skill completes:
|
|
119
|
-
- Mark step as ✅ done
|
|
120
|
-
- Note any output or blockers
|
|
121
|
-
- Adjust remaining plan if needed
|
|
122
|
-
- Report overall progress to user
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## Decision Tree
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
Is the request clear enough to plan?
|
|
130
|
-
├── No → Ask 1-3 clarifying questions, then plan
|
|
131
|
-
└── Yes → Does it span multiple concerns?
|
|
132
|
-
├── Yes → Create multi-step plan with skill sequence
|
|
133
|
-
└── No → Route directly to single skill
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
Does a skill dependency exist?
|
|
138
|
-
├── Yes → Run dependency skill first
|
|
139
|
-
└── No → Run skill directly
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Output Format
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
📋 Plan: [Brief description of what we're doing]
|
|
148
|
-
|
|
149
|
-
Step 1: `[skill-name]` — [Purpose]
|
|
150
|
-
Step 2: `[skill-name]` — [Purpose] ← requires Step 1
|
|
151
|
-
Step 3: `[skill-name]` — [Purpose]
|
|
152
|
-
|
|
153
|
-
⏳ Starting with Step 1...
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
After each step:
|
|
157
|
-
```
|
|
158
|
-
✅ Step 1 complete: [Brief outcome]
|
|
159
|
-
▶️ Moving to Step 2: `[skill-name]`
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## Validation Checklist
|
|
165
|
-
|
|
166
|
-
Before finishing orchestration:
|
|
167
|
-
|
|
168
|
-
- [ ] All planned steps completed
|
|
169
|
-
- [ ] Each step was handled by the correct skill
|
|
170
|
-
- [ ] No code was written by the orchestrator itself
|
|
171
|
-
- [ ] User has been informed of final outcome
|
|
172
|
-
- [ ] Next recommended actions provided if relevant
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Examples
|
|
177
|
-
|
|
178
|
-
See `examples/` folder.
|
|
179
|
-
|