# 守護神測驗 V5：Maha Taksa 當前週期與 2026 年度視圖方法審核

日期：2026-07-19
狀態：`approved_for_engine_v1`
範圍：只核准週期計算與時間切段；不核准逐月事件預測，不複製古籍或第三方結果文案

## 結論

V5 可以用 Maha Taksa（มหาทักษา）的八曜 108 年循環建立「目前走到哪個主運／次運」與「2026 年落在哪些週期」的可重算時間軸。

這個模組可以說：

- 目前主運與次運是哪兩顆星；
- 每一段何時開始、何時結束；
- 2026 年橫跨哪些已計算週期；
- 週期星曜與本命 21 宮哪些領域形成可追溯的解讀主題。

這個模組不能單獨說：

- 某月必然發財、分手、結婚、生病或遇到災禍；
- 事件發生機率；
- 沒有其他年度／月度規則支持的十二個月吉凶；
- 第三方網站或古籍中的受保護預言原句。

公開名稱使用「當前生命週期」與「2026 週期視圖」。頁面可在來源抽屜顯示 Maha Taksa，但不能把它包裝成精確事件預測。

## 來源

### M1：泰國占星原典轉述與公開計算器

- 名稱：`มหาทักษา ๘ องค์ — คำนวณดาวเสวยอายุจากวันเกิด`
- URL：<https://horasatthai.com/horasat/maha-taksa>
- 原典定位：頁面指向 `คัมภีร์โหราศาสตร์ไทย — อั้น สาริกบุตร ภาคที่ ๙ หน้า ๖๐๘–๖๓๙`
- 可核對內容：八星力量、總和 108、主運順序、次運公式、結果屬定性趨勢。
- 限制：網站只整理 64 組中的 57 組預言；V5 不搬用其內容資料庫。

### M2：泰文教學頁面

- 名稱：`เรียนโหราศาสตร์กับมหาหมอดู`
- URL：<https://mahamodo.com/modo/astrology/astrology1.htm>
- 可核對內容：出生星期星曜先起運；每顆星按自身力量主運；次運為 `次星力量 × 主星力量 ÷ 108`；並列出星期日與星期一出生者的完整主運年齡邊界。
- 具體定位：頁面約第 609–650 行的 `เสวยอายุ` 段落。
- 限制：教學文字受原站權利保護；V5 只實作數學規則，不複製說明句。

### M3：泰國藝術廳公開數位藏書

- 名稱：`โหราศาสตร์สำเร็จ（ตั้งแต่แรกเรียนจนเป็นนักพยากรณ์）`
- 作者頁標示：`พ.อ. ประพิน (อาตมัน) สุทธิบุตร ธ.บ.`
- 館藏 URL：<https://www.finearts.go.th/storage/contents/2025/03/file/TvIt17ZdROhIAQIYsW8kClpvyPovH7H9MZI65tit.pdf>
- 書目證據：2026-07-19 下載的館藏掃描共 370 頁，封面與題名頁經視覺檢查；搜尋索引可定位到星曜主運、次運、108 力量及次運計算段落。
- 用途：證明該計算不是新網站自行發明，並交叉確認「先看命盤，再以主運／次運縮小時段」的傳統用法。
- 限制：掃描本無可抽取文字層；本次不保存、不散布 PDF，也不從中建立文案庫。

### M4：年度細分的流派邊界資料

- 名稱：`แม่บททักษา ตอนที่ 5`
- URL：<https://sunwasa.wordpress.com/2008/02/05/%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88/>
- 可核對內容：作者明確把年運、月運與較長的主運／次運視為不同層次；月度事件還需另設年度盤、月份位置及行星移動，不能只靠主運／次運重複套句。
- 用途：支持 V5 第一版停止在「年度週期視圖」，不生成十二月吉凶。
- 限制：這是流派教學，不作 V5 公式主來源。

## 核准的常數

### 八星與力量

| code | 泰文 | 中文 | 數字 | 力量／主運年數 |
| --- | --- | --- | ---: | ---: |
| `sun` | อาทิตย์ | 太陽 | 1 | 6 |
| `moon` | จันทร์ | 月亮 | 2 | 15 |
| `mars` | อังคาร | 火星 | 3 | 8 |
| `mercury` | พุธ | 水星 | 4 | 17 |
| `saturn` | เสาร์ | 土星 | 7 | 10 |
| `jupiter` | พฤหัสบดี | 木星 | 5 | 19 |
| `rahu` | ราหู | 羅睺 | 8 | 12 |
| `venus` | ศุกร์ | 金星 | 6 | 21 |

