Files
Jyotisha/docs/tasks/TASK-rectification-nearest-boundary-opening-20261012.md
T

7.7 KiB
Raw Blame History

TASK · 生时校正开场:先说记录时间离最近分界多近,首轮只问这条分界两侧的不同(BUG-1307,2026-10-12)

  • 基线:origin/staging @ fddddaab(已部署代码 de4cfeb8)。
  • 分支 / worktree:codex/rectification-nearest-boundary-opening-20261012 / .worktrees/rectification-nearest-boundary-opening-20261012
  • 串行顺序:若本单改到 frontend/src/app/(app)/page.tsx、frontend/src/hooks/use-rectification-surface.ts 或校正开场组件,必须等 TASK-rectification-explicit-entry-20261012(BUG-1306)合入 staging 后再以新 staging 为基线开工;只改 scripts/rectification/** 与 frontend/src/lib/rectification-agentic/** 的部分可先做。与 TASK-rectification-d12-parent-probes-research-20261012 无文件交叉,可并行。
  • BUG 编号:本单为 BUG-1307(已建记录,状态 open)。另发现的问题从开工时 docs/BUG_HISTORY.md 最大号顺延。

1. 事故实证

产品 10-12 拿上游 Skill(占星师本机运行)的一次校正和我们比较,认为上游「步骤短很多,还能出结果」。样例是一例私人资料,本单只记相对时刻。

上游的做法:以记录时间为锚扫描前后 30 分钟,找到最近的分盘换段点,在记录时间前约 17 秒。然后列出两侧不同的层(父母盘、事业盘、居住盘,本命上升星座不变),只问这几层的区别,五道是非题。

同一样例的 PM 复算(Swiss Ephemeris,Raman,与上游两份文件的日期在一天内一致),看用户一件「某年某月」的经历落在哪个子运小段:

出生时刻(相对记录时间) 该月所处小段
前 8 分钟 月初 4 天为金星,之后为太阳
前 4 分钟(上游自己的点估计) 太阳 → 月亮
前 30 秒 太阳 → 月亮
记录时间 太阳 → 月亮

同一输入,上游两次会话结论相反:一次「保留记录时间,没有足够依据改」;一次「记录时间是错的,真实时间在记录前 13 分钟到前 17 秒之间」。后一份的事件论据与它自己的点估计矛盾(见上表),实际只靠一条父母事实的事后解读。

结论:上游值得借的是呈现与选题顺序:用户一听就懂「为什么要答这几道题」,题也少。不借的是秒级口径和「记录时间是错的」。

我方现状(fddddaab,行号按符号定位,执行方开工先复核):

位置 现状
scripts/rectification/refinement_packet.py window_scan 逐分钟扫描 11 层(D1/D9/D10/D4/D5/D7/D12/D24/D2/D11/D30)及展示层,输出 transitions(层、时刻、前后星座)。不以记录时间为锚,不算记录时间离最近换段点多远
同文件 nakshatra_boundary 只看代表分钟的上升离星宿交界多近,出性格类二选一,不是分盘换段
同文件 precision_stage 按 D1→D9→D10→D4→D5/D24 顺序给「还差什么」,与记录时间无关
frontend/src/lib/rectification-agentic/core/segment-summary.ts 段汇总只对 D1/D9/D10(TARGET_CHARTS),按领域取盘(targetChartsForDomain)
frontend/src/lib/rectification-agentic/core/segment-probe-order.ts 按段信息增益排题,窗口 ≤61 分钟默认开(BUG-1143/1144);只排序,不限定题目范围
frontend/src/lib/rectification-agentic/birth-time-provenance.ts reportedTimeOffsetCopy 用户能看到的「记录时间」只出现在交付时,说的是记录时间与交付区间差几分钟,不是与分界的距离

用户在开场看不到「记录时间离分界多近、两侧哪里不同」。

2. 根因

扫描数据已经有了,但从没以记录时间为锚组织过:开场不讲,选题面向整个窗口,所以用户感觉步骤多、目的不明。

3. 决策记录(产品 2026-10-12)

  1. 采纳「最近分界开场」:开场告诉用户,记录时间离最近的分盘换段点有多近(以分钟计)、两侧哪几层不同(用人话:父母、工作、住处、婚恋……)。
  2. 记录时间离分界近时,首轮只出能区分这条分界两侧的题,问完再按原流程。「近」的阈值由执行方用 77 例回放定,写进进度记录。
  3. 只改呈现与选题顺序,不改打分。 decision_policy、闸门、4 件 3 域(BUG-1193)、采用门、交付卡档位全部不动。
  4. 对外不说秒级(守 docs/research/rectification_nadi_seconds_2026_10_05.md §8 口径);不出现「记录时间是错的 / 不准」(守 BUG-691「记录优先、分歧并列」)。

4. 硬红线

  1. 不改打分、scripts/rectification/decision_policy.py、闸门常量、4 件 3 域、算法身份;同输入同分。
  2. v5 77 例持久回放(docs/research/varga_resolution_persisted_onoff_after_fix_2026_10_01.json 同法):±10 / ±30 真值段保留不低于 76 / 76;D9、D10 头段命中不低于修后基线;任一格下降即停,报产品。
  3. 用户可见文案不得出现秒、「记录时间错了 / 不准」、「已确认」;距离以整分钟说,不足 1 分钟说「不到 1 分钟」。
  4. 申报方式为 period_only 时没有可比的记录分钟,不出「离分界多近」这一句,走原流程。
  5. 守 AGENTS §6(Home() 状态数、API server 方法数不增长);新文案对照 VOICE.md;改 UI 同提交更新 frontend/DESIGN.md。
  6. 测试总数不低于基线;改既有断言写三栏。

5. 任务分解

T1 以记录时间为锚的分界计算(Python,薄注册)

  • 在 scripts/rectification/ 新模块里,基于 window_scan 的 transitions,给出:记录时间前后最近的换段点(分钟)、该点两侧不同的层清单、各层前后星座。只读已有扫描,不改 window_scan 的输出语义。
  • 验收:Python 定向测试用公开名人 golden 盘(AA 级);记录时间正好在段内、紧贴换段、窗口内无换段三种情况各一条;快速门全量。

T2 开场一句话

  • 校正开场(BUG-1257 开场切片所在处,执行方先定位)加一句:记录时间离最近换段点多近、两侧哪几件事不同,并说明接下来先问这几件。窗口内无换段时说「你填的时间附近这些盘都不换,先从经历开始」。
  • 验收:单测覆盖三种情况与 period_only;文案逐条对照 VOICE.md,不含红线 3 的词。

T3 首轮选题限定在该分界

  • 记录时间离分界在阈值内时,首轮候选题只取能区分两侧的层对应的题(复用现有题库与 segmentInformationGain,不新增题型);问完回到原排序。
  • 阈值用 77 例回放选,候选值至少 3 档(例如 2 / 5 / 10 分钟),逐档报问题数、真值段保留、头段命中。
  • 验收:回放表进进度记录;红线 2 全过才默认开启,否则留开关默认关并报产品。

T4 真机清单

  • docs/testing/rectification-nearest-boundary-opening-20261012.md:用公开名人资料或虚构资料,记录时间紧贴分界与远离分界各走一遍。

6. 让步顺序

T3 回放不过门 → 只上 T1 + T2(呈现),T3 留开关默认关。T2 不可让。

7. 开工前置命令

git fetch origin --prune
git worktree add -b codex/rectification-nearest-boundary-opening-20261012 .worktrees/rectification-nearest-boundary-opening-20261012 origin/staging
grep -oE "^## BUG-[0-9]+" docs/BUG_HISTORY.md | sort -t- -k2 -n | tail -1
export PYTHONHASHSEED=0   # 回放命令见 docs/research/rectification_varga_resolution_2026_09_30.md 附录

门禁:Python 快速门全量、前端 tsc / lint / npm test(失败名单与基线逐条相同)/ build / Static / gzip ±2%。完成后 BUG-1307 改 fixed-pending-verify,写修复、验证与回放数字。