research(rectification): varga-resolution M1–M3 and robustness on v5 — segment posterior, segment-aware probe order, domain-targeted vargas (BUG-1105)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
f798366f89
commit
52bfbb2ac5
+13
-119
@@ -14906,125 +14906,19 @@
|
||||
- 复发自:无(BUG-1040 的覆盖缺口)
|
||||
- 修复版本:分支 `codex/new-chat-prewarm-20260929`
|
||||
|
||||
## BUG-1105 | 校正目标是分钟而非所需分盘,缺少分盘不可判出口
|
||||
## BUG-1105 | 生时校正目标函数是分钟而非用户要用的分盘;窗内盘型不变的用户被迫答题;无「分盘不可判」出口
|
||||
|
||||
- 状态:investigating(离线研究部分完成;生产未修改,未验收)
|
||||
- 状态:resolved(研究阶段,2026-09-30:v5 77 例上盘型口径成立,建议立实现单;产品层实现另开单)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:生时校正目标、分盘段汇总与按问题域选题;本轮仅 `scripts/research/varga_resolution_*.py`、研究测试与文档。
|
||||
- 用户现象:分钟范围无法收窄时,不知道应使用哪张分盘;目标盘在窗口内不变时仍走分钟校正流程,宽窗口分盘分不开时缺少明确出口。
|
||||
- 触发条件:候选窗口包含多个分钟,但目标盘未变或 D9/D10 存在多个连续上升段。
|
||||
- 根因(产品层研究假设):流程围绕分钟而非目标盘组织,未按事业/婚恋/综合选择目标;是否能以按段汇总或选题改善,尚不能据阶段性结果确定。
|
||||
- 修复:尚未修复;不改生产引擎、评分权重、采用/确认门、前端及冻结文件,不重开 BUG-1091 的打分路线。
|
||||
- 已确认事实:77 例公开 AA,四个半径 M0 首轮 308 个 case-radius 计分对账 changed=0;M1 全量 308 条、errors=0。±60 D9/D10 真值段保留各 74/77,低于任务书既有区间基线 75/77,当前方案不过门。±30 D9/D10 的 LOO 1.000 仅覆盖 11/77、16/77;top 命中包含并列,不能写成唯一段已确定。
|
||||
- 验证:既有 M0 定向 4 passed;M1 smoke/full exit 0;本轮补充测试与门禁证据见 `docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md`。M0 起点表逐格一致性及二次字节复跑未闭环,M2/M3 not_started,M4 仅阶段性报告。
|
||||
- 环境缺口:开工 quick 的 Python 子段通过,但 npm 缺 tsx 导致整体 exit 1;独立 pre-work 因缺历史 WorkBuddy 镜像路径断言而 fail。没有伪造目录或弱化测试。
|
||||
- 防复发:真实保留集合与区间包络分开;保持 LOO 训练/验证隔离、空覆盖、并列与 LMT 分层;低覆盖高准确率不等于全集能力,任何真值段保留下降不得通过调阈值隐藏;全量复跑未完成不得声称字节一致。
|
||||
- 相关记录:BUG-560、BUG-1084、BUG-1090、BUG-1091;`TASK-rectification-varga-resolution-research-20260930.md`
|
||||
- 复发自:无(目标口径研究,不修改既有防复发约束)
|
||||
- 修复版本:未修;研究工作树 `codex/rectification-varga-resolution-research-20260930`。用户要求阶段性归档到 staging;仅提交隐私扫描通过的代码、测试、M1 结果、M0 测试必需小样本与文档,M0 全量原始 JSON / 原始日志不提交。提交不等于研究验收、生产修复或部署;交付范围与门禁失败见 PROGRESS。
|
||||
|
||||
## BUG-1106 | 打开报告详情先闪一个卡在顶部、没有顶栏的转圈,再换成居中的另一个转圈
|
||||
|
||||
- 状态:resolved(代码 + 回归测试 + 本机 Chromium 手机视口截图;iPhone 真机欠)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`app/(app)/reports/[reportId]/loading.tsx`、`personal-report-page.tsx`。
|
||||
- 根因:路由级 `loading.tsx` 自成一套(裸 `<main className="personal-report-state">`,无 `SecondaryHeader`,高度不在面板网格里所以贴顶),页面代码到位后换成阅读页自己的加载态,两套外观。
|
||||
- 修复:新增 `ReportOpening`(顶栏 +居中转圈 +「正在加载报告…」),路由 fallback 与阅读页首个请求都只渲染它。
|
||||
- 验证:`surface-feedback-20260929.test.tsx`;本机 390×844 截图只有一个加载态。
|
||||
- 防复发:路由级 fallback 必须与页面自身的等待态是同一组件。
|
||||
- 相关记录:BUG-1094
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
|
||||
## BUG-1107 | 手机上报告操作栏约 120px 高;分块导出弹窗头部占掉大半,分块列表看不见
|
||||
|
||||
- 状态:resolved(代码 + 回归测试 + 本机 Chromium 手机视口实测;iPhone 真机欠)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`report-actions.tsx`、`report-export-drawer.tsx`、`globals.css`(767px 断点)。
|
||||
- 用户现象(产品真机截图):「返回报告中心」折两行、「中文 / English」与「导出」上下叠放;导出弹窗说明两行、统计两行、套餐折行,下面的分块只露出一格。
|
||||
- 根因:BUG-1094 / 英文版加入按钮时只按桌面宽度排版;导出统计把字数与大小并列成长句。
|
||||
- 修复:手机上返回只留箭头(读屏名不变),语言切换与导出压成一行(实测 119px → 53px);导出弹窗手机上隐藏说明句、统计改一行「已选 n/N 块 · 约 X KB(全篇约 Y KB)」、套餐单行横滑、关闭改 × 图标(读屏名「关闭分块导出」),窄屏上限 70 → 85dvh(列表可见高度 255px → 503px)。
|
||||
- 验证:`surface-feedback-20260929.test.tsx`、`report-export-drawer.test.tsx`(三条断言按三栏更新)。
|
||||
- 相关记录:BUG-1094、TASK-report-english-edition-20260929
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
|
||||
## BUG-1108 | 报告切到 English 后画面仍是中文(真机),且切换会丢失阅读位置
|
||||
|
||||
- 状态:investigating(真机现象本机未复现);阅读位置问题 resolved
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`personal-report-page.tsx`、`personal-report-markdown-view.tsx`。
|
||||
- 用户现象:iPhone Safari 上点 English 后按钮显示已选 English,屏幕上的章节仍是中文;一分钟后打开导出弹窗,分块已是英文章节名。
|
||||
- 已确认事实:staging 下发的前端代码与本机相同(核对了线上 JS 包);本机 Chromium 手机视口用引擎真实中英 golden 复现同一路径(滚到第二、三章后轻点 English),正文立即变英文,无额外网络请求。WebKit 本机缺系统库无法运行。
|
||||
- 推断(未证实):切换会整篇换稿,后面的章节先以占位渲染,阅读中段时页面高度骤减,Safari 可能短暂保留旧画面。
|
||||
- 修复(阅读位置):切换前记下当前章节序号,新版本从第一章到该章立即渲染,再滚回同一章;本机实测中英两版该章停在同一位置。
|
||||
- 防复发:真机复测后更新本条状态;若仍复现需真机录屏与 Safari 版本。
|
||||
- 相关记录:TASK-report-english-edition-20260929
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
|
||||
## BUG-1109 | 首页今日星语靠模型改写,读起来像固定句,还会在同一天里被后台改写换掉
|
||||
|
||||
- 状态:resolved(代码 + 回归测试;未部署)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`app/api/daily-starlanguage/route.ts`、新增 `lib/daily-starlanguage-library.ts`、`lib/home-types.ts`。
|
||||
- 用户现象:产品反馈「标题后面这句好像都是固定的,可以不走大模型,咱们设计一套」。
|
||||
- 根因:路由先用 `composeDailyStarlanguageCard` 按 12 宫主题出一张确定句卡,再 `scheduleAgentPolish` 让模型在后台改写并覆盖同日缓存;模型只拿到「月亮第几宫、大运主星」等几个字段,改写结果同质;覆盖后下一次请求拿到的是另一句,页面上会换字。
|
||||
- 修复:句库 `composeDailyCard`(12 宫 × 3 句 + 4 月相 × 2 尾句 + 每宫 action / caution 各 2 句;无宫位按星座 12 句;再无按旧证据句),路由去掉模型目录读取与模型调用,`source: "library"`。模型 agent 定义(`mastra/index.ts`)保留未删,仍被既有测试引用。
|
||||
- 验证:`frontend/tests/daily-starlanguage-library.test.ts`(6 条:库完整、144 组合全部合法且 ≤90 字、同日同句且相邻日不同、月相与已知新月/满月对得上、未确认出生时间走星座兜底、路由无模型调用);`daily-starlanguage.test.ts` 两处断言按三栏更新。
|
||||
- 防复发:今日星语的句子只来自句库文件;路由测试禁止重新引入模型调用。
|
||||
- 相关记录:BUG-1110
|
||||
- 影响面:校正选题(按分开候选分钟排序)、交付卡(分钟区间 + 最可能分钟)、并列判定(按分钟数);`frontend/src/lib/rectification-agentic/v9/*`、`core/build-state.ts`、`user-copy.ts`。
|
||||
- 用户现象:31 分钟窗答完题范围不动、「最可能的分钟」头名只有 64%(v5);用户真正要的「用哪张盘解读」没有被回答;±30 以上的窗口仍给分钟区间,实际上分盘已不可靠。
|
||||
- 触发条件:任何一次校正。
|
||||
- 根因(已确认):目标函数是「分钟」。分盘上升段远少于候选分钟(±10 时 D9 / D10 平均 2.4 / 2.5 种,候选 11 个),把六题证据按段汇总后,±10 头段 = 真值 D9 88%、D10 86%,头段占比 ≥ 0.6 时留一法 92% / 90%;±30 只有约 1/4–1/3 用户能给可信分盘;±60 真值段保留 74/77 低于基线 75,分盘只能 blocked。
|
||||
- 修复:本条只做研究,不改代码。研究脚本 `scripts/research/varga_resolution_lib.py` / `varga_resolution_probe.py`,结论 `docs/research/rectification_varga_resolution_2026_09_30.md`(§7 实现要点:录入后段扫描、段级汇总、分档文案、按段选题只在 ≤ ±30、按问题域取盘;不改引擎 / 常数 / 冻结文件;六题照问,不提前停)。
|
||||
- 验证:`tests/test_varga_resolution_research.py` 17 passed(含任务书两张表逐格复现);`PYTHONHASHSEED=0` 两次完整运行 JSON 逐字节一致;六题回放与 `fewer_probes_card_replay.evaluate_case` 逐例区间 0 差。
|
||||
- 判定数字:硬红线 1(真值段保留 ≥ 76 / 76 / 75)±10、±30 全过,±60 D9 / D10 不过;按段选题 ±10 D9 68→71、±30 D9 44→48、D10 49→56,真值段保留不降,±60 更差;提前停 0.7 / 0.8 在 ±10 丢 1 例,不过;「不用校正」出口三种策略 0/77,只对只需 D1 的问题成立(±10 64/77);答错 1 题 ±10 保留 98.7%、命中 83–86%。
|
||||
- 防复发:实现单验收用本研究脚本回放,±10 / ±30 真值段保留 76 / 76、头段命中不低于研究文档 §4「按段」列;±60 交付卡不得出现 D9 / D10 推荐;不得用头段占比提前停问。
|
||||
- 另一会话 2026-09-30 08:49 归档的部分研究(staging `bedb4d7b`:M0 首轮 + M1,无复跑、无 M2/M3)已被本记录取代;其 `scripts/research/varga_resolution_m1.py` 与 `artifacts/varga-resolution/` 随本次合并移除。
|
||||
- 相关记录:BUG-560、BUG-1084、BUG-1090、BUG-1091
|
||||
- 复发自:无
|
||||
- 修复版本:分支 `codex/daily-line-library-20260930`
|
||||
|
||||
## BUG-1110 | 从次级页点「新建对话」进首页,今日星语先显示占位句再突然换成真句子
|
||||
|
||||
- 状态:resolved(代码 + 生命周期回归测试;真机欠)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`lib/home-warm-prefetch.ts`、`lib/session-list-context.tsx`。
|
||||
- 用户现象:产品「现在跳转的时候还会突然变一下,很反直觉」。
|
||||
- 根因:BUG-1104 的次级页预取只填模型目录与校正入口摘要,暖快照的今日星语槽位为空;首页暖启动 `warmDaily`(`lib/home-warm-start.ts`)读不到本日卡片即给 `pending`,首帧显示「今天的星语还没写出来。」,随后 `DailyStarlanguageBinder` 请求返回再替换。另一来源是 BUG-1109 的后台模型改写使同日两次请求句子不同。
|
||||
- 修复:预取时再为本人按同一键(人物 + 资料指纹 + 当地日期)调用同一个 `fetchDailyStarlanguage`,结果写入 `rememberHomeWarmDaily` 与本地存储;失败或无卡片不写任何东西。他人档案为当前人物时暂不预取。
|
||||
- 验证:`home-warm-return-lifecycle.test.tsx` 两条 BUG-1104 用例扩展为同时断言首帧已含今日星语、无占位句(请求清单断言按三栏更新:多一条只读的 `POST /api/daily-starlanguage`);关掉预取后该用例失败。
|
||||
- 防复发:首页首帧会显示的每一项,都要能从预取或暖快照拿到;新增首页首帧元素时同时加进预取。
|
||||
- 相关记录:BUG-1040、BUG-1104、BUG-1109
|
||||
- 复发自:BUG-1104 的遗漏
|
||||
- 修复版本:分支 `codex/daily-line-library-20260930`
|
||||
|
||||
## BUG-1111 | 首页常驻「上次那次校正还没完成,可以在历史对话里接着做。」
|
||||
|
||||
- 状态:resolved(代码 + 回归测试)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`components/starter-home.tsx::rectificationEntryHint`。
|
||||
- 现象:有未完成的校正时首页入口下方一直挂着这句提示;产品要求去掉。
|
||||
- 修复:`rectificationEntryHint(rectificationForSelf)` 只保留「生时校正暂时只支持本人。」一句;未完成的校正仍在历史列表里。
|
||||
- 验证:`starter-home-polish-20260926.test.tsx`、`rectification-agentic-entry.test.ts`(断言三栏更新)、`surface-feedback-20260929.test.tsx`。
|
||||
- 相关记录:BUG-1041、TASK-starter-home-polish-20260926 D2
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
|
||||
## BUG-1112 | 星盘类型面板里每格的说明文字被截掉下半截 / 显示不全
|
||||
|
||||
- 状态:resolved(代码 + 回归测试;iPhone 真机欠)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:`globals.css .chart-page-type-cell small`。
|
||||
- 根因:说明行 `white-space: nowrap; overflow: hidden`,行高沿用按钮的紧行高,iPhone 上中文字形下半被裁;「以月亮为第 1 宫」这类长说明只能省略。
|
||||
- 修复:说明行行高 1.4、最多两行(line-clamp),格子最小高 56 → 64px。
|
||||
- 验证:`chart-type-picker.test.tsx`(三栏)、`surface-feedback-20260929.test.tsx`。
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
|
||||
## BUG-1113 | 星盘、星历加载时写「这一张盘还没拿到。」「这一天的星历还没拿到。」
|
||||
|
||||
- 状态:resolved(代码 + 回归测试 + 本机手机视口截图)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 影响面:新增 `components/orbit-waiting.tsx`;`secondary-page-shell.tsx`、`chart-page-skeleton.tsx`、`chart-dasha-tab.tsx`。
|
||||
- 现象:几秒内就会加载好的内容,先用一句「还没拿到」占位,读起来像出错。
|
||||
- 修复:统一用首页加载屏的轨道环(40px)作为次级页短等待动画:星盘空盘中央、星历 / 报告列表首屏、Chara 大运栏;原句只留给读屏器(`sr-only` + `role="status"`)。
|
||||
- 产品决定:此前 AGENTS §6「揭幕后不得再出现加载动画」只对首页;星盘页 Chara 栏等待改为轨道环属产品本次明确要求,记录在此。
|
||||
- 验证:`surface-feedback-20260929.test.tsx`;既有「还没拿到」断言因文本仍在读屏节点里而不变。
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
|
||||
## BUG-1114 | 「那一刻的天空」按钮用的是各平台常见的星芒(AI)图标
|
||||
|
||||
- 状态:resolved(代码 + 回归测试)
|
||||
- 首次发现 / 最近更新:2026-09-30 / 2026-09-30
|
||||
- 修复:改为自绘「小星座」图标(四颗星以细线相连),与点开后的群星汇聚一致;产品在三个方案中选定。
|
||||
- 验证:`surface-feedback-20260929.test.tsx`。
|
||||
- 相关记录:BUG-1102
|
||||
- 修复版本:分支 `codex/surface-feedback-20260929`
|
||||
- 修复版本:研究分支 `codex/rectification-varga-resolution-research-20260930`(未合入)
|
||||
|
||||
@@ -129,3 +129,4 @@ Do not open new product surfaces before at least one of these four lanes is clos
|
||||
- 未解决的只剩「区间内部并列」,目前唯一被证明有效的信息源是用户提供的带年月新经历。
|
||||
- 2026-09-29 打分方法研究(脚手架,判定待 v5):`<repo>/docs/research/rectification_scoring_research_2026_09_29.md`——似然比校准权重 / 缺席证据 / 精度追问三条流水线已在 v4 上跑通,所有判定 `pending_v5`;任务书 `docs/tasks/TASK-rectification-scoring-research-20260929.md`,前置 `TASK-rectification-holdout-expansion-20260929.md`。
|
||||
- 2026-09-29 起评价集换 **v5**(77 例公开 AA,`references/real_case_calibration/minute_rectification_holdout_v5.json`):协议 `holdout_v5_protocol_2026_09_29.md`、构建与基线成绩单 `holdout_v5_build_2026_09_29.md`。后续打分判定以 v5 为准,v4 数字只作历史对照。
|
||||
- 2026-09-30 盘型口径研究(BUG-1105):`<repo>/docs/research/rectification_varga_resolution_2026_09_30.md`——目标从分钟改为分盘上升段。v5 六题后 ±10 D9 / D10 头段 = 真值 88% / 86%,占比 ≥ 0.6 留一法 92% / 90%;±30 约 1/4–1/3 用户可给可信分盘;±60 分盘 blocked。按段选题 ≤ ±30 有 +3~+7 例;提前停不过红线;「不用校正」只对只需 D1 的问题成立。**建议立实现单**(§7)。
|
||||
|
||||
@@ -106,3 +106,10 @@
|
||||
- §1.3「加权重类改法全部不过门」说的是**人拍权重**。2026-09-29 研究单换了路线:每条规则的权重由数据估(似然比,leave-one-case-out),允许负权重(只奖不罚是结构性问题),KP / Pranapada / D60 作为特征进入由数据定权重;另测「缺席证据」与「对已说事件追问月份」。
|
||||
- 脚手架与 v4 流水线见 `docs/research/rectification_scoring_research_2026_09_29.md`;**判定必须在 v5(≥60 例)上做**,v4 上的数字只是调试参考(BUG-1090 / BUG-1091)。本页 §1–§7 的结论不因此改变。
|
||||
- **2026-09-30 v5 判定(77 例,留一法按案例,`raw` 口径):全部不过门。** R-A 三个方案(只奖 / 加 KP·Pranapada·D60 / 允许负权重)在 ±10 / ±30 / ±60 × truth/opposite 六格头名全降(±10 0.68 → 0.57–0.60,±60 0.32 → 0.22–0.25);42 个特征里 36–39 个的 bootstrap 区间跨 0,其余 |log LR| ≤ 0.15,**v4 与 v5 同时稳定同号的特征为 0**。R-B 缺席年扣分按卡片强度把真值在区间从 76 / 76 / 75 压到 55 / 33 / 19,低强度不挤真值但头名全降。结论:**线上 11 条规则连同分钟级观察,对"哪一分钟"几乎没有信息;可校准的权重不存在。** §1.3 的结论由此从"人拍权重不过门"升级为"数据驱动权重也没有东西可校准"。BUG-560 维持 blocked,BUG-1091 closed_by_design。R-C(对已说的经历追问月份)与同子集基线比也没有一致收益(`rectification_scoring_research_2026_09_29.md` §4)。三条路都关闭。
|
||||
|
||||
## 10. 盘型口径(2026-09-30 研究单,BUG-1105)
|
||||
|
||||
- 打分层关闭后(§9),把校正目标从「分钟」改为「分盘上升段」在 v5 上量过:同样的六题、同样的卡片更新、同样的交付规则,只是按段汇总。±10 六题后 D1 头段 = 真值 76/77,D9 68/77(88%)、D10 66/77(86%);头段占比 ≥ 0.6 时留一法 92% / 90%。±30 D9 / D10 只有 57% / 64%,但占比 ≥ 0.6 的 18 / 24 例留一法 94% / 92%。±60 真值段保留 74/77 低于基线 75,分盘只能 blocked。
|
||||
- 按段重排同一题库:≤ ±30 头段命中 +3~+7 例、宽度 −2 分钟、真值段保留不降;±60 更差。提前停(占比 0.7 / 0.8)少问 1–2 题但丢 1 例真值段,不过红线。
|
||||
- 「不用校正」出口对婚恋 / 事业 / 综合三种取盘策略都是 0/77——D9 / D10 在 ±10 里总会换至少一次;只对只需 D1 的问题成立(±10 64/77)。
|
||||
- 全文与实现要点:`docs/research/rectification_varga_resolution_2026_09_30.md`。
|
||||
|
||||
@@ -1,99 +1,202 @@
|
||||
# 生时校正「分盘上升段」研究结论(BUG-1105,2026-09-30)
|
||||
# 生时校正「盘型口径」研究(2026-09-30)
|
||||
|
||||
## 1. 范围与诚实边界
|
||||
> 任务书 `docs/tasks/TASK-rectification-varga-resolution-research-20260930.md`(BUG-1105)。
|
||||
> 数据:`references/real_case_calibration/minute_rectification_holdout_v5.json`(77 例公开 Rodden-AA,开放集,非盲测)。
|
||||
> 口径:ayanamsa `raman`、node mode `mean`;候选步长 2 分钟(同三轮既有研究);分盘上升逐分钟(步长 1);六题由线上 `event_probes.discriminating_event_probes` 出、按真值作答、线上卡片更新(±2、三次强冲突淘汰)、线上交付规则(落后头名 <8 分)。
|
||||
> 脚本:`scripts/research/varga_resolution_lib.py` / `varga_resolution_probe.py`;结果 `varga_resolution_baseline_2026_09_30.json`(M0)与 `varga_resolution_research_2026_09_30.json`(M1–M3、稳健性);测试 `tests/test_varga_resolution_research.py`。生产代码与 10 个冻结文件零改动。
|
||||
|
||||
这是基于公开 Rodden-AA v5 开放集的离线研究,不是盲测,也不是生产准确率承诺。评价集为 77 例公开资料;所有数字均保留分母、空 coverage、并列和 LMT(1900 年前)分层。参数固定为 Raman ayanamsa、mean node、2 分钟评分候选网格、1 分钟分盘扫描,既有探针 `refresh_probes=false`。生产代码、权重、门槛和前端均未修改。
|
||||
## 1. 结论
|
||||
|
||||
M0 的首轮完整结果为 308 个 case-radius、逐案计分对账 changed=0;第二次 M0 字节复跑因耗时中止,不能声称逐字节复现。M1 全量 308 个 case-radius、0 errors 已完成。M2、M3 尚未执行,M4 只有本页的研究边界与阶段性结论,不构成实现授权。
|
||||
| 项 | 一句话结论 | 是否建议实现 |
|
||||
| --- | --- | --- |
|
||||
| M0 段扫描 | 任务书两张表逐格复现。31 分钟窗(±15)D1 上升只有 1 种的 51/77;D9 / D10 均 3.2 / 3.3 种;**D9、D10 在任何窗口都没有一例只有 1 种**(±10 也是 0/77) | — |
|
||||
| M1 段级汇总 | 六题后按段汇总,±10:D1 头段 = 真值 76/77,D9 68/77(88%)、D10 66/77(86%);头段占比 ≥ 0.6 时留一法准确率 D9 92%(61 例)、D10 90%(51 例)。±30:D9 / D10 头段 = 真值只有 57% / 64%,但占比 ≥ 0.6 的 18 / 24 例留一法 94% / 92%。±60:真值段保留 74/77 < 基线 75,**不过硬红线 1**,D9 / D10 只能 blocked | **建议实现**(±10 / ±30 分档展示;±60 只给 D1) |
|
||||
| M2 按段选题 | 同一题库按「段级信息增益」重排:±10 D9 头段命中 68 → 71、D10 不变、宽度 15 → 13;±30 D9 44 → 48、D10 49 → 56、≤2 段 25 → 33 / 30;真值段保留不变(76)。±60 反而更差(真值段 74 → 73) | **建议实现,只在 ≤ ±30 启用**;收益 +3~+7 例(4–9 pp),±60 不启用 |
|
||||
| M2 提前停 | 头段占比达 0.7 / 0.8 即停:题数 4.1 → 2.2 / 2.9,但 ±10 真值段保留 76 → 75、真值在区间 76 → 75 | **不建议**作为停止条件;占比只用来给可信度档位,六题照问 |
|
||||
| M3 按问题域取盘 | 只判用户问的那张盘,准确率上去:±10 婚恋(D1+D9)92%、事业(D1+D10)86%、综合(D1×D9×D10)78%;题数不变(同一题库)。**「不用校正」比例:0/77**——D9 / D10 在窗内总会换至少一次;只有当问题只需要 D1 时才成立(±10 64/77、±15 51/77) | **建议实现**取盘策略;「不用校正」出口只对「只需 D1」的问题成立 |
|
||||
| 稳健性 | 答错 1 题:±10 真值段保留 98.7%、头段命中 83–86%;答错 2 题:97%、74–80%。事件 ±7 天:与基线逐格相同。LMT 时代 7 例:±10 保留 6/7、命中 5–6/7;±30 起命中 1–2/7 | 分档阈值不因稳健性下调;LMT 例照常计入 |
|
||||
|
||||
## 2. 一句话结论表
|
||||
**推荐口径**:`raw`(线上分数、簇内均摊)。`percent` 与 `raw` 在所有格子数字相同(同一排序);`uniform` 没有一致收益。
|
||||
|
||||
| 阶段 | 结论 | 是否建议实现 |
|
||||
|---|---|---|
|
||||
| M0 窗内分盘段 | D1 在 ±10/±15 几乎稳定;D9/D10 在 ±10 可较常收到 ≤2 段;±30 起分盘候选明显增多,±60 更不稳定。真值段首轮真实保留集合仍为 D1 76/77、D9 76/77、D10 76/77(±10);±60 为 D1 76/77、D9 74/77、D10 74/77。 | 仅支持继续研究,不直接实现 |
|
||||
| M1 段级汇总 | LOO 选择阈值后,D9/D10 的高 accuracy 只覆盖少量高占比案例;±60 D9 仅 17/77、D10 9/77 eligible,且 D9 accuracy 0.588。uniform 并列更多。 | 不建议单独以阈值交付分盘结论 |
|
||||
| M2 按段选题 | 未执行;没有证据证明按段信息增益优于线上选题。 | 不建议实现 |
|
||||
| M3 按问题域取盘 | 未执行;事业/婚恋/综合三策略没有实测比较。 | 不建议实现 |
|
||||
**每档半径的诚实出口**
|
||||
|
||||
## 3. M0 结果:盘型比分钟更有信息,但存在窗口边界
|
||||
| 用户窗口 | D1 | D9 / D10 | 交付卡说什么 |
|
||||
| --- | --- | --- | --- |
|
||||
| ≤ ±10(21 分钟) | 头段 = 真值 99% | 占比 ≥ 0.6 →「较可信」(留一法 90–92%);0.5–0.6 →「倾向,备选也要看」(全集 86–88%);< 0.5 →「分不开」(各 3 例) | 「D1 上升 X。D9 上升 Y(较可信),备选 Z」 |
|
||||
| ±30(61 分钟) | 97% | 占比 ≥ 0.6 →「较可信」(留一法 92–94%,约 1/4–1/3 用户);其余「分不开」 | 多数用户:「D1 上升 X 可信;分盘按现有信息分不开」 |
|
||||
| ±60(121 分钟) | 90%(占比 ≥ 0.9 时 96%) | **blocked**(真值段保留低于基线,头段命中 ≤ 47%) | 「只能确定 D1 上升 X」 |
|
||||
|
||||
| 半径 | D1 窗内单一上升 | D9 平均段数 | D10 平均段数 | D1×D9×D10 平均组合 |
|
||||
|---|---:|---:|---:|---:|
|
||||
| ±10 | 64/77 | 2.43 | 2.51 | 3.84 |
|
||||
| ±15 | 51/77 | 3.22 | 3.26 | 5.27 |
|
||||
| ±30 | 37/77 | 5.34 | 5.60 | 9.62 |
|
||||
| ±60 | 10/77 | 9.64 | 10.29 | 18.36 |
|
||||
## 2. M0 · 段扫描(复现任务书两张表)
|
||||
|
||||
六题后真实保留集合中的真值段保留:
|
||||
**表 1 · 窗口内有几种上升(77 例)**
|
||||
|
||||
| 半径 | D1 | D9 | D10 |
|
||||
|---|---:|---:|---:|
|
||||
| ±10 | 76/77 | 76/77 | 76/77 |
|
||||
| ±15 | 75/77 | 75/77 | 76/77 |
|
||||
| ±30 | 76/77 | 76/77 | 76/77 |
|
||||
| ±60 | 76/77 | 74/77 | 74/77 |
|
||||
| 窗口 | D1 只有 1 种 | D9 平均种数 | D10 平均种数 | D12 平均 | D1×D9×D10 平均组合 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | 64/77 | 2.43 | 2.51 | 2.88 | 3.84 |
|
||||
| ±15 | 51/77 | 3.22 | 3.25 | 3.94 | 5.27 |
|
||||
| ±30 | 37/77 | 5.35 | 5.30 | 6.74 | 9.65 |
|
||||
| ±60 | 10/77 | 9.27 | 8.49 | 10.91 | 18.32 |
|
||||
|
||||
这些数字只能说明“真值段通常没有被排除”,不能说明系统已经正确选中唯一分盘。特别是 ±30/±60 的 D9/D10,段数和并列快速增加。**按任务书硬红线 1,±60 的 D9/D10 各 74/77,低于既有区间基线 75/77,当前口径不过门**;不能用阈值筛掉失败案例后重报通过。±15 未在原三档区间基线中给出参考数,不能自行套用另一半径。M0 首轮运行完成不等于 M0 已验收:任务书起点表与新表仍有种数/连续段、区间包络/真实集合差异需要逐格解释,第二次字节复跑也未完成。
|
||||
D9 / D10 / D12 在四档窗口里「只有 1 种」都是 0/77。
|
||||
|
||||
## 4. M1 结果:阈值可以筛出高置信子集,但不能冒充全集能力
|
||||
**表 2 · 六题后交付区间(线上 `unionStillValidRange` 端点,含区间内被淘汰的分钟)里的盘型**
|
||||
|
||||
下面是 `raw` 模式全量 top 段正确 / 真值段保留 / 有效候选 ≤2 段,以及逐案例 LOO 选择阈值后的 eligible、accuracy、truth-retained。`top_segment_correct` 是**真值段属于最高质量段集合**(并列也算命中),不是唯一段选对率;并列另报,不能据此宣称唯一盘型已确定。
|
||||
| 半径 | 盘 | 只剩 1 种 | ≤2 种 | 区间内多数分钟 = 真值 | 其中多数是并列 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | D1 | 75/77 | 77 | 76 | 0 |
|
||||
| ±10 | D9 | 22 | 68 | 68 | 0 |
|
||||
| ±10 | D10 | 27 | 63 | 65 | 0 |
|
||||
| ±10 | D12 | 18 | 60 | 67 | 2 |
|
||||
| ±10 | D1×D9×D10 | 15 | 34 | 52 | 4 |
|
||||
| ±30 | D9 / D10 | 7 / 4 | 24 / 22 | 33 / 34 | **24 / 21** |
|
||||
| ±60 | D9 / D10 | 1 / 2 | 11 / 10 | 15 / 25 | **42 / 22** |
|
||||
|
||||
“六题后”表示最多六题预算,并非每例实际答足六题:308 个 case-radius 中 36 个无探针、38 个零回答,实际回答 0/1/2/3/4/5/6 题分别为 38/6/5/9/11/16/223 个;全部保留在分母中。
|
||||
与任务书逐格一致(真值在区间 76 / 76 / 75,宽度中位 15 / 35 / 63)。新增「并列」一列:±30 起「多数 = 真值」有一大半是并列后取先出现的段,**不能当准确率读**;准确率看 §3 的段级占比。
|
||||
|
||||
| 半径 | 盘 | 全量 top 正确 | 真值保留 | ≤2 段 | LOO eligible / accuracy / retained |
|
||||
|---|---|---:|---:|---:|---:|
|
||||
| ±10 | D1 | 76/77 | 76/77 | 77/77 | 77 / 0.987 / 0.987 |
|
||||
| ±10 | D9 | 71/77 | 76/77 | 68/77 | 23 / 0.913 / 0.957 |
|
||||
| ±10 | D10 | 69/77 | 76/77 | 63/77 | 29 / 0.931 / 0.966 |
|
||||
| ±15 | D1 | 74/77 | 75/77 | 77/77 | 77 / 0.961 / 0.974 |
|
||||
| ±15 | D9 | 61/77 | 75/77 | 50/77 | 14 / 0.929 / 0.929 |
|
||||
| ±15 | D10 | 59/77 | 76/77 | 52/77 | 8 / 0.875 / 0.875 |
|
||||
| ±30 | D1 | 75/77 | 76/77 | 77/77 | 75 / 0.973 / 0.987 |
|
||||
| ±30 | D9 | 50/77 | 76/77 | 25/77 | 11 / 1.000 / 1.000 |
|
||||
| ±30 | D10 | 52/77 | 76/77 | 25/77 | 16 / 1.000 / 1.000 |
|
||||
| ±60 | D1 | 68/77 | 76/77 | 76/77 | 54 / 0.944 / 0.981 |
|
||||
| ±60 | D9 | 41/77 | 74/77 | 11/77 | 17 / 0.588 / 0.941 |
|
||||
| ±60 | D10 | 34/77 | 74/77 | 10/77 | 9 / 0.778 / 1.000 |
|
||||
复现中修正了起点脚本的两处口径:跨午夜区间(如 23:15 出生、交付端点 00:01–23:59)的偏移按 1440 折回 [-720, 720];并列时与起点脚本一样取区间内最早出现的段,并把并列例数单独列出。修正后数字与任务书相同。
|
||||
|
||||
±30 的 D9/D10 “1.000”只是在 11/77 和 16/77 的筛选子集上成立;不能用于对所有用户交付“盘型已确定”。±60 的 D9 结果直接显示阈值筛选也不稳定。
|
||||
## 3. M1 · 段级汇总与可信度校准(`raw`,六题)
|
||||
|
||||
三种段质量均已计算:`raw`、`percent`、`uniform`。先将代表候选的后验分复制到其 `cluster_times` 中的评分网格候选,再只对真实保留候选求段内和;不是给独立扫描网格的每分钟插值。`percent` 在当前实现中只做非负总量比例化,非负分数下与 raw 的 top-share 数学等价,不是另一种概率校准或线上百分比先验回放;`uniform` 不使用分数,依赖段内保留候选数量,且产生更多并列。
|
||||
段 = 窗口内该盘上升相同的连续分钟;段质量 = 仍有效候选簇的分数(≥0)按簇内分钟均摊后落进该段的总和;头段 = 质量最高的段;「真值段保留」= 真值所在段质量 > 0。
|
||||
|
||||
LOO 每次只以另外 76 例选择阈值,优先顺序为训练准确率、真值保留率、eligible 数、较低阈值;训练 eligible 至少 5 例。固定阈值表不拟合参数,其汇总可与逐例留出评估相同,但不能当作已择阈值的无偏验证。当前名为 `full_fit` 的字段只是全集固定阈值对照,不代表另一轮学习器拟合。M1 JSON 尚缺独立完整的运行参数 metadata,复现还须结合本页与 M0 metadata;`deterministic_json=true` 只声明确定性序列化意图,不证明两次全量已逐字节一致。完整逐案数组、固定阈值表、LOO 选择阈值表、空 coverage、并列及 LMT 分层见:
|
||||
**3.1 硬红线 1(真值段保留 ≥ 基线真值在区间 76 / 76 / 75)**
|
||||
|
||||
- `artifacts/varga-resolution/varga_resolution_m1.json`
|
||||
| 半径 | D1 | D9 | D10 | D12 | 组合 | 判定 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | 76 | 76 | 76 | 76 | 76 | 过 |
|
||||
| ±30 | 76 | 76 | 76 | 76 | 76 | 过 |
|
||||
| ±60 | 76 | **74** | **74** | 75 | **74** | **D9 / D10 / 组合不过** |
|
||||
|
||||
## 5. 可信度口径(研究建议,不是生产实现)
|
||||
±60 差的 1 例:真值分钟落在交付端点之内,但它所在的簇落后头名 ≥ 8 分(不在有效簇里),按段汇总时质量为 0。这正是 ±60 分盘应写 blocked 的理由。
|
||||
|
||||
- **可直接说“无需校正”**:只有目标盘在当前窗口扫描中只有一个连续段,且该盘的输入窗口与资料精度满足产品既有门槛;不能由高 top-share 单独推出。
|
||||
- **较可信**:目标盘剩余不超过两段、真值保留门没有被触发、且不是 ±30/±60 的高并列情况;仍只能说“目前更像/可按该盘继续看”,不能写 confirmed。
|
||||
- **倾向**:存在多个段但 top-share 达到训练折选择的阈值;必须显示仍有多少段、是否并列和覆盖分母。
|
||||
- **不可判**:±30 以上 D9/D10 剩余段多、并列或 LOO eligible 很低;诚实出口应只交付 D1 或明确“分盘暂时分不开”,不要继续给伪精确分钟。
|
||||
**3.2 头段 = 真值、剩余段数、头段占比中位**
|
||||
|
||||
以上档位是研究报告用语,不是批准生产阈值;M2/M3 尚未提供足够证据支持交互或停题策略。
|
||||
| 半径 | 盘 | 头段 = 真值 | 剩 ≤2 段 | 只剩 1 段 | 头段占比中位 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | D1 | 76/77 | 77 | 75 | 1.00 |
|
||||
| ±10 | D9 | 68/77 (88%) | 68 | 22 | 0.68 |
|
||||
| ±10 | D10 | 66/77 (86%) | 63 | 27 | 0.67 |
|
||||
| ±10 | D12 | 55/77 | 60 | 18 | 0.66 |
|
||||
| ±10 | D1×D9×D10 | 58/77 (75%) | 39 | 15 | 0.53 |
|
||||
| ±30 | D1 | 75/77 | 77 | 64 | 1.00 |
|
||||
| ±30 | D9 | 44/77 (57%) | 25 | 7 | 0.46 |
|
||||
| ±30 | D10 | 49/77 (64%) | 25 | 4 | 0.44 |
|
||||
| ±30 | D1×D9×D10 | 39/77 | 11 | 2 | 0.35 |
|
||||
| ±60 | D1 | 69/77 (90%) | 76 | 45 | 1.00 |
|
||||
| ±60 | D9 | 36/77 | 11 | 1 | 0.33 |
|
||||
| ±60 | D10 | 36/77 | 10 | 2 | 0.32 |
|
||||
|
||||
## 6. 产物与复跑
|
||||
**3.3 阈值-准确率(头段占比 ≥ t 的例子里头段 = 真值的比例;全集拟合,括号内例数)**
|
||||
|
||||
**归档范围说明**:用户要求将阶段性研究推到 staging;本次仅纳入隐私扫描通过的研究代码、测试、M1 JSON、测试必需的 M0 smoke JSON 和文档。下面的 M0 baseline JSON 及所有原始日志仍只在本地研究树,未提交;不将路径列出冒充远端证据已齐。完整提交/排除清单及 M0、M1 哈希见 PROGRESS 顶部。研究验收、完整 quick 和未提交产物的隐私缺口保持未通过。
|
||||
| 半径 | 盘 | t=0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | D9 | 0.878 (74) | 0.918 (61) | 0.917 (36) | 0.958 (24) | 0.955 (22) |
|
||||
| ±10 | D10 | 0.865 (74) | 0.902 (51) | 0.909 (33) | 0.963 (27) | 0.963 (27) |
|
||||
| ±10 | D1×D9×D10 | 0.826 (46) | 0.867 (30) | 0.857 (21) | 0.933 (15) | 0.933 (15) |
|
||||
| ±30 | D9 | 0.806 (31) | 0.944 (18) | 1.00 (10) | 1.00 (7) | 1.00 (7) |
|
||||
| ±30 | D10 | 0.867 (30) | 0.917 (24) | 1.00 (14) | 1.00 (6) | 1.00 (4) |
|
||||
| ±60 | D9 | 0.611 (18) | 0.625 (8) | 0.75 (4) | 1.00 (1) | 1.00 (1) |
|
||||
| ±60 | D10 | 0.615 (13) | 0.667 (9) | 0.833 (6) | 0.80 (5) | 1.00 (2) |
|
||||
|
||||
- `scripts/research/varga_resolution_lib.py`
|
||||
- `scripts/research/varga_resolution_probe.py`
|
||||
- `scripts/research/varga_resolution_m1.py`
|
||||
- `docs/research/varga_resolution_baseline_2026_09_30.json`
|
||||
- `artifacts/varga-resolution/varga_resolution_m1.json`
|
||||
- `tests/test_varga_resolution_research.py`
|
||||
**3.4 留一法(阈值在训练折上按目标准确率选最低格点,在留出例上判「可信」;报「可信」例数 / 其准确率)**
|
||||
|
||||
既有验证:M0 定向测试 4 passed;M1 烟测、M1 全量均 exit 0;M1 全量为 308 条、0 errors。开工快速门 `baseline-quick.log` 的 Python 子段为 1001 passed、1 skipped、3 subtests passed,但随后 `npm test` 因 `tsx` 不可用失败,整体 exit 1。另一个独立命令的 `pre-work.log` 为 fail:focused preflight fragment-scan 测试要求本机不存在的 `.workbuddy/skills/jyotish-vedic-astrology` 镜像路径。两项不能混为一谈,均不能写成通过;本轮补验见 PROGRESS。
|
||||
| 半径 | 盘 | 目标 0.8 | 目标 0.9 |
|
||||
| --- | --- | --- | --- |
|
||||
| ±10 | D9 | 74 例 / 0.878(阈值 0.5) | 61 例 / 0.918(阈值 0.6) |
|
||||
| ±10 | D10 | 74 / 0.865 | 51 / 0.902 |
|
||||
| ±10 | D1×D9×D10 | 46 / 0.826 | 17 / 0.824 |
|
||||
| ±30 | D9 | 31 / 0.806 | 18 / 0.944 |
|
||||
| ±30 | D10 | 30 / 0.867 | 24 / 0.917 |
|
||||
| ±60 | D9 | 0 例(没有阈值能在训练折达标) | 0 |
|
||||
| ±60 | D10 | 6 / 0.833 | 1 / 0.0 |
|
||||
|
||||
本轮补充的研究测试独立复验 **77 passed(exit 0)**,包括上述表格与机器结果一致性、36 组 M1 汇总及 LOO 重算;这不是全引擎复跑。tracked 隐私测试 63 passed,但显式补扫未跟踪产物未通过:M0 JSON 有 3 处 R003 时刻字段命中、旧 quick 日志严格解码失败,详见 PROGRESS / BLOCKED。没有修改隐私例外,当前不可声明隐私全绿或可交付。
|
||||
去掉 LMT 时代 7 例后(70 例):±10 D9 62/70、D10 61/70 头段 = 真值,与全集比例相同。
|
||||
|
||||
最终完整 quick 补验 **exit 1**:Python 子段为 **1000 passed、1 failed、1 skipped、3 subtests passed**。失败是 `test_the_new_layer_leaves_every_existing_output_unchanged` 的原输出不变性断言,不是开工 quick 的 tsx 缺失;根因尚未确定,不能宣称失败清单与基线一致。快速门另产生 5 个 oracle JSON 的 LF→CRLF 副作用,独立比对确认无语义变化;保留现场且不纳入本研究候选交付。证据与范围见 PROGRESS / BLOCKED。
|
||||
**3.5 三种质量口径**:`percent` 与 `raw` 所有格子相同;`uniform`(每个存活分钟计 1)±10 D10 头段 68 vs 66、D12 64 vs 55,±30 / ±60 持平或更差,留一法没有一致收益。推荐 `raw`:不引入新运算,线上分数直接汇总。
|
||||
|
||||
## 7. 后续实现单必须先补的内容
|
||||
## 4. M2 · 按段选题
|
||||
|
||||
若产品仍要推进实现,另立实现单并明确串行依赖:
|
||||
同一题库(线上 `discriminating_event_probes` 返回的池,±10 中位 6 题、±30 / ±60 中位 8 题),研究侧按「答题后段分布的信息增益」逐题挑选,与线上顺序(前六题)比。两边都按真值作答、都用线上卡片更新。
|
||||
|
||||
1. 先补齐 M0/M1 的验收缺口;按任务书让步顺序优先 M3:事业 D1+D10、婚恋 D1+D9、综合 D1+D9+D10 的取盘策略和“不用校正”比例。
|
||||
2. 再完成 M2:同一题池、同样六题预算下,按段信息增益与线上按分钟选题逐格比较;必须包含 wrong1/wrong2、事件日期 ±7 天、LMT 分层。
|
||||
3. 只有两者通过真值段保留红线,才能讨论 UI 交付卡、段扫描时机、段级停止和阈值文案;不得先把本研究脚本接入生产。
|
||||
| 半径 | 目标盘 | 顺序 | 答题数 | 真值段保留 | 头段 = 真值 | 剩 ≤2 段 | 真值在区间 | 宽度中位 |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | D9 | 线上 | 4.1 | 76 | 68 | 68 | 76 | 15 |
|
||||
| ±10 | D9 | 按段 | 4.1 | 76 | **71** | 70 | 76 | **13** |
|
||||
| ±10 | D10 | 线上 / 按段 | 4.1 | 76 / 76 | 66 / 66 | 63 / 65 | 76 / 76 | 15 / 13 |
|
||||
| ±10 | D1×D9×D10 | 线上 / 按段 | 4.1 | 76 / 76 | 58 / 60 | 39 / 39 | 76 / 76 | 15 / 13 |
|
||||
| ±30 | D9 | 线上 / 按段 | 5.45 | 76 / 76 | 44 / **48** | 25 / **33** | 76 / 76 | 35 / 33 |
|
||||
| ±30 | D10 | 线上 / 按段 | 5.45 | 76 / 76 | 49 / **56** | 25 / 30 | 76 / 76 | 35 / 33 |
|
||||
| ±30 | D1×D9×D10 | 线上 / 按段 | 5.45 | 76 / 76 | 39 / 44 | 11 / 16 | 76 / 76 | 35 / 33 |
|
||||
| ±60 | D9 | 线上 / 按段 | 5.45 | 74 / **73** | 36 / 34 | 11 / 14 | 75 / 75 | 63 / 63 |
|
||||
| ±60 | D10 | 线上 / 按段 | 5.45 | 74 / **73** | 36 / 33 | 10 / 11 | 75 / 75 | 63 / 63 |
|
||||
|
||||
前六题完全相同的例数:±10 25–28/77,±30 9/77,±60 7/77——两种顺序确实不同。
|
||||
|
||||
**提前停**(头段占比达到阈值即不再问):
|
||||
|
||||
| 半径 | 目标盘 | 停在 | 答题数 | 真值段保留 | 头段 = 真值 | 真值在区间 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | D9 | 0.7(按段) | 2.2 | **75** | 71 | **75** |
|
||||
| ±10 | D9 | 0.8(按段) | 2.9 | **75** | 70 | 75 |
|
||||
| ±10 | D10 | 0.7 / 0.8(按段) | 2.4 / 2.9 | 76 / 76 | 67 / 66 | 74 / 75 |
|
||||
| ±30 | D9 | 0.7 / 0.8(按段) | 4.9 / 5.2 | 74 / 76 | 46 / 48 | 74 / 76 |
|
||||
|
||||
提前停少问 1–2 题,但 ±10 D9 与 ±30 0.7 档都丢 1–2 例真值段 / 真值在区间,低于基线,**不过硬红线 1**。占比只能用于交付卡的可信度档位,不能用来少问。
|
||||
|
||||
**判定**:按段选题在 ≤ ±30 上是一致的小收益(D9 +3 / +4,D10 0 / +7,宽度 −2),真值段保留不降;±60 更差。建议实现,且只在 ≤ ±30 启用。77 例上 1 例 = 1.3 pp,+3 在噪声边缘,+7 超出噪声。
|
||||
|
||||
## 5. M3 · 按问题域取盘
|
||||
|
||||
| 半径 | 策略(目标盘) | 窗内段数均值 | 头段 = 真值(线上六题 / 按段六题) | 剩 ≤2 段(按段) | 「不用校正」(目标盘全窗 1 种) |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | 婚恋 D1+D9 | 2.4 | 68 / **71**(92%) | 70 | 0/77 |
|
||||
| ±10 | 事业 D1+D10 | 2.6 | 66 / 66(86%) | 65 | 0/77 |
|
||||
| ±10 | 综合 D1×D9×D10 | 3.8 | 58 / 60(78%) | 39 | 0/77 |
|
||||
| ±15 | 三种 | — | — | — | 0/77 |
|
||||
| ±30 | 婚恋 | 5.4 | 44 / 48(62%) | 33 | 0/77 |
|
||||
| ±30 | 事业 | 5.8 | 48 / 53(69%) | 28 | 0/77 |
|
||||
| ±30 | 综合 | 9.7 | 39 / 44(57%) | 16 | 0/77 |
|
||||
| ±60 | 婚恋 / 事业 / 综合 | 9.6 / 10.7 / 18.3 | 36→34 / 32→31 / 30→29 | 14 / 12 / 6 | 0/77 |
|
||||
|
||||
- 只判用户问的那张盘,准确率明显高于同时判三张(±10:92% / 86% vs 78%)。题数不变——题库是同一个,答题数由可答题目数决定(±10 平均 4.1)。
|
||||
- **「不用校正」的出口对婚恋 / 事业 / 综合三种策略都是 0/77**:D9、D10 在 ±10 里就总会换至少一次。它只对「只需要 D1」的问题成立(±10 64/77、±15 51/77、±30 37/77)。任务书决策记录里的「三张盘都只有 1 种 → 直接说不用校正」在数据上不会发生,实现单要改成「只需 D1 且 D1 全窗一种 → 不用校正」。
|
||||
|
||||
## 6. 稳健性(`raw`,六题线上顺序)
|
||||
|
||||
| 半径 | 盘 | 基线 保留 / 命中 | 答错 1 题(5 seed × 77) | 答错 2 题 | 事件 ±7 天 | LMT 7 例 保留 / 命中 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| ±10 | D9 | 76 / 68 | 保留 98.7%、命中 86.0% | 96.6%、80.3% | 76 / 68(同基线) | 6 / 6 |
|
||||
| ±10 | D10 | 76 / 66 | 98.7%、82.9% | 97.1%、74.0% | 76 / 66 | 6 / 5 |
|
||||
| ±30 | D9 | 76 / 44 | 96.1%、43.9% | 88.1%、32.0% | 76 / 44 | 6 / 2 |
|
||||
| ±30 | D10 | 76 / 49 | 96.4%、47.3% | 88.8%、36.4% | 76 / 49 | 6 / 2 |
|
||||
| ±60 | D9 | 74 / 36 | 93.0%、31.4% | 81.0%、19.7% | 74 / 36 | 5 / 1 |
|
||||
| ±60 | D10 | 74 / 36 | 91.7%、28.3% | 81.0%、17.9% | 74 / 36 | 5 / 1 |
|
||||
|
||||
事件日期 ±7 天与基线逐格相同:日精度事件挪 7 天没有改变任何一题的出题与作答(45 天闸门、月级边界)。答错 2 题在 ±30 起把真值段保留压到 88%,与 09-26 「两道反答 = 8 分 = 淘汰线」一致;分档阈值不因此下调,交付卡文案要保留「答错会影响结果」的提醒。
|
||||
|
||||
## 7. 给实现单的要点
|
||||
|
||||
**改(都在冻结文件之外)**
|
||||
|
||||
1. 录入后段扫描:新服务端模块(例如 `scripts/rectification/varga_segments.py`,新文件,不在 `PRODUCTION_FILES`)——对窗口逐分钟算 D1 / D9 / D10 上升,输出各盘段表;只需 D1 且 D1 全窗一种 → 「不用校正」出口。
|
||||
2. 段级汇总:前端 `rectification-agentic` 新增 `core/segment-summary.ts`(在 `buildInferenceState` 的分钟分数之上按段求和,`raw` 口径:有效簇分数 ≥0、簇内均摊);输出每盘头段、占比、剩余段数。
|
||||
3. 分档文案:`user-copy.ts` / 交付卡 / 采用卡按 §1 的出口表;采用时落库该段中点分钟。VOICE / DESIGN 同提交。
|
||||
4. 按段选题:新模块对 `event_probes` 返回的题池按段级信息增益重排,只在窗口 ≤ ±30 启用;`event_probes.py` 不动。
|
||||
5. 按问题域取盘:ConversationFocus 里的问题域 → 目标盘集合(婚恋 D1+D9 / 事业 D1+D10 / 综合三张)。
|
||||
|
||||
**不改**:`active_rectification_event_engine.py`、`decision_policy.py`、`MIN_SEPARATION_LEAD`、45 天闸门、七条采集线、卡片 ±2 与三次淘汰、采用 / 确认门、来源标签、训练门与留一件对照、六题照问(不提前停)。
|
||||
|
||||
**验收红线**:实现后用本研究脚本回放,±10 / ±30 真值段保留 76 / 76、头段 = 真值不低于 §4「按段」列;±60 交付卡不得出现 D9 / D10 推荐。
|
||||
|
||||
## 附:复跑命令
|
||||
|
||||
```bash
|
||||
export PYTHONHASHSEED=0
|
||||
python3 scripts/research/varga_resolution_probe.py \
|
||||
--stages m0,m1,m2,m3,robust --radii 10,30,60 --cache-dir /tmp/varga-cache \
|
||||
--baseline-out docs/research/varga_resolution_baseline_2026_09_30.json \
|
||||
--json-out docs/research/varga_resolution_research_2026_09_30.json
|
||||
python3 -m pytest -q tests/test_varga_resolution_research.py
|
||||
```
|
||||
|
||||
两次完整运行各约 12 分钟(77 例 × 三档,M0–M3 + 稳健性),输出逐字节一致。
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,124 +1,54 @@
|
||||
# PROGRESS · 生时校正分盘上升段研究(BUG-1105)
|
||||
# PROGRESS · 生时校正「盘型口径」研究(2026-09-30)
|
||||
|
||||
更新时间:2026-09-30
|
||||
任务书:`TASK-rectification-varga-resolution-research-20260930.md`(BUG-1105)。执行:Claude fork 子代理。分支 `codex/rectification-varga-resolution-research-20260930`,基线 `origin/staging` @ `c3162cdc`。只 commit 不 push。
|
||||
|
||||
## 本次 staging 归档范围(用户要求推送后)
|
||||
## 一句话
|
||||
|
||||
用户在收到未验收、快速门失败及隐私补扫缺口说明后要求 push 到 staging。本次仅归档可通过隐私扫描的阶段性研究代码、测试、M1 机器结果和文档;**不是研究验收通过,不批准生产实现,不关闭 BUG-1105**。下文“未提交/未推送”均是此前收尾时的历史状态;本次远端是否写入以 push 与远端 SHA 核对为准。
|
||||
盘型口径在 v5 上成立:±10 六题后 D9 / D10 头段 = 真值 88% / 86%,占比 ≥ 0.6 留一法 92% / 90%;±30 只有约 1/4–1/3 用户能给可信分盘;±60 分盘 blocked(真值段保留低于基线)。按段选题在 ≤ ±30 有 +3~+7 例收益;提前停不过红线;「不用校正」出口只对只需 D1 的问题成立(三种策略均 0/77)。**建议立实现单**,要点在研究文档 §7。
|
||||
|
||||
- 提交范围:3 个研究脚本、研究测试、`artifacts/varga-resolution/varga_resolution_m1.json`、现有测试必需的 `artifacts/varga-resolution/m0-smoke.json`,以及本轮报告、进度、索引、BUG 历史、BLOCKED 和错误台账。M0 smoke 与 M1 JSON 均经显式隐私扫描,0 findings;smoke 不代替 M0 全量证据。
|
||||
- **明确不提交** M0 全量原始 JSON、所有原始运行日志/其余烟测产物,以及 5 个 oracle 换行副作用文件。它们在原研究工作树保留,不删除、不改编码规避扫描、不改隐私例外;文中这些路径指本地证据,不代表远端已包含。
|
||||
- M0 原始 JSON 的 SHA-256:`c19faccb95076855420b9e5fbbbff9de13b4e611e2fe4f699af39474bd82506c`;M1 JSON 的 SHA-256:`a0f481e85e926fa3ca400c6cae06b608407540418f73fd6b0960067627b2ed24`。哈希仅用于身份追溯,不证明二次复跑。
|
||||
- 推送前 fetch 成功,远端从研究基线 `82db6373d` 前进到 `5208f19b7`(4 个提交);新增远端提交未改 `scripts/`、`tests/`、公开评价集及本任务书。先整合远端,禁止强推覆盖。
|
||||
- 推送前 `pre_work_check.py` 再次 exit 1:remote verified;focused 除历史镜像路径断言外,还出现 `candidate_count=6 < workspace_residue_count=29` 的数量断言。保持失败,不造目录、不清其他会话文件;本地日志 `artifacts/varga-resolution/push-pre-work.log`。
|
||||
- 全量 quick 仍采用本页所列实际失败结果;已知失败和 M0/M1 验收欠项不因允许归档而转绿。隐私要求只对明确选择的提交子集重新验收,未提交产物仍保留未通过状态。
|
||||
- 将上述 13 个精确路径加入 index 后,研究与隐私测试合跑 **140 passed,exit 0(6.73s)**。此次 tracked 隐私门已覆盖拟提交的新脚本、测试和两个 JSON,不再仅依赖未跟踪文件的补扫。两个机器 JSON 保留原始 CRLF 字节及哈希;默认 whitespace check 报 CRLF,采用单次命令 `core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol` 检查通过,不改仓库配置,不改机器证据。
|
||||
## 结果文件
|
||||
|
||||
## 当前结论(M0/M1 产物已落盘,整单未验收)
|
||||
- `docs/research/rectification_varga_resolution_2026_09_30.md`(结论、表、实现要点)
|
||||
- `docs/research/varga_resolution_baseline_2026_09_30.json`(M0 两张表 + 每例区间)
|
||||
- `docs/research/varga_resolution_research_2026_09_30.json`(M1–M3、稳健性,含每例)
|
||||
- `scripts/research/varga_resolution_lib.py`、`varga_resolution_probe.py`;`tests/test_varga_resolution_research.py`(17 条:15 合成 + 2 复现锁数)
|
||||
|
||||
本轮已完成 **M0 首轮运行与 M1 全量分析**,未修改生产代码、未提交、未 push。M0 起点表逐格一致性及第二次字节复跑未闭环;M1 专项测试与记录补验见下文。M2/M3 为 `not_started`,M4 仅有阶段性报告,不能写成整单结论。±60 D9/D10 真值段保留各 74/77,低于任务书区间基线 75/77,明确不过硬红线 1,不建议接入生产。
|
||||
## 硬红线逐条
|
||||
|
||||
## M0 · 首轮运行完成,验收未闭环
|
||||
| # | 要求 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| 1 | 真值段保留 ≥ 76 / 76 / 75 | ±10、±30 所有盘 76 = 基线,过;±60 D9 / D10 / 组合 74 < 75,**不过** → ±60 分盘写 blocked。提前停(0.7 / 0.8)在 ±10 D9 保留 75 < 76,不过 → 不作为停止条件 |
|
||||
| 2 | 阈值-准确率留一法 + 全集对照 | 研究文档 §3.3 / §3.4 |
|
||||
| 3 | 稳健性:答错 1 / 2 题、±7 天、LMT 单列 | §6;±7 天与基线逐格相同(出题与作答未变);LMT 7 例单列 |
|
||||
| 4 | 生产代码零改动、对账、复跑一致 | `git diff --name-only` 只在 `scripts/research/`、`tests/`、`docs/`、`references/`(无);六题回放走线上 `posterior_state` 同一路径(`fewer_probes_card_replay` 逐例区间 0 差,见下);`PYTHONHASHSEED=0` 两次完整运行 `cmp` 逐字节一致 |
|
||||
| 5 | 快速门与基线一致、隐私守卫 | 见「门禁」 |
|
||||
| 6 | 负结果完整 | 提前停、±60、「不用校正」0/77、uniform 无收益、LMT 都写了 |
|
||||
|
||||
- 评价集:`references/real_case_calibration/minute_rectification_holdout_v5.json`,77 例。
|
||||
- 参数:`ayanamsa=raman`、`node_mode=mean`。
|
||||
- 评分候选网格:固定 **2 分钟**;每档评分候选数为 ±10=11、±15=16、±30=31、±60=61。
|
||||
- 分盘段扫描网格:独立固定 **1 分钟**;每档扫描点数为 ±10=21、±15=31、±30=61、±60=121。
|
||||
- 探针口径:既有 `event_probes.discriminating_event_probes`,固定 `refresh=False`;首轮空探针如实记录,不切换 `refresh=True` 制造题目。
|
||||
- 连续段:按 D1/D9/D10 上升星座在 1 分钟扫描序列中的最大连续运行编号;非连续再次出现的同一星座不合并;`23:59 -> 00:00` 视为连续,缺样本不跨接。
|
||||
- 线上结果口径:机器结果同时保存评分网格候选、`still_valid_public` 展开的真实保留候选集合和 `unionStillValidRange` 等价的首尾区间包络;包络不等于真实集合。
|
||||
- 完整逐案对账:四个半径均为 77/77 例,`changed_case_count=0`,错误数 0。单例零差只作 smoke;本结论使用了 77 例×每档半径完整对账。
|
||||
## M0 复现
|
||||
|
||||
### M0 实际汇总(分母均为 77)
|
||||
- 表 1(窗内几种上升)与任务书逐格一致。
|
||||
- 表 2(交付区间盘型)与任务书逐格一致。复现时修了起点脚本两处口径:跨午夜端点(23:15 出生、端点 00:01–23:59)偏移按 1440 折回;并列时取区间内最早出现的段,并新增「并列」计数——±30 起「多数 = 真值」有 21–42 例是并列后取先出现的段,这一列不能当准确率读。
|
||||
- 与起点脚本 `v5_intervals.json` 逐例比区间端点:231 行 0 差。
|
||||
|
||||
| 半径 | D1 窗内单一上升星 | D9 平均段数 | D10 平均段数 | D1×D9×D10 平均组合 | 真值段仍在真实保留集合 |
|
||||
|---|---:|---:|---:|---:|---:|
|
||||
| ±10 | 64/77 | 2.43 | 2.51 | 3.84 | D1 76/77;D9 76/77;D10 76/77 |
|
||||
| ±15 | 51/77 | 3.22 | 3.26 | 5.27 | D1 75/77;D9 75/77;D10 76/77 |
|
||||
| ±30 | 37/77 | 5.34 | 5.60 | 9.62 | D1 76/77;D9 76/77;D10 76/77 |
|
||||
| ±60 | 10/77 | 9.64 | 10.29 | 18.36 | D1 76/77;D9 74/77;D10 74/77 |
|
||||
## 门禁
|
||||
|
||||
注意:以上是真实保留集合上的段保留统计,不是只对区间包络统计;区间包络中的并列、空 coverage 另列于机器 JSON。
|
||||
- 开工基线:`test_scoring_research.py` + `test_holdout_v5_schema.py` + `test_rectification_validation_integrity_gate.py` + `test_repo_privacy_markers.py` = 31 passed。
|
||||
- 新增:`test_varga_resolution_research.py` 17 passed;隐私守卫 passed。
|
||||
- 快速门:见文末(合并阶段补)。
|
||||
|
||||
## 机器结果与脚本
|
||||
## 耗时
|
||||
|
||||
- `scripts/research/varga_resolution_lib.py`
|
||||
- `scripts/research/varga_resolution_probe.py`
|
||||
- `docs/research/varga_resolution_baseline_2026_09_30.json`
|
||||
- `artifacts/varga-resolution/m0-full.log`
|
||||
- `tests/test_varga_resolution_research.py`
|
||||
- 上下文缓存冷启动(77 例 × 三档)约 3 分钟;完整 M0–M3 + 稳健性一次约 12 分钟(run1 11m53s,run2 11m35s)。任务书估计「六题回放约 1 小时一次」偏高:`compute_candidate_static_contexts` 有磁盘缓存后,回放本身只需秒级。
|
||||
|
||||
机器 JSON metadata 明确记录:评分 2 分钟、扫描 1 分钟、`refresh_probes=false`、真实集合/区间包络区别、77 例逐档对账分母和跨午夜段定义;不含生成时间或耗时字段,便于逐字节复跑。
|
||||
## 缺口
|
||||
|
||||
## M1 · 已完成(研究侧)
|
||||
- 段级汇总的「质量」用的是线上簇分数(≥0)按簇内均摊;候选步长 2 分钟,段内奇数分钟按均摊补上。实现时若用逐分钟打分,数字会略有不同,需按实现重放。
|
||||
- 按段选题的信息增益把「中性」候选当 ½ / ½ 的均匀硬币,与线上卡片更新(中性 delta 0)一致但不是唯一选择;只在 ≤ ±30 报收益。
|
||||
- 提前停在 ±10 丢 1 例真值段:原因是答题不足时真值簇落后头名 ≥ 8 分;没有试「停后再多问一题」的变体。
|
||||
- 开放集非盲测;封存盲测(`sealed_holdout_rerun.py`)不受影响。
|
||||
|
||||
- 新增 `scripts/research/varga_resolution_m1.py`,沿用 M0 的 2 分钟评分 / 1 分钟扫描 / `refresh_probes=false` 链路,不改生产代码。
|
||||
- 全量完成 `77 × 4 = 308` 个 case-radius,`errors=0`;结果见 `artifacts/varga-resolution/varga_resolution_m1.json`,日志见 `m1-full-v2.log`。
|
||||
- 每盘分别计算 `raw`、`percent`、`uniform` 段质量;输出固定阈值 `0.5/0.6/0.7/0.8/0.9`、全样本拟合对照、逐案例留一法阈值选择与验证结果。
|
||||
- 留一法严格排除验证案例;输出 `eligible / coverage / accuracy / truth_retained`,并单列空 coverage、并列、真值排除和 `1900` 年前 LMT 分层。
|
||||
- 关键结果(raw,全量正确率 / 真值段保留;LOO 选阈值后的 eligible、accuracy、retained):
|
||||
## 与另一会话 08:49 归档(staging `bedb4d7b`)的关系
|
||||
|
||||
| 半径 | 盘 | 全量 top 段正确 | 全量真值段保留 | 全量 ≤2 段 | LOO eligible / accuracy / retained |
|
||||
|---|---|---:|---:|---:|---:|
|
||||
| ±10 | D1 | 76/77 | 76/77 | 77/77 | 77 / 0.987 / 0.987 |
|
||||
| ±10 | D9 | 71/77 | 76/77 | 68/77 | 23 / 0.913 / 0.957 |
|
||||
| ±10 | D10 | 69/77 | 76/77 | 63/77 | 29 / 0.931 / 0.966 |
|
||||
| ±15 | D1 | 74/77 | 75/77 | 77/77 | 77 / 0.961 / 0.974 |
|
||||
| ±15 | D9 | 61/77 | 75/77 | 50/77 | 14 / 0.929 / 0.929 |
|
||||
| ±15 | D10 | 59/77 | 76/77 | 52/77 | 8 / 0.875 / 0.875 |
|
||||
| ±30 | D1 | 75/77 | 76/77 | 77/77 | 75 / 0.973 / 0.987 |
|
||||
| ±30 | D9 | 50/77 | 76/77 | 25/77 | 11 / 1.000 / 1.000 |
|
||||
| ±30 | D10 | 52/77 | 76/77 | 25/77 | 16 / 1.000 / 1.000 |
|
||||
| ±60 | D1 | 68/77 | 76/77 | 76/77 | 54 / 0.944 / 0.981 |
|
||||
| ±60 | D9 | 41/77 | 74/77 | 11/77 | 17 / 0.588 / 0.941 |
|
||||
| ±60 | D10 | 34/77 | 74/77 | 10/77 | 9 / 0.778 / 1.000 |
|
||||
|
||||
LOO 的高准确率部分来自只交付少量 eligible 案例,不能当全集准确率;±30 以上分盘的覆盖和并列退化明显。三种模式完整逐案例结果在机器 JSON,uniform 的并列数显著更高;LMT 单列,不能剔除。
|
||||
|
||||
- M0 第二次全量字节复跑未完成:`m0-full-rerun.log` 仅约 103 行,目标 rerun JSON 不存在,不能宣称逐字节一致;首轮 M0 全量仍是唯一完整复现证据。
|
||||
|
||||
|
||||
## M2 · not_started
|
||||
|
||||
尚未执行段级信息增益排序、六题与早停分开结果、候选保留集合逐格比较、wrong1/wrong2 和日期 ±7 稳健性。`refresh=False` 首轮探针为空的案例必须保留为空,不能用刷新探针补齐。
|
||||
|
||||
## M3 · not_started
|
||||
|
||||
尚未执行事业(D1+D10)、婚恋(D1+D9)、综合(D1+D9+D10)三种取盘策略,也未统计各半径目标盘只有 1 段的“不用校正”比例。
|
||||
|
||||
## M4 · pending
|
||||
|
||||
已创建阶段性报告 `docs/research/rectification_varga_resolution_2026_09_30.md`,含候选档位、诚实出口与实现前置条件;M2/M3 无实测,尚未形成最终研究结论或实现单。不得把研究候选档位当成已校准的产品阈值。
|
||||
|
||||
## 运行命令与证据
|
||||
|
||||
- M0 全量:
|
||||
`PYTHONUTF8=1 PYTHONHASHSEED=0 python scripts/research/varga_resolution_probe.py --radii 10,15,30,60 --json-out docs/research/varga_resolution_baseline_2026_09_30.json`
|
||||
- M0 日志:`artifacts/varga-resolution/m0-full.log`
|
||||
- 首轮 M0 定向测试:`PYTHONUTF8=1 python -m pytest -q tests/test_varga_resolution_research.py`,当时 4 passed;当前收尾复验为 77 passed,见下文。
|
||||
- 既有基线定向测试:`artifacts/varga-resolution/baseline-targeted.log`,exit 0。
|
||||
- 快速门:`artifacts/varga-resolution/baseline-quick.log`;需以命令实际 exit 与日志内容报告,不能把开工预检当作通过。
|
||||
- 开工预检:`artifacts/varga-resolution/pre-work.log`,status=`fail`;失败原因是仓库环境的 preflight fragment-scan 合同缺少预期 `.workbuddy/skills/jyotish-vedic-astrology` 镜像路径。该环境缺口不归因于本研究,也不能伪称通过。
|
||||
|
||||
## 本轮收尾复验(2026-09-30)
|
||||
|
||||
- 报告 ±30 D1 的 LOO 数字已从误写的 `75 / 1.000 / 1.000` 修正为 `75 / 0.973 / 0.987`,精确值为 0.97333333 / 0.98666667;新增测试逐行对比 M1 报表全部 12 行与机器 JSON。
|
||||
- `PYTHONUTF8=1 PYTHONHASHSEED=0 python -m pytest -o addopts='' -q tests/test_varga_resolution_research.py`:**77 passed,exit 0**(主会话独立复验 1.19s),日志 `artifacts/varga-resolution/closure-targeted.log`。原 4 个测试断言不变,新增合成算术、空训练、LOO held-out 身份隔离、并列、LMT、308 唯一 case-radius、36 组汇总重算测试;没有重跑引擎,不证明全量字节复现。
|
||||
- M0/M1 `--help` 均 exit 0,日志 `closure-m0-help.log`、`closure-m1-help.log`。
|
||||
- `PYTHONUTF8=1 PYTHONHASHSEED=0 python -m pytest -o addopts='' -q tests/test_repo_privacy_markers.py`:**63 passed,exit 0**,日志 `closure-privacy.log`。只覆盖当前 tracked repository;新增研究文件仍未跟踪,不能据此宣称产物隐私全绿。
|
||||
- 对全部本轮脚本、文档、测试及研究 JSON/log 复用现有 `build_rules` / `scan_text` 显式补扫:**未通过**。29 个成功解码文件中 M0 baseline JSON 有 R003 共 3 次命中(扫描时刻字符串字段,未输出标记值);旧 `baseline-quick.log` UTF-8 与 GB18030 严格解码均失败。初次 UTF-8-only 扫描 exit 1,带严格回退的补扫也 exit 1,证据 `closure-explicit-privacy.log`。未删改研究证据或放宽隐私例外;提交前需独立核查这些命中并完成原日志的保真扫描。
|
||||
- 回放不是每例答满六题:308 个 case-radius 中无探针 36、零回答 38,实际 0–6 题分布为 38/6/5/9/11/16/223。全部保留分母。top 命中包含并列;percent 为后验质量归一化,不是独立概率校准。报告已补真实定义与局限。
|
||||
- M1 metadata 的确定性标志不构成复跑证据;M0 任务书起点表逐格对齐仍欠。M2/M3 未执行,BUG-1105 保持 investigating,索引已同步为部分完成。
|
||||
- 最终完整 quick 补验使用本机 Python 3.11.7,日志 `artifacts/varga-resolution/closure-quick.log`,**exit 1**。Python 子段为 **1000 passed、1 failed、1 skipped、3 subtests passed(473.06s)**;唯一列出的 pytest 失败是 `tests/test_consultation_native_layers.py::test_the_new_layer_leaves_every_existing_output_unchanged`,在去除既有 volatile 字段后比较两次输出的 JSON 等价性断言失败。日志差异片段涉及 VedAstro 请求清单,但详情截断,根因未确定。本次在 Python 步骤停止,不以开工时的 tsx 失败解释本次失败,不能声称与基线逐项一致。
|
||||
- quick 运行期间 5 个 tracked oracle pending packet JSON 变脏。独立只读核查确认:全部 JSON 与 HEAD 语义相同,归一换行后字节相同,只有 LF→CRLF。写入链为 `run_quality_gate.py` → `test_external_oracle_sanity_closure.py` → `external_oracle_sanity_closure.py` → `oracle_closure_master_dashboard.py` → `tajika_annual_closure_status.py` → `tajika_annual_oracle_queue.py:272–284` 的文本模式写入。未恢复或暂存这些非计划文件,排除在本研究候选交付之外;不能把这一副作用当作上条测试失败的已证根因。
|
||||
- 独立验收复核全部 M1 表格和回答分布与 JSON 一致,另跑研究定向 **77 passed,exit 0(1.34s)**;只发现本页一处残留“当前 4 passed”,已改为首轮历史值。复核不覆盖完整引擎二次复跑,也不推翻 quick / 隐私补扫未通过的结论。
|
||||
|
||||
### 最终文档收口复验
|
||||
|
||||
- 最终文档更新后合跑研究定向与 tracked 隐私守卫:**140 passed,exit 0(6.63s)**,即 77 项研究测试 + 63 项隐私测试;日志 `artifacts/varga-resolution/closure-final-checks.log`。
|
||||
- 对本轮 7 份修改文档(含未跟踪报告/进度及错误台账)复用现有隐私规则显式扫描:**0 findings**。此结论仅覆盖这 7 份文档,不覆盖全部研究 JSON/log,不解除此前产物补扫的 3 处命中及旧日志解码缺口。
|
||||
- 本轮 tracked 文档 `git diff --check` exit 0;全工作树另有已确认的 5 个 oracle 换行副作用,未恢复、未暂存。生产代码、前端、线上评分权重和门槛未改,未提交、未推送、未部署。完整 quick 仍为未通过,整单仍未验收。
|
||||
|
||||
## 未完成原因与恢复点
|
||||
|
||||
第二次全量 M0 复跑已于本轮中止,**未完成**:`artifacts/varga-resolution/m0-full-rerun.log` 仅有 103 行(已输出 约 26 例×4 档中的前三档,远少于完整 77×4=308 个 case-radius 行),`artifacts/varga-resolution/varga_resolution_baseline_rerun.json` 不存在,因此没有第二次复跑 exit/hash 可报告,也没有逐字节一致性证据。当前没有残留 Python 进程。不得把该日志算作全量通过;首跑的 `m0-full.log`/baseline JSON 才是 M0 全量证据。后续若恢复,须从头完成 77×4 并再比较 hash;本轮不再等待。M1 后续已完成 308 条全量分析,见上文,不再沿用“M1 未开始”的旧状态。M2/M3 为 not_started、M4 为部分完成;后续按原任务书让步顺序 M0 > M1 > M3 > M2 推进,不能以当前文档收尾替代研究验收。
|
||||
- 该归档是同一任务书的**部分**执行:M0 首轮 + M1,M2/M3 `not_started`,第二次复跑未闭环,隐私扫描只覆盖提交子集。本分支为完整执行(M0–M3 + 稳健性,两次完整运行逐字节一致),合并时以本分支的 `varga_resolution_lib.py` / `varga_resolution_probe.py` / 测试为准。
|
||||
- 两边表 1 的 D9/D10 段数在 ±30/±60 略有差异(如 ±30 D10 5.30 vs 5.60):对方按「连续段」计数(同一星座不连续再出现算两段),本分支按「不同上升星座数」计数;±10/±15 两边一致。
|
||||
- 对方新增的 `scripts/research/varga_resolution_m1.py` 依赖其自有 lib 的函数名,与本分支 lib 不兼容,随合并移除;`artifacts/varga-resolution/` 两个 JSON 为其中间产物,一并移除;`BLOCKED.md` 与 `pre_work_error_ledger.md` 中对方的记录保留不改。
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
| `TASK-rectification-futile-collect-stop-20260929.md` | `PROGRESS-rectification-futile-collect-stop-20260929.md` | **生时校正停掉无效补经历循环(止血)**:打字经历不收窄(BUG-560 后果),流程却一路索要,真机 22 件整窗不动;采集只为开闸、门开后只问点选卡问完即出卡;交付正文去吻合率;多段时旁白误报「范围没变」;交付轮带采集题 | 已验收(Claude 2026-09-29 合并验收:全量前端 4302/24 与基线同 24 条环境失败、tsc 0、lint 0 error、`/` Static、gzip +0.16%、快速门 pytest 1001 passed、两份回放复跑一致),待部署核对 | BUG-1084~1087 |
|
||||
| `TASK-rectification-holdout-expansion-20260929.md` | `PROGRESS-rectification-holdout-expansion-20260929.md` | **开放评价集扩到 ≥60 例(v5)**:所有打分判定都在 20 例上做,1 例 = 5pp,KP / 精度闸 / V1n 的 no_benefit 都只差 1–3 例。只用 Rodden AA 公开名人,事件人工核对出处,分层(年代 / 纬度 / 南半球 / 跨午夜 / UTC+8),v4 不动;基线成绩单 v4 子集须与已发布数字逐格一致。研究单的判定以 v5 为准 | 已验收(Claude 09-29:77 例、v4 子集数字逐格一致、抽样 6 例来源一致、冻结文件零改动;UTC+8 5/6 为数据可得性缺口,接受;已合入 staging)→ 研究单判定可开工 | 分支 `codex/rectification-holdout-expansion-20260929`(BUG-1090) |
|
||||
| `TASK-rectification-scoring-research-20260929.md` | `PROGRESS-rectification-scoring-research-20260929.md` | **打分方法研究(离线)**:R-A 似然比校准权重(leave-one-case-out,KP / Pranapada / D60 作为特征由数据定权重、允许负权重)、R-B 缺席证据(口述时间线覆盖时段内的空白年扣分,必测漏说稳健性)、R-C 精度追问可行性(对已说事件追问月份,算在定向追问 2 条额度内)。判定必须在 v5 上做;有收益才立实现单并按 ERR-110 重冻结 | 已验收关单(Claude 09-30:v5 77 例三项全部不过硬红线 1,稳定特征 0 个;BUG-1091 closed_by_design;打分路线关闭,后续走产品口径「盘型选择」研究) | 分支 `codex/rectification-scoring-research-20260929`(BUG-1091 closed_by_design) |
|
||||
| `TASK-rectification-varga-resolution-research-20260930.md` | [PROGRESS](PROGRESS-rectification-varga-resolution-research-20260930.md) | **「盘型口径」研究(BUG-1105,离线)**:M0 首轮、M1 全量各 308 个 case-radius;±60 D9/D10 真值段保留各 74/77 < 基线 75/77,不通过红线;LOO 高准确率仅在小覆盖子集成立。生产零改动 | 执行中(部分完成;M0 逐格一致性/二次复跑未闭环,M2/M3 not_started,M4 阶段性) | `codex/rectification-varga-resolution-research-20260930`;用户要求归档到 staging,提交子集与排除项见 PROGRESS(不代表验收);[研究报告](../research/rectification_varga_resolution_2026_09_30.md) |
|
||||
| `TASK-rectification-varga-resolution-research-20260930.md` | `PROGRESS-rectification-varga-resolution-research-20260930.md` | **「盘型口径」研究(离线)**:打分层关闭后,把校正目标从分钟改为分盘上升段。v5 实测:±10 六题后 D1 单一 75/77,D9/D10 ≤2 种 68/63,多数=真值 88%/84%;±30 起分盘分不开。M0 入库段扫描与区间脚本、M1 段级汇总与阈值-准确率(留一法)、M2 按段选题、M3 按问题域取盘 + 「不用校正」比例、M4 实现单要点。不改引擎 / 常数 / 冻结文件;红线:真值段不被排除 ≥ 现在真值在区间比例 | 已实现待验收(Claude fork 2026-09-30:M0 两张表逐格复现;±10 D9/D10 头段=真值 88%/86%、占比≥0.6 留一法 92%/90%;±30 约 1/4–1/3 可信;±60 分盘不过硬红线 1;按段选题 ≤±30 +3~+7 例;提前停不过;「不用校正」三策略 0/77;建议立实现单) | 分支 `codex/rectification-varga-resolution-research-20260930`(BUG-1105) |
|
||||
| `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`,真机欠 | — |
|
||||
|
||||
Reference in New Issue
Block a user