Files
beige/通关路线图.md
yangqianqian 6a2632da70 baseline: Clover 独立仓库首次基线提交
将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。
当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包),
M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 11:30:22 +08:00

11 KiB
Raw Blame History

Clover 通关路线图think 全流程产出)

产出日期2026-06-09 方法:/think-router 复杂度评估 + 第一性原理倒推 + 坑点深挖2个Explore agent审真实代码+ 多视角校准 唯一标尺:验收清单.md——勾上某项才算完成G2端到端一条龙跑通是闸门G1 状态图例:已勾(真验证) / 🔧进行中 / 未开始 / 🔴致命坑 / 🟡阻塞坑 / 🟢风险


一、复杂度判断Cynefin

这是一件 两段性质不同 的事,不能用一个方法论盖全程:

性质 方法 对应验收
第一段 生产链跑通 Complicated(繁但确定) 纵切片、逐接缝亲手验 第一道线 1A/1B/安全
第二段 过北哥抽检 Complex(真探索) 做真东西→北哥看→喂飞轮→迭代逼近 第二道线

五维:因果确定性🟡分裂(链清晰/质量探索) · 利益方🟢单(北哥) · 信息🟡中(质量标准缺) · 先例🟢高(产品包) · 约束🔴高(12红线)

二、方向收敛(项目真实方向)

  1. 我之前的根本错误:把"两段"当"一段",用 Complicated 打法(修零件报完成)对待最终要 Complex 迭代的目标,所以越修越漂。
  2. 不可逾越的闸门:第二段(北哥抽检)无法启动,除非北哥能真的从登录走到下载、拿到真素材包。"端到端一条龙跑通"=从 Complicated 跨进 Complex 的唯一闸门。它之前,质量/多轨/飞轮/美化全是空中楼阁——这是 G1 的深层原因。
  3. 飞轮(1B)不是收尾装饰,是第二段的发动机:闸门撞开→北哥看真东西→飞轮喂料→逼近"过抽检、完整可用"。

三、残酷真相(坑点深挖结论)

"零件齐全"是假象。真串起来,从地基到下载 连环死 9 处(详见第四节)。这恰恰印证 G1横向铺满零件纵向接缝一次没对过。


四、全部坑点(基于真实代码深挖,按死亡顺序)

