KB-74FD rev 3

Điều 23: Luật DOT Scanning — Tam quyền Phân lập Dữ liệu v2.1 CHÍNH THỨC

7 min read Revision 3
constitutionlawdot-scanningdieu-23frozen

ĐIỀU 23: LUẬT DOT SCANNING — TAM QUYỀN PHÂN LẬP DỮ LIỆU

(Hiến pháp Kiến trúc — CHÍNH THỨC)

v2.1 | S130 (2026-03-17) | AI Council 3 agents (Gemini 8.5 + Claude Code 8 + Codex 8) → SỬA + ĐÓNG BĂNG v2.0 | S120 feedback Huyen | v2.1: +Quyền Inspector ghi cứng. +Inspector Layer 2. +2 Exception deploy. +Inverse-Check UNMONITORED. +Ranh giới 23/19/22. +Cross-reference. Nguyên tắc nền tảng: "1 bên LÀM, 1 bên KIỂM TRA, 1 bên GIÁM SÁT" search_knowledge("DOT scanning system kiểm tra song song")


§1. NGUYÊN TẮC — TAM QUYỀN PHÂN LẬP DỮ LIỆU

Vai trò Ai Làm gì Quyền
LÀM (Builder) Hệ thống chính (Directus + PG TRIGGER + Nuxt) Tạo/sửa/xóa entities, đếm, render UI READ/WRITE data. KHÔNG sửa kết quả scan.
KIỂM TRA (Inspector) DOT Scanning System Quét ĐỘC LẬP, phát hiện sai lệch READ ALL + WRITE ONLY system_issues & registry_changelog. KHÔNG auto-fix.
GIÁM SÁT (Supervisor) User + AI Council Xem system_issues, quyết định, phê duyệt WCR/ngoại lệ Kích hoạt self-healing actions.

Builder KHÔNG BAO GIỜ tự xác nhận mình đúng. Inspector kiểm tra. Supervisor quyết định.

§1.1 Inspector 2 Layer (AI Council S130)

  • Layer 1 — Internal: PG functions (verify_counts, check_registry_coverage) + DOT shell scripts. Chạy BÊN TRONG hạ tầng.
  • Layer 2 — External: GitHub Actions Health Check workflow + Agent Data /health endpoint. Chạy BÊN NGOÀI PG instance → nếu PG bị compromise, Layer 2 vẫn phát hiện.

Tối thiểu 1 kênh Inspector Layer 2 cho mọi kiểm tra quan trọng.

§1.2 Self-Healing = Action riêng (AI Council S130)

  • Inspector CHỈ phát hiện + ghi findings vào system_issues.
  • Mọi hành động sửa lỗi = action riêng, PHẢI do Supervisor kích hoạt hoặc phê duyệt.
  • KHÔNG trộn trigger sửa lỗi vào script quét. Detection ≠ Correction.

DOT Scanning = HỆ THỐNG SONG SONG, không phải "thêm vài tools":

  • Hệ thống chính đi đến đâu → DOT scanning phải quét được đến đó
  • Khi tính năng mới tạo → DOT tool kiểm tra PHẢI tạo cùng lúc hoặc ngay sau
  • DOT tool thiếu coverage = ĐIỂM MÙ = nguy hiểm ngang bug hệ thống

§2. NGUYÊN TẮC NHẤT QUÁN (Huyen — S120)

Giao diện cần ỔN ĐỊNH để đào tạo.

6 mối quan hệ — LUÔN hiện đầy đủ, CÙNG thứ tự, MỌI entity:

STT Mối quan hệ Câu hỏi tiếng Việt Nguồn data
1 BELONGS_TO Thuộc ai? entity_dependencies WHERE source=tôi AND type=belongs_to
2 CONTAINS Chứa gì? entity_dependencies WHERE source=tôi AND type=contains
3 DEPENDS_ON Dùng ai? entity_dependencies WHERE source=tôi AND type=depends_on
4 USED_BY Ai dùng tôi? entity_dependencies WHERE target=tôi AND type=depends_on
5 PEERS Cùng nhóm Cùng collection + composition_level
6 SIMILAR Tương tự Vector search Qdrant (planned — infrastructure ready)

Trống = để trống. Không gộp, không ẩn, không giải thích.


