From 2b265c92fc22e1e778cd0d5f1f39008ac3c1bdbd Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Sun, 26 Jul 2026 13:19:16 +0800 Subject: [PATCH] docs(prototype): confirm p0 web and app flows --- docs/00-ai-start-here.md | 3 +- docs/08-interaction-checklist.md | 24 +- docs/current-state.md | 17 +- docs/design/README.md | 11 +- docs/design/admin-login.html | 267 +++++++++++ docs/design/admin-task-create.html | 368 ++++++++++++++++ docs/design/admin-task-detail.html | 486 +++++++++++++++++++++ docs/design/admin-task-list.html | 328 ++++++++++++++ docs/design/android-candidate-confirm.html | 73 ++++ docs/design/android-login.html | 77 ++++ docs/design/android-settings.html | 87 ++++ docs/design/android-task-home.html | 74 ++++ docs/design/android-task-preview.html | 59 +++ docs/design/android-task-result.html | 64 +++ docs/design/android-task-running.html | 75 ++++ docs/design/index.html | 61 +++ docs/routes.md | 3 + docs/tasks/T-202.md | 100 +++++ progress.md | 9 + 19 files changed, 2170 insertions(+), 16 deletions(-) create mode 100644 docs/design/admin-login.html create mode 100644 docs/design/admin-task-create.html create mode 100644 docs/design/admin-task-detail.html create mode 100644 docs/design/admin-task-list.html create mode 100644 docs/design/android-candidate-confirm.html create mode 100644 docs/design/android-login.html create mode 100644 docs/design/android-settings.html create mode 100644 docs/design/android-task-home.html create mode 100644 docs/design/android-task-preview.html create mode 100644 docs/design/android-task-result.html create mode 100644 docs/design/android-task-running.html create mode 100644 docs/design/index.html create mode 100644 docs/tasks/T-202.md diff --git a/docs/00-ai-start-here.md b/docs/00-ai-start-here.md index d4e90e7..773832a 100644 --- a/docs/00-ai-start-here.md +++ b/docs/00-ai-start-here.md @@ -53,7 +53,8 @@ 当前已完成 Phase 0 和 Phase 1:Android 可运行、设备就绪、workflow、私有样本导入、 动态词搜索、最多 5 个候选截图采集、结构化需求提取、候选评估和人工确认停止点均已 -验证。T-201 后端骨架也已完成,下一步是 T-202,生成并确认 P0 Web/App 低保真原型。 +验证。T-201 后端骨架和 T-202 P0 Web/App 低保真原型均已完成,原型已通过自动验证 +和人工确认。下一步按编号开始 T-203,实现任务创建 API 与管理 Web。 严格按以下顺序推进: diff --git a/docs/08-interaction-checklist.md b/docs/08-interaction-checklist.md index 21d7cd4..aebd34c 100644 --- a/docs/08-interaction-checklist.md +++ b/docs/08-interaction-checklist.md @@ -22,7 +22,7 @@ - 角色:采购管理员 - 前置条件:种子管理账号已建立。 - 服务依赖:管理会话创建。 -- 关联原型:待 `T-301` 创建。 +- 关联原型:[管理登录](design/admin-login.html)(T-202)。 **正常路径** @@ -48,7 +48,7 @@ - 页面:`/tasks/new` - 角色:采购管理员 - 服务依赖:`POST /api/v1/assets`、`POST /api/v1/tasks` -- 关联原型:待 `T-301` 创建。 +- 关联原型:[新建任务](design/admin-task-create.html)(T-202)。 **正常路径** @@ -76,7 +76,8 @@ - 页面:`/tasks`、`/tasks/{id}` - 角色:采购管理员 - 服务依赖:任务列表、详情、取消和资产读取 API。 -- 关联原型:待 `T-301` 创建。 +- 关联原型:[任务列表](design/admin-task-list.html)、 + [任务详情](design/admin-task-detail.html)(T-202)。 **正常路径** @@ -104,7 +105,8 @@ - 页面:Android“登录/设备绑定” - 角色:采购执行员 - 服务依赖:`POST /api/v1/auth/token`、设备心跳。 -- 关联原型:待 `T-301` 创建。 +- 关联原型:[App 登录](design/android-login.html)、 + [设备设置](design/android-settings.html)(T-202)。 **正常路径** @@ -129,7 +131,9 @@ - 页面:Android“任务” - 角色:采购执行员 - 服务依赖:设备预检、`POST /api/v1/tasks/claim-next` -- 关联原型:待 `T-301` 创建。 +- 关联原型:[任务主页](design/android-task-home.html)、 + [任务预览](design/android-task-preview.html)、 + [设备设置](design/android-settings.html)(T-202)。 **正常路径** @@ -155,7 +159,8 @@ - 页面:Android“任务执行”及拼多多前台 - 角色:采购执行员 - 服务依赖:start、heartbeat、AI、event API 和 Android 自动化。 -- 关联原型:待 `T-301` 创建。 +- 关联原型:[任务预览](design/android-task-preview.html)、 + [任务执行](design/android-task-running.html)(T-202)。 **正常路径** @@ -185,7 +190,8 @@ - 页面:Android“候选确认” - 角色:采购执行员 - 服务依赖:`POST /api/v1/tasks/{id}/complete` -- 关联原型:待 `T-301` 创建。 +- 关联原型:[候选确认](design/android-candidate-confirm.html)、 + [任务结果](design/android-task-result.html)(T-202)。 **正常路径** @@ -212,7 +218,9 @@ - 页面:Android“任务执行/结果”、Web 任务详情 - 角色:采购执行员、采购管理员 - 服务依赖:fail、event、asset API。 -- 关联原型:待 `T-301` 创建。 +- 关联原型:[管理任务详情](design/admin-task-detail.html)、 + [App 任务执行](design/android-task-running.html)、 + [App 任务结果](design/android-task-result.html)(T-202)。 **正常路径** diff --git a/docs/current-state.md b/docs/current-state.md index a4e2dd9..77c007a 100644 --- a/docs/current-state.md +++ b/docs/current-state.md @@ -4,9 +4,10 @@ ## 当前快照 -- 日期:2026-07-25 -- 阶段:T-201 已完成,准备开始 T-202 P0 低保真原型 -- Git:当前分支为 `main`;T-001 至 T-004、T-101 至 T-104、T-201 均已纳入 Git 历史 +- 日期:2026-07-26 +- 阶段:T-202 P0 Web/App 低保真原型已确认完成,准备开始 T-203 +- Git:当前分支为 `main`;T-001 至 T-004、T-101 至 T-104、T-201、T-202 + 均已纳入 Git 历史 - 生产代码:`android-buyer/` 已接入 Roubao Android 源码 - Android:固定 `main@c8a6d7f03422eb01744b01f3ee77bf7757741f7e`;MIT 许可证已保留 - 后端:Go 1.23.0 + Gin 1.11.0 + SQLite + Goose 3.26.0 骨架已建立;Go Blueprint @@ -18,6 +19,9 @@ 共 26 份报告、166 次测试,0 failure、0 error、0 skipped - 后端测试:`GOTOOLCHAIN=local go test -count=1 ./...` 共 25 个测试通过; `go vet ./...`、API/migration Windows 构建和根 `init.ps1` 均通过 +- 原型:4 个管理 Web 页面和 7 个 Android 页面均可离线独立打开;Playwright + 以 1440×900、390×844、360×800 验证 36 个页面/视口组合,无页面横向溢出、 + 脚本错误或外部请求,Android 可见交互控件均不小于 44px - Workflow:纯 Kotlin runner 已支持步骤 timeout、最多 3 次 retry、安全阻塞、 用户停止和单 runner 并发拒绝;T-102 已接入搜索加有界候选采集五步 - TaskSource:严格 CLI 已生成并验证真实私有 ProbeTask;默认 APK 不含私有 fixture @@ -51,6 +55,8 @@ | `docs/tasks/T-103.md` | DONE | 私有任务需求 schema、硬约束、隐私边界和 VLM 适配器 | | `docs/tasks/T-104.md` | DONE | 动态搜索、候选严格评估、本地建议和人工确认点 | | `docs/tasks/T-201.md` | DONE | Go-Gin、SQLite、Goose migration 和健康检查骨架 | +| `docs/tasks/T-202.md` | DONE | 生成并确认 P0 Web/App 低保真原型 | +| `docs/design/` | 已确认 | T-202 原型索引、4 个管理页和 7 个 Android 页面 | | `deepseek总结.txt` | 已有 | 历史讨论摘要,不是正式需求权威 | | `android-buyer/` | 已有 | Roubao `main` 固定 commit 的 Android 基线 | | `android-buyer/task-contract/` | 已有 | Android/CLI 共享 ProbeTask 与 TaskSource | @@ -60,9 +66,10 @@ ## 任务摘要 -- 已完成:T-001 至 T-004、T-101 至 T-104,以及 T-201。 +- 已完成:T-001 至 T-004、T-101 至 T-104、T-201、T-202。 - 正在进行:无。 -- 下一个可领取任务:T-202 生成并确认 P0 Web/App 低保真原型。 +- 下一个可领取任务:T-203 实现任务创建 API 与管理 Web;T-204 也已满足依赖, + 但按编号顺序在 T-203 之后处理。 ## 当前可运行内容 diff --git a/docs/design/README.md b/docs/design/README.md index 7591a4c..340b28d 100644 --- a/docs/design/README.md +++ b/docs/design/README.md @@ -11,22 +11,29 @@ - 使用假数据,不放真实账号、商品图、订单、地址、token 或生产 URL。 - 使用语义化 `button`、`form`、`table`、`dialog` 等元素。 -建议文件: +P0 文件: ```text +index.html admin-login.html admin-task-list.html admin-task-create.html admin-task-detail.html android-login.html android-task-home.html +android-task-preview.html android-task-running.html android-candidate-confirm.html +android-task-result.html +android-settings.html ``` +`index.html` 只用于离线逐页导航。其余 11 个文件分别覆盖 +[`routes.md`](../routes.md) 中的 4 条管理 Web 路由和 7 个 Android 逻辑目的地。 + ## 工作流 -1. 根据需求、US 和 routes 生成对应 P0 页面原型。 +1. 在 T-202 根据需求、US 和 routes 生成对应 P0 页面原型。 2. 人工确认页面区块、控件集合、文案和主要动作。 3. 对照原型更新 IX 总表和 P0 详情。 4. 再落正式 UI 任务;实现时按真实框架重写,禁止复制原型代码。 diff --git a/docs/design/admin-login.html b/docs/design/admin-login.html new file mode 100644 index 0000000..275982c --- /dev/null +++ b/docs/design/admin-login.html @@ -0,0 +1,267 @@ + + + + + + + 管理端登录原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+
+
采购任务管理
+
+
+
+

