bmad-testarch-nfr
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseNFR Evidence Audit
NFR 证据审计
Goal: Audit implemented non-functional requirement evidence (performance, security, reliability, maintainability) before release with evidence-based validation.
Role: You are the Master Test Architect.
You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
目标: 在发布前通过基于证据的验证,审计已实施的非功能需求证据(性能、安全性、可靠性、可维护性)。
角色: 你是 Master Test Architect。
你将继续使用你给定的名称、身份和 communication_style,并与此角色描述中的详细信息合并。
Conventions
约定
- Bare paths (e.g. ) resolve from the skill root.
instructions.md - resolves to this skill's installed directory (where
{skill-root}lives).customize.toml - is the nearest folder containing
{project-root}, starting at the project working directory and moving up through its parents._bmad/ - is the
{tea-knowledge}folder of theknowledge/skill, installed beside this one:bmod-tea.{skill-root}/../bmod-tea/knowledgethere lists every fragment by a path relative to that folder.tea-index.csv - resolves to the skill directory's basename.
{skill-name} - Resolve sibling workflow files such as ,
instructions.md,checklist.md,steps-c/...,steps-e/..., and templates fromsteps-v/....{skill-root}
- 裸路径(例如 )从 skill 根目录解析。
instructions.md - 解析为此 skill 的安装目录(其中包含
{skill-root})。customize.toml - 是包含
{project-root}的最近文件夹,从项目工作目录开始并逐级向上查找父目录。_bmad/ - 是
{tea-knowledge}skill 的bmod-tea文件夹,与此 skill 安装在同一位置:knowledge/。其中的{skill-root}/../bmod-tea/knowledge按相对于该文件夹的路径列出每个片段。tea-index.csv - 解析为 skill 目录的 basename。
{skill-name} - 从 解析同级工作流文件,例如
{skill-root}、instructions.md、checklist.md、steps-c/...、steps-e/...和模板。steps-v/...
On Activation
激活时
Step 1: Resolve the Workflow Block
第 1 步:解析工作流块
Run:
uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflowIf the script fails, resolve the block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
workflow- — defaults
{skill-root}/customize.toml - — team overrides
{project-root}/_bmad/custom/{skill-name}.toml - — personal overrides
{project-root}/_bmad/custom/{skill-name}.user.toml
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by or replace matching entries and append new entries, and all other arrays append.
codeid运行:
uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow如果脚本失败,按照 base → team → user 的顺序读取以下三个文件,并自行应用与解析器相同的结构化合并规则来解析 块:
workflow- — 默认值
{skill-root}/customize.toml - — 团队覆盖配置
{project-root}/_bmad/custom/{skill-name}.toml - — 个人覆盖配置
{project-root}/_bmad/custom/{skill-name}.user.toml
缺失的文件将被跳过。标量值覆盖,表进行深度合并,以 或 为键的表数组会替换匹配项并追加新项,所有其他数组均执行追加。
codeidStep 2: Execute Prepend Steps
第 2 步:执行前置步骤
Execute each entry in in order before proceeding.
{workflow.activation_steps_prepend}在继续之前,按顺序执行 中的每个条目。
{workflow.activation_steps_prepend}Step 3: Load Persistent Facts
第 3 步:加载持久性事实
Treat every entry in as foundational context you carry for the rest of the workflow run. Entries prefixed are paths or globs resolved from — expand them and load every matching file in lexical path order as facts. All other entries are facts verbatim.
{workflow.persistent_facts}file:{project-root}将 中的每个条目视为本次工作流运行期间需持续携带的基础上下文。以 为前缀的条目是相对于 解析的路径或 glob — 展开它们,并按词法路径顺序将每个匹配文件加载为事实。所有其他条目均按原样作为事实处理。
{workflow.persistent_facts}file:{project-root}Step 4: Load Config
第 4 步:加载配置
Run . If the script fails, merge , and yourself, in that order, with the merge rules above. If is missing or has no table, tell the user TEA is not set up, ask them to run first, and stop.
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.tomlmodules.teabmad setup teaEach and key is available as , and as in later steps. Replace inside a value with the project root. Setup answers are strings: read and as booleans.
coremodules.tea{<key>}config.<key>{project-root}"true""false"If does not exist, the TEA knowledge base is not installed. Tell the user, offer to install it with , run that on a yes, and stop until it is there.
{tea-knowledge}/tea-index.csvnpx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea运行:。如果脚本失败,请按上述顺序自行合并 、 和 ,并应用相同的合并规则。如果 不存在或没有 表,则告知用户尚未配置 TEA,要求其先运行 ,然后停止。
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.tomlmodules.teabmad setup tea每个 和 键均可通过 访问,后续步骤中也可通过 访问。将值中的 替换为项目根目录。设置答案为字符串:将 和 读取为布尔值。
coremodules.tea{<key>}config.<key>{project-root}"true""false"如果 不存在,则说明未安装 TEA 知识库。告知用户,并提议使用 安装;如果用户同意,则运行该命令,并停止工作直到知识库可用。
{tea-knowledge}/tea-index.csvnpx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-teaStep 5: Greet the User
第 5 步:问候用户
Greet , speaking in .
{user_name}{communication_language}使用 与 交谈。
{communication_language}{user_name}Step 6: Execute Append Steps
第 6 步:执行后置步骤
Execute each entry in in order.
{workflow.activation_steps_append}Activation is complete. Begin the workflow below.
按顺序执行 中的每个条目。
{workflow.activation_steps_append}激活完成。开始执行以下工作流。
Workflow Architecture
工作流架构
This workflow uses tri-modal step-file architecture:
- Create mode (steps-c/): primary execution flow for new runs and resume continuation
- Validate mode (steps-v/): validation against checklist
- Edit mode (steps-e/): revise existing outputs
此工作流采用三模式 step-file 架构:
- 创建模式(steps-c/):新运行和恢复后续执行的主要流程
- 验证模式(steps-v/):根据检查清单验证输出
- 编辑模式(steps-e/):修订现有输出
Initialization Sequence
初始化序列
1. Mode Determination
1. 模式判定
"Welcome to the workflow. What would you like to do?"
- [C] Create — Run the workflow from the beginning
- [R] Resume — Resume an interrupted Create workflow
- [V] Validate — Validate existing outputs
- [E] Edit — Edit existing outputs
“欢迎使用本工作流。您想做什么?”
- [C] 创建 — 从头开始运行工作流
- [R] 恢复 — 恢复被中断的创建工作流
- [V] 验证 — 验证现有输出
- [E] 编辑 — 编辑现有输出
2. Route to First Step
2. 路由到首个步骤
- If C: Load
{skill-root}/steps-c/step-01-load-context.md - If R: Load (Create-mode continuation)
{skill-root}/steps-c/step-01b-resume.md - If V: Load
{skill-root}/steps-v/step-01-validate.md - If E: Load
{skill-root}/steps-e/step-01-assess.md
Each run writes its audit to , where is , , or . Step 1 resolves it before the first save, so an audit for one scope never overwrites or merges into another scope's audit. Browser evidence screenshots also live under .
{test_artifacts}/nfr/nfr-assessment-{run_key}.mdrun_keysystemepic-{epic_num}story-{story_key}{test_artifacts}/nfr/Resume mode selects the output document matching the run being resumed, asks when several exist and no scope was named, and refuses to continue a document whose belongs to a different run.
runKey- 如果选择 C: 加载
{skill-root}/steps-c/step-01-load-context.md - 如果选择 R: 加载 (创建模式的后续执行)
{skill-root}/steps-c/step-01b-resume.md - 如果选择 V: 加载
{skill-root}/steps-v/step-01-validate.md - 如果选择 E: 加载
{skill-root}/steps-e/step-01-assess.md
每次运行都会将审计结果写入 ,其中 为 、 或 。第 1 步会在首次保存前解析该路径,因此针对某个范围的审计绝不会覆盖或合并到其他范围的审计中。浏览器证据截图也存放在 下。
{test_artifacts}/nfr/nfr-assessment-{run_key}.mdrun_keysystemepic-{epic_num}story-{story_key}{test_artifacts}/nfr/恢复模式会选择与待恢复运行相匹配的输出文档;如果存在多个文档且未指定范围,则向用户询问;如果文档的 属于其他运行,则拒绝继续处理该文档。
runKey