§3. TỔ CHỨC — 3 THÀNH PHẦN

A. Luật DOT Scanning = tài liệu này + Operating Rules §DOT Scanning. B. Phạm vi Kiểm tra = DOT tools (CAT-006) tổ chức theo góc nhìn giám sát. C. Vấn đề hệ thống = system_issues collection — nơi DUY NHẤT chứa kết quả quét.

2 câu hỏi của mọi DOT scanning:

  • Câu A: Có chỗ nào CHƯA HIỂN THỊ đúng? (kiểm tra GIAO DIỆN)
  • Câu B: Có chỗ nào CHƯA CẬP NHẬT đúng? (kiểm tra DỮ LIỆU)

§4. PHẠM VI KIỂM TRA + INVERSE-CHECK

§4.1 Minh bạch trên trang chủ

Trang chủ Registries hiển thị: đang quét gì, thiếu gì, DOT nào hoạt động kém. "ĐIỂM MÙ" = lĩnh vực CHƯA có tool quét → rủi ro lớn nhất.

§4.2 Inverse-Check — Phát hiện UNMONITORED (AI Council S130)

  • Collection có trong meta_catalog nhưng KHÔNG xuất hiện trong scope của bất kỳ DOT scan → tự cảnh báo UNMONITORED REGISTRY.
  • PG tables trong schema public không có trong meta_catalog VÀ không phải directus_/v_UNREGISTERED TABLE warning.
  • Chênh lệch > 0 → tạo system_issue severity=HIGH.

§5. LUẬT DEPLOY — "KHÔNG CÓ DOT = KHÔNG DEPLOY"

Tính năng mới → DOT kiểm tra PHẢI tạo cùng lúc. DOT coverage là điều kiện deploy.

§5.1 Exception (AI Council S130 — 3 agents đồng thuận)

Exception Điều kiện SLA
Hotfix P0/Security Production down hoặc lỗ hổng bảo mật Deploy ngay. TD + DOT bổ sung trong 24h. WCR bắt buộc.
Infrastructure-only nginx, docker-compose, env vars — KHÔNG tạo/sửa entity Không cần DOT scanning mới.

Ngoài 2 exception trên → KHÔNG có ngoại lệ khác.


§6. ĐÃ CÓ + CẦN TẠO

Đã có:

Tool Loại Inspector Layer
verify_counts() PG Function L1
check_registry_coverage() PG Function L1
test_counting_contract() T1-T8 PG Function L1
fn_sync_trigger_registry() PG Function L1
17 TRIGGER refresh PG Trigger Builder
dot-orphan-scan Shell L1
dot-selftest-registries Shell L1
Health Check GH Actions GH Workflow L2
Agent Data /health API endpoint L2

Cần tạo:

Tool Ưu tiên
audit_relationships() — 6 quan hệ per entity 🔴
audit_dead_links() — entity_dependencies dead 🔴
inverse_check_unmonitored() — UNMONITORED registry 🔴
audit_permissions() — field permissions 🟡
audit_field_coverage() — field metadata 🟡
duplicate_engine — entities giống nhau 🟡

§7. RANH GIỚI VỚI CÁC ĐIỀU KHÁC (AI Council S130)

Điều Vai trò Ranh giới
Điều 23 (này) Detection Framework — Nhạc trưởng Phát hiện + ghi findings. KHÔNG tự sửa.
Điều 19 (Orphan Scanner) Triển khai cụ thể 1 loại scan trong framework Điều 23.
Điều 22 (Self-Healing) Execution Chạy SAU khi Điều 23 phát hiện + Supervisor phê duyệt.

Xung đột giữa Điều 19/22 và Điều 23 → Điều 23 ưu tiên (framework bao trùm).


§8. LIÊN KẾT HIẾN PHÁP

Điều Liên quan
Điều 0-B DOT scanning quét mọi composition level
Điều 19 Orphan Scanner = triển khai cụ thể
Điều 22 Self-Healing = execution sau detection
Điều 24 Scanning label drift
Điều 25 HC-trigger-* items
Điều 26 verify_counts contract

Điều 23 v2.1 CHÍNH THỨC ĐÓNG BĂNG | S130 (2026-03-17) | AI Council 3 agents