KB-51EC
GPT Review — P6 Checker/DOT Design v0 Round 1
6 min read Revision 1
gptreviewdieu38p6checkerdotround12026-04-26
GPT Review — P6 Checker/DOT Design v0 Round 1
Kết luận
P6 v0 đúng hướng và bao phủ được phần lớn P5/P5b, nhưng chưa nên upload KB nguyên trạng.
Trạng thái: PASS có điều kiện — cần patch trước khi upload.
Điểm đạt
- Giữ đúng phạm vi: P6 là design note, không code/SQL/cron/trigger thật.
- Taxonomy birth/pre-enact/invariant/drift/projection hợp lý.
- Severity BLOCK/ERROR/WARN/INFO rõ.
- Có phân phase 1/phase 2.
- Có liên kết P5 + P5b, không sửa schema.
- Giữ đúng PG SoT, Qdrant/KG projection-only.
- Có đưa Đ24/Đ32/Đ33/Đ35 vào cross-law check.
Chỉnh bắt buộc
- Checker tables chưa đủ contract theo prompt. Mỗi checker tối thiểu cần: checker_id, target/invariant/law source, applies_to, trigger, severity, action, input, output, phase. Hiện nhiều bảng thiếu action/input/output/phase/law source.
- Số lượng phase 1 bị sai. P5 birth checker hiện không phải 30 tổng; P5 + P5b birth đang ra khoảng 36 nếu tính theo bảng. Cần đếm lại hoặc ghi “candidate count” thay vì số cứng.
- ID trùng: DOT-LBL-01..03 xuất hiện ở §5.4 và §7 với nội dung gần trùng. Cần có một label checker catalog canonical, tránh duplicate ID.
BG-UV-08 Sort_order validapplies_to đang ghi logical_unit INSERT nhưng ID là UV. Đổi thành BG-LU-06 hoặc sửa domain.SYSTEM AUTOđang dùng như severity. Severity model chỉ có BLOCK/ERROR/WARN/INFO. System-auto nên là action, không phải severity.- Birth gate “at INSERT” quá hẹp. Một số checker chạy tại create/update/transition. Sửa taxonomy thành event: create/update/transition, không chỉ INSERT.
DOT-PG-01 No direct DDL outside migrationlà checker rất nhạy và có thể ngoài scope Đ38 P6 nếu không có log/gateway source. Giữ như design candidate nhưng phải ghi dependency: cần gateway/audit log chính thức; không tự scan tuỳ tiện.- Paired DOT Đ35: P6 nói writer side post-P6, nhưng self-healing lại mô tả checker/healer. Cần phân rõ: checker chỉ phát hiện; healer là separate design/implementation later. Không để hiểu P6 tự heal.
- “Birth gate checker tại INSERT” và “PG trigger cho BLOCK critical” trong OD-P6-03 hơi nghiêng implementation. Cần ghi rõ đây là implementation option cho P7, không phải P6 decision.
- Component birth: L4 nói component birth chỉ kiểm reuse decision ở mức existence/authority, không đánh giá chất lượng kiến trúc sâu. P6 cần nhấn mạnh BG-COMP chỉ kiểm existence/authority/required fields, không judge architecture quality.
- Pre-enact APR check: cần phân biệt readiness check vs APR authority. Checker không quyết approve; chỉ verify APR/ref/status theo Đ32.
- Label checker “verify section_type values không duplicate trong entity_labels” hơi mơ hồ; section_type có thể được projected/mapped sang Đ24 trong tương lai. Nên kiểm: không dùng entity_labels làm source of truth cho section_type; nếu có mapping thì phải có approved sync rule.
DOT-LBL-03 No parallel registrycần nguồn kiểm rõ. Checker chỉ có thể kiểm known tables/config; không thể chứng minh toàn hệ thống không có registry song song nếu không có catalog/source list. Ghi scope/dependency.- Vector/KG projection checkers đang phase 1 ERROR khá nặng. Nếu Qdrant/KG chưa implemented ở P7 pilot, các checker này phải defer hoặc run only-if-projection-enabled. Thêm condition.
DOT-LU-04 active LU có 0 enacted versioncó thể sai với draft_only/active transitions. Cần align P5 lifecycle: draft_only = chưa enacted; active = có enacted. Checker chỉ error nếu lifecycle active mà không có enacted/current, hoặc draft_only mà có enacted.DOT-UV-01 Detect UPDATEcần audit log/source. Without audit log, hash drift only detects current mismatch, not who/when. Ghi dependency: audit trail/content_hash/history.DOT-PUB-01 Detect INSERT/UPDATE/DELETEtrên publication_member after enacted cũng cần audit log hoặc immutable trigger. Ghi dependency; design not implementation.DOT-COMP-08 pg_ref validity query pg_catalogphải qua gateway/read-only path theo Đ33. Không direct privileged query assumption.- P6 nói “không thêm invariant mới” nhưng checker registry, scheduling, output contract có thể phát sinh operational requirements. Ghi rõ đây là checker governance design, không phải new content invariant.
- Phase 1 block P7: daily ERROR “nên có trước pilot nhưng có thể roll out incrementally” mâu thuẫn với “bắt buộc trước pilot” ở heading. Chốt rõ minimum gate: birth + pre-enact mandatory; daily ERROR can be smoke/minimal before pilot then full during pilot, hoặc bắt buộc thật.
system_issues existinglà assumption. Để đúng zero-trust, ghi là “system_issues nếu tồn tại/được xác nhận; nếu không, checker_results candidate”. Không chốt existing nếu chưa verify.- Đếm invariants “P5 15 + P5b 19” nên đưa coverage matrix ngắn: invariant → checker IDs. Hiện chỉ nói covered, chưa chứng minh.
Kiểm luật/hiến pháp
- NT1/NT13: PASS — nhưng projection checker phải always PG-wins and only-if projection enabled.
- NT2: PASS có điều kiện — cần checker contract machine-enforceable hơn, không chỉ danh sách tên.
- NT4: PASS có điều kiện — checker registry/severity/schedule phải config/governance data, không hardcode.
- NT8: PASS — BOM/compatibility/reuse checkers hỗ trợ Assembly First.
- NT11: PASS có điều kiện — PG catalog checks/read-only refs không duplicate PG catalog.
- Đ24: PASS có điều kiện — label/source-of-truth wording cần chính xác hơn.
- Đ32: PASS có điều kiện — APR checker chỉ readiness, không authority.
- Đ33: PASS có điều kiện — P6 không implement; pg_catalog/gateway checks require approved read path.
- Đ35: PASS có điều kiện — paired DOT pattern phải giữ checker/healer separation.
- L2/L4/P5/P5b: PASS có điều kiện sau patch.
Chỉ đạo
Opus patch các điểm trên và trả P6 v0.1 cho GPT review Round 2. Chưa upload KB, chưa code, chưa SQL, chưa migration, chưa DOT/cron/trigger thật.