Files
cmroubao/docs/07-user-stories.md
T

242 lines
12 KiB
Markdown
Raw 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.
# 用户故事清单
> 本文描述角色、目标和业务结果。具体按钮、加载和错误反馈见
> [交互清单](08-interaction-checklist.md)。
## 用户故事总表
| ID | 标题 | 优先级 | 角色 | 要达成的结果 | 关联功能 | 关联交互 | 状态 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| US-001 | 创建清晰的采购任务 | P0 | 采购管理员 | 把商品资料和硬约束变成可执行任务 | F-001 | IX-002 | 已定 |
| US-002 | 跟踪任务和查看证据 | P0 | 采购管理员 | 判断任务正在做什么、结果是否可信 | F-002、F-007 | IX-003 | 已定 |
| US-003 | 安全领取下一条任务 | P0 | 采购执行员 | 在设备就绪时领取且只领取一条任务 | F-003 | IX-005 | 已定 |
| US-004 | 自动检索并得到候选 | P0 | 采购执行员 | 减少手工提词和逐条比较 | F-004、F-005 | IX-006 | 已定 |
| US-005 | 在不可逆操作前人工判断 | P0 | 采购执行员 | 接受、拒绝候选或转人工,不被自动下单 | F-006 | IX-007 | 已定 |
| US-006 | 看懂失败并安全恢复 | P0 | 采购执行员、采购管理员 | 知道失败位置和下一步,避免重复操作 | F-007 | IX-008 | 已定 |
| US-007 | 建立受控会话和设备身份 | P0 | 采购管理员、采购执行员 | 未授权人员和设备不能接触任务 | F-001、F-003 | IX-001、IX-004 | 已定 |
| US-008 | 积累可信的候选决策样本 | P1 | 采购执行员、优化人员 | 用真实曝光和人工理由评估并改进模型 | F-008 | IX-009 | 已定,T-208 后置 |
| US-009 | 手机独立完成采购任务 | P0 | 采购执行员 | 后端短时不可用时仍在有限授权内安全执行 | F-009 | IX-010 | 已定,T-206/T-207 |
| US-010 | 审批并创建待付款订单 | P0 | 采购管理员、采购执行员 | Admin 选定候选后只创建一笔可核对的待付款订单 | F-006、F-010 | IX-011 | 已定,T-215 至 T-219 |
## US-001 创建清晰的采购任务
- 关联页面:管理 Web `/tasks/new`
- 前置条件:管理员已登录;参考图片可读取。
作为采购管理员,我想提交商品标题、SKU、描述、参考图、数量和总预算,从而让采购
设备拿到没有歧义的原始采购要求。
**范围**
- 包含:输入校验、图片上传、任务编号、`PENDING` 状态。
- 不包含:批量导入、任务模板、审批流。
**验收场景**
1. 合法输入提交后,任务列表出现唯一编号、摘要和 `PENDING` 状态。
2. 标题、SKU、数量、总预算、图片或描述不满足规则时,保留已填内容并指出修复位置。
3. 网络超时后重复提交同一幂等请求,不产生重复任务。
## US-002 跟踪任务和查看证据
- 关联页面:管理 Web `/tasks`、`/tasks/{id}`
- 前置条件:管理员有任务查看权限。
作为采购管理员,我想查看任务状态、执行设备、候选和失败证据,从而判断自动化是否
完成、是否需要人工介入。
**范围**
- 包含:列表、详情、状态时间线、候选摘要、截图、错误。
- 不包含:生产级报表、财务对账、实时视频。
**验收场景**
1. 任务被领取和执行后,刷新详情能看到服务端最新状态和时间线。
2. 任务完成后能看到候选匹配理由、人员判断和 `order_submitted=false`。
3. 失败后能看到错误码、失败步骤、说明和有权限的证据图片。
4. 无权限访问任务或证据时,明确拒绝且不泄露摘要。
## US-003 安全领取下一条任务
- 关联页面:Android“任务”页
- 前置条件:采购员已登录、设备已绑定、没有活跃任务。
作为采购执行员,我想在设备就绪时点击获取下一条任务,从而自主控制何时开始采购,
并避免一台设备同时处理多条任务。
**范围**
- 包含:就绪检查、手动领取、任务预览、无任务反馈。
- 不包含:后台推送后自动执行、抢单优先级配置。
**验收场景**
1. 设备就绪且有待处理任务时,点击后只出现一条已领取任务。
2. 没有任务时显示空状态,不把空队列当作错误。
3. 无障碍缺失、拼多多不可用、设备禁用或已有活跃任务时,说明原因并禁止领取。
4. 网络超时或重复点击后,复用请求前已保存的 claim token 和幂等 key 可确认同一
领取结果,不产生重复领取。
5. 只有持有当前 claim 的用户和设备能读取该任务的参考图、开始或续租。
## US-004 自动检索并得到候选
- 关联页面:Android“任务执行”页、拼多多 App
- 前置条件:任务已领取;用户确认开始;拼多多处于可操作状态。
作为采购执行员,我想让系统从图片和文字提取搜索条件并检查少量商品,从而减少人工
输入和逐条浏览。
**范围**
- 包含:结构化解析、关键词搜索、最多 5 个候选、匹配解释。
- 不包含:全站爬取、无限翻页、跨平台比价。
**验收场景**
1. 解析结果保留原始数量和预算,并展示搜索词、属性、置信度和警告。
2. App 能在已验证拼多多版本进入搜索结果并按有界流程检查候选。
3. 找到候选时给出匹配项、缺失项、价格和判断依据。
4. 无合理候选、模型低置信度或页面不确定时停止并转人工。
## US-005 在不可逆操作前人工判断
- 关联页面:Android“候选确认”页或拼多多候选/订单确认页
- 前置条件:自动化已产生候选或“无匹配”结论。
作为采购执行员,我想在订单提交前检查候选并明确接受、拒绝或转人工,从而保持对
资金和商品选择的控制。
**范围**
- 包含:候选摘要、匹配理由、确认结果、停止自动化。
- 不包含:提交订单、支付、修改收货地址、自动使用优惠。
**验收场景**
1. 到达人工确认点后自动化不再点击,页面清楚显示等待人员处理。
2. 接受候选只完成验证任务,结果明确记录 `order_submitted=false`。
3. 拒绝、无匹配或转人工时记录原因,不偷偷改搜索条件继续尝试。
4. 任意 MVP 路径都不能到达支付动作。
## US-006 看懂失败并安全恢复
- 关联页面:Android“任务执行/结果”页、管理 Web 任务详情
- 前置条件:执行期间发生可恢复或不可恢复问题。
作为采购人员,我想知道自动化在哪一步因为什么停止,从而可以修复环境、人工接管或
决定是否重试,而不是重复下单或丢失证据。
**范围**
- 包含:结构化错误、步骤、必要截图、恢复建议、取消。
- 不包含:无限自动重试、自动绕过平台提示。
**验收场景**
1. 验证码、风控、登录失效、未知页面和安全边界分别产生可区分错误。
2. 网络中断时保留本地待上传证据,恢复后用幂等方式补报。
3. 用户或管理员取消时,执行中任务先收到停止请求;App 在安全检查点停止并确认后
才进入取消终态,不会继续在后台点击。
4. 重新打开终态任务可以看到相同结果和证据。
## US-007 建立受控会话和设备身份
- 关联页面:管理 Web `/login`、Android“登录/设备绑定”页
- 前置条件:系统已有种子账号和授权设备。
作为授权用户,我想使用自己的账号和设备身份访问系统,从而让任务创建与执行可追溯,
并阻止未授权访问。
**范围**
- 包含:管理登录/退出、预授权设备首次绑定、会话过期处理。
- 不包含:自助注册、找回密码、完整用户管理和 SSO。
**验收场景**
1. 正确凭证建立会话,错误凭证不说明具体哪一项错误。
2. 禁用账号或设备不能建立新会话或领取任务。
3. 会话过期时保留非敏感界面上下文并要求重新登录。
4. 管理员会话不能替代设备令牌,设备令牌也不能访问管理页面。
## US-008 积累可信的候选决策样本
- 关联页面:Android“候选确认”、管理 Web 任务详情。
- 前置条件:T-206/T-207 第一版领取、执行和结果回传已经跑通。
作为采购执行员和后续优化人员,我希望保存每次实际看到的候选、模型判断、系统推荐
及人员选择/拒绝理由,从而可以区分模型问题、搜索排序问题和页面证据不足,而不是用
模型自己的结论给模型打分。
**范围**
- 包含:最多 5 个曝光候选、截图、可见标题/规格/价格、可选商品链接、模型 provenance、
逐候选评估、推荐策略版本、结构化人工理由和修正审计。
- 不包含:全站商品抓取、训练管线、自动下载任意外链、平台级 Top 5 声明。
**验收场景**
1. 同一次 execution 可以还原当时的搜索词、候选原始顺序、截图和各层判断。
2. 接受、拒绝、改选和全部无匹配都有合法人工理由;模型理由不会自动成为人工标签。
3. 拒绝推荐并改选时,原推荐项有负标签,替代项有正标签。
4. 人工修正保留旧版本、actor 和时间;离线指标只使用当前有效人工 review。
5. 外链失效后,授权人员仍能读取保留期内的受控截图证据。
## US-009 手机独立完成采购任务
- 关联页面:Android“设备设置”“任务执行”和“结果同步”。
- 前置条件:设备已绑定;本地执行模式已选择;AI 模式已配置可用 provider。
作为采购执行员,我希望手机从后台领取完整任务后独立完成 VLM、拼多多操作和人工
确认,从而在管理后端短时不可用时仍可工作,并在恢复连接后可靠提交结果。
**范围**
- T-206 已包含:后台任务安全登录/领取、有限离线授权、前台 heartbeat、状态恢复和
安全停止。
- T-207 待包含:App 本地 provider 接入后台任务、Key 迁移、手动/AI 模式、加密
outbox、结果 provenance 和恢复补报。
- 不包含:无限离线执行、离线即时取消、后端模型代理、多设备统一模型或自动下单。
**验收场景**
1. 后台任务不包含或修改 provider、模型、地址和 Key;Roubao 独立模式继续可用。
2. AI Key 迁移到 Keystore-backed 加密存储,结果和日志只记录非秘密 provenance。
3. 后端断开超过旧的 90 秒租约后,App 仍可在服务端给定截止时间内继续;到期安全
停止,服务端不把任务分给其他设备。
4. `MANUAL_FIRST` 不依赖 VLM;`AI_ASSISTED` 由 App 直连本地配置的 HTTPS provider,
两种模式都停在人工确认且 `order_submitted=false`。
5. 离线完成的结果恢复联网后幂等补报;离线期间的取消在恢复后的首个同步点处理。
## US-010 审批并创建待付款订单
- 关联页面:管理 Web“任务详情/候选确认”、Android“等待授权/订单执行”。
- 前置条件:当前 execution 已回传带持久 candidate key 的候选和双证据。
作为采购管理员,我希望查看候选证据、给选择和拒绝填写理由并签发一次性授权,从而
让 Roubao 只按我确认的商品、SKU 和数量创建一笔待付款订单;作为采购执行员,我希望
订单号和下单时间自动回传,随后由人员在拼多多复核并付款。
**范围**
- 包含:Admin 选品、逐候选理由、不可变授权、设备命令、重新定位、SKU/数量复核、
单次提交、订单列表对账和待付款提醒。
- 不包含:自动支付、验证码/风控绕过、自动修改地址、无界重试或仅凭 URL 下单。
**验收场景**
1. 非空候选回传后任务进入等待 Admin 确认,手机不会自行选定或提交。
2. Admin 只能按当前 candidate key 授权,数量来自原任务;改选保留旧 review 和授权。
3. Roubao 领取授权后重新用参考图定位候选,并复核详情/规格指纹、SKU、数量和价格。
4. 每个授权最多执行一次提交;响应不确定时先去订单列表对账,不能再次点击。
5. 找到新订单后回传拼多多订单号和下单时间,Admin 显示“待人工确认付款”。
6. 任意流程都不点击付款,不保存支付密码或验证码。
## 待确认
- 密码重置流程后置;T-204 使用本地 `authctl` 显式创建种子 ADMIN/BUYER 和预授权
设备,不提供管理 UI 或客户端自助登记。
- T-208 前固定谁负责确认测试任务、理由码 allowlist 和“候选可接受”的统一口径。
- 拒绝候选是否允许创建新任务仍待定;当前默认只记录结果和理由。