S176 Active Roadmap — What's next
S176 ACTIVE ROADMAP — 2026-04-14
Mã: S176-ROADMAP-ACTIVE Cập nhật: 2026-04-14 Mục đích: File này là "bản đồ việc đang làm" cho mọi phiên. Hết ngữ cảnh → phiên mới đọc file này 1 phút hiểu đang ở đâu, làm gì tiếp.
TRẠNG THÁI HIỆN TẠI
Mission gốc: S176 PG-Reconfig (tái cấu trúc công cụ PG). Đang ở pha INVESTIGATE ~60% (K0+K1+K2+KS.1+KS.2+KS.3 done).
Mission phát sinh hôm nay: Điều tra hạ tầng sau khi phát hiện Claude Desktop thao tác file chậm. Codex 48h log investigation lộ ra nhiều lỗi hệ thống ngoài dự kiến.
Khung mới ban hành: NT-WHITELIST-FIRST v1.0 (artifact) — triết lý whitelist-first cho mọi discovery/lookup.
VIỆC NGAY (trong phiên này hoặc phiên kế tiếp)
🔴 0. MISSION KHẨN — S176-INV-DEPLOY-DORMANCY (NEW 2026-04-14 late)
- Phát hiện: Deploy to VPS workflow DORMANT từ 2026-04-02 (12 ngày). Gate
vars.DEPLOY_MODE == 'direct'bị tắt âm thầm. Mọi PR merged vào main từ 2026-04-02 → không auto-deploy. - Hệ quả chuỗi:
- VPS có thể drift main N commit (chưa đo)
- S173/S174/S175/S176 fix có thể chưa lên production dù đã merge
- Không ai phát hiện 12 ngày → gap monitoring nghiêm trọng
- Rule memory #9 "KHÔNG manual deploy khi auto-deploy hoạt động" có thể bị vi phạm âm thầm
- Action: 4 phase điều tra D1-D4, CHỈ ĐỌC, báo từng phase
- D1: Tại sao workflow dormant (gate nào fail)
- D2: VPS drift main bao nhiêu commit
- D3: Có manual deploy nào trong 12 ngày không
- D4: Tại sao không phát hiện (gap monitoring)
- BLOCK tất cả deploy khác cho đến khi D1-D4 xong
- Evidence: Claude Code 2026-04-14 phát hiện khi chuẩn bị race bomb (bomb không có thật, nhưng lộ ra vấn đề lớn hơn)
🟡 0b. S176-FIX-NGINX-WHITELIST Phase A — TẠM DỪNG
- Patch vẫn sẵn sàng (PR #668 đã merged vào main)
- Không deploy cho đến khi dormancy fix + VPS đồng bộ main
- Khi resume: deploy tự chạy qua pipeline khôi phục, không cần thêm hotfix
🟡 0c. MISSION MỚI — S176-AUDIT-DEPLOY-PIPELINE (sau dormancy)
- Gốc rễ: Chuyển GCS → VPS → VPS-SSOT là 2 bước nhảy, pipeline có lỗ hổng chưa audit
- Scope:
- Audit deploy-vps.yml: source list hardcoded, gate condition, trigger chain
- Audit tàn tích GCS: còn code/config nào chưa migrate sạch
- File mồ côi: file mới thêm có bị miss sync không
- CI test bảo vệ: "file nào include trong .conf phải có trong source list"
- DOT cảnh sát: dot-deploy-health alert khi workflow dormant >3 ngày
- Liên kết class bug: S173 cache TTL GSM, S174 IAM silent fail, S175 duplicate writers — đều là "migration chưa audit kỹ để lại tàn tích"
🔴 1. Deploy S176-FIX-NGINX-WHITELIST Phase A
- Trạng thái: Blocked chờ 0 xong. Sau khi hotfix pipeline merged, deploy tự chạy tiếp
- Patch ready, probe verified
- Tác động: Chặn class
.well-known/*240KB bloat - Rủi ro: Thấp (probe 30 path xác nhận không ảnh hưởng legit endpoint)
- Action: Copy prompt deploy (đã soạn ở response chat), paste Claude Code → chạy commit+PR+merge+verify
🔴 2. Ghi 3 TD mới vào tracker (tránh lặp lại lỗi s170)
Phát hiện từ probe + log 48h, chưa có trong 20 TD hiện tại:
- TD-S176-NUXT-ERROR-BLOAT 🔴 — Nuxt render error page ~240KB cho mọi 404 (homepage, auth/refresh, API 404). Đây là gốc rễ DoS vector. Fix: custom
error.vueminimal 2KB. - TD-S176-NGINX-ELFINDER-DENY 🟡 — 7 elFinder scan path × 785 req × 239KB ≈ 1.3GB bandwidth đốt cho attacker. Fix: deny ở nginx trước khi tới Nuxt.
- TD-S176-AUTH-REFRESH-404 🟡 —
/auth/refreshendpoint thiếu, client gọi 983 lần/48h mỗi lần rác 237KB. Fix: tạo endpoint hoặc return 401 sớm. - Action: Patch tracker rev 79
🟡 3. Update NT-WHITELIST-FIRST artifact
- Bổ sung §1.2 evidence mới: bệnh hẹp hơn dự kiến ở
.well-known/*nhưng rộng hơn ở class Nuxt error page - Bổ sung §5.2 template: entry cụ thể dành cho
openid-configuration,oauth-authorization-server/api/mcp - Changelog v1.1
VIỆC ƯU TIÊN CAO (tuần này, SAU khi deploy whitelist)
4. Quay lại điều tra S176 PG-Reconfig
Chưa xong, đang ở KS.4:
- KS.4 — DOT MA (chiều ngược) + 46 record fp=NULL còn lại
- KS.5 — Cross-check 12 SELECT-then-INSERT vs 9 writer S175
- KS.6 — Cron installer mapping
- K3 — Credentials + quyền PG
- K4 — Shadow patterns + dead code
- K5 — Catalog DOT baseline
File reference: knowledge/current-state/reform-PG-tools/10-roadmap.md §7.1
Nguyên tắc: Chưa điều tra xong KHÔNG thiết kế. Chưa thiết kế xong KHÔNG sửa luật. Chưa sửa luật xong KHÔNG fix TD.
5. Mission S176-FIX-NUXT-ERROR-BLOAT (hạ tầng gốc rễ)
Nếu anh quyết ưu tiên: có thể chen ngang trước KS.4 vì đây là gốc rễ 1GB/48h bandwidth đốt + DoS vector.
Paper design sơ bộ:
- Tạo
web/error.vueminimal: 2KB, không fetch data, không i18n, không menu, chỉ text + link home - Config Nuxt
routeRulestrả 404 sớm cho path không match route pattern - Test local trước deploy
- Verify sau deploy: curl 10 path 404, đo size + time, expect <5KB mỗi path
Effort ước lượng: 1-2 giờ agent + review
6. Mission S176-FIX-NGINX-ELFINDER-DENY
Deny pattern ở nginx trước Nuxt. Tiết kiệm 1.3GB bandwidth + CPU đốt cho attacker.
Effort: 30 phút
7. Mission S176-FIX-AUTH-REFRESH
Điều tra tại sao client gọi /auth/refresh 983 lần → tạo endpoint hoặc return 401 sớm.
Effort: 1 giờ điều tra + fix
VIỆC TRUNG HẠN (sau khi điều tra PG-Reconfig xong)
8. PHA DESIGN PG-Reconfig — D0-D9
- D0: Vẽ tổng thể bức tranh PG (sơ đồ 4 DB × 3 lớp)
- D1: Design 5 nhóm DOT + field mới
- D2: Design dot_run_log + ddl_audit_log + dot-find
- D3: Design password rotation + GSM flow
- D4: Design DOT-MIGRATION-APPLY + DOT-CAT-ALL-REFRESH
- D5: Design DOT-COLLECTION-CREATE
- D6: Design dot-file-path-orphan-check + CI gate
- D7: Design dot-ddl-audit-monitor + event trigger
- D8: Chốt "Phương án A+" cuối cùng
- D9: Sửa luật đồng bộ 1 lần
File reference: reform-PG-tools/10-roadmap.md §7.2
9. Sửa luật đồng bộ 1 lần
- HP v4.6.0
- Đ33 PostgreSQL v2.1 (thêm §16 DDL audit, §17 file_path constraint)
- Đ35 DOT v5.1 (thêm
kind,file_path_status,target_db,target_layer) - OR bổ sung NT14 WHITELIST FIRST (nếu Huyên chốt Option A ở NT-WHITELIST-FIRST §9.2)
10. IMPLEMENT 9 đợt PG-Reconfig
- Đợt 1: Password GSM rotation
- Đợt 2: REVOKE direct + whitelist E1-E5
- Đợt 3: Dedupe DOT + metadata catalog + bảng mới
- Đợt 4: Fix 4 bypass L3
- Đợt 5: NT12 cặp batch
- Đợt 6: DOT-COLLECTION-CREATE + Birth fix
- Đợt 7: Catalog DOT cho AI (dot-find)
- Đợt 8: DDL audit + file_path orphan check
- Đợt 9: Backfill 46 record fp=NULL
File reference: reform-PG-tools/10-roadmap.md §7.3
VIỆC DÀI HẠN (sau PG-Reconfig)
- NĐ-36-01 Council Vòng 2 → Phần 2
- Đ36 Phần 3-5
- Đ38 GP chi tiết + Phần 3-5
- Đ37 GĐ2 12 TD (4 wave)
- Đ40 Infrastructure Health Law (proposed)
- S152 Duplicate Engine (Đ14)
KHI PHIÊN MỚI MỞ RA — CHECKLIST 3 PHÚT
- Đọc file này (1 phút) — biết đang ở đâu
- Đọc
reform-PG-tools/00-index.md(1 phút) — khung PG-Reconfig - Đọc phần §1 VIỆC NGAY ở file này — biết cần làm gì tiếp ngay
- Check tracker
project-progress-tracker.mdxem có TD mới không
KHÔNG đọc:
- Các file KS cũ trừ khi việc đang làm liên quan
- Các báo cáo cũ trừ khi cần evidence
QUY TẮC VÀNG NHẮC LẠI
- Điều tra xong MỚI thiết kế, thiết kế xong MỚI sửa luật, sửa luật xong MỚI fix TD. Không nhảy bước.
- Whitelist-first mọi discovery — không mò nếu có danh sách biết trước (NT-WHITELIST-FIRST v1.0)
- Nghĩ SÂU, trả lời NGẮN (memory #29) — user không đọc chi tiết kỹ thuật
- PRECHECK tool đầu mỗi prompt CLI — thiếu tool = abort sớm (memory #24)
- Chia vai CLI/Desktop: CLI chạy query trả output thô, Desktop ghi KB
- Mỗi phát hiện = ghi NGAY vào tracker + file tương ứng — không để lạc như s170
Roadmap active | S176 | 2026-04-14 | Cập nhật sau mỗi việc done