2026-08-03 12:15:16 +08:00
|
|
|
|
---
|
|
|
|
|
|
id: T-005
|
|
|
|
|
|
title: 网页端 MVP 交互原型
|
|
|
|
|
|
phase: 0
|
|
|
|
|
|
deps: []
|
2026-08-03 12:35:54 +08:00
|
|
|
|
status: DOING
|
2026-08-03 12:15:16 +08:00
|
|
|
|
created: 2026-08-03
|
|
|
|
|
|
context_ref: dfe3d56
|
|
|
|
|
|
work_branch: task/t-005-web-prototype
|
|
|
|
|
|
needs_device: false
|
|
|
|
|
|
needs_human_review: true
|
|
|
|
|
|
write_paths:
|
|
|
|
|
|
- docs/tasks/T-005.md
|
|
|
|
|
|
- docs/design/web-login.html
|
|
|
|
|
|
- docs/design/web-task-create.html
|
|
|
|
|
|
- docs/design/web-task-workbench.html
|
|
|
|
|
|
- docs/design/web-task-detail.html
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 问题 / 背景
|
|
|
|
|
|
|
|
|
|
|
|
web 端尚无生产代码。若直接实现 SSR 页面,登录、建单、三泳道工作台、试选确认、授权围栏、
|
|
|
|
|
|
结果调和与待付款收口容易在代码阶段反复改布局,也可能把高风险状态遗漏。先用一页一文件的
|
|
|
|
|
|
自包含 HTML 假数据原型确认信息架构、主动作与异常恢复,再开始 T-201 及后续生产页面。
|
|
|
|
|
|
|
|
|
|
|
|
本任务是第一阶段原型:确认流程和信息架构,不证明拼多多 App 里能读取哪些字段。T-103
|
|
|
|
|
|
真机取证若改变字段,生产页面开工前必须先同步 IX 与原型。
|
|
|
|
|
|
|
|
|
|
|
|
## 关联需求与交互
|
|
|
|
|
|
|
|
|
|
|
|
- 功能:F-001、F-004、F-007、F-008、F-009、F-010、F-011、F-013、F-017
|
|
|
|
|
|
- 用户故事:US-001、US-002、US-004、US-005、US-006、US-007、US-008
|
|
|
|
|
|
- 交互:IX-001~IX-006、IX-010、IX-011
|
|
|
|
|
|
- 路由:`/login`、`/tasks/new`、`/tasks`、`/tasks/{id}`
|
|
|
|
|
|
- 架构 / API:`04-architecture.md` 第四、五节;`api.md` 第一、二节
|
|
|
|
|
|
- 原型约定:`docs/design/README.md`
|
|
|
|
|
|
|
|
|
|
|
|
## 方案
|
|
|
|
|
|
|
|
|
|
|
|
### 文件与页面
|
|
|
|
|
|
|
|
|
|
|
|
1. `web-login.html`:登录、站内返回提示、默认 / 校验错误 / 提交中状态。
|
|
|
|
|
|
2. `web-task-create.html`:任务名称、商品链接、颜色分类、尺码、数量、价格上限;逐字段错误、
|
|
|
|
|
|
保留输入、成功反馈。只模拟,不发送表单。
|
|
|
|
|
|
3. `web-task-workbench.html`:按「等你决定 / 机器在跑 / 已结束」分泳道;第一条待决策任务
|
|
|
|
|
|
展开;关键词、泳道、时间范围、加载 / 空 / 错误状态可切换。
|
|
|
|
|
|
4. `web-task-detail.html`:以原型状态切换器演示 `WAITING_CONFIRMATION`、围栏前
|
|
|
|
|
|
`AUTHORIZED/ORDERING`、围栏后 `ORDERING`、`RECONCILIATION_REQUIRED`、
|
|
|
|
|
|
`WAITING_PAYMENT`、`NEEDS_MANUAL` 与终态。每种业务状态只有一个主动作。
|
|
|
|
|
|
|
|
|
|
|
|
### 视觉与交互基线
|
|
|
|
|
|
|
|
|
|
|
|
- 冷静、紧凑的运营工作台;系统无衬线字体,优先 `Segoe UI`。主操作用蓝色,红色仅用于
|
|
|
|
|
|
危险 / 错误,黄色用于结果不明;不使用装饰性渐变、外部字体或 emoji 图标。
|
|
|
|
|
|
- 每个文件 CSS / JS 全内联、零构建、双击可打开;可用相对链接在四页间导航。
|
|
|
|
|
|
- 顶部固定显示 `PROTOTYPE - 仅供枚举交互,非实现依据`。
|
|
|
|
|
|
- 全部为可复位假数据;不得调用 API、加载 CDN / 外链图片、保存凭据或触发真实业务动作。
|
|
|
|
|
|
- 使用语义化 `header/nav/main/form/button/table/dialog`;Tab 顺序符合视觉顺序,焦点清晰;
|
|
|
|
|
|
错误靠近字段并用 `role="alert"` / `aria-live` 宣告;不只靠颜色表达状态。
|
|
|
|
|
|
- 适配 375 / 768 / 1024 / 1440 px;窄屏不出现页面级水平滚动;遵守
|
|
|
|
|
|
`prefers-reduced-motion`。
|
|
|
|
|
|
|
|
|
|
|
|
### 资金安全表达
|
|
|
|
|
|
|
|
|
|
|
|
- 授权主动作统一写「确认下单(不付款)」,同时展示授权上限与「系统不会付款」。
|
|
|
|
|
|
- 围栏前可以放弃,但文案明确「将重新试选取价」,不是回到旧确认卡。
|
|
|
|
|
|
- 围栏成功后不出现重试、再次提交或放弃按钮;只显示唯一 `submission_id` 和人工核查入口。
|
|
|
|
|
|
- `RECONCILIATION_REQUIRED` 明确提示「订单可能已创建、请勿再次提交」,并展示证据与下一步。
|
|
|
|
|
|
- 待付款不是成功;截图缺失或核对不一致时不能标记完成。
|
|
|
|
|
|
|
|
|
|
|
|
## 验收要点
|
|
|
|
|
|
|
|
|
|
|
|
- 四个 HTML 均可从本地直接打开,控制台无 error,除本地文档导航外无网络请求。
|
|
|
|
|
|
- 四页之间的主要入口可通过相对链接到达;所有演示按钮均为原型状态切换,不发送真实请求。
|
|
|
|
|
|
- 建单字段、三泳道、试选确认、围栏前放弃、围栏后调和、待付款核对全部有可观察页面状态。
|
|
|
|
|
|
- 加载、空、错误、禁用与成功反馈均可演示;禁用动作旁有原因,失败旁有恢复路径。
|
|
|
|
|
|
- 键盘可完成全部演示;375 / 768 / 1024 / 1440 px 无内容截断或页面级水平滚动。
|
|
|
|
|
|
- 运行:`python scripts/validate_agent_context.py`、`git diff --check`,并用浏览器逐页检查
|
|
|
|
|
|
accessibility snapshot、控制台与网络请求。
|
|
|
|
|
|
- 完成自动验证后任务保持 `DOING`,等待人确认布局、信息层级、主动作和安全文案。
|
|
|
|
|
|
|
|
|
|
|
|
## 边界
|
|
|
|
|
|
|
|
|
|
|
|
- 只修改 frontmatter `write_paths` 所列文件,不改共享路线图、需求、IX、API 或生产目录。
|
|
|
|
|
|
- 不实现 Go、SSR、数据库、真实鉴权、CSRF 或 HTTP 调用。
|
|
|
|
|
|
- 不发明拼多多页面字段、选择器、App 版本或真机结论;截图区域只用明显的假数据占位。
|
|
|
|
|
|
- 不实现 Excel、ERP、图搜、多候选对照台、自动订单回读或自动付款。
|
|
|
|
|
|
- 原型代码不得复制到生产实现。
|
|
|
|
|
|
|
|
|
|
|
|
## 执行记录
|
|
|
|
|
|
|
2026-08-03 12:35:54 +08:00
|
|
|
|
### 2026-08-03 · 第一阶段原型实现
|
|
|
|
|
|
|
|
|
|
|
|
- 任务状态保持 `DOING`:自动检查已完成,但 `needs_human_review: true`,未进行人工设计确认。
|
|
|
|
|
|
- 新增四个自包含页面:登录、手工建单、三泳道工作台、任务详情。四页使用同一套语义颜色、
|
|
|
|
|
|
字体、间距和导航;全部假数据可由页内控件复位,不调用 API,不保存凭据,不加载外部资源。
|
|
|
|
|
|
- 登录页覆盖站内返回、必填错误、提交中、会话过期和成功;建单页覆盖逐字段校验、链接解析
|
|
|
|
|
|
失败后保留输入、提交中和创建成功;工作台覆盖实时筛选、计数规则、第一条待决策展开以及
|
|
|
|
|
|
加载 / 空 / 错误;详情页覆盖试选不一致 / 超额 / 缺证据、授权、围栏前放弃后重新试选、
|
|
|
|
|
|
围栏后调和、结果不明、待付款核对、转人工和终态。
|
|
|
|
|
|
- 安全表达已独立复核:全程固定说明不自动付款;围栏前放弃明确转 `PENDING_RETRIAL` 且不复用
|
|
|
|
|
|
旧价;围栏后只显示唯一 `submission_id` 与人工核查入口,没有重试、再次提交或放弃按钮;
|
|
|
|
|
|
`WAITING_PAYMENT` 需证据和四项人工核对才能标记完成。
|
|
|
|
|
|
- `ui-ux-pro-max` 检索建议被用于焦点、触控尺寸、错误就近、恢复路径与响应式检查。其推荐的
|
|
|
|
|
|
红色主色和外部装饰字体与任务约束冲突,因此未采用;主操作保持蓝色,红色只用于错误或
|
|
|
|
|
|
破坏性动作,字体使用 `Segoe UI` / 系统字体。
|
|
|
|
|
|
|
|
|
|
|
|
**已运行验证**
|
|
|
|
|
|
|
|
|
|
|
|
- `python scripts/validate_agent_context.py`:通过(6 个任务路由,18 个有效仓库路径)。
|
|
|
|
|
|
- Node 静态脚本:四页均包含 doctype、viewport、固定原型横幅、`aria-live`、
|
|
|
|
|
|
`prefers-reduced-motion`;每页唯一内联脚本均可编译;无外部脚本、字体或图片引用。
|
|
|
|
|
|
- Chrome Headless + DevTools Protocol:逐页检查 375 / 768 / 1024 / 1440 px,16 个组合均无
|
|
|
|
|
|
页面级水平溢出、运行时异常或外部网络请求;登录错误、建单链接错误与输入保留、工作台空态
|
|
|
|
|
|
与复位、详情全部业务状态、规格不符禁用确认、核对完成后启用标记等状态切换均通过。
|
|
|
|
|
|
- Chrome accessibility tree / 键盘抽查:可见交互控件都有可访问名称,Tab 顺序可到达页内
|
|
|
|
|
|
原型控件,未发现键盘陷阱;模拟 reduced-motion 时媒体查询生效。原生对话框均有明确的取消
|
|
|
|
|
|
和确认按钮。
|
|
|
|
|
|
- 目视检查 Chrome 截图:1440 px 工作台 / 详情与 375 px 建单 / 详情的信息层级、换行和主操作
|
|
|
|
|
|
未见截断;证据图均明确标为假数据且不代表真实 App 页面。
|
|
|
|
|
|
- `git diff --check`:通过。
|
|
|
|
|
|
|
|
|
|
|
|
**未验证与待人工确认**
|
|
|
|
|
|
|
|
|
|
|
|
- Playwright MCP 因共享浏览器实例被占用而无法连接;上述浏览器检查改由独立 Chrome Headless
|
|
|
|
|
|
与 DevTools Protocol 完成。未做真实读屏器、高对比度模式或人工键盘全流程验收。
|
|
|
|
|
|
- 原型不证明 Go SSR、真实鉴权 / CSRF、接口并发、PySide6、真机页面字段或真实拼多多流程。
|
|
|
|
|
|
T-103 真机取证后仍需复核实际可读字段,不能把占位图当成页面判据。
|
|
|
|
|
|
- 待人确认:四页整体布局与信息密度、三泳道命名和默认展开、详情页各状态的唯一主动作、
|
|
|
|
|
|
「确认下单(不付款)」与围栏 / 调和文案、375 px 窄屏阅读体验。确认前任务不得标 `DONE`。
|
2026-08-03 12:44:59 +08:00
|
|
|
|
|
|
|
|
|
|
### 2026-08-03 · 任务所有者独立复核
|
|
|
|
|
|
|
|
|
|
|
|
- 在 main 合入子任务提交后重新检查全部四页,而不是以子 agent 自报结果作为完成证据。
|
|
|
|
|
|
- 独立 Node 检查确认:四页 id 无重复、内联脚本可编译、相对 HTML 链接均存在、无外部资源,
|
|
|
|
|
|
固定原型横幅齐全。
|
|
|
|
|
|
- 独立 Playwright 检查 375 / 768 / 1024 / 1440 px:无页面级水平溢出、无外部资源请求;
|
|
|
|
|
|
关闭旧会话后四页控制台 0 error / 0 warning。逐项切换详情页 11 个业务状态,确认围栏后只有
|
|
|
|
|
|
人工核查 / 保存核查记录,未出现重试、再次提交或放弃授权动作。
|
|
|
|
|
|
- 目视复核详情页 1440 px 与 375 px 全页截图,主信息、试选证据占位和主 / 次动作未截断。
|
|
|
|
|
|
- 复核时补上四页 `data:,` favicon,消除 HTTP 打开时浏览器自动请求 `/favicon.ico` 的 404;
|
|
|
|
|
|
同时把失败态的「新建重试任务」改为「由人工决定重新试选或结束任务」,避免发明 API。
|
|
|
|
|
|
- 自动验证已完成,仍未获得人工设计确认,任务继续保持 `DOING`。
|