Files
cmshoppe/docs/06-tasks.md
T
chengmaandClaude Opus 4.8 479d02a2b8 docs: 初始化 cmshopee 文档、设计与项目骨架
- docs/ 完整 harness coding 文档集(愿景/需求/技术栈/架构/编码规则/任务/api/routes/current-state)
- 5 Tab 流水线设计 + UI 效果图 SVG(docs/ui/)
- cdp.py CDP 底座;prototypes/ 已验证原型脚本(待 editor.py 移植后清理)
- AGENTS.md/CLAUDE.md 入口、progress.md 执行流水、.gitignore(排除凭证/DB/图片)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 15:30:37 +08:00

7.3 KiB
Raw Blame History

任务看板(Tasks)

把目标拆成小步、可独立交付的任务,让 AI 一步一步开发,避免一次生成整个项目。

使用规则

  1. 一次只做一个任务:每轮只领取一个 TODO 且依赖均 DONE 的任务,取最靠前的。
  2. 做完即停:完成、自测通过、改 DONE 后汇报。
  3. 不跳步:依赖未完成不开工。
  4. 完成定义:以 编码规则 验证清单为准。
  5. 动手前读 00-ai-start-here.md、05-coding-rules.md、current-state.md、04-architecture.md(尤其第七节已验证事实、第二节流水线)。
  6. 完成后同步本文状态,追加 ../progress.md,覆盖 current-state.md。

状态图例

TODO · DOING(同一时间最多 1 个)· DONE · BLOCKED


Phase 0 · 地基(模块化 + 存储)

ID 任务 依赖 验收要点 状态
T-001 editor.py:改标题/换封面/点更新/登录检测/采集(读旧标题+旧封面下载)/apply_task,复用 cdp.py - 函数可调用,在测试商品跑通;与 prototypes/demo.py 行为一致 TODO
T-002 appconfig.py + config.json(含 image_dir、ai 段、端口等默认值) - 读写正常;不存在则写默认;AI Key 加密占位 TODO
T-003 db.py + SQLite 建表(accounts/tasks,含各阶段字段) - init_db 幂等;账号/任务/各 set_* 可用;schema 同架构 5.2 TODO
T-004 .gitignore:排除 config.json、cmshopee.db、chrome_user_data_dir/、images/ T-002, T-003 凭证/业务/图片不被提交 TODO

Phase 1 · 账号管理(④)

ID 任务 依赖 验收要点 状态
T-101 config 生成 slug + 创建 chrome_user_data_dir/<slug> T-003 别名→唯一 slug;目录按需建;路径绝对化 TODO
T-102 chrome.py 启动器:拼参数并启动、探测端口 T-101, T-002 含三参数;端口就绪可探测 TODO
T-103 首次登录保活 + 登录检测 is_logged_in T-102, T-001 关闭再启动免重登;登录/未登录判断准确 TODO
T-104 五 Tab 主窗口骨架(ttk.Notebook,5 Tab 空壳) T-002 五个 Tab 按顺序可切换 TODO
T-105 Tab④ 账号增删改(账号名/别名/端口/密码加密)+ 启动登录 + 检测登录 T-104, T-101, T-103 增删改入库、建目录;密码加密默认打码;状态列刷新 TODO
T-106 可选:为账号生成桌面快捷方式 T-102 .lnk 目标含该账号参数;双击进对应账号 TODO

Phase 2 · 导入采集(①)

ID 任务 依赖 验收要点 状态
T-201 excel.py 导入:解析多文件输入列入库 T-003 按模板解析账号名/别名/商品id;脏数据容错;写 tasks(batch_id) TODO
T-202 Tab① 任务列表 + 导入按钮 + 别名匹配标记 T-201, T-105 Treeview 显示账号/别名/商品id/阶段;未匹配标“略过” TODO
T-202b Tab① 导入汇总栏 T-202 导入后显示 文件数/解析行数/有效/无效/匹配(按账号)/未匹配;未匹配可点击筛出 TODO
T-203 采集旧标题+旧封面(只读),下载图片,立即写库 T-202, T-001 逐条 set_collected;旧封面下载到 images/<slug>/;未登录/未匹配略过记原因 TODO
T-204 回写旧字段到原 Excel(含文件锁处理) T-203, T-201 旧标题/旧封面回写原文件;被锁提示重试或 export_copy TODO
T-205 首次未配账号/未登录的引导保护 T-105, T-203 无账号/未登录时 ① 执行按钮禁用并提示去④ TODO

