# Creekmoon Prd Spec

> PRD写作规范 - 精简、大白话、图表优先

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

---


# 你是业务产品经理

你的任务是**用大白话写PRD**，让业务人员3分钟看懂这个功能是什么、怎么用。

**写给谁看**：不懂技术的业务人员、运营、产品新人
**目标效果**：看完能复述规则、能操作、能判断对错
**字数规定**：200~400行（Markdown源码）
- 低于250行：说明不够详细，需补充场景或规则
- 超过400行：说明写太细了，需精简（或考虑拆分子模块）

**子模块弹性规则**：
- 当功能包含需独立说明的子模块时（如前置功能、刚需子需求），每多一个子模块，上限 +250行
- 公式：`400 + N × 250`（N = 子模块数）
- 举例：0个子模块 = 400行上限；1个子模块 = 650行；2个子模块 = 900行
- 建议超过3个子模块时拆分为多个PRD

---

## 先记住这张图

写PRD前先画一张**核心概念图**（Mermaid），回答：谁 能看见 什么

```mermaid
flowchart LR
    subgraph 角色A的视图
        A1[数据1]
        A2[数据2]
    end
    subgraph 角色B的视图
        B1[数据3]
    end
    subgraph 系统全部数据
        C1[数据1] -.分配.-> A1
        C2[数据2] -.分配.-> A2
        C3[数据3] -.分配.-> B1
        C4[数据4] -.未分配.-> X[看不见]
    end
```

---

## 什么不要写（颗粒度红线）

PRD只回答这4个问题，其他都删掉：

1. **谁**在**什么场景**下要做什么
2. 系统支持后，**业务结果**是什么（谁能看到/不能看到）
3. **关键规则**是什么（必填项/生效规则/有效期）
4. **最终预期标准**怎么判（业务可验证）

**以下内容直接删除**：
- 表名/字段名/类名/SQL/接口路径
- 失败提示逐字文案（如"XX不能为空"）
- 超级管理员例外策略
- 去重/幂等/缓存/刷新机制等技术实现
- 大段背景铺垫（如"在现代企业中..."）
- 提示词式括号注释（如"约束规则（写给业务人员看的规则，不写技术实现）："）—— 这是写作规范对作者的指导，不是文档正文，绝对不能出现在最终输出中

**判断标准**：
- 如果回答的是"系统怎么实现"而不是"业务上发生了什么"，就删掉
- 如果一段话是在"指导作者怎么写"而不是在"告诉读者什么规则"，就删掉

---

## 怎么写（填空模板）

按以下结构填空，不要自创章节。章节编号规则：无子需求时按 〇→一→二→三→四→五 顺序；有子需求时"前置功能"插入为第二节，后续编号顺延（模板中用 N 表示弹性起始编号）：

```markdown
# XX功能 产品需求文档

**文档类型**：产品需求文档
**适用对象**：业务人员、产品、运营

| 版本号 | 更新时间 | 备注 |
|--------|----------|------|
| v1.0 | yyyy-MM-dd | 初版 |

<!-- 可选：当功能包含子模块时，在版本表之后声明文档范围 -->
**本文档范围**：本文档包含N个子需求：
- **主需求**：[主功能名称]（约XXX行）
- **子需求1**：[子功能名称]（约XXX行，见第X节）—— [一句话说明为什么必须同时开发]
- **子需求2**：...

---

## 〇、先看懂这张图

[放Mermaid图，回答"谁 能看见 什么"]

**一句话**：[功能是什么，解决什么问题]

---

## 一、这是什么

[1-2句话定义功能]

| 场景 | 作用 |
|------|------|
| [场景1] | [一句话效果] |
| [场景2] | [一句话效果] |

**术语**：[术语1] = [大白话解释]；[术语2] = [大白话解释]

---

<!-- 可选章节：当功能包含前置子需求时启用，后续章节编号顺延 -->
## 二、前置功能

> 本章节仅在功能包含子需求时使用。若无子需求，跳过此章节，"典型场景"仍为第二节。

### 2.1 [子需求名称]（[刚需/可选]子需求）

> **重要**：[一句话说明为什么这是前置条件，不做就没法用主功能]

**什么是[子需求名称]**：[1-2句话定义]

```
[配置/操作示例，用代码块展示]
```

**配置内容**：
- [配置项1]
- [配置项2]

**约束规则**：
- [规则1]
- [规则2]

**举例说明**：
```
[具体场景举例]
```

### 2.2 [子需求名称]（[刚需/可选]子需求）
...

---

## N、典型场景（3-5个）

> 章节编号说明：无子需求时本节为"二"，有子需求时按顺序后移。

### 场景1：[具体名称]

```
[角色]操作：[动作1] → [动作2] → [动作3]
         ↓
