to-prd

工程开发 社区 @mattpocock
信任分
88/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
工程开发
兼容 Agent
Claude Code
信任分
88 / 100 · 社区维护
作者 / 版本 / 许可
@mattpocock · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

to-prd 把当前对话和你已掌握的代码理解直接合成成 PRD(产品需求文档)——不再访谈用户,因为该问的已经在前面问过了,这一步是「写下来」。

设计思路

作者把 PRD 视为「让人和 agent 都能据此动手」的成品。核心方法论是Deep Module(来自《A Philosophy of Software Design》):把功能藏在简单、可测、稳定的接口背后,避免到处都是浅模块。这一节会让你主动找 deep module 的拆分机会,并与用户确认拆分方向、确认要测哪些。

工作流

① 探代码(如果还没探过),词汇用项目领域术语,触及区域尊重 ADR;② 草拟「需要新建 / 修改的主要 module」并主动找可独立测试的 deep module,与用户确认 module 划分与各自要不要测;③ 按下面模板写 PRD 并发布到 issue tracker,打 ready-for-agent triage 标。

PRD 模板(节选)

  • Problem Statement:用户视角的问题
  • Solution:用户视角的方案
  • User Stories:长长的编号列表,按 As an <actor>, I want a <feature>, so that <benefit> 格式写;尽可能穷举
  • Implementation Decisions:要建 / 改的 module、接口、技术澄清、架构决策、schema 变更、API 契约、具体交互——但不写具体文件路径或代码片段(会过时)。例外:原型生成的更精确的 snippet(state machine / reducer / schema / type shape)可内联,并标注它来自原型
  • Testing Decisions:什么是好测试、要测哪些 module、prior art
  • Out of Scope:明确不做什么
  • Further Notes:可选

适合的场景

  • 已经在长对话里把方案讨论得差不多了,要把决议落到一份可分发的文档
  • 新功能的 alignment:人和 agent 都需要据同一份文档动手
  • 需要把 PRD 和后续 to-issues 的 vertical slice 直接接起来

何时不要用

  • 还没和用户对齐就直接写 PRD:先讨论再写
  • 改动只有 1–2 commit:PRD 是 over-engineering

配套

request-refactor-plan(重构类的 RFC,与 PRD 模板互补)、to-issues(PRD 落地为 vertical slice issue 列表)、triage(PRD 已发布后的 issue 状态机管理)、ubiquitous-language(PRD 的术语锚定)。