40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# E-07 · 连续天数保护(补签卡)
|
|
|
|
| 字段 | 值 |
|
|
|---|---|
|
|
| 项目 | EnglishDrill · `Desktop/english-drill` |
|
|
| 优先级 | P1 · M3 |
|
|
| 建议模型 | glm-5.3-flash(主)/ qwen3.8-flash(时间边界复核) |
|
|
| 依赖 | 无 |
|
|
| 预估 | 0.5-1 天 |
|
|
|
|
## 一、背景(为什么做)
|
|
|
|
增长报告 P2 #11:现在断一天 → 连续记录归零 → **用户直接放弃**(沉没成本被清零是最强的流失触发点)。而修复成本极低(一个字段 + 一次判定),对"已经坚持 30 天"的用户价值巨大。
|
|
|
|
## 二、目标(交付物)
|
|
|
|
1. **补签卡规则**:每月赠 1 张(月初发放或首次打卡发放,选一写明);使用后补回指定断签日 → 连续天数链恢复。
|
|
2. **冻结卡(可选二选一实现)**:提前声明"明天不学"→ 该日不断记录。若两张都做,优先补签卡。
|
|
3. 数据:字段/表记录(余额、使用记录、补签日期);连续天数计算函数适配补签逻辑。
|
|
4. 前端:连续天数卡片显示补签入口(有断签+有卡时);补签后动画/反馈。
|
|
5. **防滥用**:只能补最近 N 天内(如 3 天)、不能补未来、不能重复补同一天、无卡不可补。
|
|
|
|
## 三、验收标准
|
|
|
|
- [ ] 断签 1 天 → 使用补签卡 → 连续天数链恢复正确(跨月/跨年用例)
|
|
- [ ] 重复补签同一天被拒;补 4 天前的断签被拒(超窗口)
|
|
- [ ] 无卡时入口不可用;月初发卡逻辑正确(或选定的发放规则)
|
|
- [ ] 连续天数计算在"正常/断签/补签/多次补签"四态下均正确(时间旅行用例:固定日期断言)
|
|
- [ ] 既有 E2E 全绿 + 新增 ≥6 用例
|
|
|
|
## 四、边界(不许做)
|
|
|
|
- 不做付费购买补签卡(增长期零收费约束)
|
|
- 不改现有签到/连续统计的既有 API 契约(加字段不破坏)
|
|
- 不做社交炫耀分享(另一张卡的空间)
|
|
|
|
## 五、交接
|
|
|
|
写 `PROGRESS_E-07.md`(含时间边界用例输出)。
|