總和：`6 + 15 + 8 + 17 + 10 + 19 + 12 + 21 = 108`。

### 循環順序

固定順序：

```text
太陽 → 月亮 → 火星 → 水星 → 土星 → 木星 → 羅睺 → 金星 → 太陽
```

主運從出生星期對應的星曜開始，走完八星正好 108 年。次運從正在主運的星曜自己開始，沿相同順序走完八星。

### 出生星期起運

| 當地民用星期 | 起運星 |
| --- | --- |
| 星期日 | 太陽 |
| 星期一 | 月亮 |
| 星期二 | 火星 |
| 星期三 | 水星 |
| 星期四 | 木星 |
| 星期五 | 金星 |
| 星期六 | 土星 |

M1 的公開計算器實作只使用七天星期，星期三一律從水星開始；M2 也只說出生星期星曜先起運。現有來源不足以把「星期三夜出生曜神為羅睺」推導成「Maha Taksa 必須從羅睺起運」。

因此 V5 v1 必須分開：

- 出生曜神模組：星期三日／夜分流，夜曜可以是羅睺；
- Maha Taksa 週期模組：星期三從水星起運；
- 結果頁說明兩個模組的來源與用途不同；
- 不用使用者偏好或商品選擇解決這個流派差異。

若未來取得明確的星期三夜起運來源，新增另一個具名流派版本，不靜默改掉 v1。

## 核准公式

### 主運

令出生星期對應星在循環中的 index 為 `startIndex`。依序取八星，各主運長度等於自身力量：

```text
majorYears(planet) = planet.power
```

星期日出生的公開交叉案例：

```text
太陽 0–6
月亮 6–21
火星 21–29
水星 29–46
土星 46–56
木星 56–75
羅睺 75–87
金星 87–108
```

年齡區間採半開區間 `[fromAge, toAge)`，避免邊界同時命中兩段。

### 次運

主星為 `major`、次星為 `minor`：

```text
minorYears = major.power × minor.power ÷ 108
```

次運順序從主星自己開始，沿八星循環走一圈。八段次運加總必須精確等於該主運的力量年數。

### 年齡與日期精度政策

傳統來源把小數年依 12 個月、30 天與更小單位拆算；現代外部計算器 M1 的前端實作使用平均回歸年：

```text
1 year = 365.2425 days = 31,556,952,000 milliseconds
```

V5 v1 採同一換算常數，理由是：

- 可以和 M1 的外部案例比對；
- 64 段的邊界能以同一有理年齡連續累加；
- 不會因每月天數不同而讓八段次運加總出現縫隙或重疊。

這是 `period_date_precision_policy_v1`，屬本站把傳統分數年轉成 ISO 日期的現代精度政策，不宣稱是古籍原句。

實作要求：

- 內部先用分子／分母或足夠精度的 number 形成連續年齡邊界；
- 日期只在最終顯示時由 `birthInstant + ageYears × 365.2425 days` 轉換；
- UI 顯示日期時附註「日期為平均回歸年換算」；
- 邊界比較使用 `[fromInstant, toInstant)`；
- `asOfDate` 必須顯式傳入引擎，測試不讀取隱含的系統今天。

## 2026 年度視圖

對指定出生資料，先建立 64 段主運／次運時間軸，再與使用者當地時區的年度窗交集：

```text
yearWindow = [2026-01-01T00:00 local, 2027-01-01T00:00 local)
segments = periodTimeline ∩ yearWindow
```

每個交集段輸出：

- `majorPlanet`；
- `minorPlanet`；
- 原始年齡起訖；
- ISO 起訖時間；
- 在 2026 年內的交集起訖；
- `ruleVersion`、`sourceIds`、`precisionPolicy`；
- 是否為 `asOfDate` 當前段；
- 下一個轉折日期。

年度標題只能由實際段落形成，例如：

```text
2026 前段由水星主運／木星次運主導，後段在 9 月 3 日切換為水星主運／羅睺次運。
```

日期與星名必須來自引擎。至於「這代表什麼」，只能由通過審核的星曜角色與本命宮位內容 block 組成，不能由生成模型即席創作。

### 同一週期內的年度使用步驟

若某人的主運／次運完整涵蓋 2026，傳統週期引擎只會產生一段，結果頁必須明確顯示「2026 沒有主副運切換」，不能把 2027 的下一個切換冒充今年轉折，也不能為了視覺上湊三段而偽造傳統運期。

