prd

Installation
SKILL.md

SuperBot PRD — 产品需求文档编写技能

背景:

进入2025年8月,随着公司鼓励我们全员拥抱AI提升生产力之后,产品经理已经完全可以通过 Coding Agent 实现端到端的简易产品需求交付,但是研发流程不允许产品经理触碰线上代码,以致于产品经理交付产品给用户前,依然需要研发进行实现,产品经理向研发交付的标准交付物就是PRD;而当产品经理通过多次和Coding Agent交互聊天已经完成产品实现后,再回过头来写一份完整的PRD,看起来变得多余和费时,因此,本skill通过已实现的产品来输出PRD。

支持文件

  • PRD 模板:templates/prd-template.md(位于本 skill 目录下)

命令:/superbot:prd update

将已实现的功能 Demo 转化为标准 PRD 文档,供研发团队据此实现该功能。

这是产品经理与研发之间的正式交付物,务必遵守以下原则:

  • 功能描述必须基于代码,不得臆造未在代码中体现的功能
  • 无法从代码直接推导的内容(如背景、目标、用户故事等),你必须先根据上下文和已有信息给出合理推荐值,让用户确认或修正,不得直接将空白项抛给用户让其自行填写
  • 表达简洁,不在 PRD 内容之外输出任何冗余话术

执行流程

第一步:确认功能模块

询问用户:本次 PRD 针对哪个功能模块?

用户会以下列两种格式之一提供:

  • URL 格式:http://localhost:8080/home/feature.htm
  • 文件路径格式:src/pages/home/feature.htm

无论哪种格式,目的都是定位当前工程中的具体功能模块代码。

URL 格式的处理逻辑:

  1. 提取 URL 路径部分(如 /home/feature.htm),在当前工程的常见前端目录下查找对应文件(src/pages/src/views/pages/app/ 等)
  2. 若无法匹配,直接告知用户:「无法通过该 URL 定位到对应文件,请提供源码路径」,不要继续推测

文件路径格式的处理逻辑:

  1. 检查该文件是否存在
  2. 若不存在,告知用户并请其重新确认路径

定位成功的标准:你能找到对应的源码文件,并能读取其内容进行分析。

若用户提供了多个功能模块,逐一确认每个模块是否均能定位。有任何一个无法定位,都需先解决再继续。


第二步:读取并分析功能模块

定位到源码后,深度阅读该功能模块的相关代码,包括:

  • 页面/组件结构
  • 交互逻辑与状态管理
  • 数据流与接口调用
  • 边界处理与异常情况
  • 路由配置

分析目标:形成对该功能的完整、准确理解,作为 PRD 编写的唯一依据。


第三步:确认 PRD 输出路径

询问用户:PRD 文件输出到哪里?

路径校验规则:

用户输入 处理方式
目录路径(无文件名) 报错:「请提供具体的 .md 文件路径,例如:docs/prd/feature.md」
单个 .md 文件路径 若文件已存在 → 执行更新;若不存在 → 递归创建目录后新建文件
多个 .md 文件路径 执行拆分写入(见下方「多文件拆分」规则)

第四步:重新读取 PRD 与代码

进入 PRD 编写前,必须先执行以下两项操作

  1. 重新读取 PRD 文件:如果目标 PRD 文件已存在,立即重新读取其全文。用户可能在 Agent 之外手动编辑过 PRD,你必须基于最新内容进行操作,保持信息一致。
  2. 重新分析工程代码:重新阅读并分析该功能模块的最新源码。代码是 PRD 的唯一事实来源,PRD 中已有内容仅供参考,若 PRD 描述与代码实现不一致,以代码为准。你的任务是使用最新代码实现来更新 PRD,而不是被 PRD 已有内容带着跑。

第五步:生成或更新 PRD

新建 PRD

  1. 读取本 skill 目录下的 templates/prd-template.md 作为结构基准
  2. 基于第四步的代码分析,填写所有可从代码推导的模板内容(功能需求、交互流程、数据字段、接口需求等)
  3. 对于无法从代码直接推导的内容(如背景、目标、Non-Goals、用户故事等),先预留,在第六步逐一与用户确认,不得留空抛给用户

更新现有 PRD

核心原则:全面检查,精细修改。

  1. 全面检查:逐节对比现有 PRD 与当前代码实现,找出所有不一致之处:
    • PRD 描述的功能,代码中未实现
    • 代码实现的功能,PRD 中未描述或描述有误
    • 交互逻辑、状态、边界处理与实际不符
  2. 精细修改:只改必须改的部分,不重写整个文档
    • 新增遗漏的功能点
    • 修正与实现不符的描述
    • 删除代码中已不存在的功能
    • 保留与实现一致的已有内容
  3. 更新完成后,同步更新文档信息中的「最后更新」和「变更记录」

多文件拆分写入

若用户提供多个输出文件:

  1. 根据功能模块的自然边界,判断哪部分功能属于哪个文件
  2. 若拆分方式不明确,必须与用户确认拆分方案,不得自行决定
  3. 确认后,按各文件对应的功能范围独立执行生成或更新流程

第六步:逐一确认待推导内容

PRD 正文(可从代码直接推导的部分)写入完成后,在进入第七步的完成确认之前,必须对无法从代码直接推导的内容进行逐一推荐和确认

核心要求:

  • 每次只确认一个最小确认单元,不得一次性抛出多个字段或一个表格
  • 每项确认时,你必须先给出推荐值,不得直接问用户"你有什么想法"或"需要我提供推荐值吗"
  • 用户确认或修改后,立即写入 PRD,再继续下一项

最小确认单元定义

以下每一项都是独立的确认单元,必须逐一确认:

  1. 功能名称
  2. 所属模块
  3. 作者(默认取当前系统用户名,通过 whoami$USER 获取)
  4. 1.1 背景
  5. 1.2 目标
  6. 1.3 Non-Goals
  7. 每条用户故事(如有 8 条故事,就是 8 个独立的确认单元,每条单独确认)
  8. 6. 非功能性要求(即使没有明确信息,也要基于项目类型给出合理推荐值,如"性能:页面首屏加载 < 2s"等)
  9. 8. 待确认问题(如有发现则推荐填写,如无则推荐"暂不记录")

交互格式

每个确认单元统一使用以下格式:

接下来确认【字段名】:
我推荐的值是:[推荐内容]
是否采纳?如需修改请直接告诉我,或回复"暂不填写"。
  • 用户确认或给出修改值后,立即将该值写入 PRD
  • 如果用户回复"暂不填写",则该项保持留空,继续下一项
  • 全部确认完成后进入第七步

第七步:完成确认

PRD 写入完成后,简短输出:

  • 已操作的文件路径
  • 本次新增 / 修改 / 删除的主要内容(一句话摘要)
  • 如有用户选择「暂不填写」的项,列出清单提醒用户后续补充

待确认问题处理规则

第 8 节「待确认问题」默认保持空白

如果你认为存在需要确认的问题:

  1. 以对话形式向用户提出,说明具体问题和可能的影响
  2. 用户明确表示「写入 PRD」或类似确认后,才将条目填入表格
  3. 不得自行填充任何未经用户明确确认的条目

内容质量标准

每一条 PRD 内容,必须同时满足:

维度 标准
可实现 研发能明确知道要做什么,不需要猜测
可验证 测试能据此写出验收用例
有来源 每条描述都能在代码中找到对应依据
无歧义 不使用「可能」「一般来说」「通常」等模糊措辞
Related skills
Installs
10
GitHub Stars
1
First Seen
Apr 12, 2026