KB-18BD

h11a-description-basic-missing

2 min read Revision 1
querydescription-governances178-fix28

id: H11a name: Description Basic Missing severity: CRITICAL category: description-governance law: dieu43-system-context-law §9.1 related: H11b, dieu3-metadata §2.5, dieu3-metadata §2.6 deployed: 2026-04-22 session: S178-Fix28

H11a — Description Basic Missing (CRITICAL)

Ý nghĩa

Entity GOVERNED có description IS NULL hoặc btrim(description) = ''. Đây là dấu hiệu hạ tầng auto-gen hỏng: trigger trg_desc_guard_<table> không chạy, hoặc lookup template 4 tầng trả NULL cho mọi tầng (Tier 1–4 đều thiếu). Severity CRITICAL vì hiến pháp NT6 yêu cầu mọi entity sinh ra phải có mô tả cơ bản.

SQL Query

-- Count per table
SELECT v.source_table,
       count(*) AS h11a_findings
FROM v_entity_full_classification v
WHERE v.governance_role = 'governed'
  AND (v.description IS NULL OR btrim(v.description) = '')
GROUP BY v.source_table
ORDER BY h11a_findings DESC;

-- Detail list
SELECT v.source_table, v.entity_code, v.status
FROM v_entity_full_classification v
WHERE v.governance_role = 'governed'
  AND (v.description IS NULL OR btrim(v.description) = '')
ORDER BY v.source_table, v.entity_code;

-- Count total
SELECT count(*) AS h11a_total
FROM v_entity_full_classification v
WHERE v.governance_role = 'governed'
  AND (v.description IS NULL OR btrim(v.description) = '');

Hành động khi có finding

  1. Xác minh trigger trg_desc_guard_<table> tồn tại: \d <table> trong psql.
  2. Xác minh template: SELECT key FROM dot_config WHERE key LIKE 'desc_template_%'; — phải có ít nhất desc_template_default.
  3. Nếu cả hai OK mà vẫn có finding → backfill bằng UPDATE <table> SET description = '<computed>' qua fn_render_description_template(fn_description_context()).
  4. Nếu finding sau deploy hoàn tất Fix 28 Step 9 → alert CRITICAL ngay.

Viện dẫn liên luật

  • Đ3 §2.5: 2 mức mô tả (cơ bản + chi tiết).
  • Đ3 §2.6: Lookup template 4 tầng SSOT dot_config.
  • Đ4 §2.1: Tiêu chí C1 (không rỗng).
  • Đ43 §9.1: Định nghĩa H11.