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

80 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 不做,直接写结论。
## 开工前置命令
```bash
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。