如何写一份 AI 友好的 PRD:让 Claude 读懂你的产品需求
从传统 PRD 到 AI-Ready PRD 的转变,掌握结构化、精确、可执行的需求文档写作方法
为什么传统 PRD 不够用了
当你用 Claude Code 让它实现一个功能时,你是在和一个拥有超强理解力但缺乏上下文的 AI 协作。
传统 PRD 的问题:
传统 PRD:
"用户需要一个登录功能,应该简单易用"
AI-Ready PRD:
"在 /login 路由下,提供邮箱+密码登录。
错误处理:密码错误返回'密码不正确',邮箱未注册返回'该邮箱未注册'。
成功后重定向到用户上次访问的页面或 /dashboard。
限流:同一 IP 5 分钟内超过 5 次失败触发验证码。"
差距在哪里?精确度、可执行性、边界条件。
AI-Ready PRD 的核心原则
1. 结构化分层
把 PRD 分成清晰的层次,AI 和人类都应该能快速定位信息:
PRD 结构:
├── 背景 (Context)
│ └── 为什么做这个功能
├── 目标 (Goals)
│ ├── 用户目标
│ └── 业务目标
├── 用户故事 (User Stories)
│ └── 格式:作为...我想...以便...
├── 功能需求 (Features)
│ ├── 功能 1
│ │ ├── 描述
│ │ ├── 交互流程
│ │ ├── 边界条件
│ │ └── 验收标准
│ └── 功能 2
├── 非功能需求 (Non-Functional)
│ ├── 性能要求
│ ├── 安全要求
│ └── 兼容性
└── 技术约束 (Technical Constraints)
└── 现有系统限制、依赖
2. 用具体替代模糊
| 避免 | 使用 |
|---|---|
| ”简单易用" | "用户能在 3 秒内完成操作" |
| "支持常见操作" | "支持增删改查,批量操作上限 100 条" |
| "界面美观" | "遵循现有 Design System,使用 Primary Button" |
| "处理错误" | "网络超时重试 3 次,间隔 2s,报告错误给 Sentry” |
3. 包含边界条件和异常
AI 擅长处理Happy Path,但边界条件需要明确列出:
登录功能的边界条件:
├── 正常登录
├── 密码错误(最多 5 次)
├── 邮箱未注册
├── 账号被锁定(登录失败 5 次后锁定 30 分钟)
├── 网络超时
├── Token 过期
└── 同时多设备登录
4. 明确验收标准
让 AI 知道”完成”是什么样子:
验收标准 (Acceptance Criteria):
- [ ] 用户输入正确邮箱和密码后成功登录
- [ ] 密码错误时显示"密码不正确"
- [ ] 第 5 次密码错误后显示验证码
- [ ] 账号锁定后显示"账号已锁定,请 30 分钟后再试"
- [ ] 登录成功后跳转到原始页面或 /dashboard
- [ ] 移动端适配良好
- [ ] 页面加载时间 < 2s
实战:用 Claude Code 生成 PRD
Step 1: 让 Claude 帮你写初稿
提示词:
"帮我写一份 [功能名称] 的 PRD。
背景:公司正在 [业务场景],用户反馈 [问题]。
目标:
- 提升 [指标] 从 X% 到 Y%
- 降低用户操作步骤从 N 步到 M 步
请包含:
1. 用户故事(3-5 个核心场景)
2. 功能描述
3. 交互流程
4. 边界条件和错误处理
5. 验收标准
格式要求:清晰分层,使用 Markdown,便于后续 AI 工具处理。"
Step 2: 用 AI 审查和完善
提示词:
"审查以下 PRD,找出:
1. 模糊或可能产生歧义的地方
2. 缺失的边界条件
3. 可能导致实现偏差的假设
4. 需要技术澄清的问题
PRD 内容:
[paste 你的 PRD]"
Step 3: 转化为技术规格
提示词:
"把以下 PRD 转化为技术实现规格:
1. 数据模型(需要的数据库表/字段)
2. API 接口设计( endpoints, 请求/响应格式)
3. 前端组件(需要的页面和组件)
4. 需要接入的第三方服务
5. 技术债务或重构点
PRD:[paste 你的 PRD]"
PRD 模板:开箱即用
# [功能名称] PRD
## 背景
<!-- 为什么做这个功能,解决什么问题 -->
## 目标
- **用户目标**: [用户能做什么]
- **业务目标**: [期望的业务指标提升]
## 用户故事
### US-1: [标题]
**作为** [用户角色]
**我想** [功能]
**以便** [价值]
**验收标准**:
- [ ] [标准 1]
- [ ] [标准 2]
### US-2: ...
## 功能规格
### F-1: [功能名称]
**描述**: [做什么]
**交互流程**:
- 用户进入 [页面]
- 系统显示 [内容]
- 用户 [操作]
- 系统 [响应]
**边界条件**:
- [ ] [条件 1]
- [ ] [条件 2]
**错误处理**:
| 错误场景 | 用户提示 | 系统行为 |
|---------|---------|---------|
| [场景] | [提示] | [处理] |
## 非功能需求
- **性能**: [要求]
- **安全**: [要求]
- **兼容性**: [要求]
## 技术约束
- [约束 1]
- [约束 2]
## 验收标准
- [ ] [标准 1]
- [ ] [标准 2]
- [ ] [标准 3]
## 依赖
- [依赖项 1]
- [依赖项 2]
## 排期
- 设计: [时间]
- 开发: [时间]
- 测试: [时间]
常见错误
❌ 过于抽象
错误:"用户应该能够管理自己的设置"
正确:"在 /settings 页面,用户可以:
- 修改昵称(最长 20 字符)
- 修改头像(支持 jpg/png,最大 2MB)
- 修改密码(需验证原密码)
- 设置通知偏好(邮件/短信/推送,可多选)"
❌ 忽略状态
错误:"显示用户列表"
正确:"显示用户列表,支持:
- 分页(每页 20 条,支持跳转)
- 排序(按名称/创建时间/最后登录)
- 筛选(按角色/状态)
- 空状态:显示"暂无用户"
- 加载状态:骨架屏"
❌ 没有优先级
错误:"实现所有功能"
正确:"P0(必须):
- 基础登录/登出
- 核心 CRUD
P1(应该):
- 高级搜索
- 批量操作
P2(可以):
- 导出功能
- 历史记录"
总结
AI-Ready PRD 的核心是精确、可执行、有边界。
当你学会写这样的 PRD,你会发现:
- 与 AI 协作的效率大幅提升
- AI 生成的代码更符合预期
- 减少返工和沟通成本
下一篇,我们将探讨产品经理如何使用 Claude Code 直接交付可用的产品原型给技术团队。
相关文章
评论
加载中...
评论
加载中...