# Clover 真实能力盘点 + 对照修正（读完6365行后端后的诚实版）

> ⚠️ 重要：本文档**修正**我之前《俊达vsClover-逐界面对照缺陷清单》里的多处错判。
> 之前只读了前端8页+零星后端就下结论，冤枉了好几处。这次读完后端全部API+核心services+workers后重写。
> 倩倩姐在另一窗口"看到功能挺多"是对的——很多能力**在后端实现了，只是前端没接/没可视化**。

---

## 一、先认错：我之前判错的地方

| 我之前的判断 | 真实情况（代码为证） | 性质 |
|---|---|---|
| "改稿环节缺失" | ✅确实没有改稿。但我没说清：选优/重生成/导入轨都有(`task_actions.py`) | 判断对，但描述把整体说薄了 |
| "图片卡信息薄=只有url+role" | 后端 `ImageCandidate` 确实只存role/url/strategy/seq，**但生图引擎极丰富**(见下) | 🔴**冤枉**：薄的是展示，不是能力 |
| "拆解中心只能录入不能拆配方" | `fission.py`是**第11环裂变引擎**(1爆款→N套笔记包)，不是"只录入" | 🔴**判错**：裂变能力建了表，是没接UI |
| "平台对抗待确认Clover做到哪" | `image_postprocessor.py`**已实现**：去元数据+削像素水印+SynthID破除+Gemini重绘兜底 | 🔴**漏看**：对抗层早做了 |
| "双通道生图待确认" | `image_gen.py`**已实现**主备通道(gpt-image-2主/Gemini备)+多中转站(apiports/codeproxy)切换+重试退避 | 🔴**漏看**：双通道在 |
| "模板库藏代码里" | storyboard有完整分镜模板体系(`storyboard_templates.py`174行) | 部分对，但低估了成熟度 |

> 教训：我拿"前端没显示"当"功能不存在"，这是硬伤。**Clover后端比前端展示出来的强得多。**

<!-- 后续Edit补充：二、后端真实能力全景 / 三、真正的缺口(修正版) / 四、前后端能力落差 / 五、对照俊达的真实差距 -->

---

## 二、后端真实能力全景（读完代码确证·这些都已实现）

**文案生成链（强）：**
- `_text_prompt.py`：人设/随机变量池ABC/5步框架/四段结构/5类标题公式/反AI味/emoji规则，方法层vs数据层分离
- `text_variants.py`：双轨(AI生成+导入)、分批生成(避60s网关超时)、三层兜底、可选优化轮、本地草稿兜底
- `llm_scorer.py`：**AI评委打分**——模型真读文案给6维分+理由+verdict+summary，合规第7维机械硬拦，失败回退机械打分
- `replenish_task.py`：合格数不足时**后台异步补充**到目标条数（先展示后台补铁律）

**生图链（很强，我之前严重低估）：**
- `storyboard.py`：**分镜引擎**——按图数排叙事角色(3/6/8张不同链路)、品牌词第2/6张植入、逐图差异化9字段prompt、成组视觉统一
- `image_gen.py`：**主备双通道**(gpt-image-2带产品图edits / Gemini备)、多中转站切换、限并发、指数退避重试
- `image_postprocessor.py`：**去AI化对抗**——去C2PA元数据+轻/重采样削像素水印+SynthID破除(可选)+Gemini重绘兜底

**飞轮链（已转）：**
- `preference_aggregator.py`：聚合最近50条信号→偏好角度+打回原因→注入prompt；冷启动用产品档案；按product_id隔离防串货；三层继承(L1品牌>L2矩阵>L3个人)
- `task_actions.py`：选文案+3/选图+3/重生成-1 信号都记录
- `flywheel_service.py`：record_signal + get_preference_context

**裂变链（建了表+引擎，待接UI）：**
- `fission.py`：第11环裂变引擎，1爆款→N套完整笔记包，带reference_level/fanout_count/status状态机

**交付链（完整）：**
- `delivery.py`：打包→一次性下载令牌(60s)→FileResponse下载，双认证(token/JWT)

---

## 三、真正的缺口（修正版·只留确证的）

读完后端后，真正站得住的缺口收敛到这几条：

| 缺口 | 性质 | 确证依据 |
|---|---|---|
| **1. 改稿→飞轮信号** | 真缺 | `SignalType`(enums.py:57)无text_edit；`TextCandidate`无edited字段。这条仍成立 |
| **2. 裂变引擎没接前端UI** | 真缺UI | `fission.py`引擎在，但前端无裂变页、无入口 |
| **3. 数据复盘（发布后回收）** | 真缺 | 全后端无"发布后赞藏评回收"模块，链路止于交付包 |
| **4. dashboard门面空** | 真缺 | `dashboard/page.tsx`只有3按钮，后端那么多能力一个没露 |
| **5. Sidebar死链404** | 真bug | `Sidebar.tsx:22-25`指向不存在路由 |
| **6. 图片候选展示薄** | 展示缺,非能力缺 | 后端storyboard算了role/goal/卖点/视觉策略，但`_fmt_image`只返role/url/strategy/seq，前端只显示url+role |
| **7. AI评委理由没充分展示** | 展示缺 | 后端有verdict/summary/6维note，前端TextCandidateCard展示了，但confirm页等只显示总分 |

> **关键转变**：之前我列的"素材库缺失/拆解缺失/对抗缺失/双通道缺失"大半是错的——**对抗、双通道、分镜、裂变引擎后端都有**。真缺口收敛到：①改稿信号 ②裂变没接UI ③数据复盘 ④门面空 ⑤死链 + 两处展示薄。

---

## 四、前后端能力落差（这才是"空"的真因）

