Files
cmshoppe/docs/00-ai-start-here.md
T
chengma 3832697fc4 docs: 补强 V1 数据与测试设计
- 扩展 SQLite schema:新增 batches、Excel 行定位、stage/status、时间戳和重试字段

- 明确 SQLite worker 并发规则:独立 connection、WAL、busy_timeout、短事务

- 调整 AI 接入顺序:先做模型清单后端,再接真实 ai.py,设置页复用后端

- 补充 unittest 测试基座要求和分层验证策略

- 敏感信息改为本地明文保存,配合 gitignore、UI 打码和日志脱敏
2026-06-26 16:27:33 +08:00

6.2 KiB
Raw Blame History

AI 开发入口

给 AI coding agent 的项目入口。这里负责导航和流程,硬性编码规则见 05-coding-rules.md。

一句话定位

cmshopee 是一个 Windows 本地桌面自动化工具(PySide6,5 Tab),让运营管理多个 Shopee 账号,并用 CDP 驱动 Chrome + AI 批量改商品标题、换商品封面。

5 Tab 流水线(工作流优先顺序): ① 导入采集 → ② AI生成 → ③ 更新shopee → ④ 账号管理 → ⑤ 设置

目标闭环:④ 配账号并登录 → ① 导入 Excel(按“别名”列关联账号)、采集旧标题/旧封面并回写 → ② 用提示词 AI 生成新标题/新封面(不设逐条确认阶段)→ ③ 对已生成任务点击「开始更新」,弹窗确认后批量改标题+换封面并点「更新」提交 → 结果实时存 SQLite、批量回写原 Excel。

存储:应用设置 config.json + AI 模型清单 config/ai_models.json(含本地明文 AI Key,必须 gitignore)+ 业务数据 SQLite cmshopee.db + Excel 用 openpyxl + 图片存本地 images/。AI 服务商待定。

必读顺序

每次开始写代码前,按这个顺序建立上下文:

  1. 01-vision.md:为什么做、为谁做、什么不做。
  2. 02-requirements.md:V1 要什么、怎么算达成。
  3. 03-tech-stack.md:既定技术选型(Python + 自研 CDP + PySide6)。
  4. 04-architecture.md:模块职责、账号数据模型、第七节 CDP 已验证事实(重点)。
  5. 05-coding-rules.md:写代码前必须遵守的规则。
  6. 06-tasks.md:领取本轮唯一任务。
  7. ../progress.md:历史执行记录、验证结果、阻塞点和关键决策。
  8. current-state.md:当前代码现实、可运行命令、下一步任务。

如果仓库根目录有 AGENTS.md、CLAUDE.md,也必须先读,仓库级规则优先。

当前阶段

当前项目处于:V0 单账号流程已验证,正在实现 V1 多账号 + Excel + AI + 5 Tab GUI 流水线。

优先路径:

  1. Phase 0:把已验证流程模块化(editor.py),建立 config.json 与 SQLite。
  2. Phase 1:账号绑定 user-data-dir、Chrome 启动、登录保活、PySide6 主窗口骨架。
  3. Phase 2:导入 Excel、采集旧标题/旧封面并回写。
  4. Phase 3:AI 生成新标题/新封面。
  5. Phase 4:③ 批量确认后更新 Shopee 并回写结果。
  6. Phase 5:设置、敏感信息提示与日志脱敏、收尾。

领取任务规则

从 06-tasks.md 领取任务时:

  • 只领取第一个状态为 TODO 且依赖均为 DONE 的任务。
  • 开始前把该任务状态改为 DOING。
  • 本轮只完成这一个任务。
  • 验收通过后把状态改为 DONE。
  • 完成后把执行记录追加到 ../progress.md,覆盖更新 current-state.md。
  • 做完即停,汇报验证结果,等待下一步指令。

如果代码实际状态和任务看板冲突,先说明冲突,不要擅自跳步。

版本边界

V0 已验证原型:

  • 单账号已登录 Chrome,通过 CDP 打开商品页、改标题、换封面。
  • 原型脚本默认不提交线上,UPDATE=1 才点击「更新」。
  • 作为 editor.py 的已验证参照,不再代表当前完整产品范围。

V1 当前 coding 目标:

  • 5 Tab 流水线:① 导入采集 → ② AI生成 → ③ 更新shopee → ④ 账号管理 → ⑤ 设置。
  • GUI 固定为 PySide6;后台采集/生成/更新用 QObject worker + QThread + signal 回传进度。
  • 多账号管理,但执行更新仍串行;账号以独立 user-data-dir 隔离。
  • Excel 导入/回写 + SQLite 实时落库 + 本地图片目录。
  • AI 生成标题/封面,不设逐条确认阶段。
  • ③ 点击「开始更新」后弹窗确认当前筛选范围和任务数量;用户确认后才批量提交线上。

V1 不做:

  • 自动登录 / 自动填账号密码。
  • 绕过验证码、风控、限流。
  • 多账号并行、dry-run、完整运行日志(属 V2 及之后)。
  • 商品数据批量爬取。

事实来源

项目事实只信:

  • 04-architecture.md 第七节:CDP 交互已验证结论(选择器、就绪判断、上传/拖拽方式)。
  • 04-architecture.md 5.1/5.1b/5.2/5.3:config.json、config/ai_models.json、SQLite schema、Excel 模板。
  • 真实页面探查结果(用 prototypes/inspect_images.py / prototypes/cookies.py 实地确认)。
  • 已验证脚本 cdp.py、prototypes/demo.py、prototypes/set_title.py、prototypes/set_cover.py 中跑通的逻辑。

不要把以下当事实来源:

  • 旧脚本里可能已失效的选择器(Shopee 页面会变)。
  • 未经实测的猜测。
  • 临时探查脚本(/tmp 下的一次性脚本)。

常见任务该看哪里

做 GUI:

  • 先看 02-requirements.md 的对应验收标准。
  • 再看 routes.md 的窗口职责与操作流程。
  • 最后看 04-architecture.md 的模块边界(GUI 不写业务逻辑)。

做 CDP / 浏览器操作:

  • 先看 04-architecture.md 第七节已验证事实。
  • 再看 api.md 的 cdp / editor 模块合约。
  • 复用 cdp.py,不重写一套。

做账号配置 / Chrome 启动:

  • 先看 04-architecture.md 第五节数据模型与 api.md 的 config / chrome 合约。
  • Chrome 启动参数严格按第七节“Chrome 启动参数”一条。

验证命令

python -m py_compile *.py     # 语法检查
python -m unittest discover -s tests     # 纯逻辑单元测试(tests 存在后)
python prototypes/demo.py                # 单账号闭环验证(分步,不提交)

说明:

  • 改 CDP / editor 逻辑后:在测试商品(ITEM_ID 51100639510)上跑 prototypes/demo.py 实测。
  • 改账号配置后:验证 SQLite 账号读写与 user-data-dir 创建;改应用设置后验证 config.json 读写。
  • 改 DB / Excel / prompts / appconfig 纯逻辑后:补或更新 tests/ 下的 unittest。
  • 如果命令当前不可运行(如 GUI 未建),在回复里如实说明。