Files
Jyotisha/docs/tasks/TASK-upstream-sync9b-20261028.md
T
Jesse_ChenandClaude 2243220841 docs(tasks): upstream sync 9 batch B brief (agent loop, issue #159)
Product chose A on #159: change the frozen varga.py for the five Sarpa
drekkanas and the 22nd drekkana, and refreeze only on identical 20/900
rectification scores. Narayana AD strength (B2) is deferred: our code
has no strength-profile family for it to propagate.

Co-Authored-By: Claude (agent loop) <noreply@anthropic.com>
2026-10-28 15:46:21 +08:00

5.2 KiB
Raw Blame History

TASK · 上游同步第九轮乙批:Sarpa Drekkana 与第 22 号 Drekkana(2026-10-28)

  • 日期:2026-10-28
  • 来源:issue #159(#141 乙批)。产品 10-28 选 A:改冻结文件,生时校正 20 条 + 900 条分数逐条相同才重新冻结。
  • 执行方:Grok(Windows + Docker),分支 codex/upstream-sync9b-20261028,只推这个分支(本任务书就是该分支第一个提交)
  • 验收:Claude(Linux)
  • BUG 编号:开工时按 docs/BUG_HISTORY.md 全文件取最大号 +1(写作时 staging 最大号 BUG-1492;另一会话仍在占号,开工当时再核对)。本单预计 2 个号。

1. 基线

  • 基线 commit:origin/staging 12eb7018(#141 甲批与 #137 都已在其中)。
  • 上游:732642856/yinduzhanxing main 的 50847e57(10-16)。按语义移植,不整文件覆盖。

2. 事故实证(上游测试放到 12eb7018 上跑)

项 上游测试结果 我方现状 来源
B1a Sarpa Drekkana test_varga_bphs.py 3 败 14 过;test_sarpa_drekkana_precision.py 4 败 2 过 scripts/varga.py::SARPA_DREKKANA_SIGNS 只有 Cancer-2、Scorpio-1、Pisces-3 三段;calc_sarpa_drekkana 先把度数四舍五入到 4 位再算第几个 Drekkana,边界附近会划错 Raman《Hindu Predictive Astrology》Drekkana 章:五段(Cancer-2、Cancer-3、Scorpio-1、Scorpio-2、Pisces-3)
B1b 第 22 号 Drekkana 同上 scripts/varga.py::calc_22nd_drekkana 取 D3 星座 +21 《Crux of Vedic Astrology》p.329:是 D3 的第 8 宫,即 +7。数 21 个十度分段 ≠ 在 D3 里移 21 个星座

下游:jyotish_engine.py 完整解读的特殊点(calc_sarpa_drekkana)→ 前端报告事实表 report-fact-tables.ts 的 Sarpa Drekkana 行;第 22 号 Drekkana 进完整解读的敏感点。

3. 根因

前八轮同步与 #141 甲批都没有取上游 main 10-16 的这一提交(#141 甲批因冻结文件把它留到乙批)。

4. 决策记录

  1. 产品 10-28 在 #159 选 A:允许改冻结文件 scripts/varga.py;改完跑生时校正 20 条 + 900 条,逐条相同才重新冻结为 upstream_sync9b_2026_10_28,沿用第八轮 79f6ac52 的做法。有任何一条不同:停,不重新冻结,回报「需拍板」。
  2. B2(Narayana 小运强度口径)本单不做。 规划时核实:上游 6859b263 只是把已选的 strength_profile 往下传,但这个强度口径家族(rath_*、pvr_* 等)来自上游 09-27 的 5b57949c,我方从未移植;默认口径下结果不变。是否移植整套口径另由产品决定(已在 #159 说明)。
  3. 用户可见变化已知并接受:部分盘 Sarpa Drekkana 标记会多出来(Cancer 第 3、Scorpio 第 2 段);第 22 号 Drekkana 的星座会变。

5. 硬红线

  1. 只改 scripts/varga.py 里 SARPA_DREKKANA_SIGNS、calc_sarpa_drekkana、calc_22nd_drekkana 三处;varga.py 其他函数逐字节不变(PROGRESS 贴 git diff --stat 与函数级 diff 说明)。
  2. 生时校正 20 条(scripts/research/sealed_holdout_rerun.py)+ 900 条(scripts/research/reported_offset_sweep.py --json):先不带 --freeze 跑出结果、与 docs/research/*upstream_sync8_2026_10_18.json 逐条比;全部相同后才按脚本自带的 --freeze 写新冻结记录(不覆盖旧记录)。
  3. 不改其他冻结文件;不改 .gitea/workflows/**、数据库、前端。
  4. 上游断言数值不得放宽;接口名不同只改调用方式。
  5. 公开仓库:测试只用公开或虚构出生资料。

6. 任务分解

任务 内容 验收标准
T1 Sarpa 五段 + 不经四舍五入判段(50847e57) 上游两个测试文件中 Sarpa 相关全过;definition 字段改为五段
T2 第 22 号 Drekkana +7(50847e57) 上游相关断言过;完整解读里该敏感点的字段名不变
T3 校正回放与重新冻结(红线 2) 20/20、900/900 相同;新 .freeze.json 两份 + 回放 JSON 两份;tests/test_sealed_holdout_contract_freshness.py 全过
T4 上游配套文档 docs/research/sensitive_point_drekkana_count_review_2026_10_14.md 原路径放入;BUG_HISTORY 2 条、CHANGELOG、PROGRESS、docs/tasks/README.md 状态板 —

7. 让步顺序

T1、T3、T4 必做;T2 若与我方敏感点结构冲突,回报原因、不硬改。

8. 验收命令

检查 Grok 自跑 Claude 验收
上游两个测试文件(放 tests/test_upstream_sync9b_*.py) 必跑 复验
tests/test_varga*.py、tests/test_cli_smoke.py -k "sarpa or drekkana or special"、tests/test_sealed_holdout_contract_freshness.py 必跑 复验
校正 20 + 900 回放 必跑 复验
前端 report-fact-tables.test.ts 不跑(未改前端) 跑
Python 快速门 不跑 以 Claude 为准

9. 开工前置命令

git fetch origin
git worktree add .worktrees/upstream-sync9b-20261028 codex/upstream-sync9b-20261028
python scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45
grep -o 'BUG-[0-9]\+' docs/BUG_HISTORY.md | sort -t- -k2 -n | tail -1
git fetch upstream main && git show 50847e57

10. 真机

docs/testing/upstream-sync9b-20261028.md。