**这是核心洞察**：Clover 的问题不是"功能少"，是**后端能力没在前端露出来**。

| 后端有的能力 | 前端露出了吗 |
|---|---|
| 分镜引擎(每张图有role/goal/卖点/视觉策略/依据) | 🔴只显示url+role两字段 |
| 主备双通道+对抗去AI化 | 🔴用户完全无感（后台默默跑） |
| AI评委6维分+理由+verdict | 🟡文案卡露了，其他页只剩总分 |
| 后台补充合格文案 | 🔴用户不知道在补 |
| 裂变引擎 | 🔴无入口 |
| 飞轮偏好注入 | 🟡只一条banner |

> 俊达"界面饱满"的感觉，本质是**他把后台算的每一步都可视化了**。Clover后台算得不比他少，但**前端只露了冰山一角**，所以显得"空"。这跟"功能缺失"是两个完全不同的问题——**前者是接线/可视化工作量，后者是从0造功能。Clover大多属前者。**

---

## 五、对照俊达的真实差距（收敛后）

| 维度 | 真实结论 |
|---|---|
| 文案生成 | **不弱于俊达**，AI评委+飞轮+反AI味都有 |
| 生图质量工程 | **可能不弱**，双通道+分镜+对抗去AI化都有 |
| 飞轮 | 骨架在，**缺最强信号(改稿diff)**，且可视化弱 |
| 资产化/裂变 | **引擎在，缺UI接线** |
| 数据复盘 | **真缺**（俊达有发布后回收，Clover止于交付） |
| SCRM销售线 | 整块没做（商业决策，待倩倩姐判） |
| **呈现/可视化** | **这是最大差距**——后端能力强，前端露太少，所以"显空" |

> 一句话修正：**不是Clover功能比俊达少很多，是Clover把做好的能力藏在后端没给用户看。** 你那个窗口看到"功能挺多"，看到的就是这些后端实现。我之前只扫前端，所以误判成"空、缺失"。

---

## 六、仍未读、不装看到的

- `products.py`(308行,最大文件) — 产品档案完整能力未读
- `pipeline_io.py`(298行) — 文案/图片生成存储编排未读
- `gemini_factory.py`(225行) — AI客户端构造未读
- `storyboard_templates.py`/`_score_prompt.py`/`_scoring_dims.py` — 模板和评分维度细节未读
- 前端：`ImageProgressCard`/`ReviewCard`/`ConfigPreviewPanel`等组件本体未读
- 数据库迁移到011，011/010之后有无新增未确认

> 要补到100%确证，这几个还得读。但**主干结论（后端强、前端露得少、真缺口5条）已经站得住**。

---

## 七、补读完成（已清零未读区）— 又发现3处关键事实

读完 `products.py`/`pipeline_io.py`/`review.py` + 前端剩余组件后，新增确证：

### 新发现1：生图实际跑「3套正交策略 × N张」，前端拍平丢了策略维度 🔴
- `pipeline_io.py:201` 明写 `for strategy in ("A","B","C")`，每套各生 image_count 张。**用户要6张→后端实际生18张候选**。
- `ImageProgressCard.tsx` 本是为"批次/策略"设计的(有BatchState)，**但 images 页(line55-68)是平铺所有图、没按A/B/C分组**，`_fmt_image` 返回了strategy字段但前端没用来分组。
- 结论：**后端做了"3种叙事方向给你挑"，前端拍平成一堆散图**。这是俊达"双通道选优"思路Clover其实有雏形(3策略)，但展示层没体现。

### 新发现2：产品图 vision 智能分析已实现 🟢（我完全没提过）
- `products.py:254` `analyze-image` 接口：上传产品图→GPT vision 读图→自动产出卖点/人群/场景/关键词/违禁词/拍摄方向 JSON。
- 这等于俊达"拆解"能力的一种——**只是用在产品建档，不是用在爆款逆向**。Clover有读图理解能力，我之前一字未提。

### 新发现3：爆款8特征分析字段已建 🟡
- `BenchmarkNote.features_json` + `analyze_status`(pending/analyzing/done/failed)：标杆笔记预留了"AI解析8特征"的字段和状态机。
- 说明"爆款拆解"在数据层已开口子，差AI解析逻辑+UI。比我之前说的"只能录入"更进一步。

### 复核确认的展示薄（确证）：
- `ReviewCard`：审核卡只显示 product/operator/theme/正文2行+图，**不显示七维分**——审核员看不到AI评委打分就要拍板通过/打回。这是确证的展示缺失。
- `ConfigPreviewPanel`：注释说"显示成分/质地/参考图3张"，**实际代码没渲染参考图、没成分**，只有名称/品类/卖点/风格/角度。注释与实现不符。
- `ScoreDimBars`：✅做得好，数据驱动渲染AI评委dims+note，有hover理由。
- `FlywheelBanner`：✅但确实只是一条横幅，飞轮存在感弱。

### 最终未读（已很次要，不影响结论）：
- `gemini_factory.py`/`storyboard_templates.py`/`_score_prompt.py`/`_scoring_dims.py`：都是"已确证存在能力"的实现细节，读不读不改变结论。
- `pipeline_io` 已读到生图主循环，确认无遗漏大功能。

> **补读后主干结论不变，反而更强**：Clover后端能力比前端展示的多得多（生图3策略18张→前端拍平、vision分析→没UI入口体现、爆款8特征→留了字段）。**"空"的根因100%确证是"前后端能力落差"，不是功能缺失。** 真缺口仍是那几条：①改稿信号 ②裂变/爆款拆解的AI逻辑+UI ③数据复盘 ④门面空 ⑤死链，外加多处"后端算了前端没露"。
