拆分虾皮店铺模块为 P1 列表与进程编排、P2 预览宫格、P3 RPA 引擎共 11 个任务, 设计依据 Obsidian 多店铺 CDP 管理方案。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
9.3 KiB
9.3 KiB
任务看板
单 agent / 小项目使用本文件。多 agent 并发时,改用
tasks/README.md的一任务一文件规则。
使用规则
- 一次只做一个任务:领取第一个状态为
TODO且依赖均为DONE的任务。 - 开始后把状态改为
DOING。 - 完成并验证后把状态改为
DONE。 - 任务完成必须在
../progress.md写入验证命令和结果。 - 完成后更新
current-state.md,并过一遍clean-state-checklist.md。
状态图例
TODO 待开始 · DOING 进行中 · DONE 已完成并验收 · BLOCKED 受阻
Phase 0 · 基线与定位
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| T-000 | 接入 Harness Coding 文档 | - | AGENTS.md、docs/、progress.md、init.ps1、init.sh 已创建;README 已登记入口;统一验证通过 |
DONE |
| T-001 | 验证迁移后构建基线 | T-000 | go test ./...、npm run build、go build -o bin/cmbone.exe . 通过 |
DONE |
| T-002 | 校准为可复用桌面应用模板 | T-001 | 愿景、需求、架构、API、路由、任务和当前状态文档都改为 Windows-first 可复用模板方向 | DONE |
Phase 1 · 应用壳与基础模块
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| T-010 | 确定 Windows-first 窗口与布局策略 | T-002 | 主窗口默认不最大化,初始 1280x800,最小 1024x720,居中,可调整大小;页面根容器 width: 100%、height: 100vh;内部用 flex/grid 填满窗口;第二窗口保持小窗 |
DONE |
| T-011 | 实现主窗口启动参数与根布局策略 | T-010 | Go 侧设置主窗口初始宽高、居中、可调整大小;前端根容器和主布局填满窗口;阅读型内容有最大宽度,列表/仪表盘/设置页可自适应拉伸 | DONE |
| T-012 | 搭建主应用路由骨架 | T-011 | login、dashboard、image-optimizer、logs、statistics、settings、components 路由可访问 |
DONE |
| T-013 | 实现登录 provider 边界 | T-012 | 支持本地固定账号 provider;预留 remote provider;账号密码不写死在前端;登录事件写审计日志 | DONE |
| T-014 | 收敛设置模块 schema | T-012 | 主题、语言、窗口行为、快捷键、数据目录、日志策略都有统一配置定义和默认值 | DONE |
| T-015 | 持久化窗口尺寸和最大化状态 | T-014 | 保存主窗口尺寸和最大化状态;下次启动恢复用户上次选择;第二窗口不参与该逻辑 | DONE |
Phase 2 · 业务样例与日志统计
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| T-020 | 建立商品图片 AI 优化任务模型 | T-013 | image_tasks、image_task_results 迁移和基础测试通过;可创建模拟任务 |
DONE |
| T-021 | 实现审计日志与运行日志边界 | T-013 | 审计日志和运行日志分开;登录、设置变更、任务创建、任务失败可记录 | DONE |
| T-022 | 实现 P0 数据统计 | T-020 | 今日处理图片数、成功率、平均耗时、失败数、今日操作日志数、7 天趋势可查询 | DONE |
| T-023 | 实现商品图片 AI 优化页面 | T-020 | 上传/选择图片、任务列表、状态、结果预览、失败提示路径可用 | DONE |
Phase 3 · 组件、质量与发布
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| T-030 | 建立常用组件示例页 | T-012 | 输入框、多选框、下拉框、多行文本、表格、筛选、分页、状态标签有可运行示例 | DONE |
| T-031 | 文档化 Wails bindings 生成流程 | T-012 | README 或技术栈文档说明 wails3 generate bindings 的使用、失败处理和版本要求 |
DONE |
| T-032 | 补充 Windows 打包验证文档 | T-031 | wails3 package 前置条件、输出目录和常见失败处理写入 README 或 docs |
DONE |
| T-033 | 完成一次模板 smoke 清单 | T-023 | 登录、设置、业务样例、日志、统计、组件示例、托盘、热键都按清单验证并记录结果 | DONE |
| T-034 | 添加 Windows Wails 快捷脚本 | T-001 | dev.bat 一行切到项目根目录、补 Go bin PATH、自动选择空闲端口并运行 wails3 dev;build.bat 一行切到项目根目录、补 Go bin PATH 并运行 wails3 build;README、技术栈、当前状态和执行流水已同步 |
DONE |
| T-035 | 修复主窗口最大化黑边与布局填充 | T-011 | 点击右上角最大化后窗口占满 Windows 可用区域;主窗口背景、根容器和主布局铺满;侧边导航贴齐左边;内容区填满剩余区域;不出现左右黑边;恢复窗口后布局正常 | DONE |
| T-036 | 支持 Windows 主窗口标题栏双击最大化 | T-035 | Windows 无边框主窗口顶部拖拽区域双击可切换最大化/还原;右上角按钮区、登录入口和打开第二窗口入口双击不误触发;第二窗口不受影响;窗口状态持久化继续生效 | DONE |
EC 分支 · 电商场景
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| EC-001 | 建立商品中心页面 | T-023 | /#/products 可访问;支持商品草稿、筛选、列表、状态标签和图片优化入口 |
DONE |
| EC-002 | 建立商品后端模型 | EC-001 | 新增 products 表、ProductService、基础测试和 Wails bindings |
TODO |
| EC-003 | 商品中心接入后端 | EC-002 | 商品中心不再使用前端本地示例数据,支持创建和查询商品 | TODO |
| EC-004 | 图片优化关联商品 | EC-002 | 图片优化任务可关联 SKU 或 product_id,商品中心能看到图片状态 | TODO |
| EC-005 | 电商统计指标 | EC-003 | 展示商品总数、待优化图片、在售商品、失败图片任务和处理趋势 | TODO |
Phase SP · 虾皮店铺模块(CDP 多店管理)
设计依据:Obsidian
项目文档/Wails多店铺CDP管理方案.md(含 UI 与数据模型第 10 节)。架构:Wails 当编排,N 个独立 Chrome(独立 user-data-dir / 端口 / 代理)并行 CDP。分三期:P1 列表与进程编排、P2 预览宫格、P3 RPA 引擎。
P1 · 列表、凭据、进程编排
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| SP-001 | 凭据静态加密原语 | - | SuiStore 增加加密/解密工具;Windows 用 DPAPI(CryptProtectData,绑当前用户)或主密码派生密钥;密码等敏感字段不落明文;含单元测试 |
TODO |
| SP-002 | 店铺数据模型与迁移 | SP-001 | 新增 shopee_shops 表:名称、账号、加密密码(可选)、user-data-dir、调试端口、代理(类型/host/port/user/pass 结构化)、状态枚举(进程未启动/未登录/在线/掉线/需人工OTP/代理失效/RPA运行中)、出口IP校验状态;迁移和基础测试通过 |
TODO |
| SP-003 | ShopService CRUD 与 bindings | SP-002 | 店铺增删改查 service;user-data-dir 与端口可自动分配;密码经加密原语存取;生成 Wails bindings;含测试 | TODO |
| SP-004 | 导航入口、路由与模块页骨架 | T-012 | navItems 增加“虾皮店铺”;/shopee 路由可访问;模块页为 master-detail 布局(左店铺列表区 + 右预览区占位) |
TODO |
| SP-005 | 店铺列表 CRUD 界面 | SP-003, SP-004 | 列表展示名称/账号/代理/状态;可增删改;代理为结构化表单;密码为可选项且不明文回显;空态与校验提示可用 | TODO |
| SP-006 | Chrome 进程编排器 | SP-002 | Go 侧起停/守护外部 Chrome;每进程绑定 user-data-dir + 唯一调试端口 + 代理;代理带认证走 CDP Fetch.authRequired 或本地转发;启动后校验出口 IP 并回写状态;打包固定版本 portable Chromium |
TODO |
| SP-007 | 单店打开/关闭与状态回显(路 A) | SP-005, SP-006 | 每店“打开/关闭”按钮拉起/关闭真实 headed Chrome 窗口;状态枚举实时回显到列表;掉线/代理失效可识别并提示人工 | TODO |
P2 · 预览宫格
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| SP-010 | screencast CDP 客户端 | SP-006 | 用 chromedp 连接各店调试端口;Page.startScreencast 拉帧;连接池管理与断连重连;帧率可配置 |
TODO |
| SP-011 | 预览宫格界面 | SP-010, SP-007 | 右侧宫格按在线店铺渲染 N 格 <img> 实时画面;进入/离开 tab 懒启停 screencast;帧率节流;点击某格置前对应真实 Chrome 窗口(路 A) |
TODO |
P3 · RPA 引擎
| ID | 任务 | 依赖 | 验收要点 | 状态 |
|---|---|---|---|---|
| SP-020 | RPA 步骤引擎与首个登录后流程 | SP-007 | 预设步骤模型(打开/导航/填充/点击等)+ 执行器;单店运行态与步骤日志;错误处理与中断;首个内置流程为“登录后流程”(在已登录 profile 上执行,如抓订单/改库存) | TODO |
| SP-021 | 登录辅助 RPA | SP-020 | 可选“自动填账密”步骤;走到 OTP/验证码即停下并通知人工接管;补登完成后可继续;密码经加密原语读取,不出现在日志 | TODO |
Backlog
- 评估是否需要 Playwright / Vitest 覆盖前端关键页面。
- 评估是否需要平台能力降级策略。
- 评估真实 AI 后端 provider 的接口形态。
- 评估本地数据库备份、恢复和清理策略。