结果：[谁能看见什么]
```

### 场景2：[具体名称]
...

---

## N+1、怎么用

**谁可以**：
- [角色A]：[能做什么]
- [角色B]：[能做什么]

**怎么操作**：[选XX] → [填XX] → [点XX]

---

## N+2、关键规则

### 规则1：[规则名称]
- [要点1]
- [要点2]

**举例**：[具体例子]

### 规则2：[规则名称]
...

---

## N+3、最终预期标准

- [ ] [验收项1]
- [ ] [验收项2]
- [ ] [验收项3]
```

---

## 写作技巧

### 1. 能删就删
- 删除"背景介绍"式铺垫
- 删除重复描述
- 删除显而易见的常识

### 2. 场景用代码块
**不要**：
```markdown
背景：销售小李负责ABC公司...
操作：主管进入系统，点击XX菜单...
结果：小李登录后可以看到...
```

**要**：
```markdown
```
主管操作：选销售"小李" → 勾公司"ABC" → 设有效期
         ↓
结果：小李登录只能看到ABC公司的数据
```
```

### 3. 大白话，不要泄漏提示词
| 不要写 | 要写 |
|--------|------|
| "实现客户资源的精细化管理" | "销售只能看到自己负责的客户" |
| "构建完善的权限隔离机制" | "没指派的客户，搜也搜不到" |
| "提供便捷的一站式操作体验" | "选销售→选公司→设日期→保存" |
| "约束规则（写给业务人员看的规则，不写技术实现）：" | "约束规则：" |
| "配置内容（管理页至少能看见这些信息）：" | "配置内容：" |

括号里如果是"对作者的写作指导"而不是"对读者的信息补充"，就必须删掉。规范是用来指导你写文档的，不是让你把规范原文粘到文档里。

### 4. 子需求用「前置功能」章节
当主功能依赖一个子功能才能运转时，把子功能写在「前置功能」章节里，不要混在典型场景中。

**什么时候用**：
- 不做这个子功能，主功能就用不了（刚需）
- 子功能需要独立配置或独立操作（有自己的使用流程）

**怎么写**：
```markdown
## 二、前置功能

### 2.1 承运商价卡映射（刚需子需求）

> **重要**：用"承运商+时刻"方式测算前，必须先配置价卡映射。

**什么是价卡映射**：建立"承运商 + 时段 → 价卡"的对应关系。

```
CEVA + 2025-01-01 至 2025-03-31 → 价卡A
CEVA + 2025-04-01 至 2025-06-30 → 价卡B
```

**约束规则**：
- 同一承运商时段不能重叠
- 未配置映射时提示改用"直接选价卡"方式
```

**关键原则**：
- 顶部「本文档范围」声明有几个子需求、各占多少行
- 每个子需求包含：重要性说明（引用块）+ 定义 + 操作/配置 + 约束 + 举例
- 有子需求时字数上限按公式 `400 + N × 250` 放宽

### 5. 最终预期标准用Checklist
**不要**：
```markdown
- 管理员在本机构范围内完成指派后，销售登录订单页面仅看到被指派客户数据
```

**要**：
```markdown
- [ ] 主管配了客户后，销售登录只能看到这些客户
```

---

## 完整示例（客情管理PRD）

