# Clover 链路缺失诊断 + 代码层/Prompt层开工清单

> 对照俊达"完整闭环"，逐行扒 Clover 真实代码后的诊断。每条都标了**文件:行号**和**改法**。
> ⚠️ 并发：backend/frontend 另一窗口在改（15:34时间戳），本清单只诊断+给改法，落地前先看冲突列。

---

## 一、定性结论（先看这个）

你说的三个症状，根因各不相同，别一锅炖：

| 你的感受 | 真实根因 | 性质 |
|---|---|---|
| "点文案按钮404" | Sidebar导航写死了4个不存在的路由 | **死链bug**，半天能修 |
| "界面比较空" | prompt产出丰富，但前端没把"五维分/角度/飞轮/资产"可视化出来 | **呈现层缺失** |
| "逻辑链路有缺失" | 能跑通，但是"断点式8孤岛"，不是俊达的"一个任务流过的闭环" | **链路编排缺失** |

> 反常识发现：**prompt层不空，反而饱满**。`_text_prompt.py` 已有人设/变量池ABC/5步框架/四段结构/5类标题公式/反AI味/emoji规则，做了方法层vs数据层分离。空的是"产出之后怎么呈现、怎么串环、怎么沉淀"。

<!-- 后续Edit补充：二、404死链详情 / 三、链路缺失 / 四、呈现层缺失 / 五、prompt层缺什么 / 六、开工优先级 / 七、并发冲突列 -->

---

## 二、404死链详情（最急，先修这个）

**`frontend/src/components/layout/Sidebar.tsx:19-28` NAV_ITEMS 写死了占位路径：**

| Sidebar标签 | 写的href | 真实路由 | 现状 |
|---|---|---|---|
| 选择文案 | `/tasks` | 只有 `/tasks/[id]/text` | 🔴404 |
| 选择图片 | `/images` | 只有 `/tasks/[id]/images` | 🔴404 |
| 建立任务 | `/tasks/build` | 不存在 | 🔴404 |
| 任务列表 | `/tasks/list` | 不存在 | 🔴404 |

**根因**：文案/图片页是挂在具体任务下的（路由含 `[id]`，见 `app/tasks/[id]/text/page.tsx`），但侧边栏把它们做成了**无taskId的全局入口**。没有"当前任务"时点击→跳无id路由→404。

**改法（二选一，推荐B）**：
- A临时止血：把这4个死项从NAV_ITEMS删掉/置灰，只留真实可达的（工作台/开新任务/审核台/历史/配置）。
- **B正解**：导航改成"任务流"语义——侧边栏不再放"选择文案"这种环节级入口，环节入口由"当前进行中的任务"动态带 taskId 跳转（dashboard已有 `RecentTasksBar` 组件可复用）。这正是俊达"一个任务流过所有环"的呈现方式。

---

## 三、逻辑链路缺失（你说的"链路不完整"）

**真实可跑通的链路**（从代码反推）：
```
dashboard → tasks/new → [id]/text → [id]/images → [id]/confirm → review → history
   ✅          ✅          ✅           ✅             ✅           ✅       ✅
```
单条链路是通的。但对照俊达**缺3个闭环回路**：

| 缺的回路 | 俊达有 | Clover现状 | 触达文件 |
|---|---|---|---|
| **改稿→飞轮** | 人改AI草稿，diff喂回去（最强信号） | `SignalType`(enums.py:57-63)只有5种，**无text_edit**；TextCandidate(task.py:73)**无edited字段** | 见配套《增量①改稿diff细案》 |
| **审核→爆款库** | 过审的爆款拆解进资产库复用 | `fission`表已建有`reference_level`，但**无service/api接线** | 配套映射文档②|
| **任务列表回看** | 全局看所有任务状态流转 | **页面根本不存在**（Sidebar指向的`/tasks/list`是空的）| 需新建 `app/tasks/list/page.tsx` |

