# Pm Prd Product Solution

> 专门撰写或改写 Quokka/FayeMax PRD 里的「产品方案」章节。Use when the user asks to write 产品方案、补产品方案、按旧 PRD 产品方案格式写、调整产品方案格式、分小点写、根据 UI 图写方案、把功能/页面/需求详情/参考图表格补齐，或在 PRD 中需要把交互、入口、相册页、模板流程、Generate、Enhance、remake、会员拦截、素材限制、上传等待态、兜底逻辑写成可评审方案。触发后必须结合 pm-writing-style-fayemax、pm-prd-doc；若本地 PRD front matter 有 feishu 链接，默认本地修改后同步到对应飞书文档并拉取校验。

- Skill: `zane-qin/pm-prd-product-solution` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add zane-qin/pm-prd-product-solution`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zane-qin/pm-prd-product-solution/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: Zane-qin (https://skillmd.com/u/zane-qin)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/zane-qin/pm-prd-product-solution

---


# PM PRD Product Solution

本 skill 用于把 PRD 中最容易写散的「产品方案」沉淀成可评审、可研发对齐、可测试拆用例的章节。

它继承 FayeMax/Quokka SOP 的写法：结论前置、逻辑直接、表格化并列信息；参考 Quokka v1.1-v1.4 系列 PRD 的产品方案样式，核心表格通常是：

```markdown
| 功能/页面 | 需求详情 | 参考图 |
| :--- | :--- | :--- |
```

也可根据旧文档使用 `需求点 | 需求详情 | 示意`，但同一篇文档内保持一种表头。

更细的历史模式见 `references/quokka-product-solution-patterns.md`。当需求涉及模板、+号入口、相册页、Generate、Enhance、remake、外部模型时，先读该 reference 再写。

## 前置读取

开始写作前，先读取并遵守：

1. `../pm-writing-style-fayemax/SKILL.md`
2. `../pm-writing-style-fayemax/references/part1-canonical.md`
3. `../pm-prd-doc/SKILL.md`
4. 若涉及模型接入 / Generate / 参数能力冻结，再读 `../pm-prd-requirement-details/SKILL.md`
5. 若需要同步飞书，再读 `../lark-doc/SKILL.md` 及其 fetch/update 相关 reference

如果用户给了参考飞书文档，优先用 `lark-cli docs +fetch --api-version v2 --scope keyword --keyword "产品方案|功能/页面|需求详情|参考图|示意"` 拉取局部，不要整篇全文拉取。

## 工作流程

### 1. 先定产品方案边界

先从当前 PRD 或用户输入中提取：

- 本次做什么：新增入口、流程改造、模型接入、模板能力、相册资产、Generate 参数等
- 影响范围：App / Web / 海外 / 国内
- 上游路径：用户从哪里进入
- 核心操作：用户点什么、选什么、上传什么、提交什么
- 下游逻辑：进入哪个页面、发起什么请求、生成什么结果、写入哪些资产
- 约束条件：会员、素材数量、参数合法性、频控、不可用态
- 兜底：失败态、空态、服务端未下发配置、老版本兼容

不要一上来写大段正文。先把这些口径映射到表格行。

### 2. 选择表格行维度

先判断需求类型，再选表格行维度。优先用「功能/页面」拆行，适合页面流明显的 Quokka PRD：

- 起始页 / 首页入口
- 参数面板 / 模型选择器
- 相册页 / 素材选择
- 创作页 / Generate 面板
- 结果页 / 视频详情 / 资产页
- 会员权益 / 订阅拦截
- 其他兼容 / 失败态 / 重新生成

如果需求更偏能力点，而不是页面流，改用「需求点」拆行：

- 入口展示
- 参数选择
- 素材限制
- 模型联动
- 积分计费
- 生成失败
- 埋点 / 后台联动

拆行原则：每一行都应该能被研发或测试单独评审。不要把多个页面硬塞进一行，也不要把一个很小的按钮拆成多行。

按 Quokka 历史 PRD 的类型路由：

| 需求类型 | 优先拆行 |
| :--- | :--- |
| 模板 / 图片资产 / 双图模板 | 模板首页、模板详情页、+号模板选择页、上传图片、模板创作页、资产页、运营后台 |
| +号入口 / 相册页 | +号功能入口面板、相册页、最近使用、本地相册&资产、选择引导框、项目选择器、大图模式、边界场景 |
| Generate / 视频生成 / 外部模型 | 前置逻辑、起始页、上传图片、创作面板、参数面板、会员权益、其他兼容 |
| Enhance / 超分 / 大文件上传 | 功能使用权限、上游路径、Enhance起始页、相册页、创作页-图片、创作页-视频、裁剪页、上传等待态、资产队列 |
| remake / 详情页迭代 | keyframe迭代、视频详情页展示生成详情、支持重新生成、低版本/会员/模板/模型边界 |

### 3. 写「需求详情」单元格

单元格内使用固定层次：

```html
<p><b>展示逻辑</b></p>
<ul>
<li>谁能看到 / 什么时候展示 / 默认态是什么</li>
</ul>

