Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
655e07ad2c |
@@ -0,0 +1,87 @@
|
||||
# 生时纠正:先停用问卷和选边(2026-11-15,Claude)
|
||||
|
||||
Bug 编号:BUG-1896。
|
||||
|
||||
## 背景
|
||||
|
||||
产品负责人 11-15 在 staging 真机上走完一遍问卷(#279 上线后),反馈:
|
||||
|
||||
- **选项残缺:** 选项只有能区分候选段的年龄(例如事业盘只有「26 岁」),用户 30 岁创业就找不到对应选项;年份只能在该年龄覆盖的一两年里调。
|
||||
- **选项样式难看。**
|
||||
- **答完没有结果:** 结论永远是「按你填的 05:00」和「现有信息不足以确认更准确的出生时间」。
|
||||
|
||||
最后一条是根本问题。#260 的回测显示,按答题缩窄比随机还差;占星师 11-14 裁定不得缩窄,#279 把旧窄范围也撤回了。所以现在答题不可能改变结果,问卷只是让用户白答。
|
||||
|
||||
负责人 11-15 决定**先停用问卷**。等占星师下一轮(日期区间计分、新留出集)验证有效后再开,届时重做选项 UI。
|
||||
|
||||
## 改法
|
||||
|
||||
### 一、盘点(先做,写进 PROGRESS)
|
||||
|
||||
列出生时纠正里所有会向用户提问、或让用户选边、选段的入口,每条写清:
|
||||
|
||||
- step 名、组件名、对应 API 及参数;
|
||||
- 现在从哪里进入(首页「重新纠正」、首次进入、换范围后等)。
|
||||
|
||||
已知的入口:
|
||||
|
||||
- 自适应问卷:`chart_range` → `chart_question` → `final`;
|
||||
- v2 轮次:`choose` 里的 `RoundStep`;
|
||||
- v1:`ChooseStep` → `ResultStep`,含「换另一侧」;
|
||||
- `astrologer-stage.tsx`:「感情里你更像哪一种?」等。
|
||||
|
||||
盘点中发现的其他入口同样处理。
|
||||
|
||||
### 二、页面(只改 `frontend/src/components/chart-choice/` 和对应测试)
|
||||
|
||||
首次进入和「重新纠正」都直接显示结果页,不出任何题目。结果页即现在问卷答完后的结果页(真机截图第 4 张)去掉「你提到的事」,内容依次为:
|
||||
|
||||
1. 标题「按你填的 05:00」(没填时间:「按范围中点 HH:MM」)。
|
||||
2. 「范围 04:45–05:15」。没填范围时保留现有的范围选择(`RangeChips`)。
|
||||
3. 「现有信息不足以确认更准确的出生时间。」
|
||||
4. 范围条和参照时间。
|
||||
5. 「按 05:00 看六张盘」六行,文案沿用 #279 的规则:
|
||||
- 默认窗口:「前后 15 分钟试算里没有变化」;
|
||||
- 用户填了范围:「在你填的范围里没有换座」;
|
||||
- 会换座:「范围内会换座(hh:mm:ss 换)」。
|
||||
6. 唯一的主按钮「用 05:00」,保存 `reported_time_default`(没填时间时为 `window_midpoint_default`)。保存后回首页。
|
||||
|
||||
如果范围内没有分界线,`certain` 分支照旧。
|
||||
|
||||
还要去掉:
|
||||
|
||||
- 「开始答题」「先到这里」「下一题」「都没有」「记不清」;
|
||||
- 年龄选项、哪一年步进器;
|
||||
- 「换另一侧」「更像哪一种」;
|
||||
- 「你提到的事」。
|
||||
|
||||
问卷相关组件和代码**保留不删**,只是不再渲染。用一个常量开关(例如 `RECT_QUESTIONNAIRE_ENABLED = false`)集中控制,方便以后重开。
|
||||
|
||||
### 三、API
|
||||
|
||||
- `/api/chart-choice/adopt` 和 `/api/chart-choice/packet` 收到问卷或选边类请求时,返回 4xx 并带明确说明(code 例如 `questionnaire_paused`)。问卷或选边类请求包括 `chart_answers`、`questionnaire`、`answers`、`overrideSide`、`resolved` 非空、`resumeRecordId` 续答等,以盘点为准。
|
||||
- `adaptive` 只取默认结果(不出题),保存仍走现有 `reported_time_default` / `window_midpoint_default`。
|
||||
- `restore_default`、`certain`、范围选择保持可用。
|
||||
- 不改迁移、不改引擎评分、不删旧枚举。
|
||||
|
||||
### 四、历史和下游
|
||||
|
||||
- 已有记录照旧显示,#279 的「已停用」逻辑不动。
|
||||
- 已有的明确手动选边、#229 选边记录继续按 #279 的规则读取,本单不改。
|
||||
- 报告、年运、聊天、合盘不受影响,不碰 `scripts/report_render/`。
|
||||
|
||||
## 验收
|
||||
|
||||
- **测试:**
|
||||
- 首次进入与「重新纠正」直接渲染结果页,没有题目、没有「先到这里」「下一题」「更像」「换另一侧」「你提到的事」;
|
||||
- 唯一按钮「用 HH:MM」,保存 `reported_time_default`;没填时间的保存 `window_midpoint_default`;
|
||||
- 没填范围时可选范围,保存后范围写回(BUG-1649 行为不变);
|
||||
- API 拒绝问卷和选边请求,返回 4xx 并带 code;
|
||||
- 开关打开时现有问卷测试仍通过(证明代码保留可用)。
|
||||
- **截图(390 宽):** 填了时间和范围;只填时间(默认 ±15);没填时间;首页已有记录。
|
||||
- **门禁:** Python quick gate、chart-choice 相关前端测试、`tsc`、`npx eslint .` 0 errors。
|
||||
- **文档:**
|
||||
- `docs/BUG_HISTORY.md` 新增 BUG-1896(只追加这一节):现象、根因(问卷在不能缩窄的规则下没有产出)、修复、验证、防复发,关联 BUG-1886、BUG-1890;
|
||||
- CHANGELOG 一行;
|
||||
- 更新 `frontend/DESIGN.md` 和 `frontend/docs/VOICE.md` 里涉及问卷的段落;
|
||||
- 写 PROGRESS。
|
||||
Reference in New Issue
Block a user