管理端登录

+

使用采购管理员账号继续

+
+ +
+ + +

+
+
+ +
+ + +
+

+
+ +
+
+ + + + +
+

原型状态按钮用于确认错误文案和焦点,不代表生产功能。

+
+
+
+ + + diff --git a/docs/design/admin-task-create.html b/docs/design/admin-task-create.html new file mode 100644 index 0000000..95a6db7 --- /dev/null +++ b/docs/design/admin-task-create.html @@ -0,0 +1,368 @@ + + + + + + + 新建采购任务原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+
+
采购任务管理
+ +
演示管理员
+
+
+
+
+

新建采购任务

+

填写商品要求和不可覆盖的采购约束

+
+
+
+
+
+

商品要求

+
+
+ + +

+
+
+ + +

仅填写采购判断所需信息,不放订单、地址或个人信息。

+
+
+ + +

+
+
+ + +

+
+
+
+
+

参考图片

+
+
+ + +

支持 JPG、PNG、WebP;原型不读取或上传文件。

+

+
+ +
+
+
+ 取消 + +
+
+
+ + + + +
+
+
+ +
+

放弃未提交内容?

+

已填写的商品要求不会保存。

+
+
+ + +
+
+ + + diff --git a/docs/design/admin-task-detail.html b/docs/design/admin-task-detail.html new file mode 100644 index 0000000..f677c11 --- /dev/null +++ b/docs/design/admin-task-detail.html @@ -0,0 +1,486 @@ + + + + + + + 采购任务详情原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+
+
采购任务管理
+ +
演示管理员
+
+
+ 返回任务列表 +
+
+
+
+

