diff --git a/docs/BUG_HISTORY.md b/docs/BUG_HISTORY.md index 23927273..90b84111 100644 --- a/docs/BUG_HISTORY.md +++ b/docs/BUG_HISTORY.md @@ -14908,7 +14908,7 @@ ## BUG-1105 | 生时校正目标函数是分钟而非用户要用的分盘;窗内盘型不变的用户被迫答题;无「分盘不可判」出口 -- 状态:resolved(研究阶段,2026-09-30:v5 77 例上盘型口径成立,建议立实现单;产品层实现另开单) +- 状态:resolved(研究阶段;2026-09-30 Claude 验收:M0 两张表与我 09-30 起点数字逐格一致、231 例区间端点 0 差;M1–M3 + 稳健性两次完整运行 JSON 逐字节一致,M0 基线与已提交文件逐字节一致;测试 48 passed;快速门 Python 1001 passed / 1 skipped;生产代码与冻结文件零改动。结论成立:±10 分盘可分档给可信度,±30 多数用户只能给 D1,±60 分盘 blocked;提前停不过门。产品层实现单另立) - 首次发现 / 最近更新:2026-09-30 / 2026-09-30 - 影响面:校正选题(按分开候选分钟排序)、交付卡(分钟区间 + 最可能分钟)、并列判定(按分钟数);`frontend/src/lib/rectification-agentic/v9/*`、`core/build-state.ts`、`user-copy.ts`。 - 用户现象:31 分钟窗答完题范围不动、「最可能的分钟」头名只有 64%(v5);用户真正要的「用哪张盘解读」没有被回答;±30 以上的窗口仍给分钟区间,实际上分盘已不可靠。 diff --git a/docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md b/docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md index c7b93552..008f1d76 100644 --- a/docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md +++ b/docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md @@ -52,3 +52,12 @@ - 该归档是同一任务书的**部分**执行: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` 中对方的记录保留不改。 + +## Claude 验收(2026-09-30) + +- 子代理在最后一步(确定性复跑 + 快速门)被会话限额中断,M1–M3 结果 JSON 未落盘。我用其脚本从头跑两遍(19m50s / 约 20 min,`PYTHONHASHSEED=0`,共用缓存):`research_A == research_B`、`baseline_A == baseline_B`、`baseline_A == 已提交 varga_resolution_baseline_2026_09_30.json`,逐字节一致;`research_A` 作为 `docs/research/varga_resolution_research_2026_09_30.json` 入库。 +- 测试:`test_varga_resolution_research.py`(17)+ 隐私守卫 + 完整性门禁 + 打分研究 + v5 schema = 48 passed;`py_compile` 两个研究脚本通过。 +- 快速门:Python 步 1001 passed / 1 skipped(与基线一致);`npm test` 步为 worktree 无 `node_modules` 的环境缺口,本单零前端改动。 +- 范围:`git diff --name-only` 只在 `scripts/research/`、`tests/`、`docs/`;冻结文件与引擎零改动。 +- 合并:rebase 到 `origin/staging` 时与另一会话 08:49 归档的部分研究(`bedb4d7b`)同名文件冲突,按上一节说明以本分支为准,移除其不兼容的 `varga_resolution_m1.py` 与 `artifacts/varga-resolution/`。 +- 结论:**通过**。研究结论成立,下一步写产品层实现单(按研究文档 §7 与出口表)。 diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 93105465..ef95ca0a 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.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-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-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 09-30:M0–M3 + 稳健性完整执行,复跑逐字节一致,红线逐格核对;盘型口径成立——±10 D9/D10 头段=真值 88%/86%、占比≥0.6 留一法 92%/90%,±30 约 1/4–1/3 用户可信,±60 分盘 blocked;提前停不过门;「不用校正」只对 D1 成立。另一会话 08:49 部分归档 bedb4d7b 已被取代并移除)→ 实现单待写 | 分支 `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`,真机欠 | — |