# PROGRESS · 上游同步第六轮(2026-10-07) 工作树:`G:\Ferti\Jyotisha\.worktrees\upstream-sync6-20261007`,分支 `codex/upstream-sync6-20261007`,基线 `5cc8e504`(任务书写的是 `0ed45a4b`,本工作树实际从 `5cc8e504` 开工)。跟踪 `origin/staging` 未改。未推送。 ## 基线 全量 pytest、npm、v5 评测在兄弟工作树 `upstream-sync6-baseline-20261007` 上跑。本单不另起第二轮全量 v5。 - 全量 pytest 已结束。日志 `D:\Users\74082\AppData\Local\Temp\sync6-pytest-baseline.txt` 没有汇总行,失败名单 130 条。本记录不把基线写成通过。 - npm:4899 项,通过 4752,失败 147,取消 0,跳过 0。失败名单在 `D:\Users\74082\AppData\Local\Temp\sync6-npm-baseline-fails.txt`。 - v5 改前九格:先验头名 0.1818 / 0.0909 / 0.0779;六题回放 0.6364 / 0.4935 / 0.3117;线上区间回放 0.6623 / 0.5584 / 0.4026。改后同一口径:先验头名 0.2078 / 0.1169 / 0.0909;六题回放 0.6104 / 0.5325 / 0.3117;线上区间回放 0.6623 / 0.5844 / 0.3896。六题回放 ±10 下降 2.6 个百分点,线上区间 ±60 下降 1.3 个百分点。打分没有改。产品负责人要求按本分支推送。 ## 原书核对 - D5 / D6 / D8 / D11 按 PVR《Integrated Approach》6.2.5、6.2.6、6.2.8、6.2.11 的起算规则改。只引用节号,不抄正文。 - 6.2.8 例 15:按计数,双子 10° 是双宫的第 3 段,从狮子数第 3 段是天秤。书末那句把水星写成狮子,和它自己的计数矛盾。本轮按计数,水星在天秤,与上游 `f32472b5` 一致。 - Yogini 对照 V.P. Goel 古典章 Table I。顺序与书一致:Mangala 月 1、Pingala 日 2、Dhanya 木 3、Bhramari 火 4、Bhadrika 水 5、Ulka 土 6、Siddha 金 7、Sankata 罗 8。种子是(月亮宿零基序号 + 3)mod 8。第一段是出生时剩余余额。Table II 是后出的研究改订,不用。U3 没有 blocked。 ## 岁差 import 引导(U10 动手前实测) 有。进程里先 `ayanamsa_utils.apply_ayanamsa('lahiri')`,`ACTIVE_AYANAMSA_NAME` 为 lahiri;随后 `import jyotish_engine`,同一模块全局变成 raman。原因是 `scripts/jyotish_engine.py` 导入时无条件调用 `apply_ayanamsa(DEFAULT_AYANAMSA_NAME)`。产品默认仍是 raman。已加进程闩 `AYANAMSA_APPLIED_IN_PROCESS`。行运、Bhava Chalit、星宿命令改用请求的岁差和出生秒。六种模式(lahiri、raman、krishnamurti、fagan_bradley、true_citra、true_pushya)本命、行运、Bhava Chalit、星宿命令都是 requested == applied。 ## 逐项 | 项 | 提交 | 改了什么 | | --- | --- | --- | | U1 BUG-1260 | `db68e908` | D5 奇宫 (0,10,8,2,6)、偶宫 (1,5,11,9,7)。D6 奇宫从白羊、偶宫从天秤。D8 起点 `(0, 8, 4)[si % 3]`。D11 `(-si + pi) % 12`。`divisional_charts_extended` 的 5/6/8/11 走同一函数 | | U2 BUG-1261 | `ab9e3056` | Shodasavarga D9 权重 3.5 → 3.0(合计 20)。Dasavarga D9 3.0 → 1.5(合计 20)。尊严分只保留星主关系;Debilitated / Neecha Bhanga 抛 ValueError。`final_score = total_weighted_score / 20`。档位 High / Moderate / Limited / Low,缺省 Unclassified。全入庙 Shodasavarga 得分等于 20。解释不把分数说成功能性吉凶 | | U3 BUG-1262 | `3adb2460` | 报告用的 Yogini 改 Goel Table I,第一段用出生余额,必须有月亮经度。`jyotish_engine._calc_yogini_dasha` 与 `extended_dashas.calc_yogini_dasha` 未改,API 服务器没有加处理函数 | | U4 BUG-1263 | `778cb638` | `planet_house` 是相对年升的 1–12。星座另存 `planet_sign_idx`。相位和年主星座用星座序号。增加 `year_lord_house`。BUG-1214 只加了相关记录,没有改写旧史 | | U5 BUG-1264 | `5eb11e7c` | 展示层并列历史序列和来源对照。`score_candidates` 仍用原 Narayana。解释句写实际选中的起运规则。本仓没有 Ketu 第 12 表时返回 blocked,不编序列 | | U6 BUG-1265 | `4b9c0198` | 有经纬度时用 PyJHora、出生时刻、传入岁差。没有对应函数或岁差对不上时 status=blocked。Hora 与 Ghati 不再相同。Varnada、Pranapada 出现在全盘报告的 Standard Lagnas 表和明细行(`Varnada_Lagna` / `Pranapada_Lagna`)。校正打分仍用原 Hora / Ghati 公式。Arudha / Upapada 没有加回来 | | U7 BUG-1266 | `eb739d4e` | `jupiter_upachaya_from_moon` 改为月亮 3/6/10/11 宫的配置,中文名「木星位于月亮增长宫」,类别 configuration。不是名为 Shakata 的格局。`generate_yoga_rules.py` 里的车格局未动 | | U8 BUG-1267 | `f02d27a7` | `birth_second` 传入太阳返照计算、完整报告和命令。虚构盘返照时刻与上游 `23be1807` 同为 `2010-06-15 19:25:43`。没有打开视位置、-5 秒或交点拟合。Shadbala 方法声明函数只在未移植的 `evidence_labeled_reporting.py`,本仓没有对应函数,措辞未改。API 年运那一行把 `birth_second` 加在原有参数上,行数不增 | | U9 BUG-1268 | `edeec413` | Neecha Bhanga 的 `conditions_checked` 加上月方四正、上升四正,尊严上下文传入宫位。不把取消落陷标成 Raja Yoga。第一段大运的小运、更小运从完整母段起点排,显示时裁到出生日,保留 `unclipped_start_datetime`。Bhava 表用编号宫过滤,汇总行不当成第 13 宫。Karaka 表加 Ranking degree 列 | | U10 BUG-1269 | `4e134b9b` | 见上。产品默认仍是 raman | | T9 BUG-1270 | 未改代码 | 见下。状态 investigating | ## 三栏改过的断言 - `tests/test_varga_bphs.py`:D11 例 `varga_map` 与 35° 的落座。原值 Aquarius / 新值 Aries / 原因 PVR 6.2.11。 - `tests/test_dasha.py`、`tests/test_cli_smoke.py`:Vimsopaka 不再接受 Neecha Bhanga 尊严分。 - `tests/test_yogini_seed_profile.py`:不再从上升兼容表起运。 - `tests/test_rectification_engine_memoization.py`:当前身份 scoring-11;v3 golden 逐字节保留;新 golden 是 v4。 - `tests/test_dasha_transition_proximity_cross_midnight.py`、`tests/test_rectification_relative_support.py`:算法字面量 scoring-10 → scoring-11。策略仍是 policy-v4。 - `frontend/tests/rectification-dated-algorithm-generation-20261002.test.ts`:回执默认 scoring-11。另有一条:scoring-10 历史记录在 scoring-11 下只读打开并提供再比(BUG-621)。 - `frontend/tests/rectification-engine-version-cross-midnight.test.ts`:`LIVE_CURRENT` 改为 scoring-11。复用缓存还要带上当前 golden 的 `policyVersion`(scoring-11 回执是 policy-v4,旧跨午夜 fixture 不是这一版)。 - `frontend/tests/rectification-midnight-date-anchor.test.ts`:fixture 循环加上 scoring-11。 - `tests/test_sealed_holdout_contract_freshness.py`:身份排除名单加上 `upstream_sync6_2026_10_07` 两份冻结路径。 - `frontend/tests/rectification-confirmation-gate.test.ts`:当前冻结重跑路径从 batch1 改到 sync6(与合同一起提交)。 ## 公开盘对照(Lahiri,mean node,与上游 `23be1807`) 太阳 / 月亮星座。出生时刻已在仓库公开夹具里,这里不重复。 | 盘 | D5 | D6 | D8 | D11 | Yogini 第一段 | | --- | --- | --- | --- | --- | --- | | Steve Jobs | Sagittarius / Pisces | Gemini / Sagittarius | Pisces / Scorpio | Libra / Libra | Mercury,Bhadrika,余额 0.8063 年,起点即出生时刻 | | Barack Obama | Capricorn / Virgo | Capricorn / Sagittarius | Virgo / Aquarius | Leo / Gemini | Venus,Siddha,余额 6.9806 年 | | Elizabeth Taylor | Sagittarius / Gemini | Gemini / Leo | Pisces / Libra | Scorpio / Gemini | Jupiter,Dhanya,余额 2.3624 年 | 特殊上升(Jobs,Lahiri):Bhava Leo 17.1198,Hora Aquarius 22.5752,Ghati Virgo 8.9414,Sree Cancer 0.871,Indu Aquarius 14.5117。Hora ≠ Ghati。三盘的 Bhava / Hora / Ghati / Sree / Indu 与上游一致,status 都是 computed。 Jobs 木星 Dig:本仓 80.59,上游 39.41。另外两盘 Dig 一致(54.27、20.64)。见 BUG-1270。 ## 咨询卡(Raman,与上面的 Lahiri 表不是同一套岁差) `consult-evidence-card-golden.json` 用采集脚本重跑。本机把 VedAstro 记成 `foreground_optional_evidence_timeout`,上一份 golden 里是已经采到的 `official_verified`。提交文件保留上一份官方云字段和经度的 1e-13 抖动,只换入引擎算出的 D5/D6/D8/D11,以及奥巴马木星状态由「落陷(Debilitated)」变为「落陷取消(Neecha Bhanga)」。没有手写星座。 家庭路由太阳 / 月亮,原值 → 新值: | 盘 | D5 学业 | D6 健康 | D8 健康 | D11 财富 | | --- | --- | --- | --- | --- | | Steve Jobs | Aries/Capricorn → Sagittarius/Pisces | Aries/Sagittarius → Gemini/Capricorn | Taurus/Pisces → Pisces/Sagittarius | Cancer/Aries → Scorpio/Libra | | Barack Obama | Gemini/Aquarius → Capricorn/Virgo | Taurus/Capricorn → Aquarius/Sagittarius | Leo/Aries → Virgo/Pisces | Libra/Taurus → Leo/Cancer | | Elizabeth Taylor | Aries/Aquarius → Sagittarius/Libra | Taurus/Aquarius → Cancer/Leo | Gemini/Aries → Aries/Libra | Cancer/Gemini → Scorpio/Gemini | 上升星座也变了(Raman):Jobs D6 Pisces→Libra、D8 Taurus→Leo、D11 Taurus→Scorpio;Obama D5 Capricorn→Scorpio、D6 Sagittarius→Pisces、D8 Pisces→Libra、D11 Gemini→Aries;Taylor D5 Libra→Capricorn、D6 Virgo→Aquarius、D8 Sagittarius→Taurus、D11 Aquarius→Aries。D5 上升 Jobs 仍是 Taurus。 ## 打分身份 升到 `rectification-v5-matrix-scoring-11`(`d46f9675`)。同一输入的单案探测(Lahiri,mean node,公开事件,年份精度): | 探测 | 基线 scoring-10 | 本分支 scoring-11 | | --- | --- | --- | | Jobs 真实事件 | 7.25 | 7.25(D5/D11 星座已不同) | | Jobs 学业+财务年 | 4.7374 | 5.2687 | | Obama 真实事件 | 14.4917 | 14.6792 | | Obama 学业+财务年 | 2.7688 | 2.7688(内部构成不同) | | Taylor 真实事件 | 13.9708 | 13.9708 | | Taylor 学业+财务年 | 5.0813 | 4.9875 | 记忆化 golden 新增 v4,v3 逐字节保留(sha256 `7064f30bea3a7bcd8058fdcb6b52484a96a09767c0c289e0d71f3e2368fc8d45`)。代数判断已接受 generation ≥ 9,没有新增 `=== "scoring-10"`。历史 scoring-10 记录只读打开。 ## Shadbala 第 3 列 读者表第 3 列是 Dig。差距来自 `calc_dig_bala_precise` 没有把大于 180° 的弧折回。上游的短弧函数在 `f32472b5` 的父提交里已经存在,`f32472b5^..23be1807` 的 `scripts/shadbala.py` 无差异。这五个提交不解释成「本轮要改公式」。未改公式。校正打分的 `calc_shadbala` 不传 context,不走这条精确路径。 ## ERR-110 冻结身份里字节变了的文件:`scripts/varga.py`、`scripts/divisional_charts_extended.py`、`scripts/narayana_dasha.py`、`scripts/rectification/scoring_service.py`。旧的 batch1 冻结与报告原文件保留。冻结提交 `3b84a3b0`。咨询卡 golden `7b837d3b`。新路径: - `docs/research/sealed_holdout_rerun_upstream_sync6_2026_10_07.freeze.json` - `docs/research/sealed_holdout_rerun_upstream_sync6_2026_10_07.json` - `docs/research/reported_offset_upstream_sync6_2026_10_07.freeze.json` - `docs/research/reported_offset_upstream_sync6_2026_10_07.json` 影子 20 例重放:`evaluated_on` 2026-10-07。`top_1_rate` 0.45,`top_3_rate` 0.5,`mean_absolute_minute_error` 6.45,`false_confirmation_rate` 0.0,`confirmation_coverage_rate` 0.0,`metric_gates_passed` false。相对 2026-09-20 历史报告 `changed_trial_count` 0。这不是独立盲测,不能当发布指标。 reported-offset:900 例,exit 0,约 804 秒。相对 2026-09-20 历史报告 `changed_trial_count` 235(batch1 那次是 230)。相对 batch1 重放,900 例里 5 例不同:4 例 `delivery_width_minutes`,1 例 `top_1_minute_error`。名次和是否命中没有变。 身份测试:`tests/test_sealed_holdout_contract_freshness.py`、`tests/test_reported_offset_research.py`、`tests/test_rectification_validation_integrity_gate.py` 共 45 passed,exit 0。前端 `rectification-confirmation-gate.test.ts` 8 pass,0 fail。确认门阈值没有放宽。 ## 定向测试(本工作树,不是全量) 命令形如 `C:\Users\74082\anaconda3\python.exe -m pytest -q --tb=line --override-ini="console_output_style=classic" -rA --no-header`。 - U1 `tests/test_varga_bphs.py` 及相关:75 passed。 - U2 Vimsopaka:16 passed。 - U4 Tajika:20 passed。 - U6 特殊上升:4 passed。 - U10 岁差:10 passed。 - 太阳返照 + Upachaya:4 passed,exit 0。 - U9 尊严证据、Neecha 条件、Bhava、Karaka 与 `tests/test_dasha.py`:43 passed,exit 0,174.82s。 - Narayana 对照:3 passed,exit 0。 - scoring-11:`tests/test_rectification_engine_memoization.py`、`tests/test_rectification_relative_support.py`、`tests/test_dasha_transition_proximity_cross_midnight.py`:37 passed,0 failed,exit 0,33.61s。 - 前端跨午夜三文件第一次 44 pass、1 fail(复用缓存还要 policyVersion)。补上 `policyVersion` 后,`rectification-engine-version-cross-midnight.test.ts` 22 passed,exit 0。 - 更早一轮混合未提交树:164 passed,0 failed,exit 0,252.32s。当时太阳返照测试尚未按正确参数重跑;修正后 2 passed,已含在 U8 提交里。 - 没有改 `scripts/jyotish_api_server.py` 的行数,未跑增长合同。ruff 对改过的脚本有大量既有风格问题,没有为凑绿去改。 ## 本机门禁 - `tsc --noEmit`:0 错,exit 0。 - `npm run lint`:0 error,125 warnings,exit 0。警告在既有测试文件里,本轮没有为清警告改业务代码。 - `npm test`:4901 项,通过 4756,失败 145,取消 0。基线是 4899 项、失败 147。按测试名比对,基线多失败 3 条(两条数据库、一条「D3 发送后首行」),本分支多失败 1 条:`corrective migration clears untrusted clocks...`,错误是 `EPERM`,建不了 `jyotisha-postgres-slots\slot-0`。这是本机数据库目录权限,不是这次改的计算。 - `next build --webpack`:编译过(2.9 分钟),TypeScript 过(2.6 分钟)。收集页面数据时死在既有 `SkillPackageRegistryError`:本机不允许给 `SKILL.md` 建符号链接(`/api/birth-time-guide`)。与 `PROGRESS-chart-page-blocking-open-20260915` 相同。源码没有改这条路由。构建表没有打出来,所以本机不能确认 `/` 仍是 Static。 - 全量 pytest 已结束。失败 135,开工基线 130。旧的 130 条都还在,多出 5 条:`test_consultation_native_layers` 整包输出变了;`test_rectification_dated_transitions` 的扫描金样变了;`test_skill_release_clean_trial` 验收脚本失败;`test_user_invocation_acceptance_contract` 里土星大运边界差一天(2023-07-12 与 2023-07-13),以及因此连带的验收失败。失败名单不是基线的子集。产品负责人仍要求按本分支推送。 - 名人生平回测改前 72 份已跑完(deepseek-flash,失败 0,约 12 分钟)。密钥只在当次进程环境,没有写入仓库或本记录。这轮读的是改前卡片。逐份阅读后:通过 39,通过(弱)5,读反 7,严重冲突 16,对照组误报 4,误报(轻)1,漏读 0。16 份严重冲突全部在事业。健康是读反 6、通过(弱)5、通过 7。对照组误报 5 份都在父母或缺一段稳定婚姻的轻描。改后要先用本分支引擎重抓这份 golden,再跑同一模型。健康卡含 D6、D8;父母、婚姻、事业卡不含 D5、D11。改后若严重冲突高于 16,或对照组误报高于 5,先停下来报告。 ## 未做 - 产品负责人 2026-10-07 要求按本分支推送。打分未改。状态板保持待验收。 - 未改 `.gitea/workflows`。未把书里的段落抄进仓库。 - 未把产品默认岁差改成别的系统。 - 未打开视位置或交点拟合。 - Shadbala Dig 短弧未改(BUG-1270 investigating)。 - 全量 pytest 与改后 v5 的数字已写入上面。快速门没有单独跑过,不写成通过。 - 名人生平回测改后那轮还没跑:要先用本分支引擎重抓卡片。 ## Claude 验收(2026-10-07,Linux,验收工作树 `fb8277bf` 与基线 `5cc8e504`) | 项 | 结果 | | --- | --- | | Python 全量 | 基线 62 失败,`fb8277bf` 66 失败;新增 4 条全部是期望值未更新:`test_user_invocation_acceptance_contract` 两条与 `test_skill_release_clean_trial` 一条(小运起点改为按大运精确时刻排,BUG-1268 补记),`test_rectification_dated_transitions::test_native_scan_golden_matches_real_static_contexts`(扫描金样 D5/D11,BUG-1260 补记)。Windows 记录里的 `test_consultation_native_layers` 在 Linux 上通过 | | 快速门 | **红**(上面金样那条)。Gitea validate run 3211 失败,staging 仍部署 `0ed45a4b` | | npm | 4990 项、失败 24,与基线逐名相同;tsc 0;lint 0 error | | 抽查 | 乔布斯盘 D5/D6/D8/D11、Bhava/Hora/Ghati/Sree/Indu 上升与上游 `23be1807` 一致;Yogini 顺序与结构一致,首段余额差约 0.002 年(月亮约 17 角秒,属岁差细节) | | v5 全表 | 执行方「六题回放 ±10 下降 2.6、线上区间 ±60 下降 1.3」复核无误(列为 ±10 / ±30 / ±60)。全表:先验 +2.6 / +2.6 / +1.3;六题回放 −2.6 / +3.9 / 0;线上区间 0 / +2.6 / −1.3。9 格 5 升 2 平 2 降 | | 产品决定 | 2026-10-07 接受上述评测变化;门禁补修由 Claude 直接执行(分支 `codex/sync6-gate-fix-20261007`:重新生成扫描金样的 `scan`,更新小运起点断言并写三栏,Bug 历史补记) |