演示桌面收纳盒

+ 任务编号 RB-DEMO-1004 +
+
+ 验证完成 · SUCCEEDED + +
+
+
+ +
+

验证完成,未提交订单

+

采购人员已完成人工确认;系统只回传验证结果,order_submitted=false。

+
+
+
+
+
+

原始采购要求

+

以下内容来自管理员输入,不会被 AI 结果覆盖。

+
+ +
+

桌面用分格收纳盒,浅灰色,塑料材质。 +需要带可拆分隔板,外观接近参考图。

+
+ 数量:2 + 最高总预算:60.00 元 + 关键属性:浅灰 / 分隔板 +
+
+
+
+
+

AI 派生理解

+

辅助判断信息,必须经过结构与范围校验。

+
    +
  • 检索词:桌面分格收纳盒、可拆隔板、浅灰
  • +
  • 推断材质:PP 塑料(置信度:中)
  • +
  • 不可忽略:数量 2、总价不超过 60.00 元
  • +
+
+
+
+
+

人工确认的候选

+ 候选 2 / 最多检查 5 个 +
+
合计 49.80 元
+
+

演示多格桌面塑料收纳盒(浅灰,含可拆隔板)

+
+
符合数量与总预算
+
符合颜色与分隔板
+
符合外观接近参考图
+
人工确认材质详情以页面为准
+
+
+
人员结论
接受候选
+
提交订单
否(系统硬停止点)
+
+
+
+