<p><b>交互逻辑</b></p>
<ul>
<li>用户操作 → 页面反馈 → 下游动作</li>
</ul>

<p><b>下游逻辑</b></p>
<ul>
<li>参数如何继承 / 数据如何写入 / 是否进入资产或会话</li>
</ul>

<p><b>异常与兜底</b></p>
<ul>
<li>不合法、失败、无权限、服务端无配置时怎么处理</li>
</ul>
```

不是每行都必须四段齐全；但涉及链路或端能力时，至少写清「展示/触发」和「下游/兜底」。

写法要求：

- 用「上游路径 → 操作 → 下游逻辑」线性描述，避免跳跃。
- 展示条件、触发时机、默认值、限制、兜底必须明确。
- UI 文案用中文引号或反引号标出，例如 `Unlock access to {model_name}`。
- 参数或字段用代码样式，例如 `base_cost`、`audio`、`duration`。
- 不写「优化体验」「保持一致」这种无法验收的空话；若沿用线上，写「同 v1.4.0 重新生成流程」或「同线上全局失败态」。
- 图还没给时，不等待 UI 图，先写可评审版，并在参考图列写 `TBD（待补 xxx UI 图）`。
- 产品方案表格里的「需求详情」必须使用分组标题 + 缩进无序列表，不要用 `<br>-` 把多条规则堆在同一个长段落里。这样本地 Markdown 和飞书都更容易阅读、评审和后续局部修改。

小点化写法是硬规则：

- 一级 bullet 只放逻辑分组，不承载一整坨结论。优先用 `判定规则：`、`状态：`、`排列规则：`、`回退逻辑：`、`示例：` 这类短标签。
- 二级 bullet 写可执行规则；一条只写一个条件、动作或结果。遇到「同时、并且、若...则...否则...」时，优先拆成多条二级 bullet。
- 若某条一级 bullet 超过 45-60 个中文字符，或包含两个以上判断条件，必须下沉为二级 bullet。
- 状态类规则按「可用时 / 不可用时 / 已选变不可用时」拆；排序类规则按「组间排序 / 组内排序」拆；回退类规则按「触发条件 / 回退目标 / 同步刷新项」拆。
- 复用旧逻辑时，不要写成一句长描述；用 `判定规则：` 下挂两条：`沿用 xxx 逻辑`、`本期变化：xxx`。
- 示例单独成点，放在规则之后；示例只用于解释规则，不替代前面的规则定义。
- 单个表格单元格建议 3-6 个粗体分组；每个分组 2-5 个一级 bullet；每个一级 bullet 最多 2-4 个二级 bullet。超过这个密度，拆到新的表格行或新的粗体分组。

针对不同需求类型补充：

- 模板类要写清模板类型标识、运营后台排序、上传张数、模板创作页输入区和资产页分类。
- 相册类要写清相机/相册授权、最近使用、本地相册、Asset、项目选择器、大图模式、跨来源无需去重但共享数量上限。
- Generate 类要写清单图/双图/三图模式，Reference vs Keyframe，prompt、`@` 调用、参数面板、Create 积分。
- Enhance 类要把图片和视频分开写，尤其是上传时机、非会员裁剪、免费次数/积分/付费引导判断顺序、上传队列。
- remake 类要写前置场景、生效场景、详情页展示、工程信息继承和各种下线/过期边界。

### 4. 参考图列处理

有 UI 图时：

- 本地 Markdown：写图片链接、Figma 链接或占位说明。
- 飞书文档：保留原有 `<img>` / 素材块，不要全文覆盖；只局部替换文字。

没有 UI 图时：

```markdown
TBD（待补起始页模型选择 / 参数面板 UI 图）
```

占位要具体到页面或状态，方便设计后续补图。

### 5. 与其他 PRD 章节分工

产品方案负责「端上行为和可验收规则」，不要把所有内容塞进来：

- 模型能力、参数、成本：优先放在「模型清单 / 冻结字段」。
- 计费公式：只在产品方案开头保留一句，结果以服务端为准。
- 埋点：独立成「埋点方案」，产品方案里只提醒需要埋点，不展开事件表。
- 运营后台：独立成「运营后台」，产品方案里只写端上依赖。
- 设计图：放「参考图」列或「设计方案」章节。

## 标准输出模板

用于本地 Markdown。优先使用 HTML table，保证表格单元格内的无序列表缩进能被稳定渲染：

```html
### 2. 产品方案

