KB-298A rev 10

Handoff S131 FINAL — Điều 31 + Dual-Trigger

4 min read Revision 10
handoffS131Dieu-31Dieu-32WATCHDOGdual-triggerFINAL

Handoff S131 — Điều 31 Triển Khai (FINAL)

Ngày: 2026-03-24 | Session dài nhất: 8 missions, 14 PRs (#574-#587) Trạng thái: Hạ tầng ~90%. Vận hành chờ cron 3AM đêm nay.


TRẠNG THÁI

Mission Trạng thái PRs
M1 Contracts #576
M2 Dòng 11 + Migration #577
PIPELINE-SLIM API
M3 Runner + Dedupe #578
M3-FIX rsync + fields #579, #580
M4 Cron + WATCHDOG #581-583
M4B Layer 2 gom nhóm #584-586
M5-FIX Foundation ✅ 2/4 #587 — Layer fix + legacy classified. Chờ cron.

CHỜ VERIFY (đêm nay)

Cron 3AM VN = 20:00 UTC → runner chạy thật lần đầu. Sáng mai verify:

  • curl $DIRECTUS_URL/items/system_issues?filter[source_system][_eq]=dieu31-runner
  • WATCHDOG issue tồn tại?
  • Dedupe occurrence_count tăng lần 2?

ROADMAP PHIÊN SAU

# Việc Ưu tiên
1 Verify cron 3AM 🔴
2 Fix "Thành phần" Dòng 11 = "3 nhóm" 🔴
3 WATCHDOG visible UI (indicator 🟢/🔴/⚫) 🔴
4 M5 Coverage + final verify 🔴
5 Điều 32 draft — Luật Layer 🟡

NGUYÊN TẮC KIẾN TRÚC MỚI (S131 — GHI NHỚ)

★ NGUYÊN TẮC DUAL-TRIGGER (anh Huyên, S131)

TẤT CẢ chương trình có trigger theo lịch (cron) trong toàn bộ hệ thống Incomex đều PHẢI thiết kế nhận SONG SONG 2 loại trigger:

  1. Trigger định kỳ (Cron): Chạy tự động theo lịch. Ví dụ: 3h sáng mỗi ngày.
  2. Trigger gọi (On-demand): Có thể gọi chạy BẤT KỲ LÚC NÀO bằng tay hoặc script.

Lý do: Nếu chỉ có cron → phải chờ đến lịch mới biết kết quả → mất thời gian debug. Có cửa phụ (on-demand) → test ngay, fix ngay, verify ngay. Production bình thường → cron tự chạy theo lịch.

Áp dụng: KHÔNG chỉ Điều 31 runner. Áp dụng cho TẤT CẢ: health check, backup, sync, WATCHDOG monitor, và BẤT KỲ chương trình nào chạy theo lịch trong tương lai.

Thiết kế chuẩn:

# Cron entry (trigger định kỳ)
0 20 * * * /path/to/script.sh >> /path/to/log 2>&1

# On-demand (trigger gọi — cùng script, chạy bất kỳ lúc nào)
bash /path/to/script.sh                    # local
ssh contabo "bash /path/to/script.sh"      # remote
gh workflow dispatch integrity-recheck     # GH Actions dispatch
curl -X POST /api/trigger/script-name      # API trigger (nếu có)

Script PHẢI chạy được cả 2 cách mà KHÔNG cần sửa code. Cron gọi = on-demand gọi = cùng 1 script, cùng 1 logic.


Ý kiến kiến trúc khác (anh Huyên, S131)

  1. Điều 32 — Luật Layer: Registries đang làm tay từng dòng → không scale. Cần framework: thêm dòng = thêm config, không viết component.
  2. Thành phần Layer 1 = số nhóm con (3 nhóm, không phải 121 CRITICAL).
  3. WATCHDOG phải visible — đèn "SYSTEMS OK" trên cockpit. Cả 2 ông cùng ngủ = thảm họa.
  4. Cột linh hoạt — mỗi dòng có thể thêm label/cột riêng nhưng pattern nhất quán.

QUYẾT ĐỊNH KIẾN TRÚC ĐÃ CHỐT (S131)

1-11: Contract-driven, WATCHDOG, 5 types, dedupe, coverage, server-first, CI 2 tầng, E2E non-blocking, node scripts VPS, Layer consistency, runner trên VPS 12. Layer 1 "Thành phần" = số nhóm con 13. WATCHDOG phải visible trên UI 14. Điều 32 — Luật Layer (sau Điều 31) 15. Registries mỗi dòng mới = config 16. ★ Dual-Trigger: mọi cron PHẢI có on-demand trigger song song


CÁCH ĐỌC NHANH

Tài liệu Lệnh
Luật Điều 31 search_knowledge("system integrity verification law v1.2")
Roadmap search_knowledge("dieu31 roadmap")
Reports M1-M5 search_knowledge("dieu31 M[N] report")
Design Feasibility search_knowledge("design feasibility formula")

Handoff S131 FINAL v2 | 8 missions, 14 PRs | Dual-Trigger principle added Phiên mới: search_knowledge("handoff S131") để restore context