Gemini Review Prompt Round 1 — Luật Loài + Collection
PROMPT GEMINI ROUND 1 — Review Luật Loài + Luật Collection
Copy toàn bộ nội dung bên dưới gửi cho Gemini.
YÊU CẦU GÓP Ý KIẾN TRÚC — Luật Loài + Luật Collection
VAI TRÒ
Bạn là chuyên gia governance và vận hành hệ thống (Governance & Operations Expert). Bạn đã review Hiến pháp Kiến trúc v3.0-v3.5 trước đây và đưa ra nhận xét: "The system is a well-built house with growing maintenance debt."
Lần này chúng tôi phát hiện lỗ hổng kiến trúc sâu hơn — ngôi nhà thiếu móng. Cần bạn phản biện mạnh từ góc vận hành thực tế.
BỐI CẢNH THẤT BẠI
2 tuần đếm nguyên tử không xong. Không phải kỹ thuật khó, mà:
- 134 collections trong PG, chỉ 19 đăng ký. 115 = mồ côi cả họ.
- Agent báo "KHỚP" nhưng chỉ đếm 7/19+ loại. Tự lừa mình.
- Luật viết phổ quát, thực hiện vụ việc. Điều 26 nói "đếm TẤT CẢ" nhưng agent chỉ đếm collection đã đăng ký.
- Không kiểm soát từ khi sinh ra → đẻ bừa → chạy theo đếm → vẫn sai.
Người sáng lập: "Lẽ ra AI nên phản biện sớm hơn, thay vì thất bại rồi mới giải thích."
DỰ THẢO LUẬT MỚI (đọc toàn bộ)
Cốt lõi: 2 luật mới + 1 cơ chế
LUẬT LOÀI: Mỗi đối tượng PHẢI thuộc 1 loài (loại đối tượng). Không có loài = mồ côi. SSOT bảng loài liệt kê tất cả loài + mapping đến collection + lớp cấu tạo.
LUẬT COLLECTION: Mỗi collection PHẢI đăng ký + phân loại (managed/observed/infrastructure/junction/unclassified). Collection chưa phân loại = CẢNH BÁO ĐỎ. "Chuồng trước bò sau."
CƠ CHẾ SINH:
- Cổng 1 (sinh loài): Hiếm, chặt, cần DOT riêng, chọn từ SSOT, xin ý kiến đặt tên
- Cổng 2 (sinh cá thể): Thường xuyên, tự động theo luật đã định từ Cổng 1
- Binding Loài→Collection 1 chiều → không nhầm chuồng
- Đếm = audit check chéo (khai sinh vs thực tế PG). Khác = lỗi hệ thống.
Chi tiết
Bảng Loài (entity_species): code, name, composition_level, collection_home, prefix, record_count (realtime), status. Loài cũng là thực thể quản trị.
5 nhóm collection: managed (đếm chi tiết), observed (COUNT*), infrastructure (không đếm), junction (COUNT*), unclassified (cảnh báo).
Collection chứa >1 loài: Phải note metadata danh sách loài. Collection tự đếm số loài.
Phương trình:
Tầng 1: Tổng PG = Σ(managed) + Σ(observed) + Σ(infra) + Σ(junction) + Σ(unclassified)
Tầng 2: Σ(managed) = Σ(6 lớp × loài) + Σ(mồ côi)
Tầng 3: Mỗi loài: khai sinh = thực tế → khác = lỗi hệ thống
Quan hệ luật hiện có:
- Điều 0: thêm "phải có loài"
- Điều 24: Loài = facet thứ 7? Hay meta-concept trước 6 facets?
- Điều 26: Đếm = audit, không phải công cụ chính
- meta_catalog: có thể thay bằng entity_species
Nợ kỹ thuật: 3 fields đếm mâu thuẫn (record_count, actual_count, active_count) + 17 triggers + verify_counts. Cần hợp nhất.
Quy mô dự kiến
- Nguyên tử: ~20-50 loài × 100-5000 cá thể
- Phân tử: ~50-200 loài × 10-1000 cá thể
- Hợp chất+: hàng trăm-ngàn loài (chưa hình dung hết)
- Ma trận đa chiều = bắt buộc chiến lược
YÊU CẦU GÓP Ý
A. VẬN HÀNH THỰC TẾ (★ góc nhìn chính của bạn)
Nghĩ như người phải TRIỂN KHAI dự thảo này trên production. Chỗ nào sẽ vỡ?
- Migration 115 collections chưa đăng ký: Ai phân loại? Bao lâu? Sai thì sao? Rollback?
- Cổng 1 trong thực tế: Agent A đang code feature mới, cần tạo loài mới, phải dừng xin phê duyệt. Workflow thực tế ra sao? Có blocking không?
- Cổng 2 khi DOT lỗi: Trigger BEFORE INSERT reject → cá thể không tạo được → feature bị block. Graceful degradation hay hard fail?
- 17 triggers + verify_counts đang chạy. Migration sang entity_species mà không break production — plan cụ thể?
- Collection mới tự phát hiện: PG trigger detect CREATE TABLE? Directus tạo collection khác CREATE TABLE thuần. Có chắc detect được?
- "Zombie" detection: Cá thể không hoạt động X ngày → cảnh báo. X = bao nhiêu? Mỗi loài khác nhau? Ai xử lý zombie?
- Đếm realtime khi scale: 50,000 records, 20 triggers fire mỗi INSERT. Latency? Cần batch count thay realtime?
B. GOVERNANCE
- Luật Loài + Luật Collection: gộp hay tách? Từ góc governance — ai enforce? Ai audit? Ai chịu trách nhiệm khi vi phạm?
- "Loài" vs Điều 24 (6 facets): Nếu loài = facet thứ 7 → phải sửa Điều 24 (đã ĐÓNG BĂNG). Nếu tách → 2 hệ thống nhãn song song. Rủi ro gì?
- Ai quyết tên loài mới? Người sáng lập? Orchestrator AI? Hay bất kỳ Agent nào? Naming convention enforcement?
- Audit trail: Khi phát hiện "khai sinh ≠ thực tế" → log ở đâu? Ai review? Auto-fix hay manual?
C. PHẢN BIỆN KIẾN TRÚC
- Dự thảo nói "Loài binding Collection 1 chiều." Nhưng nếu refactor collection (gộp/tách) → phải sửa binding → cascade impact?
- entity_species.record_count realtime: View? Trigger? Materialized view? Cụ thể mechanism nào? Mỗi cách có trade-off gì?
- 5 nhóm collection: "junction" có thật sự khác "managed"? entity_labels junction nhưng có 3640 records quan trọng. Ranh giới mờ?
- meta_catalog đã chạy stable 3+ tháng. Thay thế = rủi ro regression. Phương án "giữ meta_catalog + thêm entity_species bên cạnh" có tốt hơn "thay thế"?
D. VẾT XE ĐỔ
- Điều 26 viết xong, 2 tuần deploy không được. Dự thảo này phức tạp hơn Điều 26. Làm sao đảm bảo deploy thành công?
- Agent không hiểu luật → implement sai. Dự thảo ~3000 từ. Agent prompt window có hạn. Cần "Agent cheat sheet" tóm 10 dòng?
- Thứ tự triển khai: Nếu bước 3 (phân loại 134 collections) sai → bước 4-5 sai hết. Phương án rollback?
QUY TẮC
- 🔴 CRITICAL / 🟡 IMPORTANT / 🟢 SUGGESTION
- Mỗi ý: vấn đề + tại sao + giải pháp
- "Cần cân nhắc thêm" = KHÔNG chấp nhận. Cân nhắc CÁI GÌ?
- Ưu tiên phản biện. Cái đúng không cần nói. Cái sai mới cần.