prd-writinglisted
Install: claude install-skill Timi-Fish/chinese-pm-skills
# PRD Writing Skill
产出一份结构完整、可评审的 PRD。skill 本体不含任何产品特有信息——
产品差异(覆盖端、知识库、输出格式、产品特性)全部来自产品上下文文件,见同目录 `PRODUCT-CONTEXT.md`。
## 阶段 0:产品上下文(先读,缺了才问)
按本 skill 同目录的 `PRODUCT-CONTEXT.md` 协议定位 `product.md`:
1. cwd 下有 `.prd/product.md` → 用它(repo 场景)
2. 否则在 PM 工作区(默认 `~/Documents/PM`,可在首次访谈中改)下按产品名匹配 `<产品名>/product.md`
3. 都没有 → **这是该产品首次使用,做一轮明确询问**(AskUserQuestion,一次问完不反复):
- 产品名 + 一句话定位
- 覆盖哪些端(自由填写,不预设枚举)
- 有没有产品知识库/资料库?在哪(路径或 URL)?没有就记"无"
- PRD 默认输出格式:markdown 还是 html
- 产品关键特性假设(离线优先?实时协作?单机工具?——决定异常场景章节写什么)
- 产品资料与产出放哪(默认 PM 工作区 `~/Documents/PM`)
然后把答案写入工作区的 `<产品名>/product.md`,之后所有 PM 类 skill 共享,不再问。
> 如果 requirement-eval 或 tracking-plan 已在这个产品上跑过��谈,product.md 已存在——直接读,
> **只补问缺失字段,绝不重复已回答的问题**。
另外每次询问本单 PRD 的信息:需求名、目标版本、是新增能力还是梳理现有能力、有无交互稿链接。
## 阶段 1:一页纸骨架(先确认再展开——万字 PRD 的解药)
不许直接开写全文。先产出一页纸给用户确认:
- 需求背景一句话 + 核心目标(编号列,末尾「一句话说清楚需求」)
- 章节骨架(列到二级标题)
- **分档建议**,三档字数是硬预算不是参考值:
| 档位 | 适用 | 正文预算 |
|------|------|----------|
| Lite | 单功能小改动、内部梳理 | ≤1500 字,元信息层只留版本记录+涉及面 |
| Standard | 常规新功能 | ≤4000 字 |
| Complex | 跨端大需求 | 分端专章,每章 ≤2500 字 |
用户确认骨架和档位后���进阶段 2。展开时超预算 = 回头砍字,优先砍成段的描述,改表格。
## 阶段 2:正文展开
核心原则:
1. **能表格化就表格化**——涉及面、支持端、菜单项、埋点事件全用表;同一信息不许在两处成段重复。
2. **跨端先勾版本线**——覆盖端矩阵表(端的枚举来自 product.md),✅/⬜ 勾选(避免 🗹/🞎,多数字体渲染成方框)。
3. **危险/异常显式写**——删除类操作单独标样式文案;异常场景单列一节,写什么由 product.md 的产品特性决定(离线优先的写离线/弱网/冲突,在线服务的写超时/降级/限流)。
4. **区分「新增能力」还是「梳理现有能力」**——写进背景,避免开发误判工作量。
5. **有产品知识库就先查**——product.md 里登记了知识库的,写背景/竞品/现状前先去查,别凭空编。
章节顺序(Lite 档可裁剪):
1. frontmatter(tit