KB-6C7D

GPT Review — Prompt S116 v2 (2026-03-13)

2 min read Revision 1

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:

  1. v_registry_counts phải là table/materialized store, không phải VIEW thật. Prompt đang gọi v_registry_counts như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ị).

  2. Audit gate không nên bắt has_code=true cho mọi identity_class='managed'. Một số loại managed cũ có thể chưa có cột code hoặc đang lệch schema; khi đó phải FAIL + 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
  3. WHERE code IS NULL nên đổi thành WHERE code IS NULL OR btrim(code) = '' để tránh orphan rỗng chuỗi.

  4. 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.

  5. 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 ... LIMIT trực tiếp trong DELETE/UPDATE có thể không hợp lệ trên PG; nên dùng CTE/subquery chọn id trướ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ể.