ワンクリックで
write-a-prd
// 通过用户访谈、代码库探索与模块设计来编写 PRD(产品需求文档),然后以 GitHub issue 的形式提交。适用于用户希望编写 PRD、创建产品需求文档,或规划一个新功能。
// 通过用户访谈、代码库探索与模块设计来编写 PRD(产品需求文档),然后以 GitHub issue 的形式提交。适用于用户希望编写 PRD、创建产品需求文档,或规划一个新功能。
| name | write-a-prd |
| description | 通过用户访谈、代码库探索与模块设计来编写 PRD(产品需求文档),然后以 GitHub issue 的形式提交。适用于用户希望编写 PRD、创建产品需求文档,或规划一个新功能。 |
当用户希望创建 PRD 时,将调用本技能。你可以根据需要跳过其中一些步骤。
向用户索要对他们想解决的“问题”的长篇、细节充分的描述,以及任何潜在的解决思路。
探索仓库以验证他们的判断,并理解当前代码库的现状。
不断地“访谈用户”:围绕方案树的每个分支追问,直到你们对设计形成共同理解。要逐步走过设计树的每条路径,逐个解决决策之间的依赖关系。
在你理解这些决策之后,勾勒出你需要构建或修改的主要模块。并积极寻找可将“深模块(deep modules)”抽取出来、以便能在隔离环境下进行测试的机会。
所谓深模块(deep module),与浅模块(shallow module)相对:它会把大量功能封装进一个简单、可测试的接口,并且很少会频繁变化。
和用户一起确认这些模块是否符合他们的预期,并让用户确认:哪些模块希望你为其编写测试。
从用户视角来看,用户正面临的那项问题。
从用户视角来看,针对该问题的解决方案。
一份非常长的、带编号的用户故事清单。每条用户故事应采用以下格式:
这份用户故事清单应当尽可能详尽,并覆盖功能的各个方面。
实现决策列表。可能包括:
不要包含具体文件路径或代码片段。这些内容很可能会在后续很快变得过时。
测试决策列表。需要包含:
描述本 PRD 中明确不包含的内容。
关于该功能的其他补充说明。
使用 tracer-bullet 竖向切片法,把 PRD 拆分成彼此独立、可以直接认领的 GitHub issues(并形成对应的实现工单)。适用于用户想把 PRD 转成 issues、创建实现任务,或把 PRD 拆成工作项。
使用 tracer-bullet 竖向切片方法把 PRD 转换成多阶段的落地实施计划,并保存为本地 Markdown 文件(存放在 `./plans/`)。适用于用户希望把 PRD 拆分为多个阶段、生成实施计划、从 PRD 推导阶段计划,或提到 “tracer bullets”。
通过用户访谈创建一个详细的重构计划,并将其拆分成很小的提交(tiny commits),最后以 GitHub issue 的形式归档。适用于用户希望规划一次重构、创建重构 RFC,或把重构拆成安全的渐进步骤。
使用 RED-GREEN-重构(red-green-refactor)循环进行测试驱动开发。适用于用户希望用 TDD 构建新功能或修复 bug,提到 “red-green-refactor”,希望使用集成测试,或询问“test-first development(先写测试)”。
通过探索代码库对 Bug/Issue 进行排查归因,并基于 TDD 方式生成修复计划,同时创建对应的 GitHub issue。适用于用户报告了 bug、希望创建 issue、提到“triage”,或想调查并规划某个问题的修复方案。
从当前对话中抽取 DDD 风格的“统一语言”术语表(ubiquitous language glossary),标记歧义,并提出规范的术语选择。保存为 `UBIQUITOUS_LANGUAGE.md`。适用于用户希望定义领域术语、构建术语表、固化用词并强化术语一致性,或提到 “domain model” / “DDD”(领域模型与 DDD)。