bmad-method-test-architecture-enterprise 0.1.1-beta.0
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/.github/CODE_OF_CONDUCT.md +128 -0
- package/.github/FUNDING.yaml +15 -0
- package/.github/ISSUE_TEMPLATE/config.yaml +11 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +70 -0
- package/.github/ISSUE_TEMPLATE/issue.md +61 -0
- package/.github/workflows/docs.yaml +66 -0
- package/.github/workflows/manual-release.yaml +195 -0
- package/.github/workflows/quality.yaml +114 -0
- package/.husky/pre-commit +20 -0
- package/.markdownlint-cli2.yaml +36 -0
- package/.nvmrc +1 -0
- package/.prettierignore +9 -0
- package/.vscode/settings.json +47 -0
- package/CHANGELOG.md +217 -0
- package/CONTRIBUTING.md +268 -0
- package/LICENSE +26 -0
- package/README.md +300 -0
- package/SECURITY.md +85 -0
- package/TEA-MODULE-MIGRATION-PLAN.md +3788 -0
- package/docs/404.md +20 -0
- package/docs/MIGRATION.md +447 -0
- package/docs/explanation/engagement-models.md +767 -0
- package/docs/explanation/fixture-architecture.md +484 -0
- package/docs/explanation/knowledge-base-system.md +599 -0
- package/docs/explanation/network-first-patterns.md +884 -0
- package/docs/explanation/risk-based-testing.md +628 -0
- package/docs/explanation/step-file-architecture.md +609 -0
- package/docs/explanation/subprocess-architecture.md +578 -0
- package/docs/explanation/subprocess-implementation-status.md +327 -0
- package/docs/explanation/tea-overview.md +425 -0
- package/docs/explanation/test-quality-standards.md +965 -0
- package/docs/explanation/testing-as-engineering.md +111 -0
- package/docs/glossary/index.md +160 -0
- package/docs/how-to/brownfield/use-tea-for-enterprise.md +571 -0
- package/docs/how-to/brownfield/use-tea-with-existing-tests.md +631 -0
- package/docs/how-to/customization/enable-tea-mcp-enhancements.md +455 -0
- package/docs/how-to/customization/integrate-playwright-utils.md +846 -0
- package/docs/how-to/workflows/run-atdd.md +460 -0
- package/docs/how-to/workflows/run-automate.md +690 -0
- package/docs/how-to/workflows/run-nfr-assess.md +731 -0
- package/docs/how-to/workflows/run-test-design.md +144 -0
- package/docs/how-to/workflows/run-test-review.md +638 -0
- package/docs/how-to/workflows/run-trace.md +951 -0
- package/docs/how-to/workflows/setup-ci.md +761 -0
- package/docs/how-to/workflows/setup-test-framework.md +99 -0
- package/docs/index.md +122 -0
- package/docs/reference/commands.md +300 -0
- package/docs/reference/configuration.md +729 -0
- package/docs/reference/knowledge-base.md +365 -0
- package/docs/reference/troubleshooting.md +717 -0
- package/docs/tutorials/tea-lite-quickstart.md +465 -0
- package/eslint.config.mjs +152 -0
- package/package.json +117 -0
- package/prettier.config.mjs +32 -0
- package/release_notes.md +28 -0
- package/src/_module-installer/installer.js +92 -0
- package/src/agents/tea.agent.yaml +63 -0
- package/src/module-help.csv +9 -0
- package/src/module.yaml +91 -0
- package/src/testarch/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/src/testarch/knowledge/api-request.md +442 -0
- package/src/testarch/knowledge/api-testing-patterns.md +851 -0
- package/src/testarch/knowledge/auth-session.md +548 -0
- package/src/testarch/knowledge/burn-in.md +273 -0
- package/src/testarch/knowledge/ci-burn-in.md +675 -0
- package/src/testarch/knowledge/component-tdd.md +486 -0
- package/src/testarch/knowledge/contract-testing.md +957 -0
- package/src/testarch/knowledge/data-factories.md +500 -0
- package/src/testarch/knowledge/email-auth.md +721 -0
- package/src/testarch/knowledge/error-handling.md +725 -0
- package/src/testarch/knowledge/feature-flags.md +750 -0
- package/src/testarch/knowledge/file-utils.md +456 -0
- package/src/testarch/knowledge/fixture-architecture.md +401 -0
- package/src/testarch/knowledge/fixtures-composition.md +382 -0
- package/src/testarch/knowledge/intercept-network-call.md +426 -0
- package/src/testarch/knowledge/log.md +426 -0
- package/src/testarch/knowledge/network-error-monitor.md +401 -0
- package/src/testarch/knowledge/network-first.md +486 -0
- package/src/testarch/knowledge/network-recorder.md +527 -0
- package/src/testarch/knowledge/nfr-criteria.md +670 -0
- package/src/testarch/knowledge/overview.md +286 -0
- package/src/testarch/knowledge/playwright-config.md +730 -0
- package/src/testarch/knowledge/probability-impact.md +601 -0
- package/src/testarch/knowledge/recurse.md +421 -0
- package/src/testarch/knowledge/risk-governance.md +615 -0
- package/src/testarch/knowledge/selective-testing.md +732 -0
- package/src/testarch/knowledge/selector-resilience.md +527 -0
- package/src/testarch/knowledge/test-healing-patterns.md +644 -0
- package/src/testarch/knowledge/test-levels-framework.md +473 -0
- package/src/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/src/testarch/knowledge/test-quality.md +664 -0
- package/src/testarch/knowledge/timing-debugging.md +372 -0
- package/src/testarch/knowledge/visual-debugging.md +524 -0
- package/src/testarch/tea-index.csv +35 -0
- package/src/workflows/testarch/README.md +74 -0
- package/src/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
- package/src/workflows/testarch/atdd/checklist.md +374 -0
- package/src/workflows/testarch/atdd/instructions.md +38 -0
- package/src/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +110 -0
- package/src/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +79 -0
- package/src/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +76 -0
- package/src/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +228 -0
- package/src/workflows/testarch/atdd/steps-c/step-04a-subprocess-api-failing.md +215 -0
- package/src/workflows/testarch/atdd/steps-c/step-04b-subprocess-e2e-failing.md +212 -0
- package/src/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +329 -0
- package/src/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +68 -0
- package/src/workflows/testarch/atdd/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/atdd/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/atdd/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/atdd/validation-report-20260127-095021.md +73 -0
- package/src/workflows/testarch/atdd/validation-report-20260127-102401.md +116 -0
- package/src/workflows/testarch/atdd/workflow-plan.md +21 -0
- package/src/workflows/testarch/atdd/workflow.md +39 -0
- package/src/workflows/testarch/atdd/workflow.yaml +47 -0
- package/src/workflows/testarch/automate/checklist.md +582 -0
- package/src/workflows/testarch/automate/instructions.md +43 -0
- package/src/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +127 -0
- package/src/workflows/testarch/automate/steps-c/step-02-identify-targets.md +95 -0
- package/src/workflows/testarch/automate/steps-c/step-03-generate-tests.md +199 -0
- package/src/workflows/testarch/automate/steps-c/step-03a-subprocess-api.md +183 -0
- package/src/workflows/testarch/automate/steps-c/step-03b-subprocess-e2e.md +181 -0
- package/src/workflows/testarch/automate/steps-c/step-03c-aggregate.md +300 -0
- package/src/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +69 -0
- package/src/workflows/testarch/automate/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/automate/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/automate/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/automate/validation-report-20260127-095021.md +72 -0
- package/src/workflows/testarch/automate/validation-report-20260127-102401.md +114 -0
- package/src/workflows/testarch/automate/workflow-plan.md +20 -0
- package/src/workflows/testarch/automate/workflow.md +39 -0
- package/src/workflows/testarch/automate/workflow.yaml +54 -0
- package/src/workflows/testarch/ci/checklist.md +247 -0
- package/src/workflows/testarch/ci/github-actions-template.yaml +198 -0
- package/src/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
- package/src/workflows/testarch/ci/instructions.md +38 -0
- package/src/workflows/testarch/ci/steps-c/step-01-preflight.md +92 -0
- package/src/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +82 -0
- package/src/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +75 -0
- package/src/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +67 -0
- package/src/workflows/testarch/ci/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/ci/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/ci/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/ci/validation-report-20260127-095021.md +72 -0
- package/src/workflows/testarch/ci/validation-report-20260127-102401.md +114 -0
- package/src/workflows/testarch/ci/workflow-plan.md +20 -0
- package/src/workflows/testarch/ci/workflow.md +39 -0
- package/src/workflows/testarch/ci/workflow.yaml +47 -0
- package/src/workflows/testarch/framework/checklist.md +320 -0
- package/src/workflows/testarch/framework/instructions.md +38 -0
- package/src/workflows/testarch/framework/steps-c/step-01-preflight.md +75 -0
- package/src/workflows/testarch/framework/steps-c/step-02-select-framework.md +73 -0
- package/src/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +120 -0
- package/src/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +70 -0
- package/src/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +68 -0
- package/src/workflows/testarch/framework/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/framework/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/framework/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/framework/validation-report-20260127-095021.md +73 -0
- package/src/workflows/testarch/framework/validation-report-20260127-102401.md +116 -0
- package/src/workflows/testarch/framework/workflow-plan.md +22 -0
- package/src/workflows/testarch/framework/workflow.md +39 -0
- package/src/workflows/testarch/framework/workflow.yaml +49 -0
- package/src/workflows/testarch/nfr-assess/checklist.md +407 -0
- package/src/workflows/testarch/nfr-assess/instructions.md +36 -0
- package/src/workflows/testarch/nfr-assess/nfr-report-template.md +462 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +85 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +82 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +64 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +140 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04a-subprocess-security.md +138 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04b-subprocess-performance.md +84 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04c-subprocess-reliability.md +85 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04d-subprocess-scalability.md +88 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +219 -0
- package/src/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +71 -0
- package/src/workflows/testarch/nfr-assess/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/nfr-assess/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/nfr-assess/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +73 -0
- package/src/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +116 -0
- package/src/workflows/testarch/nfr-assess/workflow-plan.md +19 -0
- package/src/workflows/testarch/nfr-assess/workflow.md +39 -0
- package/src/workflows/testarch/nfr-assess/workflow.yaml +49 -0
- package/src/workflows/testarch/test-design/checklist.md +410 -0
- package/src/workflows/testarch/test-design/instructions.md +52 -0
- package/src/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +109 -0
- package/src/workflows/testarch/test-design/steps-c/step-02-load-context.md +127 -0
- package/src/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +85 -0
- package/src/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +98 -0
- package/src/workflows/testarch/test-design/steps-c/step-05-generate-output.md +97 -0
- package/src/workflows/testarch/test-design/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/test-design/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/test-design/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/test-design/test-design-architecture-template.md +222 -0
- package/src/workflows/testarch/test-design/test-design-qa-template.md +296 -0
- package/src/workflows/testarch/test-design/test-design-template.md +294 -0
- package/src/workflows/testarch/test-design/validation-report-20260127-095021.md +73 -0
- package/src/workflows/testarch/test-design/validation-report-20260127-102401.md +116 -0
- package/src/workflows/testarch/test-design/workflow-plan.md +22 -0
- package/src/workflows/testarch/test-design/workflow.md +39 -0
- package/src/workflows/testarch/test-design/workflow.yaml +71 -0
- package/src/workflows/testarch/test-review/checklist.md +472 -0
- package/src/workflows/testarch/test-review/instructions.md +36 -0
- package/src/workflows/testarch/test-review/steps-c/step-01-load-context.md +101 -0
- package/src/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +69 -0
- package/src/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +184 -0
- package/src/workflows/testarch/test-review/steps-c/step-03a-subprocess-determinism.md +214 -0
- package/src/workflows/testarch/test-review/steps-c/step-03b-subprocess-isolation.md +125 -0
- package/src/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md +102 -0
- package/src/workflows/testarch/test-review/steps-c/step-03d-subprocess-coverage.md +111 -0
- package/src/workflows/testarch/test-review/steps-c/step-03e-subprocess-performance.md +117 -0
- package/src/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +246 -0
- package/src/workflows/testarch/test-review/steps-c/step-04-generate-report.md +72 -0
- package/src/workflows/testarch/test-review/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/test-review/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/test-review/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/test-review/test-review-template.md +390 -0
- package/src/workflows/testarch/test-review/validation-report-20260127-095021.md +72 -0
- package/src/workflows/testarch/test-review/validation-report-20260127-102401.md +114 -0
- package/src/workflows/testarch/test-review/workflow-plan.md +18 -0
- package/src/workflows/testarch/test-review/workflow.md +39 -0
- package/src/workflows/testarch/test-review/workflow.yaml +48 -0
- package/src/workflows/testarch/trace/checklist.md +642 -0
- package/src/workflows/testarch/trace/instructions.md +36 -0
- package/src/workflows/testarch/trace/steps-c/step-01-load-context.md +80 -0
- package/src/workflows/testarch/trace/steps-c/step-02-discover-tests.md +69 -0
- package/src/workflows/testarch/trace/steps-c/step-03-map-criteria.md +65 -0
- package/src/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +244 -0
- package/src/workflows/testarch/trace/steps-c/step-05-gate-decision.md +232 -0
- package/src/workflows/testarch/trace/steps-e/step-01-assess.md +65 -0
- package/src/workflows/testarch/trace/steps-e/step-02-apply-edit.md +60 -0
- package/src/workflows/testarch/trace/steps-v/step-01-validate.md +67 -0
- package/src/workflows/testarch/trace/trace-template.md +675 -0
- package/src/workflows/testarch/trace/validation-report-20260127-095021.md +73 -0
- package/src/workflows/testarch/trace/validation-report-20260127-102401.md +116 -0
- package/src/workflows/testarch/trace/workflow-plan.md +21 -0
- package/src/workflows/testarch/trace/workflow.md +39 -0
- package/src/workflows/testarch/trace/workflow.yaml +57 -0
- package/test/README.md +23 -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/schema/agent.js +491 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-installation-components.js +183 -0
- package/test/test-knowledge-base.js +199 -0
- package/test/unit-test-schema.js +133 -0
- package/test/validate-agent-schema.js +110 -0
- package/tools/build-docs.js +575 -0
- package/tools/fix-doc-links.js +288 -0
- package/tools/schema/agent.js +491 -0
- package/tools/validate-agent-schema.js +111 -0
- package/tools/validate-doc-links.js +371 -0
- package/tools/verify-paths.js +100 -0
- package/website/README.md +137 -0
- package/website/astro.config.mjs +158 -0
- package/website/package-lock.json +6856 -0
- package/website/package.json +23 -0
- package/website/public/favicon.ico +0 -0
- package/website/public/img/tea-logo.svg +7 -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/pages/404.astro +11 -0
- package/website/src/rehype-base-paths.js +89 -0
- package/website/src/rehype-markdown-links.js +117 -0
- package/website/src/styles/custom.css +499 -0
- package/website/tsconfig.json +9 -0
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
# NFR Assessment - {FEATURE_NAME}
|
|
2
|
+
|
|
3
|
+
**Date:** {DATE}
|
|
4
|
+
**Story:** {STORY_ID} (if applicable)
|
|
5
|
+
**Overall Status:** {OVERALL_STATUS} {STATUS_ICON}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Note: This assessment summarizes existing evidence; it does not run tests or CI workflows.
|
|
10
|
+
|
|
11
|
+
## Executive Summary
|
|
12
|
+
|
|
13
|
+
**Assessment:** {PASS_COUNT} PASS, {CONCERNS_COUNT} CONCERNS, {FAIL_COUNT} FAIL
|
|
14
|
+
|
|
15
|
+
**Blockers:** {BLOCKER_COUNT} {BLOCKER_DESCRIPTION}
|
|
16
|
+
|
|
17
|
+
**High Priority Issues:** {HIGH_PRIORITY_COUNT} {HIGH_PRIORITY_DESCRIPTION}
|
|
18
|
+
|
|
19
|
+
**Recommendation:** {OVERALL_RECOMMENDATION}
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Performance Assessment
|
|
24
|
+
|
|
25
|
+
### Response Time (p95)
|
|
26
|
+
|
|
27
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
28
|
+
- **Threshold:** {THRESHOLD_VALUE}
|
|
29
|
+
- **Actual:** {ACTUAL_VALUE}
|
|
30
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
31
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
32
|
+
|
|
33
|
+
### Throughput
|
|
34
|
+
|
|
35
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
36
|
+
- **Threshold:** {THRESHOLD_VALUE}
|
|
37
|
+
- **Actual:** {ACTUAL_VALUE}
|
|
38
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
39
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
40
|
+
|
|
41
|
+
### Resource Usage
|
|
42
|
+
|
|
43
|
+
- **CPU Usage**
|
|
44
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
45
|
+
- **Threshold:** {THRESHOLD_VALUE}
|
|
46
|
+
- **Actual:** {ACTUAL_VALUE}
|
|
47
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
48
|
+
|
|
49
|
+
- **Memory Usage**
|
|
50
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
51
|
+
- **Threshold:** {THRESHOLD_VALUE}
|
|
52
|
+
- **Actual:** {ACTUAL_VALUE}
|
|
53
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
54
|
+
|
|
55
|
+
### Scalability
|
|
56
|
+
|
|
57
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
58
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
59
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
60
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
61
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Security Assessment
|
|
66
|
+
|
|
67
|
+
### Authentication Strength
|
|
68
|
+
|
|
69
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
70
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
71
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
72
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
73
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
74
|
+
- **Recommendation:** {RECOMMENDATION} (if CONCERNS or FAIL)
|
|
75
|
+
|
|
76
|
+
### Authorization Controls
|
|
77
|
+
|
|
78
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
79
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
80
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
81
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
82
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
83
|
+
|
|
84
|
+
### Data Protection
|
|
85
|
+
|
|
86
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
87
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
88
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
89
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
90
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
91
|
+
|
|
92
|
+
### Vulnerability Management
|
|
93
|
+
|
|
94
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
95
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION} (e.g., "0 critical, <3 high vulnerabilities")
|
|
96
|
+
- **Actual:** {ACTUAL_DESCRIPTION} (e.g., "0 critical, 1 high, 5 medium vulnerabilities")
|
|
97
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Snyk scan results - scan-2025-10-14.json")
|
|
98
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
99
|
+
|
|
100
|
+
### Compliance (if applicable)
|
|
101
|
+
|
|
102
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
103
|
+
- **Standards:** {COMPLIANCE_STANDARDS} (e.g., "GDPR, HIPAA, PCI-DSS")
|
|
104
|
+
- **Actual:** {ACTUAL_COMPLIANCE_STATUS}
|
|
105
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
106
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Reliability Assessment
|
|
111
|
+
|
|
112
|
+
### Availability (Uptime)
|
|
113
|
+
|
|
114
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
115
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., "99.9%")
|
|
116
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "99.95%")
|
|
117
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Uptime monitoring - uptime-report-2025-10-14.csv")
|
|
118
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
119
|
+
|
|
120
|
+
### Error Rate
|
|
121
|
+
|
|
122
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
123
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., "<0.1%")
|
|
124
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "0.05%")
|
|
125
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Error logs - logs/errors-2025-10.log")
|
|
126
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
127
|
+
|
|
128
|
+
### MTTR (Mean Time To Recovery)
|
|
129
|
+
|
|
130
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
131
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., "<15 minutes")
|
|
132
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "12 minutes")
|
|
133
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Incident reports - incidents/")
|
|
134
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
135
|
+
|
|
136
|
+
### Fault Tolerance
|
|
137
|
+
|
|
138
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
139
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
140
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
141
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
142
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
143
|
+
|
|
144
|
+
### CI Burn-In (Stability)
|
|
145
|
+
|
|
146
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
147
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., "100 consecutive successful runs")
|
|
148
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "150 consecutive successful runs")
|
|
149
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "CI burn-in results - ci-burn-in-2025-10-14.log")
|
|
150
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
151
|
+
|
|
152
|
+
### Disaster Recovery (if applicable)
|
|
153
|
+
|
|
154
|
+
- **RTO (Recovery Time Objective)**
|
|
155
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
156
|
+
- **Threshold:** {THRESHOLD_VALUE}
|
|
157
|
+
- **Actual:** {ACTUAL_VALUE}
|
|
158
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
159
|
+
|
|
160
|
+
- **RPO (Recovery Point Objective)**
|
|
161
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
162
|
+
- **Threshold:** {THRESHOLD_VALUE}
|
|
163
|
+
- **Actual:** {ACTUAL_VALUE}
|
|
164
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Maintainability Assessment
|
|
169
|
+
|
|
170
|
+
### Test Coverage
|
|
171
|
+
|
|
172
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
173
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., ">=80%")
|
|
174
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "87%")
|
|
175
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Coverage report - coverage/lcov-report/index.html")
|
|
176
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
177
|
+
|
|
178
|
+
### Code Quality
|
|
179
|
+
|
|
180
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
181
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., ">=85/100")
|
|
182
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "92/100")
|
|
183
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "SonarQube analysis - sonarqube-report-2025-10-14.pdf")
|
|
184
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
185
|
+
|
|
186
|
+
### Technical Debt
|
|
187
|
+
|
|
188
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
189
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., "<5% debt ratio")
|
|
190
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "3.2% debt ratio")
|
|
191
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "CodeClimate analysis - codeclimate-2025-10-14.json")
|
|
192
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
193
|
+
|
|
194
|
+
### Documentation Completeness
|
|
195
|
+
|
|
196
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
197
|
+
- **Threshold:** {THRESHOLD_VALUE} (e.g., ">=90%")
|
|
198
|
+
- **Actual:** {ACTUAL_VALUE} (e.g., "95%")
|
|
199
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Documentation audit - docs-audit-2025-10-14.md")
|
|
200
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
201
|
+
|
|
202
|
+
### Test Quality (from test-review, if available)
|
|
203
|
+
|
|
204
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
205
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
206
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
207
|
+
- **Evidence:** {EVIDENCE_SOURCE} (e.g., "Test review report - test-review-2025-10-14.md")
|
|
208
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Custom NFR Assessments (if applicable)
|
|
213
|
+
|
|
214
|
+
### {CUSTOM_NFR_NAME_1}
|
|
215
|
+
|
|
216
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
217
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
218
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
219
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
220
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
221
|
+
|
|
222
|
+
### {CUSTOM_NFR_NAME_2}
|
|
223
|
+
|
|
224
|
+
- **Status:** {STATUS} {STATUS_ICON}
|
|
225
|
+
- **Threshold:** {THRESHOLD_DESCRIPTION}
|
|
226
|
+
- **Actual:** {ACTUAL_DESCRIPTION}
|
|
227
|
+
- **Evidence:** {EVIDENCE_SOURCE}
|
|
228
|
+
- **Findings:** {FINDINGS_DESCRIPTION}
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Quick Wins
|
|
233
|
+
|
|
234
|
+
{QUICK_WIN_COUNT} quick wins identified for immediate implementation:
|
|
235
|
+
|
|
236
|
+
1. **{QUICK_WIN_TITLE_1}** ({NFR_CATEGORY}) - {PRIORITY} - {ESTIMATED_EFFORT}
|
|
237
|
+
- {QUICK_WIN_DESCRIPTION}
|
|
238
|
+
- No code changes needed / Minimal code changes
|
|
239
|
+
|
|
240
|
+
2. **{QUICK_WIN_TITLE_2}** ({NFR_CATEGORY}) - {PRIORITY} - {ESTIMATED_EFFORT}
|
|
241
|
+
- {QUICK_WIN_DESCRIPTION}
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Recommended Actions
|
|
246
|
+
|
|
247
|
+
### Immediate (Before Release) - CRITICAL/HIGH Priority
|
|
248
|
+
|
|
249
|
+
1. **{ACTION_TITLE_1}** - {PRIORITY} - {ESTIMATED_EFFORT} - {OWNER}
|
|
250
|
+
- {ACTION_DESCRIPTION}
|
|
251
|
+
- {SPECIFIC_STEPS}
|
|
252
|
+
- {VALIDATION_CRITERIA}
|
|
253
|
+
|
|
254
|
+
2. **{ACTION_TITLE_2}** - {PRIORITY} - {ESTIMATED_EFFORT} - {OWNER}
|
|
255
|
+
- {ACTION_DESCRIPTION}
|
|
256
|
+
- {SPECIFIC_STEPS}
|
|
257
|
+
- {VALIDATION_CRITERIA}
|
|
258
|
+
|
|
259
|
+
### Short-term (Next Sprint) - MEDIUM Priority
|
|
260
|
+
|
|
261
|
+
1. **{ACTION_TITLE_3}** - {PRIORITY} - {ESTIMATED_EFFORT} - {OWNER}
|
|
262
|
+
- {ACTION_DESCRIPTION}
|
|
263
|
+
|
|
264
|
+
2. **{ACTION_TITLE_4}** - {PRIORITY} - {ESTIMATED_EFFORT} - {OWNER}
|
|
265
|
+
- {ACTION_DESCRIPTION}
|
|
266
|
+
|
|
267
|
+
### Long-term (Backlog) - LOW Priority
|
|
268
|
+
|
|
269
|
+
1. **{ACTION_TITLE_5}** - {PRIORITY} - {ESTIMATED_EFFORT} - {OWNER}
|
|
270
|
+
- {ACTION_DESCRIPTION}
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Monitoring Hooks
|
|
275
|
+
|
|
276
|
+
{MONITORING_HOOK_COUNT} monitoring hooks recommended to detect issues before failures:
|
|
277
|
+
|
|
278
|
+
### Performance Monitoring
|
|
279
|
+
|
|
280
|
+
- [ ] {MONITORING_TOOL_1} - {MONITORING_DESCRIPTION}
|
|
281
|
+
- **Owner:** {OWNER}
|
|
282
|
+
- **Deadline:** {DEADLINE}
|
|
283
|
+
|
|
284
|
+
- [ ] {MONITORING_TOOL_2} - {MONITORING_DESCRIPTION}
|
|
285
|
+
- **Owner:** {OWNER}
|
|
286
|
+
- **Deadline:** {DEADLINE}
|
|
287
|
+
|
|
288
|
+
### Security Monitoring
|
|
289
|
+
|
|
290
|
+
- [ ] {MONITORING_TOOL_3} - {MONITORING_DESCRIPTION}
|
|
291
|
+
- **Owner:** {OWNER}
|
|
292
|
+
- **Deadline:** {DEADLINE}
|
|
293
|
+
|
|
294
|
+
### Reliability Monitoring
|
|
295
|
+
|
|
296
|
+
- [ ] {MONITORING_TOOL_4} - {MONITORING_DESCRIPTION}
|
|
297
|
+
- **Owner:** {OWNER}
|
|
298
|
+
- **Deadline:** {DEADLINE}
|
|
299
|
+
|
|
300
|
+
### Alerting Thresholds
|
|
301
|
+
|
|
302
|
+
- [ ] {ALERT_DESCRIPTION} - Notify when {THRESHOLD_CONDITION}
|
|
303
|
+
- **Owner:** {OWNER}
|
|
304
|
+
- **Deadline:** {DEADLINE}
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Fail-Fast Mechanisms
|
|
309
|
+
|
|
310
|
+
{FAIL_FAST_COUNT} fail-fast mechanisms recommended to prevent failures:
|
|
311
|
+
|
|
312
|
+
### Circuit Breakers (Reliability)
|
|
313
|
+
|
|
314
|
+
- [ ] {CIRCUIT_BREAKER_DESCRIPTION}
|
|
315
|
+
- **Owner:** {OWNER}
|
|
316
|
+
- **Estimated Effort:** {EFFORT}
|
|
317
|
+
|
|
318
|
+
### Rate Limiting (Performance)
|
|
319
|
+
|
|
320
|
+
- [ ] {RATE_LIMITING_DESCRIPTION}
|
|
321
|
+
- **Owner:** {OWNER}
|
|
322
|
+
- **Estimated Effort:** {EFFORT}
|
|
323
|
+
|
|
324
|
+
### Validation Gates (Security)
|
|
325
|
+
|
|
326
|
+
- [ ] {VALIDATION_GATE_DESCRIPTION}
|
|
327
|
+
- **Owner:** {OWNER}
|
|
328
|
+
- **Estimated Effort:** {EFFORT}
|
|
329
|
+
|
|
330
|
+
### Smoke Tests (Maintainability)
|
|
331
|
+
|
|
332
|
+
- [ ] {SMOKE_TEST_DESCRIPTION}
|
|
333
|
+
- **Owner:** {OWNER}
|
|
334
|
+
- **Estimated Effort:** {EFFORT}
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Evidence Gaps
|
|
339
|
+
|
|
340
|
+
{EVIDENCE_GAP_COUNT} evidence gaps identified - action required:
|
|
341
|
+
|
|
342
|
+
- [ ] **{NFR_NAME_1}** ({NFR_CATEGORY})
|
|
343
|
+
- **Owner:** {OWNER}
|
|
344
|
+
- **Deadline:** {DEADLINE}
|
|
345
|
+
- **Suggested Evidence:** {SUGGESTED_EVIDENCE_SOURCE}
|
|
346
|
+
- **Impact:** {IMPACT_DESCRIPTION}
|
|
347
|
+
|
|
348
|
+
- [ ] **{NFR_NAME_2}** ({NFR_CATEGORY})
|
|
349
|
+
- **Owner:** {OWNER}
|
|
350
|
+
- **Deadline:** {DEADLINE}
|
|
351
|
+
- **Suggested Evidence:** {SUGGESTED_EVIDENCE_SOURCE}
|
|
352
|
+
- **Impact:** {IMPACT_DESCRIPTION}
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Findings Summary
|
|
357
|
+
|
|
358
|
+
**Based on ADR Quality Readiness Checklist (8 categories, 29 criteria)**
|
|
359
|
+
|
|
360
|
+
| Category | Criteria Met | PASS | CONCERNS | FAIL | Overall Status |
|
|
361
|
+
| ------------------------------------------------ | ------------------ | ---------------- | -------------------- | ---------------- | ----------------------------------- |
|
|
362
|
+
| 1. Testability & Automation | {T_MET}/4 | {T_PASS} | {T_CONCERNS} | {T_FAIL} | {T_STATUS} {T_ICON} |
|
|
363
|
+
| 2. Test Data Strategy | {TD_MET}/3 | {TD_PASS} | {TD_CONCERNS} | {TD_FAIL} | {TD_STATUS} {TD_ICON} |
|
|
364
|
+
| 3. Scalability & Availability | {SA_MET}/4 | {SA_PASS} | {SA_CONCERNS} | {SA_FAIL} | {SA_STATUS} {SA_ICON} |
|
|
365
|
+
| 4. Disaster Recovery | {DR_MET}/3 | {DR_PASS} | {DR_CONCERNS} | {DR_FAIL} | {DR_STATUS} {DR_ICON} |
|
|
366
|
+
| 5. Security | {SEC_MET}/4 | {SEC_PASS} | {SEC_CONCERNS} | {SEC_FAIL} | {SEC_STATUS} {SEC_ICON} |
|
|
367
|
+
| 6. Monitorability, Debuggability & Manageability | {MON_MET}/4 | {MON_PASS} | {MON_CONCERNS} | {MON_FAIL} | {MON_STATUS} {MON_ICON} |
|
|
368
|
+
| 7. QoS & QoE | {QOS_MET}/4 | {QOS_PASS} | {QOS_CONCERNS} | {QOS_FAIL} | {QOS_STATUS} {QOS_ICON} |
|
|
369
|
+
| 8. Deployability | {DEP_MET}/3 | {DEP_PASS} | {DEP_CONCERNS} | {DEP_FAIL} | {DEP_STATUS} {DEP_ICON} |
|
|
370
|
+
| **Total** | **{TOTAL_MET}/29** | **{TOTAL_PASS}** | **{TOTAL_CONCERNS}** | **{TOTAL_FAIL}** | **{OVERALL_STATUS} {OVERALL_ICON}** |
|
|
371
|
+
|
|
372
|
+
**Criteria Met Scoring:**
|
|
373
|
+
|
|
374
|
+
- ≥26/29 (90%+) = Strong foundation
|
|
375
|
+
- 20-25/29 (69-86%) = Room for improvement
|
|
376
|
+
- <20/29 (<69%) = Significant gaps
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## Gate YAML Snippet
|
|
381
|
+
|
|
382
|
+
```yaml
|
|
383
|
+
nfr_assessment:
|
|
384
|
+
date: '{DATE}'
|
|
385
|
+
story_id: '{STORY_ID}'
|
|
386
|
+
feature_name: '{FEATURE_NAME}'
|
|
387
|
+
adr_checklist_score: '{TOTAL_MET}/29' # ADR Quality Readiness Checklist
|
|
388
|
+
categories:
|
|
389
|
+
testability_automation: '{T_STATUS}'
|
|
390
|
+
test_data_strategy: '{TD_STATUS}'
|
|
391
|
+
scalability_availability: '{SA_STATUS}'
|
|
392
|
+
disaster_recovery: '{DR_STATUS}'
|
|
393
|
+
security: '{SEC_STATUS}'
|
|
394
|
+
monitorability: '{MON_STATUS}'
|
|
395
|
+
qos_qoe: '{QOS_STATUS}'
|
|
396
|
+
deployability: '{DEP_STATUS}'
|
|
397
|
+
overall_status: '{OVERALL_STATUS}'
|
|
398
|
+
critical_issues: { CRITICAL_COUNT }
|
|
399
|
+
high_priority_issues: { HIGH_COUNT }
|
|
400
|
+
medium_priority_issues: { MEDIUM_COUNT }
|
|
401
|
+
concerns: { CONCERNS_COUNT }
|
|
402
|
+
blockers: { BLOCKER_BOOLEAN } # true/false
|
|
403
|
+
quick_wins: { QUICK_WIN_COUNT }
|
|
404
|
+
evidence_gaps: { EVIDENCE_GAP_COUNT }
|
|
405
|
+
recommendations:
|
|
406
|
+
- '{RECOMMENDATION_1}'
|
|
407
|
+
- '{RECOMMENDATION_2}'
|
|
408
|
+
- '{RECOMMENDATION_3}'
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Related Artifacts
|
|
414
|
+
|
|
415
|
+
- **Story File:** {STORY_FILE_PATH} (if applicable)
|
|
416
|
+
- **Tech Spec:** {TECH_SPEC_PATH} (if available)
|
|
417
|
+
- **PRD:** {PRD_PATH} (if available)
|
|
418
|
+
- **Test Design:** {TEST_DESIGN_PATH} (if available)
|
|
419
|
+
- **Evidence Sources:**
|
|
420
|
+
- Test Results: {TEST_RESULTS_DIR}
|
|
421
|
+
- Metrics: {METRICS_DIR}
|
|
422
|
+
- Logs: {LOGS_DIR}
|
|
423
|
+
- CI Results: {CI_RESULTS_PATH}
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## Recommendations Summary
|
|
428
|
+
|
|
429
|
+
**Release Blocker:** {RELEASE_BLOCKER_SUMMARY}
|
|
430
|
+
|
|
431
|
+
**High Priority:** {HIGH_PRIORITY_SUMMARY}
|
|
432
|
+
|
|
433
|
+
**Medium Priority:** {MEDIUM_PRIORITY_SUMMARY}
|
|
434
|
+
|
|
435
|
+
**Next Steps:** {NEXT_STEPS_DESCRIPTION}
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Sign-Off
|
|
440
|
+
|
|
441
|
+
**NFR Assessment:**
|
|
442
|
+
|
|
443
|
+
- Overall Status: {OVERALL_STATUS} {OVERALL_ICON}
|
|
444
|
+
- Critical Issues: {CRITICAL_COUNT}
|
|
445
|
+
- High Priority Issues: {HIGH_COUNT}
|
|
446
|
+
- Concerns: {CONCERNS_COUNT}
|
|
447
|
+
- Evidence Gaps: {EVIDENCE_GAP_COUNT}
|
|
448
|
+
|
|
449
|
+
**Gate Status:** {GATE_STATUS} {GATE_ICON}
|
|
450
|
+
|
|
451
|
+
**Next Actions:**
|
|
452
|
+
|
|
453
|
+
- If PASS ✅: Proceed to `*gate` workflow or release
|
|
454
|
+
- If CONCERNS ⚠️: Address HIGH/CRITICAL issues, re-run `*nfr-assess`
|
|
455
|
+
- If FAIL ❌: Resolve FAIL status NFRs, re-run `*nfr-assess`
|
|
456
|
+
|
|
457
|
+
**Generated:** {DATE}
|
|
458
|
+
**Workflow:** testarch-nfr v4.0
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
<!-- Powered by BMAD-CORE™ -->
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-01-load-context'
|
|
3
|
+
description: 'Load NFR requirements, evidence sources, and knowledge base'
|
|
4
|
+
nextStepFile: './step-02-define-thresholds.md'
|
|
5
|
+
knowledgeIndex: '{project-root}/_bmad/tea/testarch/tea-index.csv'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 1: Load Context & Knowledge Base
|
|
9
|
+
|
|
10
|
+
## STEP GOAL
|
|
11
|
+
|
|
12
|
+
Gather NFR requirements, evidence sources, and knowledge fragments needed for assessment.
|
|
13
|
+
|
|
14
|
+
## MANDATORY EXECUTION RULES
|
|
15
|
+
|
|
16
|
+
- 📖 Read the entire step file before acting
|
|
17
|
+
- ✅ Speak in `{communication_language}`
|
|
18
|
+
- 🚫 Halt if implementation or evidence is unavailable
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## EXECUTION PROTOCOLS:
|
|
23
|
+
|
|
24
|
+
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
25
|
+
- 💾 Record outputs before proceeding
|
|
26
|
+
- 📖 Load the next step only when instructed
|
|
27
|
+
|
|
28
|
+
## CONTEXT BOUNDARIES:
|
|
29
|
+
|
|
30
|
+
- Available context: config, loaded artifacts, and knowledge fragments
|
|
31
|
+
- Focus: this step's goal only
|
|
32
|
+
- Limits: do not execute future steps
|
|
33
|
+
- Dependencies: prior steps' outputs (if any)
|
|
34
|
+
|
|
35
|
+
## MANDATORY SEQUENCE
|
|
36
|
+
|
|
37
|
+
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
38
|
+
|
|
39
|
+
## 1. Prerequisites
|
|
40
|
+
|
|
41
|
+
- Implementation accessible for evaluation
|
|
42
|
+
- Evidence sources available (test results, metrics, logs)
|
|
43
|
+
|
|
44
|
+
If missing: **HALT** and request the missing inputs.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 2. Load Knowledge Base Fragments
|
|
49
|
+
|
|
50
|
+
From `{knowledgeIndex}` load:
|
|
51
|
+
|
|
52
|
+
- `adr-quality-readiness-checklist.md`
|
|
53
|
+
- `ci-burn-in.md`
|
|
54
|
+
- `test-quality.md`
|
|
55
|
+
- `playwright-config.md`
|
|
56
|
+
- `error-handling.md`
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. Load Artifacts
|
|
61
|
+
|
|
62
|
+
If available, read:
|
|
63
|
+
|
|
64
|
+
- `tech-spec.md` (primary NFRs)
|
|
65
|
+
- `PRD.md` (product-level NFRs)
|
|
66
|
+
- `story` or `test-design` docs (feature-level NFRs)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 4. Confirm Inputs
|
|
71
|
+
|
|
72
|
+
Summarize loaded NFR sources and evidence availability.
|
|
73
|
+
|
|
74
|
+
Load next step: `{nextStepFile}`
|
|
75
|
+
|
|
76
|
+
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
77
|
+
|
|
78
|
+
### ✅ SUCCESS:
|
|
79
|
+
|
|
80
|
+
- Step completed in full with required outputs
|
|
81
|
+
|
|
82
|
+
### ❌ SYSTEM FAILURE:
|
|
83
|
+
|
|
84
|
+
- Skipped sequence steps or missing outputs
|
|
85
|
+
**Master Rule:** Skipping steps is FORBIDDEN.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-02-define-thresholds'
|
|
3
|
+
description: 'Identify NFR categories and thresholds'
|
|
4
|
+
nextStepFile: './step-03-gather-evidence.md'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 2: Define NFR Categories & Thresholds
|
|
8
|
+
|
|
9
|
+
## STEP GOAL
|
|
10
|
+
|
|
11
|
+
Establish the NFR categories to assess and the thresholds used for validation.
|
|
12
|
+
|
|
13
|
+
## MANDATORY EXECUTION RULES
|
|
14
|
+
|
|
15
|
+
- 📖 Read the entire step file before acting
|
|
16
|
+
- ✅ Speak in `{communication_language}`
|
|
17
|
+
- 🚫 Never guess thresholds
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## EXECUTION PROTOCOLS:
|
|
22
|
+
|
|
23
|
+
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
24
|
+
- 💾 Record outputs before proceeding
|
|
25
|
+
- 📖 Load the next step only when instructed
|
|
26
|
+
|
|
27
|
+
## CONTEXT BOUNDARIES:
|
|
28
|
+
|
|
29
|
+
- Available context: config, loaded artifacts, and knowledge fragments
|
|
30
|
+
- Focus: this step's goal only
|
|
31
|
+
- Limits: do not execute future steps
|
|
32
|
+
- Dependencies: prior steps' outputs (if any)
|
|
33
|
+
|
|
34
|
+
## MANDATORY SEQUENCE
|
|
35
|
+
|
|
36
|
+
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
37
|
+
|
|
38
|
+
## 1. Select Categories
|
|
39
|
+
|
|
40
|
+
Use the ADR Quality Readiness Checklist (8 categories):
|
|
41
|
+
|
|
42
|
+
1. Testability & Automation
|
|
43
|
+
2. Test Data Strategy
|
|
44
|
+
3. Scalability & Availability
|
|
45
|
+
4. Disaster Recovery
|
|
46
|
+
5. Security
|
|
47
|
+
6. Monitorability/Debuggability/Manageability
|
|
48
|
+
7. QoS/QoE
|
|
49
|
+
8. Deployability
|
|
50
|
+
|
|
51
|
+
Add any `custom_nfr_categories` if provided.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 2. Define Thresholds
|
|
56
|
+
|
|
57
|
+
For each category, extract thresholds from:
|
|
58
|
+
|
|
59
|
+
- tech-spec (primary)
|
|
60
|
+
- PRD (secondary)
|
|
61
|
+
- story or test-design (feature-specific)
|
|
62
|
+
|
|
63
|
+
If a threshold is unknown, mark it **UNKNOWN** and plan to report **CONCERNS**.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 3. Confirm NFR Matrix
|
|
68
|
+
|
|
69
|
+
List each NFR category with its threshold or UNKNOWN status.
|
|
70
|
+
|
|
71
|
+
Load next step: `{nextStepFile}`
|
|
72
|
+
|
|
73
|
+
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
74
|
+
|
|
75
|
+
### ✅ SUCCESS:
|
|
76
|
+
|
|
77
|
+
- Step completed in full with required outputs
|
|
78
|
+
|
|
79
|
+
### ❌ SYSTEM FAILURE:
|
|
80
|
+
|
|
81
|
+
- Skipped sequence steps or missing outputs
|
|
82
|
+
**Master Rule:** Skipping steps is FORBIDDEN.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03-gather-evidence'
|
|
3
|
+
description: 'Collect evidence for each NFR category'
|
|
4
|
+
nextStepFile: './step-04-evaluate-and-score.md'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 3: Gather Evidence
|
|
8
|
+
|
|
9
|
+
## STEP GOAL
|
|
10
|
+
|
|
11
|
+
Collect measurable evidence to evaluate each NFR category.
|
|
12
|
+
|
|
13
|
+
## MANDATORY EXECUTION RULES
|
|
14
|
+
|
|
15
|
+
- 📖 Read the entire step file before acting
|
|
16
|
+
- ✅ Speak in `{communication_language}`
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## EXECUTION PROTOCOLS:
|
|
21
|
+
|
|
22
|
+
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
23
|
+
- 💾 Record outputs before proceeding
|
|
24
|
+
- 📖 Load the next step only when instructed
|
|
25
|
+
|
|
26
|
+
## CONTEXT BOUNDARIES:
|
|
27
|
+
|
|
28
|
+
- Available context: config, loaded artifacts, and knowledge fragments
|
|
29
|
+
- Focus: this step's goal only
|
|
30
|
+
- Limits: do not execute future steps
|
|
31
|
+
- Dependencies: prior steps' outputs (if any)
|
|
32
|
+
|
|
33
|
+
## MANDATORY SEQUENCE
|
|
34
|
+
|
|
35
|
+
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
36
|
+
|
|
37
|
+
## 1. Evidence Sources
|
|
38
|
+
|
|
39
|
+
Collect evidence for:
|
|
40
|
+
|
|
41
|
+
- **Performance**: load tests, metrics, response time data
|
|
42
|
+
- **Security**: scans, auth tests, vuln reports
|
|
43
|
+
- **Reliability**: error rates, burn-in runs, failover tests
|
|
44
|
+
- **Maintainability**: test quality, code health signals
|
|
45
|
+
- **Other categories**: logs, monitoring, DR drills, deployability checks
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 2. Evidence Gaps
|
|
50
|
+
|
|
51
|
+
If evidence is missing for a category, mark that category as **CONCERNS**.
|
|
52
|
+
|
|
53
|
+
Load next step: `{nextStepFile}`
|
|
54
|
+
|
|
55
|
+
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
56
|
+
|
|
57
|
+
### ✅ SUCCESS:
|
|
58
|
+
|
|
59
|
+
- Step completed in full with required outputs
|
|
60
|
+
|
|
61
|
+
### ❌ SYSTEM FAILURE:
|
|
62
|
+
|
|
63
|
+
- Skipped sequence steps or missing outputs
|
|
64
|
+
**Master Rule:** Skipping steps is FORBIDDEN.
|