# TASK · 上游同步第九轮 · 第 1 次打回(2026-10-28) - 原任务书:`docs/tasks/TASK-upstream-sync9-20261028.md`(issue #141) - 被验 SHA:`57867c94fe7fd08196a2cb5d0be4b7c1f2cdf5df`(分支 `codex/upstream-sync9-20261028`) - 执行方:Grok,同一分支继续提交 - BUG:不新开号,补在 BUG-1489 ## 1. 验收结果 | 检查 | 结果 | | --- | --- | | 回报 SHA 是分支最新提交,基于当前 `origin/staging` 可快进 | 是 | | 本轮 11 个上游测试文件(Linux) | 242 过;条数、数值、容差与上游原文件逐一相同 | | 相关既有测试 39 个文件 | 527 过、1 败;那 1 败(`test_dasha_api_engine_parity.py::test_yogini_api_majors_match_pyjhora...`)在 staging 上同样失败,不算本单 | | 生时校正 20 条 + 900 条(Linux 复跑) | 与第八轮记录逐条相同 | | 冻结文件、`scripts/` 根目录、workflow、前端 | 未改 | | Python 快速门 `run_quality_gate.py --profile quick` | **1 败**,见下 | ## 2. 失败项 `tests/test_cli_smoke.py::test_full_reading_uses_d9_context_for_darakaraka_dignity`:staging 上过,本分支上 `dk_planet` 从 `Sun` 变成 `Moon`。 这是 A7(BUG-1489)**修对了**,旧测试锁的是错值: - 该测试盘 7 颗行星的星座内度数里月亮最低(3.09°,太阳 8.85°);8 星法罗睺逆数为 26.53°,月亮仍最低。 - 同一次完整解读里我方主表 `modules.jaimini.chara_karaka_7.karaka_table.Darakaraka` 与 `chara_karaka_8.karaka_table_8.Darakaraka` 都是 **Moon**。 - 旧 `darakaraka_reader._calculate_dk` 在 8 星法下取 `sorted_planets[6]`(第 7 高)而不是最低者,所以给出 Sun。上游 `45b3b66b` 修的正是「读取器与主表不一致」。 ## 3. 要做的 1. 把该测试的期望改成 `Moon`,并加一条断言:读取器的 `dk_planet` 等于同一结果里 `chara_karaka_8.karaka_table_8.Darakaraka.planet`(锁住「与主表一致」,而不是再锁一个具体星名)。测试里其余断言(D9 星座、D9 宫位、D9 尊贵度)按新 DK 重新核对:若随 DK 改变,写清原值 / 新值 / 原因;**不得删除或放宽**。 2. PROGRESS「断言三栏」加这一行:原值 `Sun`、新值 `Moon`、原因(同 §2)。 3. BUG-1489 补一句:旧读取器 8 星法取第 7 高;`test_cli_smoke.py` 这条测试锁的是错值,所以一直没拦住。 4. 全文检索 `tests/` 里其他写死 Darakaraka 星名或依赖 `darakaraka_reader` 的断言(`grep -rn "dk_planet\|Darakaraka" tests/`),逐条在本分支上跑;有同类锁错值的一并按第 1 条处理,并列进 PROGRESS。 ## 4. 验收命令 | 检查 | Grok 自跑 | Claude 验收 | | --- | --- | --- | | `tests/test_cli_smoke.py -k darakaraka` 与第 4 条找到的测试 | 必跑 | 复验 | | 本轮 11 个上游测试文件 | 必跑 | 复验 | | Python 快速门 | 不跑 | 以 Claude 为准 | 完成后照旧回报新的 head SHA。