Files
beige/plans/核销-第11环-裂变.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

50 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 核销表 · 第11环 裂变
> 90分级验收孙总方法论·硬门禁。已吸收独立交叉验证修正。本环是本轮**补全的缺失引擎环**。
## 模块目标
①1个爆款笔记 → 裂变出 N 套**完整笔记包**(非只换文案,含文案+配图整套) ②裂变在工作台内呈现(不是独立页割裂) ③裂变任务可追溯源(source_fission_id) ④参考度档位(高/中/低)控制与原爆款的相似度。
## 🔴 迁移版本号统一
- **010 = fission_tasks 表(本环)**
- 011 = benchmark_ids(第2环) + **source_fission_id(本环合并进011)**
## Ralph 修改步骤
| # | 改什么 | 落点 |
|---|--------|------|
| S1 | 迁移010:新建 fission_tasks 表(id/source_note/reference_level/fanout_count/status/created_at) | 010_*.py(新) |
| S2 | FissionTask ORM 新建 | models/fission_task.py(新) |
| S3 | fission_service.py 新建(≤120行):接收源爆款+参考度+扇出数 → 构造 N 个子生成任务 | services/fission_service.py(新) |
| S4 | 裂变 prompt 模板:按 reference_level(高=贴原爆款结构/中=保卖点换角度/低=只借选题) 调 prompt | prompts/fission.py(新) |
| S5 | POST /fission 触发:写 fission_tasks扇出 N 个 task(每个完整走文案+配图) | fission.py(新) |
| S6 | ⚠️函数名修正:子任务配图调 **image_gen.py:121 generate_storyboard_images**(原清单写 generate_image_set 不存在) | fission_service.py |
| **S7** | ⚠️归并(原 S2+S7 source_fission_id 重复):迁移011 task 表加 `source_fission_id INT NULL`+ORM 字段fission 扇出时回填,标识子任务来源 | 011_*.py + task.py |
| S8 | 异步:扇出走 Celery generation 队列(N 套并发受 MAX_CONCURRENT 限) | fission_task.py(新) |
| S9 | dto.fission.ts 新建 | dto.fission.ts(新) |
| S10 | 工作台内呈现:任务列表区加"裂变"入口(非独立路由)FissionPanel 子组件 | workbench 或 tasks 页内 FissionPanel.tsx(新,≤80行) |
| **S10.5** | ⚠️审计补(AC9 遗漏):dashboard/page.tsx 加裂变任务统计/入口卡片 | dashboard/page.tsx |
| S11 | 参考度选择 UI:高/中/低 单选 + 扇出数 input(1-N受 MAX_CONCURRENT) | FissionPanel.tsx |
| S12 | 进度回流:N 套子任务状态聚合显示(x/N 完成) | FissionPanel.tsx |
| S13 | 源追溯:子任务详情页显"来自裂变 #{fission_id}"角标 | tasks/[id] 页 |
## 验收清单(做完一个勾一个)
- [ ] **AC1**auto迁移010+011:`alembic upgrade head` 成功fission_tasks 表存在task 表含 source_fission_id。
- [ ] **AC2**auto触发裂变:POST /fission(源+参考度=中+扇出=3) → 200返回 fission_id + 3个子 task_id。
- [ ] **AC3**auto完整笔记包:每个子任务跑完后**既有文案又有配图**(非只换文案)——查子 task 既有 TextCandidate 又有 ImageCandidate。
- [ ] **AC4**autosource 回填:`SELECT source_fission_id FROM task WHERE id IN(子)`全==该 fission_id(防链路断)。
- [ ] **AC5**auto参考度生效:高/中/低三档抓 prompt 请求体不同(高含原爆款全文,低只含选题),三档 prompt 互不相同(反向断言)。
- [ ] **AC6**auto配图函数:抓日志/打点确认走 generate_storyboard_images(非报 generate_image_set undefined)。
- [ ] **AC7**auto扇出受并发限:扇出数=10 但 MAX_CONCURRENT=5 → 排队不报错,最终全跑完。
- [ ] **AC8**human工作台内呈现:裂变入口在工作台/任务区**内**(非孤立新路由),点开有参考度+扇出数控件。
- [ ] **AC9**humandashboard 入口:⚠dashboard 有裂变统计卡片/入口(S10.5),点击进裂变。
- [ ] **AC10**human进度聚合:裂变后 FissionPanel 显 "x/N 完成" 实时更新。
- [ ] **AC11**human源追溯:子任务详情页有"来自裂变 #X"标识,可回查源爆款。
- [ ] **AC12**human参考度肉眼差异:同源裂高/中/低各1套高与原最像、低差异最大(北哥目视认可)。
## 待北哥定义(🔴阻断 S4/AC5/AC12
- **参考度档位(高/中/低)的具体含义** + **裂变维度定义**(沿哪些轴裂变:选题/结构/卖点/人群/场景?)。北哥未给前 S4 用占位规则(高=结构+卖点全保/中=保卖点换角度/低=只借选题)AC12 暂以"三档肉眼有梯度差异"验收。
- 扇出数上限(受 MAX_CONCURRENT=5 约束,是否允许排队超 5)。
- 裂变是否消耗与正常任务相同的额度/并发名额。