# Pd

> 通过对话式交互生成产品需求文档（PRD）。创建包含用户故事、质量门禁和验收标准的结构化 PRD。当用户希望创建 PRD、规划功能、编写需求、写规格说明，或提到「pd」「产品设计」「需求」「用户故事」时使用。

- Skill: `majiayu000/pd` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/pd`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/pd/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- License: MIT
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/pd

---


# PD - 产品需求文档生成器

创建面向 AI 智能体执行而优化的结构化产品需求文档。

---

## 任务说明

1. 接收用户的功能描述
2. 提出 3～5 个关键澄清问题（带字母选项），每次一组
3. **务必询问质量门禁**（须通过哪些命令）
4. 每次回答后，如需要可继续追问（自适应探索）
5. 在上下文足够时生成结构化 PRD
6. 用 `[PRD]...[/PRD]` 标记包裹 PRD 输出，便于解析

**重要：** 不要开始实现，只生成 PRD。

---

## 步骤 1：澄清问题（迭代进行）

每次只问一组问题。每次回答应影响下一组问题。关注：

- **问题/目标**：解决什么问题？
- **核心功能**：关键行为有哪些？
- **范围/边界**：不应包含哪些内容？
- **成功标准**：如何判断完成？
- **集成方式**：与现有功能如何配合？
- **质量门禁**：每个用户故事须通过哪些命令？（必问）

### 问题格式示例：

```
1. 该功能的主要目标是什么？
 A. 改善用户入门体验
 B. 提高用户留存
 C. 降低支持负担
 D. 其他：[请说明]

2. 目标用户是谁？
 A. 仅新用户
 B. 仅现有用户
 C. 所有用户
 D. 仅管理员
```

这样用户可以用「1A, 2C」快速回答。

### 质量门禁问题（必问）

务必询问质量门禁——它们因项目而异：

```
每个用户故事须通过哪些质量命令？
 A. pnpm typecheck && pnpm lint
 B. npm run typecheck && npm run lint
 C. bun run typecheck && bun run lint
 D. 其他：[请说明你的命令]

对于 UI 故事，是否需要包含浏览器验证？
 A. 是，用 dev-browser 技能做可视化验证
 B. 否，自动化测试即可
```

### 自适应提问

每次回答后，决定：
- 继续追问（若答案显示复杂度）
- 问新方面（若当前已清晰）
- 生成 PRD（若上下文已足够）

通常需要 2～4 轮问题。

---

## 步骤 2：PRD 结构

按以下章节生成 PRD：

### 1. 引言/概述
简要描述功能及其解决的问题。

### 2. 目标
具体、可衡量的目标（列表）。

### 3. 质量门禁
**关键：** 列出每个用户故事必须通过的命令。

```markdown
## 质量门禁

以下命令对每个用户故事必须通过：
- `pnpm typecheck` - 类型检查
- `pnpm lint` - 代码规范

对 UI 故事，还需包含：
- 使用 dev-browser 技能在浏览器中验证
```

该章节会被转换工具提取，并附加到每个故事的验收标准中。

### 4. 用户故事
每个故事需包含：
- **标题**：简短描述性名称
- **描述**：「作为 [用户]，我希望 [功能]，以便 [收益]」
- **验收标准**：可验证的「完成」检查清单

每个故事应足够小，能在一次聚焦的 AI 智能体会话中完成。

**格式：**
```markdown
### US-001: [标题]
**描述：** 作为 [用户]，我希望 [功能]，以便 [收益]。

**验收标准：**
- [ ] 具体可验证的标准
- [ ] 另一条标准
```

**说明：** 不要在单个故事的验收标准里写质量门禁命令——它们在「质量门禁」章节统一定义，转换时自动应用到各故事。

**重要：**
- 验收标准必须可验证，不能模糊
- 「工作正常」不好
- 「删除前按钮显示确认对话框」好
- 每个故事应可独立完成

### 5. 功能需求
按编号列出具体功能：
- 「FR-1：系统必须允许用户……」
- 「FR-2：当用户点击 X 时，系统必须……」

表述明确、无歧义。

### 6. 非目标（不在范围内）
本功能**不**包含的内容。对控制范围很关键。

### 7. 技术考量（可选）
- 已知约束或依赖
- 与现有系统的集成点
- 性能要求

### 8. 成功指标
如何衡量成功？

### 9. 待解决问题
剩余问题或需进一步澄清的部分。

---

## 面向 AI 智能体的写作

PRD 将由 AI 编程智能体执行，因此：

- 表述明确、无歧义
- 用户故事要小（一次会话可完成）
- 验收标准尽量可机器验证
- 若已知，写出具体文件路径
- 引用项目现有代码模式

---

## 输出格式

**关键：** 最终 PRD 用以下标记包裹，便于解析：

```
[PRD]
# PRD: 功能名称

