174 lines
10 KiB
Markdown
174 lines
10 KiB
Markdown
# EveryPublish PRD 产品需求文档
|
||
|
||
> 版本 v1.0 · 2026-08-20 · 状态:待评审 · 技术栈以 docs/tech-stack.md 为准
|
||
|
||
## 1. 文档信息与文档体系
|
||
|
||
### 1.1 版本记录
|
||
|
||
| 版本 | 日期 | 说明 |
|
||
|---|---|---|
|
||
| v1.0 | 2026-08-20 | 初稿,覆盖一期 MVP 全部功能需求 |
|
||
|
||
### 1.2 文档体系位置(PRD 与其他文档的关系)
|
||
|
||
| 层级 | 文档 | 回答的问题 | 本项目对应 |
|
||
|---|---|---|---|
|
||
| 商业/市场 | MRD / BRD | 为什么做、市场与商业 | 并入本文档 §2,暂不单列 |
|
||
| **产品需求** | **PRD(本文档)** | **做什么、给谁用、什么体验** | docs/prd.md |
|
||
| 技术需求/规格 | TRD / SRS | 怎么做、接口与协议 | docs/system-design.md + docs/tech-stack.md |
|
||
| 流程与进度 | 逻辑图 / 排期 | 流程怎么走、何时交付 | docs/logic-diagrams.md + docs/delivery-plan.md |
|
||
|
||
> 注:SPDC / MDC 非行业标准缩写。若指「技术方案类」(SPDC≈方案/规格)与「模块开发上下文」(MDC≈模块设计),在本文档体系中分别由 system-design/tech-stack 与 logic-diagrams 承接;待确认团队定义后对齐(见 §12 开放问题)。
|
||
|
||
## 2. 产品概述
|
||
|
||
### 2.1 背景与问题(痛点)
|
||
|
||
- 企业通常只有一个官方账号、多名运营协作;现有开源发布工具均为「单人本地扫码发布」,多人共用账号混乱、无审核、无审计。
|
||
- 国内平台(抖音/快手/小红书/视频号)无公开内容发布 API,只能浏览器自动化;IP 风控要求国内账号用国内 IP、国外账号用国外 IP。
|
||
- 客户诉求:越简单越好、发布越快、账号越稳、覆盖全部平台、不违反平台官方规则。
|
||
|
||
### 2.2 产品定位(一句话)
|
||
|
||
**企业多平台官方账号的发布中台:网页控制台协作、审核、排期,客户端单点持号、自动发布。**
|
||
|
||
### 2.3 目标用户
|
||
|
||
| 用户 | 场景 | 优先级 |
|
||
|---|---|---|
|
||
| 企业新媒体运营团队 | 单官方账号 + 多运营协作,需审核与审计 | 主 |
|
||
| 代运营 / MCN | 多客户多账号,需隔离与批量 | 次 |
|
||
| 单人创作者 | 自用简化版(隐藏审核流) | 次 |
|
||
|
||
### 2.4 核心价值主张
|
||
|
||
- **简单**:装客户端 → 扫码绑定 → 网页排期,三步上手,零配置。
|
||
- **快**:任务下发 <300ms,多平台并行发布,失败一键重试。
|
||
- **稳**:凭据单机加密持有,设备+IP+行为三固定,账号风控最小化。
|
||
- **覆盖**:一期国内四平台(抖音/快手/小红书/B站),二期视频号+国际平台官方 API 通道。
|
||
- **合规**:官方 API 优先;自动化通道分级开通、知情告知;明确不做矩阵养号等灰产。
|
||
|
||
### 2.5 职责边界(网站 vs 客户端,两类账号)
|
||
|
||
**一句话**:网站 = 任务分配中枢 + 状态看板;客户端 = 持号 + 登录鉴权 + 发布执行。发布流量永不经过网站服务器。
|
||
|
||
| 账号类型 | 谁负责登录鉴权 | 网站/服务器的角色 |
|
||
|---|---|---|
|
||
| 控制台用户账号(运营/管理员登录后台,如 demo@everypublish.io) | 网站(注册/登录/JWT) | 管理面板本体,分配任务的人 |
|
||
| 平台账号(抖音/快手/小红书/B站/视频号/海外,即发布目标账号) | 客户端 Agent(扫码/验证/本机保存凭据) | 只下发任务 + 接收状态,**零凭据** |
|
||
|
||
- 网站对平台账号**不负责登录鉴权**,只做两件事:**下发/分配发布任务**(<1KB 元数据经 WSS 推给客户端)与**接收执行状态回传**。
|
||
- 平台账号的登录、扫码验证、凭据保存、实际发布全部在客户端(客户自己的电脑)完成;服务器账号表只存 `平台 / 备注 / 状态 / 绑定设备` 等元数据,**不含任何 cookie / 密码 / token**。
|
||
- 绑定流程示例:网站生成「挑战」记录并推给客户端 → 客户端拉起扫码 → 客户端回传「已解决」→ 网站把账号标记为「已绑定」。网站全程不接触、不存储平台凭据。
|
||
|
||
## 3. 范围
|
||
|
||
### 3.1 一期(MVP)
|
||
|
||
- 网页端全部功能:用户端(客户工作台)+ 平台端(admin 角色)。
|
||
- 客户端 Windows 版:安装配对、托盘常驻、扫码挑战、自动更新。
|
||
- 平台:抖音 / 快手 / 小红书 / B站(视频号二期)。
|
||
- 素材:服务器本地盘 + 签名直链下载。
|
||
- 2FA:能力预留,默认关闭。
|
||
|
||
### 3.2 二期(不在本期验收)
|
||
|
||
- 视频号、官方 API 通道(X/IG/YouTube/TikTok)、OSS 双桶与断点续传、托管 Agent、代理采购入口、数据报表增强、Windows 服务化(支持客户 VPS 形态)。
|
||
|
||
### 3.3 明确不做(红线)
|
||
|
||
- 矩阵养号、批量注册、搬运去重绕过、刷量、私信轰炸;违反平台规则的功能一律不做。
|
||
|
||
## 4. 用户角色与权限
|
||
|
||
| 角色 | 端 | 核心权限 |
|
||
|---|---|---|
|
||
| 管理员 | 网页端 | 成员/角色、账号台账、绑定/解绑、Agent 设备、审计、设置 |
|
||
| 审核员 | 网页端 | 审核通过/驳回、查看素材与任务 |
|
||
| 运营 | 网页端 | 素材上传、创建/排期/重试任务、查看结果 |
|
||
| 账号负责人(装机人) | 客户端 | 安装配对、扫码绑定、处理登录过期 |
|
||
| 平台 admin | 网页端 | 租户管理、Agent 总览、渠道状态(后置) |
|
||
|
||
## 5. 功能需求
|
||
|
||
> 优先级:P0 = 一期必须;P1 = 一期尽量;P2 = 二期。
|
||
|
||
### 5.1 网页端 · 用户端(客户工作台)
|
||
|
||
| 模块 | 功能 | 优先级 | 验收要点 |
|
||
|---|---|---|---|
|
||
| 认证与账户 | 账号密码登录、refresh 轮换、登出、登录设备管理;2FA 默认关 | P0 | 登录成功/登出后会话失效;refresh 自动续期 |
|
||
| 工作区与成员 | 成员邀请、角色分配、停用 | P0 | 角色权限隔离正确 |
|
||
| 账号台账 | 平台账号列表(绑定状态/健康度/代理/最后活跃)、发起绑定(生成扫码挑战)、重新扫码、解绑 | P0 | 绑定→扫码→台账变绿全流程 |
|
||
| 素材库 | 上传(multipart+进度)、列表/分组/标签、预览、删除 | P0 | 大文件上传成功;sha256 校验入库 |
|
||
| 发布任务 | 新建(选素材→平台账号→标题话题→定时/立即→提交审核)、任务列表(状态筛选)、排期日历、任务详情(事件时间线+回执截图+失败原因)、重试、取消 | P0 | 任务全生命周期流转正确 |
|
||
| 审核流 | 待审队列、分平台预览、通过/驳回+批注、可配置跳过 | P0 | 驳回回退草稿;跳过时直接排期 |
|
||
| 挑战中心 | QR 从 token 本地渲染、验证码输入、APP确认指引、超时挂起、一键重发 | P0 | 五类挑战均可人工完成 |
|
||
| 通知 | 站内通知(挑战/失败/登录过期)、已读 | P0 | 事件产生即推送 |
|
||
| 审计 | 全操作日志查询 | P0 | 谁在何时做了什么可查 |
|
||
| 设置 | 工作区资料、2FA 开关(默认关)、通知渠道(企微/钉钉/邮件)、Agent 设备列表与吊销 | P0/P1 | 设备吊销后客户端失联 |
|
||
|
||
### 5.2 网页端 · 平台端(admin)
|
||
|
||
| 模块 | 功能 | 优先级 | 验收要点 |
|
||
|---|---|---|---|
|
||
| 租户管理 | 客户列表、状态、配额(简单)、停用 | P0 | 停用后租户不可登录 |
|
||
| Agent 总览 | 设备列表:在线/版本/强制吊销/远程指令 | P0 | 在线状态实时 |
|
||
| 渠道状态 | 平台适配器状态、灰度开关 | P2 | — |
|
||
| 风控台账 | 风控事件、账号冷却记录 | P2 | — |
|
||
|
||
### 5.3 客户端(Windows)
|
||
|
||
| 模块 | 功能 | 优先级 | 验收要点 |
|
||
|---|---|---|---|
|
||
| 安装与配对 | 安装包、配对码绑定工作区、首次引导 | P0 | 新机 5 分钟内完成配对 |
|
||
| 托盘常驻 | 开机自启、最小化托盘、在线状态显示 | P0 | 重启后自动恢复连接 |
|
||
| 扫码与挑战 | QR 展示/自动刷新、验证码回填、APP确认轮询 | P0 | 与网页端挑战中心联动 |
|
||
| 任务执行 | 接收/幂等去重/执行/回传;浏览器档案与指纹 | P0 | 重复任务不重复执行 |
|
||
| 运维 | 本地日志、自动更新、连接诊断 | P0/P1 | 断线指数退避自愈 |
|
||
|
||
## 6. 关键流程(引用 docs/logic-diagrams.md)
|
||
|
||
- 账号绑定(图8 登录链路优化):API 取码 → 只传 token → 本地重渲染 → 短轮询检测。
|
||
- 发布全链路(图6):提交 → 审核 → 排期 → 下发 → 执行 → 回传 → 实时状态;异常分流(网络重试/挑战/风控冷却)。
|
||
- 二次验证兜底(图7):五类挑战人工兜底,超时挂起、一键重发。
|
||
- 重试状态机(图5):网络退避 1m/5m/15m/1h;登录态转挑战;风控转人工。
|
||
|
||
## 7. 非功能需求
|
||
|
||
| 类别 | 指标 |
|
||
|---|---|
|
||
| 性能 | 任务下发 <300ms;网页页面 P95 <2s;WSS 心跳 10s/离线判定 25s |
|
||
| 可靠性 | 断线重连 <10s 恢复;任务幂等(同任务不重复);挑战超时策略完整 |
|
||
| 安全 | 四层鉴权;凭据不出本机(服务器零凭据);日志脱敏;审计完整 |
|
||
| 易用性 | 三步上手;登录过期提醒+一键重扫;失败原因可见+一键重试 |
|
||
| 合规 | 自动化通道知情告知并签署;内容发布前自检提示;红线功能拒绝 |
|
||
| 可维护 | 协议版本化(zod/Go 侧校验);平台适配器独立可灰度 |
|
||
|
||
## 8. 数据需求(一期最小)
|
||
|
||
- 任务事件流(状态/时间/原因/截图);账号健康度(登录态预测过期);发布统计(成功数/失败原因分布);审计与通知记录。
|
||
|
||
## 9. 约束与依赖
|
||
|
||
- 平台风控与前端改版(最大持续风险);IP/代理采购(客户侧);Windows 10/11 环境;扫码需客户手机(微信/抖音等 APP)。
|
||
- 一期素材存服务器本地盘:需磁盘配额与清理策略。
|
||
|
||
## 10. 验收标准
|
||
|
||
见 docs/delivery-plan.md §7 最终验收清单(登录与权限 / 任务全生命周期 / <300ms 与幂等 / 挑战全流程 / 素材校验 / 四平台真实发布 / Windows 新机全流程 / 凭据不出本机 / 安装包与自动更新)。
|
||
|
||
## 11. 里程碑
|
||
|
||
见 docs/delivery-plan.md §6 日计划(D1-D13 + 缓冲):D1-D7 网站端,D8-D11 客户端,D12-D13 联调交付。
|
||
|
||
## 12. 开放问题(待评审确认)
|
||
|
||
1. SPDC / MDC 的确切定义——请提供全称,以对齐文档体系。
|
||
2. 定价与计费模式(订阅/按账号数/按平台数)。
|
||
3. 通知渠道一期范围(企微/钉钉/邮件是否全做)。
|
||
4. 代理采购入口是否一期内置(默认客户自带)。
|
||
5. 「手机版本」此前表述——指首版还是未来手机端 App,需确认。
|
||
6. 单人版是否一期提供(隐藏审核流)。
|