KB-4154 rev 2

Handoff S177 — Điều tra 4 RC hoàn tất, sẵn sàng amend Đ35 v5.1

11 min read Revision 2
handoffs177dieu354-rc-closedkb-protection-verifiedv5.1-ready

🔧 S177 HANDOFF — ĐIỀU TRA 4 RC HOÀN TẤT — LIVING DOC rev 7.0

Phiên mới: đọc §1 "1 CÂU TRẠNG THÁI" + §2 "4 VIỆC" là hiểu mạch. Nguồn: Fix 7 + CLI V1 KB-PROTECTION-VERIFY + CLI V3 FINISH-RC34. Sổ chính đang song song: phụ lục Đ41 §13 rev 26 (knowledge/dev/laws/dieu41-phu-luc-ke-hoach-trien-khai.md).


§1. 1 CÂU TRẠNG THÁI

Điều tra 4 RC hoàn tất. RC-3 có 2 lớp (280 warning species_missing không handler + 272 DOT Đ35 không scanner, vô hình). RC-4 thủ phạm thật là dot-dot-register payload thiếu 5 cột + flow [AUTO-ID] DOT Tools INACTIVE. RC-1 DOT_BIRTH_BACKFILL đã có, chưa chạy. RC-2 4/5 fields dùng CHECK hardcode thay FK (vi phạm NT4). Gap-5 KB Protection đóng cứng (4/4 LIVE), TD-KB-OWNER-DRIFT phát sinh nhỏ. Đã patch phụ lục Đ41 §13 + update memory 3 bài học (SSH contabo, db name, column name). Sẵn sàng Việc 3: amend Đ35 v5.0 → v5.1.


§2. 4 VIỆC THEO THỨ TỰ

Việc 1: ✅ ĐÓNG — Điều tra gốc rễ 4 RC hoàn tất

3 câu Huyên chốt (3.1/3.2/3.3) + 1 clarify (3.4) đã có câu trả lời cứng. Xem §3.2 + §4.

Việc 2: ✅ ĐÓNG — Bức tranh đầy đủ

Timeline + 4 RC + KB Protection state + 280 warning phân loại đầy đủ. Xem §3.

Việc 3: 🟡 ĐANG LÀM — Soạn lại Đ35 v5.1 FULL REWRITE

Quyết định Huyên 2026-04-14 Fix 7: viết lại TOÀN BỘ Đ35 (không chèn amend) để Council đọc 1 chỗ dễ hơn.

Input: Đ35 v5.0 gốc (19,174 chars) + 5 khoản bổ sung (artifact dot-35-v5-1-draft)

Output dự kiến:

  • Artifact dieu35-v5-1-full (full rewrite) — backup kênh 2
  • Sau khi Huyên OK → upload knowledge/dev/laws/dieu35-dot-governance-law-v5-1-draft.md
  • Prompt Council Gemini + GPT Round 1

5 khoản bổ sung đã chốt (xem §5 handoff):

  1. §4.1 UNIQUE + NOT NULL + FK thay CHECK hardcode
  2. §8.1 thêm H10/H11/H12 metadata completeness
  3. §8.3 birth_gate BLOCK (sau grace) + escalate system_issues
  4. §retrofit clause (MỚI) — áp cho MỌI LUẬT tương lai
  5. §5 bước 4 payload 10 fields + dual-trigger flow [AUTO-ID]

Nếu phiên chết khi đang soạn: phiên mới đọc handoff này + artifact dot-35-v5-1-draft (5 khoản) + get_document knowledge/dev/laws/dieu35-dot-governance-law.md (v5.0) là soạn tiếp được.

Việc 4: ⚪ CHỜ VIỆC 3 — Triển khai

13 bước theo phụ lục Đ41 §13.5. Sau khi v5.1 ban hành mới động.

Bảo vệ KB — trạng thái 2026-04-14

Phase 1 + Phase 2 KB Protection LIVE (CLI V1 verify 4/4). Mọi sửa đổi kb_documents tự động snapshot vào kb_documents_history. Khôi phục nhầm qua fn_kb_restore(key, timestamp) trên db incomex_metadata. KHÔNG lo sửa nhầm Đ35 v5.1 mất v5.0 gốc.


§3. BỨC TRANH FINAL rev 7.0

§3.1 Timeline chốt

Ngày Phiên Sự kiện
2026-03-29 S146 152 DOT, schema legacy
2026-03-31 S151 Đ35 v5.0 BAN HÀNH
2026-04-01 S155 Bootstrap scope 4 bảng (thiếu 5 so luật §9.2)
2026-04-02 ~S157 AP-21 lần 1: Đ37 cắt cụt — trước Phase 1+2
2026-04-04 S165 Phase 1 4 trigger + kb_documents_history + kb_audit_log deploy ở incomex_metadata
2026-04-04 S164c Pattern .bak 56 files 13 phút — script ngoài kb_documents
2026-04-05 S166→S167 Phase 2 updated_at column + fn_kb_updated_at deploy + verify 12/12 PASS
2026-04-07 S170 AP-21 lần 2 Đ36 16KB→1KB SAU Phase 1+2 → WARN không BLOCK
2026-04-06 S170 v2 INSERT→UPSERT sửa lần 1
2026-04-06 S170 restore Quay INSERT + DROP UNIQUE + lock workflow_admin sửa lần 2
2026-04-14 S177 Fix 7 3 CLI verify: KB-PROTECTION-VERIFY (4/4 LIVE) + ROOT-CAUSE-VERIFY (sai db) + FINISH-RC34 (RC đóng đủ)

