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>
7.5 KiB
进度: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_BUDGET448 → 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。
接线与上游的两处差异
- 捕获
(ImportError, KeyError, TypeError, ValueError)时logger.warning记下异常类和信息,reason写成f'{exc.__class__.__name__}: {exc}'。这几类失败在 helper 内返回 blocked,不会抛进 full-reading 外层的except Exception,因此不会把整个modules.jaimini带掉。 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)。