docs(tasks): research brief for angle-based timing techniques in rectification (BUG-1141 reserved)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-10-01 10:25:11 +08:00
co-authored by Claude Opus 5.5
parent 209352eb31
commit a6f6f576bb
2 changed files with 80 additions and 0 deletions
+1
View File
@@ -262,6 +262,7 @@
| `TASK-rectification-varga-resolution-fix-20261001.md` | — | **盘型口径修复单**:F1 开案 RPC 42501(推荐包装改 security invoker,禁补属主授权)、F2 Docker 真库全量 test:db + 旧会话可打开、F3 用 `--posterior production` 重生成正式回放文件(Claude 同命令已得差 0)、F4 研究 PG harness、F5 记录。部署须先迁移 | 已执行并验收(Claude 10-01 直接执行:开案 42501 修复、history/harness 改 V10 写轮次、迁移改名 20261001*、正式回放替换;真库替身全量与 staging 一致;真 Docker 复跑与真机待产品) | 基于 review/rectification-varga-resolution-20260930 ce9d669c |
| `TASK-rectification-message-cleanup-20261001.md` | — | **校正消息清理**:题干两遍(作废旧焦点仍打印题干 + 独立问题块再打印一次)→ 一屏一题干;证据轮正文改为「记下了 N 件事」+ 服务端清单可展开;校正结算后不显示「已完成 N 步」与「1.」泄漏。推翻 BUG-917 作废题留题干、VOICE 逐条复述 | 待领取 | BUG-1135~1137 |
| `TASK-rectification-chart-tier-caveats-20261001.md` | `PROGRESS-rectification-chart-tier-caveats-20261001.md` | **报告与聊天标注判断不了的分盘**:采用后读 `active_birth_provenance`(segment-v1)→ 结果 `segment_summary` 档位,blocked/indistinct 的 D9/D10 在聊天 answer_policy 与一句说明、报告章节顶部提示 + 主题降级;旧资料逐字节不变;不改库、不改 consult/route.ts | 已验收(Claude 10-01:存盘分钟头段判定修正后全套门禁对 staging 一致;主题段降级未做——引擎正文无主题→分盘映射,另议;写作模型报告路径生产关闭未接入) | BUG-1138~1139 |
| `TASK-rectification-angle-timing-research-20261001.md` | — | **角度类时间技法研究(离线)**:行运土木罗压本命上升 / 天顶度数、次限推运角、太阳弧角(1° ≈ 4 分钟出生时间),77 例 v5;乱序日期对照 ≥ 50 次必做、留一法、不得挤出真值;显著才叠加到六题后验比头段命中与区间宽度 | 待领取 | BUG-1141 |
| `TASK-rectification-typed-event-scoring-research-20260929.md` | `PROGRESS-rectification-typed-event-research-20260929.md` | **打字经历按选择题规则计分(离线研究,不上线)**:计分通道不对称 + 已入账年份挡题;R0 学业质量题措辞 / 年精度显示成 1 月(冻结文件,需重新冻结) | 已验收(Claude 2026-09-29 合并验收:全量前端 4302/24 与基线同 24 条环境失败、tsc 0、lint 0 error、`/` Static、gzip +0.16%、快速门 pytest 1001 passed、两份回放复跑一致),待部署核对 | BUG-1088、1089 |
| `TASK-report-reader-polish-20260929.md` | `PROGRESS-report-reader-polish-20260929.md` | **报告页打磨**:生成入口挪进页面主体(删标题栏按钮)、详情页到底部按钮(懒渲染一次到底)、导出按钮带文字、目录一级/二级分层、去掉「字段」与 RL/NL 缩写表头、状态列同义重复去重、报告表格淡底色、分块导出显示真实文件大小 | Claude 直接执行并自验(tsc 0、lint 0 error、全量 fail 与基线同 24 条、`/` Static、gzip +7 B、快速门 Python 1000 passed),已部署 staging `d7772011`,真机欠 | BUG-1092~1094 |
| `TASK-report-english-edition-20260929.md` | `PROGRESS-report-english-edition-20260929.md` | **报告中英两版**:同一次引擎计算渲染 zh/en 两遍(不用模型翻译),瑜伽库 477 条补英文、模板与前端表头英文化;中文逐字节不变、英文零汉字、两版数字序列一致;阅读页 `?lang=en` 切换,导出当前语言 + 「问 AI 建议导出英文版」提示;旧报告不补英文 | Claude 直接执行(含两个 fork 子代理)并自验(tsc 0、lint 0 error、全量 fail 与基线同 24 条、`/` Static、gzip +0.06%、Python 定向全绿),已部署 staging `d7772011`,真机欠 | — |
@@ -0,0 +1,79 @@
# 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。