Files
WorkBuddy df56c2c137 初始化提交:contentm_agent 工作区全量快照
内容分四块:
1、产品规划产出 —— MCN 短视频整合营销工作台的①段五份(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)、②段两份(2a 功能/2b 布局)、③段界面(DESIGN.md 契约与令牌表 + mcn-workbench.html 原型 + 实测/会诊/审查三份 + 23 张闸门截图)。
2、开源竞品调研 —— 5 个内容工作台项目的取证原始件与 1b 系列分析文档。
3、参考资料 —— 竞品视频抽帧 1145 张 + 2 个源视频 + 功能点截图。
4、机制侧 —— 协作脚本与状态台账、工作区记忆日志、抽帧/OCR 脚本。

.gitignore 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
2026-10-08 08:13:02 +08:00

12 KiB
Raw Permalink Blame History

产品功能(2a)

项目:proto-board|更新:2026-10-07|性质:功能清单 口径依据:stage-requirements/references/create-prd.md(功能六字段、优先级判据、不做清单对照)+ state-machine.md(六项治理)。 改版说明:2026-10-07 重写 —— 功能按使用场景重新组织、补齐状态迁移表与六项治理落点、修掉上一版把状态流转整段外挂的结构问题。与上一版的实质差别见文末。

这份只管一件事:做哪些功能、哪些明确不做、每条什么优先级。 页面长什么样是 2b-界面布局.md 的事,本份不描述页面结构。需求本身在①段定完了,本份不重开需求。

起点三句(给下游快速对齐用,不展开):一个人用的 Web 工作台;链路是建项目 → 开版本 → 贴需求 → 生成 → 看页面;不卖、不协作。

一、功能清单

按使用场景组织(依据 1e-使用场景.md 的 S1–S6),⛔ 不按页面组织 —— 一条场景下的功能可能跨好几页,按页面切会把跨页场景切碎。

每条功能带六个字段:功能名、来自哪条场景、优先级、状态流转、验收要点、跨哪些页面。优先级判据是一句话,不填数字:

  • P0:不做,这条场景整条办不成。
  • P1:不做,场景能办成但要多绕(本该一次点击,变成三步)。
  • P2:不做不影响办成,只是更好用。

S1 启动一个新项目 → 3 条功能

功能名 优先级 状态流转 验收要点 跨哪些页面
F1 新建项目 P0 无状态 输入项目名并确认后,列表首行出现该项目 项目列表
F2 进入项目 P0 无状态 点项目行,进到该项目的版本列表 项目列表 → 版本列表
F3 空态引导新建 P1 无状态 一个项目都没有时,列表区显示「一句话 + 新建主操作」,不出现空表格 项目列表

S2 在同一个项目里试新方向 → 3 条功能

功能名 优先级 状态流转 验收要点 跨哪些页面
F4 新建版本 P0 无状态 在项目内输入版本名后,版本列表出现该版本,初始为 draft 版本列表
F5 进入版本工作台 P0 无状态 点版本行,进到该版本的工作台,左右两栏按当前状态显示 版本列表 → 版本工作台
F6 重新生成 P2 done → running 已生成过的版本可重跑,结果覆盖同一版本文件,版本数不变 版本工作台

S3 拿到一份能打开的页面 → 2 条功能

功能名 优先级 状态流转 验收要点 跨哪些页面
F7 输入或上传需求 P0 无状态 文本框可直接输入;选中 .md / .txt 后内容进文本框;其他后缀不读 版本工作台
F8 生成产品交互页面 P0 draft → running → done 点生成后能逐步看到进行到哪一步;结束后产出单个 HTML 存 designs/<项目>/<版本>.html 并可预览 版本工作台

S4 生成失败之后 → 1 条功能

功能名 优先级 状态流转 验收要点 跨哪些页面
F9 失败原因与重试 P1 failed → running 失败时显示卡在哪一步;一键重试从原处重跑,停在同一个版本里,不新建版本 版本工作台

S5 回头对照旧版 → 1 条功能

