KB-61D0

GPT Review — P5 Schema Draft v0 Round 1

5 min read Revision 1
gptreviewdieu38p5schema-draftround12026-04-26

GPT Review — P5 Schema Draft v0 Round 1

Kết luận

P5 Draft v0 đúng hướng và đủ nền để tiếp tục, nhưng chưa nên upload KB nguyên trạng.

Trạng thái đề xuất: PASS có điều kiện — cần patch trước khi upload.

Điểm đạt

  • Giữ đúng doctrine unit-centric: logical_unit là identity, unit_version là content.
  • Publication không chứa content inline; membership trỏ unit_version.
  • Không tạo label registry song song; dùng Đ24 entity_labels.
  • section_type tách khỏi Đ24 classification label.
  • Qdrant/vector giữ projection-only.
  • Change-set/APR chỉ hook, không redesign Đ32.
  • Không apply SQL production, không migration thật.

Rủi ro/xung đột cần sửa

  1. doc_code đang bị mô tả là “Classification label canonical document”, dễ mâu thuẫn với chính CI-4/Đ24. Phải đổi thành structural/document-lineage binding, không phải classification label.
  2. logical_unit.doc_code FK tới publication.doc_code không ổn vì publication.doc_code không unique khi có nhiều versions. Cần thêm khái niệm publication_series/publication_identity hoặc ghi rõ FK này deferred/open decision. Không được FK trực tiếp vào non-unique publication.doc_code.
  3. Bảng published_snapshot_member dùng cho cả proposed publication có thể trỏ draft; tên “published” gây lệch nghĩa. Đề xuất đổi thành publication_member hoặc phân biệt publication_member draft/proposed và published_snapshot_member enacted snapshot.
  4. unit_version.lifecycle_statusretired; retire thường là trạng thái của logical_unit. Unit_version nên chủ yếu draft/enacted/superseded/withdrawn/archived; logical_unit mới retired. Nếu giữ retired ở unit_version phải giải thích rõ.
  5. body_hash chỉ hash body, trong khi title/description/profile có thể ảnh hưởng content/review. Nên đổi thành content_hash hoặc thêm body_hash + metadata_hash.
  6. Profile metadata chỉ đặt trên unit_version; C2/L3 nói metadata áp cho document/publication, unit, component, relation. P5 v0 có thể giới hạn Unit/Publication/Metadata slice nhưng cần nói rõ profile_data ở publication/logical_unit/unit_version phân tầng thế nào, không để hiểu mọi profile chỉ sống ở unit_version.
  7. Vector hooks chỉ có status trên unit_version, chưa có nơi biểu đạt nhiều chunks trong một unit_version. Cần thêm vector_projection_manifest/unit_version_chunk_manifest ở mức concept hoặc ghi rõ thuộc P6 nhưng P5 phải có hook đủ để kiểm CI-2.
  8. section_type_vocabpublication_type_vocab là registry/vocabulary mới. Phải nói rõ đây là controlled vocabulary cho structural metadata, không thay thế Đ24 taxonomy/entity_labels. Nếu một value cần pivot cross-system thì map/sync sang Đ24 qua rule riêng.
  9. tier trên logical_unit là TEXT derived, nhưng chưa nêu source/rule. Nên để tier nullable derived/cache hoặc chuyển sang computed/materialized view; không để agent manual.
  10. “Agent chuyển thành DDL thật tại P6” sai roadmap. P6 là checker/DOT design. DDL thật chỉ sau P5 PASS và User duyệt implementation/migration path. Sửa câu mục tiêu.
  11. change_set.apr_id UUID có thể sai kiểu với APR hiện hành. Ghi là opaque reference/foreign key to APR system, type xác định ở integration design.
  12. Birth gate “description NOT NULL” cần đọc theo L3/C2: required theo profile/object family. Nếu tuyệt đối hóa sẽ mâu thuẫn với heading/container edge cases. Nên default required cho content-bearing unit; exception theo section_type.

Kiểm theo luật/nguyên tắc

  • NT1/NT13: PASS nếu PG là SoT và Qdrant projection-only.
  • NT11: PASS có điều kiện; cần tránh khai thừa label/doc_code/section_type trùng Đ24 hoặc PG catalog.
  • NT2: PASS có điều kiện; birth gate/checker phải là cơ chế máy nhưng chưa chốt implementation.
  • NT4: PASS có điều kiện; vocabulary/profile nên config/registration path, không hardcode vĩnh viễn.
  • Đ24: PASS có điều kiện; không tạo label registry song song, cần làm rõ vocab structural khác label classification.
  • Đ32: PASS; APR chỉ hook, không redesign.
  • Đ33: PASS có điều kiện; không runtime vượt gateway hợp pháp, không apply SQL production.
  • LSL-01/C1A: PASS có điều kiện; sửa doc_code wording, membership naming và vector chunk manifest.

Chỉ đạo Opus

Patch P5 Draft v0 trước khi upload. Không cần viết lại toàn bộ. Tập trung sửa 12 điểm trên, rồi trả bản v1 cho GPT review lại.

Sau khi patch

Nếu v1 đạt, upload KB tại knowledge/dev/laws/dieu38-trien-khai/P5-schema-draft-v0.md hoặc P5-schema-draft-v1.md tùy quy ước User chọn. Chưa làm SQL/apply/migration/DOT.