A. 地基坑(服务起不来,整条龙=0

# 严重 位置
D1 backend/.env 不存在;根.env缺 JWT_SECRET/DATABASE_URL/MONGO_URI/REDIS_URLFERNET_KEY是占位符 🔴 config.py:15-19
D2 docker-compose 路径错位nginx.conf 引用路径不存在nginx必崩compose只能从Clover根跑 🔴 docker-compose.yml:94
D3 alembic迁移不自动跑起来是空库首请求即500003/004 downgrade有PG语法(MySQL炸) 🔴 Dockerfile/main.py
D4 无种子脚本:无账号(登录必败)、无预置素颜霜(无可选)、无违禁词 🔴 scripts/ 空

B. 生成棒接缝坑worker真跑必死

# 严重 位置
G1坑 text_variants 调 client.chat.completions.create但AIClients无此方法→AttributeErrorLLM文案永远出不来,只能退化本地草稿 🔴 text_variants.py:20-33
G2坑 Gemini fallback 无key(gemini_key=None)→主通道挂必炸,图全失败 🔴 pipeline_steps.py:49
G3坑 SSE error事件 workspace_id写死0→被前端过滤丢弃,失败时前端永久loading 🔴 tasks.py:138
G4坑 图存相对路径,但main.py没挂StaticFiles→前端全404 🔴 pipeline_io.py:120
G5坑 storyboard角色名(pain_scene等)与ImageRole枚举(pain等)对不上→7/8角色fallback成MAIN,信息全丢 🔴 constants.py:39 vs enums.py:89
G6坑 provider不匹配:预检查不验provider,worker硬查"openai",存"apiports"则白跑 🟡 task_service.py:18
G7坑 Celery retry重复写候选(最多4倍脏数据) 🟡 tasks.py:81
G8坑 httpx.AsyncClient不close,每任务泄露连接 🟡 gemini_factory.py:106

C. 交付端坑

# 严重 位置
C1 download-file带auth,但前端window.open无法附带token→401,下不了 🔴 delivery.py:95 / components.tsx:36
C2 打包硬判 url.startswith("uploads/"),改绝对路径则zip图为空 🟡 packaging_task.py:55
C3 前端缺postcss.config.js→样式全失效(已修) 已修 已补
C4 去水印Pillow未装则静默退化(不炸但功能失效) 🟢 image_postprocessor.py:39

致命坑合计D1-D4 + G1-G5坑 + C1 = 10个🔴(撞闸门前必须全清)


五、策略(怎么打)

核心策略:纵切片撞闸门,一次只通一棒,撞死就地修,禁止往下铺。

  • 打法不是"按坑点列表逐个修"(那是横向思维回潮),而是沿一条龙从头走,走到哪棒死就修哪棒,修通立刻往下走。坑点表是"预警地图",不是"施工顺序"。
  • 每修通一棒 → 按 G2 报"勾上1A第X项,证据=可验证事实"。
  • 同一接缝连续2次修不通 → 按§3撞墙规则 Pivot,报你介入。
  • 最小一条龙的"最丑"标准1产品·1条文案·1张图·1次审核·1个包。多轨/8图/美化/飞轮全部押后。

六、全方位行动方案(三层)

目标层O

北哥1名熟手,浏览器里独立走完[登录→选素颜霜→传图→生成→选稿→组长审→下载素材包],不靠开发,产出过北哥抽检。

阶段层(里程碑 = 验收线)

M0 地基通  → 服务起来+有账号+有素颜霜     → 勾 1A-1
M1 一条龙通→ 最丑端到端跑通(撞开闸门)      → 勾 1A-2/3/7/8/9/10/11/12/13 (9项)
   ━━━━━━━━━ 闸门:北哥能看真东西了 ━━━━━━━━━
M2 飞轮通  → 1B四点+第一道线补全(多轨/违禁词/N图) → 勾完1A剩余+1B四点+安全
M3 抽检通  → 北哥真看真喂料,质量迭代逼近    → 第二道线(Complex,迭代非规划)
M4 上线    → 飞轮启动+独立AI审核            → 第三道线

执行层M0+M1 = 撞闸门,当前唯一战场,逐棒)

动作 清掉的坑 勾上
0a 修docker-compose路径+补backend/.env全变量 D1 D2
0b 写种子脚本(3账号+素颜霜+5违禁词)+迁移自动跑 D3 D4
0c docker起全栈,熟手登录看到素颜霜 1A-1
1 选素颜霜+传图+建任务,抓包验无明文key 1A-2,1A-3
2a 修文案鸭子类型(G1坑)→真出1条文案 G1坑 1A-5(部分)
2b 修生图provider/fallback(G2,G6坑)→真出1张图 G2 G6坑 1A-7
2c 修图片StaticFiles(G4坑)+角色枚举(G5坑) G4 G5坑
2d 修SSE error事件(G3坑)→进度+失败可见 G3坑 1A-8
2e 验去水印过流水线(C4) C4 1A-11
3 挑这条文案+这张图 1A-9
4 组长登录看队列→通过 1A-10
5a 修下载401(C1坑)→fetch+blob下载 C1坑
5b 打包→熟手下载→打开zip确认能用 C2 1A-12,1A-13

撞闸门验收M1走完,1A 13项勾上9项(1A-1/2/3/7/8/9/10/11/12/13),北哥能看真东西→闸门开。 剩4项(1A-4标杆8特征/1A-5文案双轨/1A-6违禁词三级/部分)归M2加深。


七、多视角校准(自检盲点)

视角1·北哥实用主义"我要的是能用,不是你内部跑通。"

  • ⚠️盲点:M1用我(开发)跑通≠北哥熟手能跑通。M1验收必须北哥本人或我模拟纯小白点,不能我用脚本验通就算。→ 修正:M1验收标准加一条"非开发视角点完全程"。
  • ⚠️真出图烧北哥key额度。→ M2前每次真跑都提前报你,你授权再跑。