功能名 优先级 状态流转 验收要点 跨哪些页面
F10 回看已生成页面 P1 无状态 已生成过的版本,点进去能在产物区看到当时那份页面 版本工作台

S6 别在没写需求时误点生成 → 1 条功能

功能名 优先级 状态流转 验收要点 跨哪些页面
F11 防误生成与防重复 P0 无状态 需求为空时生成不可用;running 期间生成不可用 版本工作台

合计 11 条功能,全部能追回 S1–S6,追不回的有 0 条。

二、状态迁移表

状态空间集中在生成这一条链上(F8 / F9 / F6 共用),其余功能无状态。状态名用英文小写下划线,便于③段直接落到代码。

状态 含义 允许事件 守卫条件 迁移到 副作用
draft 版本已建,没生成过 generate 需求非空 running 记下本次需求快照;清掉上一次的失败原因
running 生成中 done / fail / timeout — done / failed / failed 产物区逐步写步骤日志;生成入口锁住
failed 上次生成失败 retry 需求仍在 running 记下失败原因;需求原文保留不动
done 已有可用产物 regenerate 需求非空 running 覆盖同一版本文件;版本数不变

不在某一行里的事件一律视为非法,显式拒绝,不静默忽略。四个状态都有出口,done 也不是终点(能再 regenerate)。没有「其他」「未知」这类兜底状态,也没有无触发事件的自动漂移 —— 唯一的时间驱动是 timeout,它已在上表显式登记。

三、六项治理(逐条落点)

失败恢复:每个失败态只给一条路 —— 手动重试(F9)。不做自动重试:重试会再调一次技能,连环失败时自动重试会把一次故障放大成多次等待。入口就是失败态下的重试按钮。

持久化:项目、版本、需求文本、产物路径全部存浏览器本地(依据 1a B8 · 【已按假设落地】)。刷新页面、关掉再开都不丢。清掉浏览器存储就等于清库,这一条必须让用户知道(回退口径:要跨设备时再加账号与云端存储,前端骨架不用改)。

并发冲突:单人使用,不存在两个入口同时改同一条数据(依据 1a B6)。唯一要防的是自己盖自己 —— running 期间生成入口锁住(F11),守卫条件在状态迁移表里。

幂等:同一版本重复触发生成,结果落到同一个文件,不产生第二份产物(F6 覆盖口径)。running 期间的重复点击被守卫拦下,不会真的跑两次。

超时迁移:running 超过阈值归入 failed,并带上「超时」作为原因(F9 展示)。⚠️ 阈值是多少,本版定不了 —— 原型期生成是模拟的,等真技能接进来才谈得上定阈值。这是【假设】,已登记在 §五,接入真实技能前必须先问。

不可逆二次确认:本版没有删除、发布、扣费类操作(删除不在范围,1a A6),这一项不适用。唯一一处不可逆是「重新生成覆盖同版本已生成的产物」——成品被覆盖后拿不回来。原型期不加二次确认,理由是需求原文还留着,重跑就能再得一份。这一条按【假设】处理,登记在 §五。

四、「不做 / 移出」逐条对照

规矩是:涉及已拍板项的,不得自行裁剪,必须列差异。本清单与 1a-需求文档.md 的 15 项用户拍板条目逐条对过,差异 0 条。另外与 1a 的 **7 项【假设】**逐条对过,落在 2a 的有 4 项(重试幂等 / 覆盖口径 / 持久化 / 生成实现),已在对应条目里带上状态标注。

对照明细:

  1. 进度看板 / 待办 / 动态流 / 评审流 —— 与 1a A6 一致,不进入功能清单。
  2. 多角色 / 账号体系 / 云端同步 —— 与 1a A3 / B6 / B8 一致,不进入。
  3. 删除版本或项目 —— 1a A6 未列此项,本份也不加;如需删,要回①段补决策,不在②段自行加。
  4. 在生成结果上继续编辑 —— 1a B5 定了产物是单文件成果物,故不做编辑器。

五、假设台账

