Files
BossAi/pmdocs/1-prd-bossai.md
selfreleaseandDevin 4de36547cd
CI / 后端测试 (push) Has been cancelled
CI / 前端构建 (push) Has been cancelled
feat: BossAi v2.0 UI/UX 重构 + 看板断点续接 + 多轮上下文
- 新增 web2/ 前端:任务卡看板、风险雷达、决策日志、我的团队、快捷指令
- ChatPanel 增强:风险卡置顶、案卡接入、起诉状向导、语音输入
- 事项看板:点击查看详情弹窗、断点续接(恢复历史对话+matterId)
- 保密模式恢复:密码验证后重建内存 session,保留多轮上下文
- 多轮对话:ask/ask-stream/ask-analyze 注入 session 历史,AI 有上下文
- 追问优化:紧扣用户问题,不再偏离主题(社保问社保,工伤问工伤)
- 对话区可滚动,输入区固定可见
- 状态机放宽:允许从任意非终态转到 pending_expert
- session 存活检查端点,后端重启后自动重建 session
- DB migration:风险推送表、案卡表

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-31 08:38:33 +08:00

295 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BossAi 产品需求文档(PRD)
- **版本**:v2.0(UIUX 重构)
- **状态**:待确认
- **日期**:2026-08-30
- **关联**:ADR-001 前端技术栈、ADR-002 UIUX 范式转变、CHG-20260830-001 UIUX 重构
---
## 1. 产品定位
**一句话**:BossAi 是面向中国中小企业老板的"经营智囊",把 AI 法务参谋、经营决策、生活助理、情绪支持整合为以"事项"为中心的主动式助手。
**定位转变**(v1.0 → v2.0):
| 维度 | v1.0(现状) | v2.0(本次重构) |
|---|---|---|
| 产品形态 | AI 对话工具 | 经营智囊(任务卡片优先) |
| 交互范式 | 老板主动问 | AI 主动推送 + 老板主动问 |
| 信息组织 | 按场景分页 | 按"我的事项"聚合,场景为标签 |
| 画像作用 | 存着、只读 | 驱动个性化指令与推送 |
| 专家关系 | 目录式 | "我的团队"关系视图 |
| 移动端 | 桌面缩放 | 原生移动体验(底部 Tab + FAB) |
---
## 2. 目标用户
### 2.1 主用户:中小企业老板(user 角色)
- **画像**:25-55 岁,时间碎片化,手机为主,30 秒内要拿到要点
- **行业**:餐饮、零售、制造、服务业为主
- **规模**:微型(<10人) ~ 中型(<200人)
- **痛点**:
- 不懂法律术语,怕说错话
- 同时挂着好几件事(合同、用工、税务、决策)
- 想要"结论+行动",不是"探讨"
- 决策做完就忘,没有复盘
- 信任专家但要"我的人",不是"找陌生人"
### 2.2 次用户:专家(expert 角色)、管理员(admin 角色)
本次重构**不改变** expert/admin 的核心功能,仅做视觉规范对齐(Admin 警示色、ADMIN 徽章)。
---
## 3. 核心场景(SCENE)
| 编号 | 场景 | 用户故事 | 优先级 |
|---|---|---|---|
| SCENE-001 | 老板台 | "我打开应用,一眼看到今天要关注的事,不用到处找" | P0 |
| SCENE-002 | 案卡看板 | "我同时处理 3 件事,每件到哪一步了,一目了然" | P0 |
| SCENE-003 | 快捷指令 | "我不懂法律,但我点一下就能问'用工合规',AI 帮我组织问题" | P0 |
| SCENE-004 | 我的团队 | "我咨询过的专家自动成为'我的人',下次直接找他" | P1 |
| SCENE-005 | 风险雷达 | "AI 主动提醒我行业新规和合同风险,不用我自己查" | P1 |
| SCENE-006 | 决策日志 | "我上个月做了哪些决策,结果如何,能复盘" | P2 |
| SCENE-007 | 法务咨询 | "我问合同问题,AI 追问关键事实,给我风险卡和起诉状" | P0(保留优化) |
| SCENE-008 | 经营决策 | "我纠结要不要扩张,AI 帮我算账给建议" | P0(保留优化) |
| SCENE-009 | 生活助理 | "我私人问题也能问,保密模式" | P1(保留) |
| SCENE-010 | 情绪中心 | "我压力大,有人陪我聊聊,阅后即焚" | P1(保留) |
---
## 4. 信息架构(v2.0)
### 4.1 桌面端导航
```
总览
└─ 老板台(/) ← 重构 Dashboard
我的事项
└─ 事项看板(/matters) ← 新增
智囊
├─ 法务参谋(/legal) ← 保留,接入案卡
├─ 经营决策(/decisions) ← 保留,接入案卡
├─ 生活助理(/life) ← 保留
└─ 情绪中心(/emotion) ← 保留
我的资源
├─ 我的团队(/team) ← 重构 Experts
├─ 决策日志(/decisions-log)← 新增
├─ 知识库(/knowledge) ← 保留
├─ 对话历史(/history) ← 保留
└─ 我的画像(/profile) ← 保留
系统
└─ 设置(/settings) ← 保留
```
### 4.2 移动端导航(底部 4 Tab + FAB)
```
底部 Tab:
🏠 老板台(/)
📋 事项(/matters)
👥 团队(/team)
👤 我(/me) ← 聚合 profile/settings/history
FAB(+):全局浮动按钮 → 快捷指令面板(底部抽屉)
```
**移动端"我"页**:聚合 我的画像 / 对话历史 / 设置 / 知识库 入口,解决移动端导航深度问题。
---
## 5. 功能清单(PRD-FUNC)
### 5.1 阶段一(P0,2 周)
| 编号 | 功能 | 描述 | 关联场景 |
|---|---|---|---|
| PRD-FUNC-001 | 老板台 | 替代 Dashboard,展示"今日要事":高风险提醒、待确认事项、专家回复、经营健康度 | SCENE-001 |
| PRD-FUNC-002 | 事项看板 | 案卡看板视图,按状态分列(待补充事实/待确认/分析中/待专家/已闭环),支持断点续接 | SCENE-002 |
| PRD-FUNC-003 | 案卡状态机 | 会话绑定案卡,状态:新建→待补充事实→待确认→分析中→待专家(可选)→已闭环 | SCENE-002 |
| PRD-FUNC-004 | 案卡续接 | 点击案卡进入对应 ChatPanel,恢复会话上下文 | SCENE-002 |
| PRD-FUNC-005 | ChatPanel 接入案卡 | 新建咨询自动创建案卡,状态随会话推进自动流转 | SCENE-007/008 |
| PRD-FUNC-006 | 移动端底部 Tab | 重构移动端导航为底部 4 Tab + FAB | SCENE-001 |
### 5.2 阶段二(P1,2 周)
| 编号 | 功能 | 描述 | 关联场景 |
|---|---|---|---|
| PRD-FUNC-007 | 快捷指令面板 | FAB 触发底部抽屉,画像驱动的指令网格 + 语音/文字输入 | SCENE-003 |
| PRD-FUNC-008 | 画像驱动指令 | 根据行业/规模生成个性化指令(餐饮→用工合规、食安风险) | SCENE-003 |
| PRD-FUNC-009 | 指令预填模板 | 点击指令预填问题模板,老板补充关键细节即可 | SCENE-003 |
| PRD-FUNC-010 | 我的团队 | 重构 Experts 为关系视图:咨询过的专家自动入队,显示关系深度 | SCENE-004 |
| PRD-FUNC-011 | 团队一键咨询 | 从"我的团队"发起咨询,自动带上历史上下文 | SCENE-004 |
| PRD-FUNC-012 | 语音输入 | 快捷指令面板支持语音输入(Web Speech API) | SCENE-003 |
### 5.3 阶段三(P1-P2,2 周)
| 编号 | 功能 | 描述 | 关联场景 |
|---|---|---|---|
| PRD-FUNC-013 | 风险雷达 | 后端定时扫描知识库新规+画像匹配,推送到老板台 | SCENE-005 |
| PRD-FUNC-014 | 风险分级推送 | 红(立即)/橙(本周)/蓝(知晓),老板台卡片展示 | SCENE-005 |
| PRD-FUNC-015 | 决策日志 | 闭环案卡自动归档为决策记录,支持月度/季度复盘 | SCENE-006 |
| PRD-FUNC-016 | 决策结果标记 | 老板标记决策执行情况(顺利/受阻/未执行),反哺 AI | SCENE-006 |
| PRD-FUNC-017 | ChatPanel 风险卡置顶 | 风险卡从消息流提取为置顶固定卡片,可独立分享/导出 | SCENE-007 |
| PRD-FUNC-018 | 起诉状三步向导 | 要素式起诉状改为:预览→编辑→导出/发专家 三步向导 | SCENE-007 |
---
## 6. UI/UX 设计原则
### 6.1 视觉规范
| 维度 | 规范 |
|---|---|
| 主色 | `indigo-600`(信任+专业),替代当前 gray-900 |
| 辅色 | `emerald`(安全) / `amber`(注意) / `rose`(风险) |
| 字体 | Geist,标题加粗,正文 15px(老板友好) |
| 圆角 | 卡片 `rounded-xl`(12px),按钮 `rounded-lg`(8px) |
| 容器 | `container mx-auto max-w-7xl px-4`(保留) |
| 触控 | 移动端最小点击区 44×44px |
| 禁止 | 硬编码 hex、emoji 作图标、alert/confirm、div onClick |
### 6.2 交互规范
| 场景 | 规范 |
|---|---|
| 页面切换 | 200ms ease-out |
| 案卡状态变化 | 300ms 过渡 |
| 案卡手势 | 左滑归档、右滑置顶(移动端) |
| 空态 | 引导"完善画像解锁更精准建议",非"暂无数据" |
| 离线 | 顶部条提示 + 本地缓存案卡列表 |
| 流式输出 | 先出结论卡片,再展开推理过程 |
| 危险操作 | Dialog 二次确认 |
### 6.3 角色化三端
| 端 | 风格 | Header | Sidebar |
|---|---|---|---|
| C 端(user/老板) | 温暖专业 | `h-14 bg-white/95 backdrop-blur`,主色 indigo | `w-60`,图标+文字 |
| B 端(expert/专家) | 专业密集 | 保留当前 | 保留当前 |
| Admin | 警示 | `bg-slate-950` + 主色 `amber-400` + ADMIN 徽章 | 深色 |
---
## 7. 数据模型影响
### 7.1 新增:案卡(Matter)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| code | string | 唯一业务代码 `MTR_{YYYYMMDD}_{seq}` |
| user_id | int | 所属老板 |
| scene | string | legal/decision/life/emotion |
| title | string | 案卡标题(AI 生成或用户命名) |
| status | string | new/asking_facts/pending_confirm/analyzing/pending_expert/closed |
| session_id | string | 关联会话 sid |
| risk_level | string | nullable,green/amber/orange/red |
| summary | text | nullable,AI 结论摘要 |
| closed_at | timestamp | nullable |
| execution_result | string | nullable,顺利/受阻/未执行 |
| created_at / updated_at | timestamp | 审计 |
### 7.2 新增:风险推送(RiskAlert)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| user_id | int | 推送对象 |
| level | string | red/orange/blue |
| title | string | 标题 |
| content | text | 详情 |
| source | string | 来源(knowledge/doc_scan) |
| related_matter_id | int | nullable |
| read_at | timestamp | nullable |
| created_at | timestamp | |
### 7.3 新增:专家关系(ExpertRelation)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| user_id | int | 老板 |
| expert_id | int | 专家 |
| consultation_count | int | 咨询次数 |
| last_consulted_at | timestamp | 最近咨询 |
| tags | string | 擅长领域标签(逗号分隔) |
| created_at / updated_at | timestamp | |
### 7.4 现有表扩展
- `sessions` 表新增 `matter_id`(nullable,关联案卡)
- `profiles` 表无变化(画像驱动指令只读消费)
---
## 8. API 影响概览
详细 API 契约在 `2-task-bossai-uiux.md` 中按 TASK 展开。核心新增端点:
| 端点 | 方法 | 说明 | 阶段 |
|---|---|---|---|
| `/matters` | GET | 案卡看板列表(按状态分组) | 一 |
| `/matters` | POST | 创建案卡(绑定会话) | 一 |
| `/matters/{id}` | GET | 案卡详情 | 一 |
| `/matters/{id}/status` | PATCH | 更新案卡状态 | 一 |
| `/matters/{id}/close` | POST | 闭环案卡 | 一 |
| `/quick-commands` | GET | 画像驱动快捷指令 | 二 |
| `/team` | GET | 我的团队列表 | 二 |
| `/risk-alerts` | GET | 风险推送列表 | 三 |
| `/risk-alerts/{id}/read` | POST | 标记已读 | 三 |
| `/matters/{id}/execution` | PATCH | 标记决策执行结果 | 三 |
---
## 9. 非功能需求
| 维度 | 要求 |
|---|---|
| 性能 | 老板台首屏 < 1.5s,案卡看板 < 1s |
| 移动端 | 底部 Tab 所有页面可达,FAB 全局可用 |
| 离线 | 案卡列表本地缓存,断网可查看 |
| 无障碍 | 键盘可达,对比度 ≥ 4.5:1,aria-label 完整 |
| 兼容 | Chrome/Safari/Edge 最近 2 版,iOS/Android 移动浏览器 |
| 安全 | 案卡数据租户隔离(user_id),前端隐藏 ≠ 后端放权 |
---
## 10. 验收标准(整体)
- [ ] 老板打开应用,3 秒内看到"今日要事"
- [ ] 案卡看板正确展示所有进行中事项,点击可续接
- [ ] 移动端底部 Tab 全功能可达,FAB 弹出快捷指令
- [ ] 快捷指令基于画像生成,点击预填问题
- [ ] "我的团队"显示咨询过的专家,一键发起咨询
- [ ] 风险推送出现在老板台,可标记已读
- [ ] 闭环案卡归档为决策日志,可标记执行结果
- [ ] ChatPanel 风险卡置顶,起诉状三步向导可用
- [ ] 三端视觉规范对齐(C 端 indigo / B 端 gray / Admin 深色+amber)
- [ ] lint + typecheck + build 通过
---
## 11. 风险与对策
| 风险 | 对策 |
|---|---|
| 范式转变用户不适应 | 阶段一保留法务/决策/生活独立入口,案卡为增量 |
| 后端定时任务复杂度 | 阶段三风险雷达先用简单轮询,后续优化 |
| 语音输入浏览器兼容 | 降级为文字输入,Safari 不支持时隐藏语音按钮 |
| 移动端底部 Tab 重构量大 | 与桌面 Sidebar 共享 NavConfig,仅渲染层不同 |
| 画像数据不全导致指令不准 | 缺口引导:"完善行业信息解锁更精准建议" |
---
📌 v2.0 更新:见 `pmdocs/changes/2026-08-30-001-uiux重构.md`
影响范围:SCENE-001~010、PRD-FUNC-001~018、全用户端导航与页面
状态:待确认