MedSeed · 医疗健康 AI 种草内容平台
MedSeed V2.0 · 产品需求文档
面向医疗健康机构的 AI 种草内容生成与分发 SaaS —— 规格、原型实现与对标修复
本文档为真实项目的脱敏版本:产品名与对标产品名均为代号,模块结构、字段规则、状态机、验收断言与实现记录均来自真实工作。第十一章起的实现截图已抹除产品标识;截图中的演示数据为通用业态(咖啡门店),医疗业态(医美 / 口腔 / 中医等)为行业配置项,见 5.1。
目录
- 产品定位与关键决策
- 角色与数据权限
- 信息架构
- 迭代范围与 Out of Scope
- 核心模块详细设计
- 功能注册表
- 核心业务流程
- 数据模型与状态流转
- 非功能需求
- 验收标准与覆盖率
- 实现状态:高保真原型
- 对标修复:原型 vs 现有版本
一、产品定位与关键决策
1.1 定位与核心闭环
MedSeed V2.0 是面向医疗健康机构(医美 / 口腔 / 中医 / 综合门诊等)的 AI 种草内容生成与分发 SaaS。机构用 AI 批量生成小红书 / 抖音种草文案,经人工审核合规后生成带二维码的海报投放到门店场景,消费者扫码取文案去平台发布——门店内容矩阵由此规模化。
机构创建种草计划 → AI 生成文案(标题 + 正文 + 话题)→ 人工审核合规 →
生成带二维码海报 → 消费者扫码 → 一键复制文案 → 跳转平台发布
1.2 两把尺子
这个版本不是从零发明产品。每个模块的设计同时回答两个问题:
- 对外看竞品 P(外部成熟的内容分发 SaaS,16 模块形态):判断哪些做法是行业已验证的,避免重新发明轮子;
- 对内看现有版本(公司自身在线上运行的上一代版本):判断每处改动是否会造成行为漂移,改版期间现有用户不能被改崩。
第四章的三层决策(沿用 / 改进 / 新增)来自第一把尺子;第十二章的对标修复来自第二把尺子。
1.3 六条关键决策
| 决策项 | 结论 | 影响与理由 |
| 行业定位 | 医疗健康(医美 / 口腔 / 中医 / 综合门诊) | 决定了违禁词检测、人工审核闸门、医疗文案模板三项行业能力为必备项 |
| AI 边界 | 只生成文案,不生成图片 | 图片全部来自用户素材库。医疗行业对图片的合规要求比文案更严——前后对比图、术前术后图都是违规高危区,AI 生图不可控且出错由机构承担法律责任。边界收窄后,素材库要不要接生图、海报要不要 AI 配图、积分按什么粒度扣,这些追问一次性消失 |
| 图片排版 | 系统模板拼装 | 6 种排版布局(见 5.6 海报配置),用户只调不生成 |
| 计费方式 | 积分制 | 线下充值 → 后台录入 → 分配门店配额 → 按生成条数扣减(见 5.7) |
| 发布平台 | 小红书 + 抖音 | 两个平台两套文案风格、两套 POI、两套跳转链路;视频号 / 大众点评列入 Out of Scope |
| 审核机制 | 人工审核为闸门,AI 只做检测与标记 | 医疗文案的责任主体是机构不是系统。AI 负责把风险标出来(三档颜色分级),判定权在人——系统不替审核员下结论 |
二、角色与数据权限
| 角色 | 权限范围 | 典型操作 |
| 系统管理员 | 全部数据 | 机构开通、积分充值录入、全局配置 |
| 组织管理员 | 本组织全部数据 | 创建计划、管理素材、查看数据、分配积分 |
| 部门管理员 | 本部门 + 指定门店 | 部门内内容审核与管理 |
| 员工 | 指定门店 / 品牌 | 范围内内容操作与发布 |
数据隔离规则:成员只能看到被授权门店 / 品牌的数据(计划、内容、素材等全部按此过滤)。两条容易被做错的细则:
- 数据范围精确到门店,不是精确到部门——门店是全部业务数据的最小归属单位;
- 员工角色未设置数据范围时,登录后看不到任何门店数据,而不是默认看全部。宁可白屏引导去配权限,不可越权泄露(验收断言 AC 对此有专门条款)。
三、信息架构
MedSeed V2.0
├── 管理后台 (Web)
│ ├── 首页 / 数据看板 [F-14-xxx]
│ ├── 资产管理
│ │ ├── 门店管理 [F-01-xxx]
│ │ ├── 品牌管理 [F-02-xxx]
│ │ └── 素材库 [F-03-xxx]
│ ├── 内容管理
│ │ ├── 种草计划 [F-06-xxx]
│ │ ├── 攻略计划 [F-07-xxx]
│ │ ├── AI任务生成 [F-08-xxx]
│ │ ├── 内容审核 [F-09-xxx]
│ │ ├── 内容库 [F-11-xxx]
│ │ └── 海报配置 [F-10-xxx]
│ ├── 数据管理
│ │ ├── 发布者管理 [F-12-xxx]
│ │ └── 数据看板 [F-14-xxx]
│ └── 系统管理
│ ├── 团队权限 [F-04-xxx]
│ ├── 积分管理 [F-15-xxx]
│ ├── 风控合规 [F-16-xxx]
│ └── 账号管理 [F-05-xxx]
│
└── C端 H5 (扫码进入)
├── 扫码入口页 [F-13-001]
├── 平台选择页 [F-13-002]
├── 内容展示页 [F-13-003~005]
└── 发布引导页 [F-13-006~014]
四、迭代范围与 Out of Scope
4.1 模块范围总览(16 个)
| # | 模块 | 来源 | 决策 | 优先级 | 说明 |
| 01 | 门店管理 | 竞品 P | 沿用 + 改进 | P0 | 增加医疗资质字段、销售负责人、软删除约束 |
| 02 | 品牌管理 | 竞品 P | 沿用 | P0 | 品牌-门店两级结构 |
| 03 | 素材库管理 | 竞品 P | 沿用 + 改进 | P0 | 增强:禁止前后对比图等 4 类图片上传 |
| 04 | 团队权限管理 | 竞品 P | 沿用 | P0 | 4 角色 + 门店级数据隔离 |
| 05 | 账号管理 | 竞品 P | 沿用 | P1 | — |
| 06 | 种草计划管理 | 竞品 P | 改进 | P0 | 增加医疗行业计划模板与文案模板 |
| 07 | 攻略计划管理 | 竞品 P | 改进 | P1 | 增加医疗科普 / 治疗攻略模板 |
| 08 | AI任务生成 | 竞品 P | 改进 | P0 | AI 仅生成文案不做图片;增加合规过滤 |
| 09 | 内容审核 | 新增 | 新增 | P0 | 医疗行业核心差异:违禁词检测 + 人工审核闸门 |
| 10 | 海报配置 | 竞品 P | 沿用 | P0 | 6 种布局,二维码样式配置 |
| 11 | 内容库管理 | 竞品 P | 改进 | P1 | 增加审核状态字段与删除保护 |
| 12 | 发布者管理 | 新增 | 新增 | P2 | C 端扫码用户留痕(竞品扫码即发不留痕) |
| 13 | C端H5扫码发布 | 竞品 P | 改进 | P0 | 双平台,增加"换一条" |
| 14 | 数据看板 | 新增 | 新增 | P1 | 竞品缺失的差异化模块 |
| 15 | 积分管理 | 竞品 P | 沿用 | P0 | 线下充值 + 后台录入 |
| 16 | 风控与合规 | 新增 | 新增 | P0 | 医疗违禁词库、广告法过滤、高风险拦截 |
4.2 Out of Scope(明确不做)
| # | 功能 | 原因 | 计划版本 |
| 1 | 在线支付 | V2.0 走线下充值 + 后台录入,支付链路后置 | V3.0 |
| 2 | 双码机制 | 产品决策:当前单码 + 内容池分发已覆盖场景,不引入双码的绑定管理成本 | 不做 |
| 3 | 预算管理 | 产品决策:积分配额已承担消耗控制职能,预算属重复建设 | 不做 |
| 4 | AI 生成图片 | AI 边界决策,见 1.3 | 不做 |
| 5 | 视频号 / 大众点评 | 平台规则与跳转链路需单独适配,V2.0 聚焦双平台 | V3.0 |
| 6 | 多语言 | 仅中文 | V3.0+ |
| 7 | 开放 API | SaaS 内闭环 | V3.0+ |
| 8 | 移动端管理 App | 管理后台仅 Web | V3.0+ |
Out of Scope 写成一张表而不是一句"聚焦核心功能",是因为不写清楚,评审会上"为什么不做 XX"会被反复追问且口径不一。其中第 2、3 条标的是"不做"而不是"延后"——延后是待办,不做是判断,必须区分。
4.3 三层决策明细
沿用(7 个模块)
| 模块 | 竞品 P 做法 | 本方案 |
| 门店管理 | 基本信息 + POI 绑定 | 同竞品,增加医疗资质字段 |
| 品牌管理 | 品牌-门店两级结构 | 同竞品 |
| 素材库管理 | 4 类默认文件夹 + 自定义 | 同竞品,增加医疗合规检测(见 5.2) |
| 团队权限 | 4 角色 + 数据隔离 | 同竞品 |
| 账号管理 | 个人中心 | 同竞品 |
| 海报配置 | 6 种布局 + 二维码配置 | 同竞品 |
| 积分管理 | 充值 + 分配 + 收回 | 同竞品,V2.0 只做线下充值 |
改进(5 个模块):竞品做法 → 存在问题 → 本方案
| 模块 | 竞品 P 做法 | 存在问题 | 本方案改进 |
| 种草计划 | 4 种计划类型 | 无行业差异化 | 增加医疗行业计划模板与文案模板 |
| 攻略计划 | 攻略入口 | 内容模板未知 | 增加医疗科普 / 治疗攻略模板 |
| AI任务生成 | 3 种生成策略 | 无行业合规过滤 | AI 不生成图片;生成后自动合规过滤 |
| C端H5发布 | 扫码 → 发布 | 用户看到不合适的内容只能流失 | 增加"换一条"(见 5.6) |
| 内容库管理 | 浏览删除 | 无审核状态 | 增加审核状态、删除保护、版本记录 |
新增(4 个模块):为什么竞品没有 → 为什么必须有
| 模块 | 为什么竞品没有 | 为什么必须有 |
| 内容审核 | 通用行业直接生成发布 | 医疗行业合规是刚性约束,AI 生成内容必须经人工审核才能分发,这是产品的合法性问题而不是体验问题 |
| 发布者管理 | 竞品扫码即发布不留痕 | 医疗行业需追踪发布者与发布内容,出问题时可回溯 |
| 数据看板 | 竞品无此模块 | 机构管理层需要按门店看发布与积分消耗做决策 |
| 风控与合规 | 通用行业无此要求 | 违禁词 / 疗效承诺 / 前后对比 / 绝对化用语的检测必须成体系,散在各处必然口径不一 |
功能点层面的构成:106 个功能点中,参考竞品直接沿用 69(65%),参考竞品 + 行业化改进 8(7.5%),纯新增 29(27.5%)。沿用保证交付效率,新增的 29 个全部集中在医疗合规与数据侧——这是差异化所在。
五、核心模块详细设计
8 个核心模块逐字段展开(F-ID / 功能 / 操作 / 约束),其余 8 个模块以摘要表给出(见 5.9),全部 106 个功能点的索引见第六章。
5.1 门店管理 F-01-001 ~ F-01-012 · P0
门店是全部业务数据的最小归属单位:计划、素材、积分配额、发布数据均以门店为维度。
| F-ID | 功能 | 操作 | 约束 |
| F-01-001 | 创建门店 | 点击"新建门店" → 进入创建向导 | 需有门店管理权限 |
| F-01-002 | 编辑基本信息 | 门店名称、联系电话、营业时间、地址 | 门店名称必填 ≤30 字 |
| F-01-003 | 业态类型 | 下拉选择一级业态 | 必选;医疗版为:医美机构 / 口腔诊所 / 中医馆 / 综合门诊 / 其他;细分类目联动 |
| F-01-004 | 地区选择 | 城市 → 区县 → 商圈三级联动 | 必选 |
| F-01-005 | 上传门店图片 | 多图上传,含封面图与详情图 | JPG / PNG,单张 ≤10MB,最多 20 张 |
| F-01-006 | 绑定小红书 POI | 搜索 POI → 选择绑定 | 可选;一个 POI 只能绑定一个门店 |
| F-01-007 | 绑定抖音 POI | 搜索 POI → 选择绑定 | 可选 |
| F-01-008 | 指定销售负责人 | 从团队成员中选择 | 可选 |
| F-01-009 | 门店筛选 | 按城市、业态类型、品牌筛选 | 条件多选,结果实时刷新 |
| F-01-010 | 门店状态 | 启用 / 停用 | 停用后新计划不可选该门店;已关联计划不受影响 |
| F-01-011 | 医疗资质信息 | 医疗机构执业许可证号、有效期、发证机关 | 医疗行业必填;未填写时卡片显示"资质未登记"标记 |
| F-01-012 | 删除门店 | 软删除,数据保留 | 有关联计划的门店不允许删除 |
门店卡片展示:封面图、名称、业态标签、POI 绑定状态、状态;空态文案"暂未创建门店,点击新建门店开始";停用态卡片半透明 + "已停用"标签。
实现截图 · 门店管理列表页(卡片式 + 搜索 / 部门筛选 / 绑定 POI)。产品标识已抹除;演示数据为通用业态,医疗业态为行业配置项。
5.2 素材库管理 F-03-001 ~ F-03-011 · P0
系统默认创建 4 个文件夹(产品图 / 环境图 / 细节图 / 人物图,不可删除可重命名),机构可建自定义子文件夹。
| F-ID | 功能 | 操作 | 约束 |
| F-03-001 | 创建自定义文件夹 | 右键菜单 / +号 → 输入名称 | 文件夹名 ≤20 字 |
| F-03-002 | 上传图片 | 拖拽或点击上传 | JPG / PNG,单张 ≤10MB |
| F-03-003 | 批量上传 | 多选文件批量上传,显示进度 | 单次最多 50 张 |
| F-03-004 | 图片预览 | 大图查看,左右翻页 | — |
| F-03-005 | 图片删除 | 删除 → 二次确认 | 被引用的图片不允许删除,提示"该图片已被任务引用" |
| F-03-006 | 移动 / 复制 | 选中 → 操作菜单 → 目标文件夹 | — |
| F-03-007 | 文件夹重命名 / 删除 | 右键菜单 | 有内容的文件夹需先清空 |
| F-03-009 | 已使用标记 | 被 AI 任务引用的文件夹显示引用次数 | 仅查看 |
| F-03-010 | 素材合规检测 | 上传时自动检测,不合规图片拦截并提示原因 | 医疗行业必须,禁止上传 4 类图片(见下) |
| F-03-011 | 图片搜索 | 按文件名模糊匹配 | P2 |
禁止上传的 4 类图片(F-03-010):前后对比图(治疗前 vs 治疗后);疗效承诺相关图片;患者隐私图片(面部未打码的病例照);违规医疗广告图片。拦截时弹窗说明具体原因,如"该图片疑似含前后对比效果,不符合医疗合规要求"。
5.3 种草计划管理 F-06-001 ~ F-06-012 · P0
种草计划是内容生成任务的顶层编排。四种计划类型:种草 / 攻略 / 品牌 / 单店,类型对比见 7 章 5.4 节。
| F-ID | 功能 | 操作 | 约束 |
| F-06-001 | 创建计划 | 新建 → 选择类型 → 填写信息 | — |
| F-06-002 | 计划名称 | 文本输入 | ≤30 字,必填 |
| F-06-005 | 选择计划类型 | 四选一 | 创建后类型不可修改(编辑页置灰) |
| F-06-006 | 门店 / 品牌范围 | 门店多选或品牌多选(二选一) | 必选,至少 1 个;未选时保存按钮禁用 |
| F-06-007 | 目标数量 | 数字输入 | 按天 / 周 / 总计生成条数 |
| F-06-008 | 关联素材库 | 选择素材文件夹(可多选) | — |
| F-06-012 | 文案模板 | 预设:探店推荐 / 项目科普 / 活动预告 | 医疗行业定制模板 |
| F-06-009 | 状态管理 | 草稿 → 进行中 → 已结束 | 只有"进行中"的计划才能创建 AI 任务 |
| F-06-011 | 进入 AI 任务 | 计划详情 → "创建AI生成任务" | 仅进行中的计划可见该入口 |
5.4 AI 任务生成 F-08-001 ~ F-08-017 · P0
基于种草 / 攻略计划创建 AI 文案生成任务。AI 仅生成文案(标题 / 正文 / 话题),不生成图片。
| F-ID | 功能 | 操作 | 约束 |
| F-08-001 | 创建任务 | 从计划详情页进入 | 自动带入计划名称 / 门店范围 / 素材关联 |
| F-08-002 | 任务名称 / 描述 | 文本输入 | 名称 ≤30 字;描述 ≤500 字 |
| F-08-003 | 生成数量 | 数字输入 | 1~100 条 / 任务,默认 10;输入 0 提示"至少生成 1 条" |
| F-08-004 | 配图数量 | 1 / 2 / 4 / 6 / 9 张 | 确定笔记配图数量 |
| F-08-005 | 热门标签 | 输入 → 回车添加,Tag 展示 | 最多 10 个,每个 ≤10 字 |
| F-08-006 | 选择素材图片 | 素材库选择器多选 | 超过配图数量时 AI 随机组合 |
| F-08-007 | 生成策略 | 三选一(见下表) | — |
| F-08-008 | 目标平台 | 小红书 / 抖音 | 两套文案风格 |
| F-08-009 | 高级设置 | 可展开 | 图片排版模板 / 文案风格 / 字数范围(可选) |
三种生成策略
| 策略 | 说明 | 适用场景 |
| 智能剧本组合 | AI 根据任务描述和素材自动创作差异化文案 | 日常种草、多门店差异化 |
| 爆款模仿 | 粘贴参考文案链接 → AI 分析风格 → 生成类似风格文案 | 已知某篇风格效果好 |
| 自主 Prompt | 直接输入 Prompt 指令生成 | 高级运营自定义风格 |
生成结果与积分
| F-ID | 功能 | 约束 |
| F-08-010 | 触发生成 | 进度条展示,逐条产出;调用积分扣减 |
| F-08-014 | 合规自动过滤 | 生成后自动过违禁词检测,不合规内容标记风险等级(与 F-16 共用同一套词库) |
| F-08-011 | 结果预览 | 卡片式:配图排版预览 + 标题 + 正文预览 + 话题标签 + 平台标识 |
| F-08-012/013 | 重新生成(单条 / 批量) | 每条消耗 1 积分,原内容被替换 |
| F-08-015 | 积分扣减 | 生成 1 条扣 1 积分;积分不足时阻止生成(阻断而非警告) |
| F-08-016 | 提交审核 | 单条 / 批量全部提交,必做操作——未审核内容不能进入内容库 |
| F-08-017 | 任务状态 | 生成中 / 已完成 / 已提交审核 / 部分驳回(自动流转 + 手动操作) |
5.5 内容审核 F-09-001 ~ F-09-009 · P0 · 新增模块
竞品 P 没有这个模块:通用行业生成后直接发布。医疗行业不行——AI 生成内容必须经过违禁词自动检测 + 人工审核才能进入内容库和海报生成。这是产品的合法性问题,不是体验优化。
| F-ID | 功能 | 约束 |
| F-09-001 | 审核队列 | 三个 Tab:待审核 / 已通过 / 已驳回,默认打开"待审核" |
| F-09-009 | 队列筛选 | 按计划、门店、提交时间筛选 |
| F-09-002 | 内容详情 | 展开完整预览 |
| F-09-003 | 违禁词高亮 | 系统自动检测,正文中高亮命中词,实时检测 |
| F-09-004 | 通过 | 确认后进入内容库;可批量 |
| F-09-005 | 驳回 | 选择原因 + 备注;驳回后可重新生成 |
| F-09-006 | 修改后再审 | 审核员编辑修改 → 保存 → 状态变为"已通过";不消耗积分(区别于重新生成) |
| F-09-008 | 审核记录 | 每条内容的审核历史:审核人、时间、结果、原因 |
自动检测规则(5 类,三档颜色分级)
| 检测项 | 触发条件 | 标记 |
| 医疗违禁词 | 命中违禁词库 | 红色高亮,标风险等级 |
| 疗效承诺 | 含"保证""一定""包好"等绝对化承诺 | 红色高亮 |
| 广告法违规 | 含"第一""最""国家级"等禁用语 | 红色高亮 |
| 前后对比暗示 | 含"治疗前后""蜕变"等对比暗示 | 橙色高亮 |
| 价格信息 | 包含具体价格、折扣 | 黄色标记 |
为什么用三档颜色而不是"通过 / 不通过"两态:医疗文案里"价格信息"是需要人判断的(合规活动价可以写,虚假折扣不行),"疗效承诺"是必须拦的。颜色区分"必须改 / 需要看一眼 / 提示",符合审核员的实际工作方式——系统把风险标出来,判定权在人。
5.6 C端 H5 扫码发布 F-13-001 ~ F-13-014 · P0
扫码 → H5首页 → 选择平台 → 查看笔记内容 → 复制文案 → 跳转App → 粘贴发布
↓ 不满意?点击"换一条"
| F-ID | 功能 | 约束 |
| F-13-001 | 扫码进入 | 微信长按识别 / 扫一扫 → 进入 H5;无需登录 / 授权 |
| F-13-002 | 平台选择 | 两个入口:① 种草笔记·小红书 ② 一键发抖音 |
| F-13-003 | 门店 / 活动信息 | 顶部展示门店名称、活动主题、品牌 Logo,从二维码参数获取 |
| F-13-004 | 展示笔记内容 | 配图排版 + 标题 + 正文 + 话题标签,从内容池随机 / 顺序分发 |
| F-13-005 | 查看配图 | 按排版模板展示 1~9 张图片 |
| F-13-006/007 | 复制文案 / 复制话题 | 分别复制(标题+正文)与(仅话题),Toast 提示 |
| F-13-010 | 换一条 | 从内容池随机取下一条,不重复展示刚看过的 |
| F-13-011 | 保存图片 | 长按图片保存到相册 |
| F-13-008/009 | 跳转小红书 / 抖音 | 唤起对应 App 发布页;走 Scheme / Universal Link |
| F-13-012 | 发布反馈 | 发布后可点"已完成发布",系统记录发布事件(P1) |
"换一条"是本次对竞品的关键改进:竞品扫码即看,用户对内容不满意只能流失。对医疗机构,每一次扫码都是一次到店转化的机会。内容池里已有几十条审核通过的备选,"换一条"成本极低,把一次无效曝光变成一次有效曝光。
页面状态:内容池为空 → "暂无可用内容,请联系门店";加载中 → 骨架屏;App 未安装 → 跳转降级为引导下载页。
5.7 积分管理 F-15-001 ~ F-15-009 · P0
积分是系统的计费单位。生命周期:充值申请 → 后台录入 → 积分到账 → 分配到门店 → 生成消耗 → 扣除记录
| F-ID | 功能 | 约束 |
| F-15-001 | 积分总览 | 组织总积分、已分配、剩余可分配 |
| F-15-002 | 门店配额表 | 门店、当前配额、已消耗、剩余、使用率;支持排序 |
| F-15-003 | 充值申请 | 机构填写数量 + 备注,线下付款后上传凭证 |
| F-15-004 | 充值录入 | 管理员确认收款后录入;需记录凭证 |
| F-15-005 | 分配配额 | 分配后从组织总积分扣除 |
| F-15-006 | 回收配额 | 回收数量 ≤ 门店剩余;回收到组织总积分 |
| F-15-007 | 变动记录 | 时间 / 类型 / 数量 / 操作人 / 备注;支持筛选导出 |
| F-15-009 | 不足预警 | 门店配额低于阈值(默认 10 积分,可配置)时通知管理员 |
扣减规则:生成 1 条 = 1 积分;重新生成 1 条 = 1 积分;优先从门店配额扣;门店配额不足时从组织未分配积分自动补充。
实现截图 · 积分管理页(额度总览 / 门店额度分配)。产品标识已抹除。
5.8 风控与合规 F-16-001 ~ F-16-009 · P0 · 新增模块
| F-ID | 功能 | 约束 |
| F-16-001 | 违禁词库管理 | 查看 / 搜索 / 添加 / 删除(二次确认);支持 Excel / CSV 批量导入 |
| F-16-002 | 违禁词分类 | 四类:疗效类 / 对比类 / 承诺类 / 价格类;系统预设 + 自定义 |
| F-16-003 | 合规规则配置 | 开关式:禁止前后对比图 / 禁止疗效承诺 / 禁止价格信息 / 禁止绝对化用语;默认全开 |
| F-16-004 | 生成时检测 | AI 生成完成后自动过规则;命中 → 标记不阻止 |
| F-16-005 | 审核时高亮 | 与审核页共用同一套词库与规则 |
| F-16-006 | 高风险拦截 | 命中严重违禁词(如"100%有效")→ 生成阶段直接拦截不产出;高风险词列表需单独配置 |
| F-16-008 | 平台规则库 | 小红书 / 抖音社区规范说明(P1) |
| F-16-007 | 合规报告 | 周报 / 月报:命中统计、高频违规类型(P2) |
设计要点:词库与规则只有一套,F-08 生成时过滤与 F-09 审核时检测共用。不做两套词库——否则会出现"生成时没拦住、审核时才报"的矛盾,用户会认为是系统 bug。
系统预设违禁词示例:
| 分类 | 示例词 |
| 疗效类 | 根治、治愈、100%有效、立竿见影、一针见效 |
| 对比类 | 治疗前后、蜕变、换脸、逆龄 |
| 承诺类 | 保证、包好、无效退款、签约治疗、终身 |
| 价格类 | 最低价、打折、免费体验、超低价 |
| 广告法禁用 | 第一、最好、最有效、国家级、世界级 |
5.9 其余 8 个模块摘要
| # | 模块 | 优先级 | 关键功能与约束 |
| 02 | 品牌管理 | P0 | 品牌名必填 ≤20 字,关联门店至少 1 个;一个门店可归属多个品牌;停用品牌不可用于新计划 |
| 04 | 团队权限管理 | P0 | 添加成员(手机号不可重复)、4 角色、数据范围必选(门店 / 品牌多选);删除为物理删除、禁用保留数据;系统管理员不可删除;操作日志(P2) |
| 05 | 账号管理 | P1 | 个人信息、修改密码(≥8 位且含字母 + 数字,旧密码错误不执行)、更换手机号(验证码) |
| 07 | 攻略计划管理 | P1 | 与种草计划共用底表、独立入口;默认"攻略型"模板:治疗攻略 / 术后护理 / 药物指南 / 饮食建议 |
| 10 | 海报配置 | P0 | 6 种布局(全幅背景 / 上下分栏 / 左图右文 / 卡片式 / 三图拼贴 / 极简白底);文字可拖拽调位置 / 大小 / 颜色但不可编辑内容;二维码可调大小 / 透明度 / 位置;下载 1080×1920 PNG;批量打包 ZIP |
| 11 | 内容库管理 | P1 | 表格视图 + 排序;已发海报的内容不允许删除;重新生成消耗 1 积分;顶部统计卡片 |
| 12 | 发布者管理 | P2 | 微信授权昵称 / 头像、发布次数、最近发布时间;发布记录详情;积分奖励与导出(P2) |
| 14 | 数据看板 | P1 | 概览卡片(总活动数 / 总发布数 / 积分消耗)、发布趋势、门店排行、积分消耗统计、全局筛选联动、导出(P2) |
六、功能注册表
16 个模块共 106 个功能点,每个功能点有唯一 F-ID(F-{模块}-{序号}),作为需求、设计、开发、测试、验收的唯一索引。
| # | 模块 | F-ID 范围 | 优先级 | 功能点要点 |
| 01 | 门店管理 | F-01-001~012 | P0 | 新建 / 名称 / 业态 / 三级地区 / 图片 / 双 POI / 负责人 / 筛选 / 状态 / 医疗资质 / 软删除 |
| 02 | 品牌管理 | F-02-001~006 | P0 | 创建 / 多对多门店关联 / 停用联动 |
| 03 | 素材库管理 | F-03-001~011 | P0 | 文件夹 / 上传 / 批量 / 引用计数 / 合规拦截 |
| 04 | 团队权限管理 | F-04-001~008 | P0 | 成员 / 4 角色 / 数据范围 / 操作日志 |
| 05 | 账号管理 | F-05-001~004 | P1 | 个人信息 / 修改密码 / 更换手机号 |
| 06 | 种草计划管理 | F-06-001~012 | P0 | 4 类型 / 类型不可变 / 门店范围必选 / 状态机 / 文案模板 |
| 07 | 攻略计划管理 | F-07-001~005 | P1 | 攻略型模板四项 / 独立列表 |
| 08 | AI任务生成 | F-08-001~017 | P0 | 见 5.4(17 个功能点,全文档最多) |
| 09 | 内容审核 | F-09-001~009 | P0 | 见 5.5(新增模块) |
| 10 | 海报配置 | F-10-001~010 | P0 | 6 布局 / 文字调整 / 二维码 / 背景 / 下载 / 批量 ZIP |
| 11 | 内容库管理 | F-11-001~007 | P1 | 列表 / 详情 / 删除保护 / 重新生成 / 版本记录 |
| 12 | 发布者管理 | F-12-001~004 | P2 | 列表 / 详情 / 积分奖励 / 导出 |
| 13 | C端H5扫码发布 | F-13-001~014 | P0 | 见 5.6 |
| 14 | 数据看板 | F-14-001~007 | P1 | 概览 / 趋势 / 排行 / 消耗统计 / 导出(新增模块) |
| 15 | 积分管理 | F-15-001~009 | P0 | 充值 / 配额分配 / 回收 / 变动记录 / 预警 |
| 16 | 风控与合规 | F-16-001~009 | P0 | 词库 / 分类 / 规则开关 / 高风险拦截(新增模块) |
功能点构成统计
| 指标 | 数量 | 说明 |
| 总 F-ID 数 | 106 | P0 58 · P1 32 · P2 16 |
| 参考竞品直接沿用 | 69(65%) | 行业已验证做法 |
| 参考竞品 + 行业化改进 | 8(7.5%) | 医疗合规相关改动 |
| 纯新增 | 29(27.5%) | 集中在内容审核 / 风控 / 数据看板 |
| 覆盖模块 | 16 | — |
为什么每个功能都要有 F-ID:没有 ID 的需求文档,评审时只能说"门店那个地方",测试无法对应用例,验收无法算覆盖率。有了 F-ID,第十章的 85 条验收断言逐条挂钩功能点,哪些功能还没有验收覆盖一眼可见。
七、核心业务流程
| 编号 | 流程 | 关键节点 |
| BP-01 | 机构入驻与门店创建 | 开通机构 → 创建品牌 → 创建门店 → 绑定 POI → 登记医疗资质 |
| BP-02 | 素材上传与管理 | 建文件夹 → 上传 → 合规检测拦截对比图 → 引用标记 |
| BP-03 | 种草计划创建 → 启动 | 选类型(创建后不可改)→ 选门店范围 → 保存 → 启动变"进行中" |
| BP-04 | AI 文案生成 → 审核(核心主流程) | 16 步,见 7.1 展开 |
| BP-05 | 海报生成与下载 | 选已审核内容 → 选布局 → 调文字 / 二维码 / 背景 → 下载 PNG(批量 ZIP) |
| BP-06 | C端扫码发布(完整链路) | 扫码 → 选平台 → 看内容 →(不满意)换一条 → 复制 → 跳转 App → 发布 |
| BP-07 | 积分充值 → 分配 → 消耗 | 线下充值 → 后台录入 → 分配门店配额 → 按条扣减 → 变动记录 |
| BP-08 | 内容合规检测流程 | 生成时词库过滤 → 标记风险 → 审核时分级高亮 → 人工判定 |
流程覆盖矩阵
| 编号 | 流程 | 涉及模块 | 步骤数 | F-ID 数 |
| BP-01 | 机构入驻与门店创建 | 01 门店 | 10 | 7 |
| BP-02 | 素材上传与管理 | 03 素材 | 6 | 4 |
| BP-03 | 种草计划创建启动 | 06 计划 | 8 | 7 |
| BP-04 | AI 生成 → 审核 | 08 AI / 09 审核 / 15 积分 / 16 风控 | 16 | 15 |
| BP-05 | 海报生成下载 | 10 海报 / 11 内容库 | 6 | 4 |
| BP-06 | C端扫码发布 | 13 H5 | 11 | 9 |
| BP-07 | 积分充值 → 消耗 | 15 积分 / 08 AI | 7 | 4 |
| BP-08 | 合规检测 | 16 风控 / 08 AI / 09 审核 | 5 | 4 |
7.1 BP-04 核心主流程(16 步展开)
| 步骤 | 操作 | 角色 | 输入示例 | 预期输出 | F-ID |
| 1 | 计划详情 → "创建AI任务" | 内容运营 | — | 进入任务创建页 | F-08-001 |
| 2 | 填写任务描述 | 内容运营 | "面向25-35岁女性,突出无痛恢复快" | AI 理解内容方向 | F-08-002 |
| 3 | 设定生成数量 | 内容运营 | 20 | 显示目标条数 | F-08-003 |
| 4 | 选择配图数量 | 内容运营 | 4 张/条 | 模板筛选范围确定 | F-08-004 |
| 5 | 添加标签 | 内容运营 | "医美推荐""轻医美" | Tag 展示 | F-08-005 |
| 6 | 选择素材图片 | 内容运营 | 素材库多选 | 已选预览 | F-08-006 |
| 7 | 选择生成策略 | 内容运营 | 智能剧本组合 | 参数设定 | F-08-007 |
| 8 | 选择平台 | 内容运营 | 小红书 | 平台标识 | F-08-008 |
| 9 | 开始生成 | 系统 | — | 扣积分 → 合规过滤 → 逐条产出 | F-08-010/014/015 |
| 10 | 预览,重生成不满意的条目 | 内容运营 | 重生成第 3 条 | 扣 1 积分,该条替换 | F-08-012 |
| 11 | 提交审核 | 内容运营 | 全部提交 | 进入待审核队列 | F-08-016 |
| 12 | 打开"待审核"Tab | 审核员 | — | 展示待审列表 | F-09-001 |
| 13 | 查看详情,违禁词自动高亮 | 审核员 | — | 命中词红色高亮 | F-09-002/003 |
| 14 | 通过 | 审核员 | 第 1 条 | 移入"已通过" | F-09-004 |
| 15 | 驳回 | 审核员 | 第 5 条,含"保证效果",原因选"违禁词" | 移入"已驳回" | F-09-005 |
| 16 | 批量通过 | 审核员 | 剩余多条 | 进入内容库 | F-09-007 |
流程里两个容易被忽略、但出问题最招骂的分支:
① 积分不足是阻断而非警告——不阻断会出现"生成一半没积分"的半成品状态,用户投诉且难以解释;
② 驳回后"修改后再审"不消耗积分——如果改也要扣积分,用户会因为"AI 写得烂还要我付两次钱"而不满。这两条都是先想清楚"用户会怎么骂",再回去定的规则。
八、数据模型与状态流转
8.1 核心实体
机构(Organization)
├── 门店(Store)
│ ├── POI绑定
│ └── 积分配额(StoreQuota)
├── 品牌(Brand)
│ └── 品牌_门店关联
├── 用户(User)
│ ├── 角色(Role)
│ └── 数据权限范围
├── 素材(Folder → MediaAsset)
├── 计划(Plan)
│ ├── 计划类型: 种草/攻略/品牌/单店
│ └── 计划_门店关联
├── AI任务(Task)
│ ├── 生成内容(Content) ← 审核记录(ReviewRecord)
│ └── 消耗积分记录
├── 海报(Poster)
│ └── 关联二维码
├── 积分记录(PointRecord)
│ └── 类型: 充值/分配/回收/消耗
└── 发布者(Publisher)
└── 发布记录(PublishRecord)
8.2 三个关键状态机
计划: 草稿 ──→ 进行中 ──→ 已结束
↑ │
└───────────┘ (未开始生成时可切回草稿)
内容: AI生成 → 待审核 → 审核通过 → 已入库 → 已发海报
↓
已驳回 → (重新生成后)回到 AI生成
海报: 未生成 → 已生成 → 已下载
内容状态机是整份 PRD 的骨架。"已入库"和"已发海报"必须拆成两个状态,因为内容库的删除规则依赖它——已发海报的内容不允许删除(海报已印出去,内容删了二维码就失效)。一个状态字段的拆分,直接决定一条删除约束能不能成立。"已驳回"必须能回到重新生成,否则驳回的内容就死在审核环节了。
九、非功能需求
下表数值为 V2.0 的设计目标值。如实标注:本版本原型阶段未做性能实测,上线前需按第十章验收口径逐项验证。
| 维度 | 目标值 | 口径 | 关联 F-ID |
| 性能 · 页面加载 | 列表页首屏 ≤2s,详情页 ≤1s | 目标值 · 未实测 | 全局 |
| 性能 · AI 生成 | 单次生成 ≤15s(点击到全部产出) | 目标值 · 未实测 | F-08-010 |
| 性能 · 图片处理 | 上传 ≤3s/张,海报生成 ≤5s | 目标值 · 未实测 | F-03-002, F-10-008 |
| 安全 · 数据加密 | 素材图片加密存储,HTTPS 全链路 | 刚性约束 | F-03 |
| 安全 · 权限控制 | RBAC 角色权限,数据按门店隔离 | 刚性约束 | F-04 |
| 审核 SLA | 工作日人工审核响应 ≤30 分钟 | 服务承诺 · 待运营确认 | F-09 |
| 兼容 · Web 端 | Chrome / Firefox / Edge 近 2 个主要版本 | 行业惯例 | — |
| 兼容 · H5 | 微信内置浏览器 / iOS Safari / Android Chrome | 刚性约束 | F-13-014 |
| 并发 | 100 在线用户,10 并发 AI 任务 | 目标值 · 未实测 | F-08 |
| 数据备份 | 每日自动备份,素材图冗余存储 | 刚性约束 | — |
| 日志 | 关键操作日志保留 90 天 | 刚性约束 | F-04-008 |
十、验收标准与覆盖率
写法规则:每条断言写成"点击 X 后出现 Y"或"输入边界值时提示 Z",而不是"体验流畅""符合预期"——后者无法判定。每个 F-ID 至少 1 条断言,设计 / 开发 / 测试均以此为判定基准。
10.1 验收覆盖统计(真实口径,不凑整)
| 模块 | F-ID 数 | AC 数 | 覆盖口径 |
| 01 门店管理 | 12 | 12 | 100% |
| 13 C端H5 | 14 | 11 | 78% |
| 02 品牌 / 03 素材库 / 04 团队 / 05 账号 | 6 / 11 / 8 / 4 | 3 / 6 / 4 / 2 | 关键路径覆盖 |
| 06 计划 / 07 攻略 / 08 AI任务 | 12 / 5 / 17 | 6 / 2 / 9 | 关键路径覆盖 |
| 09 审核 / 10 海报 / 11 内容库 | 9 / 10 / 7 | 6 / 5 / 2 | 关键路径覆盖 |
| 12 发布者 / 14 看板 / 15 积分 / 16 风控 | 4 / 7 / 9 / 9 | 2 / 3 / 7 / 5 | 关键路径覆盖 |
| 合计 | 106 | 85 | 80% |
85 条不是拍出来的整数:它是逐模块按关键路径清点后的自然结果。两个非 100% 的模块(品牌、C端H5)差在哪些 F-ID 没有断言,逐条可查——覆盖率表的意义就是让缺口可见,而不是把缺口藏起来。
10.2 门店管理验收断言(AC-F01,全 9 条示例)
| AC-ID | 关联 F-ID | 验收断言 | 验证方式 |
| AC-F01-001 | F-01-001 | 点击"新建门店"后进入门店编辑页,URL 变化 | 手工 / 自动化 |
| AC-F01-002 | F-01-002 | 门店名称必填(≤30 字),为空保存时提示"请填写门店名称" | 输入边界值 |
| AC-F01-003 | F-01-003 | 业态类型下拉包含 5 项:医美机构 / 口腔诊所 / 中医馆 / 综合门诊 / 其他 | 下拉枚举检查 |
| AC-F01-004 | F-01-004 | 城市 → 区县 → 商圈三级联动,选上级后下级自动加载 | 级联操作 |
| AC-F01-005 | F-01-005 | 支持 JPG / PNG,单张 ≤10MB,最多 20 张;超限提示"最多上传 20 张" | 类型 + 大小 + 数量 |
| AC-F01-006 | F-01-006 | 搜索小红书 POI 返回结果列表,绑定后显示 POI 名称 + ID | 搜索 + 绑定 |
| AC-F01-010 | F-01-010 | 停用门店后,新计划创建时该门店不可选,已关联计划不受影响 | 状态联动 |
| AC-F01-011 | F-01-011 | 未填写医疗资质的门店,卡片显示"资质未登记"标记 | 界面标记 |
| AC-F01-SAVE | — | 必填字段填全保存后返回列表,新门店出现在列表中 | E2E |
10.3 其余模块代表断言(节选)
| 模块 | 代表性断言 |
| 素材库管理 | 文件夹重名提示"文件夹名已存在";批量上传 50 张均成功且进度正确;上传疑似对比图时拦截并弹窗"疑似含前后对比效果";被引用图片删除时提示"该图片已被任务引用" |
| 团队权限管理 | 重复手机号提示"该手机号已存在";员工未设数据范围时登录后看不到任何门店数据;设"南山店 + 福田店"的员工仅能看到这两个门店的数据 |
| 种草计划管理 | 创建后类型不可修改(编辑页灰色不可选);门店范围未选时保存按钮 disabled;只有"进行中"的计划才出现"创建AI任务"入口 |
| AI任务生成 | 从计划详情进入自动带入计划名称、门店范围、素材关联;生成数量输入 0 时提示"至少生成 1 条";积分不足时阻断并提示"积分不足,请联系管理员充值" |
| 内容审核 | 违禁词实时高亮;驳回必须选原因;修改后再审不消耗积分;审核记录可查审核人 / 时间 / 结果 / 原因 |
| C端 H5 | 扫码无需登录;"换一条"不重复展示刚看过的内容;复制文案 Toast 正确 |
| 积分管理 | 回收数量不能超过门店剩余;门店配额低于阈值(默认 10)触发预警通知 |
| 风控与合规 | 命中高风险词(如"100%有效")的内容在生成阶段即被拦截不产出;命中普通规则的标记风险并进入审核高亮 |
十一、实现状态:高保真原型
本文档不是停留在纸面的提案。按本 PRD 已完成可运行的高保真原型,管理后台主体页面均已实现并可交互。以下为已实现范围:
- 管理后台(已实现,12 页):工作台(数据看板)、种草计划、审核任务、攻略计划、账号矩阵、门店管理、团队权限、积分管理、风控合规、模型管理、账号管理、菜单管理;
- 平台级底座模块:模型管理、菜单管理、账号矩阵属于平台底座能力,不在本 PRD 的 16 个业务模块范围内,但在原型中一并实现;
- 未实现部分(如实标注):C端 H5 仅有内嵌预览,独立 H5 三页(扫码入口 / 平台选择 / 内容展示)尚未实现。
实现截图 · 工作台(进行中计划 / 已发布内容 / 待审核 / 总曝光 / 可用额度)。产品标识已抹除;演示数据为通用业态。
原型阶段使用通用业态(咖啡门店)演示数据验证底座流程;医疗业态(业态枚举、违禁词库、合规规则、资质字段)为行业配置项,随行业包加载——这也是"平台 + 行业配置"架构的直接体现:底座与行业解耦,行业差异不写死在流程里。
十二、对标修复:原型 vs 现有版本
原型完成后,把它与现有版本(公司在线上运行的上一代版本)逐功能对比,产出了一份修复清单:原型在功能逻辑上与成熟运行版本不一致或有缺失的 8 处,逐项修复。这份清单同样驱动 AI 编码实现,按三批交付。
12.1 差异总览与修复项
| 修复 | 问题 | 现有版本做法(基准) | 修复方案 |
| 1 | 门店详情页是简易抽屉弹窗,只读字段,无法做任何运营操作 | /stores/:id 独立全屏页,承担"门店运营中枢":数据概览(总笔记 / 曝光 / 浏览 / 互动四卡)+ 门店积分区(分配 / 回收)+ 基本信息 + 营销档案 | 改为独立路由页,含数据概览 Dashboard、店维度积分操作入口(与积分管理页共用同一套后端)、营销档案 Tab |
| 2 | 新增是 3 步向导、编辑是扁平表单,同功能两套交互 | 新增与编辑共用同一套 3 步向导组件,编辑时预填已有数据 | 统一向导:① 基本信息 ② 销售负责人(选现有或新建)③ 门店图片 + GPS 定位 |
| 3 | 业态只有一级下拉,无细分类目 | 选中一级业态后动态展开细分类目多选(Chips),数据来自后端按父类目分组返回 | 增加 sub_categories 字段与联动选择器;细分类目随行业包配置 |
| 4 | 无 GPS 定位 | 门店编辑支持地图选点,经纬度落库 | 嵌入地图选点组件,经纬度自动回填;stores 表增加 longitude / latitude;备选方案为地址转坐标 API |
| 5 | POI 绑定是"选平台 → 填编号 → 确认"弹窗,看不到各平台状态 | 门店详情页 POI 区 5 张平台卡片独立展示(小红书 / 抖音 / 大众点评 / 高德 / Google Maps),各自显示绑定状态 | 新增 store_poi_bindings 表,5 平台卡片独立绑定 / 解绑;门店未完成 GPS 定位时绑定按钮置灰(定位是 POI 归属的前提) |
| 6 | 积分分配 / 回收只能去积分管理页操作 | 门店详情页直接提供积分区 | 门店详情页增加积分操作入口,与积分管理页共用 API |
| 7 | 门店状态流转联动不全 | 待完善 →(完善必填 + 定位 + 至少绑定一个 POI)→ 营业中 → 已停用 → 可重新启用 | 补全流转约束:停用门店不出现在新计划;已关联进行中计划的门店停用后已有计划不受影响 |
| 8 | 门店列表是表格且无筛选 | 卡片式 + 顶部筛选栏(城市 / 业态 / 品牌多选实时刷新) | 改为卡片式 + 筛选栏,卡片含封面图、业态标签、POI 概要、状态标签 |
修复前实拍 · 门店详情为抽屉弹窗,只读字段,无任何运营操作入口——修复 1 的对照证据(产品标识已抹除)。
修复前实拍 · POI 绑定弹窗:选平台 → 填编号 → 确认,无法总览各平台绑定状态——修复 5 的对照证据。
12.2 数据模型变更
| 变更 | 字段 / 结构 | 来源 |
| stores 表新增字段 | longitude / latitude(经纬度)、sub_categories(细分类目数组)、cover_image(封面图)、status 枚举(待完善 / 营业中 / 已停用)、deleted_at(软删除)、status_reason | 修复 1 / 3 / 4 / 7 / 8 |
| 新增表 store_poi_bindings | store_id、platform、poi_id、poi_name、bind_status、bind_time | 修复 5 |
| 新增表 store_marketing_profiles | store_id、ai_summary、generated_at | 修复 1(营销档案) |
| 新增表 store_reviews | store_id、review_content、source_platform、review_time | 修复 1(好评管理) |
12.3 接口变更(新增)
| 路由 | 用途 |
| GET /api/stores/:id/dashboard | 门店数据概览(笔记 / 曝光 / 浏览 / 互动) |
| GET·POST /api/stores/:id/credits、/credits/allocate、/credits/reclaim | 门店积分详情与分配 / 回收 |
| GET·POST·DELETE /api/stores/:id/poi-bindings | POI 绑定状态查询 / 绑定 / 解绑 |
| GET·POST /api/stores/:id/marketing-profile、/marketing-profile/generate | 营销档案获取与 AI 生成 |
| GET·POST /api/stores/:id/reviews | 好评列表与添加 |
| GET /api/categories/sub-categories | 按一级业态获取细分类目 |
| PUT /api/stores/:id/location | 更新 GPS 定位 |
12.4 开发批次
| 批次 | 内容 |
| 第 1 批(核心闭环) | 修复 1 门店详情独立页 + 修复 2 新增 / 编辑统一向导 |
| 第 2 批(数据完善) | 修复 5 POI 多平台管理 + 修复 6 详情页积分入口 + 修复 3 业态联动 + 修复 4 GPS 定位 |
| 第 3 批(收尾) | 修复 7 状态流转 + 修复 8 列表筛选与卡片式 |
这一章是本产品区别于"纸上 PRD"的关键:规格写完只完成了一半,把原型和跑了多年的成熟版本逐功能对齐,才会暴露"抽屉弹窗 vs 独立页"这类纸面上永远发现不了的问题。8 项修复全部有明确的基准行为、数据模型变更与验收口径。