59 lines
4.9 KiB
Markdown
59 lines
4.9 KiB
Markdown
# PROGRESS · 采集语义三改(2026-09-10)
|
||
|
||
工作树:`.worktrees/rectification-collect-semantics-20260910`
|
||
分支:`codex/rectification-collect-semantics-20260910`
|
||
任务书:`docs/tasks/TASK-rectification-collect-semantics-20260910.md`
|
||
基线:任务书写 `82eb3b79`;开工接到 `origin/staging` @ `71eaeb2e`(BUG-635~640、BUG-644/645 已在其上)。
|
||
代码提交:`52db714b`
|
||
|
||
## 开工回执
|
||
|
||
- 编号 **BUG-641 / 642 / 643**。当时 `docs/BUG_HISTORY.md` 最大号是 645,但 641~643 未占用,按任务书使用。
|
||
- 顺序:T1 Skill 10.0.22 + 去掉 `VOLUNTEER_ONLY` → T2 带线索模板与采集优先 → T3 分类器 no/unsure + collect yes 的 `expectedWrite` → T4 记录。
|
||
|
||
## 已完成
|
||
|
||
- **T1 / BUG-641**:Skill L84 与 `conversation-strategy.md` 改为同权采集。删除 `VOLUNTEER_ONLY`。`MAX_COLLECTION_PROBES` 3→7。live `SKILL.md` 与 `versions/10.0.22/SKILL.md` 逐字节相等。sha256 `e3765b20ce6b49a5c7c9ed6b0a8caacc6fc4b8a16a127b93bd92c537330a54e2`。10.0.21 仍 deprecated,`resolveExactSkillPackage` 可打开。
|
||
- **T2 / BUG-642**:`COLLECT_QUESTION_YEAR_CUE` / `collectQuestionForDomain`。`nextDatedCollectFollowup` 先排有 `evidence_collection_probes` 年份线索的领域。未覆盖感情/事业/家人先采集,不再 `sameDomainYearlessCard` 抢跑。existence 类 D12 仍 `yearless_ungrounded_contrast`。带年月区分点选题顺序未改。
|
||
- **T3 / BUG-643**:删除 `isCollectDeclineUtterance` / `isCollectSkipUtterance`。`collectFocusCloseStatus`:`no`→declined,`unsure`→skipped。分类器失败记 `collectIntent=unclassified`。collect 焦点 `yes`/`weak_yes` → `expectedWrite="evidence"`。
|
||
- **T4**:BUG-641~643、BUG-539 补口、CHANGELOG、本文件、任务表待验收、走查第 16~18 条、`VOICE.md` 带线索对照行。
|
||
|
||
## 三栏(既有断言)
|
||
|
||
| 位置 | 原值 | 新值 | 原因 |
|
||
| --- | --- | --- | --- |
|
||
| Skill 当前钉 | 10.0.21 / sha256 `3ced1073…` | 10.0.22 / `e3765b20…` | 改 SKILL.md 必须升版 |
|
||
| Skill L84 / conversation-strategy | 「财务与健康只有用户主动说才问,仍可计分。」 | 「财务、健康与其他领域同权:服务器按 next_followup 主动问,用户说了就记、就计分。」 | 决策 1 |
|
||
| Python `VOLUNTEER_ONLY` | `{finance, health_pressure}` | 删除 | 决策 1 |
|
||
| `MAX_COLLECTION_PROBES` | 3 | 7 | 学业+感情账本仍要发出 finance / health_pressure |
|
||
| 家人采集口语(有 2021 线索) | `USER_COLLECT_QUESTION.family`(「记得大概哪年就行」) | 「家里在 2021 年前后有没有…别的年份也行。」 | 推翻 BUG-539 整句去前缀,保留矛盾禁令 |
|
||
| 家人未覆盖 + D12 | `sameDomainYearlessCard("family")` 可抢采集 | 感情/事业/家人未覆盖先采集;existence 类 D12 仍记 `yearless_ungrounded_contrast`,没有「拒答后立刻出 D12 风格卡」断言 | 决策 2 |
|
||
| 采集「没有 / 记不清」 | `isCollectDeclineUtterance` / `isCollectSkipUtterance` 整句相等即短路 | 分类器 `no`/`unsure` → `collectFocusCloseStatus` | 决策 3 |
|
||
| collect 焦点 yes/weak_yes 的 `expectedWrite` | `"none"`(只靠「记下了」文字) | `"evidence"` | BUG-635 验收补漏 |
|
||
|
||
## 验收命令(实测)
|
||
|
||
工作树 `codex/rectification-collect-semantics-20260910`,相对 `origin/staging` @ `71eaeb2e`。
|
||
|
||
| 命令 | 结果 |
|
||
| --- | --- |
|
||
| `.venv/bin/python -m pytest tests -k "event_probes or collection" -q` | **45 passed / 0 fail**(collect-only:event_probes 35 + oracle collection 8 + discriminator 1 + tajika 1) |
|
||
| `cd frontend && ls tests/rectification-*.test.ts tests/skill-registry.test.ts tests/agent-voice-copy-contract.test.ts \| grep -v database \| xargs ./node_modules/.bin/tsx --test` | **1156 pass / 0 fail**(17.7s)。同类 glob 在 yearless 单曾记 1087;本 SHA 含 BUG-635~640、644/645 及本单新增用例。 |
|
||
| `cd frontend && ./node_modules/.bin/tsc --noEmit` | **0 error** |
|
||
| `cd frontend && npm run lint` | **0 error**,113 warning(既有债务;本单未做无关清理) |
|
||
| `git diff --check` | 干净 |
|
||
| `python3 scripts/run_quality_gate.py --profile quick --skip-frontend-runtime` | **Quality gate passed.** 核心 pytest **731 passed / 1 skipped / 0 fail**(312s)。未带全量 `npm test`。 |
|
||
| `cd frontend && npm run build` | **blocked**:Turbopack `node_modules` 软链指到 worktree 外(`../../../frontend/node_modules`)。未核首页 Static / gzip。 |
|
||
|
||
## 环境缺口
|
||
|
||
- 无 Docker:未跑 `npm run test:db`。
|
||
- 无登录态、无 Chrome:走查第 16~18 条未做。部署后须先打开 10.0.21 历史校正。
|
||
- `next build` 在本 worktree 因 `node_modules` 软链被 Turbopack 拒绝;未核首页 Static / gzip。
|
||
- `grep -n "主动说才问" skills/` 在冻结历史包(≤10.0.21)仍有命中;live + `versions/10.0.22` 为空。不得改历史包哈希。
|
||
|
||
## 未做
|
||
|
||
- 未提升 `main`。
|
||
- 未改点选题四选项合同、采用门、holdout 计分。
|