bmad-odoo 1.0.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/CHANGELOG.md +38 -0
- package/LICENSE +21 -0
- package/README.md +317 -0
- package/_config/agent-manifest.csv +10 -0
- package/_config/manifest.yaml +10 -0
- package/_config/workflow-manifest.csv +10 -0
- package/bmm/agents/analyst.md +93 -0
- package/bmm/agents/architect.md +72 -0
- package/bmm/agents/dev.md +85 -0
- package/bmm/agents/pm.md +61 -0
- package/bmm/agents/quick-flow-solo-dev.md +58 -0
- package/bmm/agents/sm.md +56 -0
- package/bmm/agents/tea.md +57 -0
- package/bmm/agents/tech-writer.md +56 -0
- package/bmm/agents/ux-designer.md +56 -0
- package/bmm/config.yaml +27 -0
- package/bmm/data/odoo-knowledge-base.md +90 -0
- package/bmm/teams/default-team.md +17 -0
- package/bmm/testarch/odoo-test-design/steps/step-01-init.md +44 -0
- package/bmm/testarch/odoo-test-design/steps/step-02-test-cases.md +82 -0
- package/bmm/testarch/odoo-test-design/steps/step-03-complete.md +69 -0
- package/bmm/testarch/odoo-test-design/workflow.md +30 -0
- package/bmm/testarch/odoo-testing-guide.md +30 -0
- package/bmm/workflows/1-analysis/analyze-process/process-analysis.template.md +80 -0
- package/bmm/workflows/1-analysis/analyze-process/steps/step-01-init.md +44 -0
- package/bmm/workflows/1-analysis/analyze-process/steps/step-02-current-state.md +55 -0
- package/bmm/workflows/1-analysis/analyze-process/steps/step-03-pain-points.md +67 -0
- package/bmm/workflows/1-analysis/analyze-process/steps/step-04-odoo-mapping.md +67 -0
- package/bmm/workflows/1-analysis/analyze-process/steps/step-05-recommendations.md +99 -0
- package/bmm/workflows/1-analysis/analyze-process/steps/step-06-complete.md +62 -0
- package/bmm/workflows/1-analysis/analyze-process/workflow.md +60 -0
- package/bmm/workflows/1-analysis/create-odoo-product-brief/steps/step-01-init.md +45 -0
- package/bmm/workflows/1-analysis/create-odoo-product-brief/steps/step-02-users-stakeholders.md +46 -0
- package/bmm/workflows/1-analysis/create-odoo-product-brief/steps/step-03-odoo-modules.md +59 -0
- package/bmm/workflows/1-analysis/create-odoo-product-brief/steps/step-04-scope-timeline.md +64 -0
- package/bmm/workflows/1-analysis/create-odoo-product-brief/steps/step-05-complete.md +32 -0
- package/bmm/workflows/1-analysis/create-odoo-product-brief/workflow.md +35 -0
- package/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +182 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +166 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +204 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +207 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +210 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +224 -0
- package/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +199 -0
- package/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
- package/bmm/workflows/1-analysis/gap-analysis/steps/step-01-init.md +45 -0
- package/bmm/workflows/1-analysis/gap-analysis/steps/step-02-odoo-capabilities.md +36 -0
- package/bmm/workflows/1-analysis/gap-analysis/steps/step-03-gap-matrix.md +51 -0
- package/bmm/workflows/1-analysis/gap-analysis/workflow.md +45 -0
- package/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
- package/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
- package/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
- package/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
- package/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
- package/bmm/workflows/1-analysis/research/research.template.md +29 -0
- package/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
- package/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
- package/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
- package/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
- package/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
- package/bmm/workflows/1-analysis/research/workflow.md +173 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-addon/steps/step-01-init.md +48 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-addon/steps/step-02-technical-design.md +82 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-addon/steps/step-03-generate.md +86 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-addon/workflow.md +39 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-epic/steps/step-01-init.md +55 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-epic/steps/step-02-stories.md +53 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-epic/steps/step-03-complete.md +39 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-epic/workflow.md +35 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-prd/steps/step-01-init.md +46 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-prd/steps/step-02-functional-requirements.md +56 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-prd/steps/step-03-technical-requirements.md +45 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-prd/steps/step-04-complete.md +40 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-prd/workflow.md +29 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-ux-design/steps/step-01-init.md +52 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-ux-design/steps/step-02-form-design.md +78 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-ux-design/steps/step-03-tree-design.md +84 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-ux-design/steps/step-04-complete.md +55 -0
- package/bmm/workflows/2-plan-workflows/create-odoo-ux-design/workflow.md +30 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +228 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
- package/bmm/workflows/2-plan-workflows/plan-odoo-migration/steps/step-01-init.md +49 -0
- package/bmm/workflows/2-plan-workflows/plan-odoo-migration/steps/step-02-risk-assessment.md +51 -0
- package/bmm/workflows/2-plan-workflows/plan-odoo-migration/steps/step-03-roadmap.md +58 -0
- package/bmm/workflows/2-plan-workflows/plan-odoo-migration/workflow.md +29 -0
- package/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
- package/bmm/workflows/2-plan-workflows/prd/prd-template.md +11 -0
- package/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +197 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +166 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +421 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +290 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +291 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +271 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +262 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +258 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +299 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +270 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +294 -0
- package/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +186 -0
- package/bmm/workflows/2-plan-workflows/prd/workflow.md +63 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +133 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
- package/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
- package/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
- package/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
- package/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +352 -0
- package/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
- package/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
- package/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
- package/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
- package/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +145 -0
- package/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
- package/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
- package/bmm/workflows/3-solutioning/enhance-existing-system/steps/step-01-init.md +44 -0
- package/bmm/workflows/3-solutioning/enhance-existing-system/steps/step-02-inheritance-strategy.md +75 -0
- package/bmm/workflows/3-solutioning/enhance-existing-system/steps/step-03-implementation.md +64 -0
- package/bmm/workflows/3-solutioning/enhance-existing-system/workflow.md +30 -0
- package/bmm/workflows/3-solutioning/quick-addon/workflow.md +23 -0
- package/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
- package/bmm/workflows/4-implementation/code-review/instructions.xml +225 -0
- package/bmm/workflows/4-implementation/code-review/workflow.yaml +50 -0
- package/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
- package/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
- package/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -0
- package/bmm/workflows/4-implementation/create-next-story/steps/step-01-init.md +53 -0
- package/bmm/workflows/4-implementation/create-next-story/steps/step-02-acceptance-criteria.md +63 -0
- package/bmm/workflows/4-implementation/create-next-story/steps/step-03-tasks.md +68 -0
- package/bmm/workflows/4-implementation/create-next-story/steps/step-04-complete.md +70 -0
- package/bmm/workflows/4-implementation/create-next-story/workflow.md +30 -0
- package/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
- package/bmm/workflows/4-implementation/dev-story/instructions.xml +409 -0
- package/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -0
- package/bmm/workflows/4-implementation/rapid-brownfield/steps/step-01-quick-story.md +79 -0
- package/bmm/workflows/4-implementation/rapid-brownfield/workflow.md +29 -0
- package/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
- package/bmm/workflows/4-implementation/retrospective/workflow.yaml +57 -0
- package/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
- package/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
- package/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -0
- package/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
- package/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
- package/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-01-understand.md +189 -0
- package/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-02-investigate.md +144 -0
- package/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-03-generate.md +128 -0
- package/bmm/workflows/bmad-quick-flow/create-tech-spec/steps/step-04-review.md +173 -0
- package/bmm/workflows/bmad-quick-flow/create-tech-spec/tech-spec-template.md +74 -0
- package/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.md +79 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
- package/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -0
- package/bmm/workflows/document-odoo/steps/step-01-init.md +43 -0
- package/bmm/workflows/document-odoo/steps/step-02-readme.md +98 -0
- package/bmm/workflows/document-odoo/steps/step-03-user-guide.md +76 -0
- package/bmm/workflows/document-odoo/steps/step-04-complete.md +58 -0
- package/bmm/workflows/document-odoo/workflow.md +30 -0
- package/bmm/workflows/document-project/checklist.md +245 -0
- package/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/bmm/workflows/document-project/instructions.md +221 -0
- package/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/bmm/workflows/document-project/workflow.yaml +28 -0
- package/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
- package/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
- package/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
- package/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
- package/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +26 -0
- package/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
- package/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
- package/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +26 -0
- package/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
- package/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
- package/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +26 -0
- package/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
- package/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
- package/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +26 -0
- package/bmm/workflows/generate-project-context/project-context-template.md +21 -0
- package/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
- package/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
- package/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
- package/bmm/workflows/generate-project-context/workflow.md +49 -0
- package/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -0
- package/bmm/workflows/testarch/atdd/checklist.md +374 -0
- package/bmm/workflows/testarch/atdd/instructions.md +806 -0
- package/bmm/workflows/testarch/atdd/workflow.yaml +45 -0
- package/bmm/workflows/testarch/automate/checklist.md +582 -0
- package/bmm/workflows/testarch/automate/instructions.md +1324 -0
- package/bmm/workflows/testarch/automate/workflow.yaml +52 -0
- package/bmm/workflows/testarch/ci/checklist.md +248 -0
- package/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
- package/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
- package/bmm/workflows/testarch/ci/instructions.md +536 -0
- package/bmm/workflows/testarch/ci/workflow.yaml +45 -0
- package/bmm/workflows/testarch/framework/checklist.md +321 -0
- package/bmm/workflows/testarch/framework/instructions.md +481 -0
- package/bmm/workflows/testarch/framework/workflow.yaml +47 -0
- package/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
- package/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
- package/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -0
- package/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -0
- package/bmm/workflows/testarch/test-design/checklist.md +235 -0
- package/bmm/workflows/testarch/test-design/instructions.md +788 -0
- package/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
- package/bmm/workflows/testarch/test-design/workflow.yaml +54 -0
- package/bmm/workflows/testarch/test-review/checklist.md +472 -0
- package/bmm/workflows/testarch/test-review/instructions.md +628 -0
- package/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
- package/bmm/workflows/testarch/test-review/workflow.yaml +46 -0
- package/bmm/workflows/testarch/trace/checklist.md +655 -0
- package/bmm/workflows/testarch/trace/instructions.md +1047 -0
- package/bmm/workflows/testarch/trace/trace-template.md +675 -0
- package/bmm/workflows/testarch/trace/workflow.yaml +55 -0
- package/bmm/workflows/workflow-status/init/instructions.md +346 -0
- package/bmm/workflows/workflow-status/init/workflow.yaml +29 -0
- package/bmm/workflows/workflow-status/instructions.md +395 -0
- package/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -0
- package/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -0
- package/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -0
- package/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -0
- package/bmm/workflows/workflow-status/project-levels.yaml +59 -0
- package/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/bmm/workflows/workflow-status/workflow.yaml +30 -0
- package/core/agents/bmad-odoo-master.md +61 -0
- package/core/config.yaml +7 -0
- package/core/resources/README.md +5 -0
- package/core/tasks/README.md +7 -0
- package/core/workflows/README.md +8 -0
- package/index.js +84 -0
- package/package.json +48 -0
- package/scripts/postinstall.js +447 -0
- package/scripts/setup-cli.js +17 -0
|
@@ -0,0 +1,481 @@
|
|
|
1
|
+
<!-- Powered by BMAD-CORE™ -->
|
|
2
|
+
|
|
3
|
+
# Test Framework Setup
|
|
4
|
+
|
|
5
|
+
**Workflow ID**: `_bmad/bmm/testarch/framework`
|
|
6
|
+
**Version**: 4.0 (BMad v6)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Initialize a production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, configuration, and best practices. This workflow scaffolds the complete testing infrastructure for modern web applications.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Preflight Requirements
|
|
17
|
+
|
|
18
|
+
**Critical:** Verify these requirements before proceeding. If any fail, HALT and notify the user.
|
|
19
|
+
|
|
20
|
+
- ✅ `package.json` exists in project root
|
|
21
|
+
- ✅ No modern E2E test harness is already configured (check for existing `playwright.config.*` or `cypress.config.*`)
|
|
22
|
+
- ✅ Architectural/stack context available (project type, bundler, dependencies)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Step 1: Run Preflight Checks
|
|
27
|
+
|
|
28
|
+
### Actions
|
|
29
|
+
|
|
30
|
+
1. **Validate package.json**
|
|
31
|
+
- Read `{project-root}/package.json`
|
|
32
|
+
- Extract project type (React, Vue, Angular, Next.js, Node, etc.)
|
|
33
|
+
- Identify bundler (Vite, Webpack, Rollup, esbuild)
|
|
34
|
+
- Note existing test dependencies
|
|
35
|
+
|
|
36
|
+
2. **Check for Existing Framework**
|
|
37
|
+
- Search for `playwright.config.*`, `cypress.config.*`, `cypress.json`
|
|
38
|
+
- Check `package.json` for `@playwright/test` or `cypress` dependencies
|
|
39
|
+
- If found, HALT with message: "Existing test framework detected. Use workflow `upgrade-framework` instead."
|
|
40
|
+
|
|
41
|
+
3. **Gather Context**
|
|
42
|
+
- Look for architecture documents (`architecture.md`, `tech-spec*.md`)
|
|
43
|
+
- Check for API documentation or endpoint lists
|
|
44
|
+
- Identify authentication requirements
|
|
45
|
+
|
|
46
|
+
**Halt Condition:** If preflight checks fail, stop immediately and report which requirement failed.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Step 2: Scaffold Framework
|
|
51
|
+
|
|
52
|
+
### Actions
|
|
53
|
+
|
|
54
|
+
1. **Framework Selection**
|
|
55
|
+
|
|
56
|
+
**Default Logic:**
|
|
57
|
+
- **Playwright** (recommended for):
|
|
58
|
+
- Large repositories (100+ files)
|
|
59
|
+
- Performance-critical applications
|
|
60
|
+
- Multi-browser support needed
|
|
61
|
+
- Complex user flows requiring video/trace debugging
|
|
62
|
+
- Projects requiring worker parallelism
|
|
63
|
+
|
|
64
|
+
- **Cypress** (recommended for):
|
|
65
|
+
- Small teams prioritizing developer experience
|
|
66
|
+
- Component testing focus
|
|
67
|
+
- Real-time reloading during test development
|
|
68
|
+
- Simpler setup requirements
|
|
69
|
+
|
|
70
|
+
**Detection Strategy:**
|
|
71
|
+
- Check `package.json` for existing preference
|
|
72
|
+
- Consider `project_size` variable from workflow config
|
|
73
|
+
- Use `framework_preference` variable if set
|
|
74
|
+
- Default to **Playwright** if uncertain
|
|
75
|
+
|
|
76
|
+
2. **Create Directory Structure**
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
{project-root}/
|
|
80
|
+
├── tests/ # Root test directory
|
|
81
|
+
│ ├── e2e/ # Test files (users organize as needed)
|
|
82
|
+
│ ├── support/ # Framework infrastructure (key pattern)
|
|
83
|
+
│ │ ├── fixtures/ # Test fixtures (data, mocks)
|
|
84
|
+
│ │ ├── helpers/ # Utility functions
|
|
85
|
+
│ │ └── page-objects/ # Page object models (optional)
|
|
86
|
+
│ └── README.md # Test suite documentation
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Note**: Users organize test files (e2e/, api/, integration/, component/) as needed. The **support/** folder is the critical pattern for fixtures and helpers used across tests.
|
|
90
|
+
|
|
91
|
+
3. **Generate Configuration File**
|
|
92
|
+
|
|
93
|
+
**For Playwright** (`playwright.config.ts` or `playwright.config.js`):
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
97
|
+
|
|
98
|
+
export default defineConfig({
|
|
99
|
+
testDir: './tests/e2e',
|
|
100
|
+
fullyParallel: true,
|
|
101
|
+
forbidOnly: !!process.env.CI,
|
|
102
|
+
retries: process.env.CI ? 2 : 0,
|
|
103
|
+
workers: process.env.CI ? 1 : undefined,
|
|
104
|
+
|
|
105
|
+
timeout: 60 * 1000, // Test timeout: 60s
|
|
106
|
+
expect: {
|
|
107
|
+
timeout: 15 * 1000, // Assertion timeout: 15s
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
use: {
|
|
111
|
+
baseURL: process.env.BASE_URL || 'http://localhost:3000',
|
|
112
|
+
trace: 'retain-on-failure',
|
|
113
|
+
screenshot: 'only-on-failure',
|
|
114
|
+
video: 'retain-on-failure',
|
|
115
|
+
actionTimeout: 15 * 1000, // Action timeout: 15s
|
|
116
|
+
navigationTimeout: 30 * 1000, // Navigation timeout: 30s
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
reporter: [['html', { outputFolder: 'test-results/html' }], ['junit', { outputFile: 'test-results/junit.xml' }], ['list']],
|
|
120
|
+
|
|
121
|
+
projects: [
|
|
122
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
123
|
+
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
|
|
124
|
+
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
|
|
125
|
+
],
|
|
126
|
+
});
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**For Cypress** (`cypress.config.ts` or `cypress.config.js`):
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
import { defineConfig } from 'cypress';
|
|
133
|
+
|
|
134
|
+
export default defineConfig({
|
|
135
|
+
e2e: {
|
|
136
|
+
baseUrl: process.env.BASE_URL || 'http://localhost:3000',
|
|
137
|
+
specPattern: 'tests/e2e/**/*.cy.{js,jsx,ts,tsx}',
|
|
138
|
+
supportFile: 'tests/support/e2e.ts',
|
|
139
|
+
video: false,
|
|
140
|
+
screenshotOnRunFailure: true,
|
|
141
|
+
|
|
142
|
+
setupNodeEvents(on, config) {
|
|
143
|
+
// implement node event listeners here
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
retries: {
|
|
148
|
+
runMode: 2,
|
|
149
|
+
openMode: 0,
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
defaultCommandTimeout: 15000,
|
|
153
|
+
requestTimeout: 30000,
|
|
154
|
+
responseTimeout: 30000,
|
|
155
|
+
pageLoadTimeout: 60000,
|
|
156
|
+
});
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
4. **Generate Environment Configuration**
|
|
160
|
+
|
|
161
|
+
Create `.env.example`:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Test Environment Configuration
|
|
165
|
+
TEST_ENV=local
|
|
166
|
+
BASE_URL=http://localhost:3000
|
|
167
|
+
API_URL=http://localhost:3001/api
|
|
168
|
+
|
|
169
|
+
# Authentication (if applicable)
|
|
170
|
+
TEST_USER_EMAIL=test@example.com
|
|
171
|
+
TEST_USER_PASSWORD=
|
|
172
|
+
|
|
173
|
+
# Feature Flags (if applicable)
|
|
174
|
+
FEATURE_FLAG_NEW_UI=true
|
|
175
|
+
|
|
176
|
+
# API Keys (if applicable)
|
|
177
|
+
TEST_API_KEY=
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
5. **Generate Node Version File**
|
|
181
|
+
|
|
182
|
+
Create `.nvmrc`:
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
20.11.0
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
(Use Node version from existing `.nvmrc` or default to current LTS)
|
|
189
|
+
|
|
190
|
+
6. **Implement Fixture Architecture**
|
|
191
|
+
|
|
192
|
+
**Knowledge Base Reference**: `testarch/knowledge/fixture-architecture.md`
|
|
193
|
+
|
|
194
|
+
Create `tests/support/fixtures/index.ts`:
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
import { test as base } from '@playwright/test';
|
|
198
|
+
import { UserFactory } from './factories/user-factory';
|
|
199
|
+
|
|
200
|
+
type TestFixtures = {
|
|
201
|
+
userFactory: UserFactory;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export const test = base.extend<TestFixtures>({
|
|
205
|
+
userFactory: async ({}, use) => {
|
|
206
|
+
const factory = new UserFactory();
|
|
207
|
+
await use(factory);
|
|
208
|
+
await factory.cleanup(); // Auto-cleanup
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
export { expect } from '@playwright/test';
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
7. **Implement Data Factories**
|
|
216
|
+
|
|
217
|
+
**Knowledge Base Reference**: `testarch/knowledge/data-factories.md`
|
|
218
|
+
|
|
219
|
+
Create `tests/support/fixtures/factories/user-factory.ts`:
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
import { faker } from '@faker-js/faker';
|
|
223
|
+
|
|
224
|
+
export class UserFactory {
|
|
225
|
+
private createdUsers: string[] = [];
|
|
226
|
+
|
|
227
|
+
async createUser(overrides = {}) {
|
|
228
|
+
const user = {
|
|
229
|
+
email: faker.internet.email(),
|
|
230
|
+
name: faker.person.fullName(),
|
|
231
|
+
password: faker.internet.password({ length: 12 }),
|
|
232
|
+
...overrides,
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
// API call to create user
|
|
236
|
+
const response = await fetch(`${process.env.API_URL}/users`, {
|
|
237
|
+
method: 'POST',
|
|
238
|
+
headers: { 'Content-Type': 'application/json' },
|
|
239
|
+
body: JSON.stringify(user),
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
const created = await response.json();
|
|
243
|
+
this.createdUsers.push(created.id);
|
|
244
|
+
return created;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
async cleanup() {
|
|
248
|
+
// Delete all created users
|
|
249
|
+
for (const userId of this.createdUsers) {
|
|
250
|
+
await fetch(`${process.env.API_URL}/users/${userId}`, {
|
|
251
|
+
method: 'DELETE',
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
this.createdUsers = [];
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
8. **Generate Sample Tests**
|
|
260
|
+
|
|
261
|
+
Create `tests/e2e/example.spec.ts`:
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
import { test, expect } from '../support/fixtures';
|
|
265
|
+
|
|
266
|
+
test.describe('Example Test Suite', () => {
|
|
267
|
+
test('should load homepage', async ({ page }) => {
|
|
268
|
+
await page.goto('/');
|
|
269
|
+
await expect(page).toHaveTitle(/Home/i);
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
test('should create user and login', async ({ page, userFactory }) => {
|
|
273
|
+
// Create test user
|
|
274
|
+
const user = await userFactory.createUser();
|
|
275
|
+
|
|
276
|
+
// Login
|
|
277
|
+
await page.goto('/login');
|
|
278
|
+
await page.fill('[data-testid="email-input"]', user.email);
|
|
279
|
+
await page.fill('[data-testid="password-input"]', user.password);
|
|
280
|
+
await page.click('[data-testid="login-button"]');
|
|
281
|
+
|
|
282
|
+
// Assert login success
|
|
283
|
+
await expect(page.locator('[data-testid="user-menu"]')).toBeVisible();
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
9. **Update package.json Scripts**
|
|
289
|
+
|
|
290
|
+
Add minimal test script to `package.json`:
|
|
291
|
+
|
|
292
|
+
```json
|
|
293
|
+
{
|
|
294
|
+
"scripts": {
|
|
295
|
+
"test:e2e": "playwright test"
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**Note**: Users can add additional scripts as needed (e.g., `--ui`, `--headed`, `--debug`, `show-report`).
|
|
301
|
+
|
|
302
|
+
10. **Generate Documentation**
|
|
303
|
+
|
|
304
|
+
Create `tests/README.md` with setup instructions (see Step 3 deliverables).
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Step 3: Deliverables
|
|
309
|
+
|
|
310
|
+
### Primary Artifacts Created
|
|
311
|
+
|
|
312
|
+
1. **Configuration File**
|
|
313
|
+
- `playwright.config.ts` or `cypress.config.ts`
|
|
314
|
+
- Timeouts: action 15s, navigation 30s, test 60s
|
|
315
|
+
- Reporters: HTML + JUnit XML
|
|
316
|
+
|
|
317
|
+
2. **Directory Structure**
|
|
318
|
+
- `tests/` with `e2e/`, `api/`, `support/` subdirectories
|
|
319
|
+
- `support/fixtures/` for test fixtures
|
|
320
|
+
- `support/helpers/` for utility functions
|
|
321
|
+
|
|
322
|
+
3. **Environment Configuration**
|
|
323
|
+
- `.env.example` with `TEST_ENV`, `BASE_URL`, `API_URL`
|
|
324
|
+
- `.nvmrc` with Node version
|
|
325
|
+
|
|
326
|
+
4. **Test Infrastructure**
|
|
327
|
+
- Fixture architecture (`mergeTests` pattern)
|
|
328
|
+
- Data factories (faker-based, with auto-cleanup)
|
|
329
|
+
- Sample tests demonstrating patterns
|
|
330
|
+
|
|
331
|
+
5. **Documentation**
|
|
332
|
+
- `tests/README.md` with setup instructions
|
|
333
|
+
- Comments in config files explaining options
|
|
334
|
+
|
|
335
|
+
### README Contents
|
|
336
|
+
|
|
337
|
+
The generated `tests/README.md` should include:
|
|
338
|
+
|
|
339
|
+
- **Setup Instructions**: How to install dependencies, configure environment
|
|
340
|
+
- **Running Tests**: Commands for local execution, headed mode, debug mode
|
|
341
|
+
- **Architecture Overview**: Fixture pattern, data factories, page objects
|
|
342
|
+
- **Best Practices**: Selector strategy (data-testid), test isolation, cleanup
|
|
343
|
+
- **CI Integration**: How tests run in CI/CD pipeline
|
|
344
|
+
- **Knowledge Base References**: Links to relevant TEA knowledge fragments
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Important Notes
|
|
349
|
+
|
|
350
|
+
### Knowledge Base Integration
|
|
351
|
+
|
|
352
|
+
**Critical:** Check configuration and load appropriate fragments.
|
|
353
|
+
|
|
354
|
+
Read `{config_source}` and check `config.tea_use_playwright_utils`.
|
|
355
|
+
|
|
356
|
+
**If `config.tea_use_playwright_utils: true` (Playwright Utils Integration):**
|
|
357
|
+
|
|
358
|
+
Consult `{project-root}/_bmad/bmm/testarch/tea-index.csv` and load:
|
|
359
|
+
|
|
360
|
+
- `overview.md` - Playwright utils installation and design principles
|
|
361
|
+
- `fixtures-composition.md` - mergeTests composition with playwright-utils
|
|
362
|
+
- `auth-session.md` - Token persistence setup (if auth needed)
|
|
363
|
+
- `api-request.md` - API testing utilities (if API tests planned)
|
|
364
|
+
- `burn-in.md` - Smart test selection for CI (recommend during framework setup)
|
|
365
|
+
- `network-error-monitor.md` - Automatic HTTP error detection (recommend in merged fixtures)
|
|
366
|
+
- `data-factories.md` - Factory patterns with faker (498 lines, 5 examples)
|
|
367
|
+
|
|
368
|
+
Recommend installing playwright-utils:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
npm install -D @seontechnologies/playwright-utils
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Recommend adding burn-in and network-error-monitor to merged fixtures for enhanced reliability.
|
|
375
|
+
|
|
376
|
+
**If `config.tea_use_playwright_utils: false` (Traditional Patterns):**
|
|
377
|
+
|
|
378
|
+
Consult `{project-root}/_bmad/bmm/testarch/tea-index.csv` and load:
|
|
379
|
+
|
|
380
|
+
- `fixture-architecture.md` - Pure function → fixture → `mergeTests` composition with auto-cleanup (406 lines, 5 examples)
|
|
381
|
+
- `data-factories.md` - Faker-based factories with overrides, nested factories, API seeding, auto-cleanup (498 lines, 5 examples)
|
|
382
|
+
- `network-first.md` - Network-first testing safeguards: intercept before navigate, HAR capture, deterministic waiting (489 lines, 5 examples)
|
|
383
|
+
- `playwright-config.md` - Playwright-specific configuration: environment-based, timeout standards, artifact output, parallelization, project config (722 lines, 5 examples)
|
|
384
|
+
- `test-quality.md` - Test design principles: deterministic, isolated with cleanup, explicit assertions, length/time limits (658 lines, 5 examples)
|
|
385
|
+
|
|
386
|
+
### Framework-Specific Guidance
|
|
387
|
+
|
|
388
|
+
**Playwright Advantages:**
|
|
389
|
+
|
|
390
|
+
- Worker parallelism (significantly faster for large suites)
|
|
391
|
+
- Trace viewer (powerful debugging with screenshots, network, console)
|
|
392
|
+
- Multi-language support (TypeScript, JavaScript, Python, C#, Java)
|
|
393
|
+
- Built-in API testing capabilities
|
|
394
|
+
- Better handling of multiple browser contexts
|
|
395
|
+
|
|
396
|
+
**Cypress Advantages:**
|
|
397
|
+
|
|
398
|
+
- Superior developer experience (real-time reloading)
|
|
399
|
+
- Excellent for component testing (Cypress CT or use Vitest)
|
|
400
|
+
- Simpler setup for small teams
|
|
401
|
+
- Better suited for watch mode during development
|
|
402
|
+
|
|
403
|
+
**Avoid Cypress when:**
|
|
404
|
+
|
|
405
|
+
- API chains are heavy and complex
|
|
406
|
+
- Multi-tab/window scenarios are common
|
|
407
|
+
- Worker parallelism is critical for CI performance
|
|
408
|
+
|
|
409
|
+
### Selector Strategy
|
|
410
|
+
|
|
411
|
+
**Always recommend**:
|
|
412
|
+
|
|
413
|
+
- `data-testid` attributes for UI elements
|
|
414
|
+
- `data-cy` attributes if Cypress is chosen
|
|
415
|
+
- Avoid brittle CSS selectors or XPath
|
|
416
|
+
|
|
417
|
+
### Contract Testing
|
|
418
|
+
|
|
419
|
+
For microservices architectures, **recommend Pact** for consumer-driven contract testing alongside E2E tests.
|
|
420
|
+
|
|
421
|
+
### Failure Artifacts
|
|
422
|
+
|
|
423
|
+
Configure **failure-only** capture:
|
|
424
|
+
|
|
425
|
+
- Screenshots: only on failure
|
|
426
|
+
- Videos: retain on failure (delete on success)
|
|
427
|
+
- Traces: retain on failure (Playwright)
|
|
428
|
+
|
|
429
|
+
This reduces storage overhead while maintaining debugging capability.
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Output Summary
|
|
434
|
+
|
|
435
|
+
After completing this workflow, provide a summary:
|
|
436
|
+
|
|
437
|
+
```markdown
|
|
438
|
+
## Framework Scaffold Complete
|
|
439
|
+
|
|
440
|
+
**Framework Selected**: Playwright (or Cypress)
|
|
441
|
+
|
|
442
|
+
**Artifacts Created**:
|
|
443
|
+
|
|
444
|
+
- ✅ Configuration file: `playwright.config.ts`
|
|
445
|
+
- ✅ Directory structure: `tests/e2e/`, `tests/support/`
|
|
446
|
+
- ✅ Environment config: `.env.example`
|
|
447
|
+
- ✅ Node version: `.nvmrc`
|
|
448
|
+
- ✅ Fixture architecture: `tests/support/fixtures/`
|
|
449
|
+
- ✅ Data factories: `tests/support/fixtures/factories/`
|
|
450
|
+
- ✅ Sample tests: `tests/e2e/example.spec.ts`
|
|
451
|
+
- ✅ Documentation: `tests/README.md`
|
|
452
|
+
|
|
453
|
+
**Next Steps**:
|
|
454
|
+
|
|
455
|
+
1. Copy `.env.example` to `.env` and fill in environment variables
|
|
456
|
+
2. Run `npm install` to install test dependencies
|
|
457
|
+
3. Run `npm run test:e2e` to execute sample tests
|
|
458
|
+
4. Review `tests/README.md` for detailed setup instructions
|
|
459
|
+
|
|
460
|
+
**Knowledge Base References Applied**:
|
|
461
|
+
|
|
462
|
+
- Fixture architecture pattern (pure functions + mergeTests)
|
|
463
|
+
- Data factories with auto-cleanup (faker-based)
|
|
464
|
+
- Network-first testing safeguards
|
|
465
|
+
- Failure-only artifact capture
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## Validation
|
|
471
|
+
|
|
472
|
+
After completing all steps, verify:
|
|
473
|
+
|
|
474
|
+
- [ ] Configuration file created and valid
|
|
475
|
+
- [ ] Directory structure exists
|
|
476
|
+
- [ ] Environment configuration generated
|
|
477
|
+
- [ ] Sample tests run successfully
|
|
478
|
+
- [ ] Documentation complete and accurate
|
|
479
|
+
- [ ] No errors or warnings during scaffold
|
|
480
|
+
|
|
481
|
+
Refer to `checklist.md` for comprehensive validation criteria.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Test Architect workflow: framework
|
|
2
|
+
name: testarch-framework
|
|
3
|
+
description: "Initialize production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, and configuration"
|
|
4
|
+
author: "BMad"
|
|
5
|
+
|
|
6
|
+
# Critical variables from config
|
|
7
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
8
|
+
output_folder: "{config_source}:output_folder"
|
|
9
|
+
user_name: "{config_source}:user_name"
|
|
10
|
+
communication_language: "{config_source}:communication_language"
|
|
11
|
+
document_output_language: "{config_source}:document_output_language"
|
|
12
|
+
date: system-generated
|
|
13
|
+
|
|
14
|
+
# Workflow components
|
|
15
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/testarch/framework"
|
|
16
|
+
instructions: "{installed_path}/instructions.md"
|
|
17
|
+
validation: "{installed_path}/checklist.md"
|
|
18
|
+
|
|
19
|
+
# Variables and inputs
|
|
20
|
+
variables:
|
|
21
|
+
test_dir: "{project-root}/tests" # Root test directory
|
|
22
|
+
use_typescript: true # Prefer TypeScript configuration
|
|
23
|
+
framework_preference: "auto" # auto, playwright, cypress - user can override auto-detection
|
|
24
|
+
project_size: "auto" # auto, small, large - influences framework recommendation
|
|
25
|
+
|
|
26
|
+
# Output configuration
|
|
27
|
+
default_output_file: "{test_dir}/README.md" # Main deliverable is test setup README
|
|
28
|
+
|
|
29
|
+
# Required tools
|
|
30
|
+
required_tools:
|
|
31
|
+
- read_file # Read package.json, existing configs
|
|
32
|
+
- write_file # Create config files, helpers, fixtures, tests
|
|
33
|
+
- create_directory # Create test directory structure
|
|
34
|
+
- list_files # Check for existing framework
|
|
35
|
+
- search_repo # Find architecture docs
|
|
36
|
+
|
|
37
|
+
tags:
|
|
38
|
+
- qa
|
|
39
|
+
- setup
|
|
40
|
+
- test-architect
|
|
41
|
+
- framework
|
|
42
|
+
- initialization
|
|
43
|
+
|
|
44
|
+
execution_hints:
|
|
45
|
+
interactive: false # Minimize prompts; auto-detect when possible
|
|
46
|
+
autonomous: true # Proceed without user input unless blocked
|
|
47
|
+
iterative: true
|