research(d60): G1 stops on a production mapping mismatch (BUG-1497, BUG-1498, issue #149)

The D60 ascendant of the production classical_local mapping agrees with
PyJHora on 33 of 77 recorded times (42.9%). All 44 mismatches are 1-based
even signs and differ by exactly one sign; the repository's own vedastro
mode agrees with PyJHora on 77 of 77.

So G1 fails the 95% gate, but the cause is the production mapping rule in
scripts/varga.py, not a missing D60 signal. BUG-1498 records the
inconsistency as investigating. G2-G5 did not run and no scoring rule was
registered.

jyotishganit is not installed here and VedAstro was not called, so the
reconciliation is single-engine and says so.
This commit is contained in:
jesse-ux
2026-10-28 20:02:43 +08:00
parent 3bbf58e984
commit 98be2649ac
3 changed files with 870 additions and 2 deletions
+18 -1
View File
@@ -20457,9 +20457,26 @@
- 现象:竞品宣传「证据够密时 D60 与纳迪分盘反向校准,收束时刻可以到秒」。纳迪那一半已在 BUG-1240 证伪(N3 ±10 窗口找回记录分钟 5/77,生产 25/77;N4 只换岁差 73/73 换段);D60 这一半从未在 v5 77 例已知出生时间上检验。
- 触发条件:用 D60 换格给候选分段打分,或对外宣称「到秒」。
- 根因:未验证的技法被当成能力宣传;我方没有 D60 换格的评分实现,也没有对照实验。
- 修复:(进行中)先做 G1 三引擎对账,再按 G2–G5 双向对比;结论出来前生产代码、技法路由、对外文案都不动。
- 修复:(进行中)G1 已跑:生产 D60 上升与 PyJHora 只一致 33/77(42.9%),本仓 `mode='vedastro'` 的 D60 与 PyJHora 77/77。
失败原因是本仓生产 D60 映射本身(见 BUG-1498),不是「D60 没有信号」;G2–G5 暂缓,先把映射口径定下来再重跑 G1。结论出来前生产代码、技法路由、对外文案都不动。
- 验证:待研究单 `docs/tasks/TASK-rectification-d60-two-way-20261028.md` 的 G1–G5 全部有结论后回填;不过门就写 `closed_by_design` 并附对外口径。
- 防复发:研究单写死「先登记再跑、真值不可见、必须有安慰剂、负结果照写」。
- 关联:BUG-1240、BUG-560、BUG-1090、BUG-1091。
- 复发自:无。
- 修复版本:分支 `codex/rectification-d60-two-way-20261028`(研究单,未合入)。
## BUG-1498 | 生产 D60 映射把 1-based 偶数星座整体后移一个星座
- 状态:investigating
- 首次发现 / 最近更新:2026-10-28 / 2026-10-28(issue #149,G1 三引擎对账)
- 影响面:`scripts/varga.py::varga_map` 的 D60 分支(生产默认 `classical_local` 模式)。技法路由目前写「D60 只作参考」,不进校正打分。
- 现象:v5 的 77 例已知出生时间里,生产 D60 上升星座与 PyJHora(traditional Parasara,from sign)只一致 33 例;其余 44 例全部差 +1 个星座,且 44 例全是 1-based 偶数星座(金牛、巨蟹、处女、天蝎、摩羯、双鱼)。本仓 `mode='vedastro'` 的 D60 映射与 PyJHora 77/77 一致。
- 触发条件:读取生产 D60(`calc_varga(lon, 60)` 默认模式)。
- 根因:`varga_map` 的 D60 分支是 `(si+pi)%12 if o else (si+1+pi)%12`(`o` 为 1-based 奇数星座),对 1-based 偶数星座加 1;同文件 vedastro 映射是 `(si+pi)%12`。两套内部映射不一致,外部引擎与 vedastro 那套一致。哪一套符合来源尚未裁决,不预设 classical 就是错。
- 修复:未修。研究单红线要求生产代码零改动;要先按经典来源(BPHS / Raman)确认偶数星座是否真的从下一星座起算,再决定改映射还是改文档。
- 验证:`docs/research/d60_two_way_results_2026_10_28.json`(77 例逐条:上升经度、两套本仓 D60、PyJHora D60、是否一致)。
- 防复发:给 D60 补一条映射测试,锁定与外部引擎一致的规则;classical 与 vedastro 两种模式要么一致,要么在注释里写明来源差异。
- 关联:BUG-1497。
- 复发自:无。
- 修复版本:未修。
@@ -0,0 +1,833 @@
{
"task": "docs/tasks/TASK-rectification-d60-two-way-20261028.md",
"issue": 149,
"bug": "BUG-1497",
"gate": "G1 three-engine D60 reconciliation",
"generated_at_utc": "2026-10-28T12:02:20.260551+00:00",
"dataset": {
"path": "references/real_case_calibration/minute_rectification_holdout_v5.json",
"sha256": "ab365a3e3f4953d4b538f2c0889dc98ab89444a28340c3a7b29e2a864cdd687a",
"cases": 77
},
"profile": {
"ayanamsa": "raman",
"node_mode": "mean",
"house_system": "production compute_chart_data",
"pyjhora_ayanamsa_mode": "Raman",
"pyjhora_chart_method": 1
},
"engines": {
"own_classical_local": "varga.calc_varga(lon, 60) (production default)",
"own_vedastro_mode": "varga.calc_varga(lon, 60, mode='vedastro') (VEDASTRO_RAW_VERIFIED_DIVISIONS includes 60)",
"pyjhora": "jhora.horoscope.chart.charts.divisional_chart(jd, place, divisional_chart_factor=60), Lagna entry",
"jyotishganit": "blocked: not installed in this environment",
"vedastro": "blocked: no live call made in this run"
},
"result": {
"cases": 77,
"classical_matches": 33,
"classical_rate": 0.4286,
"vedastro_matches": 77,
"vedastro_rate": 1.0,
"mismatch_delta_histogram": {
"0": 33,
"1": 44,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0
},
"mismatches_by_asc_sign_parity": {
"odd_1based": {
"cases": 33,
"matches": 33
},
"even_1based": {
"cases": 44,
"matches": 0
}
},
"gate_passed": false,
"gate_threshold": ">=95% agreement with at least one external engine",
"stop_rule": "G1 failing stops G2-G5 per the brief"
},
"finding": "The production classical D60 mapping shifts every 1-based even sign by one sign relative to PyJHora; the repository's own vedastro-mode D60 mapping agrees with PyJHora on all 77 cases. No scoring gate was run.",
"instances": [
{
"case_id": "albert_brooks_1947_aa_v4_holdout",
"asc_sign_idx": 2,
"ascendant_longitude": 71.1909,
"d60_classical": 0,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "andrew_windsor_1960_aa_v4_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 109.6959,
"d60_classical": 7,
"d60_vedastro_mode": 6,
"d60_pyjhora_method1": 6,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "angelina_jolie_1975_aa_v4_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 96.8001,
"d60_classical": 5,
"d60_vedastro_mode": 4,
"d60_pyjhora_method1": 4,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "barack_obama_1961_aa_v4_holdout",
"asc_sign_idx": 9,
"ascendant_longitude": 296.1798,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "bernd_eichinger_1949_aa_v4_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 107.0009,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "chad_everett_1937_aa_v4_holdout",
"asc_sign_idx": 8,
"ascendant_longitude": 269.6959,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "elizabeth_montgomery_1933_aa_v4_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 162.7012,
"d60_classical": 7,
"d60_vedastro_mode": 6,
"d60_pyjhora_method1": 6,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "elizabeth_taylor_1932_aa_v4_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 231.7983,
"d60_classical": 3,
"d60_vedastro_mode": 2,
"d60_pyjhora_method1": 2,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "iwao_takamoto_1925_aa_v4_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 216.2833,
"d60_classical": 8,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "john_robbins_1947_aa_v4_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 149.6725,
"d60_classical": 3,
"d60_vedastro_mode": 3,
"d60_pyjhora_method1": 3,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "joseph_kennedy_iii_1980_aa_v4_holdout",
"asc_sign_idx": 1,
"ascendant_longitude": 59.9029,
"d60_classical": 1,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "kurt_cobain_1967_aa_v4_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 151.3987,
"d60_classical": 8,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "pablo_picasso_1881_aa_v4_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 104.8722,
"d60_classical": 9,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "paul_ryan_1970_aa_v4_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 218.6428,
"d60_classical": 1,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "salma_hayek_1966_aa_v4_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 145.4799,
"d60_classical": 6,
"d60_vedastro_mode": 6,
"d60_pyjhora_method1": 6,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "sean_lennon_1975_aa_v4_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 113.2594,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "sigmund_freud_1856_aa_v4_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 199.7737,
"d60_classical": 9,
"d60_vedastro_mode": 9,
"d60_pyjhora_method1": 9,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "steve_reich_1936_aa_v4_holdout",
"asc_sign_idx": 0,
"ascendant_longitude": 9.9031,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "tiger_woods_1975_aa_v4_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 152.3435,
"d60_classical": 10,
"d60_vedastro_mode": 9,
"d60_pyjhora_method1": 9,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "tom_kennedy_1927_aa_v4_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 135.3649,
"d60_classical": 10,
"d60_vedastro_mode": 10,
"d60_pyjhora_method1": 10,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "adriana_lima_1981_aa_v5_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 234.5927,
"d60_classical": 9,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "agatha_christie_1890_aa_v5_holdout",
"asc_sign_idx": 8,
"ascendant_longitude": 242.6992,
"d60_classical": 1,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "albert_einstein_1879_aa_v5_holdout",
"asc_sign_idx": 2,
"ascendant_longitude": 80.9181,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "alberto_fujimori_1938_aa_v5_holdout",
"asc_sign_idx": 1,
"ascendant_longitude": 30.0607,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "arthur_conan_doyle_1859_aa_v5_holdout",
"asc_sign_idx": 1,
"ascendant_longitude": 59.3382,
"d60_classical": 0,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "audrey_hepburn_1929_aa_v5_holdout",
"asc_sign_idx": 10,
"ascendant_longitude": 307.1967,
"d60_classical": 0,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "ayrton_senna_1960_aa_v5_holdout",
"asc_sign_idx": 9,
"ascendant_longitude": 289.3969,
"d60_classical": 0,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "barbra_streisand_1942_aa_v5_holdout",
"asc_sign_idx": 11,
"ascendant_longitude": 346.7636,
"d60_classical": 9,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "beyonce_1981_aa_v5_holdout",
"asc_sign_idx": 0,
"ascendant_longitude": 6.8595,
"d60_classical": 1,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "bob_dylan_1941_aa_v5_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 238.7367,
"d60_classical": 5,
"d60_vedastro_mode": 4,
"d60_pyjhora_method1": 4,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "brigitte_bardot_1934_aa_v5_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 233.8797,
"d60_classical": 7,
"d60_vedastro_mode": 6,
"d60_pyjhora_method1": 6,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "bruce_lee_1940_aa_v5_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 224.6155,
"d60_classical": 1,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "catherine_deneuve_1943_aa_v5_holdout",
"asc_sign_idx": 8,
"ascendant_longitude": 259.5116,
"d60_classical": 11,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "charles_de_gaulle_1890_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 181.278,
"d60_classical": 8,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "cher_1946_aa_v5_holdout",
"asc_sign_idx": 2,
"ascendant_longitude": 76.9514,
"d60_classical": 11,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "clint_eastwood_1930_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 207.1468,
"d60_classical": 0,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "daniel_barenboim_1942_aa_v5_holdout",
"asc_sign_idx": 9,
"ascendant_longitude": 292.2015,
"d60_classical": 6,
"d60_vedastro_mode": 5,
"d60_pyjhora_method1": 5,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "diane_cilento_1932_aa_v5_holdout",
"asc_sign_idx": 9,
"ascendant_longitude": 290.6112,
"d60_classical": 3,
"d60_vedastro_mode": 2,
"d60_pyjhora_method1": 2,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "dingdong_dantes_1980_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 181.5986,
"d60_classical": 9,
"d60_vedastro_mode": 9,
"d60_pyjhora_method1": 9,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "donald_trump_1946_aa_v5_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 128.3089,
"d60_classical": 8,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "edith_piaf_1915_aa_v5_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 212.402,
"d60_classical": 0,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "elvis_presley_1935_aa_v5_holdout",
"asc_sign_idx": 7,
"ascendant_longitude": 230.8658,
"d60_classical": 1,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "francois_hollande_1954_aa_v5_holdout",
"asc_sign_idx": 1,
"ascendant_longitude": 46.0748,
"d60_classical": 10,
"d60_vedastro_mode": 9,
"d60_pyjhora_method1": 9,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "frida_kahlo_1907_aa_v5_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 122.4798,
"d60_classical": 8,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "george_w_bush_1946_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 105.4441,
"d60_classical": 10,
"d60_vedastro_mode": 9,
"d60_pyjhora_method1": 9,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "gisele_bundchen_1980_aa_v5_holdout",
"asc_sign_idx": 8,
"ascendant_longitude": 263.6478,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "gustavo_kuerten_1976_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 92.6966,
"d60_classical": 9,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "imelda_marcos_1929_aa_v5_holdout",
"asc_sign_idx": 2,
"ascendant_longitude": 77.1545,
"d60_classical": 0,
"d60_vedastro_mode": 0,
"d60_pyjhora_method1": 0,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "janis_joplin_1943_aa_v5_holdout",
"asc_sign_idx": 10,
"ascendant_longitude": 303.9231,
"d60_classical": 5,
"d60_vedastro_mode": 5,
"d60_pyjhora_method1": 5,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "jennifer_aniston_1969_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 182.6838,
"d60_classical": 11,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "jimi_hendrix_1942_aa_v5_holdout",
"asc_sign_idx": 8,
"ascendant_longitude": 243.0694,
"d60_classical": 2,
"d60_vedastro_mode": 2,
"d60_pyjhora_method1": 2,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "johnny_depp_1963_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 110.5385,
"d60_classical": 9,
"d60_vedastro_mode": 8,
"d60_pyjhora_method1": 8,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "judy_garland_1922_aa_v5_holdout",
"asc_sign_idx": 2,
"ascendant_longitude": 79.5603,
"d60_classical": 5,
"d60_vedastro_mode": 5,
"d60_pyjhora_method1": 5,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "juscelino_kubitschek_1902_aa_v5_holdout",
"asc_sign_idx": 9,
"ascendant_longitude": 274.8708,
"d60_classical": 7,
"d60_vedastro_mode": 6,
"d60_pyjhora_method1": 6,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "kamala_harris_1964_aa_v5_holdout",
"asc_sign_idx": 2,
"ascendant_longitude": 62.5086,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "leonardo_dicaprio_1974_aa_v5_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 161.0553,
"d60_classical": 4,
"d60_vedastro_mode": 3,
"d60_pyjhora_method1": 3,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "lionel_messi_1987_aa_v5_holdout",
"asc_sign_idx": 9,
"ascendant_longitude": 282.7709,
"d60_classical": 11,
"d60_vedastro_mode": 10,
"d60_pyjhora_method1": 10,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "lou_diamond_phillips_1962_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 116.2537,
"d60_classical": 8,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "manuel_puig_1932_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 186.6657,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "marilyn_monroe_1926_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 111.6899,
"d60_classical": 11,
"d60_vedastro_mode": 10,
"d60_pyjhora_method1": 10,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "meryl_streep_1949_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 101.0442,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "miley_cyrus_1992_aa_v5_holdout",
"asc_sign_idx": 1,
"ascendant_longitude": 36.3265,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "muhammad_ali_1942_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 117.9238,
"d60_classical": 11,
"d60_vedastro_mode": 10,
"d60_pyjhora_method1": 10,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "nicolas_sarkozy_1955_aa_v5_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 154.3377,
"d60_classical": 2,
"d60_vedastro_mode": 1,
"d60_pyjhora_method1": 1,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "pele_1940_aa_v5_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 137.9234,
"d60_classical": 3,
"d60_vedastro_mode": 3,
"d60_pyjhora_method1": 3,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "piolo_pascual_1977_aa_v5_holdout",
"asc_sign_idx": 4,
"ascendant_longitude": 132.9944,
"d60_classical": 5,
"d60_vedastro_mode": 5,
"d60_pyjhora_method1": 5,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "prince_1958_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 204.8647,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "rafael_nadal_1986_aa_v5_holdout",
"asc_sign_idx": 6,
"ascendant_longitude": 197.6444,
"d60_classical": 5,
"d60_vedastro_mode": 5,
"d60_pyjhora_method1": 5,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "rudy_fernandez_1952_aa_v5_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 178.9455,
"d60_classical": 3,
"d60_vedastro_mode": 2,
"d60_pyjhora_method1": 2,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "salvador_dali_1904_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 91.157,
"d60_classical": 6,
"d60_vedastro_mode": 5,
"d60_pyjhora_method1": 5,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "serena_williams_1981_aa_v5_holdout",
"asc_sign_idx": 0,
"ascendant_longitude": 11.0106,
"d60_classical": 10,
"d60_vedastro_mode": 10,
"d60_pyjhora_method1": 10,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "silvio_santos_1930_aa_v5_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 152.8918,
"d60_classical": 11,
"d60_vedastro_mode": 10,
"d60_pyjhora_method1": 10,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "sophia_loren_1934_aa_v5_holdout",
"asc_sign_idx": 8,
"ascendant_longitude": 253.9547,
"d60_classical": 11,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "venus_williams_1980_aa_v5_holdout",
"asc_sign_idx": 5,
"ascendant_longitude": 171.3938,
"d60_classical": 0,
"d60_vedastro_mode": 11,
"d60_pyjhora_method1": 11,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "vincent_van_gogh_1853_aa_v5_holdout",
"asc_sign_idx": 3,
"ascendant_longitude": 90.7335,
"d60_classical": 5,
"d60_vedastro_mode": 4,
"d60_pyjhora_method1": 4,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
},
{
"case_id": "whitney_houston_1963_aa_v5_holdout",
"asc_sign_idx": 10,
"ascendant_longitude": 316.5233,
"d60_classical": 7,
"d60_vedastro_mode": 7,
"d60_pyjhora_method1": 7,
"classical_matches_pyjhora": true,
"vedastro_matches_pyjhora": true
},
{
"case_id": "zinedine_zidane_1972_aa_v5_holdout",
"asc_sign_idx": 1,
"ascendant_longitude": 36.9097,
"d60_classical": 3,
"d60_vedastro_mode": 2,
"d60_pyjhora_method1": 2,
"classical_matches_pyjhora": false,
"vedastro_matches_pyjhora": true
}
]
}
@@ -31,9 +31,27 @@
规则定了之后才写 `docs/research/d60_two_way_preregistration_2026_10_28.json` 并单独 commit,然后才第一次在 v5 上跑(红线 1)。
## G1 三引擎 D60 对账(已跑,门不过)
结果 JSON:`docs/research/d60_two_way_results_2026_10_28.json`(77 例逐条:上升经度、本仓两套 D60、PyJHora D60、是否一致)。
| 引擎 | 与生产 D60 一致的例数 | 比例 |
| --- | ---: | ---: |
| 本仓生产 `classical_local`(默认) | 33 / 77 | 42.9% |
| 本仓 `mode='vedastro'` | 77 / 77 | 100% |
| PyJHora(traditional Parasara, from sign) | 作为对账基准 | — |
| jyotishganit | `blocked`:本机未安装 | — |
| VedAstro | `blocked`:本次没有联网调用 | — |
- 差的 44 例全部是 **1-based 偶数星座**(金牛、巨蟹、处女、天蝎、摩羯、双鱼),差值恒为 +1 个星座;一致的 33 例全部是 1-based 奇数星座。
- 根因在 `scripts/varga.py::varga_map` 的 D60 分支(`(si+pi)%12 if o else (si+1+pi)%12`),同文件的 vedastro 映射是 `(si+pi)%12`,与 PyJHora 一致。**这是生产映射的口径问题,不是「D60 没有信号」**,已登记 BUG-1498(investigating)。
- 门要求「与至少一个外部引擎一致 ≥ 95%」,实际 42.9%(生产口径)→ **G1 判不过**,按任务书 G2–G5 全部停。没有跑任何计分,也没有据此改规则。
## 还没做
G1–G5、模型端到端对比、MEVG、报告:全部 `not_started`。没有产生任何结果数字,也没有据此改任何规则。
G2–G5、模型端到端对比、MEVG、报告:全部 `not_started`(G1 不过,按门停止)。
下一步要产品/规划定:D60 映射是修 `varga.py`(改生产、要重新冻结)还是改文档承认这是另一种口径。定了之后重跑 G1;G1 过了才写 G2–G5 的先登记 JSON。
## 环境缺口