执行证据

+ + +
+
+ +
+
+
+
+

+

+ +
+
+
+ + + + + + + +
+
+
+ +
+

确认取消任务?

+

任务取消后不会自动恢复,采购执行员将不能再领取此任务。

+
+
+ + +
+
+ + + diff --git a/docs/design/admin-task-list.html b/docs/design/admin-task-list.html new file mode 100644 index 0000000..b212d36 --- /dev/null +++ b/docs/design/admin-task-list.html @@ -0,0 +1,328 @@ + + + + + + + 采购任务列表原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+
+
采购任务管理
+ +
演示管理员
+
+
+
+
+

采购任务

+

按最近创建时间查看执行状态和证据

+
+ 新建任务 +
+

刷新失败,当前显示的是上次成功加载的内容,数据可能已过期。

+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
任务状态执行设备更新时间操作
演示桌面收纳盒RB-DEMO-1004验证完成演示设备 A查看详情
演示纯棉毛巾RB-DEMO-1003执行中演示设备 B查看详情
演示文件收纳袋RB-DEMO-1002待领取尚未分配查看详情
演示替换刷头RB-DEMO-1001已停止 · 页面未知演示设备 A查看详情
+
+
+
+

+

+ +
+
+
+

共 4 条演示任务 · 手动刷新,不自动轮询

+
+ + + + + + +
+
+
+ + + diff --git a/docs/design/android-candidate-confirm.html b/docs/design/android-candidate-confirm.html new file mode 100644 index 0000000..0ff846d --- /dev/null +++ b/docs/design/android-candidate-confirm.html @@ -0,0 +1,73 @@ + + + + + + App 候选确认 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+

