ai-developer-skill-os 9.3.0 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/AGENTS.md +60 -40
- package/.agents/DEV_PROFILE.md +36 -2
- package/.agents/registry/graph.json +95 -342
- package/.agents/registry/index.yaml +61 -237
- package/.agents/rules/coding.md +30 -12
- package/.agents/rules/command-safety.md +19 -8
- package/.agents/rules/global.md +234 -28
- package/.agents/rules/prompt-compiler.md +170 -0
- package/.agents/skills/qk-api-data-discovery/SKILL.md +470 -0
- package/.agents/skills/qk-backend-data/SKILL.md +190 -0
- package/.agents/skills/qk-bug-resolution/SKILL.md +176 -248
- package/.agents/skills/qk-code-cleaner/SKILL.md +250 -0
- package/.agents/skills/qk-code-review/SKILL.md +126 -247
- package/.agents/skills/qk-devops-release/SKILL.md +145 -0
- package/.agents/skills/qk-feature-delivery/SKILL.md +179 -247
- package/.agents/skills/qk-orchestrator/SKILL.md +100 -151
- package/.agents/skills/qk-product-spec/SKILL.md +113 -0
- package/.agents/skills/qk-prompt-compiler/SKILL.md +321 -0
- package/.agents/skills/qk-ui-engineer/SKILL.md +137 -0
- package/.agents/workflows/feature-delivery.yml +1 -1
- package/.agents/workflows/production-release.yml +1 -1
- package/.agents/workflows/spec-driven-development.yml +109 -87
- package/CHANGELOG.md +54 -0
- package/README.md +125 -184
- package/bin/install.js +337 -329
- package/package.json +2 -2
- package/.agents/README.md +0 -90
- package/.agents/docs/CHI_TIET_SKILLS.md +0 -126
- package/.agents/docs/HUONG_DAN_SU_DUNG.md +0 -120
- package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +0 -36
- package/.agents/docs/MIGRATION-STATUS.md +0 -35
- package/.agents/docs/MIGRATION-V8.md +0 -10
- package/.agents/docs/ROADMAP-V8.2.md +0 -78
- package/.agents/docs/V8-CERTIFICATION.md +0 -27
- package/.agents/skills/qk-access-policy/SKILL.md +0 -206
- package/.agents/skills/qk-access-policy/capability.yaml +0 -23
- package/.agents/skills/qk-access-policy/evals/scorecard.yaml +0 -36
- package/.agents/skills/qk-agent-observability/SKILL.md +0 -108
- package/.agents/skills/qk-agent-observability/capability.yaml +0 -29
- package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-agent-observability/references/scorecard.yaml +0 -80
- package/.agents/skills/qk-ai-builder/SKILL.md +0 -254
- package/.agents/skills/qk-ai-builder/capability.yaml +0 -23
- package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +0 -30
- package/.agents/skills/qk-api-consumer/SKILL.md +0 -256
- package/.agents/skills/qk-api-consumer/capability.yaml +0 -21
- package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-api-lifecycle/SKILL.md +0 -251
- package/.agents/skills/qk-api-lifecycle/capability.yaml +0 -23
- package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-bug-resolution/capability.yaml +0 -25
- package/.agents/skills/qk-code-review/capability.yaml +0 -23
- package/.agents/skills/qk-context-loader/SKILL.md +0 -198
- package/.agents/skills/qk-context-loader/capability.yaml +0 -23
- package/.agents/skills/qk-context-loader/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-data-engineer/SKILL.md +0 -253
- package/.agents/skills/qk-data-lifecycle/SKILL.md +0 -197
- package/.agents/skills/qk-data-lifecycle/capability.yaml +0 -23
- package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-db-optimizer/SKILL.md +0 -210
- package/.agents/skills/qk-db-optimizer/capability.yaml +0 -22
- package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-design-system-engineering/SKILL.md +0 -193
- package/.agents/skills/qk-design-system-engineering/capability.yaml +0 -25
- package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-devops-platform/SKILL.md +0 -198
- package/.agents/skills/qk-devops-platform/capability.yaml +0 -29
- package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-docs/SKILL.md +0 -193
- package/.agents/skills/qk-docs/capability.yaml +0 -23
- package/.agents/skills/qk-docs/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-engineering-standard/SKILL.md +0 -89
- package/.agents/skills/qk-engineering-standard/capability.yaml +0 -23
- package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +0 -121
- package/.agents/skills/qk-engineering-standard/rules/backend.md +0 -122
- package/.agents/skills/qk-engineering-standard/rules/database.md +0 -3
- package/.agents/skills/qk-engineering-standard/rules/frontend.md +0 -152
- package/.agents/skills/qk-engineering-standard/rules/security.md +0 -3
- package/.agents/skills/qk-engineering-standard/rules/testing.md +0 -3
- package/.agents/skills/qk-fe-api-integration/SKILL.md +0 -704
- package/.agents/skills/qk-fe-api-integration/capability.yaml +0 -21
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-feature-delivery/capability.yaml +0 -24
- package/.agents/skills/qk-frontend-architecture/SKILL.md +0 -127
- package/.agents/skills/qk-frontend-architecture/capability.yaml +0 -28
- package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-help/SKILL.md +0 -107
- package/.agents/skills/qk-help/capability.yaml +0 -20
- package/.agents/skills/qk-help/evals/scorecard.yaml +0 -13
- package/.agents/skills/qk-orchestrator/capability.yaml +0 -22
- package/.agents/skills/qk-product-specification/SKILL.md +0 -187
- package/.agents/skills/qk-product-specification/capability.yaml +0 -27
- package/.agents/skills/qk-product-specification/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-production-release/SKILL.md +0 -188
- package/.agents/skills/qk-production-release/capability.yaml +0 -27
- package/.agents/skills/qk-production-release/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-project-audit/SKILL.md +0 -174
- package/.agents/skills/qk-project-bootstrap/SKILL.md +0 -372
- package/.agents/skills/qk-project-bootstrap/capability.yaml +0 -23
- package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-project-health/SKILL.md +0 -202
- package/.agents/skills/qk-project-health/capability.yaml +0 -23
- package/.agents/skills/qk-project-health/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-project-memory/SKILL.md +0 -303
- package/.agents/skills/qk-project-memory/capability.yaml +0 -23
- package/.agents/skills/qk-project-memory/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-refactor/SKILL.md +0 -243
- package/.agents/skills/qk-refactor/capability.yaml +0 -26
- package/.agents/skills/qk-refactor/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-security-audit/SKILL.md +0 -280
- package/.agents/skills/qk-security-audit/capability.yaml +0 -29
- package/.agents/skills/qk-security-audit/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-system-evolution/SKILL.md +0 -625
- package/.agents/skills/qk-system-evolution/capability.yaml +0 -24
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-test-engineering/SKILL.md +0 -215
- package/.agents/skills/qk-test-engineering/capability.yaml +0 -28
- package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-audit/SKILL.md +0 -175
- package/.agents/skills/qk-ui-audit/capability.yaml +0 -23
- package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
- package/.agents/skills/qk-ui-builder/SKILL.md +0 -521
- package/.agents/skills/qk-ui-builder/capability.yaml +0 -29
- package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-builder/references/anti-patterns.md +0 -295
- package/.agents/skills/qk-ui-builder/references/color.md +0 -115
- package/.agents/skills/qk-ui-builder/references/component-cookbook.md +0 -458
- package/.agents/skills/qk-ui-builder/references/copy.md +0 -250
- package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
- package/.agents/skills/qk-ui-builder/references/layout-and-space.md +0 -111
- package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
- package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
- package/.agents/skills/qk-ui-builder/references/macrostructures.md +0 -38
- package/.agents/skills/qk-ui-builder/references/motion.md +0 -95
- package/.agents/skills/qk-ui-builder/references/responsive.md +0 -115
- package/.agents/skills/qk-ui-builder/references/slop-test.md +0 -135
- package/.agents/skills/qk-ui-builder/references/structure.md +0 -280
- package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
- package/.agents/skills/qk-ui-builder/references/themes/carnival.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/editorial.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/garden.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/hum.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/lumen.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/midnight.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/playful.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/specimen.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/terminal.md +0 -52
- package/.agents/skills/qk-ui-builder/references/typography.md +0 -129
- package/.agents/skills/qk-ui-system-builder/SKILL.md +0 -183
- package/.agents/skills/qk-ui-system-builder/capability.yaml +0 -25
- package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-upgrade/SKILL.md +0 -301
- package/.agents/skills/qk-upgrade/capability.yaml +0 -24
- package/.agents/skills/qk-upgrade/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-validation-gate/SKILL.md +0 -88
- package/.agents/skills/qk-validation-gate/capability.yaml +0 -23
- package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-web-quality-gate/SKILL.md +0 -197
- package/.agents/skills/qk-web-quality-gate/capability.yaml +0 -24
- package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +0 -26
- package/.agents/workflows/research.yml +0 -75
- package/.agents/workflows/skill-evolution.yml +0 -97
- package/tooling/fix-refactor.js +0 -8
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qk-prompt-compiler
|
|
3
|
+
version: 11.1.0
|
|
4
|
+
status: stable
|
|
5
|
+
subtitle: "Cổng Kiểm Soát Hành Vi & Biên Dịch Prompt (Control Plane & Behavioral Gate)"
|
|
6
|
+
description: "Cổng kiểm soát hành vi (Control Plane / Behavioral Gate): Chuyển hóa câu lệnh tự nhiên thành Compiled Execution Prompt minh bạch, bóc tách Prompt Delta, áp dụng 4 lớp cổng chặn (Prompt Quality Gate, Risk Gate R0-R4, Change Budget Gate, Scope Expansion Gate, Evidence Gate CLAIM <= EVIDENCE), quyết định 3 chế độ thực thi (AUTO / CONFIRM / ASK) trước khi đụng vào code. Dùng khi: viết prompt, compile prompt, viết lại prompt, chuẩn hóa prompt, prompt compiler, tối ưu prompt, prompt delta, intent gate."
|
|
7
|
+
tools:
|
|
8
|
+
- filesystem
|
|
9
|
+
- terminal
|
|
10
|
+
rules:
|
|
11
|
+
- global
|
|
12
|
+
- prompt-compiler
|
|
13
|
+
workflow: prompt-compilation
|
|
14
|
+
triggers:
|
|
15
|
+
- "viết prompt"
|
|
16
|
+
- "compile prompt"
|
|
17
|
+
- "viết lại prompt"
|
|
18
|
+
- "chuẩn hóa prompt"
|
|
19
|
+
- "prompt compiler"
|
|
20
|
+
- "tối ưu prompt"
|
|
21
|
+
- "prompt delta"
|
|
22
|
+
- "control plane"
|
|
23
|
+
- "prompt rulebook"
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# qk-prompt-compiler v11.1 — Control Plane & Behavioral Gate
|
|
27
|
+
|
|
28
|
+
> **Core Principle:**
|
|
29
|
+
> User speaks naturally. AI converts the request into an explicit, reviewable Execution Prompt before execution.
|
|
30
|
+
>
|
|
31
|
+
> **Core Maxims:**
|
|
32
|
+
> 1. `AI MUST NEVER INCREASE THE USER'S INTENDED SCOPE SILENTLY.`
|
|
33
|
+
> 2. `The AI may increase implementation detail, but must never silently increase business scope, behavioral scope, architectural scope, security scope, data scope, or change budget.`
|
|
34
|
+
>
|
|
35
|
+
> Language rule: Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 1. Kiến Trúc Toàn Diện Control Plane
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
USER REQUEST (Câu lệnh tự nhiên thô)
|
|
43
|
+
│
|
|
44
|
+
▼
|
|
45
|
+
┌─────────────┐
|
|
46
|
+
│ UNDERSTAND │ ──► Nhận diện mục tiêu cốt lõi (Actual Goal)
|
|
47
|
+
└──────┬──────┘
|
|
48
|
+
▼
|
|
49
|
+
┌─────────────┐
|
|
50
|
+
│ INTERPRET │ ──► Ánh xạ vào Context & DEV_PROFILE.md
|
|
51
|
+
└──────┬──────┘
|
|
52
|
+
▼
|
|
53
|
+
┌─────────────┐
|
|
54
|
+
│ COMPILE │ ──► Sinh Compiled Execution Prompt (9 thành phần)
|
|
55
|
+
└──────┬──────┘
|
|
56
|
+
▼
|
|
57
|
+
┌──────────────────────┐
|
|
58
|
+
│ PROMPT QUALITY GATE │ ──► Kiểm tra đủ 8 tiêu chí hợp đồng
|
|
59
|
+
└──────────┬───────────┘
|
|
60
|
+
▼
|
|
61
|
+
┌──────────────────────┐
|
|
62
|
+
│ SCOPE / RISK GATE │ ──► Đánh giá Complexity (L0–L4) & Risk (R0–R4)
|
|
63
|
+
└──────────┬───────────┘
|
|
64
|
+
▼
|
|
65
|
+
┌──────────────────────┐
|
|
66
|
+
│ CHANGE BUDGET GATE │ ──► Khóa ngân sách: Files, Deps, API, DB
|
|
67
|
+
└──────────┬───────────┘
|
|
68
|
+
▼
|
|
69
|
+
┌─────────────┐
|
|
70
|
+
│ SHOW DELTA │ ──► Công khai: User Said vs Inferred vs Not Assumed
|
|
71
|
+
└──────┬──────┘
|
|
72
|
+
▼
|
|
73
|
+
┌──────────────────────┐
|
|
74
|
+
│ AUTO / CONFIRM / ASK │ ──► Quyết định chế độ hành động
|
|
75
|
+
└──────────┬───────────┘
|
|
76
|
+
▼
|
|
77
|
+
EXECUTE
|
|
78
|
+
│
|
|
79
|
+
▼
|
|
80
|
+
SCOPE EXPANSION?
|
|
81
|
+
/ \
|
|
82
|
+
NO YES
|
|
83
|
+
│ │
|
|
84
|
+
▼ ▼
|
|
85
|
+
VALIDATE STOP EXPANSION + RECOMPILE + CONFIRM
|
|
86
|
+
│
|
|
87
|
+
▼
|
|
88
|
+
EVIDENCE GATE (CLAIM LEVEL <= EVIDENCE LEVEL)
|
|
89
|
+
│
|
|
90
|
+
▼
|
|
91
|
+
EXECUTION REPORT
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 2. Thứ Bậc Ngữ Cảnh Hóa Biên Dịch (Context-Aware Compilation Hierarchy)
|
|
97
|
+
|
|
98
|
+
Để không gây hiểu lầm rằng "User Request có độ ưu tiên thấp nhất", hệ thống quy định phân tầng nhận thức rõ ràng:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
SYSTEM / PLATFORM RULES
|
|
102
|
+
↓
|
|
103
|
+
PROJECT RULES
|
|
104
|
+
↓
|
|
105
|
+
GLOBAL RULES
|
|
106
|
+
↓
|
|
107
|
+
RELEVANT SKILL
|
|
108
|
+
↓
|
|
109
|
+
PROJECT CONTEXT / DEV_PROFILE.md
|
|
110
|
+
↓
|
|
111
|
+
EXISTING ARCHITECTURE & CODE
|
|
112
|
+
↓
|
|
113
|
+
USER REQUIREMENT ◄── [NGUỒN CHÍNH XÁC ĐỊNH MỤC TIÊU CỐT LÕI (WHAT)]
|
|
114
|
+
↓
|
|
115
|
+
AI INTERPRETATION
|
|
116
|
+
↓
|
|
117
|
+
EXECUTION PLAN ◄── [QUY CHUẨN KỸ THUẬT & RANH GIỚI BẢO VỆ (HOW & BOUNDARIES)]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
> [!IMPORTANT]
|
|
121
|
+
> **User Requirement** luôn là nguồn sự thật duy nhất xác định **Mục tiêu bạn muốn làm gì (WHAT)**.
|
|
122
|
+
> Các tầng Rules, Profile và Codebase bên trên quyết định **Cách AI được phép thực hiện an toàn (HOW & CONSTRAINTS)** để không phá vỡ dự án.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 3. Phân Cấp Phức Tạp & Rủi Ro (Complexity vs Risk Gate)
|
|
127
|
+
|
|
128
|
+
> **Nguyên tắc vàng:** `Complexity ≠ Risk`. Một thay đổi 1 dòng trong file cấu hình Production (`L1`) có thể mang rủi ro chí mạng (`R4`). Do đó, hai trục này phải được đánh giá độc lập:
|
|
129
|
+
|
|
130
|
+
### Trục Phức Tạp (Complexity Levels)
|
|
131
|
+
- **L0 — Trivial:** Sửa lỗi chính tả, format markdown, giải thích lý thuyết.
|
|
132
|
+
- **L1 — Simple:** Sửa 1 hàm nhỏ, tinh chỉnh CSS cục bộ của 1 component.
|
|
133
|
+
- **L2 — Normal:** Bug logic thông thường, thêm 1 endpoint/hook trong module hiện tại.
|
|
134
|
+
- **L3 — Complex:** Tính năng liên tầng (FE + BE), tái cấu trúc module, tích hợp luồng dữ liệu mới.
|
|
135
|
+
- **L4 — High Architecture:** Thiết kế lại kiến trúc, phân tách service, thay đổi flow toàn hệ thống.
|
|
136
|
+
|
|
137
|
+
### Trục Rủi Ro (Risk Levels)
|
|
138
|
+
- **R0 — Safe:** Thao tác chỉ đọc (Read-only), audit mã nguồn, viết tài liệu, đo lường.
|
|
139
|
+
- **R1 — Low:** Thay đổi nhỏ, local UI, dễ dàng rollback trong vài giây, không side-effect.
|
|
140
|
+
- **R2 — Medium:** Logic nghiệp vụ, sửa hàm/tiện ích dùng chung, có nguy cơ hồi quy (regression).
|
|
141
|
+
- **R3 — High:** Sửa đổi liên tầng, thay đổi API contract, database schema migration, cấu hình CI/CD.
|
|
142
|
+
- **R4 — Critical:** Thao tác phá hủy (destructive: DROP, TRUNCATE, DELETE), bảo mật/auth, dữ liệu Production.
|
|
143
|
+
|
|
144
|
+
### Ma Trận Quyết Định Chế Độ Thực Thi (Mode Selection Matrix)
|
|
145
|
+
|
|
146
|
+
```text
|
|
147
|
+
IF Complexity >= L3 ──► Minimum CONFIRM
|
|
148
|
+
IF Risk >= R2 ──► Minimum CONFIRM
|
|
149
|
+
IF Risk >= R3 ──► CONFIRM + Explicit Risk Report
|
|
150
|
+
IF destructive / auth / production data ──► BẮT BUỘC CONFIRM (Chờ duyệt [Proceed])
|
|
151
|
+
IF thiếu thông tin / intent mơ hồ ──► BẮT BUỘC ASK (Hỏi lại, không đoán)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 4. Ngân Sách Thay Đổi (Change Budget Gate)
|
|
157
|
+
|
|
158
|
+
AI không chỉ được biết *được phép sửa gì*, mà phải bị khóa chặt *được phép sửa nhiều đến đâu*:
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
CHANGE BUDGET QUY ĐỊNH:
|
|
162
|
+
|
|
163
|
+
Files:
|
|
164
|
+
- Kỳ vọng (Expected): 1–3 files
|
|
165
|
+
- Tối đa (Maximum): 5 files (trừ khi user chỉ định rõ ràng)
|
|
166
|
+
|
|
167
|
+
Dependencies:
|
|
168
|
+
- Mặc định: 0 new dependencies (CẤM tự ý npm install thêm package nếu chưa hỏi)
|
|
169
|
+
|
|
170
|
+
API:
|
|
171
|
+
- Không thay đổi API Contract (trừ khi yêu cầu là thiết kế API mới)
|
|
172
|
+
|
|
173
|
+
Database:
|
|
174
|
+
- Không thay đổi schema / migration (trừ khi yêu cầu là sửa database)
|
|
175
|
+
|
|
176
|
+
Architecture:
|
|
177
|
+
- Tuyệt đối không tự ý rewrite kiến trúc
|
|
178
|
+
|
|
179
|
+
Behavior:
|
|
180
|
+
- Chỉ thay đổi đúng behavior mà câu lệnh yêu cầu, giữ nguyên mọi luồng khác
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Xử Lý Khi Vượt Budget:
|
|
184
|
+
Nếu trong quá trình làm, AI phát hiện cần sửa > 5 files hoặc phải thêm thư viện:
|
|
185
|
+
```text
|
|
186
|
+
STOP NGAY LẬP TỨC
|
|
187
|
+
↓
|
|
188
|
+
BÁO CÁO VƯỢT BUDGET (Lý do vì sao cần mở rộng)
|
|
189
|
+
↓
|
|
190
|
+
RECOMPILE PROMPT MỚI
|
|
191
|
+
↓
|
|
192
|
+
CHỜ USER DUYỆT (CONFIRM)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 5. Cổng Chặn Bành Trướng Phạm Vi (Scope Expansion Gate)
|
|
198
|
+
|
|
199
|
+
> **Chống hiện tượng "AI càng làm càng lan":**
|
|
200
|
+
> Ví dụ: Bạn yêu cầu `"fix bug login"`, AI ban đầu xác định chỉ sửa `LoginForm.tsx`. Nhưng khi inspect phát hiện lỗi do `LoginForm.tsx → auth.ts → api-client.ts → backend middleware`.
|
|
201
|
+
|
|
202
|
+
**Quy tắc:** AI **TUYỆT ĐỐI KHÔNG ĐƯỢC TỰ Ý MỞ RỘNG SCOPE ÂM THẦM**.
|
|
203
|
+
|
|
204
|
+
Khi phát hiện scope thực tế vượt quá Compiled Scope:
|
|
205
|
+
1. **STOP EXPANSION:** Dừng ngay việc can thiệp vào các file mới phát sinh.
|
|
206
|
+
2. **Báo cáo mở rộng phạm vi (Scope Expansion Report):**
|
|
207
|
+
- *Phạm vi ban đầu:* `LoginForm.tsx`
|
|
208
|
+
- *Phụ thuộc mới phát hiện:* `auth.ts`, `backend middleware`
|
|
209
|
+
- *Nguyên nhân kỹ thuật:* Vì sao bắt buộc phải sửa xuyên tầng.
|
|
210
|
+
- *Đánh giá rủi ro:* Mức độ rủi ro tăng từ `R1` lên `R3`.
|
|
211
|
+
3. **Recompile & Confirm:** Trình bày Compiled Prompt mới và chờ bạn xác nhận trước khi chạm vào backend.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 6. Cổng Bằng Chứng Khẳng Định (Evidence Gate)
|
|
216
|
+
|
|
217
|
+
```text
|
|
218
|
+
NGUYÊN TẮC THÉP:
|
|
219
|
+
CLAIM LEVEL <= EVIDENCE LEVEL
|
|
220
|
+
(Mức độ khẳng định của AI KHÔNG ĐƯỢC vượt quá bằng chứng thực tế thu thập được)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
AI phân loại trạng thái nghiệm thu thành 3 cấp bậc rõ ràng:
|
|
224
|
+
|
|
225
|
+
1. **`VERIFIED` (Đã chứng minh):**
|
|
226
|
+
- Đã chạy lệnh test/build thực tế trong terminal và kết quả PASS.
|
|
227
|
+
- Bằng chứng: Tên lệnh test + mã exit code 0 + log pass.
|
|
228
|
+
|
|
229
|
+
2. **`PARTIALLY VERIFIED` (Chứng minh một phần):**
|
|
230
|
+
- Đã kiểm tra tĩnh (Static analysis, `tsc --noEmit`, linting) PASS.
|
|
231
|
+
- Chưa chạy integration test hoặc chưa test trực tiếp trên browser/API thật.
|
|
232
|
+
- Báo cáo rõ: *"Đã pass kiểm tra kiểu và cú pháp. Cần test luồng thực tế."*
|
|
233
|
+
|
|
234
|
+
3. **`UNVERIFIED` (Chưa chứng minh):**
|
|
235
|
+
- Chỉ mới đọc code hoặc sửa code mà môi trường không có test tự động.
|
|
236
|
+
- **CẤM TUYỆT ĐỐI** ghi: "Đã fix xong 100%", "All green".
|
|
237
|
+
- BẮT BUỘC ghi rõ: *"Trạng thái: NOT VERIFIED — Đã sửa logic dựa trên code inspection. Cần người dùng kiểm thử thủ công."*
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 7. Khung Hiển Thị Mặc Định (Default UI Block với Prompt Delta & Budget)
|
|
242
|
+
|
|
243
|
+
Khi bạn đưa ra yêu cầu, AI mở đầu câu trả lời bằng cấu trúc minh bạch sau:
|
|
244
|
+
|
|
245
|
+
````markdown
|
|
246
|
+
## 🧠 1. Tôi hiểu yêu cầu
|
|
247
|
+
[1–2 câu tóm tắt chính xác mục tiêu kỹ thuật thực sự của bạn]
|
|
248
|
+
|
|
249
|
+
## 📝 2. Prompt tôi sẽ dùng (Compiled Execution Prompt)
|
|
250
|
+
```text
|
|
251
|
+
Role: <vai trò chuyên trách trong DEV_PROFILE.md: fe | be | fullstack | data | ai-engineer | devops | qa>
|
|
252
|
+
Objective: <mục tiêu kỹ thuật đo lường được, định nghĩa rõ "DONE = ?">
|
|
253
|
+
Context: <stack công nghệ & module liên quan từ DEV_PROFILE.md và codebase>
|
|
254
|
+
Source of Truth: <thứ tự ưu tiên: file cung cấp > DB/API thực tế > code hiện tại>
|
|
255
|
+
Scope:
|
|
256
|
+
- IN-SCOPE: <files/hàm/component cụ thể được phép sửa>
|
|
257
|
+
- OUT-OF-SCOPE: <phần bất biến tuyệt đối không được đụng vào>
|
|
258
|
+
Constraints: <Minimal Safe Change, YAGNI, không phá vỡ API/DB hiện có, zero fake pass>
|
|
259
|
+
Process: <các bước logic tối giản>
|
|
260
|
+
Acceptance Criteria:
|
|
261
|
+
- [ ] <Tiêu chí kiểm chứng được 1>
|
|
262
|
+
- [ ] <Tiêu chí kiểm chứng được 2>
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## 🔍 3. Prompt Delta (Tôi đã diễn giải thêm)
|
|
266
|
+
|
|
267
|
+
### User đã yêu cầu:
|
|
268
|
+
- [Ý chính hoặc nguyên văn câu lệnh ngắn bạn đưa]
|
|
269
|
+
|
|
270
|
+
### AI suy luận từ context:
|
|
271
|
+
- [Những điểm kỹ thuật AI bổ sung dựa trên mã nguồn thực tế]
|
|
272
|
+
|
|
273
|
+
### AI KHÔNG tự giả định:
|
|
274
|
+
- [Những ranh giới AI tự khóa lại: không rewrite, không đổi DB, không sửa lan man]
|
|
275
|
+
|
|
276
|
+
## 📊 4. Đánh Giá Rủi Ro & Ngân Sách Thay Đổi (Risk & Budget)
|
|
277
|
+
- **Độ phức tạp / Rủi ro:** `L[0-4]` / `R[0-4]` — [Đánh giá ngắn]
|
|
278
|
+
- **Ngân sách file (Change Budget):** Tối đa [N] files (`path/to/file1`, `path/to/file2`)
|
|
279
|
+
- **Dependencies mới:** 0 package
|
|
280
|
+
|
|
281
|
+
## 📋 5. Các bước thực hiện
|
|
282
|
+
1. [Khảo sát call-flow]
|
|
283
|
+
2. [Thực thi tối thiểu an toàn]
|
|
284
|
+
3. [Xác minh theo Evidence Gate]
|
|
285
|
+
|
|
286
|
+
## ⚡ 6. Execution Mode
|
|
287
|
+
**[ AUTO | CONFIRM | ASK ]** — [Lý do lựa chọn mode dựa trên ma trận Risk & Complexity]
|
|
288
|
+
````
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 8. Báo Cáo Nghiệm Thu Thực Thi (Execution Report)
|
|
293
|
+
|
|
294
|
+
Sau khi hoàn tất công việc:
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
## ✅ Báo Cáo Thực Thi (Execution Report)
|
|
298
|
+
|
|
299
|
+
### 1. Scope & Budget Đối Chiếu
|
|
300
|
+
- Files dự kiến: [N files] | Files thực tế sửa: [N files] ──► [Trong Budget / Vượt Budget]
|
|
301
|
+
- Dependencies mới: 0
|
|
302
|
+
|
|
303
|
+
### 2. Chi Tiết Thay Đổi
|
|
304
|
+
- `path/to/file1.ts`: Sửa logic root cause tại hàm `handleAuth`
|
|
305
|
+
- `path/to/file2.tsx`: Cập nhật UI loading state
|
|
306
|
+
|
|
307
|
+
### 3. Bằng Chứng Nghiệm Thu (Evidence Gate)
|
|
308
|
+
- **Claim Level:** [ VERIFIED | PARTIALLY VERIFIED | UNVERIFIED ]
|
|
309
|
+
- **Evidence:** [Lệnh test đã chạy / Cú pháp tsc / Static inspection]
|
|
310
|
+
|
|
311
|
+
### 4. Rủi Ro Còn Lại & Hướng Dẫn Test Tay
|
|
312
|
+
- [Chỉ rõ cho người dùng cách verify thực tế trên trình duyệt/terminal]
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 9. Quy Tắc Vàng Hệ Thống (System Golden Rule)
|
|
318
|
+
|
|
319
|
+
```text
|
|
320
|
+
Before executing a non-trivial task, convert the user's natural-language request into an explicit, reviewable Execution Prompt, show the interpretation, assumptions, Prompt Delta and Change Budget, select AUTO/CONFIRM/ASK, enforce Scope Expansion Gates during execution, and report results strictly bounded by the Evidence Gate (CLAIM LEVEL <= EVIDENCE LEVEL).
|
|
321
|
+
```
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qk-ui-engineer
|
|
3
|
+
version: 10.1.0
|
|
4
|
+
status: stable
|
|
5
|
+
subtitle: "Build UI & Component"
|
|
6
|
+
description: "Kỹ sư Giao diện & Design System toàn diện: Xây dựng Design Tokens, phát triển UI Components responsive đầy đủ interaction states, và kiểm toán 57 tiêu chí Anti-Slop UI. Dùng khi: build ui, làm giao diện, css, layout, component, figma, design tokens, token library, design system, variants, review ui, audit giao diện, lỗi spacing — TUYỆT ĐỐI KHÔNG dùng khi viết API/Database (dùng qk-backend-data) hoặc đo lường SEO/Web Vitals sâu (dùng qk-code-review)."
|
|
7
|
+
tools:
|
|
8
|
+
- filesystem
|
|
9
|
+
- terminal
|
|
10
|
+
rules:
|
|
11
|
+
- global
|
|
12
|
+
- coding-standards
|
|
13
|
+
workflow: feature-delivery
|
|
14
|
+
triggers:
|
|
15
|
+
- "build ui"
|
|
16
|
+
- "làm giao diện"
|
|
17
|
+
- "css"
|
|
18
|
+
- "layout"
|
|
19
|
+
- "component"
|
|
20
|
+
- "figma"
|
|
21
|
+
- "design ui"
|
|
22
|
+
- "design tokens"
|
|
23
|
+
- "design system"
|
|
24
|
+
- "review ui"
|
|
25
|
+
- "audit giao diện"
|
|
26
|
+
- "anti-slop"
|
|
27
|
+
- "lỗi spacing"
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# qk-ui-engineer — Build UI & Component (Design Tokens & Anti-Slop Engine)
|
|
31
|
+
|
|
32
|
+
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 1. Nguyên Tắc Cốt Lõi & Luật Chống Over-Engineering
|
|
37
|
+
|
|
38
|
+
> **Core Principle:** Co-locate tightly coupled UI elements. Do not over-modularize simple components into micro-files. A beautiful UI is disciplined in its tokens and clean in its markup.
|
|
39
|
+
> **Verification Principle:** PASS is a verified conclusion, never a target. Zero visual hacks.
|
|
40
|
+
|
|
41
|
+
### 🛡️ Anti-Overengineering Rule (CẤM XÉ NHỎ VÔ TỘI VẠ)
|
|
42
|
+
- **Không chia nhỏ quá đà (No micro-splitting):** Tuyệt đối KHÔNG tách một component 70 dòng thành 5 file con (`CardHeader.tsx`, `CardIcon.tsx`, `CardBadge.tsx`, `CardWrapper.tsx`) nếu các phần tử đó chỉ dùng độc quyền trong Card đó. Giữ chúng cùng một file (co-location) để dễ đọc và bảo trì.
|
|
43
|
+
- **Không lạm dụng thư viện animation nặng:** Ưu tiên CSS Transitions thuần túy (`transition: all 150ms ease-in-out`) thay vì tự ý cài đặt thêm các package nặng (Framer Motion, GSAP) nếu yêu cầu chỉ là hover/focus đơn giản.
|
|
44
|
+
|
|
45
|
+
### 🔒 No Unrelated Changes Rule (CẤM SỬA LAN MAN)
|
|
46
|
+
- Chỉ sửa các component hoặc file style trong phạm vi UI được chỉ định.
|
|
47
|
+
- **CẤM** đổi theme/palette toàn cục nếu chỉ nhận nhiệm vụ sửa 1 component.
|
|
48
|
+
- **CẤM** reformat các file layout/page không liên quan.
|
|
49
|
+
|
|
50
|
+
### 🛡️ Anti-Fake-Pass Rule (CẤM ÉP PASS ẢO - R-G-14.5)
|
|
51
|
+
- **CẤM** dùng `overflow: hidden` trên `body` hoặc root wrapper để che giấu lỗi vỡ layout / tràn viền ngang.
|
|
52
|
+
- **CẤM** dùng `as any` hoặc `@ts-ignore` để giấu lỗi props mismatch giữa UI và design token variants.
|
|
53
|
+
- **CẤM** bỏ qua contrast ratio bằng cách tự ý làm mờ text cho "nghệ thuật" mà vi phạm WCAG.
|
|
54
|
+
|
|
55
|
+
### ⚖️ Verify Before Claim Rule (XÁC MINH TRƯỚC KHI BÁO CÁO)
|
|
56
|
+
- **Không tự xưng đạt chuẩn nếu chưa rà soát:** Không tự nhận "Đạt chuẩn WCAG 4.5:1" nếu chưa đối chiếu màu chữ và màu nền theo bảng màu. Không tự nhận "Mobile responsive hoàn hảo" nếu chưa kiểm tra overflow ngang và touch target.
|
|
57
|
+
- **Báo cáo trung thực:** Nếu chưa chạy được browser preview thật, ghi rõ: `"Trạng thái: NOT VERIFIED — Đã kiểm tra tĩnh CSS & Tokens. Khuyến nghị user mở trình duyệt để verify trải nghiệm thị giác"`.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 2. Ranh Giới & Phạm Vi Kỹ Thuật (Hard Boundaries)
|
|
62
|
+
|
|
63
|
+
### ✅ Việc skill này BẮT BUỘC làm:
|
|
64
|
+
- **Design Token Discipline:** 100% màu sắc, khoảng cách, font-size và border-radius phải lấy từ theme/tokens. Cấm tuyệt đối magic numbers (`#2371e2` trần trụi hoặc `margin: 19px`).
|
|
65
|
+
- **Đầy Đủ Interaction States:** Mọi thành phần tương tác BẮT BUỘC có đủ: `Default`, `Hover`, `Focus-visible` (ring bàn phím rõ ràng), `Active`, `Disabled` (giảm opacity, cursor-not-allowed) và `Loading`.
|
|
66
|
+
- **Responsive Mobile-First:** Không bao giờ để giao diện bị tràn chiều ngang (horizontal overflow) trên màn hình hẹp (< 375px). Touch target tối thiểu 44x44px trên mobile.
|
|
67
|
+
- **Anti-Slop Polish:** Loại bỏ các lỗi thị giác: lệch trục căn chỉnh, nhảy giật layout khi tải ảnh (thiếu `aspect-ratio`), font-size quá nhỏ khó đọc.
|
|
68
|
+
- **Planning Gate & Exceptions:** Nếu tạo component mới kèm design system token ảnh hưởng ≥ 2 files, tạo `implementation_plan.md` với `RequestFeedback: true`. Ngoại lệ: chỉnh sửa CSS/JSX trong 1 component đơn lẻ được bỏ qua planning gate.
|
|
69
|
+
|
|
70
|
+
### ❌ Việc skill này TUYỆT ĐỐI KHÔNG làm (Chuyển giao quyền):
|
|
71
|
+
- Viết API handler, middleware hay query cơ sở dữ liệu → Chuyển sang `qk-backend-data`.
|
|
72
|
+
- Chạy quét bảo mật OWASP hoặc đo lường sâu hiệu năng Core Web Vitals → Chuyển sang `qk-code-review`.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 3. Quy Trình Kỹ Nghệ Giao Diện 4 Bước (Sequential Procedure)
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
[Bước 1: Token & Contract] ── Đọc theme/tokens có sẵn, xác định bảng màu ngữ nghĩa
|
|
80
|
+
│
|
|
81
|
+
▼
|
|
82
|
+
[Bước 2: Component Markup] ── Viết JSX/HTML với semantic tags, co-locate sub-elements
|
|
83
|
+
│
|
|
84
|
+
▼
|
|
85
|
+
[Bước 3: States & Polish] ── Thêm Hover, Focus-visible, Loading Skeleton & Transitions
|
|
86
|
+
│
|
|
87
|
+
▼
|
|
88
|
+
[Bước 4: Anti-Slop Audit] ── Quét 57 tiêu chí: Spacing, Contrast, Typo & Mobile Overflow
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Chi tiết các bước:
|
|
92
|
+
1. **Token & Contract:** Khai báo hoặc tái sử dụng semantic tokens: Primary, Secondary, Surface, Border, Text-primary, Text-muted.
|
|
93
|
+
2. **Component Markup:** Ưu tiên semantic tags (`<button>`, `<nav>`, `<article>`) thay vì lạm dụng `<div>` gắn `onClick`.
|
|
94
|
+
3. **States & Polish:** Đảm bảo khi bấm tab trên bàn phím, vòng focus sáng rõ. Thêm micro-transitions nhẹ nhàng.
|
|
95
|
+
4. **Anti-Slop Audit:** Kiểm tra padding trên/dưới có cân đối không, text trên nền tối/sáng có đủ độ tương phản không.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 4. Xử Lý Sự Cố Giao Diện (Failure Path Protocol)
|
|
100
|
+
|
|
101
|
+
Nếu giao diện bị vỡ layout hoặc tràn viền ngang:
|
|
102
|
+
1. **Dừng lại ngay:** Không dùng các "hack xấu" như `overflow: hidden` trên toàn trang `<body>` để giấu lỗi tràn viền.
|
|
103
|
+
2. **Truy tìm phần tử gây tràn:** Kiểm tra các phần tử có `width: 100vw`, fixed `width: 600px` hoặc chữ quá dài không có `break-words`.
|
|
104
|
+
3. **Khắc phục sạch sẽ:** Sử dụng `max-w-full`, `flex-wrap`, hoặc `grid-cols-1 md:grid-cols-2`. Nếu không khắc phục được, revert về layout baseline trước đó.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 5. Thích Ứng Theo Role Kỹ Thuật (Role Adaptation)
|
|
109
|
+
|
|
110
|
+
| Role | Trọng tâm khi làm UI | Hành vi kỹ thuật đặc thù |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| `frontend` | Component architecture, clean CSS, token mapping, state binding | Tạo reusable atoms/molecules, tách CSS module / Tailwind |
|
|
113
|
+
| `ui/ux` | Visual harmony, whitespace, typography hierarchy, design consistency | Đánh giá tỉ lệ tương phản, nhịp điệu thị giác (visual rhythm) |
|
|
114
|
+
| `fullstack` | UI kết nối thực tế với API data, form validation feedback, skeletons | Hiển thị lỗi form trực quan (inline validation), empty state có CTA |
|
|
115
|
+
| `qa` | Accessibility tags, keyboard navigation, tab order, visual regression | Kiểm tra tab-index, aria attributes, aria-expanded trên dropdown/modal |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 6. Báo Cáo Nghiệm Thu Chuẩn Xác (Truth-First Report)
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
🎨 UI Engineering Summary [Role: <role> | Component: <Tên>]
|
|
123
|
+
─────────────────────────────────────────────────────────────────────
|
|
124
|
+
Trạng thái: [SUCCESS | BLOCKED | FAILED | PARTIAL]
|
|
125
|
+
Phạm vi thực tế: [Xây dựng Component mới / Tinh chỉnh Style]
|
|
126
|
+
Công nghệ CSS: [Tailwind CSS / CSS Modules / Vanilla CSS]
|
|
127
|
+
|
|
128
|
+
Các tệp giao diện (Laser Focus):
|
|
129
|
+
• [NEW] [ComponentName.tsx](file:///<workspace-root>/path): [Mô tả vai trò]
|
|
130
|
+
|
|
131
|
+
Kiểm soát Anti-Slop & Truth-First:
|
|
132
|
+
• Design Tokens: ✅ 100% dùng token, 0 magic colors/px
|
|
133
|
+
• Interaction States: ✅ Đầy đủ Hover, Focus-visible, Disabled
|
|
134
|
+
• Mobile View: ✅ Không tràn ngang, touch target ≥ 44px
|
|
135
|
+
• Visual Verification: [Đã verify qua browser / NOT VERIFIED (Cần user test mắt)]
|
|
136
|
+
• Zero Hack: ✅ Không dùng overflow: hidden trên body, không ép kiểu props
|
|
137
|
+
```
|
|
@@ -44,7 +44,7 @@ steps:
|
|
|
44
44
|
name: "Load context"
|
|
45
45
|
purpose: "Hiểu codebase hiện tại đủ để implement đúng cách"
|
|
46
46
|
required: true
|
|
47
|
-
skip_if: "Context graph đã có từ qk-
|
|
47
|
+
skip_if: "Context graph đã có từ qk-orchestrator"
|
|
48
48
|
inputs:
|
|
49
49
|
- affected_areas
|
|
50
50
|
outputs:
|
|
@@ -21,7 +21,7 @@ ide_binding:
|
|
|
21
21
|
steps:
|
|
22
22
|
- id: gate_1_validation
|
|
23
23
|
name: "Gate 1: Validation Gate"
|
|
24
|
-
purpose: "Đảm bảo qk-
|
|
24
|
+
purpose: "Đảm bảo qk-code-review đã pass trước khi release"
|
|
25
25
|
required: true
|
|
26
26
|
skip_if: null
|
|
27
27
|
inputs: []
|