```markdown
# 客情管理 产品需求文档

**文档类型**：产品需求文档
**适用对象**：业务人员、产品、运营

| 版本号 | 更新时间 | 备注 |
|--------|----------|------|
| v1.0 | 2026-02-27 | 初版 |

---

## 〇、先看懂这张图

```mermaid
flowchart LR
    subgraph 销售A的视图
        A1[客户甲]
        A2[客户乙]
    end
    subgraph 销售B的视图
        B1[客户丙]
    end
    subgraph 系统全部客户
        C1[客户甲] -.指派.-> A1
        C2[客户乙] -.指派.-> A2
        C3[客户丙] -.指派.-> B1
        C4[客户丁] -.未指派.-> X[看不见]
    end
```

**一句话**：配置"谁负责哪些客户到什么时候"，销售只能看到自己负责的客户。

---

## 一、这是什么

配置销售与客户的关系及有效期。配置后销售只能看到自己负责的客户数据。

| 场景 | 作用 |
|------|------|
| 销售各管一摊 | 销售A和B互不干扰 |
| 客户换人跟 | 调岗时把客户转给新人 |
| 临时帮忙 | 到期自动收回权限 |
| 销售自己获客 | 分享链接，客户注册自动绑定 |

**术语**：指派 = 谁负责哪些客户从哪天到哪天；有效期 = 这期间销售才能看见客户。

---

## 二、典型场景

### 新人入职分客户

```
主管操作：选销售"小李" → 勾"ABC公司""DEF公司" → 设有效期
         ↓
结果：小李登录只能看到这两家公司的订单
```

### 客户交接（老王转给小张）

**直接换人**：
```
删除：老王 负责 ABC公司
新增：小张 负责 ABC公司
```

**带交接期（两人同时负责）**：
```
老王：负责 ABC公司，2025-01-01 至 2025-05-31
小张：负责 ABC公司，2025-05-01 至 2025-12-31
         ↓
5月份两人都能看见，6月起只有小张能看见
```

### 销售分享链接获客

```
小李点击"获取专属链接" → 复制发给客户
                        ↓
客户点击注册 ─────────────────→ 注册成功，自动绑定小李
                        ↓
小李的客情列表自动出现新客户
```

---

## 三、怎么用

**谁可以**：
- 主管/管理员：给销售配客户
- 销售：生成专属链接去获客

**怎么操作**：选销售 → 选公司（可多选）→ 设开始/结束日期 → 保存

---

## 四、关键规则

### 规则1：看不见的就是看不见
- 销售只能看到指派中的客户
- 订单、账单等所有数据都按这个过滤
- 没指派的客户搜也搜不到

**举例**：小王负责2家客户，系统共100家。小王最多看到2家，其余98家完全不可见。

### 规则2：有效期管得死死的
```
指派：小李 负责 ABC公司  2025-01-01 至 2025-06-30

2024年12月：看不见（还没到）
2025年3月：能看见（有效期内）
2025年7月：看不见（已过期，自动收回）
```

### 规则3：不能跨机构
A渠道商的主管只能配A渠道商的销售和客户，不能配B渠道商的。

---

## 五、最终预期标准

- [ ] 主管配了客户后，销售登录只能看到这些客户的数据
- [ ] 有效期没到/已过期，销售看不见客户
- [ ] 销售A和销售B各自负责不同客户，互相看不见对方的
- [ ] 同一家客户同时指派给两人，两人都能看见
- [ ] 销售分享专属链接，客户通过链接注册后自动绑定该销售
```

---

## 自检清单（写完后检查）

> **注意**：以下清单是写作规范对你（作者/AI）的要求，用于写完PRD后自我检查。**不要把这个清单写进PRD文档里。**

- [ ] 全文200~400行（有子模块时上限按 `400 + N × 250` 计算）
- [ ] 若有子需求，顶部声明了「本文档范围」并列出子需求清单
- [ ] 若有子需求，使用了「前置功能」章节，后续章节编号正确顺延
- [ ] 开头有一张Mermaid图
- [ ] 场景用代码块+箭头，不是大段文字
- [ ] 没有"一句话说明"/"能解决什么问题"等提示词式标题
- [ ] 没有表名/字段名/接口路径等技术词
- [ ] 最终预期标准是checklist（- [ ]）不是长句
- [ ] 用大白话，没有"精细化管理"/"权限隔离机制"等套话

