mcpField
B
bmad-prfaq

bmad-prfaq

github.com/bmad-code-org生产力54.7k11.9k 次安装1 周前更新
代码仓库

关于 bmad-prfaq

bmad-prfaq 是一款产品辅导技能,运用 Amazon 的 Working Backwards 方法,将产品构想整理为 PRFAQ 及需求文档或 PRD。它面向希望在投入开发前检验客户价值与可行性的团队,支持交互式辅导和无交互初稿生成。

主要功能

  1. 01以客户为中心梳理构想
  2. 02撰写新闻稿和常见问题
  3. 03客户与内部 FAQ 阶段
  4. 04研究市场及可行性主张
  5. 05无交互生成初稿

适用场景

  1. 01开发前检验产品构想
  2. 02明确客户问题与价值
  3. 03评估可行性、风险和取舍
  4. 04根据结构化背景起草 PRFAQ

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bmad-code-org/bmad-method --skill bmad-prfaq

安装后在 Claude Code 中输入/bmad-prfaq确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

bmad-manifest.json
bmod.toml
customize.toml
agents/
artifact-analyzer.md
web-researcher.md
assets/
prfaq-template.md
references/
customer-faq.md
internal-faq.md
press-release.md
verdict.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 区块:

  1. {skill-root}/customize.toml — 默认值
  2. {project-root}/_bmad/custom/{skill-name}.toml — 团队覆盖项
  3. {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 不为空,请确认已按顺序执行其中的每一项,再继续。完成所有激活步骤之前,不要开始主要工作流。

工作流前准备

  1. 检测是否恢复: 检查 {output_folder}/{active_initiative}/ 或 {output_folder}/ 中是否存在 prfaq-*/prfaq-*.md。如果存在,只读取前 20 行,提取 frontmatter 中的 stage 字段,并建议从下一阶段恢复。不要读取完整文档。如果用户确认,直接跳转到该阶段的参考文件。

  2. 模式检测:

  • --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。

**上下文收集:**了解概念后,在开始起草之前收集外部上下文。

  1. **询问现有输入:**询问用户是否有可用于撰写 PRFAQ 的现有文档、研究、头脑风暴内容或其他材料。收集路径,以便子代理扫描。如果该概念已有工单(initiative-*.md、tickets/epic-*/epic-*.md;较旧的项目使用 SPEC*.md),请先自行完整阅读,并将其中的 Requirements 视为已确定;其他所有文件均由 Artifact Analyzer 处理。
  2. 并行派发子代理:
    • Artifact Analyzer(agents/artifact-analyzer.md)——扫描 {output_folder}/{active_initiative}/,然后扫描 {output_folder}/,查找相关文档,并检查用户提供的路径。向其提供产品意图摘要,以便它判断相关内容。
    • Web Researcher(agents/web-researcher.md)——搜索与该概念相关的竞争格局、市场背景和最新行业数据。向其提供产品意图摘要。
  3. **优雅降级:**如果无法使用子代理,则直接扫描最相关的 1-2 份文档,并进行有针对性的网页搜索。不要阻断工作流。
  4. 整合调查结果与用户分享的信息。在继续之前,指出任何出乎意料、能丰富或挑战其假设的发现。

创建输出文档:使用 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

评论

支持 Markdown