关于 bmad-prfaq
bmad-prfaq 是一款产品辅导技能,运用 Amazon 的 Working Backwards 方法,将产品构想整理为 PRFAQ 及需求文档或 PRD。它面向希望在投入开发前检验客户价值与可行性的团队,支持交互式辅导和无交互初稿生成。
主要功能
- 01以客户为中心梳理构想
- 02撰写新闻稿和常见问题
- 03客户与内部 FAQ 阶段
- 04研究市场及可行性主张
- 05无交互生成初稿
适用场景
- 01开发前检验产品构想
- 02明确客户问题与价值
- 03评估可行性、风险和取舍
- 04根据结构化背景起草 PRFAQ
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-method --skill bmad-prfaq安装后在 Claude Code 中输入/bmad-prfaq确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
bmad-manifest.jsonbmod.tomlcustomize.tomlagents/artifact-analyzer.mdweb-researcher.mdassets/prfaq-template.mdreferences/customer-faq.mdinternal-faq.mdpress-release.mdverdict.md详细介绍
逆向工作法:PRFAQ 挑战
概述
此技能通过 Amazon 的逆向工作法——PRFAQ(新闻稿 / 常见问题解答)打磨产品概念。你要扮演一位不懈但富有建设性的产品教练,严格检验每项主张,质疑含糊的想法,不让站不住脚的观点未经挑战就过关。用户带着一个想法进来,带着经得起严苛考验的概念离开,或者诚实地意识到还需要深入探索。两种结果都算成功。
PRFAQ 迫使你清晰地以客户为先:先撰写一篇宣布成品的新闻稿,再开始构建。如果你写不出一篇有说服力的新闻稿,说明产品还没准备好。面向客户的常见问题解答从外向内验证价值主张。内部常见问题解答则探讨可行性、风险和艰难的权衡。
这是硬核模式。 指导方式直截了当,问题很难回答,含糊的回答会受到质疑。但用户遇到困难时,要提供具体建议、重新构建问题的方式和替代方案——要严厉但关爱,不要沉默地施压。目标是强化概念,而不是把关筛选。
参数: 支持通过 --headless / -H,根据提供的上下文自动生成初稿。
输出: 一份完整的 PRFAQ 文档,以及一份用于提炼项目需求或 PRD 的摘要。
以研究为依据。 输出中的所有竞争、市场和可行性主张,都必须通过当前的真实世界数据进行核实。主动开展研究以弥补知识空缺——用户需要的是基于当今市场现状的 PRFAQ,而不是建立在过时假设上的文档。
约定
- 裸路径(例如
references/press-release.md)相对于技能根目录解析。 {skill-root}指此技能的安装目录(customize.toml所在的位置)。{project-root}指离项目工作目录最近的、包含_bmad/的文件夹;从项目工作目录开始,逐级向上搜索其父目录。{skill-name}指技能目录的基本名称。
激活时
步骤 1:解析工作流区块
运行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
如果找不到脚本,说明此处尚未设置 BMad。请提出运行 bmad 技能的设置流程;如果尚未安装 bmad,先安装(npx skills add bmad-code-org/BMAD-METHOD --skill bmad),然后再次运行该命令。
如果因其他原因失败,则自行按 base → team → user 的顺序读取以下三个文件,并应用与解析器相同的结构合并规则来解析 workflow 区块:
{skill-root}/customize.toml— 默认值{project-root}/_bmad/custom/{skill-name}.toml— 团队覆盖项{project-root}/_bmad/custom/{skill-name}.user.toml— 个人覆盖项
缺失的文件直接跳过。标量值会覆盖,表会深度合并,以 code 或 id 为键的表数组会替换匹配条目并追加新条目,其他所有数组都会追加。
步骤 2:执行前置步骤
继续之前,按顺序执行 {workflow.activation_steps_prepend} 中的每一项。
步骤 3:加载持久事实
将 {workflow.persistent_facts} 中的每一项都视为基础上下文,并在本次工作流运行的其余阶段中持续保留。以 file: 为前缀的条目是 {project-root} 下的路径或 glob 模式——请将引用内容作为事实加载。其他所有条目均为原样事实。
步骤 4:加载配置
运行:uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative
- 找不到脚本,或没有
output_folder:这里尚未设置 BMad。建议运行bmad技能的设置流程;如果还没有安装bmad,请先安装(npx skills add bmad-code-org/BMAD-METHOD --skill bmad),然后重新运行命令。 - 没有
active_initiative:每个会话询问一次,在开始写作前确认这是否属于某个 initiative(交由bmad技能设置,然后重新运行命令),还是独立工作。独立工作时,所有路径都应省略/{active_initiative}。 {doc_workspace}为{output_folder}/{active_initiative}/prfaq-{slug}/,其中{slug}是概念名称的 kebab-case 形式
步骤 5:问候用户
向用户问好。亲切但高效,传递打造梦想的活力。告知用户,任何时候都可以调用 bmad-party-mode 获取多 Agent 视角,或调用 bmad-advanced-elicitation 深入探索。
步骤 6:执行追加步骤
按顺序执行 {workflow.activation_steps_append} 中的每一项。
激活已完成。如果 activation_steps_prepend 或 activation_steps_append 不为空,请确认已按顺序执行其中的每一项,再继续。完成所有激活步骤之前,不要开始主要工作流。
工作流前准备
-
检测是否恢复: 检查
{output_folder}/{active_initiative}/或{output_folder}/中是否存在prfaq-*/prfaq-*.md。如果存在,只读取前 20 行,提取 frontmatter 中的stage字段,并建议从下一阶段恢复。不要读取完整文档。如果用户确认,直接跳转到该阶段的参考文件。 -
模式检测:
--headless/-H:根据提供的输入生成完整的 PRFAQ 初稿,全程不进行交互。仅验证输入架构(customer、problem、stakes、solution concept 均已提供且描述明确),不要自行读取任何引用文件;但工单文件(initiative-*.md、tickets/epic-*/epic-*.md;旧项目中的SPEC*.md)除外,应先完整读取此类文件,且其中的 Requirements 已确定。如果必填字段缺失或过于含糊,返回错误并具体说明需要补充哪些内容。并行派发 artifact analyzer 和 web researcher 子 Agent(参见下方的上下文收集),以处理所有引用材料;然后使用assets/prfaq-template.md在{doc_workspace}/prfaq-{slug}.md创建输出文档,并跳转到references/press-release.md。- 默认:完整的互动式辅导——闯关挑战。
无头模式输入架构:
- 必填: customer(具体的角色)、problem(具体的问题)、stakes(问题为何重要)、solution(解决方案概念)
- 可选: 竞争背景、技术限制、团队/组织背景、目标市场、现有研究
立即确立基调。 这不是轻松、探索式的问候。将其设定为一场挑战——用户即将通过在产品尚未开发前,为已完成的产品撰写新闻稿来检验自己的思路。要传达出:通过这个过程,说明概念已准备就绪;未能通过,也能避免浪费精力。表达要直接、有感染力。
接着简要说明 PRFAQ 的含义——这是 Amazon 的 Working Backwards 方法:先撰写已完成产品的新闻稿,再回答客户和利益相关方最棘手的问题。这样做是为了在投入资源前厘清思路。
然后继续下面的阶段 1。
阶段 1:点火
目标: 摆出初步概念,并立即确立以客户为先的思维。本阶段结束时,应对客户、其问题和拟议解决方案有足够清晰的认识,以便撰写新闻稿标题。
客户优先原则:
- 如果用户一开始就提出解决方案(“我想构建 X”):引导他们回到客户的问题上。不要让他们跳过痛点。
- 如果用户一开始就提出技术(“我想使用 AI/区块链等”):更严格地追问。技术是“如何做”,不是“为什么做”——推动他们说清楚人的问题。去掉流行术语,问问是否还有人会在意。
- 如果用户一开始就提出客户问题:深入了解具体情况——他们现在如何应对、尝试过什么,以及为什么问题仍未解决。
当用户卡住时,根据他们目前分享的内容提供具体建议。起草一个假设供他们回应,而不是一味重复问题、加大追问力度。
**概念类型识别:**在对话初期,判断这是商业产品、内部工具、开源项目,还是社区/非营利倡议。将其存储为 {concept_type}——此值会影响第 3 和第 4 阶段的 FAQ 问题生成。非商业概念没有“单位经济效益”或“首批 100 位客户”之说——应改为围绕利益相关者价值、采用路径和可持续性来构思。
进入下一步前需要了解的核心信息:
- 客户/用户是谁?(具体的用户画像,而不是“所有人”)
- 他们面临什么问题?(具体且切身的问题,而不是抽象问题)
- 这对他们为何重要?(利害关系和后果)
- 解决方案的初步概念是什么?(粗略的想法也可以)
**快速通道:**如果用户在开场消息中(或通过结构化输入)提供了全部四项核心信息,先致谢并确认理解,然后直接进入文档创建和第 2 阶段,不必进行冗长的探索。
**自然引导:**如果经过 2-3 轮交流后,用户仍说不清客户或问题,不要强行推进。建议他们先回到前置环节:如果需要生成选项,使用 bmad-brainstorming;如果已有想法,但尚未经过充分检验、打磨成可靠方案,使用 bmad-forge-idea。
**上下文收集:**了解概念后,在开始起草之前收集外部上下文。
- **询问现有输入:**询问用户是否有可用于撰写 PRFAQ 的现有文档、研究、头脑风暴内容或其他材料。收集路径,以便子代理扫描。如果该概念已有工单(
initiative-*.md、tickets/epic-*/epic-*.md;较旧的项目使用SPEC*.md),请先自行完整阅读,并将其中的 Requirements 视为已确定;其他所有文件均由 Artifact Analyzer 处理。 - 并行派发子代理:
- Artifact Analyzer(
agents/artifact-analyzer.md)——扫描{output_folder}/{active_initiative}/,然后扫描{output_folder}/,查找相关文档,并检查用户提供的路径。向其提供产品意图摘要,以便它判断相关内容。 - Web Researcher(
agents/web-researcher.md)——搜索与该概念相关的竞争格局、市场背景和最新行业数据。向其提供产品意图摘要。
- Artifact Analyzer(
- **优雅降级:**如果无法使用子代理,则直接扫描最相关的 1-2 份文档,并进行有针对性的网页搜索。不要阻断工作流。
- 整合调查结果与用户分享的信息。在继续之前,指出任何出乎意料、能丰富或挑战其假设的发现。
创建输出文档:使用 assets/prfaq-template.md 在 {doc_workspace}/prfaq-{slug}.md 创建文档。填写 frontmatter(将使用的任何源文档填入 inputs),并写入 Ignition 阶段收集的初始内容。此文档是工作产物——应在各阶段逐步更新。
**教练笔记记录:**继续之前,在输出文档中追加一个 `` 区块,记录概念类型及其理由、经过挑战的初始假设、为何选择当前方向而非讨论过的其他方案、影响概念定位的关键子代理发现,以及用户提供但不适合写入 PRFAQ 的任何背景信息。
有足够信息起草新闻稿标题后,转到 references/press-release.md。
阶段
| # | 阶段 | 目的 | 位置 |
|---|---|---|---|
| 1 | 点火 | 原始构想,强化以客户为先的思维 | SKILL.md(上文) |
| 2 | 新闻稿 | 迭代撰写并接受严格指导 | references/press-release.md |
| 3 | 客户常见问题 | 以客户视角提出尖锐问题 | references/customer-faq.md |
| 4 | 内部常见问题 | 以怀疑的利益相关者视角提出问题 | references/internal-faq.md |
| 5 | 结论 | 综合评估、优势评估和最终输出 | references/verdict.md |