Điều 29: Luật Phân loại Collection — v2.0 (Đơn giản hóa)
ĐIỀU 29: LUẬT PHÂN LOẠI COLLECTION — v2.0
(Bổ sung Hiến pháp Kiến trúc — 1 hệ thống quản lý TOÀN BỘ)
v2.0 | 2026-03-22 | S160 | Đơn giản hóa triệt để. Bỏ 2 hệ thống → 1 hệ thống. v1.0 | 2026-03-21 | Phức tạp: 10 nhóm, 6 fields riêng, boundary check riêng → BỎ. Nguyên tắc (Huyên): "Bản chất trong PG đều giống nhau, chỉ khác 1 label. Hai hệ thống hành chính song song = vi phạm Assembly First + Điều 28."
I. NGUYÊN TẮC DUY NHẤT
MỌI collection trong PG đều quản lý CÙNG 1 CÁCH: species + birth + đếm. Chỉ khác nhau 1 label:
governance_role(governed / observed / excluded).
138 collections
└── TẤT CẢ: species mapping + birth trigger + mô tả (purpose)
├── governed → quan tâm, inspect chi tiết (pen/stamp/gate)
└── observed/excluded → không quan tâm chi tiết, nhưng VẪN ĐẾM + GIÁM SÁT
Phương trình cân bằng (1 query):
SELECT governance_role, COUNT(*) FROM birth_registry GROUP BY governance_role;
-- governed + observed + excluded = TỔNG TUYỆT ĐỐI
-- Không lọt. Không nhầm. 1 nguồn duy nhất.
II. MỖI COLLECTION PHẢI CÓ
| Thuộc tính | Bắt buộc | Mô tả |
|---|---|---|
governance_role |
✅ | governed / observed / excluded |
purpose |
✅ | Mô tả mục đích (1-2 câu tiếng Việt có dấu) |
| Species mapping | ✅ | Mỗi collection → 1 species trong species_collection_map |
| Birth trigger | ✅ | PG trigger auto INSERT birth_registry khi có record mới |
Thiếu BẤT KỲ thuộc tính nào = collection CHƯA QUẢN LÝ = KHÔNG TIN CẬY.
III. SPECIES GOM (cho collections không quan tâm)
Thay vì tạo hệ thống riêng (GRP-*, boundary check...), dùng lại species — hạ tầng ĐÃ CÓ.
| Species | Gom cho | Ước lượng collections |
|---|---|---|
| SPE-BLK | CMS block components | ~26 |
| SPE-PGW | Website pages, navigation, SEO | ~21 |
| SPE-OSC | OS CRM module | ~24 |
| SPE-JCT | Junction tables (M2M) | ~5 |
| SPE-SYS | System/backup | ~1 |
| SPE-LOG | System logs, audit trails | ~12 |
| SPE-GOV | Governance infrastructure (rules, registries) | ~8 |
| SPE-BZS | Business support (contacts, billing, comms) | ~17 |
| SPE-AIS | AI/agent support | ~4 |
| SPE-CKS | Checkpoint support | ~8 |
→ ~10 species mới. Tổng: ~33 species. Mọi collection có species → Species Matrix hiện TẤT CẢ.
Kiểm tra nhầm chuồng: Nhìn Species Matrix → loài nào có cá thể bất thường? Click → Layer 3 → thấy collections + records → phát hiện lọt.
IV. GIÁM SÁT QUA REGISTRIES UI
Layer 1: Tổng per lớp cấu tạo. Cột "Số lượng" + cột "Thành phần" (bao nhiêu loài/collections bên trong).
Layer 2: Click vào dòng → danh sách collections (hoặc species). Hiện: tên, loài, số lượng, mô tả.
Layer 3: Click vào collection → danh sách loài trong collection + số cá thể per loài. Phát hiện nhầm chuồng: collection excluded mà chứa loài governed → SAI.
Species Matrix: ~30 species × metrics. TẤT CẢ collection hiện hữu — governed VÀ excluded/observed. 1 trang nhìn toàn cảnh.
V. VÒNG ĐỜI — KHAI SINH + KHAI TỬ
Khai sinh nhiều → khai tử cũng nhiều. Birth_registry quản lý cả 2 chiều.
| Sự kiện | Birth registry | Đếm |
|---|---|---|
| Entity INSERT | Trigger → birth record (born_at) | +1 |
| Entity DELETE | Trigger → birth record cập nhật (died_at) hoặc flag | -1 |
| Entity vẫn trong source | birth record, certified | Đếm |
| Entity đã xóa nhưng birth còn | PHANTOM → phát hiện qua fn_registry_health() | Cảnh báo |
→ fn_registry_health() so sánh nơi chứa vs nơi sinh PER collection. Phantom tự phát hiện.
VI. TIÊU CHÍ PHÂN LOẠI governance_role
| Role | Tiêu chí | Inspect |
|---|---|---|
| governed | Chứa entities cần quản trị chi tiết (có code PREFIX-NNN, cần đếm/giám sát/inspect) | pen + stamp + gate |
| observed | Chứa data quan trọng nhưng chưa cần per-entity inspect | Chỉ đếm |
| excluded | Không chứa business entities (CMS, website, junction) | Chỉ đếm |
Thay đổi governance_role: Dùng QT-005 (thăng cấp) hoặc QT mới (hạ cấp). Phải có lý do + approval.
v2.0 | Đơn giản hóa: 1 hệ thống, species gom, bỏ 10 nhóm/6 fields/boundary check riêng. v1.0 | Phức tạp: 10 nhóm, 6 fields → ĐÃ BỎ.