内容分四块: 1、产品规划产出 —— MCN 短视频整合营销工作台的①段五份(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)、②段两份(2a 功能/2b 布局)、③段界面(DESIGN.md 契约与令牌表 + mcn-workbench.html 原型 + 实测/会诊/审查三份 + 23 张闸门截图)。 2、开源竞品调研 —— 5 个内容工作台项目的取证原始件与 1b 系列分析文档。 3、参考资料 —— 竞品视频抽帧 1145 张 + 2 个源视频 + 功能点截图。 4、机制侧 —— 协作脚本与状态台账、工作区记忆日志、抽帧/OCR 脚本。 .gitignore 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
13 KiB
需求文档(1a)
项目:
proto-board|更新:2026-10-07|性质:拍板 口径依据:stage-discovery/references/grill-me.md(A / B 两节决策树,全场唯一一份 grill)。 改版说明:2026-10-07 按上述方法论重写 —— 决策表补「理由」「影响范围」两列、分支按 A/B 两节重新铺齐、假设与待确认项各自带归宿。与上一版的实质差别见文末。
本表 23 项:已确认 15 项(用户拍板)/模型补全 8 项(7 项【假设】+ 1 项【事实】)。7 项【假设】均未经用户确认,逐条列在 §四待复核清单。
一、起点三句
做什么:一个个人用的 Web 工作台。用户在它里面建项目、在项目里开多个版本,每个版本贴入或上传需求,点一下就生成一份能直接打开的交互页面。
为谁:一个人。操作者就是唯一使用者,没有协作、没有角色、没有团队。
不做什么:进度看板、待办清单、动态流、评审流一律不做。这东西不卖、不融资、不接付费用户,所以也没有账号、订阅、权限这一层。
二、决策表
来源列只有三种取值:用户拍板 / 【假设】 / 【事实】。「影响范围」列写的是这份决策会牵动哪几份下游文档。
A 节 —— 要做什么、为谁、边界在哪
| # | 问题 | 决策 | 来源 | 理由 | 影响范围 |
|---|---|---|---|---|---|
| A1 | 解决什么问题 | 需求、版本、产物现在散在三处:需求在文档里、原型在目录里、找回来靠记路径。缺一个把「建项目 → 开版本 → 贴需求 → 看页面」串成一处的入口 | 用户拍板 | 原话定位就是「为不同项目生成产品交互页面」的工作台 | 1d 价值主张、2a 全部功能 |
| A2 | 成功怎么算 | 点完生成,页面上能出现一份可打开的 HTML,且能点回上一版对照。不设使用量、留存这类数字指标 | 【假设】 | 用户只说了「先把页面生成好」,衡量口径是我补的;本产品无数据源,不许编数字 | 1d 关键指标、2a 验收要点 |
| A3 | 谁用、熟练到什么程度 | 单一个人。他已经在用 WorkBuddy 的产品规划技能,熟悉 research/ prd/ designs/ 这套产出约定 |
用户拍板 | 定位原文即「调用产品规划技能」 | 1c 全份、1d 分节 |
| A4 | 现在怎么凑合 | 在对话里跑技能,产出散落到各目录,靠手记或搜索认路径;同一方案改到第三轮时容易认不出哪份是哪份 | 【假设】 | 依据 A6 的落盘约定(只存项目名/需求名/版本名)反推,没有访谈佐证 | 1c 痛点、1d 价值主张 |
| A5 | 第一版做什么 | 建项目 → 项目内建多版本 → 每版本输入或上传需求 → 点生成 → 看页面 | 用户拍板 | 原话就是这条链路 | 2a 功能清单、2b 页面清单 |
| A6 | 明确不做什么 | 进度看板 / 待办清单 / 动态流 / 评审流;不售卖、不融资、不面向付费用户 | 用户拍板 | 原话「本产品不售卖、不融资、不面向付费用户」 | 2a「不做」对照、1d 取舍 |
| A7 | 价值落在哪一层 | 界面为主。用户拿到的是「一份能看的页面」,约定和文件结构只是手段 | 用户拍板 | 原话「价值层:界面为主」 | 1d 价值主张、2b 页型判定 |
| A8 | 应该有几个界面 | 3 个:项目列表 / 版本列表 / 版本工作台。每个界面只办一件事,不合并 | 用户拍板 | 原话拍了 3 页结构 | 2b 页面清单与流转 |
| A9 | 信息承载到哪一层 | 主屏只留项目名、版本名、版本状态三样;需求全文与产物 HTML 点进去看 | 用户拍板 | 原话「只项目名称、需求名称、版本名称,点进能看」 | 2b 信息承载分档 |
| A10 | 手上已有什么素材 | 有的:用户自己的需求文本(.md / .txt)。缺的:产品规划技能的可直接调用接口 —— 原型期用模拟顶上,真接口接进来之前,生成结果不能算真实产出 |
【假设】 | 依据 A11「先把页面生成好、其余后续再做」的排期推断 | 2a 假设台账、1d 关键假设 |
| A11 | 约束 | 个人自用。无预算、无排期、无合规底线。唯一的时间约束是「先把页面生成好」,其余都往后放 | 用户拍板 | 原话「先把页面生成好、其余后续再做」 | 2a 优先级口径 |
| A12 | 依赖什么 | 依赖 WorkBuddy 工作台与产品规划技能;产物落本地文件系统。不依赖任何后端服务 | 【假设】 | 依据 A13 的形态(个人 web 页面、workbuddy 工作台)+ B7 的持久化决策 | 2a 六项治理、1d 能力 |
| A13 | 用户现在拿什么替代 | 三条:在对话里直接跑产品规划技能;用 v0 / 即时 AI 这类文生界面工具;自己手写 HTML | 【事实】 | 来自 1b 竞品观察(两类工具的共性做法) | 1d 价值主张、1e 替代方案列 |
B 节 —— 做成什么样、哪些情况不成立、状态怎么流转
| # | 问题 | 决策 | 来源 | 理由 | 影响范围 |
|---|---|---|---|---|---|
| B1 | 形态与骨架(粗粒度) | 三页。列表页=一行操作 + 一张列表;工作台=左边贴需求、右边看状态与产物。精确板块与排列归②段 | 用户拍板 | 原话拍了 3 页与工作台的左右分栏方向 | 2b 全份 |
| B2 | 什么情况不成立 | 三种:需求为空 ⇒ 不给生成;技能调用失败 ⇒ 本次不成立,给出失败原因;还没建过任何项目或版本 ⇒ 先引导新建,不摆空表格 | 用户拍板 | 原话「需求为空禁用生成;技能调用失败弹提示可重试」 | 2a 守卫条件、2b 空态 |
| B3 | 状态怎么流转 | 版本有四个状态:draft(草稿)→ running(生成中)→ done(已生成),任一步出错进 failed(失败)。done 可以重新生成,覆盖同一版本,不另起一个 |
用户拍板 | 原话「草稿 → 生成中 → 已生成,可重新生成」 | 2a 状态迁移表 |
| B4 | 失败了怎么办 | 给出失败原因,给一键重试。重试停在同一个版本里,不新建版本 | 用户拍板 | 原话「弹提示可重试」 | 2a F9、2b 工作台右栏 |
| B5 | 输入什么、产出什么、谁维护、存在哪 | 输入=文本框,可输入也可上传 .md / .txt;产出=单个 HTML,存 designs/<项目>/<版本>.html;维护人=用户自己;存在本地 |
用户拍板 | 原话定死了路径与格式 | 2a F7/F8、2b 工作台 |
| B6 | 权限怎么算 | 单人,没有角色系统,也没有越权这回事 | 用户拍板 | 原话「单人,无角色系统」 | 2a 六项治理 |
| B7 | 同一件事被做两次会怎样 | 生成中按钮锁死,点不动;重新生成覆盖同一版本文件,不留重复产物 | 用户拍板 | 前半依据原话「生成按钮防重复点击」,后半的「不留重复」是我补口径 | 2a F6/F11、2a 幂等 |
| B8 | 持久化到什么程度 | 项目、版本、需求、产物路径全部存浏览器本地,刷新和重开浏览器都不丢;清掉浏览器存储就会丢,这一条要明说 | 【假设】 | 原始决策是「浏览器本地存储即可,无需后端账号体系」,我把它展开成可判据 | 2a 六项治理、1d 风险 |
| B9 | 生成这一步怎么实现 | 原型期用「生成过程可视 + 占位产物」模拟技能调用,留一个真接口接入点。真实接入不在本版 | 【假设】 | 原始决策是「原型期内以模拟实现」,我写清它的代价 | 2a F8、1d 关键假设 |
| B10 | 空的时候显示什么 | 没有项目、没有版本时,列表区换成新建引导(一句话 + 主操作),不显示空表格 | 【假设】 | 原始决策已定调,我补了「不显示空表格」这一半 | 2a F3、2b 页1/页2 空态 |
三、假设台账(每条【假设】的归宿)
规矩:每条【假设】只能落在三种归宿里的一种 —— 已确认 / 待实现且已排定确认时机 / 已按假设落地。既没确认、又已经写进实现、还没有落地说明的,不许存在。
| # | 假设 | 归宿 | 说明 |
|---|---|---|---|
| A2 | 成功算「能拿到一份可打开的 HTML」 | ② 待实现且已排定确认时机 | 在 2a 落盘前必须问一次用户:验收是否只认「能打开」,还是要加别的 |
| A4 | 现在靠手记或搜索认路径 | ① 已确认 | 用户拍板「只项目名称、需求名称、版本名称,点进能看」隐含认路径这件事是问题 |
| A10 | 技能真接口暂缺、原型期用模拟 | ③ 已按假设落地 | 影响面:生成结果只是占位产物,不能当真实交付。回退口径:接上真接口后只换 F8 的生成实现,其余不动 |
| A12 | 不依赖后端服务 | ③ 已按假设落地 | 影响面:换设备看不到自己的东西。回退口径:要跨设备时再加账号与云端存储,前端骨架不用改 |
| B8 | 数据存浏览器本地 | ③ 已按假设落地 | 影响面:清浏览器存储等于清库。回退口径同 A12 |
| B9 | 生成过程可视 + 占位产物 | ③ 已按假设落地 | 影响面:生成本身不产生真实页面。回退口径:同 A10 |
| B10 | 空态用新建引导替代空表格 | ③ 已按假设落地 | 影响面:无。回退口径:无需回退,若改成空表格要回②段改 |
四、待复核清单(一次性过)
下面 7 条是模型补的,用户还没逐条回应。请一次看完,逐条说「可以」或「不对」:
- A2 成功口径 —— 只认「能打开一份 HTML」够不够?
- A4 现状描述 —— 现在真是「靠手记或搜索认路径」吗?
- A10 技能接口 —— 是不是确实还没接、暂且用模拟?
- A12 后端 —— 确认不要任何后端?
- B8 存储 —— 存浏览器本地可以吗?(换设备会看不到)
- B9 生成实现 —— 原型期用模拟生成,接受吗?
- B10 空态 —— 空的时候用引导页替代空表格,可以吗?
五、待确认项(三字段齐全才落盘)
| 条目 | 复核人 | 复核时机 | 结论落点 |
|---|---|---|---|
| A2 成功口径 | 用户 | 2a 落盘前必须问 | 1a-需求文档.md A2 行;若改口径,同步 2a-产品功能.md 的验收要点 |
| A4 现状描述 | 用户 | 1c 定稿前 | 1c-用户画像.md 的痛点段 |
| A10 / B9 技能接入 | 用户 | ③段开工前(原型期结束的分界) | 1a-需求文档.md A10 行;同步 2a-产品功能.md F8 |
六、这一版跟上一版的实质差别
上一版是 2026-10-07 01:46 的稿子,四节(做什么 / 为谁 / 明确不做什么 / 两张决策表)+一段假设归宿。这一版逐条比下来,动了这些地方:
- 决策表从 4 列改成 6 列,补上「理由」和「影响范围」。上一版只记了「拍板结果」,看不出为什么这么拍、拍了会牵动谁;下游 2a/2b 拿不到依据。
- 决策粒度从 13 项拆到 23 项。上一版把「界面结构」「版本状态」「数据契约」各压成一行,实际每一行里塞了两三件事;拆开后每行只回答一个问题,来源列才说得准。
- 分支覆盖补了四个 —— 上一版完全没有的:「素材与数据」(A10)、「约束」(A11)、「依赖」(A12)、「替代方案」(A13)。grill-me 的 A 节必问支里这四支一个都没出现。
- 「交付形态」这一支从隐含改成显式三问:价值在哪一层(A7)、几个界面(A8)、信息承载到哪层(A9)。上一版只有「价值层=界面为主」一栏,另两问散在 B 节里。
- B 节从 4 项(B1 界面结构 / B2 版本状态 / B3 不成立条件 / B4 数据契约)扩到 10 项,补齐 grill-me B 节要求的「失败与恢复」「权限」「并发与幂等」三支,并把「持久化」「生成实现」「空态」单列。
- 顶部状态行从「用户拍板 9 项/模型补全 4 项」改成「已确认 15 项/模型补全 8 项(7 项【假设】+ 1 项【事实】)」,并显式写明 7 项未经确认。上一版那句「可推翻」不等于把「未经确认」摆出来。
- 假设归宿段从「一句话打包」(B5–B8 已落地)改成逐条三归宿表,补影响面与回退口径。
- 新增 §四待复核清单与 §五待确认项三字段表 —— 上一版没有这两节,「假设」与「待定」都没有回收时机。
- 边界收紧:按 stage-discovery 硬约束,本份不写功能清单,B1 只给粗粒度骨架,精确板块与排列推给 2b。
七、说人话评分
已过内容准则(humanizer / humanizer-zh),评分 47/50:直接性 10、节奏 9、信任度 10、真实性 9、精炼度 9。
扣分处:决策表的「理由」列为了保持一行一条,写成了短句串,读起来略紧;「影响范围」列在大表里重复出现「2a / 2b」,可以再压。