diff --git a/07-user-stories.-.md b/07-user-stories.-.md deleted file mode 100644 index a3c55cb..0000000 --- a/07-user-stories.-.md +++ /dev/null @@ -1,276 +0,0 @@ - -> 同步来源:[`docs/07-user-stories.md`](/chengma/mroubao/src/commit/afc651f75a3abc2676bb13aa8a80f6aa6a25a72e/docs/07-user-stories.md) · commit `afc651f75a3a` - -# 用户故事清单 - -> 本文描述角色、目标和业务结果。具体按钮、加载和错误反馈见 -> [交互清单](/chengma/mroubao/wiki/08-interaction-checklist)。 - -## 用户故事总表 - -| 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-011 | 导入并查看 ERP 货运单 | P0 | 采购管理员 | 按单号或时间同步货运单及全部商品明细,知道同步是否完整 | F-011 | IX-012 | 已定,T-220 至 T-224 | -| US-012 | 从货运明细生成采购任务 | P0 | 采购管理员 | 复核来源商品并幂等生成一条可执行采购任务 | F-012 | IX-013 | 已定,T-223 | - -## US-011 导入并查看 ERP 货运单 - -- 关联页面:管理 Web `/freight`、`/freight/import`、`/freight/{id}` -- 前置条件:ERP Connector 已建立受控登录会话。 - -作为采购管理员,我想按完整单号或时间范围同步顺运宝货运信息,并查看每张货运单的 -全部商品明细,从而不再手工抄写采购资料。 - -**验收场景** - -1. 同一单号重复同步不会增加重复货运单或商品明细。 -2. 一张货运单有多个商品时,Admin 展示全部明细而不是只保留最后一条。 -3. Connector 未登录、ERP 超时、查询过宽或响应缺字段时显示可重试失败,不写半批数据。 -4. 页面和日志不显示收件电话、详细地址、ERP Cookie/JWT 或完整原始响应。 - -## US-012 从货运明细生成采购任务 - -- 关联页面:管理 Web `/freight/{id}` -- 前置条件:商品明细已导入,标题、SKU、数量和参考图可核对。 - -作为采购管理员,我想从一条 ERP 商品明细生成一条采购任务,从而让 Roubao 使用 -经过核对的不可变来源快照执行采购。 - -**验收场景** - -1. 每条商品明细独立显示标题、规格/SKU、数量、图片和来源 revision。 -2. 缺图、数量非法、SKU 含糊或来源状态不允许时禁止生成并指出原因。 -3. 重复点击或网络重试返回同一采购任务。 -4. ERP 来源变化不修改已领取或执行中的采购任务,而是提示来源已更新。 - -## 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 和“候选可接受”的统一口径。 -- 拒绝候选是否允许创建新任务仍待定;当前默认只记录结果和理由。 diff --git a/unnamed.md b/unnamed.md index 878de8c..6a7ce7e 100644 --- a/unnamed.md +++ b/unnamed.md @@ -1,49 +1,276 @@ - -> 同步来源:[`docs/01-vision.md`](/chengma/mroubao/src/commit/afc651f75a3abc2676bb13aa8a80f6aa6a25a72e/docs/01-vision.md) · commit `afc651f75a3a` + +> 同步来源:[`docs/07-user-stories.md`](/chengma/mroubao/src/commit/afc651f75a3abc2676bb13aa8a80f6aa6a25a72e/docs/07-user-stories.md) · commit `afc651f75a3a` -# 项目愿景 +# 用户故事清单 -## 核心目标 +> 本文描述角色、目标和业务结果。具体按钮、加载和错误反馈见 +> [交互清单](/chengma/mroubao/wiki/08-interaction-checklist.-)。 -让采购团队能够把商品图片、标题、描述、数量和预算形成标准采购任务,由专用 Android -设备辅助完成拼多多检索和候选比较,减少重复搜索时间,并为每次自动化执行留下可审计 -的结果。 +## 用户故事总表 -本项目不是绕过电商平台规则的爬虫或支付机器人。首要目标是验证 AI 与 Android UI -自动化能否在真实采购场景中可靠协助人员,而不是追求无人值守。 +| 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-011 | 导入并查看 ERP 货运单 | P0 | 采购管理员 | 按单号或时间同步货运单及全部商品明细,知道同步是否完整 | F-011 | IX-012 | 已定,T-220 至 T-224 | +| US-012 | 从货运明细生成采购任务 | P0 | 采购管理员 | 复核来源商品并幂等生成一条可执行采购任务 | F-012 | IX-013 | 已定,T-223 | -## 目标用户 +## US-011 导入并查看 ERP 货运单 -- **采购管理员**:创建任务、设置硬性约束、查看进度和结果。 -- **采购执行员**:在 Android App 上领取任务、监控执行、人工确认候选和处理异常。 -- **系统管理员(后续)**:管理人员、角色、设备、模型配置和审计策略。 -- **审核员(后续)**:审核高金额或异常任务,不直接操作采购流程。 +- 关联页面:管理 Web `/freight`、`/freight/import`、`/freight/{id}` +- 前置条件:ERP Connector 已建立受控登录会话。 -## 核心价值 +作为采购管理员,我想按完整单号或时间范围同步顺运宝货运信息,并查看每张货运单的 +全部商品明细,从而不再手工抄写采购资料。 -| 价值 | 说明 | -| --- | --- | -| 减少重复操作 | 自动把图片和描述转为检索条件,减少人工输入和逐条翻找。 | -| 提高匹配一致性 | 用结构化约束和可解释的候选比较代替完全凭经验浏览。 | -| 保持人工控制 | 对不可逆操作设置明确停止点,人员随时知道当前状态并可接管。 | -| 留下执行证据 | 任务、候选、截图、失败原因和耗时可以追溯。 | +**验收场景** -## 产品原则 +1. 同一单号重复同步不会增加重复货运单或商品明细。 +2. 一张货运单有多个商品时,Admin 展示全部明细而不是只保留最后一条。 +3. Connector 未登录、ERP 超时、查询过宽或响应缺字段时显示可重试失败,不写半批数据。 +4. 页面和日志不显示收件电话、详细地址、ERP Cookie/JWT 或完整原始响应。 -- **先证伪最高风险**:先证明拼多多页面自动化可运行,再建设完整后台。 -- **硬约束优先于模型**:数量、最高预算和人工输入不能被模型修改。 -- **人工确认不可省略**:验证版的订单提交和支付必须由人控制。 -- **失败要可诊断**:不能只返回“失败”,必须记录步骤、错误码和必要截图。 -- **最小权限**:后台、人员、设备和第三方 App 权限各自隔离。 -- **可替换模型**:业务流程不能绑定单一 VLM 厂商。 +## US-012 从货运明细生成采购任务 -## 非目标 +- 关联页面:管理 Web `/freight/{id}` +- 前置条件:商品明细已导入,标题、SKU、数量和参考图可核对。 -- MVP 不自动提交订单或支付。 -- MVP 不支持淘宝、1688、京东等其他平台。 -- MVP 不做后台推送后立即执行;只做 App 手动领取。 -- MVP 不做多设备负载均衡、复杂审批、财务对账和退款。 -- 不绕过验证码、风控、登录验证、平台限流或权限校验。 -- 不承诺对所有拼多多版本和所有商品类目通用。 +作为采购管理员,我想从一条 ERP 商品明细生成一条采购任务,从而让 Roubao 使用 +经过核对的不可变来源快照执行采购。 -具体范围与验收见[需求](/chengma/mroubao/wiki/02-requirements.-)。 +**验收场景** + +1. 每条商品明细独立显示标题、规格/SKU、数量、图片和来源 revision。 +2. 缺图、数量非法、SKU 含糊或来源状态不允许时禁止生成并指出原因。 +3. 重复点击或网络重试返回同一采购任务。 +4. ERP 来源变化不修改已领取或执行中的采购任务,而是提示来源已更新。 + +## 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 和“候选可接受”的统一口径。 +- 拒绝候选是否允许创建新任务仍待定;当前默认只记录结果和理由。