人工确认候选

+
+ +
验证完成,未提交订单人员结论已记录。

order_submitted=false

+
+ + +
+
+

管理员原始要求

+
商品
透明抽屉式收纳盒
SKU
白色 · 中号
数量
2 件
最高预算
¥ 48.00 / 件
+
+
+

候选 1 / 3

+ +
候选标题
透明可叠放抽屉收纳盒
单价
¥ 39.90
+

匹配与风险

+
  • 符合 颜色:白色
  • 符合 规格:中号
  • 符合 单价未超过预算
+
+
+

人员结论

+
+ + + + +
+
+
+
+
+ +

确认人员结论?

提交只回传验证结论,不会提交订单或支付。

+
+
+ + + diff --git a/docs/design/android-login.html b/docs/design/android-login.html new file mode 100644 index 0000000..98c19b4 --- /dev/null +++ b/docs/design/android-login.html @@ -0,0 +1,77 @@ + + + + + + App 登录与设备绑定 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+

采购执行

+
+

人员与设备身份

+

登录后将绑定当前测试设备,并检查采购所需能力。

+
+
+ + +
+
+ +
+ + +
+
+
+ + +
+ 设备可登记 + 仅上报版本和就绪能力,不上传设备中的敏感内容 +
+
+
+ + +
+ + +

+
+

登录凭据由 Android 安全存储处理。原型不保存任何输入。

+
+
+ + + diff --git a/docs/design/android-settings.html b/docs/design/android-settings.html new file mode 100644 index 0000000..c177d1d --- /dev/null +++ b/docs/design/android-settings.html @@ -0,0 +1,87 @@ + + + + + + App 设备设置 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+
‹

设备设置

+
+
设备可以执行采购任务以下状态仅为脱敏的测试环境示例。
+
+ + +
+
+

权限与应用

+
无障碍服务用于识别稳定语义和执行允许动作
+
通知权限提供返回任务和停止的稳定入口
+
拼多多com.xunmeng.pinduoduo · 测试记录
已安装
+
+
+

连接状态

+
后端服务测试环境 · 不显示内部地址
已连接
+
模型服务能力检查通过 · 不显示密钥
可用
+
最近心跳刚刚,仅上报版本和就绪能力
+
+
+

版本与设备

+
App 版本0.1.0-prototype
测试版
+
设备身份测试设备 A · 已绑定演示账号
有效
+
+ +
+
+ +

退出采购账号?

当前没有运行任务。退出后将清除本机安全会话并返回登录页。

+
+
+ + + diff --git a/docs/design/android-task-home.html b/docs/design/android-task-home.html new file mode 100644 index 0000000..344ed99 --- /dev/null +++ b/docs/design/android-task-home.html @@ -0,0 +1,74 @@ + + + + + + App 任务主页 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+

任务

设置
+
+

采购员:演示账号 · 测试设备 A

+
+

设备就绪检查

+
    +
  • ✓无障碍服务已开启
  • +
  • ✓拼多多已安装
  • +
  • ✓网络连接正常
  • +
  • ✓当前任务无活跃任务
  • +
+
+
+

工作状态

+ + +
可以获取任务点击后只领取一条任务,不会自动开始采购。
+ +
+
+
+ +

正在检查并领取任务…

+
+
+ + + diff --git a/docs/design/android-task-preview.html b/docs/design/android-task-preview.html new file mode 100644 index 0000000..6ede97e --- /dev/null +++ b/docs/design/android-task-preview.html @@ -0,0 +1,59 @@ + + + + + + App 任务预览 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+
‹

任务预览

+
+

任务 #DEMO-2407 · 状态 CLAIMED

+
+

管理员原始要求

