GPT Review — Prompt S116 v2 (2026-03-13)
GPT Review — Prompt S116 v2
Ngày: 2026-03-13
Kết luận: Prompt mới đã tốt hơn rõ rệt, gần đủ để giao thực thi. Tuy nhiên còn 5 điểm nên bổ sung/chỉnh để tránh lỗi triển khai:
-
v_registry_countsphải là table/materialized store, không phải VIEW thật. Prompt đang gọiv_registry_countsnhưng lại yêu cầu UPDATE trực tiếp. Nếu nó là VIEW thường thì không UPDATE được. Cần ghi rõ: hoặc đổi thành table, hoặc giữ view + INSTEAD OF trigger (không khuyến nghị). -
Audit gate không nên bắt
has_code=truecho mọiidentity_class='managed'. Một số loại managed cũ có thể chưa có cộtcodehoặc đang lệch schema; khi đó phảiFAIL + report, không được giả định toàn bộ đều đã đúng. Nên tách rõ:- expected_has_code cho managed chuẩn
- nếu thiếu code => chặn mission
-
WHERE code IS NULLnên đổi thànhWHERE code IS NULL OR btrim(code) = ''để tránh orphan rỗng chuỗi. -
verify_counts()và trigger-creator phải dùng quote_ident / format('%I', ...) + mapping từmeta_catalog.collection_name. Không được dùng chuỗi ghép tay. Đây là yêu cầu an toàn và tránh fail vì tên bảng. -
Cần thêm test cho managed collection mới xuất hiện trong meta_catalog nhưng chưa có dòng count/trigger => FAIL. Đây là guard dài hạn quan trọng nhất.
Khuyến nghị phụ:
- Đếm trigger bằng
NOT tgisinternalđể không lẫn trigger hệ thống. - Test DELETE/UPDATE mẫu SQL hiện tại dùng
ORDER BY ... LIMITtrực tiếp trong DELETE/UPDATE có thể không hợp lệ trên PG; nên dùng CTE/subquery chọnidtrước rồi thao tác.
Phán quyết: gần đủ. Bổ sung 5 điểm trên rồi giao Opus sẽ chắc hơn đáng kể.