|
| 1 | +# PRD (Product Requirement Document) Writer Skill |
| 2 | + |
| 3 | +> 帮助用户撰写高质量的原始需求文档,使其能够被高效地转化为技术分析和设计方案 |
| 4 | +
|
| 5 | +## 用途 |
| 6 | + |
| 7 | +本 Skill 用于将产品想法转化为结构化的需求文档,作为后续技术设计(使用 Project Analysis Skill)的输入。 |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## 输入 |
| 12 | + |
| 13 | +- 产品想法/概念描述 |
| 14 | +- 目标用户的大致描述 |
| 15 | +- 期望解决的核心问题 |
| 16 | +- 任何已知的约束或偏好 |
| 17 | + |
| 18 | +## 输出 |
| 19 | + |
| 20 | +结构化的需求文档,包含以下 6 个维度: |
| 21 | + |
| 22 | +```markdown |
| 23 | +tasks/[project-name]/ |
| 24 | +└── requirement.md # 完整的需求文档 |
| 25 | + ├── 目标用户 # 详细的用户画像 |
| 26 | + ├── 核心目标 # 项目目标和成功标准 |
| 27 | + ├── 功能范围 # MVP + Phase 2 + 明确不做 |
| 28 | + ├── 约束条件 # 时间/技术/资源约束 |
| 29 | + ├── 参考与对标 # 类似产品分析 |
| 30 | + └── 输出要求 # 期望的设计文档类型 |
| 31 | +``` |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## 执行步骤 |
| 36 | + |
| 37 | +### Step 1: 提取和细化用户画像 |
| 38 | + |
| 39 | +**目标**:将模糊的用户描述转化为具体的、可指导 UI/UX 决策的用户画像 |
| 40 | + |
| 41 | +**操作**: |
| 42 | +- 询问/推断用户的技能水平 |
| 43 | +- 明确使用场景和痛点 |
| 44 | +- 定义设备环境和技术背景 |
| 45 | + |
| 46 | +**输出模板**: |
| 47 | + |
| 48 | +```markdown |
| 49 | +## 目标用户 |
| 50 | + |
| 51 | +### 主要用户 |
| 52 | + |
| 53 | +| 属性 | 描述 | |
| 54 | +|------|------| |
| 55 | +| 技能水平 | [完全零基础 / 有基础概念 / 能写简单脚本 / 专业开发者] | |
| 56 | +| 使用场景 | [学习 / 工作提效 / 娱乐 / 生产环境] | |
| 57 | +| 痛点描述 | 目前[具体问题],导致[什么后果] | |
| 58 | +| 设备环境 | [Mac/Windows/Linux]、[是否有管理员权限] | |
| 59 | + |
| 60 | +### 用户分层(如适用) |
| 61 | + |
| 62 | +| 用户类型 | 占比 | 特征 | 特殊需求 | |
| 63 | +|----------|------|------|----------| |
| 64 | +| 类型A | 70% | [描述] | [需求] | |
| 65 | +| 类型B | 30% | [描述] | [需求] | |
| 66 | +``` |
| 67 | + |
| 68 | +**质量标准**:用户画像具体到可以用这些信息做 UI 决策(如:字体大小、术语使用、交互复杂度) |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +### Step 2: 定义核心目标和成功标准 |
| 73 | + |
| 74 | +**目标**:明确项目的核心价值和衡量成功的指标 |
| 75 | + |
| 76 | +**操作**: |
| 77 | +- 用一句话概括产品 |
| 78 | +- 定义 2-4 个可量化的成功指标 |
| 79 | + |
| 80 | +**输出模板**: |
| 81 | + |
| 82 | +```markdown |
| 83 | +## 核心目标 |
| 84 | + |
| 85 | +用户在[什么场景]下,通过[什么方式],达成[什么结果]。 |
| 86 | + |
| 87 | +### 一句话描述 |
| 88 | + |
| 89 | +[产品名] 是一个[产品类型],帮助[目标用户]解决[核心问题],通过[核心方法/特性]。 |
| 90 | + |
| 91 | +### 成功标准(如何衡量项目成功) |
| 92 | + |
| 93 | +| 指标 | 目标值 | 测量方式 | 优先级 | |
| 94 | +|------|--------|----------|--------| |
| 95 | +| 指标1 | [数值] | [如何测量] | P0 | |
| 96 | +| 指标2 | [数值] | [如何测量] | P1 | |
| 97 | +``` |
| 98 | + |
| 99 | +**质量标准**:成功标准必须可测量,且能判断是否值得投入资源 |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +### Step 3: 划分功能范围(MVP vs Phase 2 vs 不做) |
| 104 | + |
| 105 | +**目标**:明确功能边界,避免范围蔓延 |
| 106 | + |
| 107 | +**操作**: |
| 108 | +- 列出所有可能的功能 |
| 109 | +- 分类为 MVP、Phase 2、明确不做 |
| 110 | +- 为每个 MVP 功能定义验收标准 |
| 111 | + |
| 112 | +**输出模板**: |
| 113 | + |
| 114 | +```markdown |
| 115 | +## 功能范围 |
| 116 | + |
| 117 | +### MVP 必须有的功能 |
| 118 | + |
| 119 | +| ID | 功能 | 解决什么问题 | 验收标准 | 估算工时 | |
| 120 | +|----|------|--------------|----------|----------| |
| 121 | +| F1 | [功能名] | [问题] | [可测试的标准] | [X天] | |
| 122 | + |
| 123 | +### Phase 2 期望有的功能 |
| 124 | + |
| 125 | +| ID | 功能 | 解决什么问题 | 优先级 | |
| 126 | +|----|------|--------------|--------| |
| 127 | +| F2 | [功能名] | [问题] | P1 | |
| 128 | + |
| 129 | +### 明确不做的功能 |
| 130 | + |
| 131 | +| 功能 | 不做原因 | 备注(如果以后要做,需要满足什么条件) | |
| 132 | +|------|----------|----------------------------------------| |
| 133 | +| [功能] | [原因] | [条件] | |
| 134 | +``` |
| 135 | + |
| 136 | +**质量标准**:MVP 功能要具体到可以转化为 Feature 开发文档 |
| 137 | + |
| 138 | +--- |
| 139 | + |
| 140 | +### Step 4: 明确约束条件 |
| 141 | + |
| 142 | +**目标**:识别所有可能影响设计和实现的约束 |
| 143 | + |
| 144 | +**操作**: |
| 145 | +- 询问时间要求 |
| 146 | +- 询问技术要求或偏好 |
| 147 | +- 询问资源限制 |
| 148 | + |
| 149 | +**输出模板**: |
| 150 | + |
| 151 | +```markdown |
| 152 | +## 约束条件 |
| 153 | + |
| 154 | +### 时间约束 |
| 155 | + |
| 156 | +| 类型 | 时间 | 说明 | |
| 157 | +|------|------|------| |
| 158 | +| 期望交付 | [日期] | 理想交付时间 | |
| 159 | +| 硬截止 | [日期/无] | 不可延后的 deadline | |
| 160 | + |
| 161 | +### 技术约束 |
| 162 | + |
| 163 | +| 类型 | 约束 | 说明 | |
| 164 | +|------|------|------| |
| 165 | +| 必须使用 | [技术] | [原因] | |
| 166 | +| 不能使用 | [技术] | [原因] | |
| 167 | +| 平台要求 | [平台] | [版本/配置要求] | |
| 168 | + |
| 169 | +### 资源约束 |
| 170 | + |
| 171 | +| 类型 | 限制 | 说明 | |
| 172 | +|------|------|------| |
| 173 | +| 团队规模 | [人数] | [角色] | |
| 174 | +| 预算 | [金额/无] | [可支出的费用类型] | |
| 175 | + |
| 176 | +### 其他约束 |
| 177 | + |
| 178 | +- [合规要求] |
| 179 | +- [性能要求] |
| 180 | +- [安全要求] |
| 181 | +``` |
| 182 | + |
| 183 | +**质量标准**:约束具体到可以在技术选型时排除选项 |
| 184 | + |
| 185 | +--- |
| 186 | + |
| 187 | +### Step 5: 收集参考与对标 |
| 188 | + |
| 189 | +**目标**:通过参考产品帮助理解期望的效果和质量标准 |
| 190 | + |
| 191 | +**操作**: |
| 192 | +- 找出 2-3 个类似产品 |
| 193 | +- 分析每个产品的优缺点 |
| 194 | +- 明确我们想要学习/避免的 |
| 195 | + |
| 196 | +**输出模板**: |
| 197 | + |
| 198 | +```markdown |
| 199 | +## 参考与对标 |
| 200 | + |
| 201 | +### 类似产品分析 |
| 202 | + |
| 203 | +| 产品名 | 类型 | 优点 | 缺点 | 我们要学习 | 我们要避免 | |
| 204 | +|--------|------|------|------|------------|------------| |
| 205 | +| [产品A] | [类型] | [优点] | [缺点] | [点] | [点] | |
| 206 | + |
| 207 | +### 可参考的实现 |
| 208 | + |
| 209 | +| 参考 | 来源 | 参考方面 | |
| 210 | +|------|------|----------| |
| 211 | +| [描述/链接] | [来源] | [具体方面] | |
| 212 | + |
| 213 | +### 不想要的例子 |
| 214 | + |
| 215 | +| 产品/设计 | 不想要的原因 | 我们的替代方案 | |
| 216 | +|-----------|--------------|----------------| |
| 217 | +| [例子] | [原因] | [方案] | |
| 218 | +``` |
| 219 | + |
| 220 | +**质量标准**:参考足够让 AI/设计师理解期望的"感觉" |
| 221 | + |
| 222 | +--- |
| 223 | + |
| 224 | +### Step 6: 明确输出要求 |
| 225 | + |
| 226 | +**目标**:告诉下游 Skill(Project Analysis)期望的输出 |
| 227 | + |
| 228 | +**操作**: |
| 229 | +- 列出期望的设计文档类型 |
| 230 | +- 定义详细程度 |
| 231 | +- 说明特殊要求 |
| 232 | + |
| 233 | +**输出模板**: |
| 234 | + |
| 235 | +```markdown |
| 236 | +## 输出要求 |
| 237 | + |
| 238 | +### 期望的交付物 |
| 239 | + |
| 240 | +- [ ] 技术分析文档(可行性、选型对比、难点分析) |
| 241 | +- [ ] 架构设计文档(包含 ASCII 示意图) |
| 242 | +- [ ] 功能分解文档(features/ 目录) |
| 243 | +- [ ] 实施计划文档(Phase 划分、任务列表) |
| 244 | + |
| 245 | +### 详细程度 |
| 246 | + |
| 247 | +- [ ] 高:文档可直接用于开发,无需进一步细化 |
| 248 | +- [ ] 中:需要少量细化(如:具体接口定义) |
| 249 | +- [ ] 低:概念验证级别,需要大量细化 |
| 250 | + |
| 251 | +### 特殊要求 |
| 252 | + |
| 253 | +- [ ] 必须包含性能分析和优化建议 |
| 254 | +- [ ] 必须考虑无障碍设计 |
| 255 | +- [ ] 必须包含安全分析 |
| 256 | +- [ ] 其他:[说明] |
| 257 | +``` |
| 258 | + |
| 259 | +**质量标准**:输出要求明确到下游 Skill 可以按此执行 |
| 260 | + |
| 261 | +--- |
| 262 | + |
| 263 | +## 质量检查清单 |
| 264 | + |
| 265 | +在完成需求文档后,检查以下项目: |
| 266 | + |
| 267 | +### 用户相关 |
| 268 | +- [ ] 用户画像具体到可以做 UI 决策(字体、术语、复杂度) |
| 269 | +- [ ] 区分了主要用户和次要用户(如有) |
| 270 | +- [ ] 描述了用户的痛点和现有解决方案的不足 |
| 271 | + |
| 272 | +### 功能相关 |
| 273 | +- [ ] MVP 功能可以转化为开发任务 |
| 274 | +- [ ] 每个 MVP 功能有明确的验收标准 |
| 275 | +- [ ] 列出了明确不做的功能及原因 |
| 276 | + |
| 277 | +### 约束相关 |
| 278 | +- [ ] 时间约束明确(期望交付 + 硬截止) |
| 279 | +- [ ] 技术约束可以在选型时排除选项 |
| 280 | +- [ ] 资源约束(团队、预算)已说明 |
| 281 | + |
| 282 | +### 参考相关 |
| 283 | +- [ ] 有 2-3 个类似产品作为参考 |
| 284 | +- [ ] 明确指出了要学习/避免的点 |
| 285 | +- [ ] 有不想要的例子作为反面教材 |
| 286 | + |
| 287 | +### 输出相关 |
| 288 | +- [ ] 明确列出了期望的设计文档类型 |
| 289 | +- [ ] 定义了详细程度 |
| 290 | +- [ ] 说明了特殊要求(如有) |
| 291 | + |
| 292 | +--- |
| 293 | + |
| 294 | +## 常见错误及修正 |
| 295 | + |
| 296 | +| 错误类型 | 错误示例 | 修正示例 | |
| 297 | +|----------|----------|----------| |
| 298 | +| 用户太泛 | "面向所有开发者" | "Mac 用户,有 Python 基础,想要简化 AI 工具配置" | |
| 299 | +| 功能无边界 | "功能越多越好" | "MVP 只包含一键安装和基础教程,不包含高级定制" | |
| 300 | +| 无成功标准 | "让用户体验好" | "新用户 5 分钟内完成 setup,成功率 >90%" | |
| 301 | +| 无约束 | 完全不提及 | "需要在 2 个月内交付 MVP,团队 2 名开发" | |
| 302 | +| 无输出要求 | "看着办" | "需要技术分析、架构图、功能分解、Phase 计划" | |
| 303 | +| 过于技术 | "使用 React + Redux" | "Web 应用,考虑响应式设计"(技术选型留给设计阶段)| |
| 304 | + |
| 305 | +--- |
| 306 | + |
| 307 | +## 与 Project Analysis Skill 的配合 |
| 308 | + |
| 309 | +``` |
| 310 | +┌─────────────────────┐ ┌─────────────────────────┐ |
| 311 | +│ │ │ │ |
| 312 | +│ 产品想法 │─────►│ PRD Writer Skill │ |
| 313 | +│ (模糊) │ │ │ |
| 314 | +│ │ │ • 结构化需求 │ |
| 315 | +└─────────────────────┘ │ • 明确约束 │ |
| 316 | + │ • 定义成功标准 │ |
| 317 | + │ │ |
| 318 | + └───────────┬─────────────┘ |
| 319 | + │ |
| 320 | + ▼ |
| 321 | + ┌─────────────────────────┐ |
| 322 | + │ requirement.md │ |
| 323 | + │ (结构化需求) │ |
| 324 | + └───────────┬─────────────┘ |
| 325 | + │ |
| 326 | + ▼ |
| 327 | + ┌─────────────────────────┐ |
| 328 | + │ Project Analysis │ |
| 329 | + │ Skill │ |
| 330 | + │ │ |
| 331 | + │ • 技术选型 │ |
| 332 | + │ • 架构设计 │ |
| 333 | + │ • 功能分解 │ |
| 334 | + │ • 实施计划 │ |
| 335 | + │ │ |
| 336 | + └───────────┬─────────────┘ |
| 337 | + │ |
| 338 | + ▼ |
| 339 | + ┌─────────────────────────┐ |
| 340 | + │ 完整设计文档集 │ |
| 341 | + │ • analysis.md │ |
| 342 | + │ • architecture.md │ |
| 343 | + │ • features/*.md │ |
| 344 | + │ • plan.md │ |
| 345 | + └─────────────────────────┘ |
| 346 | +``` |
| 347 | + |
| 348 | +--- |
| 349 | + |
| 350 | +## 示例 |
| 351 | + |
| 352 | +### 输入(产品想法) |
| 353 | + |
| 354 | +``` |
| 355 | +想做一个帮助小白用户配置本地 AI 环境的工具。 |
| 356 | +用户不太懂技术,想要一键安装。 |
| 357 | +有教程教他们怎么用。 |
| 358 | +想要桌面应用的形式。 |
| 359 | +``` |
| 360 | + |
| 361 | +### 输出(requirement.md) |
| 362 | + |
| 363 | +见 `tasks/mindstorm/local-ai-playgound.md` |
| 364 | + |
| 365 | +### 下一步 |
| 366 | + |
| 367 | +将 requirement.md 输入 Project Analysis Skill,生成: |
| 368 | +- `analysis.md` |
| 369 | +- `architecture.md` |
| 370 | +- `features/*.md` |
| 371 | +- `plan.md` |
| 372 | + |
| 373 | +见 `tasks/mindstorm/learn-ai-agent.md` 和 `tasks/features/*.md` |
0 commit comments