KB-41A2
GPT Review — C3 Component/BOM Operating Model Round 1
5 min read Revision 1
gptreviewdieu38c3component-bomround12026-04-26
GPT Review — C3 Component/BOM Operating Model Round 1
Kết luận
C3 đúng hướng, đủ khung, bám L2 và không phá P5. Tuy nhiên chưa nên upload KB nguyên trạng.
Trạng thái: PASS có điều kiện — patch nhẹ trước khi upload.
Điểm đạt
- Phân biệt rõ component ≠ text unit.
- Phân biệt BOM ≠ publication_member và BOM ≠ reference edge.
- Giữ đúng Đ24: labels qua entity_labels, không tạo label registry song song.
- Giữ đúng NT11: component catalog không lặp PG catalog.
- Reuse decision 4 bước và machine enforcement đúng tinh thần L2/L4/NT2.
- Golden path là PG data, không markdown.
- Anti-pattern không tự động thành enforcement nếu chưa có authority approve.
- C3 không sửa P5, chỉ phát sinh P5b.
Chỉnh bắt buộc
- Không gọi
component,component_version,component_type_vocab,bom_entrynhư bảng chắc chắn. Đổi thành “candidate table/concept” hoặc “P5b candidate”. C3 là operating model, chưa phải schema. component.code map vào entity_labels.entity_code: cần làm mềm như P5. Ghi “component.code hoặc entity mapping tương thích Đ24; format xác định sau khi rà Đ24 thực tế”. Không chốt trực tiếp nếu Đ24 entity_code format khác.- BOM “1 component tối đa 1 lần per publication” cần sửa theo L2: nếu cùng component dùng 2 vai trò thì dùng variant hoặc distinct component-use identity. Tránh chặn use case hợp lệ như required + reference. Ghi rõ P5b sẽ chốt uniqueness key:
(publication_id, component_id)hoặc(publication_id, component_id, usage_role)theo governance. BOM ở cấp publication/documentcần đồng bộ L2 đã làm mềm: “mặc định ở cấp publication/assembly”. Nếu sau này có component assembly/golden path thì BOM có thể gắn assembly. Publication BOM là slice đầu.Component lifecycleđang dùng active/deprecated/retired/superseded, còn component version cũng active/superseded/deprecated/retired. Cần nêu invariant: component.active không đồng nghĩa mọi version active; tối đa 1 active component_version per component; component retired thì không có active version. Tránh lifecycle nhập nhằng.governance_statusvừa có deprecated_but_allowed, vừa lifecycle deprecated. Cần giải thích rõ lifecycle = trạng thái tồn tại; governance_status = policy sử dụng. Nếu lifecycle retired thì governance_status không được approved_for_reuse.pg_object_refs JSONB arraytrong OD-C3-09 có nguy cơ lặp PG catalog/khó integrity. Đổi đề xuất thành “P5b sẽ quyết JSONB vs junction; default nghiêng junction/read-only reference nếu cần integrity; không khai lại PG metadata”.Golden path table component_listkhông nên chứa list trực tiếp trong golden_path nếu đã có golden_path_member. Sửa §10.1 thành golden_path metadata + golden_path_member list. Tránh vừa list vừa junction.Component changes dùng chung change_set_member + nullable component fields: có thể ổn, nhưng phải ghi là option. Không nên chốt. Có thể dùng generic change_subject table hoặc polymorphic subject. P5b quyết.component vector projectioncần ràng: chỉ component_version spec text mới có projection; Qdrant/KG projection-only; không tạo authoritative component knowledge ngoài PG.- Birth gate component “Description NOT NULL” nên làm mềm theo component_type config giống P5. Không tuyệt đối hóa mọi component.
component species theo Đ29cần ghi “hoặc class/loài quản trị tương đương theo cơ chế hiện hành”, đồng bộ L1/L2, không chốt thao tác data.- Constitutional check nên thêm NT4/NT11 điều kiện: vocab/compatibility/golden path/reuse decision đều là config/governance data, không hardcode; component catalog không duplicate PG catalog.
- PASS criteria “P5 không cần sửa” nên đổi thành “P5 không cần sửa ở slice Unit/Publication/Metadata; P5b có thể extend change governance”. Tránh hiểu tuyệt đối.
Khuyến nghị
- Thêm invariant: component không có parent-child tree; variant/base không phải structural tree.
- Thêm invariant: BOM snapshot của enacted publication/assembly bất biến như publication_member.
- Thêm section “P5b minimum slice” gồm component, component_version, bom_entry, reuse_decision, compatibility_rule tối thiểu; golden_path có thể phase 2 nếu cần.
Kiểm luật/hiến pháp
- NT1/NT13: PASS — component/BOM trong PG; KG/Qdrant projection.
- NT2: PASS có điều kiện — reuse decision/birth gate phải machine-enforced ở P5b/P6.
- NT4: PASS có điều kiện — vocab/rules/golden path phải config/governance data.
- NT8: PASS — BOM/golden path hiện thực Assembly First.
- NT11: PASS có điều kiện — không khai lại PG catalog, không tạo label registry song song.
- Đ24: PASS có điều kiện — dùng entity_labels hoặc mapping tương thích; không chốt entity_code format quá sớm.
- Đ32: PASS — chỉ hook APR, không redesign.
- Đ33: PASS — design note only, không SQL/apply.
- L2/L4/P5: PASS có điều kiện với các patch trên.
Chỉ đạo
Opus patch 14 điểm bắt buộc, không cần viết lại toàn bộ. Sau patch trả C3 v0.1 cho GPT review Round 2. Chưa upload KB, chưa P5b, chưa SQL/DOT/migration.