视角2·QA挑刺"你怎么保证这次不又是假跑通?"

  • ⚠️盲点:坑点是静态读码挖的,真跑可能冒新坑(尤其异步/Celery/Redis时序)。→ 修正:M1每棒"真点真看真下载",不接受单元测试代替;冒新坑就地加入坑表。
  • ⚠️10个🔴是"已知致命",可能有"未知致命"。→ 接受,纵切片的意义就是用真跑把未知逼出来。

视角3·倩倩姐战略"方向对不对,节奏谁定?"

  • 两段论+闸门+飞轮发动机=方向收敛清晰。
  • ⚠️节奏判断权在你:M0→M1是否一口气推?还是M0先给你验一次再推M1?→ 待你拍。
  • ⚠️Lead这次还用不用?它之前空转。→ 建议M0/M1我亲自逐棒干(链路串通需要全局视野,不适合派),M2加深再用团队并行。待你拍。

八、待你拍板3个判断点

  1. 方向收敛(两段论/闸门/飞轮发动机)校准了吗?
  2. 节奏:M0通了先停给你验,还是M0+M1一口气撞到闸门?
  3. 谁干:M0/M1我亲自逐棒(推荐),还是仍走Lead团队?

闸门撞开前,这份图就是唯一作战地图。每勾一项我按G2报证据。


九、【归一·补漏】质量内核坑(之前漏挖,北哥方法论只落地25-30%

教训:我把"已回填的质量标准"误判成"以后迭代的质量探索",整段漏挖。北哥最值钱的方法论(北哥回填解读与落点.md §3/§4)现在就该在代码里。 铁律A守住了:无硬编码"倍分子"/89元/玻尿酸,方法层数据层隔离干净。

# 北哥要的(方法层,全品类共用) 现状 性质
Q1 随机变量池ABC:身份场景×起因情绪×小缺点 各随机抽1,N条不撞,池可扩展 0行 🔴反同质化命脉
Q2 5步框架:Hook暴击低价→痛点共鸣→救星登场→卖点罗列(小标题)→逼单 旧7步SOP,逻辑全错 🔴
Q3 正文四段(痛点→实测→种草→引导)+350-400字+3-5段空行 180-260字,无四段 🔴
Q4 佛系反推销人设("东西放这了买不买跟我没关系")+70%场景30%产品 0行 🔴
Q5 违禁词:negative类(神器/福音/救急单品/遮羞布/日常维稳/精简底妆/不仅而且/焕发/守护/尽享)prompt负向约束不准写进正文,非auto_fix事后替换;遮羞布漏收 走auto_fix替换+漏遮羞布 🟡机制错
Q6 6图顺序:封面痛点大字→单品特写+品牌词→成分→质地→上脸对比→促单;品牌词2/6张·转化句6·对比5 顺序3/6不匹配 🟡
Q7 反AI味+防人群重叠+防场景重复(北哥最大痛点) 仅相似度去重,无源头prompt约束 🟡
Q8 标题公式(肤质/价格/功效/夸张/标题党各5词例) 笼统一句 🟢

十、撞闸门新定义(工程+质量合一)

闸门 = 跑通 AND 产出合格。 只通工程→跑通但AI味垃圾,北哥毙;只改质量→跑不起来,等于没改。M1每棒"修工程接缝 + 落北哥方法论"一次到位:

工程(清坑) 质量(落方法论) 勾验收
2a 出文案 修鸭子类型G1坑 落Q1变量池+Q2 5步+Q3四段350字+Q4佛系人设+Q7反AI味+Q8标题 1A-5
2b 出图 修provider/fallback G2/G6坑 落Q6 6图顺序对齐 1A-7
2c 图可见 修StaticFiles G4+角色枚举G5坑 Q6角色名统一
2d 进度 修SSE G3坑 1A-8
2e 去水印 验C4 1A-11
(违禁词) 落Q5 negative改prompt负向约束+补遮羞布 1A-6部分

M1验收(双标准):①北哥/纯小白视角点完全程能下载 ②产出3条文案"像素人不同质化",北哥认可。机器测试过不算过。

十一、节奏(按推荐)

M0通了先停给倩倩姐验一次(看到登录+素颜霜)→再推M1。M0/M1我亲自逐棒(链路串通+方法论落地需全局视野),M2加深再用团队并行。