Files
Jyotisha/docs/tasks/PROGRESS-rectification-occupation-dated-answer-20260911.md
T
Jesse_ChenandCursor 1fa994ea63
Independent Staging Quality Gate / validate (push) Successful in 13m26s
Independent Staging Quality Gate / publish (push) Successful in 9m33s
fix(rectification): keep dated occupation answers scoreable (BUG-649/650)
Occupation collect was wiping year-month into an unscored note, and idle gap copy never joined the evidence turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 11:49:52 +08:00

4.6 KiB
Raw Blame History

PROGRESS · 职业题答出的年月不得被抹掉(2026-09-11)

工作树:.worktrees/rectification-occupation-dated-answer-20260911 分支:codex/rectification-occupation-dated-answer-20260911 任务书:.worktrees/staging-docs/docs/tasks/TASK-rectification-occupation-dated-answer-20260911.md(未推) 基线:origin/staging @ e36bda53(代码 dd8f35f7Skill 10.0.23BUG-646648 编号:开工时最大号 BUG-648;本单 BUG-649,工具轮缺口并入正文为 BUG-650

已完成

  • T1 / BUG-649applyOccupationCollectLedgerNorm 在职业采集焦点下:无年月仍只写 occupation_note;带 occurredFrom/occurredTo 且精度非 unknown 时另写 career 主评分行(模型 career kind 沿用,否则 career_entry)。rectification-v9-tools batch/propose 按归一结果逐条写入,删除 ?? item.occurredFrom 回落。覆盖判定仍不读正文、不用关键词、不依赖模型 domain。
  • T2:通用职业题仍是「你平时主要做什么工作?」;毕业后第一份工作锚定题 targetDomain=careerisOccupationCollectFocus 为 false。系统提示已加「职业题不得自行追加年份;要问年份走 career 锚定题」。
  • T3rectification-replay-20260911.test.ts 回放脱敏序列。两件学业后无生日「年前后」;四件带月 → holdout 1、训练 3、≥2 类、训练门开、下一问区分选择题且可渲染。无日期职业变体:训练门关、idle 缺口句、本轮正文含缺口、collect_waiting
  • T3 / BUG-650persistExhaustionGateTurn 在已有 turnId 时不会跑。证据轮把精确缺口接到同一条复述后;交付旁白(无「现在记下的是 / 就能开始筛」)不拼接。
  • T4BUG-649/650、CHANGELOG、本文件、走查第 22 条。Skill 10.0.23 未升。未改 MIN_ACCEPTANCE_* / 确认门 / 引擎计分。

三栏(既有断言)

位置 原值 新值 原因
applyOccupationCollectLedgerNorm 带年月职业回答 一律 occupation_note + unknown + 日期 null noteunknown/null+ career 主评分行 产品收窄 BUG-442 P0
occupation_note 是否计入训练 3 件 不计 仍不计;计入的是 career_entry BUG-356 / 389 / 442
batch/propose 日期 normalized?.occurredFrom ?? item.occurredFrom 归一后的 null 就是 null 账本 unknown 却带日期
通用职业题 「你平时主要做什么工作?」 仍不问哪年 T2
毕业后第一份工作焦点 用户年份锚定 domain=career,不是 collect:occupation: 问年份走锚定
证据轮工具出口缺口 只在 idle hostNarration 并入本轮 p_assistant_message BUG-650

验收

工作树内 frontend/node_modules 链到主仓以便跑 tsx。未部署;staging /api/health 仍是旧 SHA 时不要用真机当本单已上线。未 commit、未 push。

命令 结果
cd frontend && npx tsc --noEmit 0 error
cd frontend && npm run lint 0 error / 119 warning(既有)
相关 7 文件 npx tsx --test --test-force-exit 95 pass / 0 fail(含本单 2 个新文件)
npm test 全量 glob 3119 / pass 3113 / fail 6:全是 Docker/Postgres 争用(migration failed、connection terminated、本机 socket 无 postgres),与本单无关。安静后未再全量重跑。
.venv/bin/python -m pytest tests/test_candidate_discriminator_contract.py -q 8 passed
run_quality_gate.py --profile quick 第一次 pytest 730 passed / 1 failedtest_block_scan_seven_events_finishes_within_fifteen_seconds 在与全量 npm test 并行时 18.2s > 15s
同上测单独重跑 1 passed3.9s
run_quality_gate.py --profile quick --skip-frontend-runtime Quality gate passed. pytest 731 passed / 1 skipped / 0 fail451s)。前端 tsc/lint/相关测试/webpack 构建已在门外单独跑。
cd frontend && ./node_modules/.bin/next build --webpack 退出 0;默认 Turbopack 仍拒 worktree 外 node_modules 软链。/ Static。首页 JS gzipindex.html 引用脚本去重后 gzipSync572018 B / 18 chunks。相对 origin/staging 未改 page.tsx / layout.tsx / globals.css,首屏源码差为 0。
git diff --check 干净

新增测试:+18dated-answer 9、replay 7、collection-pool 2);occupation-coverage-exit 未改断言。Skill 10.0.23 未改。

环境缺口:无登录态,走查第 22 条未做。部署后须先打开绑定 10.0.22 的历史校正(BUG-621),再按本案序列真机走一遍,第四件带月说完必须出选择题。