KB-AAB4

S178 Fix25 HC infrastructure deploy (Nhóm A)

4 min read Revision 1
fix25health-checkreports178

S178 Fix25 — HC Infrastructure Deploy (Nhóm A)

Date: 2026-04-21 Scope: A1→A8 (Council 2-vòng APPROVE FINAL — 5 luật thống nhất HC về bảng system_health_checks) DB: directus (PostgreSQL) | Schema: public

Quyết định kỹ thuật

1. Jurisdiction mapping

Task spec viết literal LAW-22/35/36/43. Nhưng normative_registry dùng prefix NRM-LAW- và versioned codes. FK constraint buộc match registry thật → map sang enacted codes:

Task spec Actual enacted code Status
LAW-22 NRM-LAW-22-V1P1 enacted (NRM-LAW-22 retired)
LAW-35 NRM-LAW-35-V5P2 enacted (NRM-LAW-35 retired)
LAW-36 NRM-LAW-36 enacted
LAW-43 NRM-LAW-43 enacted

2. Code conflict (A4)

context_pack_health_checks chứa H1-H9 + H11 (10 rows, không có H10). Đ35 task spec cũng dùng H10-H14 → H11 conflict với Đ43. Quyết định: đổi tên Đ35 → DOT-H10..DOT-H14 (prefix DOT-). Executor ref giữ nguyên dot-dot-health:H10..H14 (đúng với service naming Đ35 §8.1).

Kết quả từng bước

Bước Mô tả Status Evidence
A1 Verify normative_registry PASS 4 codes enacted xác nhận (mapping ở trên)
A2 CREATE TABLE system_health_checks PASS CREATE TABLE OK, 2 check constraints + FK
A3 Migrate Đ43 H1-H11 PASS INSERT 0 10 — 10 rows (H1-H9, H11)
A4 INSERT Đ35 DOT-H10..DOT-H14 PASS INSERT 0 5 — 5 rows, jurisdiction=NRM-LAW-35-V5P2
A5 INSERT HC-REG + HC-SCHEMA PASS INSERT 0 2 — jurisdiction=NRM-LAW-36
A6 INSERT HC-TRIGGER PASS INSERT 0 1 — detect_and_fix, auto_fix_action=auto_attach_trigger
A7 dot_config.hc_trigger_autofix_enabled=false PASS INSERT 0 1
A8 Upload 3 SQL queries vào KB PASS 3 × status:created, revision:1 tại knowledge/current-state/queries/

Verify cuối cùng

 jurisdiction     | count | codes
------------------+-------+---------------------------------------------
 NRM-LAW-22-V1P1  |     1 | HC-TRIGGER
 NRM-LAW-35-V5P2  |     5 | DOT-H10, DOT-H11, DOT-H12, DOT-H13, DOT-H14
 NRM-LAW-36       |     2 | HC-REG, HC-SCHEMA
 NRM-LAW-43       |    10 | H1, H11, H2, H3, H4, H5, H6, H7, H8, H9

 total: 18 rows

 hc_trigger_autofix_enabled | false

Tổng: 18 rows = 10 (Đ43) + 5 (Đ35) + 2 (Đ36) + 1 (Đ22). ✓

KB uploads

  • knowledge/current-state/queries/hc-trigger-enforcement-gap.sql (rev 1)
  • knowledge/current-state/queries/hc-reg-unregistered-tables.sql (rev 1)
  • knowledge/current-state/queries/hc-schema-missing-description-column.sql (rev 1)

Parent folder: knowledge/current-state/queries. API: POST /documents?upsert=true, mime_type=text/plain.

Follow-ups

  • Đ43 table retire: context_pack_health_checks vẫn tồn tại — chưa drop. Scope Fix25 Nhóm A không cover; chờ Nhóm B để migrate consumers trước khi drop.
  • HC-TRIGGER autofix: default false. Sau khi verify manual 1-2 lần, flip sang true trong dot_config.
  • Đ35 code rename: nếu Đ35 service code hardcode tên H10..H14, cần update để đọc theo code mới DOT-H10..DOT-H14 hoặc map lại. Executor_ref hiện giữ dot-dot-health:H10 (không prefix) — consumer phân biệt bằng executor_ref nên OK về mặt runtime.