初始化提交: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 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
This commit is contained in:
WorkBuddy committed 2026-10-08 08:13:02 +08:00
commit df56c2c137
1773 files changed
+205840

No files matched your search

@@ -0,0 +1,106 @@
# 需求文档(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 条是模型补的,用户还没逐条回应。请一次看完,逐条说「可以」或「不对」:
1. A2 成功口径 —— 只认「能打开一份 HTML」够不够?
2. A4 现状描述 —— 现在真是「靠手记或搜索认路径」吗?
3. A10 技能接口 —— 是不是确实还没接、暂且用模拟?
4. A12 后端 —— 确认不要任何后端?
5. B8 存储 —— 存浏览器本地可以吗?(换设备会看不到)
6. B9 生成实现 —— 原型期用模拟生成,接受吗?
7. 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 的稿子,四节(做什么 / 为谁 / 明确不做什么 / 两张决策表)+一段假设归宿。这一版逐条比下来,动了这些地方:
1. 决策表从 4 列改成 6 列,补上「理由」和「影响范围」。上一版只记了「拍板结果」,看不出为什么这么拍、拍了会牵动谁;下游 2a/2b 拿不到依据。
2. 决策粒度从 13 项拆到 23 项。上一版把「界面结构」「版本状态」「数据契约」各压成一行,实际每一行里塞了两三件事;拆开后每行只回答一个问题,来源列才说得准。
3. 分支覆盖补了四个 —— 上一版完全没有的:「素材与数据」(A10)、「约束」(A11)、「依赖」(A12)、「替代方案」(A13)。grill-me 的 A 节必问支里这四支一个都没出现。
4. 「交付形态」这一支从隐含改成显式三问:价值在哪一层(A7)、几个界面(A8)、信息承载到哪层(A9)。上一版只有「价值层=界面为主」一栏,另两问散在 B 节里。
5. B 节从 4 项(B1 界面结构 / B2 版本状态 / B3 不成立条件 / B4 数据契约)扩到 10 项,补齐 grill-me B 节要求的「失败与恢复」「权限」「并发与幂等」三支,并把「持久化」「生成实现」「空态」单列。
6. 顶部状态行从「用户拍板 9 项/模型补全 4 项」改成「已确认 15 项/模型补全 8 项(7 项【假设】+ 1 项【事实】)」,并显式写明 7 项未经确认。上一版那句「可推翻」不等于把「未经确认」摆出来。
7. 假设归宿段从「一句话打包」(B5–B8 已落地)改成逐条三归宿表,补影响面与回退口径。
8. 新增 §四待复核清单与 §五待确认项三字段表 —— 上一版没有这两节,「假设」与「待定」都没有回收时机。
9. 边界收紧:按 stage-discovery 硬约束,本份不写功能清单,B1 只给粗粒度骨架,精确板块与排列推给 2b。
## 七、说人话评分
已过内容准则(`humanizer` / `humanizer-zh`),评分 **47/50**:直接性 10、节奏 9、信任度 10、真实性 9、精炼度 9。
扣分处:决策表的「理由」列为了保持一行一条,写成了短句串,读起来略紧;「影响范围」列在大表里重复出现「2a / 2b」,可以再压。
@@ -0,0 +1,125 @@
# 用户画像(1c)
> 项目:`proto-board`|更新:2026-10-07|性质:外部取证(受限)
> 口径依据:`stage-discovery/references/user-personas.md`(6 块结构与最佳实践)+ `stage-discovery/SKILL.md` 的「用户画像必须能追到原话」硬约束。
> 改版说明:2026-10-07 重写 —— 按方法论 6 块结构铺开、每个结论标溯源等级、把「取不到」的地方显式写出来而不是绕过去。与上一版的实质差别见文末。
**取证状态:本产品没有外部用户,这一份是操作者看自己。它不是用研结论,是自证。** 下面每一条都标了它现在是「原话」「判断」还是「推演」,以及将来要靠什么才能升级成事实。
## 一、为什么只有一张画像
方法论给的是 3 张画像(`user-personas.md` 的 Input 就写着「3 refined user personas」)。这里只能出 1 张,原因不是偷工:定位原文是「单一个人,无协作、无多角色、无团队」(`1a-需求文档.md` A3)。硬凑出第 2、3 张,就等于把同一个人的不同时刻包装成不同人群 —— 这类自证是这个项目已经踩过的坑(三个 JTBD 全是同一个人的三种时刻)。所以这里明说:**第 2、3 张为空,且不打算补。**
## 二、画像卡
### 画像名与背景
**「一个人同时压着好几个想法的产品工作者」。**
按方法论这里本该有年龄区间、职级、公司规模。**取不到:没有访谈、没有问卷、没有后台数据,不能编。** 能说的只有行为特征,下面四条都能在 1a 里找到出处:
1. 已经在用 WorkBuddy 的产品规划技能,产出落在 `research/` `prd/` `designs/` 这套约定目录里(依据 A3,用户拍板)。
2. 自己写需求文本,格式是 `.md` 或 `.txt`(依据 B5,用户拍板)。
3. 一个人从头管到尾,不需要把活交给别人(依据 A3)。
4. 同一件事往往会改好几轮(依据 B3 拍了「可重新生成」与 1b 里「版本化管理」这个差异点)。
### 主 JTBD
**核心要办成的事:把手上的一个想法,变成一份能打开给人看的页面,而且旧的那几版还留着。**
处境和频率:坐在电脑前、脑子里已经有一版需求、要拿东西给人看的时候。频率取不到 —— **没有数据能说明他一周用几次,不编。**
### 三大痛点
方法论要求每条痛点写清影响和严重度。严重度没有量尺,这里改成「它会卡住哪一步」,这样至少可核。
1. **需求、版本、产物散在三处,回来时认不出哪份是哪份。**
影响:每次重新进入都要先花一轮时间认路径。
卡住哪一步:A5 链路的第一步「建项目」之前 —— 还没开始干,先得考古。
来源:**推演**(依据 A4 反推,1a 里已标【假设】)。
2. **改到第三轮时,怕新的一版把上一版盖掉。**
影响:想试新方向时会犹豫,或者手工复制文件。
卡住哪一步:B3 的 `done → running` 重新生成这一步。
来源:**推演**(依据 B3 拍了「多版本」「可重新生成」反推 —— 如果他不在意覆盖,这两条决策就不会存在)。
3. **生成失败时不知道问题出在需求还是技能,重来一遍又是白等。**
影响:一次失败就打断整段思路。
卡住哪一步:B4 失败恢复那一步。
来源:**推演**(依据 B2「技能调用失败弹提示可重试」反推 —— 已拍板要做重试,说明失败是他预期会遇到的事)。
### 三大渴望
每条附一个「怎么算达成了」,避免写成愿望。
1. **想要一个固定的地方,把手上的想法一个个放进去。**
怎么算达成:新建一次之后,下次回来能直接点进那个项目,不用先找。
2. **想要同一个项目下能留几份并行的方案,互不干扰。**
怎么算达成:能点开任意一版看到它当时生成的页面。
3. **想在生成的时候看得见进行到哪一步,而不是盯着一个转圈。**
怎么算达成:生成过程中屏幕上能说出「现在在读需求 / 在调技能 / 在出页面 / 在落盘」这类具体步骤;失败时能说出卡在哪一步。
第 3 条的依据来自 1b 竞品观察:同类工具普遍是「黑盒一次出图」,而本产品把「生成过程分步可见」列为差异点之一。这一条是**判断**,不是用户原话。
### 一条反直觉洞察
**他要的可能不是「更快出图」,而是「看着它出」。**
如果只在乎速度,那这份东西就该做成黑盒、一次给结果,越省事越好。但 1a 已经拍了「生成过程可视化」(B9),1b 也把「生成过程可见」当成差异点。反过来推:一个只想快点拿到图的人,不会为「看得见步骤」这一条付任何代价。
对产品决策的意义:生成过程不是装饰,它承担着「让人相信这一版是按我说的做的」这件事。所以 ③段做生成中状态时,步骤日志不能省成一根进度条。
**这条是推演,不是数据。** 要证伪只需要问用户一句:「生成的时候你更想看到进度条,还是更想看到他在做什么?」
### 产品契合评估
能对上的:
- 三页结构(1a A8)正好对着三个痛点里的前两个:项目列表收纳想法,版本列表留下并行方案。
- 工作台左右分栏(1a B1)对着第 3 个渴望:左边是输入,右边就是「看得见那件事」的落点。
- 生成中锁按钮(1a B7)对着第 2 个痛点:不给「手抖再点一次」的机会。
对不上的、会硌手的地方:
1. **数据只在浏览器本地**(1a B8)。换台电脑就看不到自己前面做的东西,也没有导出入口。这是他日常最容易撞上的一堵墙。
2. **产物是 `.html` 单文件**(1a B5)。单文件好带走,但改起来只能回工作台重新生成,不能在文件上接着改。
3. **生成结果在原型期是占位**(1a B9)。看得见过程,但拿到的东西不是真的能用的页面 —— 这一段里「能打开给人看」这个核心诉求其实没被满足。
## 三、溯源表(逐条)
| 结论 | 现在是 | 靠什么升级成事实 |
|---|---|---|
| 已在用产品规划技能、熟悉约定目录 | 原话(A3) | 已成立,不用升级 |
| 需求文本是 `.md` / `.txt` | 原话(B5) | 已成立 |
| 痛点 1:认不出哪份是哪份 | 推演(依据 A4) | 问一句「上一次回头找旧方案,你是怎么找到的」 |
| 痛点 2:怕覆盖上一版 | 推演(依据 B3) | 问一句「上一次改方案,旧的你留了吗,存在哪」 |
| 痛点 3:失败后白等一轮 | 推演(依据 B2) | 问一句「技能跑挂了那次,你后来怎么处理的」 |
| 渴望 3 / 反直觉洞察:要看得见过程 | 判断(依据 1b 差异点) | 问一句「生成的时候你更想看到进度条,还是它正在做什么」 |
| 使用频率、场景数量 | 取不到 | 需要真实使用记录,本版拿不到 |
按硬约束:**上面标「推演」的,不得进 1d 当事实依据。** 1d 里凡引用本份的,只能引用标「原话」的那两条,其余按【假设】处理。
## 四、数据缺口与补法
1. **没有一次真实访谈。** 补法:三条痛点各配一个「问已经发生过的事」的问题(见 §三),问完就能从推演升格成原话。不问将来会不会用,只问上一次怎么处理的。
2. **没有行为数据。** 补法:产品上线后看本地记录 —— 但产品本来就无后端,所以这条路走不通;替代做法是从第一版原型的使用里人工记。
3. **画像的人口学信息全空。** 补法:单用户产品其实不需要这一栏,建议直接在本份顶部声明「本画像不含人口学维度」,不要为了凑格式编年龄和职级。
## 五、这一版跟上一版的实质差别
上一版四节:主用户 / JTBD / 痛点与诉求 / 说明。这一版:
1. 结构换成方法论的 6 块(画像名与背景 / 主 JTBD / 三大痛点 / 三大渴望 / 一条反直觉洞察 / 产品契合评估)。上一版没有「渴望」这一块,也没有「产品契合评估」,也没有「反直觉洞察」—— 6 块里缺 3 块。
2. **补了「为什么只有一张画像」**,并明确拒绝硬凑第 2、3 张。上一版只写了「本产品无外部用户」一句,没说方法论要的是 3 张、也没说为什么不做。
3. 痛点从 3 条散句改成逐条带「影响」与「卡住哪一步」。上一版没有严重度这一栏,也没说它卡在链路的哪一环。
4. **新增三大渴望**(上一版完全没有),并把第 3 条接到 1b 的差异点上。
5. **新增反直觉洞察**,并给出证伪它的一句话问法。
6. 新增 §三溯源表和 §四数据缺口 —— 上一版只在文末写了一句「均为推演」,没有逐条溯源,也没说怎么补。
7. 产品契合评估里补了三条「对不上的地方」。上一版没有摩擦点与未满足需求,只有正面描述。
8. 新增「人口学信息取不到、建议不凑格式」的显式声明 —— 上一版直接跳过了这一段。
## 六、说人话评分
已过内容准则(`humanizer` / `humanizer-zh`),评分 **46/50**:直接性 10、节奏 9、信任度 9、真实性 9、精炼度 9。
扣分处:三块结构(痛点 / 渴望 / 洞察)都用编号列,节奏偏齐;「影响」这半句在三处写法接近,可以再错开。
@@ -0,0 +1,128 @@
# 产品策略(1d)
> 项目:`proto-board`|更新:2026-10-07|性质:判断(依据 1a / 1b / 1c)
> 口径依据:`stage-discovery/references/product-strategy.md`(9 节 Product Strategy Canvas + 第 11/12 步「关键假设与最小验证实验」)。
> 改版说明:2026-10-07 重写 —— 按 9 节 Canvas 逐节落,不适用的节写明为什么而不是留空,并补上关键假设与验证实验。与上一版的实质差别见文末。
**这份是判断,不是取证。** 每条结论后面都跟了它依据哪份文件;追不到的按【假设】处理。本产品不售卖、不面向付费用户(1a A6),所以 Canvas 里跟市场竞争、增长、成本位相关的那几节不适用 —— 下面逐节写明不适用在哪,不硬填。
## 一、愿景
**把手上的想法,变成一个能打开的东西;想改的时候,旧的还在。**
一句话,不展开。理由:1c 里三个痛点的根,都在「东西散着、认不出、不敢改」这一句上;愿景写长了对下游没有约束力,还会自然往「要做哪些功能」上飘。
## 二、市场分段
按问题分,不按人群分(方法论原文:「market defined by people's problems」)。
**唯一一段:一个人同时推着好几个想法,需求与产物散在各处,需要把它们收敛到一处的人。**
为什么先做这一段,也只有这一段:1a A3 定了「单一个人,无协作、无多角色、无团队」。没有第二段可以分,也不打算分 —— 一旦分,产品就要处理多角色同步,那是它明确不解决的问题(1a A6)。
这一段的 JTBD 与约束:见 1c 的主 JTBD 与三条痛点。⚠️ 1c 里的 JTBD 与痛点都是【推演】,按硬约束不得在本份当事实用 —— 本份凡引用 1c,只引用它标「原话」的两条(已在用产品规划技能、需求文本是 `.md`/`.txt`)。
## 三、相对成本
**不适用。** 方法论这一节问的是「像西南航空那样压成本,还是像星巴克那样做溢价」—— 那是相对于竞争对手的定位问题。本产品不售卖(1a A6),没有对手,也没有成本位可比。
改问一个自用的版本:**什么上省,什么上不肯省。**
- 省:流程复杂度、协作与权限、账号体系、进度管理(1a A6 逐条不做)。这些每一样都会把 MVP 拉长,砍掉它们换来的是「一条链路能跑通」。
- 不肯省:生成过程可见(1b 差异点)。这一条要额外做左右分栏与步骤日志,但它是本产品区别于同类工具的地方,砍了就没剩下什么。
## 四、价值主张
按方法的四格写(What before / How / What after / Alternatives)。
**What before(现在什么样)**:需求写在文档里,原型落在目录里,找回上一条靠记路径或搜文件名。想试新方向时要么手工复制文件,要么把上一版盖掉。(依据 1c 痛点 1、2;⚠️ 两条均为推演)
**How(我们怎么给)**:把「建项目 → 开版本 → 贴需求 → 生成」串进一个工作台。项目管收纳,版本管并行,生成这一步把过程拆开摆在眼前(1a A5 / B1 / B9)。
**What after(给完什么样)**:点进项目就能看到自己开过几版、每版什么状态;点进任一版能看到当时那份页面;想再试一次就在同一版上重跑,不新增分支(1a B3)。
**Alternatives(不用它怎么办)**:三条,来自 1b 的外部取证 ——
1. 在对话里直接跑产品规划技能。产物一样有,但没有「项目 / 版本」这层结构,回来时靠翻话题。
2. 用 v0 / 即时 AI 这类文生界面工具。出图快,但按对话组织、不保留版本,产物绑在账号里。
3. 自己手写 HTML。完全可控,但每次都要从零搭。
三条里没有一条能同时做到「有版本」和「产物能带走」,这正是本产品的站位。
## 五、取舍(我们不做什么)
列出来的每一条都是主动放弃,不是没想过。
1. **不做进度看板、待办、动态流、评审流**(1a A6)。加了它就会往项目管理器长,而用户要的是出页面。
2. **不做账号体系、订阅、权限**(1a A6 / B6)。不售卖就不需要付费墙;单人就不需要角色系统。
3. **不做跨设备同步**(1a B8)。数据存本地,换设备看不见 —— 这是主动接受的代价,写在这里是为了让它别在别处变成「意外」。
4. **不做「在生成结果上接着改」**(1a B5)。产物是单文件 HTML 成果物,不是可编辑源。要改就回工作台重新生成。
5. **第一版不做真技能接入**(1a B9)。原型期生成结果是占位。
## 六、关键指标
**不设 North Star 数字。** 方法论给的是「驱动业务成功的单一指标」,而本产品不售卖(1a A6),没有任何数据源,凭空给一个数字就是把判断伪装成数。
改成本产品能核的三条成果观察:
1. **链路闭环**:从项目列表一路点到生成完成,不用回到对话里做辅助动作 —— 有一条不闭环就是失败。
2. **对照得住**:任一旧版都能点回去看到它当时的页面。
3. **失败说得清**:任一次失败都能指出卡在哪一步,而不是只给一句「出错了」。
这三条都可以在原型上人工走一遍验出来,不依赖埋点。
## 七、增长
**不适用。** 方法论这一节问的是销售驱动还是产品驱动、获客渠道、单位经济模型。本产品不售卖、只有一个人用(1a A3 / A6),没有获客这回事。
它对 MVP 的意味只有一条:**不需要为「第一次上手」做引导层**。用户就是开发者本人,知道这套东西怎么用。所以新建引导只需要一句话加一个按钮(1a B10),不必做教程、示例数据、空状态插画。
## 八、能力
要做出这个东西,需要具备的本事:
1. **把产品规划技能接成一次可调用的动作**。原型期用模拟顶上(1a B9),但接入点要留出来。
2. **把生成这一件事拆成看得见的步骤**。这是 1b 认定的差异点,也是 §三里唯一不肯省的投入。
3. **用「项目 / 版本」组织产物落盘**,路径按 `designs/<项目>/<版本>.html`(1a B5)—— 结构错了,回看旧版这一步就废。
4. **不做后端也能持久**:靠浏览器本地存储撑住刷新与重开(1a B8)。
不打算自建的:生成引擎本身、登录、云端存储。前面两个明确不做,第三个留作回退口径。
## 九、别人为什么抄不走
本产品不进入市场,所以这里问的不是商业壁垒,是**它凭什么不会被一次替换掉**:
1. **绑在个人工作流上。** 它和产品规划技能的产出约定(`research/` `prd/` `designs/`)咬在一起,换个工具就得重排这套约定。
2. **产物能带走。** 单个 HTML 存本地(1a B5),不绑账号 —— 这既是用户的自由度,也意味着迁移成本低。**这一条是弱点不是壁垒,如实写在这里。**
3. **版本语义。** 「项目 → 版本」这层结构是同类文生界面工具普遍没有的(1b 差位表),要做出来不难,但要改掉它整套组织方式。
⇒ 结论:**真正的护城河只有第 1 条,而且很薄。** 如实说,不硬凑三条。
## 十、关键假设与最小验证实验
方法论最后两步要求:把「这个策略要成立,必须先为真」的事挑出来,各配一个花不了多少工夫的实验。
| # | 关键假设 | 不成立会怎样 | 最小验证实验 |
|---|---|---|---|
| H1 | 用户真的会为「生成过程可见」多等一会儿(1c 反直觉洞察) | §三「不肯省」的投入白花,§二切错人,产品退化成更慢的文生界面工具 | 拿两个版本的生成中界面给他看:一根进度条 vs 逐步日志,问他要哪个。5 分钟 |
| H2 | 「版本」这层结构他真的会用,而不是永远只留一版(1a B3 / 1b 差位) | 版本列表页与「回看旧版」整条功能都成了摆设 | 问他上一次改方案时旧的那份去哪了。1 句话 |
| H3 | 需求文本不靠结构也能生成出像样的页面(1a B5 只收 `.md`/`.txt`) | 生成质量不可控,「界面为主」这条价值主张塌掉 | 拿一段真实的、没整理过的需求文本跑一次生成,看结果能不能看。10 分钟 |
三个实验都不花钱、不依赖数据源,也不需要上线。**任何一个为假,都要回到 §四重写价值主张,不是改功能清单。**
## 十一、这一版跟上一版的实质差别
上一版四节:为什么值得做 / 边界(不做)/ 假设与风险 / 取舍理由。这一版:
1. **节号整套换掉**,从自拟四节改成产品策略 Canvas 的 9 节(+关键假设与验证实验)。上一版完全没有节号,看不出对应方法论的哪一节。
2. **补了三节上一版没有的**:§二市场分段、§六关键指标、§八能力、§九防御性 —— 一共四节。其中 §六与 §九是方法论里明确要求的。
3. **两节明确标「不适用」并说清理由**:§三相对成本、§七增长。上一版是干脆没有这两节 —— 留空和「说了不适用」是两回事,前者下游会以为漏了。
4. **§四价值主张改成四格**(before / how / after / alternatives)。上一版是三条并列的短句,没有「替代方案」这一格,而那正是外部取证里最有信息量的一格。
5. **补上关键假设与验证实验(§十)**:三条假设各配一个 5~10 分钟能做的实验。上一版只有一张「假设与风险」表,写了风险却没给验证动作,等于把假设永久挂着。
6. **§九如实写了弱点**(产物可带走 = 迁移成本低)。上一版没有防御性这一节,也就没有地方承认这一点。
7. §五取舍从 2 条扩到 5 条,把「跨设备看不见」「改不了生成结果」「第一版不接真技能」这三条原本藏在别处的代价摆到前台。
## 十二、说人话评分
已过内容准则(`humanizer` / `humanizer-zh`),评分 **46/50**:直接性 10、节奏 9、信任度 9、真实性 9、精炼度 9。
扣分处:§三和 §七两节都在解释「为什么不适用」,句式接近;§九结尾为了写实话,收得比别处硬一些。
@@ -0,0 +1,105 @@
# 使用场景(1e)
> 项目:`proto-board`|更新:2026-10-07|性质:判断
> 口径依据:`stage-discovery/references/usage-scenario.md`(唯一句式四槽位、六条完成判据、§5 替代方案一问)。
> 落点说明:方法论文末写的是 `strategy/31-使用场景.md`,段入口 `stage-discovery/SKILL.md` 定的是 `research/1e-使用场景.md` —— **以段入口为准**,本份落在 `research/`。
> 改版说明:2026-10-07 重写 —— 六条场景各补「替代方案」对照与来源追溯,并加完成判据自检表。与上一版的实质差别见文末。
**本份就是用户故事,一份承载全部。** 它就是②段功能清单的直接推导依据:2a 每列一项功能,都要能追回下面某一条编号;反过来,下面某条推不出任何功能,那条场景就该删。
## 一、格式
唯一句式,四个槽位缺一不算完成:
```
作为【谁】,当【什么处境】,我要【办成什么】,这样【得到什么结果】
```
三条约束:「作为」里是具体身份,不写「用户」「某类人」;「当」要具体到能被观察或被原话印证,不写「经常」「有时候」;「我要办成什么」里不许出现功能名,出现就是越界到②段。
## 二、场景
### S1 启动一个新项目
作为【周末坐下来、手里同时压着两三个想法的我】,当【想把其中一个先立起来,而草稿还散在聊天记录和临时文件里】,我要【给这个想法一个固定的地方,后面关于它的东西都往那儿放】,这样【下次回来不用先花十分钟翻找上次说到哪】。
- **替代方案**:在对话里开一个新话题,或者自己新建一个目录。
- **它为什么不简单**:话题会越堆越多,目录名靠手打、回来认不出哪个是哪个。成本随想法数量增长 —— 想法越多越乱。满足「代价随规模增长」。
### S2 在同一个项目里试新方向
作为【方案已经改到第三轮的我】,当【想试一个新方向、又不想把上一轮推翻】,我要【在同一个项目下另开一份,两份都留着】,这样【不用手工复制文件,也不用担心新改的盖掉旧的】。
- **替代方案**:复制文件改个名;或者用 git 分支。
- **它为什么不简单**:复制文件会丢掉「这两份是什么关系」这件事,过两天自己也认不出;git 分支对不写代码的人门槛太高。满足「有真实成本」。
### S3 拿到一份能打开的页面
作为【要拿东西给人看的我】,当【需求已经在脑子里成型,缺的是一份能点能看的页面而不是一段文字】,我要【把需求贴进去、等一会儿拿到一份能直接打开的文件】,这样【不用自己从零画,也不用为了看一眼效果先去搭环境】。
- **替代方案**:用 v0 / 即时 AI 这类文生界面工具。
- **它为什么不简单**:它们按对话组织、不保留版本,产物绑在账号里。要按项目留档、要对得上旧版时,这条路不可得。满足「不可得」。
### S4 生成失败之后
作为【点了生成却看到报错的我】,当【生成跑到一半停下来,而我分不清是需求写得不清楚还是工具本身出问题】,我要【看到卡在哪一步,然后原样再跑一次】,这样【不用重新组织一遍需求,也不会反复怀疑是自己写错了】。
- **替代方案**:自己把需求重新粘一遍再点一次。
- **它为什么不简单**:如果问题在工具那侧,重贴一遍还是同样的结果,白等一轮。满足「有真实成本」。
### S5 回头对照旧版
作为【在几个方向之间摇摆的我】,当【想确认上一版到底长什么样,好决定往哪个方向走】,我要【点回那一版,看到它当时生成的页面】,这样【不用凭记忆比,也不用从文件堆里一个个捞】。
- **替代方案**:去 `designs/` 目录按文件名翻。
- **它为什么不简单**:文件名不会告诉你那一版长什么样,只能逐个点开。成本随版本数增长。满足「代价随规模增长」。
### S6 别在没写需求时误点生成
作为【思路还没理清的我】,当【界面就摆在那儿,手快先点了生成】,我要【在需求还是空的时候点不动它】,这样【不会多出一份空页面,也不用手动回头删】。
- **替代方案**:靠自觉不点。
- **如实说明**:这一条的替代方案就是「简单到不值一提」那一类 —— 靠自觉本来就不花成本。但这一条要防的不是「麻烦」,是「一次误点的后果」:多出一份没内容的版本,还可能覆盖掉正要用的那一版。所以判据换成「误触一次的代价」,而不是「替代方案有多麻烦」。这一条**不按「不值一提就该砍」处理**,理由已写明。
## 三、完成判据自检
方法论给了六项可机械核对的判据,逐条对:
| 检查项 | 判据 | 本份怎么过的 |
|---|---|---|
| 四槽位齐全 | 「作为 / 当 / 我要 / 这样」四词都在 | 六条全齐,无缺 |
| 谁 | 具体身份,不是「用户」「某人」 | 六条分别是「周末坐下来…的我」「改到第三轮的我」「要拿东西给人看的我」「看到报错的我」「在几个方向之间摇摆的我」「思路还没理清的我」 |
| 处境 | 能追到 1a 某一行或一句原话 | 见 §四溯源表,六条全部可追 |
| 办成什么 | 零功能名 | 逐条查过:没出现「项目列表」「版本列表」「工作台」「生成按钮」这类功能名;「生成」在 S3/S4 里指的是这件事本身,不是按钮名 |
| 得到什么 | 写的是少掉的麻烦,不是愿景 | 六条的「这样」全部落在「少花时间 / 少出错 / 不用记」,无一条写愿景或 North Star |
| 可读性 | 能原样念给用户听 | 六条都用日常说法写的,没有内部术语 |
## 四、来源追溯
| 场景 | 处境从哪来 | 办成的事从哪来 |
|---|---|---|
| S1 启动一个新项目 | 1a A4(现在靠手记或搜索认路径,【假设】)+ A5(链路第一步) | 1a A5「建项目」;1a A1(把链路的头一段串起来) |
| S2 试新方向 | 1c 痛点 2(怕覆盖上一版,【推演】) | 1a A5「项目内建多版本」;1a B3「可重新生成」 |
| S3 拿到页面 | 1a A7(价值层=界面为主,用户拍板) | 1a A5「输入需求 → 点生成 → 看页面」;A13 替代方案 |
| S4 失败之后 | 1c 痛点 3(失败后白等,【推演】) | 1a B2「技能调用失败弹提示可重试」;B4「失败原因 + 一键重试」 |
| S5 对照旧版 | 1c 痛点 1(认不出哪份是哪份,【推演】) | 1a A9「点进能看」;B3「多版本留着」 |
| S6 别误点 | 1a B2「需求为空禁用生成」(用户拍板) | 同左;1a B7「生成按钮防重复点击」 |
⚠️ S1 / S2 / S4 / S5 的处境依据是 1c 的【推演】与 1a 的【假设】。按硬约束,这些**不进 1d 当事实**;本份只把它们当作「待验证的处境」,验证方式见 `1c-用户画像.md` §四。
## 五、这一版跟上一版的实质差别
上一版是六条场景加一段说明。这一版:
1. **每条场景补了「替代方案」与「它为什么不简单」**。方法论 §5 明说这一问最有杀伤力(「如果替代方案简单到不值一提,这个问题就不值得做」),上一版一条都没有 —— 等于把唯一的证伪机制省掉了。
2. **S6 显式处理了「替代方案确实简单」这个矛盾**,没有硬套判据蒙过去,而是换成「误触一次的代价」并写明理由。上一版没有这一层。
3. **新增 §三完成判据自检表**(六项逐条给结论)。上一版只在文末声明「四条槽位均齐」,没有逐项核对,也没有「零功能名」这条的核查记录。
4. **新增 §四来源追溯表**。上一版没有说每条场景的处境是从哪条决策推出来的,2a 要追来源时只能反猜。
5. 处境从偏抽象改成具体可观察:S1 从「我有一个新想法要验证」改成「周末坐下来、手里压着两三个想法、草稿散在聊天记录里」;S2 从「我在项目里想试不同方案」改成「方案已经改到第三轮」。
6. 加了「谁」这一槽位的具体化:上一版六条的「作为」全是同一句「作为【个人产品工作者】」,等于没写——它是个职业标签,正是方法论点名不许写的那种。
## 六、说人话评分
已过内容准则(`humanizer` / `humanizer-zh`),评分 **48/50**:直接性 10、节奏 10、信任度 9、真实性 10、精炼度 9。
扣分处:六条场景的句式天然相同(这是方法论定死的),节奏上靠「替代方案」两行来错开,仍显整齐;S6 的说明段为了把道理讲透,比其余几条长。
@@ -0,0 +1,134 @@
# 产品功能(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。
扣分处:六张功能表体例相同,读起来是一串整齐的短句;§四对照那一段为了说清「对过哪些项」写得比别处密。
@@ -0,0 +1,130 @@
# 界面布局(2b)
> 项目:`proto-board`|更新:2026-10-07|性质:页面骨架
> 口径依据:`stage-requirements/SKILL.md`(②—③交界:②段钉骨架、③段做皮肉)+ `create-prd.md` §二(布局五样、信息承载分档、页型一句)。
> 改版说明:2026-10-07 重写 —— 补页型判定、每页一句话、流转条件,并把信息分档的判据逐条答出来。与上一版的实质差别见文末。
**这份只管骨架:有哪几页、每页几个板块、板块怎么排、页与页怎么跳、每条信息放在哪一档。** 配色、字体、间距、组件样式、动效一个字都不写 —— 那是③段。功能条目的有无与优先级是 `2a-产品功能.md` 的事,本份不碰。
## 一、页型判定
**工具型页面。** 依据:用户每次进来是把一件事干完(贴需求、等生成、回头看旧版),不是看一眼就下决心买什么;产品定位里也没有营销或售卖这一层(1a A6)。
判型只写这一句。⛔ 不写「用哪个骨架」「哪个区块」—— 那是③段按设计方向定的事。
这一句为什么必须写:③段的版式供给偏落地页向。不说页型,③段就会套错骨架,做出「一行小字 + 大标题 + 一行灰字」那种样子 —— 判据全绿,但一看就不是工作台。
## 二、页面清单
三页,由 1a A8 定死,不加不减。
1. **项目列表页** —— 进门那一页。看自己开过哪些项目,以及新建一个。
2. **版本列表页** —— 某个项目里面的样子。看这个项目开过几版、每版什么状态,以及新建一版。
3. **版本工作台页** —— 干活的那一页。左边贴需求和点生成,右边看它进行到哪一步、结果是什么。
## 三、页面流转
- 项目列表 →(点某个项目的行)→ 版本列表。
- 版本列表 →(点某个版本的行)→ 版本工作台。
- 版本工作台 →(点面包屑上的项目名)→ 回到版本列表;→(点面包屑的根)→ 回到项目列表。
- 新建项目这个动作发生在项目列表页的操作行;新建版本发生在版本列表页的操作行 —— 两处都不跳页,就地建完回到同一页的列表里。
- 三页共用一个顶栏(左产品名、右当前位置),所以无论跳到哪一页,都看得见自己在哪、怎么退回去。
流转条件只有「点哪一行去哪一页」,没有隐藏入口,也没有需要满足前置条件才放行的跳转。
## 四、每页的板块与排列
灰块粒度:只讲有哪些块、从上到下怎么排,不讲长什么样。
### 页 1 · 项目列表
1. 顶栏:左边是产品名,右边是「当前位置:根」。
2. 操作行:左边是「项目」这个标题,右边是新建项目的主操作。
3. 项目列表:一行一个项目,每行是项目名 + 版本数 + 最近更新时间 + 一个「进去」的指示。
主操作:新建项目(在操作行右侧)。次一级的动作是点整行进项目 —— 整行可点,不另设按钮。
空态:一个项目都没有时,列表区换成新建引导(一句话 + 新建项目的主操作),不摆一张空表格。
### 页 2 · 版本列表
1. 顶栏:左边是产品名,右边是面包屑「项目名」。
2. 操作行:左边是这个项目的名字(当标题用),右边是新建版本的主操作。
3. 版本列表:一行一个版本,每行是版本名 + 状态 + 最近更新时间 + 一个「进去」的指示。
主操作:新建版本(在操作行右侧)。次一级是点整行进工作台。
空态:这个项目还没开过版本时,列表区换成新建引导。
### 页 3 · 版本工作台
1. 顶栏:左边是产品名,右边是面包屑「项目名 / 版本名」。
2. 主工作区,左右两栏(窄屏上下堆叠):
- 左栏是需求输入区:需求文本框、上传入口(只认 `.md` / `.txt`)、生成主操作,外加一个演示用的「模拟失败」入口。
- 右栏是状态与产物区,按当前状态换内容:`draft` 显示提示语;`running` 显示步骤日志;`failed` 显示失败原因加重试;`done` 显示产物预览加重新生成。
主操作:生成(需求非空、且不在 `running` 时可用);失败态下变成重试;已生成态下变成重新生成。
## 五、信息承载分档
判据只有一条:**删掉它,主操作还做得成吗。** 答「做得成」的,只能进「可点入」。不许拿「能读到」「将来可能需要」当理由把它留在主屏。
| 信息 | 分档 | 判据回答 |
|---|---|---|
| 项目名 | 主屏常驻 | 删掉就选不了项目,主操作做不成 |
| 版本名 | 主屏常驻 | 删掉就选不了版本,主操作做不成 |
| 版本状态 | 主屏常驻 | 删掉就不知道该不该点进去,主操作做不成 |
| 需求全文 | 可点入(只在工作台左栏) | 删掉仍能选版本、仍能生成 —— 生成时才需要它 |
| 产物 HTML | 可点入(只在工作台右栏预览) | 删掉不影响生成这个动作本身 |
| 失败原因 | 可点入(失败态才出现在右栏) | 删掉仍能点重试;它服务的是「知道卡在哪」,不是主操作本身 |
前面三条是 1a A9 拍板的主屏三样,一条都不多。需求全文与产物都走「点进去看」。
## 六、窄屏怎么变
只写布局怎么动,不写视觉。
- 三页顶栏收成一行,面包屑用「/」紧凑排开。
- 页 3 的左右两栏改上下堆叠:输入区在上,状态与产物区在下。
- 列表行在窄屏仍是单行一条,需要时把版本数、更新时间折到下一行,但不丢信息。
## 七、骨架五样自检
| 要给的 | 在哪一节 | 结论 |
|---|---|---|
| 页面清单 | §二 | 3 页,每页一句话 |
| 页面流转 | §三 | 5 条跳转,全部带条件 |
| 每页板块与排列 | §四 | 三页逐页给出块序 |
| 每页主操作 | §四 各页末 | 三页各一个主操作 |
| 每条信息的分档 | §五 | 6 条信息逐条给判据回答 |
## 八、假设台账
从①段带进来的假设里,落在骨架上的有两条,逐条给结论。
| 假设 | 本份的结论 | 归宿 |
|---|---|---|
| B10 空态用引导替代空表格 | 页 1、页 2 的空态照此写 | ③ 已按假设落地(影响面:无。回退口径:改成空表格要回②段改本份) |
| B9 生成过程可视 + 占位产物 | 页 3 右栏 `running` 一段写成步骤日志,不是一根进度条 | ③ 已按假设落地(影响面:`running` 这段要有位置承载多条步骤。回退口径:只换这一块内容,骨架不动) |
依据假设得出的骨架点已带上状态标注(见页 3 右栏与两处空态)。⛔ 全文零视觉词。
## 九、这一版跟上一版的实质差别
上一版是 2026-10-07 01:47 的稿子:页面清单 / 页面流转 / 页面内布局(三页)/ 信息承载分档 / 窄屏变化,共五节。这一版:
1. **补了页型判定(§一)**。上一版完全没有这一节,而 `create-prd.md` 明写「页型一句(仍需写)」,并给了理由:不说页型,③段会套错骨架。这是上一版最实的一处漏。
2. **页面清单从只有页名改成页名 + 一句话说清每页干什么**。上一版页名后面跟的是「(入口)」「(=项目详情,由 B1 命名)」这类注,是结构说明不是职责说明。
3. **页面流转补上条件与返回路径**。上一版写了「点行 → 跳转」和面包屑回退,但没写「新建动作发生在哪一页、建完停在哪」,也没说这些跳转不需要前置条件。
4. **每个板块标了序**。上一版页 1、页 2 的板块是编号列,页 3 是缩进散列;这一版三页统一按从上到下的序号排,且把「顶栏」明确写进每页第 1 块。
5. **信息承载分档补上「失败原因」一条**(上一版只有 4 条),并把判据回答写全 —— 上一版有判据回答,但用的是「删掉它主操作还做得成吗」这一句当标题、下面对每条给的是结论式短语,没把「为什么做得成 / 做不成」说清。
6. **主操作从三处散写收成每页末一行**。上一版在页面内布局里写了「主操作」,又在信息分档里重述了一遍状态与预览的位置,同一件事写了两遍。本版按「同一件事只写一遍」收敛。
7. **新增 §七骨架五样自检表**,把方法论要求的五样逐条对账,上一版没有这一层对账。
8. **新增 §八假设台账**。上一版完全没有继承①段的假设 —— `2a` 里带了假设标注,`2b` 一个字没有,同一个段里两份文档两种做法。
9. 删掉了上一版文末那句「(判据:删掉它主操作还做得成吗)」的重复标题。
## 十、说人话评分
已过内容准则(`humanizer` / `humanizer-zh`),评分 **46/50**:直接性 10、节奏 9、信任度 9、真实性 9、精炼度 9。
扣分处:§四三页的板块列都是「几号 + 名词」的短条目,节奏偏平;§五判据回答列为了对齐写法,六行结构接近。
@@ -0,0 +1,75 @@
# 落点说明 · vibe-product 六份①②段文档新稿
> 产出:第 10 棒任务会话 `[执行]-[开源项目调研]-vibe-product六份阶段文档重写新稿`(排期 `e012f7d6`,域 `content_marketing_agent/执行会话`)
> 时间:2026-10-07 23:3x|目标:`执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/`
## 一、新稿 → 源路径,逐条对应
六份新稿全部落在本目录下的 `vibe-product六份-新稿/`,文件名与源文件**逐字相同**。
| # | 新稿(本目录内) | 源(⛔ 全程只读,未改动一个字节) |
|---|---|---|
| 1 | `vibe-product六份-新稿/1a-需求文档.md` | `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/research/1a-需求文档.md` |
| 2 | `vibe-product六份-新稿/1c-用户画像.md` | `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/research/1c-用户画像.md` |
| 3 | `vibe-product六份-新稿/1d-产品策略.md` | `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/research/1d-产品策略.md` |
| 4 | `vibe-product六份-新稿/1e-使用场景.md` | `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/research/1e-使用场景.md` |
| 5 | `vibe-product六份-新稿/2a-产品功能.md` | `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/prd/2a-产品功能.md` |
| 6 | `vibe-product六份-新稿/2b-界面布局.md` | `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/prd/2b-界面布局.md` |
源六份的 mtime 仍是 `01:46`(1a/1c/1d/1e)与 `01:47`(2a/2b),本棒未触碰。
## 二、②段两份在哪找到的
派活原文说「在该目录子树内自行定位」。实测结果:**都在,没缺**。
- `docs/pm/proto-board/prd/2a-产品功能.md`(3034 B,mtime 01:47)
- `docs/pm/proto-board/prd/2b-界面布局.md`(3383 B,mtime 01:47)
⇒ 不需要写「源缺失」。
## 三、按什么判据重写
| 份 | 方法论载体(只读) |
|---|---|
| 1a | `stage-discovery/references/grill-me.md`(A/B 两节决策树、决策表 6 列、假设三归宿、待确认三字段) |
| 1c | `stage-discovery/references/user-personas.md`(6 块结构)+ `stage-discovery/SKILL.md`「必须能追到原话」 |
| 1d | `stage-discovery/references/product-strategy.md`(9 节 Canvas + 第 11/12 步验证实验) |
| 1e | `stage-discovery/references/usage-scenario.md`(四槽位、六条完成判据、§5 替代方案) |
| 2a | `stage-requirements/references/create-prd.md`(六字段、优先级判据、不做对照)+ `state-machine.md`(六项治理) |
| 2b | `stage-requirements/SKILL.md`(②—③交界)+ `create-prd.md` §二(布局五样、信息分档、页型一句) |
段入口:`stage-discovery/SKILL.md`、`stage-requirements/SKILL.md`。
说人话判据源:`E:/ProgramData/.workbuddy/skills/humanizer-zh/SKILL.md`+`session-mechanism/references/作业规矩/04-去AI味与说话方式.md`。
## 四、逐份做了什么(一句话)
1. **1a**:决策表 4 列 → 6 列(补理由、影响范围);决策从 13 项拆到 23 项;补 A 节缺的四个必问支(素材与数据 / 约束 / 依赖 / 替代方案);「交付形态」从隐含改成显式三问;B 节从 4 项扩到 10 项;新增待复核清单与待确认三字段表。
2. **1c**:结构换成方法论 6 块(原缺渴望 / 反直觉洞察 / 产品契合评估 3 块);说明为什么只有 1 张画像而不是 3 张;痛点补影响与「卡住哪一步」;新增溯源表与数据缺口。
3. **1d**:节号整套换成 9 节 Canvas;补市场分段 / 关键指标 / 能力 / 防御性四节;两节明确标「不适用」并给理由(相对成本、增长);价值主张改成 before/how/after/alternatives 四格;补三条关键假设与各配一个最简验证实验。
4. **1e**:六条场景各补「替代方案 + 它为什么不简单」;S6 显式处理「替代方案确实简单」这个矛盾;新增完成判据自检表与来源追溯表;「作为」槽位从同一句职业标签改成六个具体身份。
5. **2a**:功能表从一张大表拆成六张、按使用场景分组;补 **F3 空态引导新建**(1a B10 已拍板但上一版无落点),功能 10 → 11;状态流转改英文小写下划线并补齐 6 列迁移表(含守卫条件与副作用);六项治理逐条给落点与理由;不做对照给对照条目数与 4 条明细;假设台账 1 行 → 7 行。
6. **2b**:补**页型判定**(工具型页面 —— 上一版完全缺失,方法论明写必写);页面清单补每页一句话;流转补条件与新建停位;信息分档补「失败原因」一条并把判据回答写全;新增骨架五样自检表与假设台账。
## 五、硬约束逐条对账
| # | 要求 | 结论 |
|---|---|---|
| 1 | 重写 ≠ 润色:内容层真改、按方法论节号重排,文末写明「与上一版的实质差别」逐条列 | ✅ 六份文末各有该节,合计列出实质差别 48 条(1a 9 / 1c 8 / 1d 7 / 1e 6 / 2a 9 / 2b 9,逐份现数) |
| 2 | 落盘文字过说人话,门槛 ≥45/50,每份文末写评分(五维) | ✅ 六份评分:1a 47、1c 46、1d 46、1e 48、2a 46、2b 46(均五维分列) |
| 3 | 半成品按失败交付,不许当完成上报 | ✅ 六份均写全(各自文末的实质差别与评分都在位),无半成品 |
| 4 | 收口命令带 tid 位置参数,`done` 带 `--artifact` | ✅ 收口命令见 §七,`--artifact` 指本文件 |
| 5 | 落地到 vibe-product 不由本棒做,写 `NEED-USER.md` | ✅ 已追加(见 `tmp/supervise-inbox/NEED-USER.md` 第 3 条) |
| 6 | 不改 `goal.json` / 生命周期 / 不删旧文件 / 不碰 session-mechanism | ✅ 全部未触碰 |
## 六、自检(本棒现算)
- **文件名逐字一致**:六份新稿文件名与源逐字相同(含中文与全角括号),另加本说明一份,共 7 个文件。
- **零视觉词**(只对 2b 有硬要求):`2b-界面布局.md` 未出现配色 / 字体 / 间距 / 圆角 / 阴影 / 动效这类词;提到「面包屑」「状态」属于骨架层。
- **功能零越界**:`1e-使用场景.md` 六条「我要办成什么」里无功能名;`2a` 不含页面结构描述;`2b` 不含功能优先级与有无。
- **事实与假设分开**:`1a` 来源列只用「用户拍板 / 【假设】/【事实】」三种取值,并在顶部给出「已确认 15 / 模型补全 8」两个数。
- **未编造**:1c 的人口学信息、使用频率、1d 的 North Star 数字、2a 的超时阈值,全部显式写「取不到 / 待定」,没有填数。
## 七、收口与余项
- 本棒收口:`collabd.py --report ea3ce52d-6afd-4397-a737-ec7626e2e73d --state done --by "[执行]-[开源项目调研]-vibe-product六份阶段文档重写新稿" --artifact "执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/vibe-product六份-新稿/落点说明.md"`
- **落地留给主会话**:六份新稿要覆盖进 `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/`,属跨工作区写入,本棒域门禁写不了 —— 已写进 `tmp/supervise-inbox/NEED-USER.md`。