feat(tajika): annual strength layer uses the Tajika five-fold Panchavargiya (BUG-1222)

Product decision 2026-10-03: the annual Harsha / Panchavargiya strength
layer's Panchavargiya column is the same `_calc_native_panchavargiya_bala`
score the year-lord selection compares (BUG-1217): five components, score
out of 20, labelled 「Tajika 五分力量」 / "Tajika five-fold strength". The
unreachable dignity-proxy block is removed; Harsha Bala unchanged; the
combined figure stays blocked (not ruled).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-10-03 22:52:12 +08:00
co-authored by Claude Opus 5.5
parent 11225171ee
commit a6cf8f8f7a
5 changed files with 180 additions and 72 deletions
+18
View File
@@ -16484,3 +16484,21 @@
- 相关记录:BUG-1160、BUG-1161、BUG-1218。
- 复发自:无
- 修复版本:待发布
## BUG-1222 | 年运强度层的 Panchavargiya 一列与年主选法不是同一套分数
- 状态:resolved(分支 `codex/astrologer-rulings-batch4-20261003`,未推送;待验收)
- 首次发现 / 最近更新:2026-10-03 / 2026-10-03
- 来源:第三批进度记录「下轮问占星师」第 10 条(产品问题);产品负责人 2026-10-03 决定;任务书 `TASK-astrologer-rulings-batch4-20261003` T2。
- 影响面:`scripts/tajika.calc_tajika_strength_layers` → `solar_return_full_report` 的 `tajika_strength`(`/api/annual`、`/api/tajika` 的 `report.tajika_strength`,`solar-return` 命令行 JSON)、`varshaphala` 的 `tajika_strength`。`scripts/solar_return.py` 未改。
- 现象:BUG-1217 起年主改用 Tajika 正式五分法比强弱,同一份年运结果里的「Harsha / Panchavargiya」强度层 Panchavargiya 一列仍是 `blocked`(`unified_varga_core_and_golden_oracle_parity_required`),函数里还留着 D1/D2/D3/D9/D12 庙旺近似的旧实现(`return` 之后不可达)。两处口径不一致。
- 实际情况(开工核对,与任务书事故实证 2 的出入):本仓没有渲染出来的「强度表」——参考版 / 读者版报告与年运包(`annual_tajika_pack`)都不带 `tajika_strength`,前端没有使用方;该层只出现在上面列的 API / 命令行 JSON 里。近似分没有上表,上表的是 `blocked`。
- 根因:第二、三批只改了年主选法(BUG-1214 / 1217),强度层停在更早的「等 oracle 对齐」阻塞状态;上游 `c7117f92` 这里已改用五分法。
- 决策(产品负责人 2026-10-03):报告年运强度表统一改用 Tajika 正式五分法,不再显示庙旺近似分。
- 修复:`calc_tajika_strength_layers` 的 `panchavargiya_bala` 每星取 `_calc_native_panchavargiya_bala`(与年主选法同一函数、同一输入 `planet_lons`):`status: usable`、`engine: tajika_native_five_fold`、`label`「Tajika 五分力量」/ `label_en`「Tajika five-fold strength」、`score`(满分 20)、`raw_total`(满分 80)、五个分量(graha / uchcha / hudda / drekkana / navamsha)、`component_trace`、规则来源;层级字段 `panchavargiya_method` / `_en`。年盘缺星时该列 blocked 并写原因,不退回近似分。删掉函数里不可达的庙旺近似旧实现。Harsha Bala 不变。Harsha + Panchavargiya 合成强度没有裁定,仍 blocked(原因改为 `combined_tajika_strength_not_ruled`)。
- 仍用庙旺近似的地方:`tajika._resolve_year_lord_panchavargiya_score` 在 `native_scores` 未传时(上游原行为,无产品调用方);`_calc_panchavargiya_bala_for_planet` 本身保留供该路径与「近似函数被调用即失败」的测试使用。`_strength_interpretation` / `_strength_headline` 原只被不可达代码调用,现无调用方,未删。
- 验证:新增 `tests/test_annual_strength_five_fold.py`(3 张虚构盘 × 2025 / 2026:年主每个候选的分数、原始分、五个分量与强度层同一颗星逐项相同;强度层没有近似分的分盘字段、满分 20、score = 原始 / 4;Harsha 形状不变);`tests/test_tajika.py` 改写一条、新增两条(近似函数被调用即失败、缺星 blocked);`tests/test_api_server_security.py` 年运端点一条。9 位公开名人 2026 年强度层前后对比见进度记录:年主、候选分、Harsha 9/9 不变,Panchavargiya 列由 blocked 变为五分法分数且与候选分逐项相同。
- 防复发:上述测试。
- 相关记录:BUG-1217、BUG-1214、BUG-1219。
- 复发自:无
- 修复版本:待发布