Files
Jyotisha/docs/tasks/PROGRESS-upstream-sync6-20261007.md
T
jesse-ux fb8277bfcc
Independent Staging Quality Gate / validate (push) Failing after 16m48s
Independent Staging Quality Gate / publish (push) Skipped
docs(tasks): record sync6 gate numbers before the requested push
The product owner asked to push this branch after two v5 cells
dropped by more than one percentage point. Scoring was not tuned.
2026-10-07 22:28:43 +08:00

16 KiB
Raw 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 的数字已写入上面。快速门没有单独跑过,不写成通过。
  • 名人生平回测改后那轮还没跑:要先用本分支引擎重抓卡片。