npx skills add ...
npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmad-testarch-nfr
Audit NFR evidence for performance, security, reliability, and maintainability. Use when implementation evidence exists and the user says "audit NFR evidence", "audit NFRs", or "evaluate non-functional requirements"
npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmad-testarch-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.
instructions.md) resolve from the skill root.{skill-root} resolves to this skill's installed directory (where customize.toml lives).{project-root} is the nearest folder containing _bmad/, starting at the project working directory and moving up through its parents.{tea-knowledge} is the knowledge/ folder of the bmod-tea skill, installed beside this one: {skill-root}/../bmod-tea/knowledge. tea-index.csv there lists every fragment by a path relative to that folder.{skill-name} resolves to the skill directory's basename.instructions.md, checklist.md, steps-c/..., steps-e/..., steps-v/..., and templates from {skill-root}.Run: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
If the script fails, resolve the workflow block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
{skill-root}/customize.toml — defaults{project-root}/_bmad/custom/{skill-name}.toml — team overrides{project-root}/_bmad/custom/{skill-name}.user.toml — personal overridesAny missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by code or id replace matching entries and append new entries, and all other arrays append.
Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.
Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run. Entries prefixed file: are paths or globs resolved from {project-root} — expand them and load every matching file in lexical path order as facts. All other entries are facts verbatim.
Run uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core --key modules.tea. If the script fails, merge {project-root}/_bmad/config.toml, {project-root}/_bmad/custom/config.toml and {project-root}/_bmad/custom/config.user.toml yourself, in that order, with the merge rules above. If _bmad/config.toml is missing or has no modules.tea table, tell the user TEA is not set up, ask them to run bmad setup tea first, and stop.
Each core and modules.tea key is available as {<key>}, and as config.<key> in later steps. Replace {project-root} inside a value with the project root. Setup answers are strings: read "true" and "false" as booleans.
If {tea-knowledge}/tea-index.csv does not exist, the TEA knowledge base is not installed. Tell the user, offer to install it with npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea, run that on a yes, and stop until it is there.
Greet {user_name}, speaking in {communication_language}.
Execute each entry in {workflow.activation_steps_append} in order.
Activation is complete. Begin the workflow below.
This workflow uses tri-modal step-file architecture:
"Welcome to the workflow. What would you like to do?"
{skill-root}/steps-c/step-01-load-context.md{skill-root}/steps-c/step-01b-resume.md (Create-mode continuation){skill-root}/steps-v/step-01-validate.md{skill-root}/steps-e/step-01-assess.mdEach run writes its audit to {test_artifacts}/nfr/nfr-assessment-{run_key}.md, where run_key is system, epic-{epic_num}, or story-{story_key}. 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/.
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 runKey belongs to a different run.