将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。 当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包), M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
20 KiB
北哥/倩倩姐验收反馈 + 功能差距盘点
记录时间:2026-06-12 触发:倩倩姐用 qianqian 账号实跑前端,发现大量问题。要求:①先记录全部问题 ②原始需求 vs 现状做完整对比,代码层验证,交叉2-3轮,列出未实现项。
一、倩倩姐本次实跑提出的问题(原话拆解,一条不漏)
A. 产品管理
- A1. 选品/建任务时不能填写其他产品,库里只有一个"素颜霜预置样本"。
- A2. 没有产品上传入口——产品参考图没地方上传。
B. 文案(选择文案页,截图1)
- B1. 前两个文案卡片(83分、66分)的评分明细进度条全是0(标题0/情绪0/买点0/关键词0/合规0),但总分却有83/66——评分明细丢失或没渲染。后三个(75/59/76)有明细。
- B2. 80分以下的文案为什么还放出来了(66/59/76 都<80)——评分门槛/过滤逻辑存疑(需确认原始需求是过滤还是全展示)。
- B3. 文案到底用的什么文案方法论——质疑文案套路(佛系人设 vs 源头小红书7步SOP,此前 deferred 未决)。
C. 图片(选择图片页,截图2/3/4)
- C1. 产品不一致——生成图里的产品包装和参考图对不上(参考图是64字节占位图导致)。
- C2. 图片没办法自动缩放——窗口变化时图片不自适应。
- C3. 第一张(hook)字体是错的——大标题"5符种岜门/熿韵遾愳/扶妢/絹琝诙妢"全是乱码错字(gpt-image-2 中文渲染翻车,连大标题都错)。
- C4. 只生成1套6张图,应该最少3套不同的供选择。
- C5. 没有一张图能放大——点击图片无法查看大图。
- C6. 窗口最小化后内容被截断(响应式布局缺失)。
- C7. 生成的更像电商详情图,跟小红书压根不匹配——风格定位错误。
D. 路由/页面
- D1. 任务列表等页面 404(截图4:/tasks/40/images 切到任务列表报 404 This page could not be found)。
E. 功能缺失
- E1. 没有看到"爆款裂变"功能——飞轮/裂变板块缺失或没入口。
F. 流程/进度
- F1. 文案页"前面两个进度条没展示"(同 B1,进度/评分条渲染问题)。
二、原始确认的功能板块(已从 PRD/验收清单/API契约/通关路线图/北哥回填提取)
来源:PRD-0总纲 §5 全流程5环节 / PRD-前端 / PRD-后端 / 验收清单1A+1B / API契约 / 北哥回填解读
一期(1A 生产链)必做的5大环节(PRD-0 §5)
- 产品配置(管理员录):卖点/品牌词/违禁词三级/标签/风格调性/可调prompt/参考图上传
- 生成文案(双轨):轨A一次出N角度 / 轨B导入外部文案;五维评分(标题25/情绪25/买点25/关键词20/合规5),总分<90不进候选池
- 生成图(分镜):gpt-image-2主+edits带产品参考图+禁纯文生图;storyboard N张(1-8)各担角色;6图对齐北哥标准序;provider主备+重试退避
- 爆款裂变(1爆款→N笔记包):每包完整(标题+正文+标签+分镜);卖点/标签/人群锁定;参考度低30/中/高85可调 ← 一期范围
- 存档打包交付:达人素材包(按笔记分文件夹+01/02命名+文案.txt+发布清单+合规说明);去水印(重编码去C2PA+削像素水印)
飞轮四点(1B,基石E)
- events写入(选文案+3/选图+3/通过+5/打回-3/重生成-1) / aggregator返片段 / 下次prompt含片段 / UI显"本次已注入"
前端页面(PRD-前端)
- 登录 / 工作台 / 开新任务(选品+主题+数量+双轨入口+右侧配置预览3参考图+本次已注入横幅) / 选择文案(N卡+五维分条) / 选择图片(N批+SSE谁好谁先冒+套版预览) / 确认预览 / 组长审核台(/review) / 历史归档(任务列表+导出包) / 配置台(/config, 产品CRUD+参考图上传+标杆+成员+key只录不显余额+违禁词CRUD)
- 角色守卫:/review限组长+管理员, /config限管理员
- SSE:先换60s短票再建连, 禁token直传; 5次重连退避; event_seq去重
关键细节点(逐条可核)
- D-1 产品参考图上传入口(配置台屏1明确要)
- D-2 文案五维评分展示+总分
- D-3 文案90分门槛后端过滤(<90不进池)
- D-4 图片放大: PRD未明确要求(但属基础体验)
- D-5 图片响应式缩放: PRD未明确(PC最小1280px)
- D-6 一次生成: 1套N张(N=image_count) ←PRD设计; 倩倩姐要3套选=超出原PRD,待确认
- D-7 爆款裂变页: 一期范围, 当前疑似缺失
- D-8 任务列表页: /history 应有
- D-9 小红书风格(非电商): 无独立定义, 靠 style_tone 字段 + prompt
- D-10 SSE实时进度(谁好谁先冒/单批失败重试/能离开)
- D-11 第1张图中文乱码: gpt-image-2渲染硬伤(记忆已记, 未解)
【补全】上一轮盘点遗漏的原始需求(来自北哥回填/洞1-7/扒包萃取/豆包prompt)
倩倩姐指出"讨论方案时远比这多"。重新通读 北哥回填解读 / test洞1-7 / 官网V1萃取 / 产品包扒包 / banana扒包 后补全,这些是之前漏掉的硬需求:
北哥文案方法论(豆包prompt原话,最高优先级)
- N-文1 佛系反推销人设"东西放这了买不买跟我没关系"
- N-文2 随机变量池ABC:身份场景5×起因情绪3×小缺点3,每条随机抽不撞(反同质化命脉)
- N-文3 5步框架:Hook暴击低价→痛点共鸣→救星登场→卖点罗列(带✅小标题)→逼单(不是旧7步SOP)
- N-文4 正文四段:痛点→实测→种草→引导;350-400字;3-5段空行
- N-文5 70%场景 30%产品 比例
- N-文6 标题5公式:肤质/价格/功效/夸张/标题党,每条不同类型
- N-文7 反AI味负向词禁入正文(神器/福音/遮羞布/日常维稳/精简底妆/不仅而且/焕发/守护)——是prompt负向约束不是事后auto_fix替换
- N-文8 品牌词必植入文案正文(北哥"种品牌词引导天猫搜"核心诉求)
北哥生图规则(豆包prompt+回填原话)
- N-图1 6张固定套路序:①封面痛点大字②单品特写+品牌词③成分④质地⑤上脸对比⑥促单
- N-图2 品牌词出现在第2/6张,转化句在第6张,对比在第5张
- N-图3 好图标准:高清+构图居中+字粗大+图文匹配
- N-图4 效果对比图AI优先(实拍备),静物图实拍优先(AI备)
- N-图5 排版并入生图(AI直接把字排图上出成品),不做独立排版环
- N-图6 成组视觉统一(buildVisualSystem):一套N张共享主色/字体/贴纸
- N-图7 素材路由:产品图=商品锚点不可改 / 实拍图=肤感场景 / 爆款图=只学版式不用内容
标杆/爆款分析(北哥13环+扒包split.js)
- N-标1 标杆分析出8特征(SSE analyze_done带features:[8特征])——提取标题句式/开篇痛点/评论刚需
- N-标2 爆款参考度三档:低30(只学结构)/中(学节奏局部替换)/高85(学标题节奏换表达防抄袭)
- N-标3 裂变维度标注:换了哪个维度/目标人群/场景/痛点点位
- N-标4 裂变必须改全文+重拍图,不变卖点/标签/人群(N-19北哥死命令)
- N-标5 裂变笔记综合评分(scoreCompleteNote=文案五维+图文完整度15分)
违禁词三级(洞5拍板)
- N-违1 三级:🟢auto_fix视觉类自动改(前后对比→质地说明) /🟡soft_warn功效词标黄给建议(美白→提亮?) /🔴hard_block高危词必改(医用/药妆)
- N-违2 词库可配置+可批量导入(北哥词远超预置5条)+北哥可调分级
- N-违3 "遮羞布"等AI味词要单独分类入库(北哥最大痛点)
- N-违4 双保险:生成时prompt规避 + 发布前检查两道关
去水印(洞3拍板)
- N-水1 出图后必经工序:重编码去C2PA元数据 + 转JPG/轻重采样削SynthID像素水印 + 压缩
- N-水2 诚实边界:C2PA 100%可去,像素水印只能削弱
- N-水3 去水印严守3:4比例不变形
交付/数据归属(洞6+洞7拍板)
- N-交1 素材包结构:发布清单.txt(自解释发几条/配图序/文案/标签) + 笔记N_角色/文件夹(01/02/03命名) + 文案.txt(标题+正文+标签) + 合规说明.txt
- N-交2 数据归属分层:客户输入物+产出物归客户可导出 / 飞轮偏好归平台不随客户走
- N-交3 数据可导出一期就做(洞7),全表加workspace_id隔离
- N-交4 下载必须fetch+blob(window.open无法带token会401)
标杆采集(洞1拍板)
- N-采1 一期对外标配=截图上传+手填亮点(零平台风险),系统不碰小红书服务器
- N-采2 登录态采集插件=二期北哥内部自用opt-in,不进对外标配
工程底座(架构方案+banana扒包)
- N-工1 ai_call_logs:每次AI调用记谁/用多少token,失败归因到个人key(一期必做)
- N-工2 健康检查 GET /health
- N-工3 同用户并发生成任务上限2(可配)
- N-工4 上传安全:magic number校验+扩展名白名单+路径穿越防护
- N-工5 三层兜底文案:Claude→Gemini→本地模板(buildLocalDrafts永不空手)
- N-工6 去重系统:标题相似度≥0.82判重 / 正文开头签名去重
- N-工7 角度槽位机制(每条强制不同角度)做成可迁移数据
- N-工8 product.js产品图视觉分析→visualIdentity(主色/字体/包装风格)供生图用
前端工程(PRD-前端)
- N-前1 errorCodeMap错误码映射表(9类错误码→文案+处理动作)
- N-前2 骨架屏(文案卡/图卡/审核队列loading)
- N-前3 无key时按钮置灰+首登强制引导配key页
- N-前4 4个Store(authStore/taskStore/generationStore/preferenceStore)
- N-前5 token刷新(JWT失效自动刷新,失败跳登录)
- N-前6 套版预览(选中图+文案→拼成笔记长相)
三、现状 vs 需求 差距清单(代码层 3 轮交叉验证)
验证方式:4 个 Explore agent 并行扫码(前端/后端接口/生图文案/DB飞轮),关键质疑项倩倩姐亲自复核读码 2 轮。每条附
文件:行号证据。 图例:✅已实现 / 🟡半实现 / ❌未实现 / 🐛有bug
3.1 倩倩姐质疑项 — 逐条结论
| 编号 | 问题 | 结论 | 代码证据 | 根因 |
|---|---|---|---|---|
| A1 | 不能填别的产品 | 🟡 能建产品但入口只在配置台 | products CRUD全在 api/v1/products.py:64-131;新建表单只挂 /config,NewTaskForm.tsx:47 任务页只能选不能建 |
任务页缺"快捷新建产品"按钮(设计取舍,非bug) |
| A2 | 没有产品上传入口 | ✅ 入口存在 | 后端 products.py:150 POST /products/{id}/upload-image 写 image_path;前端 ProductSubComponents.tsx:73 file input |
入口在配置台产品卡内,倩倩姐没找到≈可见性问题 |
| B1 | 评分明细进度条全是0 | 🐛 SSE推送时五维占位0靠异步补 | useSse.ts:83 推送时填 {title:0,emotion:0...total:X},88-93行再异步GET补全 |
SSE只推总分(useSse.ts:77 score是number),五维详情靠后续接口补,慢/缺字段就长期显示0 |
| B2 | 80分以下文案为何放出来 | 🐛 90分门槛形同虚设 | text_variants.py:136 返回含passed=False全部候选;pipeline_io.py:96-106 无差别写库无if not passed:continue |
门槛只算分标记passed,存库时根本不按它过滤。低分全进池 |
| B3 | 文案用什么方法论 | ✅ 佛系人设+5步+变量池ABC+反AI味 | _text_prompt.py:12(佛系人设)/:66(5步框架)/:19(变量池ABC)/:94(反AI味) |
方法论已落地,是否对北哥胃口=产品决策 |
| C1 | 产品不一致 | 🟡 测试时参考图是64字节占位 | pipeline_io.py:150 无参考图硬失败逻辑正确;本次是测试数据问题 |
上真实产品图即可解,非代码缺陷 |
| C2/C6 | 图片不缩放/窗口截断 | ✅ 响应式CSS已有 | images/page.tsx:55 grid-cols-3 xl:grid-cols-5;:65 w-full aspect-square object-cover |
agent判定不会截断;需倩倩姐复现确认是否别处 |
| C3 | 第一张字体乱码错字 | 🐛 纯靠模型画中文字,无叠字兜底 | image_gen.py:145 prompt只描述文字让模型自画;全ai_engine/无PIL叠字 |
gpt-image-2中文渲染弱是已知模型局限,缺服务端Pillow叠字方案 |
| C4 | 只1套6张,要≥3套 | 🐛 架构只产1套N张 | image_gen.py:121-173 单个storyboard逐张生成返回扁平list;调用链只跑一次 |
无"套"概念,需加外层循环生N套 |
| C5 | 图片不能放大 | ❌ 无lightbox | 全局搜lightbox/放大/zoom = 0结果;images/page.tsx:60 onClick只做选中 |
功能未做 |
| C7 | 像电商图不像小红书 | 🟡 风格词有但防御弱 | constants.py:58 有"小红书种草风";但仅closer角色禁电商风(storyboard_templates.py:53),其他角色无负向词 |
缺强负向约束"禁白底产品图/禁电商详情图" |
| D1 | 任务列表404 | 🐛 导航指向不存在的路由 | Sidebar.tsx:22-26 /images、/tasks/build、/tasks/list 三个href均无对应page.tsx |
导航错配 |
| E | 没看到爆款裂变 | ❌ 全栈零实现 | 前后端+DB+worker全局搜裂变/split/fission = 0业务代码 | PRD一期范围,完全没建 |
3.2 原始需求模块 — 整体实现度
后端接口(API契约):核心链路基本齐
- ✅ 认证/工作区切换、API Key(只显后4位)、产品CRUD+图上传、违禁词三级、SSE一次性ticket、审核台approve/reject、打包下载、飞轮三信号+context — 全部有码
- 🐛 90分过滤失效(见B2)
- 🟡 轨B导入文案
task_actions.py:76只存库不评分不查违禁词(worker版text_variants.py:139才完整) - ❌ 标杆"出8特征"分析:
BenchmarkNote只存手填highlights,无AI结构化分析 - ❌ 爆款裂变接口
生图/文案核心:
- ✅ 6图角色对齐北哥序(
storyboard.py:75)、provider主备+退避(image_gen.py:34-117)、禁纯文生图硬拦(pipeline_io.py:150)、去水印(image_postprocessor.py)、文案双轨+方法论、五维评分逻辑(_scoring_dims.py) - 🐛 生图只1套(C4)、中文叠字乱码(C3)、90分不硬拦(B2)
- 🟡 品牌词:注入逻辑在(
storyboard.py:133)但products表无brand_keyword列(models/product.py:20-54确认无),运行时永远空,第2/6张品牌词静默失效 - 🟡 电商风负向约束弱(C7)
数据库:15张表齐全有迁移(001-007)。唯一缺口:products表缺brand_keyword列。eval_score正确留NULL未接假评分。多租户workspace_id双层过滤到位。
飞轮四点:✅ 全通——写入(task_actions.py:49选文案/review.py:113通过/:139打回)、聚合(flywheel_service.py:71)、注入(pipeline_steps.py:71+pipeline_io.py:69)、UI已注入事件(tasks.py:94)、前端横幅(FlywheelBanner.tsx挂3页)。
前端页面:9个核心页在(login/dashboard/tasks.new/text/images/confirm/review/history/config)。缺:/tasks/list、/tasks/build、/images、爆款裂变页。
3.3 必须修的清单(按优先级)
P0 阻断验收
- 🐛 90分门槛过滤 —
pipeline_io.py:96加if not c.get("passed"): continue(B2) - 🐛 导航404 —
Sidebar.tsx:22-26删/改三个坏链接(D1) - 🐛 生图≥3套 —
image_gen.py加外层循环 / 新增 image_sets_count(C4) - 🐛 中文乱码 —
image_postprocessor后加 Pillow 中文字体叠标题(C3)
P1 核心缺口
5. 🟡 brand_keyword字段 — ORM加列+迁移008+build_product_dict映射+DTO(品牌词)
6. ❌ 图片放大 lightbox(C5)
7. 🟡 电商风负向prompt强化(C7)
8. 🐛 五维分条全0 — SSE直接推score对象 / 前端补全兜底(B1)
P2 功能立项 9. ❌ 爆款裂变(1爆款→N笔记)— PRD一期范围,需从0设计表+worker+前端页(E) 10. ❌ 标杆8特征分析 11. 🟡 轨B导入补评分+违禁词检测
产品决策待倩倩姐/北哥拍板
- 文案方法论:代码已落地北哥5步框架(非旧7步),是否对北哥胃口需北哥真看(B3)
- 3套的"套间差异"策略(不同角度/不同风格/不同封面?)
- brand_keyword 录入在产品级还是任务级
四、补全需求的代码层验证(本轮新增,对应第二章【补全】项)
倩倩姐指出上一轮漏了大量讨论过的需求。这一节对补全项逐条给代码结论。重大发现:北哥文案方法论此前项目文档标记"只落地25-30%"(BUG-14),本轮亲自读
_text_prompt.py全文确认——已全部落地,那条诊断是过时记录。
4.1 北哥文案方法论 — ✅ 已全部落地(推翻旧诊断)
亲自读 _text_prompt.py 逐行确认:
| 需求 | 结论 | 证据 |
|---|---|---|
| N-文1 佛系人设 | ✅ | _text_prompt.py:12-15 _PERSONA原话"东西放这了…" |
| N-文2 变量池ABC | ✅ | :19-46 三池+_pick_combo每条随机抽;:140 按count抽N组 |
| N-文3 5步框架 | ✅ | :67-73 Hook→痛点→救星→卖点✅→逼单,确是5步非7步 |
| N-文4 四段350-400字 | ✅ | :75-82 四段结构+:81字数+空行 |
| N-文5 70/30比例 | ✅ | :15 "70%场景30%产品绝不颠倒" |
| N-文6 标题5公式 | ✅ | :85-92 肤质/价格/功效/夸张/标题党各带词例 |
| N-文7 反AI味负向词 | ✅ | :50-54+:94-101 负向词prompt约束(非事后替换,机制正确) |
| N-文8 品牌词植入文案 | 🟡 | :147 注入逻辑在,但读product.get("brand_keyword"),products表无此列→永远空→静默失效(同生图品牌词根因) |
4.2 其余补全项 — 代码结论
| 需求 | 结论 | 证据/缺口 |
|---|---|---|
| N-标1 标杆出8特征 | ❌ | BenchmarkNote只存手填highlights,无AI分析;SSE虽定义analyze_done但无8特征产出 |
| N-标2~5 爆款裂变全套 | ❌ | 全栈零实现(参考度/维度/裂变评分都没有) |
| N-违1 违禁词三级 | ✅ | banned_word_checker.py:71-112 三级auto_fix/soft_warn/hard_block |
| N-违2 词库可配置 | ✅ | banned_words表+CRUD接口;批量导入未见独立接口(可逐条POST) |
| N-违3 遮羞布入库 | ✅ | _text_prompt.py:51 负向词含"遮羞布/日常维稳/精简底妆" |
| N-水1 去水印必经工序 | ✅ | image_postprocessor.py 重编码去C2PA+转JPG+重采样;pipeline_io.py:174已集成 |
| N-水3 严守3:4比例 | 🟡 | 后处理按原尺寸重采样,未见强制3:4校验(生图prompt要1080×1440) |
| N-交1 素材包结构 | ✅ | package_exporter.py 笔记夹+01/02命名+文案.txt+发布清单+合规说明 |
| N-交3 数据可导出 | 🟡 | 打包下载=产出物导出有;输入物(产品/标杆)整体导出未见专门接口 |
| N-交4 下载fetch+blob | ❓ | 需查前端下载实现是否用window.open(待验证) |
| N-采1 截图手填标杆 | ✅ | benchmarks.py 截图url+highlights手填 |
| N-工1 ai_call_logs | ✅ | models/flywheel.py:63 表在;pipeline_io.py:80 有写入 |
| N-工2 GET /health | ❓ | 待确认路由是否注册 |
| N-工3 并发上限2 | ❓ | 环境变量IMAGE_CONCURRENCY=2是生图并发,任务级并发限制待确认 |
| N-工4 上传安全 | ❓ | products上传是否做magic number校验待查 |
| N-工5 三层兜底文案 | 🟡 | 本地兜底build_local_drafts在;Claude→Gemini双层兜底待确认是否接 |
| N-工6 去重系统 | ✅ | dedupe_copies(text_variants.py:136调用) |
| N-工7 角度槽位 | ✅ | text_angles产品档案字段+build_prompt:146注入 |
| N-工8 产品图视觉分析 | ❌ | 无product.js等价的visualIdentity分析(主色/字体提取) |
| N-前1 errorCodeMap | ❓ | 前端错误码映射表待查 |
| N-前2 骨架屏 | ❓ | 待查 |
| N-前3 无key置灰引导 | ❓ | 待查 |
| N-前6 套版预览 | 🟡 | confirm页有预览,"封面+内页拼笔记长相"完整度待查 |
4.3 本轮新增的"未实现/待查"清单(补进第三章P级)
新确认 ❌ 未实现(之前漏列)
- 标杆8特征分析(N-标1)
- 爆款裂变全套(N-标2~5,与E同)
- 产品图视觉分析visualIdentity(N-工8)
- 输入物整体导出(N-交3部分)
🟡 半实现/隐患(之前漏列)
- 文案品牌词植入静默失效(N-文8,与生图品牌词同根因:products表缺brand_keyword列)
- 去水印3:4比例无强制校验(N-水3)
❓ 需补一轮验证(本轮时间未及,诚实标注未确认)
- 下载是否fetch+blob还是window.open(N-交4,影响401)
- GET /health、任务并发上限2、上传magic number校验、Claude→Gemini文案兜底
- 前端:errorCodeMap、骨架屏、无key置灰引导、套版预览完整度
❓项我没有当场全部读码确认,不糊弄、如实标注。倩倩姐若要,我下一轮把❓全部读码坐实。