814c924e4a
Keep askable cards after exhaustion, explain each probe, read the adopted credible range in reports and chat, and compare declared periods before the minute grid when the clock is unknown. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.7 KiB
Markdown
34 lines
1.7 KiB
Markdown
# PROGRESS · 生时校正过程解释层(2026-09-06)
|
||
|
||
工作树:`.worktrees/rectification-convergence-exit-fix-20260906`
|
||
分支:`codex/rectification-convergence-exit-fix-20260906`(叠在 BUG-565~567 之后)
|
||
基线:`origin/staging` @ `b938c76a`;文档头 `43a26a3c`
|
||
|
||
未改 `SKILL.md`、未改 `contracts/probe-question-v1.json`、未改任何门、未改 `page.tsx`。
|
||
|
||
本单状态:**待验收**。
|
||
|
||
| 任务 | 状态 |
|
||
| --- | --- |
|
||
| B3 步骤条 | 完成 |
|
||
| B1 卡片 why_user / answer_impact | 完成 |
|
||
| B2 答后旁白 | 完成 |
|
||
| B4 记录 | 完成 |
|
||
|
||
## 实现要点
|
||
|
||
- `probe-explain.ts` 纯函数:`{period} 这段经历能把当前 n 段候选分成两组(毗湿奴多利、那罗延)`;varga_style 写「这题对照 D9/D10 的类型差异」。A/B/C 来自 `expected_outcomes` 的 supports/conflicts,口径是区间「04:31–04:39 这段」。D 固定「不计分,换一题」。
|
||
- `composeChoiceNarration` 在传入 `score_deltas` 聚合与范围前后值时拼「领先 / 落后」和「范围从 X 收到 Y / 范围没变」。unsure / 跳过仍是「这题先不计分」。
|
||
- `step-state.ts` 从 `nextAction` / 方法覆盖 / `stopReason` / 是否已采用派生四段。Case GET 投影 `step_state`;聊天在输入框上方渲染 `.rectification-step-state`。
|
||
- `case-service.ts` 再导出 `projectRectificationStepState`。Case 行视图仍是数据库列;完整快照在 `interview-state.ts` 与 GET。
|
||
|
||
## 测试
|
||
|
||
| 命令 | 结果 |
|
||
| --- | --- |
|
||
| 非 DB `tests/rectification-*.test.ts` + `agent-voice-copy-contract.test.ts` | **917 pass / 0 fail** |
|
||
| `npx tsc --noEmit` | 0 错 |
|
||
| `npm run lint` | 0 error |
|
||
|
||
`contracts/probe-question-v1.json` 未改。随本分支推 `origin/staging`。
|