AkiDevRule 2.1.0: Đổi Tên design-core và Ba Rule Được Viết Lại

Bài 2.0.0-2.0.1 nói về khâu giao hàng: installer Python, Windows thành đích hạng nhất. Bản 2.1.0 (12/08/2026) quay lại phần nội dung - đổi một tên file đã gây hiểu nhầm lâu nay, và sửa ba chỗ rule tự mâu thuẫn với chính nó.

RULE-design-core.mdRULE-pattern-core.md

Cái tên cũ đọc như rule về giao diện, trong khi file này chứa luật kiến trúc dùng chung cho mọi loại dự án: single source of truth, Rule of Three, SRP, OCP, ranh giới module. Slug design.* đổi thành pattern.*.

Đổi hết trong một lần, không để lại alias: manifest payload, cross-cutting lens, các tham chiếu slug trong RULE-coding / RULE-ui-pattern / METHOD-subtraction-audit / METHOD-proportionality, dòng @-import trong claude/CLAUDE.md, brief của agent và ví dụ receipt [RULES], ba skill akirule / akihelp / akiflow, map AG trong install.py, README và docs/. Bản ghi lịch sử — CHANGELOG cũ, docs/research/, docs/plan/done/ — cố ý giữ tên cũ. Header tier của chính file cũng sai từ đợt promote 1.x: ghi "Contextual" trong khi nó đã là core @-import.

Ba rule sửa vì tự mâu thuẫn

ui.B5 — từ cầu hover sang khoảng cách hover. Rule cũ chỉ mô tả miếng vá: dựng ::before/::after trong suốt bắc qua khe hở. Nguyên nhân gốc không hề được nêu — trigger và nội dung hiện khi hover được render cách xa nhau nên popup đóng giữa đường chuột đi. Nay rule phát biểu bằng bất biến (popup phải mở suốt quãng chuột đi từ trigger sang nội dung), cách sửa gốc đứng trước (lồng nội dung trong phạm vi hover của trigger, giãn cách bằng padding bên trong thay vì margin), còn cầu nối và độ trễ đóng bị hạ xuống làm lối thoát cho trường hợp portal/teleport hoặc bị overflow cắt.

coding.B3 — chặn việc xác minh quá tay. Đọc tĩnh xác minh, khi tính chất cần chứng minh nằm trọn trong luồng code nhìn thấy được; mục checklist đóng lại trên chính bằng chứng đó. Muốn leo thang lên typecheck, unit test hay chạy thật thì phải gọi tên được nghi ngờ cụ thể mà tầng đó giải quyết. Và không được treo trạng thái hoàn thành vào việc người dùng test tay cho những thứ agent tự kết luận được — người chỉ nhận phần cần mắt người: cảm giác UX, hiển thị, tích hợp ngoài chạy thật. Checklist trong plan vẫn viết đầy đủ; vi phạm nằm ở chỗ lạm dụng cổng "chờ test tay", không phải ở checklist.

Mô tả skill akirule nay mang theo tín hiệu kích hoạt. Danh sách signal nằm trong thân skill, mà thân skill chỉ được đọc sau khi skill đã được gọi — nên bề mặt duy nhất model thấy mỗi lượt là dòng mô tả. Một thử nghiệm headless 5 prompt đo được 0/5 lần router chạy với mô tả cũ không có tín hiệu. Nay mô tả liệt kê thẳng các điểm vào: đuôi file (.md, .vue, .css, .tsx, .rs, .sql), docs/release/commit/deploy, các chủ đề UI/SEO/DB/Tauri/i18n/biz/UX/refactor/audit, quyết định lớn.

Rule mới

  • release.B4 — release note của repo GitHub phải kết bằng **Full Changelog**: <repo-url>/compare/<tag-cũ>...<tag-mới>. Trang Release chỉ hiện note, còn tag trỏ vào một commit duy nhất; thiếu link này thì không có đường nào xem nhanh các commit đã dồn lại kể từ bản trước.
  • content.C2 — audit nội dung: ba lượt quét chỉ đọc (thuật ngữ chuẩn bị trôi, deletion test cho mật độ chữ, độ phủ i18n), phân loại mức nghiêm trọng theo docs.C4.
  • docs.C3 — đi ngược: một subsystem phức tạp mà không có doc feat/ hoặc arch/ tương ứng nay bị tính là finding Incomplete. Audit drift từ nay soi cả chiều code → docs, không chỉ docs → code.
  • Nguyên tắc viết rule trong CLAUDE.md: chuẩn thắng di sản (repo này chuẩn, đổi thì đổi hết, không giữ dạng cũ cho tương thích), câu chữ đặc và ưu tiên từ khóa với ngân sách chữ theo tần suất vi phạm, và tự tuân thủ — rule mới phải có lý do đạt chuẩn pattern.A2 và qua được cổng phản biện pattern.B3.

Toàn bộ corpus public cũng được quét về English-only; phần tiếng Việt có chức năng thì giữ nguyên: danh sách keyword định tuyến, cụm trigger nguyên văn như nạp full, và các ví dụ cần chữ tiếng Việt thật.

Cài hoặc cập nhật: git clone https://github.com/lacvietanh/akidevrule.git && cd akidevrule && ./install.sh (Windows: py -3 install.py).