Files
Jyotisha/docs/tasks/PROGRESS-upstream-sync6-20261007.md
Jesse_ChenandClaude Opus 5.5 2df6ee7270
Independent Staging Quality Gate / validate (push) Successful in 14m20s
Independent Staging Quality Gate / publish (push) Successful in 3m51s
test(sync6): regenerate the dated-transition scan golden and move the Saturn/Venus antardasha start (BUG-1260, BUG-1268)
fb8277bf left the quick gate red: the native scan golden still carried the
pre-PVR D5/D11 signs, and the user-invocation contract still expected the
antardasha start laid from the day-truncated mahadasha date. Both values now
come from the real engine; Python full suite is back to the 62-failure
baseline, quick gate passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-10-07 23:04:37 +08:00

17 KiB
Raw Permalink Blame History

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 <files> -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 历史补记)