+ +
+
商品标题
透明抽屉式桌面收纳盒
+
SKU
白色 · 中号
+
数量
2 件
+
最高预算
¥ 48.00 / 件
+
描述
带把手,可叠放,优先选择相同外观。
+
+
+
+

AI 辅助理解 · 待验证

+

可能关键词:透明、抽屉式、中号、可叠放。最终数量和预算始终以原始要求为准。

+
+
+ + +
开始前请再次检查开始后将打开拼多多并执行有界检索。
+
+
+
+
+ + + diff --git a/docs/design/android-task-result.html b/docs/design/android-task-result.html new file mode 100644 index 0000000..4376c12 --- /dev/null +++ b/docs/design/android-task-result.html @@ -0,0 +1,64 @@ + + + + + + App 任务结果 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+

任务结果

+
+
+ + +
+
验证完成,未提交订单人员已接受候选,结论已同步到后台。

SUCCEEDED · order_submitted=false

+
+

处理摘要

+
停止状态
自动化已停止
最终步骤
人工确认候选
结果同步
服务端已确认接收
本地证据
可按保留策略清理
+
+
+

关键记录

+
  1. 候选检查完成最多检查 5 个,本次发现 3 个
  2. 人员作出结论接受候选
  3. 结果同步完成后台已确认接收
+
+
返回任务主页
+
+
+ + + diff --git a/docs/design/android-task-running.html b/docs/design/android-task-running.html new file mode 100644 index 0000000..118dbb8 --- /dev/null +++ b/docs/design/android-task-running.html @@ -0,0 +1,75 @@ + + + + + + App 任务执行 - 低保真原型 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+

正在执行任务

#DEMO-2407
运行中
+
+
+ + +
+
+ 检查候选 3 / 最多 5 个正在核对标题、规格、数量与预算约束。 +
+
+

执行步骤

+
    +
  1. 设备预检权限、应用和网络均可用
  2. +
  3. 理解采购要求原始数量和预算已锁定
  4. +
  5. 打开拼多多并搜索使用派生关键词检索
  6. +
  7. 检查候选有界检查,不自动下单
  8. +
  9. 等待人工确认到达后自动化硬停止
  10. +
+
+
+

前台服务通知

+

切换到拼多多后,可通过持续通知稳定返回本页或请求停止。

+ +
+
+
模拟找到候选
+
+ +

安全停止任务?

系统会等待当前动作到达安全边界,保存执行状态后停止。不会立即销毁状态。

+
+
+ + + diff --git a/docs/design/index.html b/docs/design/index.html new file mode 100644 index 0000000..aab0033 --- /dev/null +++ b/docs/design/index.html @@ -0,0 +1,61 @@ + + + + + + 肉包 P0 原型索引 + + + +
PROTOTYPE - 仅供确认布局和交互,不是生产实现
+
+

肉包 P0 页面确认

+

按工作流逐页检查页面区块、控件、文案和主要动作。所有内容均为脱敏假数据。

+

安全边界:原型只验证候选,不触发加购、结算、支付或下单。

+
+
+

管理 Web

+
+ 1. 管理登录/login · IX-001 · 会话、校验与通用错误 + 2. 任务列表/tasks · IX-003/008 · 筛选、加载、空与失败 + 3. 新建任务/tasks/new · IX-002 · 商品资料、图片与约束 + 4. 任务详情/tasks/{id} · IX-003/008 · 时间线、候选与证据 +
+ +

Android 采购 App