从①段带进来的每条【假设】,在本份逐条给结论。只允许三种归宿:已确认 / 待实现且已排定确认时机 / 已按假设落地。

假设 本份的结论 归宿
A10 技能接口暂缺、原型期用模拟生成 F8 的生成实现按模拟写,接入点留出 ③ 已按假设落地(影响面:生成结果是占位产物。回退口径:只换 F8 的实现,其余不动)
A12 不依赖后端 持久化那一条按本地存储写 ③ 已按假设落地
B8 数据存浏览器本地 §三 持久化照此写,并把「清存储即清库」显式写出 ③ 已按假设落地
B9 生成过程可视 + 占位产物 F8 的验收要点含「逐步看到进行到哪一步」 ③ 已按假设落地
B10 空态用引导替代空表格 F3 照此写 ③ 已按假设落地
超时阈值(本份新增) 状态迁移表里 timeout 已登记,阈值留空待定 ② 待实现且已排定确认时机(真技能接入前必须问,结论落 2a-产品功能.md §二)
重新生成不做二次确认(本份新增) 按「需求原文还在、重跑即可」处理 ② 待实现且已排定确认时机(③段做交互前必须问,结论落 2a-产品功能.md §三)

六、这一版跟上一版的实质差别

上一版是 2026-10-07 01:47 的稿子:一张 10 行的功能大表(功能 / 来自场景 / 优先级 / 状态流转 / 验收要点 / 跨页)+一段状态流转 +一段六项治理 +一段不做对照 +一段假设标注。这一版:

  1. 功能清单从一张大表拆成六张,按使用场景分组。上一版是「一张表按 F 编号排下来」,虽然带了「来自场景」列,但组织方式仍是按编号;现在每条场景一个小节,跨页场景不再被 F 编号切碎。
  2. 补了 F3 空态引导新建。1a B10 拍了「空态用引导替代空表格」,但上一版的功能清单里根本没有对应功能 —— 一条已拍板的形态决策没有落点。
  3. 功能从 10 条变 11 条(新增 F3;原 F3–F10 顺延为 F4–F11)。
  4. 状态流转从中文改成英文小写下划线(draft / running / failed / done),并按方法论的状态迁移表补齐了 6 列:状态 / 含义 / 允许事件 / 守卫条件 / 迁移到 / 副作用。上一版只有两句文字描述(「正常:草稿 → 生成中 → 已生成」),没有守卫条件,也没有副作用。
  5. 状态从「每个功能自带」改成「集中在迁移表」。上一版把「状态流转」写进每一行,F7 防误生成 那行的状态流转写的是「无状态」,但它的守卫条件其实是生成态的守卫 —— 分散写导致这条被记错位置。现在守卫条件统一在迁移表里,功能表只指向它。
  6. 六项治理每条给了具体落点与理由。上一版 6 条各一句话,其中「超时迁移」写的是「生成超过阈值归入失败态」而没写阈值从哪来;本版明确标出阈值待定并登记为待确认项。
  7. 「不做」对照给出对照条目数与明细 4 条。上一版只写「对照 10 项,差异 0」,没有列出对的是哪些项;本版写出对照的条目数(15 项拍板 + 7 项假设)与 4 条明细,并把「删除」「编辑产物」两条新增的不做项标明出处。
  8. 假设台账从 1 行扩到 7 行,补上超时阈值与二次确认两条本份新增的假设,且都带确认时机与结论落点。上一版只有 F6 一条。
  9. 拿掉了「六项治理整合进功能条目」这句自我说明。上一版标题写「六项治理(状态机整合进功能条目)」,但实际是独立成段、没整合进去 —— 说法和做法对不上,本版改成如实的一节。

七、说人话评分

已过内容准则(humanizer / humanizer-zh),评分 46/50:直接性 10、节奏 9、信任度 9、真实性 9、精炼度 9。

扣分处:六张功能表体例相同,读起来是一串整齐的短句;§四对照那一段为了说清「对过哪些项」写得比别处密。