Skip to content

Tiêu chuẩn code ​

Ngắn, và máy giữ được thì có gate. Một luật chỉ nằm trong văn xuôi là luật phụ thuộc vào trí nhớ của phiên đang làm.

#LuậtMáy giữ
1File code mới tối đa 500 dòng; dữ liệu và nội dung ở JSON hoặc DB, không trong .tsgate kích thước file (chỉ xét file thêm mới)
2TypeScript strict, không any, không @ts-ignoretypecheck, ratchet
3Dữ liệu từ ngoài vào (body, query, webhook, JSON từ DB, object storage, API ngoài) kiểm tại cửa bằng Zod; bên trong tin kiểureview
4Tra tài liệu thư viện bằng Context7 (MCP trong .mcp.json) trước khi viết; ghim phiên bản; một thư viện UI và một thư viện animationgate design stack, gate deps
5Test hành vi qua request thật trên DB dựng từ migration; cấm test regex trên mã nguồnreview
6Lưu trữ: git chỉ chứa code nhỏ, docs, asset nhỏ (ảnh ≤ 300 KB, file ≤ 1 MB); media lên R2, nội dung lên DBgate lưu trữ, xem Quy tắc lưu trữ
7App dùng chung package đăng nhập phải có biến môi trường công khai bắt buộcgate kiểm .env.production

Vì sao 500 dòng ​

File lớn là chỗ các phiên song song đụng nhau, và là chỗ agent dễ mất mạch. File cũ không bị chặn (grandfathered); chúng nhỏ đi dần mỗi khi được sửa.

Context7 không quét code ​

Context7 cho agent đọc tài liệu đúng phiên bản của thư viện. Nó không kiểm code đã viết. Quét code là typecheck, lint, gate, Knip.

Ở Conan hôm nay ​

#Ở Conan
1Chỉ mốc huge-file (> 1.000 dòng, 12 file, lớn nhất 3.623 dòng). Chưa có giới hạn cho file mới.
2Mốc any-cast 1.806 (từ 2.033 ngày 10.10), ts-suppress 0, mốc chỉ được hạ. tsc là cổng tuyệt đối ở api.
3Zod ở 25/284 file src của api, qua @hono/zod-openapi.
4Context7 trong .mcp.json; hook deps-docs-guard buộc tra trước khi đổi phiên bản.
514 test api, 3 file test tool-plane; 4 test tích hợp api không chạy ở đâu.
6Chưa có gate lưu trữ. check-media-r2 chỉ chặn 57 ảnh đã chuyển R2 quay lại cây.
7Không áp dụng: tokyo gọi api qua proxy /api cùng origin.

Xem Audit, mục 7.