docs: upstream sync 5 records — BUG-1192..1198, CHANGELOG, progress, backtest round 7

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 01:06:29 +08:00
co-authored by Claude Opus 5.5
parent 90dcafe71d
commit 8c55d4dcfb
5 changed files with 318 additions and 1 deletions
+92
View File
@@ -16042,3 +16042,95 @@
- 防复发:同上。
- 相关记录:无。
- 修复版本:`codex/upstream-sync4-20261002`(未推送)。
## BUG-1192 | 亡灵格(Preta Yoga)把第 11 宫写死为 Badhaka 宫;诅咒格「家族影响」与一条格局效果写早夭 / 早逝
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`scripts/curse_yoga_detector.py`(`/api/yogas` 凶星合相层、健康主题证据「Curse-yoga-risk」的严重度);`references/yoga_rules.json` 母亲不利格的效果列表(格局卡、报告)。
- 现象:同一引擎里 Badhaka 宫有两套:`yoga_engine.YogaContext.is_badhaka` 按动 / 定 / 变取 11 / 9 / 7,`curse_yoga_detector` 的 Preta Yoga 加重宫位写死 `[8, 11, 6]` 并注释「11宫=Badhaka」;固定、双体上升的盘被按错误的宫位加重。诅咒格「家族影响」写「子女早夭」「家族血脉停止」,母亲不利格效果第三条是「母亲早逝」。
- 根因:诅咒格表是早期照讲稿抄的,没有调用引擎已有的 Badhaka 规则;措辞未经「不作确定性死亡预测」边界审查。上游 `b40c7fde`/`28f41912` 只改了 meaning 一列(本仓 `533c3a30`,见 BUG-1197)。
- 修复:`7fb165ec`。`yoga_engine.badhaka_house()` 成为唯一定义(变动 11、固定 9、双体 7、上升未知返回 None),`is_badhaka` 与诅咒格都调用它;Preta 两条的加重宫位改为占位符按上升展开,D9 用 D9 上升,上升未知时不加重。「家族影响」改为责任 / 传承主题并写明不能据此断定;母亲不利格删去「母亲早逝 / Early loss of mother」。
- 验证:`tests/test_curse_yoga_badhaka_house.py`(12 个上升全取对、上升未知不加重、两份诅咒格源码与实际输出无早夭 / 早逝 / 死亡风险字样);上游 `tests/test_badhaka_rules.py`(`765ff66c`)。前端两份报告阅读 fixture(`report-reader-main-fictional*.json`)是历史引擎输出,仍含「母亲早逝」,未重采。
- 防复发:新测试按正则扫源码与输出;同一规则只留一个函数。
- 相关记录:BUG-1197。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
## BUG-1193 | 生时校正交付门槛三处写 3 件 2 域、政策文件写 4 件 3 域(产品 10-02 定为 4 件 3 域)
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:生时校正何时出时间范围卡、何时开始出选择题;Python 决策回执 `gates.event_quality` / `domain_diversity`;采集轮「还差」文案。
- 现象:`references/rectification_policy.v1.json` 写 `minConfirmationEvents 4 / minConfirmationDomains 3`,但 `core/rectification-decision.ts` `MIN_STANDALONE_DATED_*`、`v9/evidence-model.ts` `MIN_ACCEPTANCE_*`、`core/types.ts` `MIN_TRAINING_EVENTS` 与 `scripts/rectification/decision_policy.py` `MIN_ACCEPTANCE_*` 都是 3 件 / 2 域(后者只数训练件)。3 件事、2 个领域就会给范围;采集文案永远说「再来一件……就能开始筛」。
- 根因:区间交付门槛与唯一分钟确认门槛分开定义,四处各写常数;政策文件只被确认门引用。
- 修复(产品决策 TASK-upstream-sync5 §2.2):`758fee95`。四处全部读政策文件同一对值,按「训练 + 留出」的全部带日期主经历计数;Python 回执的事件 / 领域门改数全部可计分经历,`POLICY_VERSION` v3 → v4(候选 UUID 命名空间随之变化);收敛判定与推断后的训练门同口径;采集缺口文案写准还差几件、还缺几个方面(VOICE.md 同步);遗留表单 `birth-time-life-events.tsx`(无引用方)文案同步。打分不变(77 例 A/B 逐分相同),`ALGORITHM_VERSION` 维持 scoring-10;记忆化 golden v3、v2 冻结。
- 验证:前端 30 个校正测试文件(夹具补到 4 件 3 域保持原场景,或改断言写三栏)、`tests/test_rectification_confirmation_and.py`、`test_rectification_engine_memoization.py`(v2 冻结 + 分数相等);npm test 失败名单与基线相同。
- 遗留(待产品):留出规则不变,第 3 个领域若只有一件常被留作 holdout,刚达标时实际参与打分的常是 2 个领域 3 件事。
- 防复发:门槛只在政策文件定义;`rectification-convergence-budget.test.ts` 断言常数与政策同源。
- 相关记录:BUG-647(训练门与留出解耦)、BUG-1048。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
## BUG-1194 | 8 星制 Chara Karaka 把罗睺按正向度数排位
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`scripts/jaimini.py` `calc_chara_karaka_8`(全读 Jaimini 模块、报告 Karaka 表)。生时校正只用 Arudha,不读 Karaka。
- 现象:罗睺参与 8 星制时按星座内正向度数排序,罗睺常被排错位。
- 根因:传统规则罗睺逆行,排位用 30° 减度数;旧代码未反转。上游 yinduzhanxing `197672e3`。
- 修复:`cb9d942b`(PM 移植):排位用有效度数,原始度数与 `rahu_reverse_applied` 同时保留。
- 验证:`tests/test_jaimini.py` 新用例。
- 防复发:同上。
- 相关记录:无。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
## BUG-1195 | 燃烧容许度全引擎不一致:不含月亮、不分顺逆行
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`scripts/jyotish_engine.py` `COMBUSTION_ORBS` / `is_combust`(全读行星表、普通对话数据卡的 graha drishti 层)、`scripts/pancha_mahapurusha.py`(五大人格格局燃烧取消)。
- 现象:水星容许度 12°(应顺行 14° / 逆行 12°),月亮不判燃烧,逆行行星与顺行同一容许度;五大人格模块另有一张表。
- 根因:两张表各自手写;上游 `080c286c`、`eaf6918b` 统一为顺 / 逆两列。
- 修复:`cf78d4ca`、`bdbff99a`(PM 移植,含普通对话层按逆行传参);`03d60e29` 测试锁两张表相等并在每个容许度边界上验证两个函数。
- 验证:`tests/test_consultation_native_layers.py`、`tests/test_combustion_orb_tables_agree.py`;名人回测 golden 只有一位逆行金星由燃烧改为不燃烧。
- 防复发:两表相等测试。
- 相关记录:BUG-1154(graha drishti 燃烧共用一个判断)。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
## BUG-1196 | Yogini Dasha 起运不按月宿
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`scripts/yogini_dasha.py`(全读条件大运、报告时间系统表)。
- 现象:起始 Yogini 不是按出生月宿 `(nakshatra + 3) mod 8` 取。
- 根因:上游 `cb7fe017` 已修。
- 修复:`5172620c`(PM 移植;上游对本仓不存在的测试文件的改动未带)。
- 验证:`tests/test_yogini_seed_profile.py`。
- 防复发:同上。
- 相关记录:无。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
## BUG-1197 | 诅咒格 / Rashi Tulya 的含义写「过早死亡风险」「死亡之神」等确定性断语
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`scripts/curse_yoga_detector.py`、`scripts/rashi_tulya_navamsa.py` 的 meaning 字段(凶星合相层、`orchestrator_bridge` 的 RTN 证据)。
- 现象:Yama / Preta Yoga 含义写「死亡之神 sitting」「过早死亡风险」「可触发危险疾病或事故」。
- 根因:照讲稿抄入,违反「不作确定性死亡预测」。上游 `b40c7fde`、`28f41912`。
- 修复:`533c3a30`、`9959e514`(PM 移植);同类残留(家族影响、Badhaka 写死)见 BUG-1192。
- 验证:`tests/test_curse_yoga_claim_boundary.py`、`tests/test_curse_yoga_badhaka_house.py`。
- 防复发:两条测试扫源码。
- 相关记录:BUG-1192。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。
## BUG-1198 | 水星燃烧时 Budha-Aditya 仍按完整吉格输出
- 状态:resolved(分支验证;未部署)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`scripts/yoga_engine.py` 格局列表(报告、数据卡格局行)。
- 现象:日水合相即出 Budha-Aditya 全部吉效果,不看水星是否燃烧。
- 根因:上游 `994638f0` 已修(本仓只取 Budha-Aditya 一段)。
- 修复:`45d6dbf6`(PM 移植):水星燃烧时格局仍可见,`strength=conditional`、效果移到 `traditional_effects`、附 `combustion_witness`。
- 验证:`tests/test_budhaditya_combustion_gate.py`。
- 防复发:同上。
- 相关记录:BUG-1195。
- 修复版本:`codex/upstream-sync5-20261002`(未推送)。