Nền tảng
Định nghĩa hoàn thành
Đã đặc tảDanh sách một phần việc thị giác phải qua trước khi được gọi là xong. Chụp màn hình không phải bằng chứng. Gate xanh không có nghĩa là file bạn sửa đã được kiểm — nói rõ gate nào thực sự phủ nó.
Trước khi bắt đầu
Trước khi bắt đầu
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 1 | File trong 03_components/ đã tồn tại cho primitive bạn sắp đụng | DS-001 clause 2: markdown là SoT |
| 2 | ADR đã tồn tại cho bất kỳ variant, state hay --nf-* mới nào | Nguyên tắc P5 |
| 3 | Đọc .agents/LESSONS.md | Mỗi dòng ở đó là một vòng sửa đã tốn thật |
Token
Token
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 4 | Không có hex hay px trần trong mã component | grep -nE "#[0-9a-fA-F]{6}|[0-9]+px" packages/ui/src — kết quả đúng là rỗng |
| 5 | Mọi giá trị đọc var(--nf-*) | Đọc class list. Nguyên tắc P2 |
| 6 | Token mới có trong nguồn DTCG, không gõ tay vào CSS | node infra/check-tokens.mjs phải xanh |
| 7 | Token mới có mặt ở cả mười theme | Đếm. Không suy từ một theme ra chín theme còn lại — L1 |
Trợ năng
Trợ năng
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 8 | Tab qua mọi điều khiển mới, thấy ring ở từng bước | Bàn phím thật, không phải đọc mã. A16 |
| 9 | Nút chỉ có icon có tên trợ năng | Đọc cây accessibility trong devtools. A5, A22 |
| 10 | Tương phản đạt 4.5:1 cho chữ, 3:1 cho viền và icon | Tính bằng công thức luminance. A3 |
| 11 | Kích thước chạm đạt sàn ở con trỏ thô | Giả lập cảm ứng, đọc getComputedStyle. A1, A11 |
| 12 | Landmark đủ và duy nhất: header, nav có nhãn, main | Đọc DOM. A18 |
| 13 | Overlay trả tiêu điểm qua cả ba đường đóng | Escape, nút đóng, click ra ngoài. A20 |
| 14 | Trạng thái không chỉ báo bằng màu | Xem bản xám hoá. A3 |
Responsive
Responsive
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 15 | Media query chỉ ở breakpoint của kit | grep -n "@media". Giá trị hợp lệ: 640px, 960px, 1280px. A7 |
| 16 | Không cuộn ngang ở 320px | scrollWidth <= clientWidth. A8 |
| 17 | Đọc được ở zoom 200% | Đặt zoom 200% ở 1280px. A9 |
| 18 | Bảng và khối mã cuộn trong hộp của nó | Không phải làm cả trang cuộn. A8 |
Chuyển động
Chuyển động
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 19 | prefers-reduced-motion được tôn trọng | Emulate trong devtools. Dialog xuất hiện ngay, đúng vị trí. A13 |
| 20 | Chỉ báo loading vẫn quay khi giảm chuyển động | Ngoại lệ duy nhất, theo DS-004 clause 4 |
| 21 | Không animate thuộc tính gây tính lại bố cục | Chỉ transform, scale, opacity, clip-path. A15 |
Trạng thái
Trạng thái
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 22 | Mọi dòng trong bảng States của file catalogue đã dựng được | Đi từng dòng trên trang live. Bỏ một dòng là khiếm khuyết. P4 |
| 23 | Không phát minh knob mà catalogue chưa đặt tên | So API với file markdown |
| 24 | Rỗng, lỗi, đang tải ở cấp trang là trạng thái thật | Nếu trang có fetch. A4 |
Gate
Gate
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 25 | pnpm typecheck xanh | Từ gốc repo |
| 26 | pnpm lint xanh | Từ gốc repo |
| 27 | node infra/check-docs.mjs xanh | Link tương đối phân giải ở cả hai cây tài liệu |
| 28 | Nói rõ gate nào thực sự phủ file bạn sửa | L13. Nếu câu trả lời trung thực là "không gate nào", nói ra |
Trình duyệt
Trình duyệt — bắt buộc nếu pixel đổi
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 29 | Mở route đã đổi. Bấm, gõ, gửi, điều hướng | — |
| 30 | Tab các điều khiển mới; xác nhận ring | — |
| 31 | Kiểm các route anh em dùng chung trạng thái bạn vừa viết | — |
| 32 | Desktop và mobile nếu bố cục đổi | — |
| 33 | Console không còn lỗi mới sinh ra từ thay đổi này | — |
Chụp màn hình không phải bằng chứng. Một ảnh cho thấy trạng thái mặc định ở một kích thước với một con trỏ.
Sàn
Sàn — không được phép để đạt màu xanh
Cảnh báo
Không @ts-ignore. Không eslint-disable. Không test bị skip. Không catch {} rỗng. Không stub chưa cài đặt. Đây là mục "Floor" của AGENTS.md và nó không có ngoại lệ.
Báo cáo
Báo cáo
| # | Việc / Kiểm | Cách kiểm |
|---|---|---|
| 34 | Tính lại mọi con số ở cuối, không phải lúc mới viết | — |
| 35 | Cite văn bản được trích, không cite số dòng | Sửa file là số dòng chết |
| 36 | Nói rõ cái gì chưa kiểm được | — |
| 37 | Nếu làm hỏng thứ gì, nói ở dòng đầu tiên | L12 |
| 38 | Khiếm khuyết nào sống sót tới báo cáo thì thêm một dòng vào .agents/LESSONS.md | — |
Chưa quyết
Open questions
| Question | Owner | Resolves when |
|---|---|---|
| Có gate tự động nào chạy được mục Trợ năng không? | nexoboxvn@gmail.com | Một trình chạy test tồn tại trong repo cho tầng UI |
| Kiểm tương phản có thành script không? | nexoboxvn@gmail.com | Sau khi infra/build-tokens.mjs tồn tại |