diff --git a/docs/tasks/TASK-rectification-narrower-delivery-fix-20261019.md b/docs/tasks/TASK-rectification-narrower-delivery-fix-20261019.md new file mode 100644 index 00000000..ff7f85b1 --- /dev/null +++ b/docs/tasks/TASK-rectification-narrower-delivery-fix-20261019.md @@ -0,0 +1,42 @@ +# TASK · 生时校正交付区间收窄 · 第三份修复单(issue #77) + +- 日期:2026-10-19 +- 被验提交:`f67d266129393197821c1373d0cfdac4c50f2e1f`(分支 `codex/rectification-narrower-delivery-20261016`) +- 前序:`TASK-rectification-narrower-delivery-fix-20261017.md`(F1–F4);产品 10-17 选 A(等回放跑完再交) +- 状态:同一单再次未过,按循环规则等产品负责人拍板谁来改(选项见 issue #77) +- BUG 编号:不新开号;显示漏段那条合并时由 BUG-1375 顺延为 **BUG-1392**(1375/1376 已归 #81) + +## 验收结论(Claude) + +| 项 | 结论 | 证据 | +| --- | --- | --- | +| F1 回放 | 数字通过 | Claude 从两份 JSON 的 924 条记录独立重算:12 格(3 窗口 × 全对 / 翻 1/3/5)改前整段与改后分段包含真值均 70/70;两边可比较的是同一批 840 条;未完成的 84 条是同样 7 个案例、同一阶段停住 | +| 显示宽度 | 通过 | ±60 全对中位 32.5 → 21.5;±60 翻 1 题 65.5 → 34 | +| tsc / lint | 通过 | 0 错;0 error | +| **隐私标记** | **未通过** | `tests/test_repo_privacy_markers.py`:`R003` 命中 `docs/research/rectification_narrower_delivery_baseline_2026_10_16.json` 2 处、`..._t1_2026_10_17.json` 4 处 | + +AGENTS §8.5:写了实测数字的文档推送前必须跑这条测试。 + +## H1 · 回放文件不得含与隐私标记相撞的钟点(必做) + +两份 JSON 的每条记录以 `HH:MM` 字符串记了 `credible_intervals`、`credible_range`、`living_display_intervals` 等区间端点。其中有端点与 `R003` 规则的值相同。不论是否巧合,提交的文件都不得命中。 + +改法(推荐): + +- 回放脚本输出时,区间端点改记为**相对本例窗口起点的分钟数**(整数),不写钟点字符串;真值也只记相对分钟。`truth_in_envelope`、`truth_in_display`、`remaining_minutes`、`display_width_minutes` 等结论字段不变。 +- 已有两份 JSON 可以用一次性转换脚本按同一规则改写,不必重跑回放;转换前后每条记录的结论字段逐条相等(进度里贴核对输出)。 +- **不要**把这两个文件加进 `test_repo_privacy_markers.py` 的碰撞白名单(白名单只用于已审核的单点、且需要产品授权)。 + +验收: + +- `python3 -m pytest tests/test_repo_privacy_markers.py -q` 绿。 +- 两份 JSON 中不再出现 `"HH:MM"` 形状的区间端点;Claude 重算的 12 格包含率与本单「验收结论」表相同。 + +## 不要做 + +- 不改任何前端 / Python 业务代码(上一轮已验收)。 +- 不放宽隐私规则。 + +## 回报 + +issue #77 回报新 SHA,贴隐私测试结果与转换前后结论字段的核对输出。