用途
bmad-tea-nfr 用于在发布前对已实现的非功能性需求(NFR)证据进行审计,覆盖性能、安全、可靠性和可维护性四个方面。其定位是“以证据为基础的验证”,即依据实现过程中产出的证据来评估 NFR 的落实情况。触发场景为:实现证据已经存在,用户要求审计 NFR 证据。
本技能隶属于 bmad-code-org/bmad-method-test-architecture-enterprise(BMAD 测试架构企业版),执行者被设定为“主测试架构师(Master Test Architect)”角色,并在既定名称、身份与 communication_style 的基础上与该角色描述合并运作。
主要能力与工作模式
该工作流采用三模态步骤文件架构:
- 创建模式(steps-c/):新运行的主执行流程,以及恢复续跑;
- 校验模式(steps-v/):依据 checklist 进行校验;
- 编辑模式(steps-e/):修改既有输出。
初始化时提供四种选择:[C] Create 从头运行、[R] Resume 恢复被中断的 Create 流程、[V] Validate 校验既有输出、[E] Edit 编辑既有输出。不同选择路由到对应的首个步骤文件(steps-c/step-01-load-context.md、steps-c/step-01b-resume.md、steps-v/step-01-validate.md、steps-e/step-01-assess.md)。
每次运行的审计结果写入 {test_artifacts}/nfr/nfr-assessment-{run_key}.md,其中 run_key 为 system、epic-{epic_num} 或 story-{story_key}。第一步会在首次保存前解析该值,因此某一范围的审计不会覆盖或合并到另一范围的审计中。浏览器证据截图同样位于 {test_artifacts}/nfr/ 下。恢复模式会选择与被恢复运行相匹配的输出文档;当存在多个文档且未指定范围时会询问用户;若某文档的 runKey 属于另一次运行,则拒绝继续。
使用方式
激活与运行流程大致如下:
-
激活前检查 {project-root}/_bmad/custom/ 下是否存在 bmad-testarch-nfr.toml 和 bmad-testarch-nfr.user.toml。若存在任一文件,需停止并提示用户运行 npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root},处理完报告的手动合并后开启新对话;在遗留覆盖仍存在时不应继续使用默认设置。
-
解析工作流区块:运行 uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow。若脚本失败,则按 base → team → user 的顺序读取 {skill-root}/customize.toml、{project-root}/_bmad/custom/{skill-name}.toml、{project-root}/_bmad/custom/{skill-name}.user.toml,并套用与解析器相同的结构性合并规则:标量覆盖、表深度合并、以 code 或 id 为键的表数组替换匹配项并追加新项、其余数组追加。缺失的文件跳过。
-
按顺序执行 {workflow.activation_steps_prepend} 中的每一项。
-
加载持久事实:{workflow.persistent_facts} 中的每一项作为后续运行的基础上下文。以 file: 前缀的条目为从 {project-root} 解析的路径或 glob,需展开并按字典序路径顺序加载每个匹配文件作为事实;其余条目为逐字事实。
-
加载配置:运行 uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core --key modules.tea。若脚本失败,则依次合并 {project-root}/_bmad/config.toml、{project-root}/_bmad/custom/config.toml 和 {project-root}/_bmad/custom/config.user.toml。若 _bmad/config.toml 缺失或没有 modules.tea 表,则提示 TEA 未设置,要求先运行 bmad setup tea,然后停止。core 与 modules.tea 的每个键以 {<key>} 形式可用,后续步骤中也可通过 config.<key> 访问;值中的 {project-root} 替换为项目根目录;设置答案为字符串,"true" 和 "false" 需按布尔值读取。
-
若 {tea-knowledge}/tea-index.csv 不存在,说明 TEA 知识库未安装。此时应告知用户,并建议用 npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea 安装;用户同意后执行该命令,并在其就绪前停止。
-
以 {communication_language} 向 {user_name} 问候。
-
按顺序执行 {workflow.activation_steps_append} 中的每一项。激活完成后进入下述工作流。
约定与路径解析
- 裸路径(如 instructions.md)从技能根目录解析。
- {skill-root} 解析为本技能安装目录(即 customize.toml 所在位置)。
- {project-root} 为包含 _bmad/ 的最近文件夹,从项目工作目录开始向上遍历父级查找。
- {tea-knowledge} 为 bmod-tea 技能的 knowledge/ 文件夹,与本技能并列安装:{skill-root}/../bmod-tea/knowledge。其中的 tea-index.csv 列出每个片段相对该文件夹的路径。
- {skill-name} 解析为技能目录的 basename。
- instructions.md、checklist.md、steps-c/...、steps-e/...、steps-v/... 及模板等同级工作流文件均从 {skill-root} 解析。
适用场景
适用于发布前需要对已实现 NFR 证据进行审计的项目,且项目已通过 bmad setup tea 完成 TEA 初始化,并已安装 TEA 知识库。可按系统、史诗(epic)或故事(story)三种范围分别产出审计文档。
限制
- 若存在遗留定制覆盖文件(bmad-testarch-nfr.toml 或 bmad-testarch-nfr.user.toml),必须先迁移并开启新对话,否则不应继续。
- 若 _bmad/config.toml 缺失或没有 modules.tea 表,则 TEA 未设置,须先运行 bmad setup tea。
- 若 {tea-knowledge}/tea-index.csv 不存在,则 TEA 知识库未安装,需先安装 bmod-tea 技能。
- 恢复模式不会继续 runKey 属于其他运行的文档。
- 具体收费、价格、平台及效果等信息暂未提供。