Files
cmroubao/docs/08-interaction-checklist.md
T

10 KiB

交互清单

本文把 P0 用户故事转换成可实现、可测试的 Web 和 Android 行为。页面入口见 路由,接口字段见 API。

交互总表

ID 用户故事 页面/组件 触发 预期结果 优先级 状态
IX-001 US-007 管理 Web 登录 提交账号密码 建立管理会话或显示通用错误 P0 已定
IX-002 US-001 新建任务表单 填写并提交 创建 PENDING 任务 P0 已定
IX-003 US-002 任务列表/详情 打开、刷新、取消 查看最新状态、证据和允许动作 P0 已定
IX-004 US-007 App 登录/设备绑定 登录或会话恢复 建立人员+设备身份 P0 已定
IX-005 US-003 App 任务页 点击“获取任务” 就绪检查后领取一条任务或显示原因 P0 已定
IX-006 US-004 App 执行页 确认开始/自动步骤 显示步骤并有界执行搜索与候选判断 P0 已定
IX-007 US-005 App 候选确认 接受/拒绝/转人工 停止自动化并回传人员结论 P0 已定
IX-008 US-006 App/管理端错误状态 自动失败、取消、重试上传 显示结构化原因和恢复动作 P0 已定

IX-001 管理 Web 登录

  • 页面:/login
  • 角色:采购管理员
  • 前置条件:种子管理账号已建立。
  • 服务依赖:管理会话创建。
  • 关联原型:待 T-301 创建。

正常路径

  1. 用户输入账号和密码并提交。
  2. 提交期间按钮禁用并显示进度,密码不回显。
  3. 成功后进入原目标页或 /tasks。

状态与异常

  • 默认:账号框自动聚焦;密码可切换显示但默认隐藏。
  • 校验:空字段在字段附近提示;服务端仍执行完整校验。
  • 失败:统一显示“账号或密码不正确”,不暴露账号是否存在。
  • 网络错误:保留账号,清空密码,允许重试。
  • 会话过期:跳转登录并保留安全的返回路径。

可访问性

  • 标签与输入框显式关联;错误摘要可被读屏感知。
  • Enter 提交;焦点移到首个错误字段。

IX-002 创建采购任务

  • 页面:/tasks/new
  • 角色:采购管理员
  • 服务依赖:POST /api/v1/assets、POST /api/v1/tasks
  • 关联原型:待 T-301 创建。

正常路径

  1. 输入标题、描述、数量、可选预算并选择一张图片。
  2. 浏览器展示图片预览、文件名和大小。
  3. 提交期间锁定重复提交并显示“正在创建”。
  4. 成功后进入任务详情,显示编号和 PENDING。

状态与异常

  • 数量默认 1,只接受正整数;预算为空表示不设置上限。
  • 图片类型、大小或解码失败时在图片控件旁提示。
  • 上传成功但创建失败时重用已上传 asset,不重复上传。
  • 网络状态不确定时使用幂等键查询结果,不直接再创建。
  • 离开含未提交内容的表单时提示确认。

可访问性与小屏

  • 字段错误使用文本说明,不只使用颜色。
  • 图片选择有可访问名称;预览提供来源文件名。
  • 小屏下表单单列,提交按钮不遮挡最后一个字段。

IX-003 查看任务与证据

  • 页面:/tasks、/tasks/{id}
  • 角色:采购管理员
  • 服务依赖:任务列表、详情、取消和资产读取 API。
  • 关联原型:待 T-301 创建。

正常路径

  1. 列表按最近创建时间展示编号、标题、状态、设备和更新时间。
  2. 进入详情查看原始输入、状态时间线、AI 派生结果、候选和证据。
  3. 仅 PENDING/允许状态展示取消命令,取消前二次确认。

状态与异常

  • 加载:保留页面框架和筛选条件,显示明确进度。
  • 空状态:说明还没有任务并提供“新建任务”入口。
  • 失败:保留上一次内容但标明可能过期,提供重试。
  • 权限不足/不存在:分别处理,但都不泄露任务内容。
  • 截图加载失败:显示占位和重试,不影响其他证据查看。
  • SUCCEEDED 详情必须醒目展示“验证完成,未提交订单”。

可访问性

  • 状态同时使用文字,不只用颜色。
  • 时间线使用有序列表语义;图片有描述性替代文本。
  • 列表在窄屏转换为可扫描行,不使用水平溢出遮挡操作。

IX-004 App 登录与设备绑定

  • 页面:Android“登录/设备绑定”
  • 角色:采购执行员
  • 服务依赖:POST /api/v1/auth/token、设备心跳。
  • 关联原型:待 T-301 创建。

正常路径

  1. 用户输入采购账号并选择/确认设备身份。
  2. 成功后令牌存入 Android 安全存储,进入任务页。
  3. App 上报版本和就绪能力,不上传敏感设备内容。

状态与异常

  • 账号或设备被禁用:解释联系管理员,不反复重试。
  • 网络错误:保留非敏感账号字段,密码清空。
  • 会话恢复失败:退出到登录页;活跃任务先查询服务端再决定状态。
  • 退出登录:有运行任务时禁止直接退出,先安全停止。

