Bỏ qua tới nội dung

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ểmCách kiểm
1File trong 03_components/ đã tồn tại cho primitive bạn sắp đụngDS-001 clause 2: markdown là SoT
2ADR đã tồn tại cho bất kỳ variant, state hay --nf-* mới nàoNguyên tắc P5
3Đọc .agents/LESSONS.mdMỗi dòng ở đó là một vòng sửa đã tốn thật

Token

Token

#Việc / KiểmCách kiểm
4Không có hex hay px trần trong mã componentgrep -nE "#[0-9a-fA-F]{6}|[0-9]+px" packages/ui/src — kết quả đúng là rỗng
5Mọi giá trị đọc var(--nf-*)Đọc class list. Nguyên tắc P2
6Token mới có trong nguồn DTCG, không gõ tay vào CSSnode infra/check-tokens.mjs phải xanh
7Token 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ểmCách kiểm
8Tab qua mọi điều khiển mới, thấy ring ở từng bướcBàn phím thật, không phải đọc mã. A16
9Nút chỉ có icon có tên trợ năngĐọc cây accessibility trong devtools. A5, A22
10Tương phản đạt 4.5:1 cho chữ, 3:1 cho viền và iconTính bằng công thức luminance. A3
11Kích thước chạm đạt sàn ở con trỏ thôGiả lập cảm ứng, đọc getComputedStyle. A1, A11
12Landmark đủ và duy nhất: header, nav có nhãn, mainĐọc DOM. A18
13Overlay trả tiêu điểm qua cả ba đường đóngEscape, nút đóng, click ra ngoài. A20
14Trạng thái không chỉ báo bằng màuXem bản xám hoá. A3

Responsive

Responsive

#Việc / KiểmCách kiểm
15Media query chỉ ở breakpoint của kitgrep -n "@media". Giá trị hợp lệ: 640px, 960px, 1280px. A7
16Không cuộn ngang ở 320pxscrollWidth <= clientWidth. A8
17Đọc được ở zoom 200%Đặt zoom 200% ở 1280px. A9
18Bả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ểmCách kiểm
19prefers-reduced-motion được tôn trọngEmulate trong devtools. Dialog xuất hiện ngay, đúng vị trí. A13
20Chỉ báo loading vẫn quay khi giảm chuyển độngNgoại lệ duy nhất, theo DS-004 clause 4
21Không animate thuộc tính gây tính lại bố cụcChỉ transform, scale, opacity, clip-path. A15

Trạng thái

Trạng thái

#Việc / KiểmCách kiểm
22Mọ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
23Không phát minh knob mà catalogue chưa đặt tênSo API với file markdown
24Rỗng, lỗi, đang tải ở cấp trang là trạng thái thậtNếu trang có fetch. A4

Gate

Gate

#Việc / KiểmCách kiểm
25pnpm typecheck xanhTừ gốc repo
26pnpm lint xanhTừ gốc repo
27node infra/check-docs.mjs xanhLink tương đối phân giải ở cả hai cây tài liệu
28Nói rõ gate nào thực sự phủ file bạn sửaL13. 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ểmCách kiểm
29Mở route đã đổi. Bấm, gõ, gửi, điều hướng—
30Tab các điều khiển mới; xác nhận ring—
31Kiểm các route anh em dùng chung trạng thái bạn vừa viết—
32Desktop và mobile nếu bố cục đổi—
33Console 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ểmCách kiểm
34Tính lại mọi con số ở cuối, không phải lúc mới viết—
35Cite văn bản được trích, không cite số dòngSửa file là số dòng chết
36Nói rõ cái gì chưa kiểm được—
37Nếu làm hỏng thứ gì, nói ở dòng đầu tiênL12
38Khiế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

QuestionOwnerResolves when
Có gate tự động nào chạy được mục Trợ năng không?nexoboxvn@gmail.comMộ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.comSau khi infra/build-tokens.mjs tồn tại