Phase 3 · AI 生成(②)

ID 任务 依赖 验收要点 状态
T-301 确定 AI 服务商/模型并接入 ai.py(gen_title/gen_cover,带重试/分辨率/jpg质量) T-002 可调;Key 加密读取;gen_cover 支持 resolution+jpg_quality;失败按 retry 重试;错误明确 TODO
T-302 Tab② 左右布局:左提示词(标题/封面),右按批次/店铺/状态筛选 + 任务列表 T-301, T-203 左 ~1/4 提示词多行;右筛选+列表(店铺/商品id/旧标题/新标题/状态) TODO
T-302p prompts.py + Tab② 提示词管理 T-302 标题保存/启动回显 title_prompt.txt;封面多模板(下拉+新建/保存/另存为/重命名/删除,存 prompts/cover/);插入 {新标题};预览变量替换;render_prompt 接入生成 TODO
T-303 Tab② 开始生成(单按钮)+ 停止 + 进度:先并发标题再并发图片 T-302 generate_batch 先 title_concurrency 并发标题、再 image_concurrency 并发图片;每条 set_generated 立即写库;停止可取消未开始项;进度 标题/封面/失败 计数;双击弹窗看新旧封面 TODO

Phase 4 · 更新 shopee(③)

ID 任务 依赖 验收要点 状态
T-401 Tab③ 列出已生成任务 + 按批次/店铺/状态筛选 T-303 顶部批次/店铺/状态筛选;「开始更新」仅作用于当前筛选结果;状态=失败可重试;无提交开关;警示“执行即提交线上” TODO
T-402 串行执行 apply:换标题+换封面+总是点更新提交,单条失败继续,立即写库 T-401, T-001 逐条 set_applied;恒提交;失败继续;未登录引导保护 TODO
T-403 回写结果到原 Excel(新标题/新封面/更新状态)+ 结束弹窗汇总 T-402, T-204 回写原文件(锁处理);弹窗 成功/失败/略过 TODO

Phase 5 · 设置与收尾

ID 任务 依赖 验收要点 状态
T-501 Tab⑤ 设置 · AI 模型管理(master-detail):模型下拉 + 新增/删除 + 详情(服务商名/类别/api_type/模型ID/网址/密钥打码/连接超时) + 测试连接 T-002 读写 config/ai_models.json;name 唯一;类别 text/image;至少各一个;密钥打码加密;测试连接可用 TODO
T-501b Tab⑤ 设置 · 角色与生成参数:标题大模型/图片大模型下拉、分辨率(512/1k/2k/4k)、返回超时随分辨率、并发/重试/jpg质量、路径/端口 T-501 角色下拉按类别过滤;分辨率选后返回超时按 resolution_timeouts 自动;持久化 config.json TODO
T-502 满 9 张封面:删第一张再上传 T-001 实测删除确认框并处理;满 9 张流程正确 TODO
T-503 密码 / AI Key 加密密钥方案落地 T-105, T-501 密钥不与密文同存;说明威胁模型 TODO
T-504 多账号并行 / dry-run / 运行日志(V2) T-402 端口不冲突;dry-run 只预览;操作留痕 TODO

里程碑

  • M1:editor(含采集)模块化、config.json + SQLite 就绪(Phase 0)。
  • M2:账号管理可用、能登录与检测(Phase 1)。
  • M3:导入 + 采集 + 回写旧数据(Phase 2)。
  • M4:AI 生成新标题/新封面(Phase 3)。
  • M5:对已生成任务更新 Shopee(直接提交)+ 回写结果(Phase 4)。

待办池(Backlog)

  • 标题规则/提示词模板库。
  • 上传弹裁剪框商品的自动裁剪。
  • 账号登录态健康巡检。
  • AI 生成图的合规/质量自检。