Stop domain-wheel collecting and age-band years in prompts. Ask until the training gate, then discriminate until convergence, then deliver a range plus a concrete follow-up. Reserve holdout only with four dated events. Co-authored-by: Cursor <cursoragent@cursor.com>
5.5 KiB
5.5 KiB
PROGRESS · 生时校正采集流程重设计(2026-09-10)
工作树:.worktrees/rectification-collection-redesign-20260910
分支:codex/rectification-collection-redesign-20260910
任务书:docs/tasks/TASK-rectification-collection-redesign-20260910.md
基线:任务书写 origin/staging @ 3cd7a95d(代码 52db714b);开工接到当前 origin/staging @ cb045297(任务书文档提交,尚未含本单代码)。
代码提交:未提交。
开工回执
- 编号 BUG-646 / 647 / 648。开工时最大已占用号是 648(646/647 已在任务书占用)。
- 顺序:T1 收集池 → T2 锚定模板 → T3 删年龄段年份线索 → T4 holdout ≥4 → T5 缺口/S3/collect_waiting → T6 Skill 10.0.23 与测试改写。
已完成
- T1 / BUG-648:
collection-question-pool.ts。S1 按信息价值排序:邀请collect:invite:more(价值 2.0)→ 用户年份锚定 → 无年份 generic。训练门关时next_followup取池首。邀请拒答不把整个other列入禁问。 - T2:锚定规则用任务书概率表,不是让步里的统一 0.5:毕业→工作 0.8、上大学→搬家 0.6、感情跟进 / 事后追问 0.5。年份只来自账本。焦点 id
collect:anchor:<kind>:<year>,kind_hint写成anchor:…/generic:…/invite_more以便无question_id的 SQL 重建仍能记住已问键。 - T3:删除
COLLECT_QUESTION_YEAR_CUE。user-copy.ts无「年前后」。年龄段探针年份不入口述题干。 - T4 / BUG-647:
MIN_EVENTS_TO_RESERVE_HOLDOUT = 4(TS +case_holdout.py)。3 件全训练;回执not_reserved_min_events;报告 Real Case Calibration =not reserved。确认门与引擎计分未改。 - T5 / BUG-646:训练门关且池空 → 精确缺口句、无卡、占位「再说一件带年月的事」、客户端
collect_waiting。训练门开且增益见底 → 区间卡 + 「再补什么」。不做暂定采用。职业/占问层在训练门开后仍可问,不恢复家人/财务领域轮转。 - T6:Skill 10.0.23 live 与
versions/10.0.23逐字节相等。sha25691f5839e15514b80fa0370bb8b539686af211082e83bc951dc0e8250cbdbadcb。10.0.22 仍 deprecated、e3765b20…;10.0.21 仍3ced1073…。resolveExactSkillPackage可打开 10.0.21 与 10.0.22。CHANGELOG、BUG-646~648、走查 19–21、VOICE、DESIGN 已写。
三栏(既有断言)
| 位置 | 原值 | 新值 | 原因 |
|---|---|---|---|
| Skill 当前钉 | 10.0.22 / sha256 e3765b20… |
10.0.23 / 91f5839e… |
改 SKILL.md 必须升版 |
| 方法覆盖顺序(用户可见) | 先走完感情→事业→家人→职业→占问再精度追问 | S1 收集池到训练门 → S2 选择题到收敛/增益见底 → S3 交付 | 产品口径 1 |
| 采集题干年份 | COLLECT_QUESTION_YEAR_CUE / 「2021 年前后」 |
删除;只有用户账本年份进锚定题 | 撤回 BUG-642 |
| holdout 起留件数 | MIN_EVENTS_TO_RESERVE_HOLDOUT=2 |
4 | 3 件全训练(BUG-647) |
| 3 件带月、2 类后的下一动 | ask_fact_collection(1 件 holdout) |
可 ask_candidate_discriminator |
同上 |
| 训练门开后 leftover dated collect | 家人/财务轮转,可挡 adopt | exhaustionSpokenCollectFollowup 返回 null |
BUG-648 |
| 池空且训练门关 | 「还差 N 件,领域不限」或「没有拿到下一个问题」 | 精确缺口句 + collect_waiting |
BUG-646 |
| 开场后下一问 | 家人/学业领域轮转 | 邀请 collect:invite:more |
先等用户说完 |
事故夹具 5 件后公开 can_adopt |
false(财务口述未问完) | true;确认门仍关 | 训练门开后不再轮转采集 |
验收命令(实测)
工作树 codex/rectification-collection-redesign-20260910,相对 origin/staging @ cb045297。
| 命令 | 结果 |
|---|---|
cmp skills/jyotish-birth-time-rectification/SKILL.md skills/jyotish-birth-time-rectification/versions/10.0.23/SKILL.md |
相等 |
computeSkillPackageSha256(versions/10.0.23) |
91f5839e15514b80fa0370bb8b539686af211082e83bc951dc0e8250cbdbadcb |
| 10.0.22 / 10.0.21 包哈希 | 未改:e3765b20… / 3ced1073… |
cd frontend && ./node_modules/.bin/tsc --noEmit |
0 error |
cd frontend && npm run lint |
0 error,121 warning(既有债务 + 本单未做无关清理) |
相关 glob(97 个文件,分三批,--test-force-exit --test-timeout=20000) |
1163 pass / 0 fail(417 + 322 + 424)。同类 glob 采集语义单曾记 1156;本单新增 rectification-collection-question-pool.test.ts。 |
.venv/bin/python -m pytest tests/test_candidate_discriminator_contract.py -q |
8 passed / 0 fail |
run_quality_gate.py --profile quick --skip-frontend-runtime |
Quality gate passed. pytest 731 passed / 1 skipped / 0 fail(263s)。 |
git diff --check |
干净 |
cd frontend && npm run build |
blocked:Turbopack Symlink [project]/frontend/node_modules is invalid, it points out of the filesystem root。未核首页 Static / gzip。 |
环境缺口
- 无 Docker:未跑
npm run test:db。本单未动表。 - 无登录态、无 Chrome:走查第 19~21 条未做。部署后须先打开绑定 10.0.22 的历史校正(BUG-621)。
next build在本 worktree 因node_modules软链被 Turbopack 拒绝;未核首页 Static / gzip。- 未提升
main,未 push。
未做 / 未改
- 未改引擎计分、未改确认门(唯一分钟仍关)。
- 未加数据库迁移。已问键靠
kind_hint进现有target_kind。 - 未改冻结历史包 10.0.21 / 10.0.22 字节。