§3.2 4 Root Cause FINAL

RC Gốc cứng Fix có sẵn?
RC-1 fn_birth_gate mode=warning (không block), BEFORE INSERT FOR EACH ROW chỉ soi row mới, KHÔNG scan ngược 272 DOT cũ DOT_BIRTH_BACKFILL tồn tại, last_executed=NULL — chưa chạy
RC-2 dot_tools 4/5 fields §4.1 dùng CHECK hardcode thay FK (vi phạm NT4). operation không CHECK không FK → nullable hợp pháp. Thiếu UNIQUE + NOT NULL ❌ Amend Đ35 v5.1
RC-3 2 lớp: (a) 280 warning collection_onboarding_gap OPEN 20 ngày, 0 handler. (b) 272 DOT Đ35 KHÔNG có scanner nào → vô hình trong system_issues ❌ Build scanner + handler
RC-4 /opt/incomex/dot/bin/dot-dot-register (193 dòng) POST /items/dot_tools payload thiếu 5 cột: operation, coverage_status, trigger_type, cron_schedule, _dot_origin. Flow [AUTO-ID] DOT Tools (items.create filter) INACTIVE ✅ Bật flow + vá script (dual-trigger)

§3.3 KB Protection trạng thái 2026-04-14

Cơ chế Trạng thái
Phase 1 — 4 trigger kb_documents ✅ LIVE, 6/6 enabled (trg_kb_audit, snapshot_update, snapshot_delete, truncation_guard + bonus updated_at + vector_sync)
Phase 2 — updated_at auto-update ✅ LIVE, 1933/1933 docs có, max age 44s
Lock ownership 🟡 DRIFT — 7 fn_kb_* owner=workflow_admin + 3 SECDEF đúng, NHƯNG 3 bảng owner=incomex thay vì workflow_admin
Cron dot-kb-verify.sh ✅ LIVE, last run 2026-04-13 21:00 UTC, 12/12 + 2 WARN (expected)
History volume ✅ 10,577 rows / 1933 unique docs, latest snapshot 41s

Gap-5 LAW-PROTECTION chốt CLOSED. TD-KB-OWNER-DRIFT phát sinh — fix 1 lệnh ALTER TABLE OWNER TO workflow_admin.

Gap-8 WARN≠BLOCK vẫn treo (CLI chưa đếm truncation_warning tháng 4 trong kb_audit_log) — không cản Việc 3.

§3.4 280 warning = bệnh KHÁC

Toàn bộ 280 warning là collection_onboarding_gap "Species code missing:" cho ~28 bảng (tích lũy 10 rows/bảng), source dot-collection-health, cũ nhất 20 ngày 4h. 272 DOT Đ35 KHÔNG xuất hiện trong system_issues. Hai bệnh độc lập, cần 2 cách xử.

§3.5 "Sinh rồi mới khai" — câu trả lời cứng

Huyên nhớ thoang thoảng ĐÚNG: CÓ DOT rồi. 6 DOT birth-related tồn tại (dot-birth-backfill, dot-birth-trigger-setup, dot-kg-completeness, dot-schema-birth-registry-ensure, dot-metadata-audit, dot-metadata-fill). Cả 6 last_executed=NULL — chưa chạy lần nào. QT-001 cưỡng chế qua fn_birth_gate trigger ở tầng DB, nhưng chỉ row mới. Không ai kích 6 DOT → 272 DOT cũ ngoài tầm với.


§4. 4 CÂU HUYÊN ĐÓNG ĐỦ

# Câu hỏi Trả lời cứng
3.1 RC khác ngoài luật sinh sau DOT? 4 RC độc lập. RC-5 chưa loại trừ, nhưng audit chéo Đ22/Đ0-G/Đ32 gác lại sau amend v5.1
3.2 QT-001 thực tế đã có DOT nào? CÓ 6 DOT (§3.5), cả 6 chưa chạy. Luật cưỡng chế qua fn_birth_gate trigger (row mới), không qua DOT. 272 DOT cũ không retrofit
3.3 Công cụ tạo schema thiếu gì? dot-dot-register POST payload thiếu 5 cột. Flow [AUTO-ID] INACTIVE. Không phải dot-collection-create như đoán ban đầu
3.4 Phạm vi "file VPS có ảnh chụp"? CHỐT PHƯƠNG ÁN A: chỉ kb_documents. Script/config = git + .bak tay

