KB-4C4E
GPT Review — C1 Text Unit Operating Model Round 1
4 min read Revision 1
gptreviewdieu38c1text-unitoperating-modelround12026-04-25
GPT Review — C1 Text Unit Operating Model Round 1
Kết luận
C1 đúng hướng, đủ khung, không trượt sang schema/SQL. Đề xuất trạng thái: PASS có điều kiện, chỉnh một số điểm trước khi upload KB.
Điểm đạt
- Đủ 12 mục theo yêu cầu.
- Bám L1/L3/L4/L5.
- Không chốt tên bảng/cột/SQL/trigger/DOT.
- Đã xử lý tốt change-set lifecycle ↔ APR lifecycle.
- Checker path đủ 5 loại lỗi đã yêu cầu.
- Open decisions cover đầy đủ R1–R7 và thêm quyết định thực tế.
Chỉnh bắt buộc
- Phân biệt rõ
text unit identityvàunit version. C1 hiện nhiều chỗ nói “unit có version riêng” nhưng chưa tách rõ unit là logical identity/canonical address, còn version là bản nội dung theo thời gian. Nếu không rõ, schema phase dễ lẫn 1 row = unit hay 1 row = version. - Published snapshot phải chứa
unit versionhoặcunit_id + version_id, không chỉ “unit”. Sửa các câu “published snapshot chứa units enacted/current” thành “published snapshot chứa các unit versions enacted/current của document tại thời điểm publish”. - Canonical address bất biến nên gắn với logical unit identity, không nhất thiết với từng version row. Version mới giữ canonical address nhưng có version identity riêng.
- Document version bump đang viết hơi cứng: “khi change-set enacted”. Sửa thành “system-driven theo rule khi change-set enacted/applied; một số metadata-only hoặc non-published change-set có thể không bump hoặc chỉ bump patch theo rule”. Đồng bộ với L5.
- §5.3 nói “Change-set chỉ enacted khi APR đạt approved/applied” cần sửa chính xác hơn: “APR approved cho phép change-set chuyển approval_passed; APR applied hoặc apply step thành công mới cho phép change-set enacted/applied.” Tránh nhảy từ approved sang enacted.
- §6.1 “Canonical address unique” ở birth path: thêm “hoặc reserved trước khi commit nếu system-auto cấp” để tránh race/collision. Không chốt cơ chế reservation cụ thể.
- §6.3 “version mới giữ canonical address” cần thêm: “cùng logical unit identity hoặc successor relation theo rule; không tạo canonical address mới trừ split/merge/structural change được change-set chấp thuận.”
- §6.4 retire parent: “retire cascade hoặc re-parent” là đúng nhưng cần thêm “không tự cascade enacted children nếu chưa có rule/approval”. Tránh auto-retire nội dung pháp lý.
- §7.2 ref gãy: nếu target superseded, không mặc định “cập nhật ref sang version mới”; sửa thành “gợi ý cập nhật ref theo successor/current version nếu rule cho phép và authority chấp thuận.”
- §8.1 published snapshot update đặt trong hot path có thể quá mạnh. Sửa thành “snapshot transition/update là PG-native critical path khi apply/enact change-set; chi tiết transaction boundary thuộc schema/implementation.”
- §8.2 KG enrichment ghi “cập nhật universal_edges” dễ hiểu là KG tự sửa truth. Sửa thành “gợi ý/cập nhật projection hoặc tạo proposed edges; authoritative edges/bindings phải qua write path hợp pháp.”
- §9 invariant I8 sửa như #2: published snapshot chỉ chứa enacted/current unit versions, không phải units chung chung.
- §10 Open decisions thêm OD: “logical unit vs unit version storage model”. Đây là quyết định quan trọng nhất trước schema.
- §12 PASS criteria thêm điều kiện: C1 phân biệt rõ logical unit, unit version, published snapshot membership.
Chỉnh khuyến nghị
- Thêm một sơ đồ ngắn: Document envelope → published snapshot → unit versions; logical unit → versions.
- Thêm note: split/merge unit là structural change lớn, không chỉ sửa version thường; cần change-set và có thể ảnh hưởng canonical address/successor relation.
- Thêm checker: duplicate current/enacted version cho cùng logical unit trong cùng published snapshot.
- Thêm checker: orphan draft version không thuộc change-set nào sau một thời gian threshold — warn, không block.
Quyết định điều phối
Opus chỉnh C1 theo các điểm trên rồi gửi lại vòng 2. Chưa upload KB bản hiện tại. Sau khi C1 PASS, mới chuyển sang C2 Metadata Governance Operating Model.