baseline: Clover 独立仓库首次基线提交
将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。 当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包), M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
55
PRD/PRD-0-总纲.md
Normal file
55
PRD/PRD-0-总纲.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Clover PRD-0 总纲
|
||||
|
||||
> 3份PRD的"对齐层":前后端共享的目标/范围/流程/验收/里程碑,避免两份重复。
|
||||
> **承接层**:决策见 `../Clover架构方案.md`(v0.3) + `../CLAUDE.md`;前端见 `PRD-前端.md`;后端见 `PRD-后端.md`。
|
||||
> 读PRD顺序:先读本总纲对齐全局 → 按角色分工读前端/后端 → 冲突以架构方案v0.3+CLAUDE.md为准。
|
||||
|
||||
## 1. 产品定位
|
||||
- 一句话:北哥团队的小红书达人素材"中央厨房"(多租户SaaS)
|
||||
- 界面名:龙石小红书内容生产平台 ; 项目代号:Clover🍀
|
||||
- 核心差异化 = **偏好飞轮**(越用越懂你的"老师傅")
|
||||
|
||||
## 2. 目标用户与三角色
|
||||
- 内容生产方(北哥团队):熟手(运营·每天产内容) + 组长(审核) + 管理员(北哥/老板·配业务)
|
||||
- 发布方(达人):只收素材包,不进系统
|
||||
- 平台方(我们):收口token,持有飞轮偏好资产
|
||||
|
||||
## 3. 范围边界(做/不做)
|
||||
- ✅做:①产品配置 ②生成文案(双轨) ③生成图 ④裂变 ⑤存档打包交付 + 飞轮(开放测试即启动)
|
||||
- ❌不做:软件收费/达人进系统/自动发布小红书/原始链接裸抓/移动端
|
||||
|
||||
## 4. 核心用户旅程(5屏·前后端共识)
|
||||
```
|
||||
管理员配置台(偶尔) → 熟手:开任务→挑文案(出N选若干)→挑图(出N选若干,N用户设定,图≤8)→确认预览→提审
|
||||
→ 组长:审核台 通过/打回 → 熟手导出打包 → 人工发/给达人
|
||||
```
|
||||
- 飞轮全程隐形记录(挑文案+3/挑图+3/通过+5/打回-3/重生成-1)
|
||||
|
||||
## 5. 全流程5环节定义
|
||||
①产品配置(管理员录) ②生成文案(轨A一次5角度/轨B导入外部) ③生成图(gpt-image-2主+edits+分镜) ④裂变(1爆款→N笔记包) ⑤存档打包(达人素材交付包) ; 飞轮贯穿②③④
|
||||
|
||||
## 6. 关键产品决策(引用,不展开)
|
||||
- 见架构方案§二决策表 + CLAUDE.md:gpt-image-2主/token-url收口/MVP免费/飞轮即用即启/违禁词三级/数据归属分层/质量过关才验收
|
||||
|
||||
## 7. 验收线(总·分三道)
|
||||
1. **内部验收**(我们):一期1A生产链跑通(熟手独立从配置→生成→选择→组长审→下载能发的素材包) + 1B飞轮四点验收(events写入/聚合返片段/下次prompt含片段/UI显示已注入)
|
||||
2. **北哥验收**:质量过关(不是能下载就算完,北哥认可内容质量)
|
||||
3. **上线**:北哥验收通过 → 上线
|
||||
- 🔴 质量标准/优化prompt 由北哥方案注入,架构留可调位
|
||||
|
||||
## 8. 名词表
|
||||
- 达人素材交付包:按笔记分文件夹+图01/02命名+文案.txt+发布清单+合规说明,人工发
|
||||
- 偏好飞轮:隐形记录用户选择,越用越懂,三层继承(L1品牌>L2人设二期>L3个人)
|
||||
- storyboard分镜:一套图N张各担叙事角色(钩子/痛点/证明/质感/背书/转化)
|
||||
- 爆款参考度:裂变时学爆款的强弱(低30/中/高85防抄袭)
|
||||
- 双轨:轨A自家AI生成/轨B导入豆包等外部文案
|
||||
|
||||
## 9. 里程碑(MVP切片·引用架构方案§五)
|
||||
| 期 | 范围 | 验收 |
|
||||
|----|------|------|
|
||||
| 一期1A | 生产链闭环(配置/文案双轨/生图去水印/选择/审核/打包) | 熟手独立跑通下载能发素材包 |
|
||||
| 一期1B | 飞轮闭环(三信号入口/实时聚合/注入prompt) | 飞轮四点全过 |
|
||||
| 二期 | 多团队对外(手机注册/矩阵号L2/偏好物化/管理后台) | 留口子已在地基 |
|
||||
| 三期 | 效果回流+AI审核员(蒸馏组长标准接班) | 看业务 |
|
||||
- 🔴 切法:先证明能产出(1A)→再证明会学习(1B)→再对外(二期)→再智能(三期)
|
||||
- 一期不做但建表:matrix_accounts/preference_profile
|
||||
106
PRD/PRD-前端.md
Normal file
106
PRD/PRD-前端.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Clover PRD-前端(界面名:龙石小红书内容生产平台)
|
||||
|
||||
> 前端技术框架。**承接层**:5屏画面金标准见 `../../前端交互设计.md`(经倩倩姐确认),视觉见 `../../前端设计参考图.png`。本文①承接5屏②补工程细节③对接后端契约——**唯一冻结源 = `../启动包/API契约.md`**(端点§1 / SSE事件§2 / 错误码§0),不看 PRD-后端。
|
||||
> 技术栈:Next.js+React+TS+Tailwind+Zustand(范式扒banana/frontend,全新重建)。PC优先,最小宽度1280px,不做移动端。
|
||||
> 🔴 红线(CLAUDE.md):不展示Token余额/不做积分页/key只录不显余额。
|
||||
|
||||
## 0. 一句话定位
|
||||
前端就是"挑挑挑":挑文案(出N条选若干)→挑图(出N张选若干,N=用户设定,图最多8)→组长挑过不过。飞轮全程隐形记录。
|
||||
|
||||
## 1. 三角色 + 路由表
|
||||
| 角色 | 默认首页 | 能进的页 |
|
||||
|------|---------|---------|
|
||||
| 熟手(运营) | /tasks/new | 开任务/挑文案/挑图/确认预览/历史 |
|
||||
| 组长 | /review | 审核台/历史 |
|
||||
| 管理员(北哥/老板) | /config | 配置台(产品/标杆/成员/违禁词)+全部 |
|
||||
|
||||
路由表:
|
||||
- /login(登录+首登key引导) / /dashboard(工作台) / /tasks/new(开任务)
|
||||
- /tasks/[id]/text(挑文案) / /images(挑图) / /confirm(确认预览·熟手提审前)
|
||||
- /review(组长审核台) / /history(历史归档) / /config(配置台·管理员)
|
||||
- 🔴 角色路由守卫:/review只组长+管理员;/config只管理员;越权重定向工作台
|
||||
|
||||
## 2. 全局布局(对齐设计图)
|
||||
- 顶部:标题"龙石小红书内容生产平台"+右上角当前用户(运营-小李)
|
||||
- 5步流程条(1开新任务/2选择文案/3选择图片/4确认文案/5成片发布)——熟手常驻;组长/管理员登录后不走此条(各进自己首页)
|
||||
- 左侧8项导航(工作台/开新任务/选择文案/选择图片/建立任务/任务列表/历史归档/配置中心)
|
||||
- 主区 + 右侧配置预览面板
|
||||
- 🔴 底部原Token余额位置(设计图568320)→**移除**,替换为版本号/留白小草装饰
|
||||
- 视觉:暖橙/奶油色+绿色小草
|
||||
|
||||
## 3. 五屏详述(承接前端交互设计.md)
|
||||
|
||||
### 屏1 配置台(管理员·/config)
|
||||
- 产品库:素颜霜/面膜/精华卡片+[加产品](品类不写死,客户自助加)
|
||||
- 每产品配:卖点/品牌词/违禁词(三级可调)/固定标签/风格调性/可调prompt/参考图
|
||||
- **标杆笔记管理**(一期主通道=截图上传+手填亮点;列表展示;关联产品)
|
||||
- 成员管理(workspace邀请/角色分配) ; key录入(各人自录,只录不显余额)
|
||||
- → 飞轮的"出厂设置",配一次天天用
|
||||
|
||||
### 屏2 开新任务(熟手·/tasks/new·设计图主表单)
|
||||
- 选产品[素颜霜▾] + **今天主题输入框**(如"黄皮提亮·早八伪素颜",驱动当次方向,关键字段勿漏)
|
||||
- 单条数量/生成数量(可+/-,数量不写死) + 生成方向
|
||||
- 双轨入口:轨A[开始批量生成文案] / 轨B[导入外部文案](粘贴豆包等)
|
||||
- 右侧配置预览面板:产品名称/卖点/成分/质地/标签/参考图3张 + [编辑配置](点击→侧滑面板原地编辑,改完实时刷新预览)
|
||||
- **生成前显示"本次已注入:最近偏好X/打回原因Y"**(调GET /preference/context,基石E④)
|
||||
- 底部"最近任务"横向卡(4个,任务名+状态+进度条)
|
||||
|
||||
### 屏3 挑文案(熟手·/tasks/[id]/text·飞轮第1次学)
|
||||
- 生成N条文案卡(可多选),每卡:标题+正文+标签+**五维分数**(标题/情绪/买点/关键词/合规,展示分数条+总分,数据来自后端scoreCopy)
|
||||
- 轨B导入的文案标注来源区分(source=import角标)
|
||||
- 选中触发飞轮+3(隐形,无"训练AI"按钮) ; [用这N条去生图→]
|
||||
|
||||
### 屏4 挑图+出成品(熟手·/tasks/[id]/images·飞轮第2次学)
|
||||
- N批图缩略图(可多选) ; 选中触发飞轮+3
|
||||
- 选中图+文案→自动套版预览(封面+内页拼成笔记长相)
|
||||
- [满意,交组长审→]
|
||||
|
||||
### 屏4.5 确认预览(熟手提审前·/tasks/[id]/confirm)
|
||||
- 熟手提审前最后预览整套笔记 ; [提交审核] ; [重新生成](飞轮-1)
|
||||
- ⚠️ 注意:通过/打回是组长动作,不在此页(修正骨架视角错位)
|
||||
|
||||
### 屏5 组长审核台(组长·/review·飞轮最强信号)
|
||||
- 待审笔记列表(N):每条[预览]+[✓通过]+[✗打回+原因]
|
||||
- 通过+5(权重最高,飞轮最强对信号) ; 打回必填原因(下次自动注入prompt提醒AI别再犯,-3)
|
||||
- 打回原因输入:模态框,必填校验
|
||||
- 通过→进成品库(熟手可去屏导出打包) ; 打回→任务回pending_selection
|
||||
- 导出后人工去小红书/给达人发(工具到此为止,诚实边界:小红书无接口不自动发)
|
||||
|
||||
## 4. 异步生图电影 + 飞轮隐形 + 错误态
|
||||
|
||||
### 4.1 异步生图进度(承接交互设计.md §2·体验核心)
|
||||
对接后端SSE事件(契约§2):
|
||||
- 点生图→不空白干等:显"正在生成N批…0/N [进度条] 预计30-60秒,可先去忙别的好了提醒"
|
||||
- 并发跑,**谁好谁先冒**(好一批亮一批,对接 image_candidate 事件,每个带 event_seq) ; "3/N"实时计数
|
||||
- 单批失败标红+[⟳重试](不拖垮其他批) ; "完成9/10,这9批够挑了[继续→]"(不强求全齐)
|
||||
- 🔴 铁律:老demo"点完干等18分钟转圈到崩"绝不能再有
|
||||
|
||||
### 4.2 飞轮隐形运转(交互设计.md §3)
|
||||
- 前端**无任何"训练AI/打分"按钮**(会吓到运营),只如实把动作记给后端(带谁+哪账号)
|
||||
- 三动作埋点:屏3勾文案+3 / 屏4勾图+3 / 屏5通过+5打回-3 / 屏4.5重生成-1
|
||||
- "变聪明"在后端,前端只管操作顺滑+显示"本次已注入"
|
||||
|
||||
### 4.3 错误态UI(对接契约§0 数字错误码,前端按 code 映射语义,**不硬编码字符串码**)
|
||||
| code | 语义 | 前端响应(非统一toast) |
|
||||
|------|------|----------------------|
|
||||
| 42201 | 业务校验失败(未配key/违禁词硬拦截) | 未配key→引导配key页/banner按钮置灰(首登强制引导);违禁词→显示触发词+级别,提交前后立即提示 |
|
||||
| 50002 | AI/token站调用失败 | "生图通道繁忙"特殊提示(区别普通错误)+[重试] |
|
||||
| 50001 | 服务端错误 | "生成失败"+[重试]按钮 |
|
||||
| 40901 | 状态机非法流转 | 提示当前状态不可操作,刷新看最新态 |
|
||||
| 40301 | 越权访问 workspace | "无权访问"提示,跳回工作区列表 |
|
||||
| 40101 | 未认证/JWT失效 | 自动触发token刷新(扒banana已实现),失败则跳登录 |
|
||||
| 40001 | 参数校验失败 | 表单字段级红字提示 |
|
||||
|
||||
> 前端维护一份 `errorCodeMap`(code→{文案,处理动作})常量,所有错误统一查表,违禁词/限速等细分信息从 `message` 字段读。
|
||||
- 真实状况兜底(交互设计.md §4):关页面回来任务还在(后端有状态不靠前端内存)/多人各看各的
|
||||
|
||||
## 5. 工程细节
|
||||
- 状态管理4Store(参banana):authStore(user/workspace_id/role/token) / taskStore(任务id/状态/已选文案图id) / generationStore(SSE进度/各图状态/已完成N) / preferenceStore(本次注入偏好摘要)
|
||||
- SSE客户端(扒banana sse.ts,5次重连退避)+断线重连UI("连接断开重连中1/5…"+"重连失败任务后台仍在,可刷新")
|
||||
- 组件库:流程条/文案卡(带五维分)/分镜图卡/配置预览面板/交付包预览/飞轮注入提示横幅/打回原因模态框/单图进度卡/审核操作栏。🔴 删除"Token余额组件"
|
||||
- 骨架屏:文案卡/图卡/审核队列loading ; 表单校验:产品必选/主题字数限/数量范围
|
||||
- API客户端(扒banana api.ts含token刷新) ; AuthGuard+角色守卫(扒banana)
|
||||
- 可扒banana前端零件:authStore范式/api.ts/sse.ts/AuthGuard/NextUI组件;表单字段全重建(Clover字段不同)
|
||||
|
||||
## 6. ❌不做(CLAUDE.md红线)
|
||||
- Token余额/用量展示(去中转站后台看) / 积分中心billing页 / 移动端适配
|
||||
114
PRD/PRD-后端.md
Normal file
114
PRD/PRD-后端.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Clover PRD-后端
|
||||
|
||||
> 后端技术框架。**本文是"承接层"**:架构决策见 `../Clover架构方案.md`(v0.3,金标准),本文只做①引用架构决策②补PRD独有工程细节③承接扒包上线版新事实。
|
||||
> 技术栈:FastAPI + Celery + MySQL + MongoDB + Redis(栈范式扒自banana,全新重建)
|
||||
> 🔴 源码只读复制:扒**上线版** `万牛会L1准备/worker/src`(非旧版产品包) + banana。
|
||||
|
||||
## 0. 怎么读这份PRD
|
||||
- 数据模型16表/基石ABCDEF/三期构建顺序/复用复活新造清单 → **见架构方案 §三/§〇.5/§五/§四**,本文不复制。
|
||||
- 本文重点:第3章API契约细节、第9章环境变量、第10章工程规范(这些架构方案没细化)。
|
||||
- 与架构方案冲突时:**以架构方案v0.3 + CLAUDE.md为准**。
|
||||
|
||||
## 1. 后端架构总览
|
||||
- 分层:API层 / Service层(AI引擎) / Model层(双库) / 队列层(Celery+SSE) —— 详见架构方案§一
|
||||
- AIProvider抽象层(扒banana):**gpt-image-2主/Gemini备**,由环境变量 IMAGE_PROVIDER_PRIMARY 配置(不写死)
|
||||
- 🔴 三条铁律入口(详见架构方案§〇.5):A业务参数不写死 / B key不进Celery+Fernet加密 / C workspace逻辑隔离
|
||||
|
||||
## 2. 数据模型
|
||||
- **完整16表清单+字段+Alembic001-004分批 → 见架构方案§三**,本文不重抄。
|
||||
- 🔴 PRD骨架旧表名修正(以架构方案为准):
|
||||
- api_keys→**user_api_keys**(UNIQUE user_id+workspace_id+provider)
|
||||
- tasks→**generation_tasks**(审核字段平铺:review_status/reviewer_id/reviewed_at/reject_reason/approved_at/archived_at)
|
||||
- 无assets表→实为 **text_candidates + image_candidates**(text_candidates有source=ai/import区分双轨)
|
||||
- 补 **login_records**(扒banana) / 补 **ai_call_logs**(usage记录,按key计费排障基础,一期必做)
|
||||
- data_ownership是**preference_events的字段**(client_data/platform_asset),不是独立表
|
||||
- 任务状态机7态:pending→generating→pending_selection→pending_review→approved/rejected→archived(打回回pending_selection)
|
||||
- MongoDB**只存AI debug trace**(业务不依赖);可调prompt在 products 表字段,**不在Mongo**
|
||||
- 关键索引(架构没列,PRD补):generation_tasks(workspace_id,status) / preference_events(workspace_id,product_id,created_at)
|
||||
|
||||
## 3. API 契约 → 唯一冻结源:`启动包/API契约.md`
|
||||
|
||||
> ⚠️ 契约统一:本 PRD **不再另写一套契约**。端点/响应包络/错误码/SSE事件/分页,
|
||||
> 全部以 `Clover/启动包/API契约.md` 为唯一冻结源(避免前后端分叉,外部AI审核P0-1/2/8)。
|
||||
> 开工首步:Lead 据 API契约.md 生成并冻结 `Clover/contracts/openapi.yaml`("契约优先"落地,非口号)。
|
||||
|
||||
本 PRD 第3章只补**契约文档未覆盖的后端实现约定**(不重复端点定义):
|
||||
- 任务软删用标记位不物理删;DELETE /tasks/{id} 走 archived 态。
|
||||
- 限流:同用户并发生成任务数上限(建议2,可配);生图每张~4min 异步不占连接。
|
||||
- SSE token 走 header(Authorization),不走 query(对齐契约,纠 banana 旧法)。
|
||||
- preference 写入**不暴露独立埋点端点**:选择/审核业务接口内部写 events,前端只调业务动作(外部AI审核P1-14)。
|
||||
- preference 读:GET /preference/context 已列入 API契约端点清单(外部AI审核P2-13)。
|
||||
|
||||
## 4. AI 引擎(扒上线版 worker/src 重写Python·核心)
|
||||
> 算法逻辑整体扒上线版copy.js/image.js/split.js重写为Python,逻辑照搬防走样(TDD对照)。
|
||||
|
||||
### 4.1 文案引擎(扒copy.js上线版)
|
||||
- **轨A**:一次调强模型返**N角度JSON**(N=用户设定text_count,不串行不并发,新造generate_text_variants)——这是去同质化关键,勿照抄旧版单条循环。数量不写死(基石A)。
|
||||
- **轨B**:导入外部文案(豆包等)直接进候选池跳过AI(text_import_handler,text_candidates.source=import,洞2)
|
||||
- 保留(扒上线版重写Python集成进轨A):三层兜底Claude→Gemini→本地 / 五维打分90过线 / 自动优化循环 / **正文+开头去重(splitPublishableContent/contentSignature)** / **角度槽位(angleSlotsForCategory,作可迁移数据非代码常量)** / 内部提示剥离(content只放可发布正文)
|
||||
- 可调prompt:products表字段,北哥可配(等北哥优质样本+判断标准注入,质量责任在北哥侧)
|
||||
|
||||
### 4.2 生图引擎(扒image.js上线版+改造)
|
||||
- 扒保留:storyboard 10角色分镜 / getNarrativeRoles(3/6/8张链路) / 6品类proofStrategy / 素材路由 / buildVisualSystem成组视觉
|
||||
- 🔴 生图通道(扒上线版已成熟,直接用):
|
||||
- 主备由 IMAGE_PROVIDER_PRIMARY=gpt/FALLBACK=gemini 配置(imageProviderOrder)
|
||||
- GPT走 **edits带产品参考图**(requestGptImageWithReferences),**禁纯文生图防跑偏**(无产品图报错)
|
||||
- 产品图=**不可修改商品锚点**,禁改包装/换产品/混历史产品(防串货)
|
||||
- 🔴 补(上线版仍缺):**生图通道加重试退避**(gpt-image-2实测502,baseline验证必要)
|
||||
- 🔴 一期执行模型(纠正混淆,外部AI审核P0-3/4):
|
||||
- **一期只做 storyboard 分镜图**:一篇笔记出 N 张叙事图(N=用户设定image_count,默认3,**合法1-8**,对齐worker getNarrativeRoles 3/6/8档链路,**不是固定10选3**)
|
||||
- 每张 storyboard 图走 provider 主备(gpt edits→gemini fallback) + 重试退避
|
||||
- **A/B/C 三策略不在一期主链路**:A/B/C 是"同一目标图的三种改图策略",留给二期的"单图重生成/改图"功能,不与 storyboard 分镜混跑(否则任务数×UI 爆)
|
||||
- getNarrativeRoles 角色框架(hook/pain_scene/applied_proof/texture/scenario/tutorial/social_proof/closer)是可迁移数据,按 image_count 取前 N 个角色
|
||||
|
||||
### 4.3 裂变引擎(扒split.js上线版)
|
||||
- 1爆款→N完整笔记包(标题+正文+标签+imagePlan分镜+维度+人群+场景+痛点)
|
||||
- 爆款参考度调节(低30/中/高85防抄袭) ; generateImages=true串生图
|
||||
- _combine_benchmarks:1-5篇标杆合并成综合reference(新造)
|
||||
|
||||
### 4.4 去水印(image_postprocessor·新造·洞3)
|
||||
- 🔴 主方案=**重编码去C2PA元数据+转JPG+轻重采样削像素水印+压缩**(Pillow,对客户透明);保留可视质量,**C2PA元数据可去除,私有像素水印只能削弱不保证100%清除**(诚实表述,外部AI审核P1-9)
|
||||
- 备选=banana remove_watermark(Gemini重绘)——⚠️对海报中文大字有改字风险,仅特殊场景用,非主通道
|
||||
- eval_score:**一期留NULL**,不接banana假评分(88分污染飞轮),等组长标准蒸馏真评分(三期)
|
||||
|
||||
## 5. 异步队列(扒banana骨架)
|
||||
- Celery任务:生图异步(每张~4min) / **只传task_id绝不传key(基石B)** / worker内查库取encrypted_key→FERNET_KEY解密→局部变量,不落盘不打日志
|
||||
- gemini_factory:每任务用自己key构建实例(新造,解决全局单例)
|
||||
- 失败处理:Celery task失败→更新任务状态→SSE推task_failed(带code) ; 生图502重试退避
|
||||
- SSE:Redis Pub/Sub推进度(扒banana event_bus)
|
||||
|
||||
## 6. 多租户与安全(基石BC,扒banana JWT)
|
||||
- JWT HS256每请求验签,放user_id/workspace_id/role加速字段
|
||||
- 🔴 读写分层(基石C,外部AI审核P1-7细化):
|
||||
- **写操作+切workspace**:必须查 workspace_members 校验权限
|
||||
- **列表读**:用 JWT 的 current_workspace_id 过滤即可(加速)
|
||||
- **单资源读**(任务详情/候选详情/下载包):仍须校验 resource.workspace_id == current_workspace_id,不能笼统信JWT(防越权读他人资源)
|
||||
- base_workspace_repo:所有workspace相关Repo继承,强制带workspace_id过滤(新造,防串数据)
|
||||
- workspace_guard中间件:FastAPI依赖注入,所有业务接口强制注入workspace_id
|
||||
- token-url收口:统一自家中转站endpoint;**账号表只存encrypted_key不存url字段**(旧"兼容任意url"已废止)
|
||||
- 上传安全(扒banana):magic number校验+扩展名白名单+路径穿越防护
|
||||
|
||||
## 7. 存档打包(package_exporter·新造·洞6)
|
||||
- 达人素材交付包:按笔记分文件夹+图(01/02/03命名防错序)+文案.txt(标题+正文+标签)+📋发布清单.txt+✅合规说明.txt(违禁词已过/已去水印)
|
||||
- delivery_packages表:status(pending/ready/downloaded)/package_path
|
||||
- 数据可导出(归客户,client_data) ; 飞轮偏好归平台(platform_asset)
|
||||
|
||||
## 8. 偏好飞轮(新造·灵魂·开放测试即启动)
|
||||
- 三信号入口(preference_collector写events):选文案+3/选图+3/通过+5/打回-3/重生成-1(初始默认权重,北哥可校准)
|
||||
- 实时聚合(preference_aggregator):查最近50条→最常选角度+打回原因近3条原文拼进prompt;不足5条用产品档案冷启动
|
||||
- 三层继承:L1品牌基线>L2人设(二期)>L3个人手感;⚠️按产品维度分开学(素颜霜不串精华)
|
||||
- 🔴 飞轮MVP验收四点(基石E,全过才达标):events正确写入✓ / aggregator返回明确prompt片段✓ / 下次prompt trace含该片段✓ / UI显示"本次已注入:最近偏好/打回原因"✓
|
||||
|
||||
## 9. 配置与环境(架构没列,PRD补)
|
||||
- 环境变量完整清单(必填项启动时校验,缺失则启动失败报错不静默):
|
||||
- FERNET_KEY(必填,key解密,绝不进代码库) / JWT_SECRET(必填≥32字符) / DATABASE_URL / MONGO_URI / REDIS_URL
|
||||
- IMAGE_PROVIDER_PRIMARY=gpt / IMAGE_PROVIDER_FALLBACK=gemini / IMAGE_API_BASE(自家中转站url) / IMAGE_MODEL=gpt-image-2
|
||||
- CLAUDE_API_URL / GEMINI_API_URL(都收口自家站)
|
||||
- 6容器Docker Compose(扒banana,调环境变量名) ; 文件存储:交付包路径规则uploads/packages/{workspace}/{task}/
|
||||
|
||||
## 10. 工程规范与可观测
|
||||
- 健康检查 GET /health(Docker健康检查用)
|
||||
- Alembic迁移:001-004按序;回滚策略;FERNET_KEY缺失启动保护
|
||||
- 可观测:每次AI调用记ai_call_logs(谁/多少token,失败归因到个人key) ; MongoDB存调用trace排障
|
||||
- 错误处理:统一错误码(§3.2) ; Celery失败SSE推送
|
||||
|
||||
34
PRD/前端PRD交叉审核报告.md
Normal file
34
PRD/前端PRD交叉审核报告.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# 前端PRD交叉审核报告(2026-06-05)
|
||||
|
||||
> 审核方式:agent对照 设计图 + 前端交互设计.md(5屏金标准) + 架构方案三角色旅程 + 后端PRD契约 + banana前端范式,逐条核对前端PRD骨架。
|
||||
> 重大发现:**已有 `前端交互设计.md` 是经倩倩姐确认的5屏金标准**(配置台/开任务/挑文案/挑图/组长审核+异步生图电影+飞轮隐形+6真实状况),前端PRD骨架没承接它→这是骨架"看不懂"的根因。铁律:好的保留,这份5屏设计原样吃进PRD。
|
||||
|
||||
## 审出问题(11遗漏+4不一致+工程空白)
|
||||
|
||||
### 🔴 重大遗漏
|
||||
1. **组长审核台**整体缺失(屏5):审核队列/预览/通过+5/打回写原因(飞轮最强信号)/审后跳转。三角色只画了熟手
|
||||
2. **"今天主题"输入框**漏了(设计图屏2关键字段):驱动当次文案方向,缺了=无方向生成
|
||||
3. **文案双轨轨B**前端入口缺(导入豆包等外部文案/source=import的UI区分)
|
||||
4. **飞轮"本次已注入偏好"提示UI**缺(基石E验收点④,后端专开GET /preference/context供它调)
|
||||
5. **SSE逐图进度电影**只一行(交互设计.md §2:N/10计数+好一批亮一批+单批失败标红重试+能离开降焦虑)
|
||||
6. **配置预览面板"编辑配置"入口**交互未描述(跳转/侧滑/模态?)
|
||||
7. **错误态UI**只"toast"一笔带过(后端7错误码各不同:KEY_NOT_CONFIGURED=引导配key页/BANNED_WORD=显违禁词级别/502重试等)
|
||||
8. **管理员配置台**缺(屏1:产品档案/标杆/成员/违禁词CRUD)
|
||||
9. **标杆笔记管理界面**缺(一期主通道=截图上传+手填亮点)
|
||||
10. **"最近任务"底部区**缺(设计图底部4个进度条卡)
|
||||
11. **五维评分**没说哪五维/怎么展示(数字/雷达/进度条)/数据来自哪字段
|
||||
|
||||
### 🟡 不一致
|
||||
- C1:设计图有Token余额568320,PRD已正确标"不展示",但没说底部位置替换成什么
|
||||
- C2:第6章组件库还残留"Token余额组件"(与3bis矛盾,删)
|
||||
- C3:3.6"确认文案"混淆熟手/组长视角(通过打回是组长在独立审核台做,不是熟手确认页)
|
||||
- C4:5步流程条对组长/管理员是否隐藏未说(组长主界面是审核队列不走1→5)
|
||||
|
||||
### 🟢 工程空白(建议补)
|
||||
状态管理4Store(auth/task/generation/preference)/路由表/SSE断线重连UI/骨架屏/表单校验/响应式断点(建议最小1280px PC优先)/角色路由守卫(/review只组长管理员)/首登key引导流
|
||||
|
||||
## 🟦 CC处理判断
|
||||
- 铁律好的保留:**前端交互设计.md的5屏设计原样吃进PRD**,不重新发明
|
||||
- 设计图(5步流程条)与交互设计.md(5屏)合并:开新任务/选文案/选图/确认预览(熟手提审前)/组长审核台;配置台进左侧导航
|
||||
- 前端PRD同样做承接层:引用交互设计.md的5屏画面+设计图视觉,补工程细节(路由/Store/错误态/角色守卫)+对接后端契约(SSE事件/错误码)
|
||||
- 优先级:组长审核台/错误态UI/飞轮注入提示 三项直接卡飞轮和生产链验收
|
||||
42
PRD/后端PRD交叉审核报告.md
Normal file
42
PRD/后端PRD交叉审核报告.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 后端PRD交叉审核报告(2026-06-05)
|
||||
|
||||
> 审核方式:agent对照架构方案v0.3 + CLAUDE.md + 7洞落盘 + 扒包(上线版) 逐条核对后端PRD骨架完整性。
|
||||
> 结论:后端PRD骨架"只提到名词,没承接细节",架构方案v0.3里拍过板的细节几乎都没落进PRD——这是倩倩姐"看不懂"的根因。
|
||||
|
||||
## 审出的问题(18遗漏+5不一致+10工程空白)
|
||||
|
||||
### 🔴 重大遗漏(架构v0.3拍了板但PRD没承接)
|
||||
1. 基石A 业务参数不写死(品类/数量/角度) 无落点
|
||||
2. 基石B key机制不完整(缺FERNET_KEY环境变量/gemini_factory每任务建实例/解密不落盘)
|
||||
3. 基石C 读写权限分层(写操作查workspace_members)+base_workspace_repo中间件 缺失
|
||||
4. 基石D 采集↔生产接缝(人工判断标准落点) 完全没有
|
||||
5. 基石E 飞轮四点验收 没列
|
||||
6. 16表精确清单+Alembic001-004分批 缺(且PRD表名错:api_keys应为user_api_keys/tasks应为generation_tasks/无assets表应为text+image_candidates/无login_records/无ai_call_logs)
|
||||
7. 任务状态机7态(pending→generating→pending_selection→pending_review→approved/rejected→archived) 缺
|
||||
8. generation_tasks审核字段平铺(6字段,不建独立notes表) 缺
|
||||
9. preference_events字段(signal_type5枚举/weight/angle_label/reason/data_ownership/workspace_id+product_id) 缺
|
||||
10. 文案轨A"一次出5角度JSON"规格 缺(易被agent照抄产品包单条串行)
|
||||
11. 文案轨B(导入外部文案text_import_handler+source字段) 完全缺
|
||||
12. storyboard分镜与A/B/C并发两套生图逻辑如何整合 没说清
|
||||
13. IMAGE_PROVIDER_PRIMARY环境变量配主备+禁纯文生图+产品锚点防串货 缺
|
||||
14. 三期构建顺序1A/1B/二期/三期+一期不做项 缺
|
||||
15. eval_score留NULL不接banana假评分 缺
|
||||
16. 标杆采集通道分层(截图手填主/登录态插件内部) 缺
|
||||
17. ai_call_logs(usage记录,按key计费排障基础) 缺
|
||||
18. MongoDB只存debug trace(业务不依赖)边界 缺(PRD误把prompt_template放Mongo,实际可调prompt在products表)
|
||||
|
||||
### 🟡 不一致
|
||||
- C1: PRD把data_ownership列成独立表,实际是preference_events的字段
|
||||
- C2: 生图把产品包10角色/6品类 和 edits新接口 混在一起没说整合
|
||||
- C3: 去水印主次反了(主=re-encode/Pillow,banana重绘是可选且海报有改字风险)
|
||||
- C4: 三层兜底/五维打分要标明"扒产品包重写Python集成进轨A"
|
||||
- C5: token-url收口缺反面约束(账号表不存url字段/旧兼容废止)
|
||||
|
||||
### 🟢 所有来源都没细化、PRD该补的工程细节
|
||||
错误码规范/SSE事件类型清单/分页规范/限流(生图4min)/文件存储路径/DB索引/Alembic回滚+FERNET_KEY缺失启动保护/健康检查/环境变量完整清单/workspace_guard注入时机
|
||||
|
||||
## 🟦 CC的处理判断(不照搬agent建议)
|
||||
- agent建议把后端PRD扩成14章、把架构方案§四§五原文照搬进PRD → **不采纳全照搬**
|
||||
- 理由:架构方案v0.3已是金标准,PRD原文复制=两份打架+维护噩梦
|
||||
- **正确做法:后端PRD做成"承接层"——①引用架构方案(不复制)②重点补PRD独有的工程细节(§四绿色那10项:错误码/SSE/分页/限流/索引/环境变量等)③把扒包上线版的生图新事实写进去**
|
||||
- 数据模型这种基础:PRD用"引用架构方案§三 + 标注扒包修正点"方式,不重抄16表
|
||||
Reference in New Issue
Block a user