# NoWhatever 产品优化路线图

> 基于当前产品形态的全面审视，按优先级排列。  
> 已完成项标记 ~~删除线~~。

---

## P0 — 核心闭环

### ~~分享结果卡片~~（已完成）
- ~~匹配成功 / 盲盒开奖后，一键生成品牌分享图~~
- ~~支持保存图片、Web Share API 分享~~
- ~~卡片包含餐厅/想法详情 + 二维码，形成增长飞轮~~

### 匹配成功页补全后续动作
- ~~一键导航提升为首要 CTA~~（已完成，导航按钮已作为 accent 主按钮置顶）
- ~~加入一键打电话订位~~（已完成，`tel` 字段存在时展示拨号按钮）
- "不满意？再来一轮" 提升可见度：从底部灰色文字改为固定在页面底部的半透明浮动条，带 `RotateCcw` 图标 + 引导文案
- 加入"收藏这家"快捷操作（复用已有收藏 API `/api/user/favorite`，用心形图标放在结果卡片右上角）
- 非全员一致时，在"Top N 决赛"按钮上方增加一句引导语（"还有 X 家不相上下，再选一轮？"），降低用户理解成本

---

## P1 — 体验提升

### 单人等待体验修复
- `userCount === 1` 时跳过"等待其他人完成选择"spinner，直接出结果
- 匹配文案适配单人场景（"就去这了"→"帮你选好了"，"X/X 人想去"→"你的首选"）

### 盲盒想法互动
- 对想法点赞 / 加权（增加被抽中概率）
- 想法分类标签（美食 / 旅行 / 运动 / 奇葩挑战）
- 抽中后打卡确认（拍照上传，形成回忆）
- "本周契约执行率" 统计

### ~~PWA 支持~~（已完成）
- ~~添加 Web App Manifest，支持"添加到主屏幕"~~
- ~~Service Worker 离线缓存基础页面~~
- ~~`viewport-fit=cover` 适配刘海屏~~

### 盲盒房间删除 / 退出
- 房间创建者可删除房间（级联清理成员 & 想法）
- 非创建者可退出房间（从成员列表移除自己）

### 首次体验引导优化
- ~~极速救场完成一轮后引导注册（"注册保存记录"）~~（已完成，匹配成功页展示注册卡片，注册后自动保存记录）
- 盲盒模式先展示 demo / 动画，让用户看到价值再引导注册
- 统一两个模式的登录体验（目前极速救场不需登录，盲盒必须登录）

---

## P2 — 场景拓展 & 数据

### 更多极速救场场景
- 当前只有"吃饭"和"喝酒"两个场景
- 可扩展：看电影、去公园、玩什么游戏、周末去哪
- 复用同一套滑卡机制，接入不同 POI 数据源

### 个人数据洞察
- 你最常吃的菜系 Top 3
- 你和 TA 的口味重合度
- 月度决策次数趋势图
- 在个人中心以简单可视化展示

### 首页社交证明
- "已帮助 X 对情侣做出 Y 次决定"（全局计数器）
- 最近一次匹配的匿名动态（"3分钟前，一对情侣在北京选中了 XXX"）
- 提升首页说服力，推动新用户转化

### 盲盒开奖提醒
- 周五下午推送"本周盲盒待抽 X 个想法"
- 浏览器 Notification API 提醒
- 房间内"设定开奖日"功能，到时间提醒所有成员

---

## P3 — 长期留存

### 成就 & 激励系统
- 决策次数徽章（"已拯救 10 次选择困难症"）
- 连续使用天数
- 盲盒投放数量成就
- 在个人中心展示，增加用户粘性

### 浅色模式
- 当前暗色主题是唯一选项
- 白天户外使用体验差
- 跟随系统 / 手动切换

### 空状态插图优化
- 个人中心"还没有决策记录""还没有收藏"用纯文字展示
- 替换为插图 + CTA 按钮（"去创建第一个房间"）

---

## 技术债务

### 安全 & 稳定性
- [ ] API 接口加入 Rate Limiting
- [ ] 添加全局 Error Boundary
- [ ] 历史记录 / 收藏列表加分页
- [ ] 餐厅图片加载失败时的 fallback 占位

### 性能优化
- [ ] 餐厅图片使用 Next.js Image 组件优化
- [ ] 加入 Loading Skeleton 替代纯 spinner
- [ ] 盲盒房间过期策略（避免僵尸房间堆积）

### 监控
- [ ] 接入基础数据埋点（页面 PV、功能使用率）
- [ ] 错误上报（Sentry 或类似）
