Handoff S177 — Điều tra 4 RC hoàn tất, sẵn sàng amend Đ35 v5.1
🔧 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):
- §4.1 UNIQUE + NOT NULL + FK thay CHECK hardcode
- §8.1 thêm H10/H11/H12 metadata completeness
- §8.3 birth_gate BLOCK (sau grace) + escalate system_issues
- §retrofit clause (MỚI) — áp cho MỌI LUẬT tương lai
- §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)
- §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
- §4.1 NOT NULL + CHECK cho 5 cột (
operation, coverage_status, trigger_type, cron_schedule, file_path) sau grace - §4.1 UNIQUE(file_path) WHERE file_path IS NOT NULL (chặn 3 lớp registry trùng)
- §birth_gate mode = BLOCK (thay warning) + auto-INSERT system_issues nếu vi phạm
- §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
- Luật trước mọi hành động (memory #15)
- 4 câu hỏi khung mọi điều tra
- Không chắc = sai
- 5-GATE G1-G5 — đặc biệt G2 (đo kích thước trước LIKE) + G4 (tên chuẩn)
- 2 vòng rà soát + báo cáo đã rà
- Nghĩ sâu, trả lời ngắn nôm na
- 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
- Đọc §1+§2 là nắm mạch
- Chi tiết điều tra 4 RC: phụ lục Đ41 §13 rev 26
- Nếu soạn amend v5.1: artifact
dot-35-v5-1-drafthoặc file KBknowledge/dev/laws/dieu35-dot-governance-law-v5-1-draft.md(chưa tạo) - Việc 1 + 2 đã DONE — không điều tra tiếp, chuyển hành động theo §5+§6
- Liên kết luật:
dieu35-dot-governance-law.mdrev 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