+
+ 1. 登录与设备绑定login · IX-004 · 人员和设备身份 + 2. 任务主页tasks · IX-005 · 就绪检查和手动领取 + 3. 任务预览task/{id}/preview · IX-005/006 · 检查要求后开始 + 4. 任务执行task/{id}/running · IX-006/008 · 步骤、安全停止与回到拼多多 + 5. 候选确认task/{id}/confirm · IX-007 · 人工结论硬停止点 + 6. 任务结果task/{id}/result · IX-007/008 · 终态与同步状态 + 7. 设备设置settings · IX-004/005 · 权限、版本和连接状态 +
+ +
+ + diff --git a/docs/routes.md b/docs/routes.md index 1874bee..f566e42 100644 --- a/docs/routes.md +++ b/docs/routes.md @@ -1,5 +1,8 @@ # 路由与页面结构 +T-202 的离线 P0 页面入口见[原型索引](design/index.html)。原型仅用于确认页面区块、 +控件、文案和主要动作,不代表正式路由实现。 + ## 管理 Web | 路由 | 页面 | 职责 | 用户故事 | 交互 | diff --git a/docs/tasks/T-202.md b/docs/tasks/T-202.md new file mode 100644 index 0000000..6c8f935 --- /dev/null +++ b/docs/tasks/T-202.md @@ -0,0 +1,100 @@ +--- +id: T-202 +title: 生成并确认 P0 Web/App 低保真原型 +phase: 2 +deps: + - T-104 +status: DONE +created: 2026-07-25 +context_ref: ab21219a07630b705f3eb681d32b97d9ab49188b +work_branch: main +write_paths: + - docs/design/** + - docs/08-interaction-checklist.md + - docs/routes.md + - docs/current-state.md + - docs/00-ai-start-here.md + - docs/tasks/T-202.md + - progress.md +--- + +## 问题 / 背景 + +Android 已验证到人工确认点,Go-Gin 后端骨架也已建立,但管理 Web 与采购 App 的 +P0 页面还没有经过人工确认。若直接实现正式 UI,页面区块、控件集合、状态反馈和 +主要动作可能在开发期间反复变化,并增加 T-203、T-204 和 T-206 的返工。 + +## 关联需求与交互 + +- 功能:F-001 至 F-007。 +- 用户故事:US-001 至 US-007。 +- 交互:IX-001 至 IX-008。 +- 页面:管理 Web 4 条 P0 路由;Android 7 个 P0 逻辑目的地。 +- 架构/API:`docs/routes.md`、`docs/api.md`、`docs/04-architecture.md`。 + +## 方案 + +1. 在 `docs/design/` 生成零构建依赖、可独立打开的 HTML 原型,使用完全脱敏的假数据。 +2. 管理 Web 覆盖登录、任务列表、新建任务和任务详情;Android 覆盖登录、任务主页、 + 任务预览、执行、候选确认、结果和设置。 +3. 原型提供可点击的主要命令和状态切换,用于确认区块、控件、文案和安全边界,不连接 + API、不读取本地私有样本,也不作为正式 UI 代码复用。 +4. 使用 Playwright 在桌面和手机视口验证页面可打开、关键交互可触发、无水平溢出或 + 明显遮挡。 +5. 用户实际查看并明确确认后,才把本任务改为 `DONE`、同步 IX 原型链接并提交 Git。 + +## 验收要点 + +- [x] 4 个管理 Web P0 路由均有可独立打开的原型页面。 +- [x] 7 个 Android P0 逻辑目的地均在手机尺寸原型中可到达。 +- [x] IX-001 至 IX-008 的正常路径、关键异常和主要命令可被确认。 +- [x] 所有页面固定显示“仅供确认”的原型标记,且不含真实订单、账号、图片或路径。 +- [x] 任务执行页没有虚假百分比;安全错误不提供自动继续。 +- [x] 候选确认页明确展示 `order_submitted=false` 对应的人类文案。 +- [x] 桌面和移动视口无水平溢出、控件遮挡或不可达主要操作。 +- [x] 用户已人工确认页面区块、控件集合、文案和主要动作。 + +## 边界 + +- 不实现正式 Web 框架、Compose/Fragment 页面或任何 API 对接。 +- 不修改 Android 自动化、VLM、后端业务表、鉴权或任务接口。 +- 不使用真实商品、订单、店铺、账号、设备标识、token 或生产 URL。 +- 不在人工确认前标记完成或提交 Git。 + +## 执行记录 + +### 2026-07-25:任务开始 + +- 基于提交 `ab21219` 开始。 +- 已核对 `docs/routes.md` 的 4 个管理 Web 路由、7 个 Android 目的地,以及 + IX-001 至 IX-008 的正常、异常与可访问性要求。 +- 当前先生成原型和自动化验证;人工确认是完成本任务的硬门禁。 + +### 2026-07-25:原型生成与自动验收 + +- 生成 `docs/design/index.html`、4 个管理 Web 页面和 7 个 Android 页面;每个实际 + 页面均可通过 `file://` 独立打开,CSS/JS 全内联且没有外部依赖。 +- Web 覆盖登录、任务创建、列表/详情、加载/空/失败/权限、取消二次确认、证据失败 + 和“验证完成,未提交订单”;Android 覆盖登录绑定、手动领取、预览、执行、安全 + 停止、人工结论、终态、待同步和设备设置。 +- 需求审计确认 11 个逻辑页面均已覆盖,并发现 `docs/02-requirements.md` 的 F-001 + 至 F-003 单任务验收引用存在 3 处历史编号错误;该文件不在本任务写入边界,本次 + 不越界修改。 +- 静态审计:12 个 HTML 均只有 1 个固定原型标记、1 个内联 style、0 个外部 script、 + 0 个 HTTP URL,未命中本机绝对路径、生产地址、令牌、密钥或私有样本关键词。 +- Playwright 依次以 1440×900、390×844、360×800 打开 12 个页面,共 36 个 + 页面/视口组合:文档横向溢出 0、console error 0、page error 0、外部请求 0; + Android 可见按钮、链接、输入、选择和文本域小于 44px 的数量为 0。 +- Playwright 交互验证通过:Web 首错焦点、通用登录错误、数量默认 1、未提交离开 + 和取消二次确认默认焦点;App 缺权限/已有任务/租约释放、安全错误无自动继续、 + 停止确认默认焦点、超预算禁用接受、无候选动作约束、人员结论回传、结果待同步及 + 活跃任务禁止退出。 +- 实际截图复核索引、管理详情、候选确认、安全错误和设备设置;修复任务详情成功态 + 被 CSS 错误显示取消命令与证据错误占位的问题,复核后两者均不可见。 + +### 2026-07-26:人工确认与完成 + +- 用户在对话中明确回复“确认 T-202 原型”,确认当前页面区块、控件集合、文案和 + 主要动作可作为后续正式 UI 的实现输入。 +- 最后一项人工门禁已满足,任务状态改为 `DONE`;后续显著改变布局或控件集合时, + 必须按 `docs/design/README.md` 重新生成整页并再次确认。 diff --git a/progress.md b/progress.md index fa053de..536a8f5 100644 --- a/progress.md +++ b/progress.md @@ -110,3 +110,12 @@ Gin 1.11.0、SQLite 和 Goose 3.26.0,并建立健康检查、migration 与有界生命周期。 - 影响:Phase 2 后端基础可复现;T-202 可先确认 P0 原型,T-203 至 T-205 再分别实现 任务业务、鉴权和原子领取,不需要背负生成器演示逻辑或危险默认。 + +## 2026-07-26 P0 Web/App 原型确认 + +- 类型:交互门禁完成 +- 内容:完成 T-202;生成并确认 4 个管理 Web 页面和 7 个 Android 页面,IX-001 + 至 IX-008 已链接到实际原型。Playwright 验证 36 个页面/视口组合,并检查关键 + 表单、二次确认、安全停止、人工结论、结果同步和设备状态交互。 +- 影响:页面区块、控件集合、文案和主要动作已获得人工确认;T-203、T-204 和 + T-206 可按依赖使用该原型作为实现输入,但不得复制低保真原型代码到生产界面。