可访问性

  • 支持系统字体缩放;输入与错误不重叠。
  • 软键盘不遮挡提交按钮,返回键不会静默丢失运行状态。

IX-005 手动获取任务

  • 页面:Android“任务”
  • 角色:采购执行员
  • 服务依赖:设备预检、POST /api/v1/tasks/claim-next
  • 关联原型:待 T-301 创建。

正常路径

  1. 页面显示无障碍、拼多多、网络和当前任务的就绪状态。
  2. 全部就绪时“获取任务”可用;点击后立即禁用防重复。
  3. 成功后展示任务预览和“开始采购”,此时状态为 CLAIMED。

状态与异常

  • 无任务:显示安静的空状态和手动刷新,不循环弹错。
  • 权限缺失:提供打开对应系统设置的命令。
  • 已有任务:显示“继续任务”,不再领取。
  • 请求超时:先查询当前设备活跃任务,再允许重试。
  • 租约到期:预览页提示任务已释放,返回任务页。

可访问性

  • 就绪状态使用图标加文字;系统设置命令有明确名称。
  • 主要控件满足 Android 最小触控区域,加载不改变控件尺寸。

IX-006 执行采购任务

  • 页面:Android“任务执行”及拼多多前台
  • 角色:采购执行员
  • 服务依赖:start、heartbeat、AI、event API 和 Android 自动化。
  • 关联原型:待 T-301 创建。

正常路径

  1. 用户检查原始需求并点击“开始采购”。
  2. App 启动前台服务,进入预检并显示当前步骤。
  3. 解析需求,打开拼多多,搜索并检查最多 5 个候选。
  4. 每一步上报事件;找到结果后进入 WAITING_CONFIRMATION。

状态与异常

  • 运行中禁止第二次开始;持续通知提供“返回任务”和“停止”。
  • App 切换到拼多多时,通知是回到执行页的稳定入口。
  • 用户请求停止后进入“正在安全停止”,不立即在动作中间销毁状态。
  • 进程重启时查询任务和 execution;无法证明可安全恢复则标记失败。
  • 验证码、风控、登录、支付和未知页面立即停止,不展示“自动继续”。
  • AI 超时最多按配置重试;输出无效或低置信度转人工。
  • 任意候选达到预算上限校验失败时不能进入接受状态。

可访问性与反馈

  • 当前步骤使用文字和进度列表,不显示虚假百分比。
  • 错误、暂停和等待人工使用不同语义,不只依赖颜色。
  • 通知操作名称明确;动态更新通过适度的 live region/无障碍播报。

IX-007 人工确认候选

  • 页面:Android“候选确认”
  • 角色:采购执行员
  • 服务依赖:POST /api/v1/tasks/{id}/complete
  • 关联原型:待 T-301 创建。

正常路径

  1. 展示原始需求、候选标题/价格、匹配项、缺失项和证据截图。
  2. 用户选择“接受候选”“拒绝候选”或“需人工处理”。
  3. 每种选择要求确认,必要时填写简短原因。
  4. 结果幂等回传,页面显示“验证完成,未提交订单”。

状态与异常

  • 没有候选时只允许确认“无匹配”或“需人工处理”。
  • 存在超预算或关键属性未知时禁用“接受候选”并说明原因。
  • 回传超时:保留选择和原因,查询最终状态后再重试。
  • 返回键不能恢复自动点击;等待确认一旦到达就是硬停止点。
  • 所有结果都写入 order_submitted=false。

可访问性

  • 候选信息按标题、价格、匹配和风险分组。
  • 确认对话框默认焦点在取消;破坏性/拒绝动作不能与接受动作混淆。

IX-008 失败、取消和恢复

  • 页面:Android“任务执行/结果”、Web 任务详情
  • 角色:采购执行员、采购管理员
  • 服务依赖:fail、event、asset API。
  • 关联原型:待 T-301 创建。

正常路径

  1. 系统停止动作,保存失败步骤和错误类别。
  2. App 显示发生了什么、是否已停止和建议下一步。
  3. 证据上传成功后,管理详情显示相同结论。

状态与异常

  • 上传失败:本地加密/受控保留待传证据,显示“结果待同步”。
  • 取消:说明不会自动恢复;服务端终态后清理前台服务。
  • 可恢复设备问题:只提供“修复后重新领取/新建尝试”,不原地猜测继续。
  • 安全错误 SAFETY_* 不允许自动重试。
  • 清理本地证据仅在服务端确认接收或超过明确保留策略后发生。

验收证据

  • 每类错误至少有一个自动化或 fake 测试。
  • 验证码/未知页/支付边界至少在受控环境各验证一次安全停止。

通用交互约束

  • Web 和 App 的所有提交都防重复,网络超时后以服务端状态为准。
  • 状态名称使用用户可理解中文,同时保留稳定机器状态码。
  • 不在 UI 暴露模型密钥、设备令牌、内部堆栈或文件绝对路径。
  • 字体放大、窄屏、软键盘和系统返回操作下,主要命令和错误不能被遮挡。
  • P0 页面实现前按 design/README.md 生成低保真原型并人工确认。