**计费**：总消耗 = 模型基础消耗 × 分辨率倍率 × Audio 系数 × 时长（向上取整）；展示结果以服务端下发为准。

<table>
<thead>
<tr><th>功能/页面</th><th>需求详情</th><th>参考图</th></tr>
</thead>
<tbody>
<tr>
<td>起始页</td>
<td>
<p><b>选择模型</b></p>
<ul>
<li>默认值：首次进入默认选中 PixVerse V6.5</li>
<li>展示规则：
  <ul>
  <li>厂商 Tab 与 Model series 分两行展示。</li>
  <li>不支持的模型不隐藏，改为外显置灰。</li>
  </ul>
</li>
</ul>
<p><b>参数面板</b></p>
<ul>
<li>...</li>
</ul>
<p><b>下游逻辑</b></p>
<ul>
<li>...</li>
</ul>
</td>
<td>TBD（待补起始页 UI 图）</td>
</tr>
<tr>
<td>创作面板</td>
<td>
<p><b>继承逻辑</b></p>
<ul>
<li>进入创作面板时：
  <ul>
  <li>继承起始页已选模型与参数。</li>
  <li>仅展示当前图片数量与 Use for 可支持的模型。</li>
  </ul>
</li>
</ul>
<p><b>模式与模型联动</b></p>
<ul>
<li>...</li>
</ul>
<p><b>积分数值</b></p>
<ul>
<li>...</li>
</ul>
</td>
<td>TBD（待补创作面板 UI 图）</td>
</tr>
<tr>
<td>其他兼容</td>
<td>
<p><b>重新生成</b></p>
<ul>
<li>...</li>
</ul>
<p><b>生成失败</b></p>
<ul>
<li>...</li>
</ul>
<p><b>异常与兜底</b></p>
<ul>
<li>...</li>
</ul>
</td>
<td>TBD（待补失败态 UI 图）</td>
</tr>
</tbody>
</table>
```

如果参考文档使用 `需求点 | 需求详情 | 示意`，可以保留该表头，但内容组织不变。

## 同步飞书

若当前本地 PRD front matter 有：

```yaml
feishu: https://...
```

默认在本地修改后同步飞书，除非用户明确说「先别同步」。

同步原则：

1. 优先局部更新「产品方案」章节，不用全文 overwrite。
2. 如果云端「参考图」列已经有 `<img>` / 素材块，只替换「需求详情」列的文字 block；不要整段替换表格或章节，避免误删图片、画板、附件等资源。
3. 若是纯文本章节且没有图片资源，可用 `docs +update --doc-format markdown --command str_replace --pattern "### 产品方案...### 设计方案"`。
4. 若要把 `<br>-` 格式调整为无序列表，优先用 `docs +fetch --scope section --detail with-ids` 找到表格单元格 block，再用 `block_replace` 将该单元格替换为 `<p><b>分组标题</b></p><ul><li>...</li></ul>`。
5. 更新后必须 `docs +fetch --scope keyword --keyword "产品方案|起始页|创作面板|会员权益"` 校验。
6. 汇报飞书 revision，告诉用户已同步。

## 自检清单

交付前检查：

- [ ] 表格行是否覆盖入口、核心操作、下游、兜底。
- [ ] 每一行是否能被研发/测试独立评审。
- [ ] 是否没有空泛词：优化体验、保持一致、逻辑同上。
- [ ] 「需求详情」是否使用分组标题 + 缩进无序列表，而不是 `<br>-` 长段落。
- [ ] UI 图缺失时，参考图列是否有具体 TBD 占位。
- [ ] 与模型清单 / 计费 / 会员规则没有数字冲突。
- [ ] 若有飞书链接，是否已局部同步并拉取校验。

