diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 866519e4..b42d17cd 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -253,7 +253,7 @@ | `RECONCILE-20260916.md` | — | **对账清单(不是任务书)**:状态板与现实脱节(09-15~16 那 10 份早已合入却仍写「待领取/待验收」,本轮已修正),所以另外 7 份 09-10~14 的单**不能拿 README 当证据**——它们没有 `PROGRESS-*.md`,但引用的 BUG 号都是 `resolved`。要么被别的单顺带修了没留记录,要么压根没做。每行回一个「做了/没做」即可。另附三条我已查到确定没做的证据、两条状态未闭环的、以及 BLK-001 仍红(2026-09-16 在 `4f643aa0` 复跑确认) | 待产品负责人 / 执行方回填 | — | | `TASK-rectification-precision-gate-guided-collect-20260916.md` | `PROGRESS-rectification-precision-gate-guided-collect-20260916.md` | **出卡加精度门槛 + 引导式补经历**:真机 30 分钟窗给 5 件事 / 3 领域就出卡,区间 20 分钟、5 候选并列 26/26/20%,卡下只有自由文本邀请。产品拍板 D1 出卡门槛「宽度 ≤10 分钟且前两名差 >3 个百分点且不并列」;D2 用户说没有了仍按现行规则出卡(保留永远给结果);D3 门槛未达改为系统点名逐题问 + 类型芯片 + 年/月选择器录入,删自由文本邀请;D4 跳过的线换问法再问一次(拒绝不重问,改 BUG-687 口径);D5 时间点题答「没发生」不关领域、存在性题问整个领域、七条线一张表不许按领域写死。引擎新增 `guided_collect_windows`(边界不设 45 天闸门、含小运),不改打分与 lead。Skill 10.0.27。附 T6 两条核实:B/C/D 回执文案对调、性格题后范围回弹 8 分钟。BUG-740~743 | **已验收:未通过(带修复单)** | `cfb41daf`;tsc/lint/Static/gzip(+0.44%) 通过,D1~D5 单测通过;但 `npm test` 新增 16 红(校正既有断言未跟上)+ memoization golden 因 receipt 新键红(门禁级,staging 仍部署 317e9f18);引导窗口领域轮询分配、回放未按真值注入、录入卡走模型轮 → `TASK-rectification-precision-gate-guided-collect-fix-20260916.md` | | `TASK-sidebar-unify-20260916.md` | — | **侧栏统一成一个组件 + 次级页共享外壳 + 跳转不整页刷新(纯前端)**:`/` 用 `AppSidebar`、四个次级页用另写的 `AppNavRail`,两套标记结构共用一份 CSS,会话行少 `.session-main` 一层(无内边距 / 44px 高 / 当前项标记、留 44px 空列)、页脚 56px 菜单 vs 44px 文字;首页进次级页是 `window.location.assign` 整页刷新,次级页各自在组件里挂 `SecondaryShell`、无共享 layout 无缓存,每次跳转重拉 `/api/sessions` + `/api/account`;折叠状态不持久。产品拍板 D1 只留一个 `AppSidebar`(操作回调可选 = 只读模式,D9「不带写操作」维持)、D2 路由组 `app/(secondary)/` layout 承载外壳、D3 改 ``、D4 模块级 60 s 缓存 + 首页写操作失效、D5 折叠状态存 cookie、D6 回首页慢的启动链另开一单。实测:接口 TTFB 0.63~0.90 s,回 `/` 启动链串行 ≥4 次往返 + 揭幕闸门 4 s。BUG-744~746 | 待领取 | — | -| `TASK-rectification-precision-gate-guided-collect-fix-20260916.md` | — | **验收修复单**:F1 `decision_receipt` 新增 `guided_collect_windows` 让 `test_rectification_engine_memoization` golden 红(在 CORE_PYTEST_TARGETS,staging 未部署 cfb41daf);F2 16 条既有校正断言红未按三栏改;F3 `mayDeliverOnPrecision` 缺省即放行、短路 BUG-654 且 `guidedCollectExhausted` 不含 refresh;F4 无领域轨道窗口轮询贴领域、一窗只问一领域;F5 离线回放注入 month_lo 非真值方向、0/20 不作数;F6 录入卡合成「或」列表句走模型轮;F7 page.tsx +1、手造 fixture。D6 门槛达标即出卡待产品确认。BUG 段 744 起 | 待领取 | 与主单同文件;开工基线 3391 / 47 | +| `TASK-rectification-precision-gate-guided-collect-fix-20260916.md` | — | **验收修复单**:F1 `decision_receipt` 新增 `guided_collect_windows` 让 `test_rectification_engine_memoization` golden 红(在 CORE_PYTEST_TARGETS,staging 未部署 cfb41daf);F2 16 条既有校正断言红未按三栏改;F3 `mayDeliverOnPrecision` 缺省即放行、短路 BUG-654 且 `guidedCollectExhausted` 不含 refresh;F4 无领域轨道窗口轮询贴领域、一窗只问一领域;F5 离线回放注入 month_lo 非真值方向、0/20 不作数;F6 录入卡合成「或」列表句走模型轮;F7 page.tsx +1、手造 fixture。D6 产品已拍板:门槛只是必要条件,仍问完线再出。BUG 段 744 起 | 待领取 | 与主单同文件;开工基线 3391 / 47 | ## 命名与归档 diff --git a/docs/tasks/TASK-rectification-precision-gate-guided-collect-fix-20260916.md b/docs/tasks/TASK-rectification-precision-gate-guided-collect-fix-20260916.md index 815c82ee..b94cb923 100644 --- a/docs/tasks/TASK-rectification-precision-gate-guided-collect-fix-20260916.md +++ b/docs/tasks/TASK-rectification-precision-gate-guided-collect-fix-20260916.md @@ -66,9 +66,9 @@ - 实证:`core/rectification-decision.ts` `mayDeliverOnPrecision`:`precisionGateMet` 与 `guidedCollectExhausted` 都缺省时返回 `true`;`decideRectification` 用它把 `stillNeedNarrowing`、`datedMethodCollectOpen` 一并绕过。于是任何不传这两个 flag 的调用(`decideConversationalSession`、`decideAfterInferenceChange` 的无 state 分支、全部既有单测)都失去了"刷新与定向线未穷尽不得交付"(BUG-654 / 656)。`tied-first-fix` 那条红就是这个:`targetedCollectExhausted: false` 也交付了。另外 `guidedCollectExhausted()` 只收 `targetedCollectExhausted`,不含 `refreshExhausted`:引导池空、刷新还没试过,也会直接出卡。 - 修法: 1. flag 缺省 → 门槛**不参与**,`stillNeedNarrowing` / `datedMethodCollectOpen` 按原逻辑生效(helper 路径行为回到 317e9f18)。 - 2. flag 传入 → `mayDeliver = userStopped || precisionGateMet || (guidedCollectExhausted && refreshExhausted)`。 - 3. **产品拍板项(见 §3 D6)**:`precisionGateMet` 为真时是否允许跳过未问完的采集线直接出卡。默认按 D6。 -- 验收:`rectification-tied-first-fix` / `decide-next-action` / `convergence-budget` 三条恢复绿或按三栏改;新增单测「引导池空但 refreshExhausted=false → 不交付」。 + 2. flag 传入 → 出卡条件 = `userStopped || (precisionGateMet && guidedCollectExhausted && refreshExhausted && targetedCollectExhausted)`;`precisionGateMet` 为假时,即使所有线问完,也只进 `collect`(用户说「没有了」除外,那时按现行规则出卡)。 + 3. 按 D6,`precisionGateMet` 不短路任何采集线;cfb41daf 里 `stillNeedNarrowing(input) && !mayDeliverOnPrecision(input)` 与 `datedMethodCollectOpen ... && !mayDeliverOnPrecision(input)` 两处改回原判断,只在最终交付分支加门槛。 +- 验收:`rectification-tied-first-fix` / `decide-next-action` / `convergence-budget` / `collect-direction` 那几条应大部分恢复绿(原语义"线没问完不出卡"回来了);新增单测「引导池空但 refreshExhausted=false → 不交付」「门槛达标但定向线未问完 → 继续问」「所有线问完但门槛未达 → 继续引导(无题则按 D2 出卡)」。 ### F4(P1)引导窗口的领域是轮询分配的,一个窗口只问一个随机领域 @@ -96,7 +96,7 @@ ## 3. 决策记录 - D1~D5 沿用主单。 -- **D6(本单新增,待产品确认,默认按此执行)**:`precisionGateMet` 为真即出卡,剩余采集线不再问;Skill §流程那句"所有线问完或用户说没有了后才交付"改为"门槛达标、用户说没有了或引导题问完后交付"。若产品要求仍问完线,改 `mayDeliver` 去掉 `precisionGateMet` 短路即可,其余不动。 +- **D6(产品负责人 2026-09-16 拍板:问完再出)**:`precisionGateMet` 只是出卡的**必要条件**,不是充分条件。交付仍要等自动题、引导窗口题、跳过线重问、未覆盖领域题全部问完(或用户说「没有了」)。也就是说 cfb41daf 里"门槛达标就短路剩余采集线"的写法要撤回:`stillNeedNarrowing` / `datedMethodCollectOpen` 不再被 `mayDeliverOnPrecision` 绕过。Skill §流程保留"所有线问完或用户说没有了后才交付"原句,只在其前加"且目前范围 ≤10 分钟、头名不并列"。 ## 4. 硬红线