Audit lớp Hoàng lịch (Thập Nhị Trực, Nhị Thập Bát Tú) trên cùng lõi thiên văn đã đối chiếu NASA. Âm lịch, Can Chi ngày, Hoàng/Hắc đạo, nạp âm và tiết khí đúng; hai trường Trực và Tú lệch cùng một bậc — không phải lỗi ngẫu nhiên từng ngày.
Đối chiếu độc lập 01/09/2026 (giờ Việt Nam): Mậu Dần – Thiên Hình Hắc Đạo – Trực Phá – sao Thất (Thất Hỏa Trư). Engine cũ trả Nguy + Bích.
1. Lỗi Thập Nhị Trực — truyền số tháng thay vì chi tháng tiết khí lệch +1
Triệu chứng
01/09/2026 (âm 20/7, chi ngày Dần) ra Trực Nguy thay vì Phá. Chuỗi Kiến → … → Phá → Nguy lệch đúng một bậc.
Nguyên nhân
getDayOfficer(chi_ngày, chi_tháng) nhận lunar.month (1–12). Tháng Bảy bị đọc như Mùi (index 7) trong khi tháng tiết khí lúc đó là Thân (index 8, sau Lập Thu). Công thức index = (chi_ngày − chi_tháng + 12) mod 12 vì thế lệch +1. Scoring engine còn dùng (solarMonth + 1) % 12 từ tháng dương lịch Gregorian — tháng 9 DL không phải tháng Thân.
Quy tắc đúng
Ngày có chi trùng chi tháng tiết khí (Lập Xuân = Dần) là Trực Kiến, rồi tiến một trực mỗi ngày.
Patch
getCalendarInfo/generateDayReadingtruyềnsolarMonthCanChi.chiIndex.- Scoring dùng
getSolarMonthCanChi(jdn), không còn số tháng Gregorian. - Khóa regression: Dần ngày + Thân tháng → Phá.
2. Lỗi Nhị Thập Bát Tú — epoch JDN lệch một ngày lệch +1
Triệu chứng
Cùng ngày ra sao Bích thay vì Thất (室, Thất Hỏa Trư). Cả 28 tú lệch +1.
Nguyên nhân
Comment ghi «01/01/1995 (Chủ Nhật) = sao Hư» nhưng hằng MANSIONS_EPOCH_JDN = 2449718 — đó là JDN của 31/12/1994. jdFromDate(1, 1, 1995) = 2449719.
Công thức
index = (JDN − 2449719 + 10) mod 28 (epoch Hư = index 10). Đây là chu kỳ nhật tú lịch dân sự, không phải vị trí thiên văn thực của Mặt Trăng.
Patch
MANSIONS_EPOCH_JDN = 2449719. Ngày sau 01/09/2026 mới là Bích — đúng output cũ của engine.
3. Golden 01/09/2026 (VN)
| Hạng mục | Trước vá | Sau vá / đối chiếu |
|---|---|---|
| Âm lịch | 20/7 năm Bính Ngọ | 20/7 năm Bính Ngọ |
| Can chi ngày | Mậu Dần | Mậu Dần |
| Hoàng/Hắc đạo | Thiên Hình Hắc Đạo | Thiên Hình Hắc Đạo |
| Thập Nhị Trực | Nguy | Phá |
| Nhị Thập Bát Tú | Bích | Thất (Thất Hỏa Trư) |
| Nạp âm | Thành Đầu Thổ | Thành Đầu Thổ |
| Tiết khí | Xử Thử | Xử Thử |
Câu chuẩn: Xét theo hệ Hoàng Đạo – Hắc Đạo, ngày 1/9/2026 là ngày Thiên Hình Hắc Đạo. Trong hệ Thập Nhị Trực, đây là ngày Trực Phá. Theo Nhị Thập Bát Tú, ngày ứng với sao Thất (Thất Hỏa Trư). Ngày Mậu Dần mang nạp âm Thành Đầu Thổ, thuộc hành Thổ. Âm lịch: ngày 20 tháng Bảy năm Bính Ngọ. Tiết khí: Xử Thử.
4. Không phải bug thiên văn
Sóc Meeus vs NASA, λ☉ phân–chí abridged VSOP87 (~0.5°), Tết VN≠CN do gấp ngày UTC+7/+8 — đã audit riêng (NASA_PARITY_AUDIT, Astro Tools). Lỗi T9/2026 nằm ở neo lịch dân sự (chi tháng tiết khí + JDN epoch), không phải ephemeris.
Tổng kết
Hai offset độc lập cùng lệch +1 nên Almanac API trông như «cả khối Hoàng lịch sai một ngày». Đã khóa bằng truc-xiu.test.cjs (23 assert) trong suite calendar-engine. Lõi Sóc / tiết khí / Can Chi ngày không đổi.
→ Mở Quizzman Calendar · Về công cụ · Markdown · Audit Tử Vi