KB-39CB

§9 WHY mở + To-do + Bài học + Changelog

6 min read Revision 1
s176pg-reconfigwhy-questionstodolessonschangelog

§9 CÂU HỎI MỞ + TO-DO + WHY + BÀI HỌC + CHANGELOG

Part of: PG Reform Tools — S176 mission Prev: 11-tham-chieu-td.md ← | → End of folder


§9.1 Câu hỏi WHY đã trả lời (10 WHY — KS.1+KS.2+KS.3)

  • WHY admin monopoly 2084 events (KS.1 WHY-1) — trước S148 chỉ có admin token chung
  • WHY DDL qua psql không log (KS.1 WHY-4) — directus_activity chỉ log qua API, PG chưa có event trigger → INVISIBLE AUDIT GAP
  • WHY directus_relations 0 events (KS.1 WHY-3) — artifact thiết kế Directus (m2o qua directus_fields)
  • WHY 2 collection 2026-03-10 (KS.2 WHY-2) — S108 sprint ra đời, không phải reset
  • WHY self-healing dựng muộn (KS.2 WHY-2) — NT5 codify sau 4 tháng hoạt động
  • WHY operator chạy script trước commit (KS.2 WHY-4) — workflow VPS-first fast iteration
  • WHY dot-script-lint + dot-cron-matrix-setup không đăng ký (KS.3 WHY-A) — oversight + self-exempt, không cố tình
  • WHY cụm dot-nrm-* fp=NULL (KS.3 WHY-B) — workflow bug, thiếu hook dot-register-self
  • WHY cụm dot-doc-* fp=NULL (KS.3 WHY-C) — metadata trước, implementation sau (placeholder)
  • WHY §0-AY không catch (KS.3 WHY-D) — cảnh sát chỉ kiểm "có trong registry", không kiểm "link đúng"

§9.2 Câu hỏi WHY đang treo (14 WHY — KS.4 → K5)

WHY Khối trả lời Ưu tiên
WHY-F Pattern metadata shells có lặp ở 46 record còn lại (cụm MATRIX/KG/MISC)? Con số thật? KS.4 + K5 🔴
WHY-G Chiều ngược: có bao nhiêu record có file_path nhưng file đã xoá trên disk? KS.4 🔴
WHY-H Trong 9 writer S175, có bao nhiêu writer dùng SELECT-then-INSERT thực sự? dot-collection-health cụ thể? KS.5 🟡
WHY-I 6 cron LIVE nrm/doc/script-lint ai cài trên VPS? Có installer DOT registered không, hay manual crontab -e? KS.6 🟡
WHY-J 5 cron PG function K2 không có installer — ai cài? K4 🟡
WHY-K app.allow_meta_update session variable — logic guard ở function nào, tạo bởi SQL nào? K3 🟡
WHY-L User incomex quyền thật trên DB directus ngoài s134_pg_grants.sql? K3 🟡
WHY-M incomex_metadata có Directus API access không? Hay private hoàn toàn cho Agent Data? K3 🟡
WHY-N Password leak Incomex2026PG_306ac539ad365fce còn dùng trên VPS không? K3 🔴
WHY-O Birth registry trigger không chạy (count=0) mà NT5 self-healing không alert? K4 🟡
WHY-P entity_audit_queue 1 row dormant 2026-03-20 — producer chết hay chưa bật? K4 🟢
WHY-Q 0048_link_policies_mysql.sql không có marker — thử fail hay chưa schedule? K4 🟢
WHY-R DOT 100% có bản trước v4.4.0 không? Nếu có, người ta vi phạm thời kỳ nào? K4 (git history) 🟢
WHY-S Đ33 §13 E3 (ngoại lệ normative) có thật trong luật không, hay chỉ mới trong PG-Reconfig? K3/K4 (đọc luật chính thức) 🟡

§9.3 To-Do theo thứ tự

  1. KS.4 — DOT MA chiều ngược (dot_tools có file_path → file còn tồn tại?)
  2. KS.5 — Cross-check 12 SELECT-then-INSERT vs 9 writer S175
  3. KS.6 — Cron installer mapping + dual-trigger reality
  4. K3 — Credentials + quyền PG
  5. K4 — Shadow patterns + dead code
  6. K5 — Catalog DOT baseline (quét 46 record fp=NULL)
  7. D0-D9 — DESIGN tổng (chỉ bắt đầu sau khi đủ dữ liệu)
  8. Sửa luật đồng bộ 1 lần HP v4.6.0 + Đ33 v2.1 + Đ35 v5.1 + OR
  9. IMPLEMENT 9 đợt theo §7.3

§9.4 Bài học rút ra cho phiên tới

  1. Đọc full file thật qua get_document_for_rewrite, không đọc tóm tắt agent paste — đã sai nhiều lần với tóm tắt K0/K1/K2/KS.2/KS.3
  2. Chốt nội dung NGẮN GỌN với user trước khi soạn artifact — tránh soạn-sửa-soạn lặp
  3. Mục tiêu = nghiệp vụ tiện lợi, không phải tuân thủ luật — luật không khả thi → SỬA LUẬT
  4. Mọi tài liệu phân tích về PG bắt đầu bằng "DB nào? Lớp nào?" — bắt buộc
  5. Không cắt bớt nội dung khi soạn luật — tuyệt đối cấm
  6. (MỚI S176) Điều tra xong MỚI thiết kế — KHÔNG vội DESIGN khi chưa hết KS/K. Bài học HP v4.4.0 quên kiến trúc cũ.
  7. (MỚI S176) Mỗi phát hiện = ghi master + tracker NGAY — không để sót sang phiên sau. Bài học rev 2 chưa sync KS.2+KS.3.
  8. (MỚI S176) Mỗi bệnh đặt câu hỏi WHY và trả lời bằng evidence cứng — git log, grep, query, stat. Không đoán mò.
  9. (MỚI 2026-04-14 split) Dùng patch_document cho file nhỏ <10k thay vì update_document rewrite file lớn >30k — file monolith 58k rewrite đốt ngữ cảnh + dễ chết giữa stream. Split thành 13 file ~5k = edit nhanh, không mất nội dung.

CHANGELOG

Version Ngày Nội dung
v1.0 2026-04-13 S176 (AM) Tạo master monolith lần đầu. Tổng hợp K0+K1+K2 + HP v4.5.0 + Đ33 v2.0
v1.1 (rev 2) 2026-04-13 S176 (PM) +§2.6b KS.1 INVISIBLE AUDIT GAP + 3 TD mới. Đánh dấu Phương án A chưa đủ
v1.2 (rev 3) 2026-04-13 S176 (late PM) +§2.6c KS.2 + §2.6d KS.3 + §3.2 Phương án A+ + §5.5 ddl_audit_log + §7.2 D0-D9 + §7.3 Đợt 1-9 + §8.3 TD group + §9 WHY. Master đạt 58k chars
v2.0 (folder split) 2026-04-14 S176 Split monolith pg-reconfig-master.md → folder reform-PG-tools/ với 13 file ~5k chars mỗi file. File cũ trở thành stub redirect. Không mất nội dung, mọi §/KS/K giữ nguyên.

TRẠNG THÁI CUỐI

Điều tra: ~60% (K0+K1+K2+KS.1+KS.2+KS.3 ✅) Design: 0% (chờ điều tra xong) Implement: 0% (chờ design xong)

Next action: Soạn prompt KS.4 (DOT MA chiều ngược) cho Code CLI.


File 12 — §9 WHY + bài học + changelog | Index | S176 | Living doc — End of folder