第二輪內容審查指出，即使標示「不是傳統運期」，固定日期仍會在視覺上被誤讀為命盤算出的吉凶分界。因此 V5 `annual_application_v2` 取消 `2026-01-01–04-30`、`05-01–08-31`、`09-01–12-31` 三個公開日期區間，只保留沒有日期的三個行動步驟：

- 先盤點：辨認同一主運主題落在哪個生活領域；
- 再篩選：用副運條件比較選項；
- 最後驗證：檢查是否形成可持續成果。

這三步不是新星曜、流月、古法吉凶、事件預測或命盤時間點。文案只能使用：

1. 當前主運與次運經審核的窄化角色；
2. 本命 21 宮實際命中的工作、金錢、關係與支持領域；
3. 使用者選擇的生活問題；
4. 可觀察、可撤回且不宣稱必然事件的檢查方式。

UI 必須直接顯示「本站行動順序，不是命盤新增的運期、吉凶分界或事件日期」。結果物件的 `actionStages` 不得包含 `fromDate`、`toDate` 或 `isCurrent`。若 2026 年內確實跨越主副運邊界，真正切換日期仍只由 `yearSegments` 顯示；本站行動步驟不能覆蓋或改寫引擎日期。

## 外部案例 E1

驗證日期：2026-07-19
外部工具：M1 公開計算器
輸入：1990-07-15
當地星期：星期日

外部可見結果：

- 出生星期日起運星為太陽；
- 目前主運：水星；
- 目前次運：木星；
- 可見年齡區間：約 33 年 3 個月至 36 年 2 個月；
- 主運時間軸：太陽 0–6、月亮 6–21、火星 21–29、水星 29–46。

人工公式：

```text
水星主運起點 = 6 + 15 + 8 = 29
水星自身次運 = 17 × 17 ÷ 108 ≈ 2.6759259
土星次運 = 17 × 10 ÷ 108 ≈ 1.5740741
木星次運起點 = 29 + 2.6759259 + 1.5740741 = 33.25
木星次運長度 = 17 × 19 ÷ 108 ≈ 2.9907407
木星次運終點 ≈ 36.2407407
```

換成外部工具的年月顯示約為 `33 年 3 月–36 年 2 月`，一致。

這個案例必須進入自動 harness。之後再加入至少：

- 星期一出生主運起點案例；
- 生日當天的半開區間案例；
- 主運切換前後一毫秒；
- 次運切換前後一毫秒；
- 2026 年內跨一個與跨兩個次運的案例；
- 108 年終點與超出支援範圍案例。

## 內容使用邊界

### 可以使用

- 八星名稱、力量、順序、主運／次運數學；
- 星曜的窄化角色標籤；
- 本命 21 宮裡實際命中的領域；
- 本站自行撰寫、經審核的風險／機會／行動內容 block；
- 清楚的來源、版本與不確定性說明。

### 不可以使用

- 抓取或複製 M1 的 57 組預言內容；
- 複製 M2、M3、M4 的段落；
- 直接改寫帶有死亡、疾病、性別、膚色、財產損失等古代斷語後當成必然事件；
- 用 `auspicious: true/false` 變成整年吉／凶分數；
- 把投資、醫療、法律或人身安全建議寫成命理決策；
- 沒有命盤證據卻給所有人同一套三步行動。

## 工程驗收

`guardian-quiz-v5-period-engine.js` 完成前後必須滿足：

1. 常數力量加總精確等於 108；
2. 每個出生星期產生 8 個主運、64 個主／次運段；
3. 全時間軸無 gap、無 overlap，最後終點為 108 年；
4. 每個主運內的 8 個次運加總等於主運年數；
5. E1 星曜、年齡起訖與外部結果一致；
6. `asOfDate` 不同會改當前段，不改本命與守護神；
7. 只改生活題、商品、庫存、價格不改任何週期段；
8. 星期三夜的出生曜神可以是羅睺，但 Maha Taksa v1 起運仍為水星；
9. 無效日期、未來出生、108 歲以上與不支援時區明確失敗；
10. 所有可見段落能回指 `ruleVersion`、`sourceIds` 與 `precisionPolicy`。

## 發布標示

結果頁來源抽屜使用以下白話說明：

> 當前生命週期使用泰國 Maha Taksa 的 108 年八曜主運／次運公式。星曜和區間可用相同出生資料重算；日期由傳統分數年以平均回歸年換成現代日期。它描述階段性趨勢，不代表某件事必然發生。

未知時間不影響七天星期的 Maha Taksa 起運，除非出生時間位於本站採用的 06:00 泰式日界附近；此時出生資料確認頁要同時顯示民用日期與命理有效日期，不能靜默移日。
