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,554 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Knowledge Base System Explained"
|
|
3
|
+
description: Understanding how TEA uses tea-index.csv for context engineering and consistent test quality
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Knowledge Base System Explained
|
|
7
|
+
|
|
8
|
+
TEA's knowledge base system is how context engineering works - automatically loading domain-specific standards into AI context so tests are consistently high-quality regardless of prompt variation.
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
**The Problem:** AI without context produces inconsistent results.
|
|
13
|
+
|
|
14
|
+
**Traditional approach:**
|
|
15
|
+
```
|
|
16
|
+
User: "Write tests for login"
|
|
17
|
+
AI: [Generates tests with random quality]
|
|
18
|
+
- Sometimes uses hard waits
|
|
19
|
+
- Sometimes uses good patterns
|
|
20
|
+
- Inconsistent across sessions
|
|
21
|
+
- Quality depends on prompt
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**TEA with knowledge base:**
|
|
25
|
+
```
|
|
26
|
+
User: "Write tests for login"
|
|
27
|
+
TEA: [Loads test-quality.md, network-first.md, auth-session.md]
|
|
28
|
+
TEA: [Generates tests following established patterns]
|
|
29
|
+
- Always uses network-first patterns
|
|
30
|
+
- Always uses proper fixtures
|
|
31
|
+
- Consistent across all sessions
|
|
32
|
+
- Quality independent of prompt
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Result:** Systematic quality, not random chance.
|
|
36
|
+
|
|
37
|
+
## The Problem
|
|
38
|
+
|
|
39
|
+
### Prompt-Driven Testing = Inconsistency
|
|
40
|
+
|
|
41
|
+
**Session 1:**
|
|
42
|
+
```
|
|
43
|
+
User: "Write tests for profile editing"
|
|
44
|
+
|
|
45
|
+
AI: [No context loaded]
|
|
46
|
+
// Generates test with hard waits
|
|
47
|
+
await page.waitForTimeout(3000);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Session 2:**
|
|
51
|
+
```
|
|
52
|
+
User: "Write comprehensive tests for profile editing with best practices"
|
|
53
|
+
|
|
54
|
+
AI: [Still no systematic context]
|
|
55
|
+
// Generates test with some improvements, but still issues
|
|
56
|
+
await page.waitForSelector('.success', { timeout: 10000 });
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Session 3:**
|
|
60
|
+
```
|
|
61
|
+
User: "Write tests using network-first patterns and proper fixtures"
|
|
62
|
+
|
|
63
|
+
AI: [Better prompt, but still reinventing patterns]
|
|
64
|
+
// Generates test with network-first, but inconsistent with other tests
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Problem:** Quality depends on prompt engineering skill, no consistency.
|
|
68
|
+
|
|
69
|
+
### Knowledge Drift
|
|
70
|
+
|
|
71
|
+
Without a knowledge base:
|
|
72
|
+
- Team A uses pattern X
|
|
73
|
+
- Team B uses pattern Y
|
|
74
|
+
- Both work, but inconsistent
|
|
75
|
+
- No single source of truth
|
|
76
|
+
- Patterns drift over time
|
|
77
|
+
|
|
78
|
+
## The Solution: tea-index.csv Manifest
|
|
79
|
+
|
|
80
|
+
### How It Works
|
|
81
|
+
|
|
82
|
+
**1. Manifest Defines Fragments**
|
|
83
|
+
|
|
84
|
+
`src/bmm/testarch/tea-index.csv`:
|
|
85
|
+
```csv
|
|
86
|
+
id,name,description,tags,fragment_file
|
|
87
|
+
test-quality,Test Quality,Execution limits and isolation rules,quality;standards,knowledge/test-quality.md
|
|
88
|
+
network-first,Network-First Safeguards,Intercept-before-navigate workflow,network;stability,knowledge/network-first.md
|
|
89
|
+
fixture-architecture,Fixture Architecture,Composable fixture patterns,fixtures;architecture,knowledge/fixture-architecture.md
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**2. Workflow Loads Relevant Fragments**
|
|
93
|
+
|
|
94
|
+
When user runs `*atdd`:
|
|
95
|
+
```
|
|
96
|
+
TEA reads tea-index.csv
|
|
97
|
+
Identifies fragments needed for ATDD:
|
|
98
|
+
- test-quality.md (quality standards)
|
|
99
|
+
- network-first.md (avoid flakiness)
|
|
100
|
+
- component-tdd.md (TDD patterns)
|
|
101
|
+
- fixture-architecture.md (reusable fixtures)
|
|
102
|
+
- data-factories.md (test data)
|
|
103
|
+
|
|
104
|
+
Loads only these 5 fragments (not all 33)
|
|
105
|
+
Generates tests following these patterns
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**3. Consistent Output**
|
|
109
|
+
|
|
110
|
+
Every time `*atdd` runs:
|
|
111
|
+
- Same fragments loaded
|
|
112
|
+
- Same patterns applied
|
|
113
|
+
- Same quality standards
|
|
114
|
+
- Consistent test structure
|
|
115
|
+
|
|
116
|
+
**Result:** Tests look like they were written by the same expert, every time.
|
|
117
|
+
|
|
118
|
+
### Knowledge Base Loading Diagram
|
|
119
|
+
|
|
120
|
+
```mermaid
|
|
121
|
+
%%{init: {'theme':'base', 'themeVariables': { 'fontSize':'14px'}}}%%
|
|
122
|
+
flowchart TD
|
|
123
|
+
User([User: *atdd]) --> Workflow[TEA Workflow<br/>Triggered]
|
|
124
|
+
Workflow --> Read[Read Manifest<br/>tea-index.csv]
|
|
125
|
+
|
|
126
|
+
Read --> Identify{Identify Relevant<br/>Fragments for ATDD}
|
|
127
|
+
|
|
128
|
+
Identify -->|Needed| L1[✓ test-quality.md]
|
|
129
|
+
Identify -->|Needed| L2[✓ network-first.md]
|
|
130
|
+
Identify -->|Needed| L3[✓ component-tdd.md]
|
|
131
|
+
Identify -->|Needed| L4[✓ data-factories.md]
|
|
132
|
+
Identify -->|Needed| L5[✓ fixture-architecture.md]
|
|
133
|
+
|
|
134
|
+
Identify -.->|Skip| S1[✗ contract-testing.md]
|
|
135
|
+
Identify -.->|Skip| S2[✗ burn-in.md]
|
|
136
|
+
Identify -.->|Skip| S3[+ 26 other fragments]
|
|
137
|
+
|
|
138
|
+
L1 --> Context[AI Context<br/>5 fragments loaded]
|
|
139
|
+
L2 --> Context
|
|
140
|
+
L3 --> Context
|
|
141
|
+
L4 --> Context
|
|
142
|
+
L5 --> Context
|
|
143
|
+
|
|
144
|
+
Context --> Gen[Generate Tests<br/>Following patterns]
|
|
145
|
+
Gen --> Out([Consistent Output<br/>Same quality every time])
|
|
146
|
+
|
|
147
|
+
style User fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
|
|
148
|
+
style Read fill:#fff3e0,stroke:#e65100,stroke-width:2px
|
|
149
|
+
style L1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
|
150
|
+
style L2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
|
151
|
+
style L3 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
|
152
|
+
style L4 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
|
153
|
+
style L5 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
|
|
154
|
+
style S1 fill:#e0e0e0,stroke:#616161,stroke-width:1px
|
|
155
|
+
style S2 fill:#e0e0e0,stroke:#616161,stroke-width:1px
|
|
156
|
+
style S3 fill:#e0e0e0,stroke:#616161,stroke-width:1px
|
|
157
|
+
style Context fill:#f3e5f5,stroke:#6a1b9a,stroke-width:3px
|
|
158
|
+
style Out fill:#4caf50,stroke:#1b5e20,stroke-width:3px,color:#fff
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Fragment Structure
|
|
162
|
+
|
|
163
|
+
### Anatomy of a Fragment
|
|
164
|
+
|
|
165
|
+
Each fragment follows this structure:
|
|
166
|
+
|
|
167
|
+
```markdown
|
|
168
|
+
# Fragment Name
|
|
169
|
+
|
|
170
|
+
## Principle
|
|
171
|
+
[One sentence - what is this pattern?]
|
|
172
|
+
|
|
173
|
+
## Rationale
|
|
174
|
+
[Why use this instead of alternatives?]
|
|
175
|
+
Why this pattern exists
|
|
176
|
+
Problems it solves
|
|
177
|
+
Benefits it provides
|
|
178
|
+
|
|
179
|
+
## Pattern Examples
|
|
180
|
+
|
|
181
|
+
### Example 1: Basic Usage
|
|
182
|
+
```code
|
|
183
|
+
[Runnable code example]
|
|
184
|
+
```
|
|
185
|
+
[Explanation of example]
|
|
186
|
+
|
|
187
|
+
### Example 2: Advanced Pattern
|
|
188
|
+
```code
|
|
189
|
+
[More complex example]
|
|
190
|
+
```
|
|
191
|
+
[Explanation]
|
|
192
|
+
|
|
193
|
+
## Anti-Patterns
|
|
194
|
+
|
|
195
|
+
### Don't Do This
|
|
196
|
+
```code
|
|
197
|
+
[Bad code example]
|
|
198
|
+
```
|
|
199
|
+
[Why it's bad]
|
|
200
|
+
[What breaks]
|
|
201
|
+
|
|
202
|
+
## Related Patterns
|
|
203
|
+
- [Link to related fragment]
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
<!-- markdownlint-disable MD024 -->
|
|
207
|
+
### Example: test-quality.md Fragment
|
|
208
|
+
|
|
209
|
+
```markdown
|
|
210
|
+
# Test Quality
|
|
211
|
+
|
|
212
|
+
## Principle
|
|
213
|
+
Tests must be deterministic, isolated, explicit, focused, and fast.
|
|
214
|
+
|
|
215
|
+
## Rationale
|
|
216
|
+
Tests that fail randomly, depend on each other, or take too long lose team trust.
|
|
217
|
+
[... detailed explanation ...]
|
|
218
|
+
|
|
219
|
+
## Pattern Examples
|
|
220
|
+
|
|
221
|
+
### Example 1: Deterministic Test
|
|
222
|
+
```typescript
|
|
223
|
+
// ✅ Wait for actual response, not timeout
|
|
224
|
+
const promise = page.waitForResponse(matcher);
|
|
225
|
+
await page.click('button');
|
|
226
|
+
await promise;
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Example 2: Isolated Test
|
|
230
|
+
```typescript
|
|
231
|
+
// ✅ Self-cleaning test
|
|
232
|
+
test('test', async ({ page }) => {
|
|
233
|
+
const userId = await createTestUser();
|
|
234
|
+
// ... test logic ...
|
|
235
|
+
await deleteTestUser(userId); // Cleanup
|
|
236
|
+
});
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Anti-Patterns
|
|
240
|
+
|
|
241
|
+
### Hard Waits
|
|
242
|
+
```typescript
|
|
243
|
+
// ❌ Non-deterministic
|
|
244
|
+
await page.waitForTimeout(3000);
|
|
245
|
+
```
|
|
246
|
+
[Why this causes flakiness]
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Total:** 24.5 KB, 12 code examples
|
|
250
|
+
<!-- markdownlint-enable MD024 -->
|
|
251
|
+
|
|
252
|
+
## How TEA Uses the Knowledge Base
|
|
253
|
+
|
|
254
|
+
### Workflow-Specific Loading
|
|
255
|
+
|
|
256
|
+
**Different workflows load different fragments:**
|
|
257
|
+
|
|
258
|
+
| Workflow | Fragments Loaded | Purpose |
|
|
259
|
+
|----------|-----------------|---------|
|
|
260
|
+
| `*framework` | fixture-architecture, playwright-config, fixtures-composition | Infrastructure patterns |
|
|
261
|
+
| `*test-design` | test-quality, test-priorities-matrix, risk-governance | Planning standards |
|
|
262
|
+
| `*atdd` | test-quality, component-tdd, network-first, data-factories | TDD patterns |
|
|
263
|
+
| `*automate` | test-quality, test-levels-framework, selector-resilience | Comprehensive generation |
|
|
264
|
+
| `*test-review` | All quality/resilience/debugging fragments | Full audit patterns |
|
|
265
|
+
| `*ci` | ci-burn-in, burn-in, selective-testing | CI/CD optimization |
|
|
266
|
+
|
|
267
|
+
**Benefit:** Only load what's needed (focused context, no bloat).
|
|
268
|
+
|
|
269
|
+
### Dynamic Fragment Selection
|
|
270
|
+
|
|
271
|
+
TEA doesn't load all 33 fragments at once:
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
User runs: *atdd for authentication feature
|
|
275
|
+
|
|
276
|
+
TEA analyzes context:
|
|
277
|
+
- Feature type: Authentication
|
|
278
|
+
- Relevant fragments:
|
|
279
|
+
- test-quality.md (always loaded)
|
|
280
|
+
- auth-session.md (auth patterns)
|
|
281
|
+
- network-first.md (avoid flakiness)
|
|
282
|
+
- email-auth.md (if email-based auth)
|
|
283
|
+
- data-factories.md (test users)
|
|
284
|
+
|
|
285
|
+
Skips:
|
|
286
|
+
- contract-testing.md (not relevant)
|
|
287
|
+
- feature-flags.md (not relevant)
|
|
288
|
+
- file-utils.md (not relevant)
|
|
289
|
+
|
|
290
|
+
Result: 5 relevant fragments loaded, 28 skipped
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**Benefit:** Focused context = better results, lower token usage.
|
|
294
|
+
|
|
295
|
+
## Context Engineering in Practice
|
|
296
|
+
|
|
297
|
+
### Example: Consistent Test Generation
|
|
298
|
+
|
|
299
|
+
**Without Knowledge Base (Vanilla Playwright, Random Quality):**
|
|
300
|
+
```
|
|
301
|
+
Session 1: User runs *atdd
|
|
302
|
+
AI: [Guesses patterns from general knowledge]
|
|
303
|
+
|
|
304
|
+
Generated:
|
|
305
|
+
test('api test', async ({ request }) => {
|
|
306
|
+
const response = await request.get('/api/users');
|
|
307
|
+
await page.waitForTimeout(2000); // Hard wait
|
|
308
|
+
const users = await response.json();
|
|
309
|
+
// Random quality
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
Session 2: User runs *atdd (different day)
|
|
313
|
+
AI: [Different random patterns]
|
|
314
|
+
|
|
315
|
+
Generated:
|
|
316
|
+
test('api test', async ({ request }) => {
|
|
317
|
+
const response = await request.get('/api/users');
|
|
318
|
+
const users = await response.json();
|
|
319
|
+
// Better but inconsistent
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
Result: Inconsistent quality, random patterns
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
**With Knowledge Base (TEA + Playwright Utils):**
|
|
326
|
+
```
|
|
327
|
+
Session 1: User runs *atdd
|
|
328
|
+
TEA: [Loads test-quality.md, network-first.md, api-request.md from tea-index.csv]
|
|
329
|
+
|
|
330
|
+
Generated:
|
|
331
|
+
import { test } from '@seontechnologies/playwright-utils/api-request/fixtures';
|
|
332
|
+
|
|
333
|
+
test('should fetch users', async ({ apiRequest }) => {
|
|
334
|
+
const { status, body } = await apiRequest({
|
|
335
|
+
method: 'GET',
|
|
336
|
+
path: '/api/users'
|
|
337
|
+
}).validateSchema(UsersSchema); // Chained validation
|
|
338
|
+
|
|
339
|
+
expect(status).toBe(200);
|
|
340
|
+
expect(body).toBeInstanceOf(Array);
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
Session 2: User runs *atdd (different day)
|
|
344
|
+
TEA: [Loads same fragments from tea-index.csv]
|
|
345
|
+
|
|
346
|
+
Generated: Identical pattern, same quality
|
|
347
|
+
|
|
348
|
+
Result: Systematic quality, established patterns (ALWAYS uses apiRequest utility when playwright-utils enabled)
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Key Difference:**
|
|
352
|
+
- **Without KB:** Random patterns, inconsistent APIs
|
|
353
|
+
- **With KB:** Always uses `apiRequest` utility, always validates schemas, always returns `{ status, body }`
|
|
354
|
+
|
|
355
|
+
### Example: Test Review Consistency
|
|
356
|
+
|
|
357
|
+
**Without Knowledge Base:**
|
|
358
|
+
```
|
|
359
|
+
*test-review session 1:
|
|
360
|
+
"This test looks okay" [50 issues missed]
|
|
361
|
+
|
|
362
|
+
*test-review session 2:
|
|
363
|
+
"This test has some issues" [Different issues flagged]
|
|
364
|
+
|
|
365
|
+
Result: Inconsistent feedback
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**With Knowledge Base:**
|
|
369
|
+
```
|
|
370
|
+
*test-review session 1:
|
|
371
|
+
[Loads all quality fragments]
|
|
372
|
+
Flags: 12 hard waits, 5 conditionals (based on test-quality.md)
|
|
373
|
+
|
|
374
|
+
*test-review session 2:
|
|
375
|
+
[Loads same fragments]
|
|
376
|
+
Flags: Same issues with same explanations
|
|
377
|
+
|
|
378
|
+
Result: Consistent, reliable feedback
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## Maintaining the Knowledge Base
|
|
382
|
+
|
|
383
|
+
### When to Add a Fragment
|
|
384
|
+
|
|
385
|
+
**Good reasons:**
|
|
386
|
+
- Pattern is used across multiple workflows
|
|
387
|
+
- Standard is non-obvious (needs documentation)
|
|
388
|
+
- Team asks "how should we handle X?" repeatedly
|
|
389
|
+
- New tool integration (e.g., new testing library)
|
|
390
|
+
|
|
391
|
+
**Bad reasons:**
|
|
392
|
+
- One-off pattern (document in test file instead)
|
|
393
|
+
- Obvious pattern (everyone knows this)
|
|
394
|
+
- Experimental (not proven yet)
|
|
395
|
+
|
|
396
|
+
### Fragment Quality Standards
|
|
397
|
+
|
|
398
|
+
**Good fragment:**
|
|
399
|
+
- Principle stated in one sentence
|
|
400
|
+
- Rationale explains why clearly
|
|
401
|
+
- 3+ pattern examples with code
|
|
402
|
+
- Anti-patterns shown (what not to do)
|
|
403
|
+
- Self-contained (minimal dependencies)
|
|
404
|
+
|
|
405
|
+
**Example size:** 10-30 KB optimal
|
|
406
|
+
|
|
407
|
+
### Updating Existing Fragments
|
|
408
|
+
|
|
409
|
+
**When to update:**
|
|
410
|
+
- Pattern evolved (better approach discovered)
|
|
411
|
+
- Tool updated (new Playwright API)
|
|
412
|
+
- Team feedback (pattern unclear)
|
|
413
|
+
- Bug in example code
|
|
414
|
+
|
|
415
|
+
**How to update:**
|
|
416
|
+
1. Edit fragment markdown file
|
|
417
|
+
2. Update examples
|
|
418
|
+
3. Test with affected workflows
|
|
419
|
+
4. Ensure no breaking changes
|
|
420
|
+
|
|
421
|
+
**No need to update tea-index.csv** unless description/tags change.
|
|
422
|
+
|
|
423
|
+
## Benefits of Knowledge Base System
|
|
424
|
+
|
|
425
|
+
### 1. Consistency
|
|
426
|
+
|
|
427
|
+
**Before:** Test quality varies by who wrote it
|
|
428
|
+
**After:** All tests follow same patterns (TEA-generated or reviewed)
|
|
429
|
+
|
|
430
|
+
### 2. Onboarding
|
|
431
|
+
|
|
432
|
+
**Before:** New team member reads 20 documents, asks 50 questions
|
|
433
|
+
**After:** New team member runs `*atdd`, sees patterns in generated code, learns by example
|
|
434
|
+
|
|
435
|
+
### 3. Quality Gates
|
|
436
|
+
|
|
437
|
+
**Before:** "Is this test good?" → subjective opinion
|
|
438
|
+
**After:** "*test-review" → objective score against knowledge base
|
|
439
|
+
|
|
440
|
+
### 4. Pattern Evolution
|
|
441
|
+
|
|
442
|
+
**Before:** Update tests manually across 100 files
|
|
443
|
+
**After:** Update fragment once, all new tests use new pattern
|
|
444
|
+
|
|
445
|
+
### 5. Cross-Project Reuse
|
|
446
|
+
|
|
447
|
+
**Before:** Reinvent patterns for each project
|
|
448
|
+
**After:** Same fragments across all BMad projects (consistency at scale)
|
|
449
|
+
|
|
450
|
+
## Comparison: With vs Without Knowledge Base
|
|
451
|
+
|
|
452
|
+
### Scenario: Testing Async Background Job
|
|
453
|
+
|
|
454
|
+
**Without Knowledge Base:**
|
|
455
|
+
|
|
456
|
+
Developer 1:
|
|
457
|
+
```typescript
|
|
458
|
+
// Uses hard wait
|
|
459
|
+
await page.click('button');
|
|
460
|
+
await page.waitForTimeout(10000); // Hope job finishes
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
Developer 2:
|
|
464
|
+
```typescript
|
|
465
|
+
// Uses polling
|
|
466
|
+
await page.click('button');
|
|
467
|
+
for (let i = 0; i < 10; i++) {
|
|
468
|
+
const status = await page.locator('.status').textContent();
|
|
469
|
+
if (status === 'complete') break;
|
|
470
|
+
await page.waitForTimeout(1000);
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
Developer 3:
|
|
475
|
+
```typescript
|
|
476
|
+
// Uses waitForSelector
|
|
477
|
+
await page.click('button');
|
|
478
|
+
await page.waitForSelector('.success', { timeout: 30000 });
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
**Result:** 3 different patterns, all suboptimal.
|
|
482
|
+
|
|
483
|
+
**With Knowledge Base (recurse.md fragment):**
|
|
484
|
+
|
|
485
|
+
All developers:
|
|
486
|
+
```typescript
|
|
487
|
+
import { test } from '@seontechnologies/playwright-utils/fixtures';
|
|
488
|
+
|
|
489
|
+
test('job completion', async ({ apiRequest, recurse }) => {
|
|
490
|
+
// Start async job
|
|
491
|
+
const { body: job } = await apiRequest({
|
|
492
|
+
method: 'POST',
|
|
493
|
+
path: '/api/jobs'
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
// Poll until complete (correct API: command, predicate, options)
|
|
497
|
+
const result = await recurse(
|
|
498
|
+
() => apiRequest({ method: 'GET', path: `/api/jobs/${job.id}` }),
|
|
499
|
+
(response) => response.body.status === 'completed', // response.body from apiRequest
|
|
500
|
+
{
|
|
501
|
+
timeout: 30000,
|
|
502
|
+
interval: 2000,
|
|
503
|
+
log: 'Waiting for job to complete'
|
|
504
|
+
}
|
|
505
|
+
);
|
|
506
|
+
|
|
507
|
+
expect(result.body.status).toBe('completed');
|
|
508
|
+
});
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
**Result:** Consistent pattern using correct playwright-utils API (command, predicate, options).
|
|
512
|
+
|
|
513
|
+
## Technical Implementation
|
|
514
|
+
|
|
515
|
+
For details on the knowledge base index, see:
|
|
516
|
+
- [Knowledge Base Index](/docs/reference/tea/knowledge-base.md)
|
|
517
|
+
- [TEA Configuration](/docs/reference/tea/configuration.md)
|
|
518
|
+
|
|
519
|
+
## Related Concepts
|
|
520
|
+
|
|
521
|
+
**Core TEA Concepts:**
|
|
522
|
+
- [Test Quality Standards](/docs/explanation/tea/test-quality-standards.md) - Standards in knowledge base
|
|
523
|
+
- [Risk-Based Testing](/docs/explanation/tea/risk-based-testing.md) - Risk patterns in knowledge base
|
|
524
|
+
- [Engagement Models](/docs/explanation/tea/engagement-models.md) - Knowledge base across all models
|
|
525
|
+
|
|
526
|
+
**Technical Patterns:**
|
|
527
|
+
- [Fixture Architecture](/docs/explanation/tea/fixture-architecture.md) - Fixture patterns in knowledge base
|
|
528
|
+
- [Network-First Patterns](/docs/explanation/tea/network-first-patterns.md) - Network patterns in knowledge base
|
|
529
|
+
|
|
530
|
+
**Overview:**
|
|
531
|
+
- [TEA Overview](/docs/explanation/features/tea-overview.md) - Knowledge base in workflows
|
|
532
|
+
- [Testing as Engineering](/docs/explanation/philosophy/testing-as-engineering.md) - **Foundation: Context engineering philosophy** (why knowledge base solves AI test problems)
|
|
533
|
+
|
|
534
|
+
## Practical Guides
|
|
535
|
+
|
|
536
|
+
**All Workflow Guides Use Knowledge Base:**
|
|
537
|
+
- [How to Run Test Design](/docs/how-to/workflows/run-test-design.md)
|
|
538
|
+
- [How to Run ATDD](/docs/how-to/workflows/run-atdd.md)
|
|
539
|
+
- [How to Run Automate](/docs/how-to/workflows/run-automate.md)
|
|
540
|
+
- [How to Run Test Review](/docs/how-to/workflows/run-test-review.md)
|
|
541
|
+
|
|
542
|
+
**Integration:**
|
|
543
|
+
- [Integrate Playwright Utils](/docs/how-to/customization/integrate-playwright-utils.md) - PW-Utils in knowledge base
|
|
544
|
+
|
|
545
|
+
## Reference
|
|
546
|
+
|
|
547
|
+
- [Knowledge Base Index](/docs/reference/tea/knowledge-base.md) - Complete fragment index
|
|
548
|
+
- [TEA Command Reference](/docs/reference/tea/commands.md) - Which workflows load which fragments
|
|
549
|
+
- [TEA Configuration](/docs/reference/tea/configuration.md) - Config affects fragment loading
|
|
550
|
+
- [Glossary](/docs/reference/glossary/index.md#test-architect-tea-concepts) - Context engineering, knowledge fragment terms
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
Generated with [BMad Method](https://bmad-method.org) - TEA (Test Architect)
|