Files
Jyotisha/docs/tasks/PROGRESS-goel-jaimini-strength-20261022.md
T
jesse-uxGrok (agent loop)Cursor
489ae2fb35 docs: record the Goel Jaimini strength regression
Issue #94 T5. Two hundred fixed-seed fictional charts on mean and true nodes all execute, and the Atmakaraka matches chara_karaka_7. Chinese and English full-data markdown for the three fixed fictional charts is unchanged. The frozen-file intersection is empty.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 01:28:51 +08:00

7.5 KiB
Raw Blame History

进度:Goel Jaimini 强度(issue #94,2026-10-22)

执行分支 codex/goel-jaimini-strength-20261022。工作树 .worktrees/goel-jaimini-strength-20261022。未 push。Python 用 G:\Ferti\Jyotisha\.worktrees\agent-loop\.venv\Scripts\python.exe(本工作树没有 .venv)。core.autocrlf=false。上游只读仓 G:\Ferti\yinduzhanxing-ref,提交 5fb8379c。

做了什么

  • T1:四个上游模块放到 scripts/ 根目录。ROOT_PY_BUDGET 448 → 452,常量旁写了三栏。scripts/*.py 计数 452。
  • T2:测试原样搬入,只把 Niryaana 选择器的 import 改到 scripts.rashi_dashas_native。test_bphs_validation_runtime.py 新增 test_full_reading_exposes_goel_jaimini_strength,用文件里已有的虚构 BASE_BIRTH_ARGS。
  • T3:_goel_jaimini_evidence 接到 cmd_jaimini(mode 为 all 或 special)和 full-reading 写入 modules.jaimini 之前。
  • T4:接线后的口径测试(两种交点政策、七星同度 blocked 且不出 AK / 排序、full-reading 喂给 Goel 的经度)。
  • T5:三张固定虚构盘与 200 张固定种子虚构盘。没有让步缩盘:三张盘 full-reading 均值 5.212 秒,200 张 × 交点两种口径约 34.74 分钟,低于 40 分钟,mean 与 true 都跑了。
  • T6:研究笔记、ERR-116、CHANGELOG。Skill 版本不 bump。

四个 blob

文件 上游 5fb8379c 落地后 git hash-object
scripts/goel_jaimini_strength.py 2170f781740affbad7b8ff4e048b88d87f997bcc d13b3f785a86a17970e450f111d60fc8d52108ac
scripts/trikona_raman.py 1fc9283396acba98b9113bde7af0e27a80841a30 相同
scripts/sthira_brahma_goel_short_method.py 6e010b54f5ba480db3e6d8d79e711a1cc2d59fbf 相同
scripts/trikona_dasha.py e6c8a27cf5e23e5c686154406ba5183226d12d79 相同

goel_jaimini_strength.py 相对上游的 diff 只有 SOURCE 一行,LF。旧值是上游本地书稿路径,没有入库。新值是 SOURCE = 'V. P. Goel, Predicting through Jaimini Astrology'。

测试文件上游 blob e29c47182c03c2277cff46e271a7f664c3349601。相对上游先只改一行:

-from scripts.niryaana_shoola_dasha import select_niryaana_shoola_start_sign
+from scripts.rashi_dashas_native import select_niryaana_shoola_start_sign

T4 在这个文件末尾另加了三条接线测试,不再是单行 diff。

接线与上游的两处差异

  1. 捕获 (ImportError, KeyError, TypeError, ValueError) 时 logger.warning 记下异常类和信息,reason 写成 f'{exc.__class__.__name__}: {exc}'。这几类失败在 helper 内返回 blocked,不会抛进 full-reading 外层的 except Exception,因此不会把整个 modules.jaimini 带掉。
  2. cmd_jaimini 传给 Goel 的经度用 pd.get('degree_raw', pd['degree'])。模拟盘只有 degree 时回退,上游那条特殊点测试仍过。full-reading 本来的 planet_lons 已是 degree_raw,原样传给 Goel。上升点仍用原来的 asc_deg(lon)。

没有把 lagna_seventh_strength / niryaana_shoola_strength 接到 Niryaana 选择或大运。没有改冻结文件、报告渲染、API 主文件、数据库。

T5 数据(全是虚构盘)

三张盘是 tests/test_report_english_edition.py 的 day / night / south。PYTHONHASHSEED=0。

单独计时的 full-reading:day 6.343 秒、night 4.692 秒、south 4.600 秒,均值 5.212 秒。三张都是 executed,Goel AK 与 chara_karaka_7 的 AK 都是同一颗星(Venus / Mercury / Jupiter)。四个新键都在。

改前引擎是接线提交的父本 eb67962d7。改前改后:

检查 结果
中文完整数据版 Markdown 三张 SHA-256 相同(day 1de47056e69f…,night 0415e1a20dfe…,south 51eb80c838cf…)
英文完整数据版 Markdown 三张 SHA-256 相同(day 3e6eaadae15e…,night a36abde746d5…,south adef6214ebbb…)
full-reading 与 cmd_jaimini 的 jaimini,去掉四个新键 SHA-256 相同
改后四个新键 full-reading 与 cmd_jaimini(mode=all)都有,状态 executed
build_domain_facts 选出的对话卡 12 个域 × 3 张盘,规范化 JSON 相同

read_full_data_domain 的原始副本不是逐字节相同。它整份拷贝 worksheets,其中 advanced_systems.jaimini 多了四个新键;这是任务书已经写明的资料包 JSON 变大,正文不印。另外两边还有运行时噪声:审计耗时、缓存时间、PyJHora 年盘快照、一张盘的 Yogini reference_date。去掉四个新键和这些噪声字段后,day / night 还剩 PyJHora 年盘快照差异,south 只剩 reference_date。没有为了抹平这些差异去改渲染或对话卡。

200 张固定种子(Random(20261022),年 1940–2015、日 1–28、纬度 −45~60、经度 −120~150、时区按经度取半小时、岁差在 lahiri / raman / kp 间)。mean 与 true 各 200 次,4 个进程,墙钟 556.6 秒。

项 数
次数 400
goel_full_strength.status == executed 400
blocked 0
AK 与 chara_karaka_7 不一致 0
单次 full-reading 均值 5.537 秒,最小 4.839,最大 7.848
mean / true 均值 5.530 / 5.544 秒

三张盘改前改后的 full-reading 耗时互相重叠(改前均值 5.672 秒,同一次改后 6.069 秒,另一次改后计时 5.212 秒),没有拆出稳定的增量。

冻结身份交集(PRODUCTION_FILES + RESEARCH_FILES + frozen_scoring.files 对上 origin/staging...HEAD)输出是 []。

测试

工作树内 pytest -q。Windows 默认 GBK 标准输出打不出 full-reading 里已有的 emoji(U+1F4D0、U+1F534),test_bphs_validation_runtime.py 两条因此在子进程退出码 1。下面的数字是 PYTHONUTF8=1 再跑的结果。屏蔽 PyJHora 用临时目录的 sitecustomize.py 放在 PYTHONPATH 最前(import jhora 变成 ModuleNotFoundError),没有卸载包。

两次都是 238 条收集、237 通过、1 跳过、0 失败。跳过的是 test_consultation_contract_golden.py 里未设置 JYOTISH_LIVE_CONTRACT_GOLDEN=1 的线上重抓。

文件 结果
tests/test_goel_jaimini_strength.py 22 通过
tests/test_bphs_validation_runtime.py 3 通过
tests/test_python_hygiene_budget.py 2 通过
tests/test_rashi_dashas_native.py 18 通过
tests/test_niryaana_shoola_dasha.py 3 通过
tests/test_jaimini.py 42 通过
tests/test_runtime_jhora_import_scan.py 4 通过
tests/test_api_server_growth_contract.py 9 通过
tests/test_consultation_contract_golden.py 2 通过,1 跳过
tests/test_sealed_holdout_contract_freshness.py 9 通过
tests/test_rectification_validation_integrity_gate.py 22 通过
tests/test_reported_offset_research.py 14 通过
tests/test_rectification_engine_memoization.py 25 通过
tests/test_repo_privacy_markers.py 62 通过(文档提交前再复跑一次)

没有弱化既有断言。没有重冻,没有改冻结记录或 golden。

移交 #91

本单不印报告。交给 #91:

  • 报告印「Goel Jaimini 强度与特殊点」章,中英标签齐全。blocked 的中文写「无法判定」、英文写「Not determinable」,并注明原因(七星度数相同 / 强度相同无唯一选择)。
  • jyotish_engine.py 受限资料 jaimini_special_points.reason 里「Brahma/Maheshwara/Rudra still lack a same-profile structured producer」随印章一并改。
  • 交点两种口径并列印出,标明默认遵循正文(include_nodes_text)。