bmad-fh 6.0.0-alpha.052779ef
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.coderabbit.yaml +40 -0
- package/.githooks/post-checkout +129 -0
- package/.githooks/pre-commit +63 -0
- package/.githooks/pre-push +135 -0
- package/.github/CODE_OF_CONDUCT.md +128 -0
- package/.github/FUNDING.yaml +15 -0
- package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/.github/ISSUE_TEMPLATE/issue.md +32 -0
- package/.github/scripts/discord-helpers.sh +34 -0
- package/.github/workflows/bundle-latest.yaml +330 -0
- package/.github/workflows/discord.yaml +90 -0
- package/.github/workflows/docs.yaml +63 -0
- package/.github/workflows/manual-release.yaml +190 -0
- package/.github/workflows/publish-multi-artifact.yaml +54 -0
- package/.github/workflows/quality.yaml +115 -0
- package/.husky/pre-commit +20 -0
- package/.markdownlint-cli2.yaml +41 -0
- package/.nvmrc +1 -0
- package/.prettierignore +9 -0
- package/.vscode/settings.json +97 -0
- package/CHANGELOG.md +1394 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +306 -0
- package/CONTRIBUTORS.md +32 -0
- package/LICENSE +30 -0
- package/README.md +126 -0
- package/SECURITY.md +85 -0
- package/TRADEMARK.md +55 -0
- package/Wordmark.png +0 -0
- package/banner-bmad-method.png +0 -0
- package/docs/404.md +9 -0
- package/docs/_README_WORKFLOW_DIAGRAMS.md +40 -0
- package/docs/_STYLE_GUIDE.md +367 -0
- package/docs/_archive/customize-workflows.md +30 -0
- package/docs/_archive/getting-started-bmadv4.md +247 -0
- package/docs/_archive/vendor-workflows.md +52 -0
- package/docs/downloads.md +72 -0
- package/docs/explanation/agents/barry-quick-flow.md +328 -0
- package/docs/explanation/agents/index.md +19 -0
- package/docs/explanation/architecture/four-phases.md +107 -0
- package/docs/explanation/architecture/preventing-agent-conflicts.md +111 -0
- package/docs/explanation/architecture/why-solutioning-matters.md +75 -0
- package/docs/explanation/bmm/index.md +131 -0
- package/docs/explanation/core/index.md +18 -0
- package/docs/explanation/core-concepts/agent-roles.md +179 -0
- package/docs/explanation/core-concepts/index.md +35 -0
- package/docs/explanation/core-concepts/what-are-agents.md +97 -0
- package/docs/explanation/core-concepts/what-are-modules.md +85 -0
- package/docs/explanation/core-concepts/what-are-workflows.md +204 -0
- package/docs/explanation/faq/brownfield-faq.md +73 -0
- package/docs/explanation/faq/getting-started-faq.md +67 -0
- package/docs/explanation/faq/implementation-faq.md +52 -0
- package/docs/explanation/faq/index.md +16 -0
- package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
- package/docs/explanation/faq/planning-faq.md +41 -0
- package/docs/explanation/faq/tools-faq.md +277 -0
- package/docs/explanation/faq/workflows-faq.md +61 -0
- package/docs/explanation/features/advanced-elicitation.md +95 -0
- package/docs/explanation/features/brainstorming-techniques.md +92 -0
- package/docs/explanation/features/party-mode.md +95 -0
- package/docs/explanation/features/quick-flow.md +149 -0
- package/docs/explanation/features/tea-overview.md +410 -0
- package/docs/explanation/features/web-bundles.md +34 -0
- package/docs/explanation/philosophy/facilitation-over-generation.md +333 -0
- package/docs/explanation/philosophy/testing-as-engineering.md +112 -0
- package/docs/explanation/tea/engagement-models.md +710 -0
- package/docs/explanation/tea/fixture-architecture.md +457 -0
- package/docs/explanation/tea/knowledge-base-system.md +554 -0
- package/docs/explanation/tea/network-first-patterns.md +853 -0
- package/docs/explanation/tea/risk-based-testing.md +586 -0
- package/docs/explanation/tea/test-quality-standards.md +907 -0
- package/docs/how-to/brownfield/add-feature-to-existing.md +74 -0
- package/docs/how-to/brownfield/document-existing-project.md +66 -0
- package/docs/how-to/brownfield/index.md +84 -0
- package/docs/how-to/brownfield/quick-fix-in-brownfield.md +77 -0
- package/docs/how-to/brownfield/use-tea-for-enterprise.md +526 -0
- package/docs/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
- package/docs/how-to/customization/customize-agents.md +212 -0
- package/docs/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
- package/docs/how-to/customization/index.md +23 -0
- package/docs/how-to/customization/integrate-playwright-utils.md +813 -0
- package/docs/how-to/customization/shard-large-documents.md +101 -0
- package/docs/how-to/get-answers-about-bmad.md +102 -0
- package/docs/how-to/installation/index.md +12 -0
- package/docs/how-to/installation/install-bmad.md +111 -0
- package/docs/how-to/installation/install-custom-modules.md +118 -0
- package/docs/how-to/installation/upgrade-to-v6.md +131 -0
- package/docs/how-to/workflows/bmgd-quick-flow.md +156 -0
- package/docs/how-to/workflows/conduct-research.md +97 -0
- package/docs/how-to/workflows/create-architecture.md +119 -0
- package/docs/how-to/workflows/create-epics-and-stories.md +109 -0
- package/docs/how-to/workflows/create-prd.md +91 -0
- package/docs/how-to/workflows/create-product-brief.md +94 -0
- package/docs/how-to/workflows/create-story.md +102 -0
- package/docs/how-to/workflows/create-ux-design.md +100 -0
- package/docs/how-to/workflows/implement-story.md +97 -0
- package/docs/how-to/workflows/quick-spec.md +122 -0
- package/docs/how-to/workflows/run-atdd.md +436 -0
- package/docs/how-to/workflows/run-automate.md +653 -0
- package/docs/how-to/workflows/run-brainstorming-session.md +73 -0
- package/docs/how-to/workflows/run-code-review.md +89 -0
- package/docs/how-to/workflows/run-implementation-readiness.md +125 -0
- package/docs/how-to/workflows/run-nfr-assess.md +679 -0
- package/docs/how-to/workflows/run-sprint-planning.md +94 -0
- package/docs/how-to/workflows/run-test-design.md +98 -0
- package/docs/how-to/workflows/run-test-review.md +605 -0
- package/docs/how-to/workflows/run-trace.md +883 -0
- package/docs/how-to/workflows/setup-ci.md +712 -0
- package/docs/how-to/workflows/setup-party-mode.md +89 -0
- package/docs/how-to/workflows/setup-test-framework.md +98 -0
- package/docs/index.md +63 -0
- package/docs/migration-guide.md +365 -0
- package/docs/multi-scope-guide.md +379 -0
- package/docs/plans/multi-scope-parallel-artifacts-plan.md +695 -0
- package/docs/reference/agents/index.md +109 -0
- package/docs/reference/configuration/core-tasks.md +67 -0
- package/docs/reference/configuration/global-config.md +28 -0
- package/docs/reference/glossary/index.md +159 -0
- package/docs/reference/tea/commands.md +254 -0
- package/docs/reference/tea/configuration.md +678 -0
- package/docs/reference/tea/knowledge-base.md +340 -0
- package/docs/reference/workflows/core-workflows.md +32 -0
- package/docs/reference/workflows/document-project.md +73 -0
- package/docs/reference/workflows/index.md +12 -0
- package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
- package/docs/tutorials/getting-started/images/workflow-method-greenfield.excalidraw +5034 -0
- package/docs/tutorials/getting-started/images/workflow-method-greenfield.svg +4 -0
- package/docs/tutorials/getting-started/images/workflow-overview.jpg +0 -0
- package/docs/tutorials/getting-started/tea-lite-quickstart.md +444 -0
- package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
- package/eslint.config.mjs +152 -0
- package/package.json +117 -0
- package/prettier.config.mjs +32 -0
- package/src/bmm/_module-installer/installer.js +48 -0
- package/src/bmm/_module-installer/platform-specifics/claude-code.js +35 -0
- package/src/bmm/_module-installer/platform-specifics/windsurf.js +32 -0
- package/src/bmm/agents/analyst.agent.yaml +41 -0
- package/src/bmm/agents/architect.agent.yaml +33 -0
- package/src/bmm/agents/dev.agent.yaml +38 -0
- package/src/bmm/agents/pm.agent.yaml +51 -0
- package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
- package/src/bmm/agents/sm.agent.yaml +47 -0
- package/src/bmm/agents/tea.agent.yaml +68 -0
- package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
- package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +49 -0
- package/src/bmm/agents/ux-designer.agent.yaml +30 -0
- package/src/bmm/data/README.md +29 -0
- package/src/bmm/data/project-context-template.md +40 -0
- package/src/bmm/module.yaml +64 -0
- package/src/bmm/sub-modules/claude-code/config.yaml +4 -0
- package/src/bmm/sub-modules/claude-code/injections.yaml +242 -0
- package/src/bmm/sub-modules/claude-code/readme.md +87 -0
- package/src/bmm/teams/default-party.csv +21 -0
- package/src/bmm/teams/team-fullstack.yaml +12 -0
- package/src/bmm/testarch/knowledge/api-request.md +442 -0
- package/src/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
- package/src/bmm/testarch/knowledge/auth-session.md +552 -0
- package/src/bmm/testarch/knowledge/burn-in.md +273 -0
- package/src/bmm/testarch/knowledge/ci-burn-in.md +675 -0
- package/src/bmm/testarch/knowledge/component-tdd.md +486 -0
- package/src/bmm/testarch/knowledge/contract-testing.md +957 -0
- package/src/bmm/testarch/knowledge/data-factories.md +500 -0
- package/src/bmm/testarch/knowledge/email-auth.md +721 -0
- package/src/bmm/testarch/knowledge/error-handling.md +725 -0
- package/src/bmm/testarch/knowledge/feature-flags.md +750 -0
- package/src/bmm/testarch/knowledge/file-utils.md +463 -0
- package/src/bmm/testarch/knowledge/fixture-architecture.md +401 -0
- package/src/bmm/testarch/knowledge/fixtures-composition.md +382 -0
- package/src/bmm/testarch/knowledge/intercept-network-call.md +430 -0
- package/src/bmm/testarch/knowledge/log.md +429 -0
- package/src/bmm/testarch/knowledge/network-error-monitor.md +405 -0
- package/src/bmm/testarch/knowledge/network-first.md +486 -0
- package/src/bmm/testarch/knowledge/network-recorder.md +527 -0
- package/src/bmm/testarch/knowledge/nfr-criteria.md +670 -0
- package/src/bmm/testarch/knowledge/overview.md +286 -0
- package/src/bmm/testarch/knowledge/playwright-config.md +730 -0
- package/src/bmm/testarch/knowledge/probability-impact.md +601 -0
- package/src/bmm/testarch/knowledge/recurse.md +421 -0
- package/src/bmm/testarch/knowledge/risk-governance.md +615 -0
- package/src/bmm/testarch/knowledge/selective-testing.md +732 -0
- package/src/bmm/testarch/knowledge/selector-resilience.md +527 -0
- package/src/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
- package/src/bmm/testarch/knowledge/test-levels-framework.md +473 -0
- package/src/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/src/bmm/testarch/knowledge/test-quality.md +664 -0
- package/src/bmm/testarch/knowledge/timing-debugging.md +372 -0
- package/src/bmm/testarch/knowledge/visual-debugging.md +524 -0
- package/src/bmm/testarch/tea-index.csv +34 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +194 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
- package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
- package/src/bmm/workflows/1-analysis/research/workflow.md +173 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
- package/src/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv +13 -0
- package/src/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
- package/src/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +11 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +153 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +231 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
- package/src/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +10 -0
- package/src/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
- package/src/bmm/workflows/2-plan-workflows/prd/workflow.md +150 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +133 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +352 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +145 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
- package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
- package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
- package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
- package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
- package/src/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
- package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
- package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
- package/src/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
- package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
- package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
- package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
- package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
- package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +27 -0
- package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
- package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
- package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
- package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +191 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
- package/src/bmm/workflows/document-project/checklist.md +245 -0
- package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/src/bmm/workflows/document-project/instructions.md +221 -0
- package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/src/bmm/workflows/document-project/workflow.yaml +30 -0
- package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
- package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
- package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
- package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
- package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
- package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
- package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
- package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -0
- package/src/bmm/workflows/testarch/atdd/checklist.md +374 -0
- package/src/bmm/workflows/testarch/atdd/instructions.md +806 -0
- package/src/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
- package/src/bmm/workflows/testarch/automate/checklist.md +582 -0
- package/src/bmm/workflows/testarch/automate/instructions.md +1324 -0
- package/src/bmm/workflows/testarch/automate/workflow.yaml +54 -0
- package/src/bmm/workflows/testarch/ci/checklist.md +248 -0
- package/src/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
- package/src/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
- package/src/bmm/workflows/testarch/ci/instructions.md +536 -0
- package/src/bmm/workflows/testarch/ci/workflow.yaml +47 -0
- package/src/bmm/workflows/testarch/framework/checklist.md +321 -0
- package/src/bmm/workflows/testarch/framework/instructions.md +481 -0
- package/src/bmm/workflows/testarch/framework/workflow.yaml +49 -0
- package/src/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
- package/src/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
- package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -0
- package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
- package/src/bmm/workflows/testarch/test-design/checklist.md +235 -0
- package/src/bmm/workflows/testarch/test-design/instructions.md +788 -0
- package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
- package/src/bmm/workflows/testarch/test-design/workflow.yaml +56 -0
- package/src/bmm/workflows/testarch/test-review/checklist.md +472 -0
- package/src/bmm/workflows/testarch/test-review/instructions.md +628 -0
- package/src/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
- package/src/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
- package/src/bmm/workflows/testarch/trace/checklist.md +655 -0
- package/src/bmm/workflows/testarch/trace/instructions.md +1047 -0
- package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
- package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
- package/src/bmm/workflows/workflow-status/init/instructions.md +346 -0
- package/src/bmm/workflows/workflow-status/init/workflow.yaml +30 -0
- package/src/bmm/workflows/workflow-status/instructions.md +397 -0
- package/src/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -0
- package/src/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -0
- package/src/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -0
- package/src/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -0
- package/src/bmm/workflows/workflow-status/project-levels.yaml +59 -0
- package/src/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/bmm/workflows/workflow-status/workflow.yaml +32 -0
- package/src/core/_module-installer/installer.js +60 -0
- package/src/core/agents/bmad-master.agent.yaml +30 -0
- package/src/core/lib/scope/artifact-resolver.js +298 -0
- package/src/core/lib/scope/event-logger.js +400 -0
- package/src/core/lib/scope/index.js +30 -0
- package/src/core/lib/scope/scope-context.js +301 -0
- package/src/core/lib/scope/scope-initializer.js +456 -0
- package/src/core/lib/scope/scope-manager.js +512 -0
- package/src/core/lib/scope/scope-migrator.js +434 -0
- package/src/core/lib/scope/scope-sync.js +483 -0
- package/src/core/lib/scope/scope-validator.js +294 -0
- package/src/core/lib/scope/state-lock.js +336 -0
- package/src/core/module.yaml +53 -0
- package/src/core/resources/excalidraw/README.md +160 -0
- package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
- package/src/core/resources/excalidraw/library-loader.md +50 -0
- package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
- package/src/core/tasks/editorial-review-prose.xml +91 -0
- package/src/core/tasks/editorial-review-structure.xml +198 -0
- package/src/core/tasks/index-docs.xml +65 -0
- package/src/core/tasks/review-adversarial-general.xml +46 -0
- package/src/core/tasks/shard-doc.xml +109 -0
- package/src/core/tasks/workflow.xml +277 -0
- package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
- package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
- package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
- package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
- package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
- package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
- package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
- package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
- package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
- package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
- package/src/core/workflows/brainstorming/template.md +15 -0
- package/src/core/workflows/brainstorming/workflow.md +58 -0
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
- package/src/core/workflows/party-mode/workflow.md +194 -0
- package/src/utility/agent-components/activation-rules.txt +6 -0
- package/src/utility/agent-components/activation-steps.txt +28 -0
- package/src/utility/agent-components/agent-command-header.md +1 -0
- package/src/utility/agent-components/agent.customize.template.yaml +41 -0
- package/src/utility/agent-components/handler-action.txt +4 -0
- package/src/utility/agent-components/handler-data.txt +5 -0
- package/src/utility/agent-components/handler-exec.txt +19 -0
- package/src/utility/agent-components/handler-multi.txt +14 -0
- package/src/utility/agent-components/handler-tmpl.txt +5 -0
- package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
- package/src/utility/agent-components/handler-workflow.txt +10 -0
- package/src/utility/agent-components/menu-handlers.txt +6 -0
- package/test/README.md +295 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
- package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-cli-integration.sh +159 -0
- package/test/test-installation-components.js +214 -0
- package/test/test-scope-e2e.js +439 -0
- package/test/test-scope-system.js +781 -0
- package/test/unit-test-schema.js +133 -0
- package/tools/bmad-npx-wrapper.js +38 -0
- package/tools/build-docs.js +577 -0
- package/tools/cli/README.md +7 -0
- package/tools/cli/bmad-cli.js +58 -0
- package/tools/cli/commands/install.js +87 -0
- package/tools/cli/commands/scope.js +474 -0
- package/tools/cli/external-official-modules.yaml +41 -0
- package/tools/cli/installers/install-messages.yaml +58 -0
- package/tools/cli/installers/lib/core/config-collector.js +1079 -0
- package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
- package/tools/cli/installers/lib/core/dependency-resolver.js +739 -0
- package/tools/cli/installers/lib/core/detector.js +223 -0
- package/tools/cli/installers/lib/core/ide-config-manager.js +156 -0
- package/tools/cli/installers/lib/core/installer.js +2585 -0
- package/tools/cli/installers/lib/core/manifest-generator.js +963 -0
- package/tools/cli/installers/lib/core/manifest.js +590 -0
- package/tools/cli/installers/lib/custom/handler.js +363 -0
- package/tools/cli/installers/lib/ide/_base-ide.js +654 -0
- package/tools/cli/installers/lib/ide/antigravity.js +486 -0
- package/tools/cli/installers/lib/ide/auggie.js +244 -0
- package/tools/cli/installers/lib/ide/claude-code.js +487 -0
- package/tools/cli/installers/lib/ide/cline.js +269 -0
- package/tools/cli/installers/lib/ide/codex.js +375 -0
- package/tools/cli/installers/lib/ide/crush.js +300 -0
- package/tools/cli/installers/lib/ide/cursor.js +169 -0
- package/tools/cli/installers/lib/ide/gemini.js +301 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +383 -0
- package/tools/cli/installers/lib/ide/iflow.js +191 -0
- package/tools/cli/installers/lib/ide/kilo.js +250 -0
- package/tools/cli/installers/lib/ide/kiro-cli.js +326 -0
- package/tools/cli/installers/lib/ide/manager.js +244 -0
- package/tools/cli/installers/lib/ide/opencode.js +257 -0
- package/tools/cli/installers/lib/ide/qwen.js +372 -0
- package/tools/cli/installers/lib/ide/roo.js +270 -0
- package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +96 -0
- package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +158 -0
- package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +242 -0
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +29 -0
- package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
- package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +30 -0
- package/tools/cli/installers/lib/ide/templates/workflow-commander.md +45 -0
- package/tools/cli/installers/lib/ide/trae.js +313 -0
- package/tools/cli/installers/lib/ide/windsurf.js +258 -0
- package/tools/cli/installers/lib/message-loader.js +85 -0
- package/tools/cli/installers/lib/modules/external-manager.js +133 -0
- package/tools/cli/installers/lib/modules/manager.js +1362 -0
- package/tools/cli/lib/activation-builder.js +163 -0
- package/tools/cli/lib/agent/compiler.js +522 -0
- package/tools/cli/lib/agent/installer.js +716 -0
- package/tools/cli/lib/agent/template-engine.js +152 -0
- package/tools/cli/lib/agent-analyzer.js +109 -0
- package/tools/cli/lib/agent-party-generator.js +194 -0
- package/tools/cli/lib/cli-utils.js +227 -0
- package/tools/cli/lib/config.js +213 -0
- package/tools/cli/lib/file-ops.js +204 -0
- package/tools/cli/lib/platform-codes.js +116 -0
- package/tools/cli/lib/project-root.js +77 -0
- package/tools/cli/lib/prompts.js +433 -0
- package/tools/cli/lib/ui.js +1591 -0
- package/tools/cli/lib/xml-handler.js +177 -0
- package/tools/cli/lib/xml-to-markdown.js +82 -0
- package/tools/cli/lib/yaml-format.js +245 -0
- package/tools/cli/lib/yaml-xml-builder.js +587 -0
- package/tools/cli/scripts/migrate-workflows.js +273 -0
- package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
- package/tools/docs/index.md +2 -0
- package/tools/fix-doc-links.js +288 -0
- package/tools/flattener/aggregate.js +76 -0
- package/tools/flattener/binary.js +80 -0
- package/tools/flattener/discovery.js +71 -0
- package/tools/flattener/files.js +35 -0
- package/tools/flattener/ignoreRules.js +172 -0
- package/tools/flattener/main.js +483 -0
- package/tools/flattener/projectRoot.js +201 -0
- package/tools/flattener/prompts.js +44 -0
- package/tools/flattener/stats.helpers.js +368 -0
- package/tools/flattener/stats.js +75 -0
- package/tools/flattener/test-matrix.js +409 -0
- package/tools/flattener/xml.js +82 -0
- package/tools/format-workflow-md.js +263 -0
- package/tools/lib/xml-utils.js +13 -0
- package/tools/maintainer/review-pr-README.md +55 -0
- package/tools/maintainer/review-pr.md +242 -0
- package/tools/migrate-custom-module-paths.js +124 -0
- package/tools/platform-codes.yaml +157 -0
- package/tools/schema/agent.js +493 -0
- package/tools/validate-agent-schema.js +110 -0
- package/tools/validate-doc-links.js +363 -0
- package/tools/validate-svg-changes.sh +356 -0
- package/website/README.md +76 -0
- package/website/astro.config.mjs +228 -0
- package/website/public/favicon.ico +0 -0
- package/website/public/img/bmad-dark.png +0 -0
- package/website/public/img/bmad-light.png +0 -0
- package/website/public/img/logo.svg +4 -0
- package/website/public/robots.txt +37 -0
- package/website/src/components/Banner.astro +59 -0
- package/website/src/components/Header.astro +121 -0
- package/website/src/components/MobileMenuFooter.astro +53 -0
- package/website/src/content/config.ts +6 -0
- package/website/src/lib/site-url.js +25 -0
- package/website/src/rehype-markdown-links.js +102 -0
- package/website/src/styles/custom.css +485 -0
|
@@ -0,0 +1,679 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "How to Run NFR Assessment with TEA"
|
|
3
|
+
description: Validate non-functional requirements for security, performance, reliability, and maintainability using TEA
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# How to Run NFR Assessment with TEA
|
|
7
|
+
|
|
8
|
+
Use TEA's `*nfr-assess` workflow to validate non-functional requirements (NFRs) with evidence-based assessment across security, performance, reliability, and maintainability.
|
|
9
|
+
|
|
10
|
+
## When to Use This
|
|
11
|
+
|
|
12
|
+
- Enterprise projects with compliance requirements
|
|
13
|
+
- Projects with strict NFR thresholds
|
|
14
|
+
- Before production release
|
|
15
|
+
- When NFRs are critical to project success
|
|
16
|
+
- Security or performance is mission-critical
|
|
17
|
+
|
|
18
|
+
**Best for:**
|
|
19
|
+
- Enterprise track projects
|
|
20
|
+
- Compliance-heavy industries (finance, healthcare, government)
|
|
21
|
+
- High-traffic applications
|
|
22
|
+
- Security-critical systems
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
- BMad Method installed
|
|
27
|
+
- TEA agent available
|
|
28
|
+
- NFRs defined in PRD or requirements doc
|
|
29
|
+
- Evidence preferred but not required (test results, security scans, performance metrics)
|
|
30
|
+
|
|
31
|
+
**Note:** You can run NFR assessment without complete evidence. TEA will mark categories as CONCERNS where evidence is missing and document what's needed.
|
|
32
|
+
|
|
33
|
+
## Steps
|
|
34
|
+
|
|
35
|
+
### 1. Run the NFR Assessment Workflow
|
|
36
|
+
|
|
37
|
+
Start a fresh chat and run:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
*nfr-assess
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This loads TEA and starts the NFR assessment workflow.
|
|
44
|
+
|
|
45
|
+
### 2. Specify NFR Categories
|
|
46
|
+
|
|
47
|
+
TEA will ask which NFR categories to assess.
|
|
48
|
+
|
|
49
|
+
**Available Categories:**
|
|
50
|
+
|
|
51
|
+
| Category | Focus Areas |
|
|
52
|
+
|----------|-------------|
|
|
53
|
+
| **Security** | Authentication, authorization, encryption, vulnerabilities, security headers, input validation |
|
|
54
|
+
| **Performance** | Response time, throughput, resource usage, database queries, frontend load time |
|
|
55
|
+
| **Reliability** | Error handling, recovery mechanisms, availability, failover, data backup |
|
|
56
|
+
| **Maintainability** | Code quality, test coverage, technical debt, documentation, dependency health |
|
|
57
|
+
|
|
58
|
+
**Example Response:**
|
|
59
|
+
```
|
|
60
|
+
Assess:
|
|
61
|
+
- Security (critical for user data)
|
|
62
|
+
- Performance (API must be fast)
|
|
63
|
+
- Reliability (99.9% uptime requirement)
|
|
64
|
+
|
|
65
|
+
Skip maintainability for now
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 3. Provide NFR Thresholds
|
|
69
|
+
|
|
70
|
+
TEA will ask for specific thresholds for each category.
|
|
71
|
+
|
|
72
|
+
**Critical Principle: Never guess thresholds.**
|
|
73
|
+
|
|
74
|
+
If you don't know the exact requirement, tell TEA to mark as CONCERNS and request clarification from stakeholders.
|
|
75
|
+
|
|
76
|
+
#### Security Thresholds
|
|
77
|
+
|
|
78
|
+
**Example:**
|
|
79
|
+
```
|
|
80
|
+
Requirements:
|
|
81
|
+
- All endpoints require authentication: YES
|
|
82
|
+
- Data encrypted at rest: YES (PostgreSQL TDE)
|
|
83
|
+
- Zero critical vulnerabilities: YES (npm audit)
|
|
84
|
+
- Input validation on all endpoints: YES (Zod schemas)
|
|
85
|
+
- Security headers configured: YES (helmet.js)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### Performance Thresholds
|
|
89
|
+
|
|
90
|
+
**Example:**
|
|
91
|
+
```
|
|
92
|
+
Requirements:
|
|
93
|
+
- API response time P99: < 200ms
|
|
94
|
+
- API response time P95: < 150ms
|
|
95
|
+
- Throughput: > 1000 requests/second
|
|
96
|
+
- Frontend initial load: < 2 seconds
|
|
97
|
+
- Database query time P99: < 50ms
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Reliability Thresholds
|
|
101
|
+
|
|
102
|
+
**Example:**
|
|
103
|
+
```
|
|
104
|
+
Requirements:
|
|
105
|
+
- Error handling: All endpoints return structured errors
|
|
106
|
+
- Availability: 99.9% uptime
|
|
107
|
+
- Recovery time: < 5 minutes (RTO)
|
|
108
|
+
- Data backup: Daily automated backups
|
|
109
|
+
- Failover: Automatic with < 30s downtime
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### Maintainability Thresholds
|
|
113
|
+
|
|
114
|
+
**Example:**
|
|
115
|
+
```
|
|
116
|
+
Requirements:
|
|
117
|
+
- Test coverage: > 80%
|
|
118
|
+
- Code quality: SonarQube grade A
|
|
119
|
+
- Documentation: All APIs documented
|
|
120
|
+
- Dependency age: < 6 months outdated
|
|
121
|
+
- Technical debt: < 10% of codebase
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 4. Provide Evidence
|
|
125
|
+
|
|
126
|
+
TEA will ask where to find evidence for each requirement.
|
|
127
|
+
|
|
128
|
+
**Evidence Sources:**
|
|
129
|
+
|
|
130
|
+
| Category | Evidence Type | Location |
|
|
131
|
+
|----------|---------------|----------|
|
|
132
|
+
| Security | Security scan reports | `/reports/security-scan.pdf` |
|
|
133
|
+
| Security | Vulnerability scan | `npm audit`, `snyk test` results |
|
|
134
|
+
| Security | Auth test results | Test reports showing auth coverage |
|
|
135
|
+
| Performance | Load test results | `/reports/k6-load-test.json` |
|
|
136
|
+
| Performance | APM data | Datadog, New Relic dashboards |
|
|
137
|
+
| Performance | Lighthouse scores | `/reports/lighthouse.json` |
|
|
138
|
+
| Reliability | Error rate metrics | Production monitoring dashboards |
|
|
139
|
+
| Reliability | Uptime data | StatusPage, PagerDuty logs |
|
|
140
|
+
| Maintainability | Coverage reports | `/reports/coverage/index.html` |
|
|
141
|
+
| Maintainability | Code quality | SonarQube dashboard |
|
|
142
|
+
|
|
143
|
+
**Example Response:**
|
|
144
|
+
```
|
|
145
|
+
Evidence:
|
|
146
|
+
- Security: npm audit results (clean), auth tests 15/15 passing
|
|
147
|
+
- Performance: k6 load test at /reports/k6-results.json
|
|
148
|
+
- Reliability: Error rate 0.01% in staging (logs in Datadog)
|
|
149
|
+
|
|
150
|
+
Don't have:
|
|
151
|
+
- Uptime data (new system, no baseline)
|
|
152
|
+
- Mark as CONCERNS and request monitoring setup
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 5. Review NFR Assessment Report
|
|
156
|
+
|
|
157
|
+
TEA generates a comprehensive assessment report.
|
|
158
|
+
|
|
159
|
+
#### Assessment Report (`nfr-assessment.md`):
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
# Non-Functional Requirements Assessment
|
|
163
|
+
|
|
164
|
+
**Date:** 2026-01-13
|
|
165
|
+
**Epic:** User Profile Management
|
|
166
|
+
**Release:** v1.2.0
|
|
167
|
+
**Overall Decision:** CONCERNS ⚠️
|
|
168
|
+
|
|
169
|
+
## Executive Summary
|
|
170
|
+
|
|
171
|
+
| Category | Status | Critical Issues |
|
|
172
|
+
|----------|--------|-----------------|
|
|
173
|
+
| Security | PASS ✅ | 0 |
|
|
174
|
+
| Performance | CONCERNS ⚠️ | 2 |
|
|
175
|
+
| Reliability | PASS ✅ | 0 |
|
|
176
|
+
| Maintainability | PASS ✅ | 0 |
|
|
177
|
+
|
|
178
|
+
**Decision Rationale:**
|
|
179
|
+
Performance metrics below target (P99 latency, throughput). Mitigation plan in place. Security and reliability meet all requirements.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Security Assessment
|
|
184
|
+
|
|
185
|
+
**Status:** PASS ✅
|
|
186
|
+
|
|
187
|
+
### Requirements Met
|
|
188
|
+
|
|
189
|
+
| Requirement | Target | Actual | Status |
|
|
190
|
+
|-------------|--------|--------|--------|
|
|
191
|
+
| Authentication required | All endpoints | 100% enforced | ✅ |
|
|
192
|
+
| Data encryption at rest | PostgreSQL TDE | Enabled | ✅ |
|
|
193
|
+
| Critical vulnerabilities | 0 | 0 | ✅ |
|
|
194
|
+
| Input validation | All endpoints | Zod schemas on 100% | ✅ |
|
|
195
|
+
| Security headers | Configured | helmet.js enabled | ✅ |
|
|
196
|
+
|
|
197
|
+
### Evidence
|
|
198
|
+
|
|
199
|
+
**Security Scan:**
|
|
200
|
+
```bash
|
|
201
|
+
$ npm audit
|
|
202
|
+
found 0 vulnerabilities
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Authentication Tests:**
|
|
206
|
+
- 15/15 auth tests passing
|
|
207
|
+
- Tested unauthorized access (401 responses)
|
|
208
|
+
- Token validation working
|
|
209
|
+
|
|
210
|
+
**Penetration Testing:**
|
|
211
|
+
- Report: `/reports/pentest-2026-01.pdf`
|
|
212
|
+
- Findings: 0 critical, 2 low (addressed)
|
|
213
|
+
|
|
214
|
+
**Conclusion:** All security requirements met. No blockers.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Performance Assessment
|
|
219
|
+
|
|
220
|
+
**Status:** CONCERNS ⚠️
|
|
221
|
+
|
|
222
|
+
### Requirements Status
|
|
223
|
+
|
|
224
|
+
| Metric | Target | Actual | Status |
|
|
225
|
+
|--------|--------|--------|--------|
|
|
226
|
+
| API response P99 | < 200ms | 350ms | ❌ Exceeds |
|
|
227
|
+
| API response P95 | < 150ms | 180ms | ⚠️ Exceeds |
|
|
228
|
+
| Throughput | > 1000 rps | 850 rps | ⚠️ Below |
|
|
229
|
+
| Frontend load | < 2s | 1.8s | ✅ Met |
|
|
230
|
+
| DB query P99 | < 50ms | 85ms | ❌ Exceeds |
|
|
231
|
+
|
|
232
|
+
### Issues Identified
|
|
233
|
+
|
|
234
|
+
#### Issue 1: P99 Latency Exceeds Target
|
|
235
|
+
|
|
236
|
+
**Measured:** 350ms P99 (target: <200ms)
|
|
237
|
+
**Root Cause:** Database queries not optimized
|
|
238
|
+
- Missing indexes on profile queries
|
|
239
|
+
- N+1 query problem in profile endpoint
|
|
240
|
+
|
|
241
|
+
**Impact:** User experience degraded for 1% of requests
|
|
242
|
+
|
|
243
|
+
**Mitigation Plan:**
|
|
244
|
+
- Add composite index on `(user_id, profile_id)` - backend team, 2 days
|
|
245
|
+
- Refactor profile endpoint to use joins instead of multiple queries - backend team, 3 days
|
|
246
|
+
- Re-run load tests after optimization - QA team, 1 day
|
|
247
|
+
|
|
248
|
+
**Owner:** Backend team lead
|
|
249
|
+
**Deadline:** Before release (January 20, 2026)
|
|
250
|
+
|
|
251
|
+
#### Issue 2: Throughput Below Target
|
|
252
|
+
|
|
253
|
+
**Measured:** 850 rps (target: >1000 rps)
|
|
254
|
+
**Root Cause:** Connection pool size too small
|
|
255
|
+
- PostgreSQL max_connections = 100 (too low)
|
|
256
|
+
- No connection pooling in application
|
|
257
|
+
|
|
258
|
+
**Impact:** System cannot handle expected traffic
|
|
259
|
+
|
|
260
|
+
**Mitigation Plan:**
|
|
261
|
+
- Increase PostgreSQL max_connections to 500 - DevOps, 1 day
|
|
262
|
+
- Implement connection pooling with pg-pool - backend team, 2 days
|
|
263
|
+
- Re-run load tests - QA team, 1 day
|
|
264
|
+
|
|
265
|
+
**Owner:** DevOps + Backend team
|
|
266
|
+
**Deadline:** Before release (January 20, 2026)
|
|
267
|
+
|
|
268
|
+
### Evidence
|
|
269
|
+
|
|
270
|
+
**Load Testing:**
|
|
271
|
+
```
|
|
272
|
+
Tool: k6
|
|
273
|
+
Duration: 10 minutes
|
|
274
|
+
Virtual Users: 500 concurrent
|
|
275
|
+
Report: /reports/k6-load-test.json
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Results:**
|
|
279
|
+
```
|
|
280
|
+
scenarios: (100.00%) 1 scenario, 500 max VUs, 10m30s max duration
|
|
281
|
+
✓ http_req_duration..............: avg=250ms min=45ms med=180ms max=2.1s p(90)=280ms p(95)=350ms
|
|
282
|
+
http_reqs......................: 85000 (850/s)
|
|
283
|
+
http_req_failed................: 0.1%
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**APM Data:**
|
|
287
|
+
- Tool: Datadog
|
|
288
|
+
- Dashboard: <https://app.datadoghq.com/dashboard/abc123>
|
|
289
|
+
|
|
290
|
+
**Conclusion:** Performance issues identified with mitigation plan. Re-assess after optimization.
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Reliability Assessment
|
|
295
|
+
|
|
296
|
+
**Status:** PASS ✅
|
|
297
|
+
|
|
298
|
+
### Requirements Met
|
|
299
|
+
|
|
300
|
+
| Requirement | Target | Actual | Status |
|
|
301
|
+
|-------------|--------|--------|--------|
|
|
302
|
+
| Error handling | Structured errors | 100% endpoints | ✅ |
|
|
303
|
+
| Availability | 99.9% uptime | 99.95% (staging) | ✅ |
|
|
304
|
+
| Recovery time | < 5 min (RTO) | 3 min (tested) | ✅ |
|
|
305
|
+
| Data backup | Daily | Automated daily | ✅ |
|
|
306
|
+
| Failover | < 30s downtime | 15s (tested) | ✅ |
|
|
307
|
+
|
|
308
|
+
### Evidence
|
|
309
|
+
|
|
310
|
+
**Error Handling Tests:**
|
|
311
|
+
- All endpoints return structured JSON errors
|
|
312
|
+
- Error codes standardized (400, 401, 403, 404, 500)
|
|
313
|
+
- Error messages user-friendly (no stack traces)
|
|
314
|
+
|
|
315
|
+
**Chaos Engineering:**
|
|
316
|
+
- Tested database failover: 15s downtime ✅
|
|
317
|
+
- Tested service crash recovery: 3 min ✅
|
|
318
|
+
- Tested network partition: Graceful degradation ✅
|
|
319
|
+
|
|
320
|
+
**Monitoring:**
|
|
321
|
+
- Staging uptime (30 days): 99.95%
|
|
322
|
+
- Error rate: 0.01% (target: <0.1%)
|
|
323
|
+
- P50 availability: 100%
|
|
324
|
+
|
|
325
|
+
**Conclusion:** All reliability requirements exceeded. No issues.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Maintainability Assessment
|
|
330
|
+
|
|
331
|
+
**Status:** PASS ✅
|
|
332
|
+
|
|
333
|
+
### Requirements Met
|
|
334
|
+
|
|
335
|
+
| Requirement | Target | Actual | Status |
|
|
336
|
+
|-------------|--------|--------|--------|
|
|
337
|
+
| Test coverage | > 80% | 85% | ✅ |
|
|
338
|
+
| Code quality | Grade A | Grade A | ✅ |
|
|
339
|
+
| Documentation | All APIs | 100% documented | ✅ |
|
|
340
|
+
| Outdated dependencies | < 6 months | 3 months avg | ✅ |
|
|
341
|
+
| Technical debt | < 10% | 7% | ✅ |
|
|
342
|
+
|
|
343
|
+
### Evidence
|
|
344
|
+
|
|
345
|
+
**Test Coverage:**
|
|
346
|
+
```
|
|
347
|
+
Statements : 85.2% ( 1205/1414 )
|
|
348
|
+
Branches : 82.1% ( 412/502 )
|
|
349
|
+
Functions : 88.5% ( 201/227 )
|
|
350
|
+
Lines : 85.2% ( 1205/1414 )
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Code Quality:**
|
|
354
|
+
- SonarQube: Grade A
|
|
355
|
+
- Maintainability rating: A
|
|
356
|
+
- Technical debt ratio: 7%
|
|
357
|
+
- Code smells: 12 (all minor)
|
|
358
|
+
|
|
359
|
+
**Documentation:**
|
|
360
|
+
- API docs: 100% coverage (OpenAPI spec)
|
|
361
|
+
- README: Complete and up-to-date
|
|
362
|
+
- Architecture docs: ADRs for all major decisions
|
|
363
|
+
|
|
364
|
+
**Conclusion:** All maintainability requirements met. Codebase is healthy.
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Overall Gate Decision
|
|
369
|
+
|
|
370
|
+
### Decision: CONCERNS ⚠️
|
|
371
|
+
|
|
372
|
+
**Rationale:**
|
|
373
|
+
- **Blockers:** None
|
|
374
|
+
- **Concerns:** Performance metrics below target (P99 latency, throughput)
|
|
375
|
+
- **Mitigation:** Plan in place with clear owners and deadlines (5 days total)
|
|
376
|
+
- **Passing:** Security, reliability, maintainability all green
|
|
377
|
+
|
|
378
|
+
### Actions Required Before Release
|
|
379
|
+
|
|
380
|
+
1. **Optimize database queries** (backend team, 3 days)
|
|
381
|
+
- Add indexes
|
|
382
|
+
- Fix N+1 queries
|
|
383
|
+
- Implement connection pooling
|
|
384
|
+
|
|
385
|
+
2. **Re-run performance tests** (QA team, 1 day)
|
|
386
|
+
- Validate P99 < 200ms
|
|
387
|
+
- Validate throughput > 1000 rps
|
|
388
|
+
|
|
389
|
+
3. **Update this assessment** (TEA, 1 hour)
|
|
390
|
+
- Re-run `*nfr-assess` with new results
|
|
391
|
+
- Confirm PASS status
|
|
392
|
+
|
|
393
|
+
### Waiver Option (If Business Approves)
|
|
394
|
+
|
|
395
|
+
If business decides to deploy with current performance:
|
|
396
|
+
|
|
397
|
+
**Waiver Justification:**
|
|
398
|
+
```markdown
|
|
399
|
+
## Performance Waiver
|
|
400
|
+
|
|
401
|
+
**Waived By:** VP Engineering, Product Manager
|
|
402
|
+
**Date:** 2026-01-15
|
|
403
|
+
**Reason:** Business priority to launch by Q1
|
|
404
|
+
**Conditions:**
|
|
405
|
+
- Set monitoring alerts for P99 > 300ms
|
|
406
|
+
- Plan optimization for v1.3 (February release)
|
|
407
|
+
- Document known performance limitations in release notes
|
|
408
|
+
|
|
409
|
+
**Accepted Risk:**
|
|
410
|
+
- 1% of users experience slower response (350ms vs 200ms)
|
|
411
|
+
- System can handle current traffic (850 rps sufficient for launch)
|
|
412
|
+
- Optimization planned for next release
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### Approvals
|
|
416
|
+
|
|
417
|
+
- [ ] Product Manager - Review business impact
|
|
418
|
+
- [ ] Tech Lead - Review mitigation plan
|
|
419
|
+
- [ ] QA Lead - Validate test evidence
|
|
420
|
+
- [ ] DevOps - Confirm infrastructure ready
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Monitoring Plan Post-Release
|
|
425
|
+
|
|
426
|
+
**Performance Alerts:**
|
|
427
|
+
- P99 latency > 400ms (critical)
|
|
428
|
+
- Throughput < 700 rps (warning)
|
|
429
|
+
- Error rate > 1% (critical)
|
|
430
|
+
|
|
431
|
+
**Review Cadence:**
|
|
432
|
+
- Daily: Check performance dashboards
|
|
433
|
+
- Weekly: Review alert trends
|
|
434
|
+
- Monthly: Re-assess NFRs
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
## What You Get
|
|
438
|
+
|
|
439
|
+
### NFR Assessment Report
|
|
440
|
+
- Category-by-category analysis (Security, Performance, Reliability, Maintainability)
|
|
441
|
+
- Requirements status (target vs actual)
|
|
442
|
+
- Evidence for each requirement
|
|
443
|
+
- Issues identified with root cause analysis
|
|
444
|
+
|
|
445
|
+
### Gate Decision
|
|
446
|
+
- **PASS** ✅ - All NFRs met, ready to release
|
|
447
|
+
- **CONCERNS** ⚠️ - Some NFRs not met, mitigation plan exists
|
|
448
|
+
- **FAIL** ❌ - Critical NFRs not met, blocks release
|
|
449
|
+
- **WAIVED** ⏭️ - Business-approved waiver with documented risk
|
|
450
|
+
|
|
451
|
+
### Mitigation Plans
|
|
452
|
+
- Specific actions to address concerns
|
|
453
|
+
- Owners and deadlines
|
|
454
|
+
- Re-assessment criteria
|
|
455
|
+
|
|
456
|
+
### Monitoring Plan
|
|
457
|
+
- Post-release monitoring strategy
|
|
458
|
+
- Alert thresholds
|
|
459
|
+
- Review cadence
|
|
460
|
+
|
|
461
|
+
## Tips
|
|
462
|
+
|
|
463
|
+
### Run NFR Assessment Early
|
|
464
|
+
|
|
465
|
+
**Phase 2 (Enterprise):**
|
|
466
|
+
Run `*nfr-assess` during planning to:
|
|
467
|
+
- Identify NFR requirements early
|
|
468
|
+
- Plan for performance testing
|
|
469
|
+
- Budget for security audits
|
|
470
|
+
- Set up monitoring infrastructure
|
|
471
|
+
|
|
472
|
+
**Phase 4 or Gate:**
|
|
473
|
+
Re-run before release to validate all requirements met.
|
|
474
|
+
|
|
475
|
+
### Never Guess Thresholds
|
|
476
|
+
|
|
477
|
+
If you don't know the NFR target:
|
|
478
|
+
|
|
479
|
+
**Don't:**
|
|
480
|
+
```
|
|
481
|
+
API response time should probably be under 500ms
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
**Do:**
|
|
485
|
+
```
|
|
486
|
+
Mark as CONCERNS - Request threshold from stakeholders
|
|
487
|
+
"What is the acceptable API response time?"
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### Collect Evidence Beforehand
|
|
491
|
+
|
|
492
|
+
Before running `*nfr-assess`, gather:
|
|
493
|
+
|
|
494
|
+
**Security:**
|
|
495
|
+
```bash
|
|
496
|
+
npm audit # Vulnerability scan
|
|
497
|
+
snyk test # Alternative security scan
|
|
498
|
+
npm run test:security # Security test suite
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**Performance:**
|
|
502
|
+
```bash
|
|
503
|
+
npm run test:load # k6 or artillery load tests
|
|
504
|
+
npm run test:lighthouse # Frontend performance
|
|
505
|
+
npm run test:db-performance # Database query analysis
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
**Reliability:**
|
|
509
|
+
- Production error rate (last 30 days)
|
|
510
|
+
- Uptime data (StatusPage, PagerDuty)
|
|
511
|
+
- Incident response times
|
|
512
|
+
|
|
513
|
+
**Maintainability:**
|
|
514
|
+
```bash
|
|
515
|
+
npm run test:coverage # Test coverage report
|
|
516
|
+
npm run lint # Code quality check
|
|
517
|
+
npm outdated # Dependency freshness
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
### Use Real Data, Not Assumptions
|
|
521
|
+
|
|
522
|
+
**Don't:**
|
|
523
|
+
```
|
|
524
|
+
System is probably fast enough
|
|
525
|
+
Security seems fine
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
**Do:**
|
|
529
|
+
```
|
|
530
|
+
Load test results show P99 = 350ms
|
|
531
|
+
npm audit shows 0 vulnerabilities
|
|
532
|
+
Test coverage report shows 85%
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
Evidence-based decisions prevent surprises in production.
|
|
536
|
+
|
|
537
|
+
### Document Waivers Thoroughly
|
|
538
|
+
|
|
539
|
+
If business approves waiver:
|
|
540
|
+
|
|
541
|
+
**Required:**
|
|
542
|
+
- Who approved (name, role, date)
|
|
543
|
+
- Why (business justification)
|
|
544
|
+
- Conditions (monitoring, future plans)
|
|
545
|
+
- Accepted risk (quantified impact)
|
|
546
|
+
|
|
547
|
+
**Example:**
|
|
548
|
+
```markdown
|
|
549
|
+
Waived by: CTO, VP Product (2026-01-15)
|
|
550
|
+
Reason: Q1 launch critical for investor demo
|
|
551
|
+
Conditions: Optimize in v1.3, monitor closely
|
|
552
|
+
Risk: 1% of users experience 350ms latency (acceptable for launch)
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
### Re-Assess After Fixes
|
|
556
|
+
|
|
557
|
+
After implementing mitigations:
|
|
558
|
+
|
|
559
|
+
```
|
|
560
|
+
1. Fix performance issues
|
|
561
|
+
2. Run load tests again
|
|
562
|
+
3. Run *nfr-assess with new evidence
|
|
563
|
+
4. Verify PASS status
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
Don't deploy with CONCERNS without mitigation or waiver.
|
|
567
|
+
|
|
568
|
+
### Integrate with Release Checklist
|
|
569
|
+
|
|
570
|
+
```markdown
|
|
571
|
+
## Release Checklist
|
|
572
|
+
|
|
573
|
+
### Pre-Release
|
|
574
|
+
- [ ] All tests passing
|
|
575
|
+
- [ ] Test coverage > 80%
|
|
576
|
+
- [ ] Run *nfr-assess
|
|
577
|
+
- [ ] NFR status: PASS or WAIVED
|
|
578
|
+
|
|
579
|
+
### Performance
|
|
580
|
+
- [ ] Load tests completed
|
|
581
|
+
- [ ] P99 latency meets threshold
|
|
582
|
+
- [ ] Throughput meets threshold
|
|
583
|
+
|
|
584
|
+
### Security
|
|
585
|
+
- [ ] Security scan clean
|
|
586
|
+
- [ ] Auth tests passing
|
|
587
|
+
- [ ] Penetration test complete
|
|
588
|
+
|
|
589
|
+
### Post-Release
|
|
590
|
+
- [ ] Monitoring alerts configured
|
|
591
|
+
- [ ] Dashboards updated
|
|
592
|
+
- [ ] Incident response plan ready
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
## Common Issues
|
|
596
|
+
|
|
597
|
+
### No Evidence Available
|
|
598
|
+
|
|
599
|
+
**Problem:** Don't have performance data, security scans, etc.
|
|
600
|
+
|
|
601
|
+
**Solution:**
|
|
602
|
+
```
|
|
603
|
+
Mark as CONCERNS for categories without evidence
|
|
604
|
+
Document what evidence is needed
|
|
605
|
+
Set up tests/scans before re-assessment
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
**Don't block on missing evidence** - document what's needed and proceed.
|
|
609
|
+
|
|
610
|
+
### Thresholds Too Strict
|
|
611
|
+
|
|
612
|
+
**Problem:** Can't meet unrealistic thresholds.
|
|
613
|
+
|
|
614
|
+
**Symptoms:**
|
|
615
|
+
- P99 < 50ms (impossible for complex queries)
|
|
616
|
+
- 100% test coverage (impractical)
|
|
617
|
+
- Zero technical debt (unrealistic)
|
|
618
|
+
|
|
619
|
+
**Solution:**
|
|
620
|
+
```
|
|
621
|
+
Negotiate thresholds with stakeholders:
|
|
622
|
+
- "P99 < 50ms is unrealistic for our DB queries"
|
|
623
|
+
- "Propose P99 < 200ms based on industry standards"
|
|
624
|
+
- "Show evidence from load tests"
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
Use data to negotiate realistic requirements.
|
|
628
|
+
|
|
629
|
+
### Assessment Takes Too Long
|
|
630
|
+
|
|
631
|
+
**Problem:** Gathering evidence for all categories is time-consuming.
|
|
632
|
+
|
|
633
|
+
**Solution:** Focus on critical categories first:
|
|
634
|
+
|
|
635
|
+
**For most projects:**
|
|
636
|
+
```
|
|
637
|
+
Priority 1: Security (always critical)
|
|
638
|
+
Priority 2: Performance (if high-traffic)
|
|
639
|
+
Priority 3: Reliability (if uptime critical)
|
|
640
|
+
Priority 4: Maintainability (nice to have)
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
Assess categories incrementally, not all at once.
|
|
644
|
+
|
|
645
|
+
### CONCERNS vs FAIL - When to Block?
|
|
646
|
+
|
|
647
|
+
**CONCERNS** ⚠️:
|
|
648
|
+
- Issues exist but not critical
|
|
649
|
+
- Mitigation plan in place
|
|
650
|
+
- Business accepts risk (with waiver)
|
|
651
|
+
- Can deploy with monitoring
|
|
652
|
+
|
|
653
|
+
**FAIL** ❌:
|
|
654
|
+
- Critical security vulnerability (CVE critical)
|
|
655
|
+
- System unusable (error rate >10%)
|
|
656
|
+
- Data loss risk (no backups)
|
|
657
|
+
- Zero mitigation possible
|
|
658
|
+
|
|
659
|
+
**Rule of thumb:** If you can mitigate or monitor, use CONCERNS. Reserve FAIL for absolute blockers.
|
|
660
|
+
|
|
661
|
+
## Related Guides
|
|
662
|
+
|
|
663
|
+
- [How to Run Trace](/docs/how-to/workflows/run-trace.md) - Gate decision complements NFR
|
|
664
|
+
- [How to Run Test Review](/docs/how-to/workflows/run-test-review.md) - Quality complements NFR
|
|
665
|
+
- [Run TEA for Enterprise](/docs/how-to/brownfield/use-tea-for-enterprise.md) - Enterprise workflow
|
|
666
|
+
|
|
667
|
+
## Understanding the Concepts
|
|
668
|
+
|
|
669
|
+
- [Risk-Based Testing](/docs/explanation/tea/risk-based-testing.md) - Risk assessment principles
|
|
670
|
+
- [TEA Overview](/docs/explanation/features/tea-overview.md) - NFR in release gates
|
|
671
|
+
|
|
672
|
+
## Reference
|
|
673
|
+
|
|
674
|
+
- [Command: *nfr-assess](/docs/reference/tea/commands.md#nfr-assess) - Full command reference
|
|
675
|
+
- [TEA Configuration](/docs/reference/tea/configuration.md) - Enterprise config options
|
|
676
|
+
|
|
677
|
+
---
|
|
678
|
+
|
|
679
|
+
Generated with [BMad Method](https://bmad-method.org) - TEA (Test Architect)
|