> 链路不是"断"，是"只有一条单向流，没有俊达那种'产出→沉淀→回灌'的回路"。这跟底层逻辑逆向文档§2飞轮四动作完全对应——Clover的飞轮①捕获缺最强信号、资产库②没接线。

---

## 四、呈现层缺失（你说的"界面空"）—— 已逐组件核实，需修正

**核实后修正：文案卡 `TextCandidateCard.tsx` 其实很饱满**，渲染了：角度标签(55)、正文+展开收起(56-67)、违禁词状态(70-78)、**七维分数条ScoreDimBars(81)**、AI评委总评verdict+summary(84-93)。这张卡不空。

所以"界面空"不在文案卡。真正可能空的位置，重新定位：

| 怀疑位置 | 待核实文件 | 为什么怀疑 |
|---|---|---|
| **工作台dashboard** | `app/dashboard/page.tsx`(已读) | 🔴**确证空**：只有3个DashCard+一句问候，无数据看板、无近期任务、无飞轮进度。俊达进系统是仪表盘，Clover是3个按钮 |
| 图片卡 | `ImageProgressCard.tsx` | 未核，存疑 |
| 审核卡 | `ReviewCard.tsx` | 未核，存疑 |
| 历史/归档页 | `app/history/page.tsx` | 未核，可能只是列表无成品预览 |
| 任务列表页 | 不存在 | 🔴确证缺失 |

> **修正结论**：不是"卡片空"，是"**着陆页和全局视图空**"。用户一进来是dashboard（3个按钮），缺俊达那种"今天生成X条/待审Y条/飞轮已学Z条"的仪表盘感。空的是**框**，不是**卡**。这个判断比之前准。

---

## 五、Prompt层到底缺什么（其实缺得不多）

`_text_prompt.py` 已很饱满。对照俊达**只缺2块**：

1. **改稿示范注入**：俊达把"人改过的好稿"当few-shot塞进prompt。Clover的 `build_prompt`(line126) 现在只注入产品数据+随机变量，**没有"参考这些人工修订过的范本"这一段**。← 配套改稿diff细案S4要补的就是这个。
2. **图片prompt的资产复用**：文案prompt成熟，但生图prompt(`storyboard.py`)有没有复用"历史选中的好图风格"待查。俊达双通道+后台选优，Clover是否只是单通道一次性生图待确认。

> 结论：**prompt层不需要大改，只需把飞轮的"改稿范本"接进 `build_prompt` 的注入段**。这跟"界面空"是两码事，别混。

---

## 六、开工优先级（按ROI和并发安全排序）

| 序 | 干什么 | 工作量 | 并发风险 | 价值 |
|---|---|---|---|---|
| **P0** | 修Sidebar死链404 | 半天 | 🟢低(纯前端导航) | 立刻不404 |
| **P1** | 核查并补全卡片字段渲染(五维分/角度/违禁词) | 1-2天 | 🟡中(动卡片组件) | 界面立刻"饱满" |
| **P2** | 改稿diff飞轮(见独立细案) | 已拆好 | 🔴高(碰enums/review) | 最强飞轮信号 |
| **P3** | 新建任务列表页 + 导航改任务流语义 | 1-2天 | 🟡中 | 链路闭环呈现 |
| **P4** | 爆款库接线 | 二期 | 🟢低(新模块) | 资产化 |

---

## 七、并发冲突列（另一窗口在改，落地前必看）

| 文件 | 冲突等级 | 说明 |
|---|---|---|
| `api/v1/review.py` | 🔴最高 | 改稿diff细案已确认绕开它走task_actions |
| `constants/enums.py` | 🟡 | 加text_edit信号要动这里，**仅此处需手工merge** |
| `components/tasks/*.tsx` | 🟡 | 补字段渲染会动卡片，先git status看另一窗口动没动 |
| `Sidebar.tsx` | 🟢 | 导航文件，另一窗口大概率没碰，P0可先动 |

> 落地任何一条前：先 `git status` + `git log --oneline -5` 看另一窗口提交到哪了，再动手。