§5. ĐỀ XUẤT AMEND Đ35 v5.0 → v5.1 (5 khoản bổ sung)

  1. §retrofit clause (MỚI): Luật mới áp bảng có data cũ BẮT BUỘC kèm DOT retrofit scan ngược
  2. §4.1 NOT NULL + CHECK cho 5 cột (operation, coverage_status, trigger_type, cron_schedule, file_path) sau grace
  3. §4.1 UNIQUE(file_path) WHERE file_path IS NOT NULL (chặn 3 lớp registry trùng)
  4. §birth_gate mode = BLOCK (thay warning) + auto-INSERT system_issues nếu vi phạm
  5. §DOT scan coverage metadata bắt buộc cho mọi bảng có birth_gate — đấu vào Đ22 self-healing

Chi tiết + wording: artifact dot-35-v5-1-draft (soạn Bước B tiếp theo).


§6. TD PHÁT SINH

TD Mức Mô tả
TD-KB-OWNER-DRIFT 🟡 3 bảng kb_documents/_history/audit_log owner=incomex thay workflow_admin. Runtime OK, bẫy tương lai. Fix: ALTER TABLE OWNER TO workflow_admin
TD-DOT-REGISTER-PAYLOAD-INCOMPLETE 🔴 dot-dot-register thiếu 5 cột payload. Block Việc 4 bước 5
TD-AUTO-ID-FLOW-INACTIVE 🟡 [AUTO-ID] DOT Tools flow INACTIVE. Fix: bật
TD-6-BIRTH-DOT-UNUSED 🟡 6 DOT birth tồn tại, chưa chạy. Fix: kích sau khi v5.1 ban hành
TD-280-WARNING-NO-HANDLER 🔴 280 species_missing tồn đọng 20 ngày. Fix: xây handler DOT đọc system_issues
TD-METADATA-SCANNER-MISSING 🔴 Không DOT scan metadata completeness cho dot_tools. Fix: build dot-metadata-completeness-scan
TD-3-ROW-SUSPECT-S151 🟢 3 row _dot_origin='SUSPECT:DOT|S151-phase1|2026-03-31' — migration artifact. Điều tra riêng, không block

§7. 3 BÀI HỌC SOẠN PROMPT ĐÃ GHI MEMORY (tránh tái phạm)

Sai Gốc Memory fix
ssh vps (alias không có) Hardcode từ conversation_search Alias đúng = contabo, key ~/.ssh/contabo_vps
-d directus cho KB Protection Hardcode db name KB ở incomex_metadata, DOT/APR ở directus. PRECHECK phải psql -l
last_exec_at (thực là last_executed) Sáng tác tên column G4 5-GATE "tên chuẩn, không sáng tác"

§8. NGUYÊN TẮC VÀNG

  1. Luật trước mọi hành động (memory #15)
  2. 4 câu hỏi khung mọi điều tra
  3. Không chắc = sai
  4. 5-GATE G1-G5 — đặc biệt G2 (đo kích thước trước LIKE) + G4 (tên chuẩn)
  5. 2 vòng rà soát + báo cáo đã rà
  6. Nghĩ sâu, trả lời ngắn nôm na
  7. Living doc — mỗi finding → patch NGAY

§9. CHANGELOG

Ver Ngày Nội dung chính
v7.0 2026-04-14 Fix 7 đêm muộn Điều tra 4 RC HOÀN TẤT. CLI V3 đóng RC-3+RC-4. 280 warning = species_missing KHÔNG phải 272 DOT Đ35. 6 DOT birth tồn tại chưa chạy. Sẵn sàng Việc 3.
v6.2 2026-04-14 CLI V1 KB-PROTECTION-VERIFY 4/4 LIVE. TD-KB-OWNER-DRIFT
v6.1 2026-04-14 Chi tiết Phase 1+2, 5 mốc timeline. Câu 3.4
v6.0 2026-04-14 Gap-5 đảo chiều CLOSED. 4 RC độc lập
v5.0 2026-04-14 chiều Tái cấu trúc, 7 Gap
v1.0-v4.0 2026-04-14 Điều tra VPS → Đ41 ban hành

§10. QUY TẮC PHIÊN MỚI

  1. Đọc §1+§2 là nắm mạch
  2. Chi tiết điều tra 4 RC: phụ lục Đ41 §13 rev 26
  3. Nếu soạn amend v5.1: artifact dot-35-v5-1-draft hoặc file KB knowledge/dev/laws/dieu35-dot-governance-law-v5-1-draft.md (chưa tạo)
  4. Việc 1 + 2 đã DONE — không điều tra tiếp, chuyển hành động theo §5+§6
  5. Liên kết luật: dieu35-dot-governance-law.md rev hiện tại = v5.0 FINAL. Amend v5.1 là dự thảo riêng cho đến khi Council + ban hành

Living doc | rev 7.0 đóng điều tra | Phiên mới đọc §1+§2+§3.2 là tiếp được