baseline: Clover 独立仓库首次基线提交

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

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-16 11:30:22 +08:00
commit 6a2632da70
253 changed files with 27467 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
# 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` | 未核,可能只是列表无成品预览 |
| 任务列表页 | 不存在 | 🔴确证缺失 |
> **修正结论**:不是"卡片空",是"**着陆页和全局视图空**"。用户一进来是dashboard3个按钮缺俊达那种"今天生成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` 看另一窗口提交到哪了,再动手。