Rà soát tương thích hệ thống — Sửa rẻ v0 ⇄ Incomex (meta_catalog, species, vector pipeline, dòng chảy data)
RÀ SOÁT TƯƠNG THÍCH HỆ THỐNG — "Sửa rẻ / Nhập UI v0" ⇄ phần còn lại của Incomex
Ngày: 2026-07-06 · Tác giả: Fable (Reviewer #3) · Cách làm: READ-ONLY — query PG thật (
query_pg,information_schema,pg_get_viewdef) +search_knowledge. Không DDL/DML. Đối tượng: kế hoạchke-hoach-nhap-ui-v0.md(Rev 5) đặt cạnh:meta_catalog,entity_species, vector pipeline/Qdrant (D36/D44 NVSZ),collection_registry,table_registry, dòng chảy data, 4 Bà Mẹ. VERDICT: Cốt lõi sửa rẻ TƯƠNG THÍCH và đứng riêng — KHÔNG giẫm hệ đã có. Có 1 lỗi thật phải sửa (cơ chế no-vector), 1 điểm cần xác nhận (dòng chảy data), và vài ghi chú clarity. Không có xung đột kiến trúc lớn.
Ⓐ Catalog khái niệm ⇄ meta_catalog — KHÔNG TRÙNG (khác tầng)
meta_catalog (169 dòng) = catalog của KHO DỮ LIỆU / loại thực thể: mỗi dòng một collection/table với source_model, source_location, registry_collection, sync_script, record_count, composition_level, identity_class, atom_group… → trả lời "hệ có những kho nào".
sua_re_khai_niem_nhap = catalog nhãn-UI-mức nghiệp vụ (Người lập, Ngày lập, Trạng thái quy trình…) → trả lời "nhãn UI trỏ tới những khái niệm phân biệt nào".
Hai tầng khác nhau, không duplicate. meta_catalog thô (một dòng/kho), sửa rẻ mịn (một dòng/nghĩa-nhãn). ⇒ cốt lõi sửa rẻ đáng giá, đứng riêng — xác nhận đúng nhận định Owner.
- Lưu ý phụ (không chặn): 2 bảng sua_re, khi tạo qua Path A, sẽ tự có một dòng trong
meta_catalog(như MỌI collection) — đó là hệ đăng ký chúng ở tầng kho, đúng và mong đợi. Nội dung 13 khái niệm KHÔNG vào meta_catalog.
Ⓑ Taxonomy loài ⇄ concept_kind — ổn, một ghi chú clarity
entity_species phân loại KHO/THỰC THỂ (species catalog/collection/page/table_ui/task/workflow/workflow_step + composition atom/molecule/compound). concept_kind (sửa rẻ) phân loại NHÃN-UI (workflow/step/task/field/role/org).
- Đã tránh va chạm CỘT: đổi
loai→concept_kind(khỏi đụng "loài"=entity_species). ✔ - Còn chồng TỪ VỰNG:
workflow/step/taskcó trong CẢ hai taxonomy. Khác tầng (species=thực thể workflow; concept_kind=nhãn trỏ tới workflow) nhưng dễ khiến agent lẫn. → Ghi chú clarity: trong README kit + doc, nói rõconcept_kindlà từ vựng RIÊNG mức nhãn-UI, KHÔNG phải species. Không phải lỗi, chỉ cần một câu phân định.
Ⓒ Vector pipeline / Qdrant — ⚠️ LỖI THẬT PHẢI SỬA
Phát hiện (tool-verified): cơ chế no-vector KHÔNG đến từ loài SPE-NVS. Nó đến từ public.collection_registry_vector_policy (sidecar per-collection: vector_eligible bool, semantic_search_eligible bool, policy_reason) + view v_collection_vector_eligibility.
Định nghĩa view (đọc thật):
COALESCE(crvp.vector_eligible, true) AS vector_eligible
⇒ MẶC ĐỊNH = true (OPT-OUT). Collection đăng ký mà KHÔNG có policy row → mặc định ĐỦ điều kiện vector hóa + semantic search.
Bằng chứng cơ chế: chỉ 2 dòng policy tồn tại — iu_staging_record + iu_staging_payload, cả hai vector_eligible=false, policy_reason="D36 Rule N1 — No-Vector Staging Zone…". Tức NVSZ enforce no-vector bằng policy row, KHÔNG bằng species. entity_species không có cột vector nào.
Hệ quả cho sửa rẻ:
- Plan Rev 5 §7 ghi "map species SPE-NVS → giải no-vector" → SAI/thiếu. SPE-NVS chỉ là nhãn taxonomy; không chặn vector. Nếu chỉ gắn SPE-NVS mà không thêm policy row, data khái niệm nháp (chưa Owner duyệt) sẽ đủ điều kiện lọt vào embedding + semantic search — đúng thứ D36 cảnh báo ("contaminating retrieval").
- SỬA (đúng cơ chế hệ, D36 đã dùng): khi 2 bảng sua_re trở thành collection (Path A ở G1, hoặc G2 nếu Path B), BẮT BUỘC insert 2 dòng
collection_registry_vector_policyvector_eligible=false, semantic_search_eligible=false, policy_reason='sua-re draft — not for embedding/semantic search'(idempotent precheck). Đây là 2 dòng vào bảng SẴN CÓ, không đẻ cơ chế mới. - SPE-NVS giữ lại như nhãn taxonomy tùy (đánh dấu "vùng nháp"), tách khỏi chuyện enforce no-vector.
- Điểm nghiêng Path: Path B (bảng PG-thuần, KHÔNG đăng ký collection_registry) thì KHÔNG có dòng eligibility nào → inherently no-vector ở giai đoạn nháp. Path A phải thêm exclusion tường minh. Cả hai đều làm được; chỉ là Path A gánh thêm 2 dòng.
Ⓓ Va chạm tên — SẠCH
Query thật: 0 kết quả cho sua_re* / v_report_sua_re / report-sua-re / report_sua* trong information_schema.tables, table_registry (table_id/page_url/collection/view_name), collection_registry, entity_species. ⇒ tên sua_re_khai_niem_nhap, sua_re_ui_khai_niem_nhap, v_report_sua_re, /reports/report-sua-re đều trống, dùng được.
Ⓔ Dòng chảy data (Nguyên tử / Log / Action — "không trộn") — CẦN XÁC NHẬN
- Bảng khái niệm = dữ liệu Nguyên tử (định nghĩa, 1 bản/khái niệm) → sạch, đúng loại.
- Bảng usage giữ CẢ bản current (
is_current=true) LẪN bản cũ (is_current=false) trong một bảng → có màu Log (lịch sử scan) lẫn Nguyên tử (usage hiện hành). Câu hỏi: có vi phạm "không trộn" không? - Tiền lệ có lợi: IU system (
iu_core.iu_staging_record) versioning + 7-state lifecycle trong một bảng — tức versioning-trong-bảng đã có tiền lệ được chấp nhận. Vàis_currentlà mẫu chuẩn, không phải trộn 3 dòng chảy kiểu event-log + entity + action-queue. - Đánh giá Fable: nhiều khả năng ổn — usage table là MỘT thứ mạch lạc (quan sát UI theo scan, có phiên bản), không phải nhồi ba dòng chảy. Nhưng đây là câu governance → cần Owner/Claude Code xác nhận so luật dòng chảy thật (Đ22–Đ45) trước G1. Nếu muốn tuyệt đối sạch: tách bản cũ sang view/history riêng — NHƯNG đó là phức tạp hóa, chỉ làm nếu luật buộc.
Ⓕ Birth-gate / governance_role / cơ chế dot-collection-create — đã nằm trong pre-flight
collection_registry có species_code + governance_role; dot-collection-create làm birth + species + permissions. Những cái này là hành vi của tool, đã được hỏi trong §9 G-A (tạo chính xác gì, birth?, governance_role?) và G-C (species map). ⇒ không cần đào thêm ở đây; Claude Code trả lời khi chạy §9.
Ⓖ 4 Bà Mẹ (MOW/MOT/MOIT/MOUT) — tương thích ở tầng khái niệm, tích hợp để G3+
Mission dài hạn: "đúc task/MOIT/MOUT từ UI Cowork vẽ". concept_kind (workflow/step/task/field/role/org) trùng miền với đầu vào Mẹ (field+trigger+person). ⇒ cùng ngôn ngữ, không xung đột. Nhưng nối sửa-rẻ → Mẹ là việc G3+, KHÔNG phải v0. v0 chỉ đếm/so khái niệm; đúc task để sau. Không có gì phải làm bây giờ, chỉ ghi nhận hướng khớp.
TÓM: THAY ĐỔI PLAN (Rev 6) TỪ VÒNG NÀY
- [BẮT BUỘC] Sửa cơ chế no-vector §7: SPE-NVS = nhãn taxonomy tùy (KHÔNG enforce); no-vector = insert
collection_registry_vector_policyvector_eligible=false, semantic_search_eligible=falsecho 2 collection (idempotent). Nêu rõ mặc định eligibility = true (opt-out). - [Pre-flight] Mở rộng G-C thành "vector-exclusion": Claude Code xác nhận
dot-collection-createđể mặc định eligibility (true) hay tự set policy; xác nhận insert exclusion chạy được + precheck (bảng policy chưa có unique?). - [Ghi chú] Ⓑ clarity: README kit + doc nói rõ
concept_kind≠ species. - [Xác nhận] Ⓔ dòng chảy: thêm mục pre-flight/Owner: usage table (current+history một bảng) có hợp luật dòng chảy Đ22–Đ45 không.
- [Ghi nhận] Ⓖ: nối 4 Mẹ để G3+, không v0.
KHÔNG có xung đột nào buộc đổi kiến trúc 2-bảng hay bỏ hướng. Cốt lõi sửa rẻ giữ nguyên.