KB-1664 rev 11
Handoff S178 Fix 28 → Fix 29
7 min read Revision 11
handofffix28s178description-governance
Handoff S178 Fix 28 → Fix 29
Phiên: S178 Fix 28 | Ngày: 2026-04-22 HP: v4.6.3 (14 NT) | Đ43: v1.2 FINAL rev 6
§0. TÓM TẮT 1 CÂU
4 luật amend + 1 phụ lục KB + §VIII bước 1-9 deploy + nâng cấp cửa khai sinh (serve UPDATE + smart template PG introspection). H11a=0, H11b=1238. A11 chờ 48h gate. Còn: auto-heal DOT (NT12), B2-B4, Đ43 Phase 4a.
§1. ĐÃ LÀM
| # | Việc | Status |
|---|---|---|
| Task 1 | Rà viện dẫn liên luật 2 mức — 3 bổ sung | ✅ |
| Task 2 | Update 4 luật KB + tạo phụ lục Đ3 | ✅ |
| Đ3 +§2.5 +§2.6 sửa §2.2 | ✅ rev 5 | |
| Đ4 +§2.1.1 auto-gen + companion trigger | ✅ rev 5 | |
| Đ35 §4.1.1 +mapping cột PG + template | ✅ rev 13 | |
| Đ43 §9.1 tách H11→H11a/H11b + §9.2.1 routing | ✅ rev 51 | |
| Phụ lục Đ3 description templates | ✅ rev 1 | |
| §VIII 1-6 | Seed 10 template + 3 function + ALTER birth guard + 42 trigger | ✅ commit 5c50a93 |
| §VIII 7-9 | Provenance legacy + H11a/H11b + backfill 1459 entity | ✅ commit fbfb522 |
| admin_fallback_log id=22 + backup table _desc_backup_fix28 | ✅ | |
| H11a=0, H11b=1238, trigger ordering 21/21 PASS | ✅ | |
| GAP 1 | Nâng cấp cửa: auto-gen serve UPDATE SET = '' | ✅ commit 8d11e88 |
| GAP 3 | Template thông minh PG introspection ({_identifier} + {_table_display_name}) | ✅ commit 8d11e88 |
| GAP 3b | 67 dot_domain_rules re-gen | ✅ commit 8d11e88 |
| A11 | DROP context_pack_health_checks | ⏳ 48h gate chưa qua, deadline 2026-04-23T08:17 UTC |
§2. CHƯA LÀM
| # | Việc | Trạng thái |
|---|---|---|
| GAP 1 | Cửa serve UPDATE SET = '' | ALTER fn_description_birth_guard bỏ IF TG_OP='INSERT' |
| GAP 3 | Template thông minh PG introspection | ALTER fn_description_context + UPDATE template default |
| GAP 3b | 67 dot_domain_rules re-gen | UPDATE + trigger |
| A11 DROP | DROP context_pack_health_checks | 48h gate chưa qua (~24h nữa, deadline 2026-04-23T08:17 UTC) |
| Auto-heal DOT | Y tá trực: DOT cron đọc H11a findings → UPDATE desc = '' → trigger gen | Prompt riêng chưa soạn |
| NT12 hoàn chỉnh | Paired DOT cho H11a/H11b (detect + xử lý + báo cáo) | Sau auto-heal DOT |
| B2 | Backfill description chi tiết bởi AI | Sau NT12 hoàn chỉnh |
| B3 | Project Identity trang bìa | Sau B2 |
| B4 | Architecture Annotation 4 lớp | Sau B2 |
| A11 DROP | Deadline 2026-04-23T08:17:39Z — prompt từ Fix 26 | Cần chạy sớm |
| Retroactive APR | admin_fallback_log id=22 — deadline 48h (2026-04-24) | TODO |
| TD-S178-31 | Amend Đ35 bổ sung fn_log_issue spec | Backlog |
| TD-S178-32 | dot-hc-executor delegation map → dot_config | Backlog |
§3. QUYẾT ĐỊNH KỸ THUẬT
| # | Quyết định | Lý do |
|---|---|---|
| 1 | Đảo thứ tự: bước 9 TRƯỚC bước 7 | Tránh sai provenance (PROV-HUMAN cho entity auto-gen) |
| 2 | {code} trong template default = hardcode = vi phạm HP |
PG introspection thay thế |
| 3 | Trigger serve UPDATE + INSERT | Y tá trực tương lai dùng UPDATE |
| 4 | Companion trigger mở rộng AFTER INSERT OR UPDATE | PROV-DOT tự gán cho cả backfill |
| 5 | Giữ companion trigger AFTER INSERT (R2 P9) | Luật đúng: trigger không biết ai gây UPDATE → caller gán PROV-DOT |
| 6 | PG introspection thay {code} hardcode | pg_constraint + pg_attribute → {_identifier} runtime. Không bao giờ "hết giấy" |
§4. SAI LẦM + BÀI HỌC
| # | Sai lầm | Bài học |
|---|---|---|
| 1 | Prompt bước 1-6 viết step-by-step thay vì mục tiêu mở | Prompt = mục tiêu + tiêu chí + ràng buộc. Agent tự quyết cách làm. |
| 2 | Prompt bước 7-9 thiếu "ngắn + gaming" scope (R1 P8) | Đối chiếu dự thảo từng bước trước khi soạn prompt |
| 3 | Prompt bước 7-9 thiếu admin_fallback_log (Đ3 §2.4) | Rà luật TRƯỚC khi cho chạy, không phải sau |
| 4 | Thứ tự bước 7→9 gây sai provenance | Companion trigger AFTER INSERT chỉ fire INSERT, phải tính trường hợp UPDATE |
| 5 | {code} hardcode trong template default |
Hardcode xuất hiện ở mọi tầng — kể cả template data. Rà NT phải soi cả template content. |
| 6 | Ban đầu đề xuất đảo backfill trước H11a (sai bản chất) | Hiểu đúng vai trò: H11a = chuông, backfill = dọn. Chuông phải sống để phát hiện, không phải tắt chuông rồi dọn. |
| 7 | Prompt nâng cấp cửa đổi companion trigger AFTER INSERT → AFTER INSERT OR UPDATE | Vi phạm R2 P9 CHỐT DỨT KHOÁT. Luật đúng (trigger không biết ai gây UPDATE). Sửa prompt, không sửa luật. |
| 9 | §VIII bước 8: upload KB docs nhưng KHÔNG INSERT rows H11a/H11b vào PG | Assembly First = PG trước. Review agent phải verify PG rows, không chỉ KB "200 OK". Xem fix28-h11-split-deployment-gap.md. |
| 8 | {code} trong template default = hardcode không ai nhận ra |
Hardcode không chỉ ở code — template data cũng chứa hardcode. Rà NT phải soi mọi tầng kể cả config values. |
§5. DỮ LIỆU CÓ SỐ
- 4 luật amend: Đ3 rev 5, Đ4 rev 5, Đ35 rev 13, Đ43 rev 51
- 1 phụ lục mới: dieu3-phu-luc-description-templates.md
- §VIII 1-6: 342 dòng SQL, 10 template, 3+1 function, 42 trigger, 21 bảng governed
- §VIII 7-9: 1713 PROV-HUMAN, 1223 PROV-DOT, 1459 backfill (1223 NULL + 236 ngắn + 0 gaming), H11a=0, H11b=1238
- Git: 5c50a93 (bước 1-6) + fbfb522 (bước 7-9) + 8d11e88 (nâng cấp cửa + smart template)
- admin_fallback_log id=22 → status retroactive_documented
- A11 DROP: 48h gate chưa qua, deadline 2026-04-23T08:17 UTC, prompt sẵn sàng
§6. TÀI LIỆU
| Tài liệu | Path | Rev |
|---|---|---|
| Dự thảo BAN HÀNH | knowledge/current-state/reports/du-thao-description-governance-package-fix27.md | rev 3 |
| Đ3 | knowledge/dev/laws/law-03-metadata.md | rev 5 |
| Đ4 | knowledge/dev/laws/law-04-birth-process.md | rev 5 |
| Đ35 | knowledge/dev/laws/dieu35-dot-governance-law.md | rev 13 |
| Đ43 | knowledge/dev/laws/dieu43-system-context-law.md | rev 51 |
| Phụ lục Đ3 | knowledge/dev/laws/dieu3-phu-luc-description-templates.md | rev 1 |
| Migration SQL bước 1-6 | /opt/incomex/migrations/desc-autogen-engine.sql | commit 5c50a93 |
| Migration SQL bước 7-9 | /opt/incomex/migrations/ | commit fbfb522 |
| Upgrade birth gate | /opt/incomex/migrations/ | commit 8d11e88 |
Handoff Fix 28 → Fix 29 | 2026-04-22