# Báo cáo Audit & Vá Lỗi Hệ Thống Tử Vi Đẩu Số

**URL:** https://lab.quizzman.com/tool/about-tuvi-audit  
**Công cụ:** https://lab.quizzman.com/tool/tuvi-reading  
**Ngày:** T8/2026

Quá trình audit hệ thống Tử Vi Đẩu Số (Backend Engine, Topology, Vận Hạn) đã phát hiện và xử lý dứt điểm các lỗi nghiêm trọng sau.

---

## 1. Lỗi Thuật Toán An Vòng 14 Chính Tinh (Nghiêm trọng)

- **Triệu chứng:** Sao Tử Vi và toàn bộ 13 chính tinh còn lại thường xuyên bị an sai cung. Lá số sinh ra không khớp với các trình an sao chuẩn.
- **Nguyên nhân:** `tinhCungTuVi` trong `tuvi-ansao.cjs` dùng bảng tra zig-zag thay vì công thức toán học. Khi Tử Vi sai, cả chùm Tử Vi, Thiên Phủ và Sát Phá Tham sai theo.
- **Patch:**
  - Gỡ lookup zig-zag.
  - Công thức chuẩn: tìm X bù để (Ngày + X) chia hết Cục; thương Y; từ Dần đếm thuận Y−1; X lẻ lùi / X chẵn tiến.
  - `anChumTuVi`: Thiên Cơ (−1), Thái Dương (−3), Vũ Khúc (−4), Thiên Đồng (−5), Liêm Trinh (−8).

---

## 2. Lỗi Topology Cách Cục «Giáp Mệnh» (False Positive)

- **Triệu chứng:** Báo nhận diện `Tử Vi Tả Hữu giáp` cả khi không hợp lệ (ví dụ Tả Hữu đồng cung một bên Mệnh).
- **Nguyên nhân:** Check `topology: 'GIAP'` gom sao hai cung liền kề rồi `.includes()` — hai sao cùng một bên vẫn true.
- **Patch:** Với GIáp 2 sao, bắt buộc mỗi sao ở một cung phân biệt hai bên.

---

## 3. Lỗi Thuật Toán Lưu Nguyệt

- **Triệu chứng:** Cung Lưu Nguyệt không đổi theo lá số.
- **Nguyên nhân:** `buildLuuNienForYear` dùng `(m + 2) % 12` — Tháng Giêng luôn cứng Dần (nhầm Can Chi tháng với Cung Lưu Nguyệt hạn).
- **Patch — Thuyết Đẩu Quân:** Từ Lưu Thái Tuế đếm nghịch tháng sinh, thuận giờ sinh → cung Tháng Giêng; sau đó đếm thuận từng tháng.

---

## 4. Lỗi Mapping Tứ Hóa Thiên Can

- **Triệu chứng:** Canh / Nhâm lệch giữa core, schools và frontend.
- **Patch (Trung Châu):**
  - **Canh:** Nhật – Vũ – Âm – Đồng
  - **Nhâm:** Lương – Vi – Phủ – Vũ (Nam phái: Khoa = Tả Phụ)

---

## 5. Thân cư — công thức đúng, hiển thị thiếu cung vị

- **Kiểm chứng:** `tinhCungThan = (1 + tháng + giờ) mod 12` khớp đếm cổ điển (Giêng tại Dần, thuận giờ). Thân cư Dần khi `tháng + giờ ≡ 1` (vd. Giêng+Tý, tháng 2+Hợi…). Giờ Tý/Ngọ → Mệnh ≡ Thân.
- **Lệch UX:** UI chỉ in địa chi (`Thân cư: Dần`) — dễ nhầm với Chi «Thân» 申; thiếu «Thân cư Mệnh / Quan Lộc…».
- **Thiếu dữ liệu:** `menhChu` / `thanChu` / `amDuong` được API trả nhưng `lapLaSo` chưa tính → luôn trống.
- **Patch:** Gắn `cungThan.cungVi` + `cungViName`; tính Mệnh chủ (theo chi Mệnh), Thân chủ (theo chi năm), Âm Dương; UI hiện `Thân cư: Mệnh · Dần`.

---

## Tổng kết

Các lỗi thuật toán cốt lõi đã được vá. Backend Engine đồng bộ hơn với toán lý Đẩu Số; Animator chỉ chạy theo `traceLog` API.
