Files
Jyotisha/docs/tasks/TASK-rectification-angle-timing-research-20261001.md
T

6.8 KiB
Raw Blame History

TASK · 生时校正「角度类时间技法」研究:行运压角 / 次限推运 / 太阳弧(研究单,2026-10-01)

基线

  • origin/staging @ 209352eb(写作时 head;开工时以最新 origin/staging 为准)。
  • 分支 codex/rectification-angle-timing-research-20261001,工作树 .worktrees/rectification-angle-timing-research-20261001。
  • 离线研究,生产代码零改动:不动 sealed_holdout_rerun.py::PRODUCTION_FILES、事件引擎、frontend/、任何常数。新代码只进 scripts/research/ 与 tests/;可只读复用 scripts/western_timing_engine.py、scripts/western_chart_engine.py、scripts/research/varga_resolution_lib.py、scripts/research/scoring_research_lib.py。
  • 数据:references/real_case_calibration/minute_rectification_holdout_v5.json(77 例公开 AA;事件 day 244 / month 143 / year 577)。
  • 本机无 Docker 不影响本单(不碰数据库)。

先读

  • docs/research/rectification_scoring_research_2026_09_29.md(打分层三条 no_benefit:42 个「大运 + 宫位」特征在 v5 上 36~39 个是噪声)
  • docs/research/rectification_varga_resolution_2026_09_30.md(盘型口径基线:六题后头段命中、真值段保留)
  • docs/research/rectification_minute_resolution_closure_2026_09_14.md §1、§7(1 分钟 ≈ 大运边界平移 3.8 天)

事故实证 / 动机

产品 2026-10-01 问「生时校正到底能不能改善」。已证实:现有计分全部是「大运主星 + 宫位 / 分盘宫位」类规则,出生时间差 1 分钟大运边界只挪约 4 天,灵敏度天生不够;数据定权重也救不回来。尚未测过的一类是以度数计的角度技法:

技法 对出生时间的灵敏度
本命上升 / 天顶度数 约 4 分钟 / 1°
行运土星 / 木星压本命上升或天顶度数 土星约 1° / 月、木星约 2.5° / 月 → 记得到月的事件约对应 4~10 分钟
次限推运上升 / 天顶、太阳弧角度 约 1° / 年 → 记得到年的事件约对应 ±2 分钟

物理上灵敏度对路;风险是一生接触很多、事件与接触的对应有歧义(多重比较),所以必须有乱序对照。

根因假设

现有规则缺少「度数级」的时间信号;若角度技法在真实事件日期上的命中显著高于乱序日期,它就能在现有六题之外提供分钟级信息。

决策记录(产品 2026-10-01)

  • 批准离线测三类角度技法;有收益才另立产品单,并由产品决定是否在吠陀产品里作为「计算工具」使用(这类技法主要来自西洋占星的校正传统)。
  • 不改现有六题、出卡时机、盘型交付;新信号只在研究侧与现有后验叠加评估。
  • 打分层(大运 + 宫位)研究已关闭,本单不得重开其权重实验。

硬红线

  1. 乱序对照必做:每例把事件日期在该人的生存期内随机重排(保留精度与领域),重复 ≥ 50 次;任何技法只有在「真实日期」的指标显著优于乱序分布(报百分位,≥ 95% 才算显著)时才可称有信号。
  2. 留一法:所有阈值、容许度(orb)、权重在训练折上定、在留出例上量;同时报全集拟合作对照,只认留一法数字。
  3. 不得挤出真值:与盘型口径基线比,真值段保留(±10 / ±30 / ±60 = 76 / 76 / 75)任何一格不得下降;分钟区间口径下真值在区间不得下降。
  4. 稳健性:事件日期 ±7 天、±1 个月偏移;年精度事件单列;LMT 时代(1900 年前)7 例单列。
  5. 口径:行星与角度用同一黄道(回归或恒星任选其一并写明,相位与黄道选择无关);岁差、交点模式与现有研究一致时写明;容许度候选至少 1° / 2° / 3° 三档。
  6. 生产代码零改动;PYTHONHASHSEED=0,结果 JSON 两次复跑逐字节一致;快速门 Python 部分与基线一致;隐私守卫通过;负结果完整写出。

任务分解

  • A0 特征抽取(BUG-1141):scripts/research/angle_timing_lib.py:对每例每个候选分钟(步长 1 分钟,窗口 ±60)、每件带日期事件,算:
    • TR:事件日行运土星 / 木星 / 罗睺(及日精度事件加火星)对本命上升、天顶的 0° / 90° / 180° 相位离度;
    • SP:次限推运上升、天顶对本命行星(日、月、水、金、火、木、土)的 0° / 90° / 180° 离度;
    • SA:太阳弧推进的上升、天顶对本命行星的同上离度。
    • 事件精度处理:日精度用当天;月精度取该月内最小离度;年精度只用于 SP / SA。
    • 验收:单测(已知名人一例手算核对一个离度;窗口内上升度数随分钟单调变化;精度处理正确)。
  • A1 信号检验:对每个技法 × 容许度,计算「真实日期命中率 vs 乱序分布」(每例:真值分钟的命中数在窗口内所有分钟中的排位;全集:排位均值 vs 乱序百分位)。只把显著(≥ 95 百分位)的技法带入 A2。
    • 验收:表进研究文档;不显著的写 no_signal 并停止该技法。
  • A2 叠加评估:把显著技法的分钟级分数(留一法定权重)叠加到现有六题后验(复用 varga_resolution_lib 的回放与 minute_weights),量:真值段保留、D1 / D9 / D10 头段命中、≤2 段比例、分钟区间宽度中位(同覆盖下)、头名 ±2 分钟命中。与基线逐格比。
    • 验收:六格(3 档 × 有 / 无)表;红线逐格判定。
  • A3 结论:docs/research/rectification_angle_timing_2026_10_01.md:一句话结论表(每技法:信号有无、叠加收益、是否建议进产品)、复跑命令、若有收益写产品单要点(只给结论口径,不写实现);docs/research/ACTIVE_FRONTS.md 索引;定论页追加一节;docs/tasks/PROGRESS-rectification-angle-timing-research-20261001.md;BUG-1141;README 行。

让步顺序

A0 > A1 > A2 > A3 的图表。A1 全部 no_signal 时 A2 不做,直接写结论。

开工前置命令

git fetch origin --prune
git worktree add -b codex/rectification-angle-timing-research-20261001 .worktrees/rectification-angle-timing-research-20261001 origin/staging
cd .worktrees/rectification-angle-timing-research-20261001
export PYTHONHASHSEED=0
python3 -m pytest -q tests/test_varga_resolution_research.py tests/test_scoring_research.py tests/test_repo_privacy_markers.py
python3 -c "import scripts.western_timing_engine as w; print([n for n in dir(w) if not n.startswith('_')])"

BUG 编号

开工时核对 docs/BUG_HISTORY.md 最大号(写作时 BUG-1140;1135~1139 已用)。本单:BUG-1141(校正缺少度数级时间信号,待研究判定)。研究结束按结果改 resolved(有产品单)或 closed_by_design(无信号,附数字)。关联 BUG-1091、BUG-1105。