Skip to content

Cổng kiểm: chặn và báo cáo ​

Cổng (gate) là một script tự động kiểm một điều cụ thể và trả về đạt hoặc không đạt. Repo có khoảng 60 cổng trong scripts/check-*.mjs. Danh sách nhóm nằm ở scripts/run-checks-groups.mjs, một nguồn cho cả hook ở máy lẫn CI.

Hai tầng ​

TầngLệnhKhi đỏGồm
Chặn (blocking)npm run check:code, npm run check:docsKhông commit, không push, CI không deployKiểu, build, seed khớp nguồn, hợp đồng /v1, migration, binding, luật chữ chủ dự án đặt (em dash, ngày, định danh tiếng Anh, design stack), nội dung learner thấy, quy tắc lưu trữ
Báo cáo (report, non-blocking)npm run check:reportChỉ báo, in trong nightlySổ sách docs (SRC, REQ, truy vết, độ tươi), ratchet (shadcn, nợ UI), cổng theo lịch (hạn quarantine), link trong harness

Luật cho cổng mới: vào tầng báo cáo, trừ khi nói được cái gì hỏng cho người dùng, cho deploy hay cho dữ liệu khi bỏ qua nó. Trước khi tách tầng, một ngày last_reviewed cũ hay một dòng SRC thiếu doc từng chặn deploy của mọi app.

Chạy theo đường dẫn ​

node scripts/run-checks.mjs code --staged (pre-commit) chỉ chạy cổng có paths khớp file đã stage; cổng không khai paths thì luôn chạy. CI chạy cả nhóm. Mọi cổng phải độc lập và chỉ đọc, vì chúng chạy song song.

Một danh sách, không hai ​

CI gọi đúng npm run check:code và check:docs, không thêm cổng một dòng trong ci.yml. Cổng check-ci-gates-local đỏ khi ai đó thêm cổng chỉ CI mới biết.