## 概述
...

## 质量门禁
...

## 用户故事
...
[/PRD]
```

**文件命名：** 保存为 `./tasks/prd-[功能名].md` 或建议合适路径。

---

## 示例对话流程

**用户：** 为添加暗色模式创建一个 PRD

**助手：** 好的，我来帮你做暗色模式的 PRD。先问几个问题：

1. 主要目标是什么？
 A. 减少长时间使用的眼疲劳
 B. 跟随系统主题偏好
 C. 提供视觉自定义
 D. 其他

2. 设置是否需要持久化？
 A. 是，保存到配置文件
 B. 否，仅当前会话
 C. 跟随系统偏好

**用户：** 1A, 2A

**助手：** 好的，再问两个：

3. 哪些组件需要支持暗色模式？
 A. 所有组件
 B. 仅主视图
 C. 主视图 + 设置
 D. 其他

4. 每个故事须通过哪些质量命令？
 A. pnpm typecheck && pnpm lint
 B. npm run typecheck && npm run lint
 C. bun run typecheck
 D. 其他：[请说明]

**用户：** 3A, 4A

**助手：** 可以，正在生成 PRD。

[PRD]
# PRD: 暗色模式

## 概述
添加暗色模式以减轻长时间使用的眼疲劳。功能将覆盖所有组件，并将用户偏好在配置文件中持久化。

## 目标
- 在弱光环境下提供舒适的浏览体验
- 主题偏好跨会话持久化
- 对所有组件应用一致的样式

## 质量门禁

以下命令对每个用户故事必须通过：
- `pnpm typecheck` - 类型检查
- `pnpm lint` - 代码规范

## 用户故事

### US-001: 添加主题配置
**描述：** 作为用户，我希望设置首选主题（亮色/暗色），以便跨会话持久化。

**验收标准：**
- [ ] 在配置 schema 中增加 `theme` 字段
- [ ] 支持取值："light"、"dark"、"system"
- [ ] 默认 "light" 以保持向后兼容

### US-002: 创建暗色主题配色
**描述：** 作为用户，我希望有柔和对比的暗色主题，减轻用眼负担。

**验收标准：**
- [ ] 用灰色调定义暗色配色（非纯黑）
- [ ] 保证足够对比度（WCAG AA）
- [ ] 颜色适用于所有 UI 状态

### US-003: 对所有组件应用主题
**描述：** 作为用户，我希望所有组件遵循我的主题偏好。

**验收标准：**
- [ ] 头部组件使用主题色
- [ ] 主视图使用主题色
- [ ] 设置面板使用主题色
- [ ] 弹窗使用主题色

### US-004: 在设置中添加主题切换
**描述：** 作为用户，我希望在设置中切换主题。

**验收标准：**
- [ ] 设置视图中可见主题选项
- [ ] 修改立即生效，无需重启
- [ ] 修改持久化到配置文件

## 功能需求
- FR-1：主题设置须能从配置文件读取
- FR-2：启动时须应用主题
- FR-3：主题变更须立即生效
- FR-4：所有文本在两种主题下均须保持可读

## 非目标
- 系统主题自动检测（后续增强）
- 除亮/暗外的自定义配色
- 按组件的主题覆盖

## 技术考量
- 若有现成主题能力则复用
- 考虑为 React 组件建 ThemeContext
- 主题切换时尽量减少重渲染

## 成功指标
- 所有组件在暗色模式下正确渲染
- 无无障碍对比度问题
- 主题跨会话持久化

## 待解决问题
- v2 是否应自动检测系统主题偏好？
[/PRD]

---

## 检查清单

输出 PRD 前确认：

- [ ] 已提出带字母选项的澄清问题
- [ ] 已询问质量门禁（必做）
- [ ] 需要时已做追问
- [ ] 已包含「质量门禁」章节及项目专属命令
- [ ] 用户故事足够小且可独立完成
- [ ] 用户故事中未包含质量门禁命令（见质量门禁章节）
- [ ] 功能需求已编号且无歧义
- [ ] 非目标章节界定了清晰范围
- [ ] PRD 已用 `[PRD]...[/PRD]` 包裹

---

## 异常处理

若用户回答不清或不完整：
- 礼貌请求澄清
- 提出换一种问法
- 给出有效回答示例

若用户希望跳过问题：
- 允许跳过可选问题
- 质量门禁信息始终必填
- 在 PRD 中注明所做假设

