Files
Jyotisha/docs/tasks/PROGRESS-rectification-collect-direction-20260904.md
T
Jesse_Chen 3847e9c91d
Independent Staging Quality Gate / validate (push) Failing after 8m39s
Independent Staging Quality Gate / publish (push) Has been skipped
fix(rectification): collect a dated third event before OOS and occupation
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>
2026-09-04 18:17:17 +08:00

106 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-526accepted 生时报告 worker 读校正表)。本单实际落点 **BUG-527530**
## 实现要点
- `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` 与 GET `interview` 都带。提示词禁止无数字的「范围在收窄」。词表加「继续收窄」「范围还在」,只拦 `spokenPrompt`
## 偏离与断言改写
`rectification-yearless-ungrounded``validate_holdout` / `oos_blind` **未改断言**:该 fixture 已有 4 条带日期证据,`meetsAcceptanceEventQuality` 为 trueOOS 结论仍成立。
训练门未开时下一问从方法轮转(感情/事业)改为 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.mjs` MODULE_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`、本文件