Holdout stays closed until the training gate opens and skips declined domains. Dated collect order is shared with exhaustion; spoken prompts must name the domain; progress copy uses collection_progress only. BUG-527 through BUG-530. Co-authored-by: Cursor <cursoragent@cursor.com>
6.0 KiB
PROGRESS · 采集阶段第三件事没有方向(2026-09-04)
工作树:.worktrees/rectification-collect-direction-20260904
分支:codex/rectification-collect-direction-20260904
基线:任务书写 origin/staging 45bdb63e;开工时工作树落后 3 个提交,已 rebase。交付前再 git fetch,快进合入 7ee7f825(共用 Button)与 5c5f25a3(报告 worker BUG-526 记录)。当前与 origin/staging 对齐,改动未提交。
任务书:docs/tasks/TASK-rectification-collect-direction-20260904.md
未改 Python、未 bump Skill(仍 10.0.14)、未改 decideRectification 采用/确认门。未 push。
| 任务 | 状态 | BUG |
|---|---|---|
| 5.1 盘外核对加训练门并跳过拒答领域 | 完成 | BUG-527(任务书原写 524) |
| 5.2 带年份采集顺序进入计划主流程 | 完成 | BUG-528(任务书原写 525) |
| 5.3 采集题干必须指向领域 | 完成 | BUG-529(任务书原写 526) |
| 5.4 进度句有数字才说 | 完成 | BUG-530(任务书原写 527) |
编号
rebase 后 docs/BUG_HISTORY.md 最大号已是 BUG-526(accepted 生时报告 worker 读校正表)。本单实际落点 BUG-527~530。
实现要点
holdoutFollowupFor:meetsAcceptanceEventQuality未开 →null;否则跳过declinedDomains,先 OOS 提示再带年份 holdout 事件。validate_holdout早退与holdoutValidation === "not_started"共用。DATED_COLLECT_ORDER:家人 → 学业 → 财务 → 搬家 → 健康 → 事业 → 感情。主流程在方法轮转之前、训练门未开时走nextDatedCollectFollowup;exhaustionSpokenCollectFollowup同一函数。职业与other排最后。datedCollectFollowup.source = "method_coverage"(采集,不是盘外核对),这样isOfferBlockingFollowup对 relatives/D9/D10 仍挡出牌。COLLECT_DOMAIN_KEYWORDS+validateSpokenPrompt:collect_method_evidence且无choice_frame时题干必须命中领域词,否则domain_missing。第二次失败用USER_COLLECT_QUESTION[domain]。区分题 / OOS 不套这层。collectionProgressFromReceipt:{ scoreable, minimum, missing }或null。读盘projectTurnDecision与 GETinterview都带。提示词禁止无数字的「范围在收窄」。词表加「继续收窄」「范围还在」,只拦spokenPrompt。
偏离与断言改写
rectification-yearless-ungrounded 的 validate_holdout / oos_blind 未改断言:该 fixture 已有 4 条带日期证据,meetsAcceptanceEventQuality 为 true,OOS 结论仍成立。
训练门未开时下一问从方法轮转(感情/事业)改为 datedCollectOrder。凡改断言均在测试里写了原值/新值/原因。摘要:
| 文件 | 原值 | 新值 | 原因 |
|---|---|---|---|
rectification-eight-method 一件学业 |
d9_relationship |
relatives / family |
训练门未开先补家人 |
| 同上,学业+家人+事业读盘 | d9_relationship |
d2_finance |
1 条 holdout,训练门未开,家人/学业已有记录 |
| 同上,3 条+1 holdout、家人拒答 | 方法轮转 collect | finance collect |
同上,补财务而不是区分 |
rectification-range-offer-deadend 穷尽 |
occupation | relocation | 顺序合并后搬家在职业前 |
rectification-agentic-entry 源码锁 |
interview: fields |
{ ...fields, collection_progress } |
GET 带进度 |
rectification-question-ownership / v10 set-focus |
「哪年上的大学」 | USER_COLLECT_QUESTION[domain] |
默认 dossier 一件事业 → 家人,大学不命中 |
rectification-walkthrough-polish retry 计划 |
relationship retry | family | 已关闭感情不挡家人采集 |
测试
开工聚焦套件(rebase 后、本单改动前未单独存档数字;交付时本套件全绿):
tsx --test eight-method / yearless-ungrounded / server-focus / collect-stall / adopt-narration-20260904 / answer-choice / collect-direction-20260904 / spoken-prompt / v9-agent / range-offer-deadend:
# tests 183
# pass 183
# fail 0
# cancelled 0
# skipped 0
# todo 0
exit=0
新文件 rectification-collect-direction-20260904.test.ts:8/8。
tsc --noEmit:本单文件 0 错。全量仍 2 个既有错误(app-sidebar.tsx ref、calendar.tsx Button onSubmit),与 7ee7f825 共用按钮合入后仍在,未触碰。exit=2。
校正相关 glob(含 v9-database Docker):
# tests 892
# pass 891
# fail 1
# cancelled 0
# skipped 0
# todo 0
exit=1
唯一失败 v9 legacy backfill…:并发 Docker 争用。该文件隔离重跑 7/7,exit=0。
全量 tests/*.test.ts(本机有 Docker;第一次跑在产品断言修完之前):
# tests 2611
# pass 2591
# fail 20
# cancelled 0
# skipped 0
# todo 0
exit=1
20 条拆开:
- 5 条本单产品失败(已修,隔离复跑全绿):
interview: fields、legacy quality 后d9_relationship、set-focus 大学题干、v10 set-focus、walkthrough relationship retry。 - 12 条 Docker/Postgres 争用(
database system is shutting down/database migration failed),与 BUG-523 基线同类;v9-database 隔离 7/7。 - 3 条
@base-ui/react/button/index.mjsMODULE_NOT_FOUND:personal-report-entry、personal-report-view、report-polling-contract。本单未改这些文件;node_modules/@base-ui/react/button/实际只有Button.mjs/index.js。
未改 Python;未声称系统 python3 预检通过。
改动文件
- 计划:
method-followup.ts - 校验/题干:
spoken-prompt.ts、user-copy.ts、rectification-v9-tools.ts - 进度:
evidence-model.ts、turn-decision.ts、route.ts、agentic-rectification.ts、agent-voice-lexicon.ts - 新增测试:
frontend/tests/rectification-collect-direction-20260904.test.ts - 回归:eight-method、range-offer-deadend、spoken-prompt、v9-agent、agentic-entry、choice-card、question-ownership、v10-conversation-focus、walkthrough-polish
- 文档:
docs/BUG_HISTORY.md、docs/tasks/README.md、CHANGELOG.md、本文件