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,536 @@
|
|
|
1
|
+
<!-- Powered by BMAD-CORE™ -->
|
|
2
|
+
|
|
3
|
+
# CI/CD Pipeline Setup
|
|
4
|
+
|
|
5
|
+
**Workflow ID**: `_bmad/bmm/testarch/ci`
|
|
6
|
+
**Version**: 4.0 (BMad v6)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Scaffolds a production-ready CI/CD quality pipeline with test execution, burn-in loops for flaky test detection, parallel sharding, artifact collection, and notification configuration. This workflow creates platform-specific CI configuration optimized for fast feedback and reliable test execution.
|
|
13
|
+
|
|
14
|
+
Note: This is typically a one-time setup per repo; run it any time after the test framework exists, ideally before feature work starts.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Preflight Requirements
|
|
19
|
+
|
|
20
|
+
**Critical:** Verify these requirements before proceeding. If any fail, HALT and notify the user.
|
|
21
|
+
|
|
22
|
+
- ✅ Git repository is initialized (`.git/` directory exists)
|
|
23
|
+
- ✅ Local test suite passes (`npm run test:e2e` succeeds)
|
|
24
|
+
- ✅ Test framework is configured (from `framework` workflow)
|
|
25
|
+
- ✅ Team agrees on target CI platform (GitHub Actions, GitLab CI, Circle CI, etc.)
|
|
26
|
+
- ✅ Access to CI platform settings/secrets available (if updating existing pipeline)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Step 1: Run Preflight Checks
|
|
31
|
+
|
|
32
|
+
### Actions
|
|
33
|
+
|
|
34
|
+
1. **Verify Git Repository**
|
|
35
|
+
- Check for `.git/` directory
|
|
36
|
+
- Confirm remote repository configured (`git remote -v`)
|
|
37
|
+
- If not initialized, HALT with message: "Git repository required for CI/CD setup"
|
|
38
|
+
|
|
39
|
+
2. **Validate Test Framework**
|
|
40
|
+
- Look for `playwright.config.*` or `cypress.config.*`
|
|
41
|
+
- Read framework configuration to extract:
|
|
42
|
+
- Test directory location
|
|
43
|
+
- Test command
|
|
44
|
+
- Reporter configuration
|
|
45
|
+
- Timeout settings
|
|
46
|
+
- If not found, HALT with message: "Run `framework` workflow first to set up test infrastructure"
|
|
47
|
+
|
|
48
|
+
3. **Run Local Tests**
|
|
49
|
+
- Execute `npm run test:e2e` (or equivalent from package.json)
|
|
50
|
+
- Ensure tests pass before CI setup
|
|
51
|
+
- If tests fail, HALT with message: "Fix failing tests before setting up CI/CD"
|
|
52
|
+
|
|
53
|
+
4. **Detect CI Platform**
|
|
54
|
+
- Check for existing CI configuration:
|
|
55
|
+
- `.github/workflows/*.yml` (GitHub Actions)
|
|
56
|
+
- `.gitlab-ci.yml` (GitLab CI)
|
|
57
|
+
- `.circleci/config.yml` (Circle CI)
|
|
58
|
+
- `Jenkinsfile` (Jenkins)
|
|
59
|
+
- If found, ask user: "Update existing CI configuration or create new?"
|
|
60
|
+
- If not found, detect platform from git remote:
|
|
61
|
+
- `github.com` → GitHub Actions (default)
|
|
62
|
+
- `gitlab.com` → GitLab CI
|
|
63
|
+
- Ask user if unable to auto-detect
|
|
64
|
+
|
|
65
|
+
5. **Read Environment Configuration**
|
|
66
|
+
- Use `.nvmrc` for Node version if present
|
|
67
|
+
- If missing, default to a current LTS (Node 24) or newer instead of a fixed old version
|
|
68
|
+
- Read `package.json` to identify dependencies (affects caching strategy)
|
|
69
|
+
|
|
70
|
+
**Halt Condition:** If preflight checks fail, stop immediately and report which requirement failed.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Step 2: Scaffold CI Pipeline
|
|
75
|
+
|
|
76
|
+
### Actions
|
|
77
|
+
|
|
78
|
+
1. **Select CI Platform Template**
|
|
79
|
+
|
|
80
|
+
Based on detection or user preference, use the appropriate template:
|
|
81
|
+
|
|
82
|
+
**GitHub Actions** (`.github/workflows/test.yml`):
|
|
83
|
+
- Most common platform
|
|
84
|
+
- Excellent caching and matrix support
|
|
85
|
+
- Free for public repos, generous free tier for private
|
|
86
|
+
|
|
87
|
+
**GitLab CI** (`.gitlab-ci.yml`):
|
|
88
|
+
- Integrated with GitLab
|
|
89
|
+
- Built-in registry and runners
|
|
90
|
+
- Powerful pipeline features
|
|
91
|
+
|
|
92
|
+
**Circle CI** (`.circleci/config.yml`):
|
|
93
|
+
- Fast execution with parallelism
|
|
94
|
+
- Docker-first approach
|
|
95
|
+
- Enterprise features
|
|
96
|
+
|
|
97
|
+
**Jenkins** (`Jenkinsfile`):
|
|
98
|
+
- Self-hosted option
|
|
99
|
+
- Maximum customization
|
|
100
|
+
- Requires infrastructure management
|
|
101
|
+
|
|
102
|
+
2. **Generate Pipeline Configuration**
|
|
103
|
+
|
|
104
|
+
Use templates from `{installed_path}/` directory:
|
|
105
|
+
- `github-actions-template.yml`
|
|
106
|
+
- `gitlab-ci-template.yml`
|
|
107
|
+
|
|
108
|
+
**Key pipeline stages:**
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
stages:
|
|
112
|
+
- lint # Code quality checks
|
|
113
|
+
- test # Test execution (parallel shards)
|
|
114
|
+
- burn-in # Flaky test detection
|
|
115
|
+
- report # Aggregate results and publish
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
3. **Configure Test Execution**
|
|
119
|
+
|
|
120
|
+
**Parallel Sharding:**
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
strategy:
|
|
124
|
+
fail-fast: false
|
|
125
|
+
matrix:
|
|
126
|
+
shard: [1, 2, 3, 4]
|
|
127
|
+
|
|
128
|
+
steps:
|
|
129
|
+
- name: Run tests
|
|
130
|
+
run: npm run test:e2e -- --shard=${{ matrix.shard }}/${{ strategy.job-total }}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Purpose:** Splits tests into N parallel jobs for faster execution (target: <10 min per shard)
|
|
134
|
+
|
|
135
|
+
4. **Add Burn-In Loop**
|
|
136
|
+
|
|
137
|
+
**Critical pattern from production systems:**
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
burn-in:
|
|
141
|
+
name: Flaky Test Detection
|
|
142
|
+
runs-on: ubuntu-latest
|
|
143
|
+
steps:
|
|
144
|
+
- uses: actions/checkout@v4
|
|
145
|
+
|
|
146
|
+
- name: Setup Node
|
|
147
|
+
uses: actions/setup-node@v4
|
|
148
|
+
with:
|
|
149
|
+
node-version-file: '.nvmrc'
|
|
150
|
+
|
|
151
|
+
- name: Install dependencies
|
|
152
|
+
run: npm ci
|
|
153
|
+
|
|
154
|
+
- name: Run burn-in loop (10 iterations)
|
|
155
|
+
run: |
|
|
156
|
+
for i in {1..10}; do
|
|
157
|
+
echo "🔥 Burn-in iteration $i/10"
|
|
158
|
+
npm run test:e2e || exit 1
|
|
159
|
+
done
|
|
160
|
+
|
|
161
|
+
- name: Upload failure artifacts
|
|
162
|
+
if: failure()
|
|
163
|
+
uses: actions/upload-artifact@v4
|
|
164
|
+
with:
|
|
165
|
+
name: burn-in-failures
|
|
166
|
+
path: test-results/
|
|
167
|
+
retention-days: 30
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Purpose:** Runs tests multiple times to catch non-deterministic failures before they reach main branch.
|
|
171
|
+
|
|
172
|
+
**When to run:**
|
|
173
|
+
- On pull requests to main/develop
|
|
174
|
+
- Weekly on cron schedule
|
|
175
|
+
- After significant test infrastructure changes
|
|
176
|
+
|
|
177
|
+
5. **Configure Caching**
|
|
178
|
+
|
|
179
|
+
**Node modules cache:**
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
- name: Cache dependencies
|
|
183
|
+
uses: actions/cache@v4
|
|
184
|
+
with:
|
|
185
|
+
path: ~/.npm
|
|
186
|
+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
187
|
+
restore-keys: |
|
|
188
|
+
${{ runner.os }}-node-
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Browser binaries cache (Playwright):**
|
|
192
|
+
|
|
193
|
+
```yaml
|
|
194
|
+
- name: Cache Playwright browsers
|
|
195
|
+
uses: actions/cache@v4
|
|
196
|
+
with:
|
|
197
|
+
path: ~/.cache/ms-playwright
|
|
198
|
+
key: ${{ runner.os }}-playwright-${{ hashFiles('**/package-lock.json') }}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Purpose:** Reduces CI execution time by 2-5 minutes per run.
|
|
202
|
+
|
|
203
|
+
6. **Configure Artifact Collection**
|
|
204
|
+
|
|
205
|
+
**Failure artifacts only:**
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
- name: Upload test results
|
|
209
|
+
if: failure()
|
|
210
|
+
uses: actions/upload-artifact@v4
|
|
211
|
+
with:
|
|
212
|
+
name: test-results-${{ matrix.shard }}
|
|
213
|
+
path: |
|
|
214
|
+
test-results/
|
|
215
|
+
playwright-report/
|
|
216
|
+
retention-days: 30
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Artifacts to collect:**
|
|
220
|
+
- Traces (Playwright) - full debugging context
|
|
221
|
+
- Screenshots - visual evidence of failures
|
|
222
|
+
- Videos - interaction playback
|
|
223
|
+
- HTML reports - detailed test results
|
|
224
|
+
- Console logs - error messages and warnings
|
|
225
|
+
|
|
226
|
+
7. **Add Retry Logic**
|
|
227
|
+
|
|
228
|
+
```yaml
|
|
229
|
+
- name: Run tests with retries
|
|
230
|
+
uses: nick-invision/retry@v2
|
|
231
|
+
with:
|
|
232
|
+
timeout_minutes: 30
|
|
233
|
+
max_attempts: 3
|
|
234
|
+
retry_on: error
|
|
235
|
+
command: npm run test:e2e
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Purpose:** Handles transient failures (network issues, race conditions)
|
|
239
|
+
|
|
240
|
+
8. **Configure Notifications** (Optional)
|
|
241
|
+
|
|
242
|
+
If `notify_on_failure` is enabled:
|
|
243
|
+
|
|
244
|
+
```yaml
|
|
245
|
+
- name: Notify on failure
|
|
246
|
+
if: failure()
|
|
247
|
+
uses: 8398a7/action-slack@v3
|
|
248
|
+
with:
|
|
249
|
+
status: ${{ job.status }}
|
|
250
|
+
text: 'Test failures detected in PR #${{ github.event.pull_request.number }}'
|
|
251
|
+
webhook_url: ${{ secrets.SLACK_WEBHOOK }}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
9. **Generate Helper Scripts**
|
|
255
|
+
|
|
256
|
+
**Selective testing script** (`scripts/test-changed.sh`):
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
#!/bin/bash
|
|
260
|
+
# Run only tests for changed files
|
|
261
|
+
|
|
262
|
+
CHANGED_FILES=$(git diff --name-only HEAD~1)
|
|
263
|
+
|
|
264
|
+
if echo "$CHANGED_FILES" | grep -q "src/.*\.ts$"; then
|
|
265
|
+
echo "Running affected tests..."
|
|
266
|
+
npm run test:e2e -- --grep="$(echo $CHANGED_FILES | sed 's/src\///g' | sed 's/\.ts//g')"
|
|
267
|
+
else
|
|
268
|
+
echo "No test-affecting changes detected"
|
|
269
|
+
fi
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Local mirror script** (`scripts/ci-local.sh`):
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
#!/bin/bash
|
|
276
|
+
# Mirror CI execution locally for debugging
|
|
277
|
+
|
|
278
|
+
echo "🔍 Running CI pipeline locally..."
|
|
279
|
+
|
|
280
|
+
# Lint
|
|
281
|
+
npm run lint || exit 1
|
|
282
|
+
|
|
283
|
+
# Tests
|
|
284
|
+
npm run test:e2e || exit 1
|
|
285
|
+
|
|
286
|
+
# Burn-in (reduced iterations)
|
|
287
|
+
for i in {1..3}; do
|
|
288
|
+
echo "🔥 Burn-in $i/3"
|
|
289
|
+
npm run test:e2e || exit 1
|
|
290
|
+
done
|
|
291
|
+
|
|
292
|
+
echo "✅ Local CI pipeline passed"
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
10. **Generate Documentation**
|
|
296
|
+
|
|
297
|
+
**CI README** (`docs/ci.md`):
|
|
298
|
+
- Pipeline stages and purpose
|
|
299
|
+
- How to run locally
|
|
300
|
+
- Debugging failed CI runs
|
|
301
|
+
- Secrets and environment variables needed
|
|
302
|
+
- Notification setup
|
|
303
|
+
- Badge URLs for README
|
|
304
|
+
|
|
305
|
+
**Secrets checklist** (`docs/ci-secrets-checklist.md`):
|
|
306
|
+
- Required secrets list (SLACK_WEBHOOK, etc.)
|
|
307
|
+
- Where to configure in CI platform
|
|
308
|
+
- Security best practices
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Step 3: Deliverables
|
|
313
|
+
|
|
314
|
+
### Primary Artifacts Created
|
|
315
|
+
|
|
316
|
+
1. **CI Configuration File**
|
|
317
|
+
- `.github/workflows/test.yml` (GitHub Actions)
|
|
318
|
+
- `.gitlab-ci.yml` (GitLab CI)
|
|
319
|
+
- `.circleci/config.yml` (Circle CI)
|
|
320
|
+
|
|
321
|
+
2. **Pipeline Stages**
|
|
322
|
+
- **Lint**: Code quality checks (ESLint, Prettier)
|
|
323
|
+
- **Test**: Parallel test execution (4 shards)
|
|
324
|
+
- **Burn-in**: Flaky test detection (10 iterations)
|
|
325
|
+
- **Report**: Result aggregation and publishing
|
|
326
|
+
|
|
327
|
+
3. **Helper Scripts**
|
|
328
|
+
- `scripts/test-changed.sh` - Selective testing
|
|
329
|
+
- `scripts/ci-local.sh` - Local CI mirror
|
|
330
|
+
- `scripts/burn-in.sh` - Standalone burn-in execution
|
|
331
|
+
|
|
332
|
+
4. **Documentation**
|
|
333
|
+
- `docs/ci.md` - CI pipeline guide
|
|
334
|
+
- `docs/ci-secrets-checklist.md` - Required secrets
|
|
335
|
+
- Inline comments in CI configuration
|
|
336
|
+
|
|
337
|
+
5. **Optimization Features**
|
|
338
|
+
- Dependency caching (npm, browser binaries)
|
|
339
|
+
- Parallel sharding (4 jobs default)
|
|
340
|
+
- Retry logic (2 retries on failure)
|
|
341
|
+
- Failure-only artifact upload
|
|
342
|
+
|
|
343
|
+
### Performance Targets
|
|
344
|
+
|
|
345
|
+
- **Lint stage**: <2 minutes
|
|
346
|
+
- **Test stage** (per shard): <10 minutes
|
|
347
|
+
- **Burn-in stage**: <30 minutes (10 iterations)
|
|
348
|
+
- **Total pipeline**: <45 minutes
|
|
349
|
+
|
|
350
|
+
**Speedup:** 20× faster than sequential execution through parallelism and caching.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Important Notes
|
|
355
|
+
|
|
356
|
+
### Knowledge Base Integration
|
|
357
|
+
|
|
358
|
+
**Critical:** Check configuration and load appropriate fragments.
|
|
359
|
+
|
|
360
|
+
Read `{config_source}` and check `config.tea_use_playwright_utils`.
|
|
361
|
+
|
|
362
|
+
**Core CI Patterns (Always load):**
|
|
363
|
+
|
|
364
|
+
- `ci-burn-in.md` - Burn-in loop patterns: 10-iteration detection, GitHub Actions workflow, shard orchestration, selective execution (678 lines, 4 examples)
|
|
365
|
+
- `selective-testing.md` - Changed test detection strategies: tag-based, spec filters, diff-based selection, promotion rules (727 lines, 4 examples)
|
|
366
|
+
- `visual-debugging.md` - Artifact collection best practices: trace viewer, HAR recording, custom artifacts, accessibility integration (522 lines, 5 examples)
|
|
367
|
+
- `test-quality.md` - CI-specific test quality criteria: deterministic tests, isolated with cleanup, explicit assertions, length/time optimization (658 lines, 5 examples)
|
|
368
|
+
- `playwright-config.md` - CI-optimized configuration: parallelization, artifact output, project dependencies, sharding (722 lines, 5 examples)
|
|
369
|
+
|
|
370
|
+
**If `config.tea_use_playwright_utils: true`:**
|
|
371
|
+
|
|
372
|
+
Load playwright-utils CI-relevant fragments:
|
|
373
|
+
|
|
374
|
+
- `burn-in.md` - Smart test selection with git diff analysis (very important for CI optimization)
|
|
375
|
+
- `network-error-monitor.md` - Automatic HTTP 4xx/5xx detection (recommend in CI pipelines)
|
|
376
|
+
|
|
377
|
+
Recommend:
|
|
378
|
+
|
|
379
|
+
- Add burn-in script for pull request validation
|
|
380
|
+
- Enable network-error-monitor in merged fixtures for catching silent failures
|
|
381
|
+
- Reference full docs in `*framework` and `*automate` workflows
|
|
382
|
+
|
|
383
|
+
### CI Platform-Specific Guidance
|
|
384
|
+
|
|
385
|
+
**GitHub Actions:**
|
|
386
|
+
|
|
387
|
+
- Use `actions/cache` for caching
|
|
388
|
+
- Matrix strategy for parallelism
|
|
389
|
+
- Secrets in repository settings
|
|
390
|
+
- Free 2000 minutes/month for private repos
|
|
391
|
+
|
|
392
|
+
**GitLab CI:**
|
|
393
|
+
|
|
394
|
+
- Use `.gitlab-ci.yml` in root
|
|
395
|
+
- `cache:` directive for caching
|
|
396
|
+
- Parallel execution with `parallel: 4`
|
|
397
|
+
- Variables in project CI/CD settings
|
|
398
|
+
|
|
399
|
+
**Circle CI:**
|
|
400
|
+
|
|
401
|
+
- Use `.circleci/config.yml`
|
|
402
|
+
- Docker executors recommended
|
|
403
|
+
- Parallelism with `parallelism: 4`
|
|
404
|
+
- Context for shared secrets
|
|
405
|
+
|
|
406
|
+
### Burn-In Loop Strategy
|
|
407
|
+
|
|
408
|
+
**When to run:**
|
|
409
|
+
|
|
410
|
+
- ✅ On PRs to main/develop branches
|
|
411
|
+
- ✅ Weekly on schedule (cron)
|
|
412
|
+
- ✅ After test infrastructure changes
|
|
413
|
+
- ❌ Not on every commit (too slow)
|
|
414
|
+
|
|
415
|
+
**Iterations:**
|
|
416
|
+
|
|
417
|
+
- **10 iterations** for thorough detection
|
|
418
|
+
- **3 iterations** for quick feedback
|
|
419
|
+
- **100 iterations** for high-confidence stability
|
|
420
|
+
|
|
421
|
+
**Failure threshold:**
|
|
422
|
+
|
|
423
|
+
- Even ONE failure in burn-in → tests are flaky
|
|
424
|
+
- Must fix before merging
|
|
425
|
+
|
|
426
|
+
### Artifact Retention
|
|
427
|
+
|
|
428
|
+
**Failure artifacts only:**
|
|
429
|
+
|
|
430
|
+
- Saves storage costs
|
|
431
|
+
- Maintains debugging capability
|
|
432
|
+
- 30-day retention default
|
|
433
|
+
|
|
434
|
+
**Artifact types:**
|
|
435
|
+
|
|
436
|
+
- Traces (Playwright) - 5-10 MB per test
|
|
437
|
+
- Screenshots - 100-500 KB per screenshot
|
|
438
|
+
- Videos - 2-5 MB per test
|
|
439
|
+
- HTML reports - 1-2 MB per run
|
|
440
|
+
|
|
441
|
+
### Selective Testing
|
|
442
|
+
|
|
443
|
+
**Detect changed files:**
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
git diff --name-only HEAD~1
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
**Run affected tests only:**
|
|
450
|
+
|
|
451
|
+
- Faster feedback for small changes
|
|
452
|
+
- Full suite still runs on main branch
|
|
453
|
+
- Reduces CI time by 50-80% for focused PRs
|
|
454
|
+
|
|
455
|
+
**Trade-off:**
|
|
456
|
+
|
|
457
|
+
- May miss integration issues
|
|
458
|
+
- Run full suite at least on merge
|
|
459
|
+
|
|
460
|
+
### Local CI Mirror
|
|
461
|
+
|
|
462
|
+
**Purpose:** Debug CI failures locally
|
|
463
|
+
|
|
464
|
+
**Usage:**
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
./scripts/ci-local.sh
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
**Mirrors CI environment:**
|
|
471
|
+
|
|
472
|
+
- Same Node version
|
|
473
|
+
- Same test command
|
|
474
|
+
- Same stages (lint → test → burn-in)
|
|
475
|
+
- Reduced burn-in iterations (3 vs 10)
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## Output Summary
|
|
480
|
+
|
|
481
|
+
After completing this workflow, provide a summary:
|
|
482
|
+
|
|
483
|
+
```markdown
|
|
484
|
+
## CI/CD Pipeline Complete
|
|
485
|
+
|
|
486
|
+
**Platform**: GitHub Actions (or GitLab CI, etc.)
|
|
487
|
+
|
|
488
|
+
**Artifacts Created**:
|
|
489
|
+
|
|
490
|
+
- ✅ Pipeline configuration: .github/workflows/test.yml
|
|
491
|
+
- ✅ Burn-in loop: 10 iterations for flaky detection
|
|
492
|
+
- ✅ Parallel sharding: 4 jobs for fast execution
|
|
493
|
+
- ✅ Caching: Dependencies + browser binaries
|
|
494
|
+
- ✅ Artifact collection: Failure-only traces/screenshots/videos
|
|
495
|
+
- ✅ Helper scripts: test-changed.sh, ci-local.sh, burn-in.sh
|
|
496
|
+
- ✅ Documentation: docs/ci.md, docs/ci-secrets-checklist.md
|
|
497
|
+
|
|
498
|
+
**Performance:**
|
|
499
|
+
|
|
500
|
+
- Lint: <2 min
|
|
501
|
+
- Test (per shard): <10 min
|
|
502
|
+
- Burn-in: <30 min
|
|
503
|
+
- Total: <45 min (20× speedup vs sequential)
|
|
504
|
+
|
|
505
|
+
**Next Steps**:
|
|
506
|
+
|
|
507
|
+
1. Commit CI configuration: `git add .github/workflows/test.yml && git commit -m "ci: add test pipeline"`
|
|
508
|
+
2. Push to remote: `git push`
|
|
509
|
+
3. Configure required secrets in CI platform settings (see docs/ci-secrets-checklist.md)
|
|
510
|
+
4. Open a PR to trigger first CI run
|
|
511
|
+
5. Monitor pipeline execution and adjust parallelism if needed
|
|
512
|
+
|
|
513
|
+
**Knowledge Base References Applied**:
|
|
514
|
+
|
|
515
|
+
- Burn-in loop pattern (ci-burn-in.md)
|
|
516
|
+
- Selective testing strategy (selective-testing.md)
|
|
517
|
+
- Artifact collection (visual-debugging.md)
|
|
518
|
+
- Test quality criteria (test-quality.md)
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
## Validation
|
|
524
|
+
|
|
525
|
+
After completing all steps, verify:
|
|
526
|
+
|
|
527
|
+
- [ ] CI configuration file created and syntactically valid
|
|
528
|
+
- [ ] Burn-in loop configured (10 iterations)
|
|
529
|
+
- [ ] Parallel sharding enabled (4 jobs)
|
|
530
|
+
- [ ] Caching configured (dependencies + browsers)
|
|
531
|
+
- [ ] Artifact collection on failure only
|
|
532
|
+
- [ ] Helper scripts created and executable (`chmod +x`)
|
|
533
|
+
- [ ] Documentation complete (ci.md, secrets checklist)
|
|
534
|
+
- [ ] No errors or warnings during scaffold
|
|
535
|
+
|
|
536
|
+
Refer to `checklist.md` for comprehensive validation criteria.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Test Architect workflow: ci
|
|
2
|
+
name: testarch-ci
|
|
3
|
+
description: "Scaffold CI/CD quality pipeline with test execution, burn-in loops, and artifact collection"
|
|
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/ci"
|
|
16
|
+
instructions: "{installed_path}/instructions.md"
|
|
17
|
+
validation: "{installed_path}/checklist.md"
|
|
18
|
+
|
|
19
|
+
# Variables and inputs
|
|
20
|
+
variables:
|
|
21
|
+
ci_platform: "auto" # auto, github-actions, gitlab-ci, circle-ci, jenkins - user can override
|
|
22
|
+
test_dir: "{project-root}/tests" # Root test directory
|
|
23
|
+
|
|
24
|
+
# Output configuration
|
|
25
|
+
default_output_file: "{project-root}/.github/workflows/test.yml" # GitHub Actions default
|
|
26
|
+
|
|
27
|
+
# Required tools
|
|
28
|
+
required_tools:
|
|
29
|
+
- read_file # Read .nvmrc, package.json, framework config
|
|
30
|
+
- write_file # Create CI config, scripts, documentation
|
|
31
|
+
- create_directory # Create .github/workflows/ or .gitlab-ci/ directories
|
|
32
|
+
- list_files # Detect existing CI configuration
|
|
33
|
+
- search_repo # Find test files for selective testing
|
|
34
|
+
|
|
35
|
+
tags:
|
|
36
|
+
- qa
|
|
37
|
+
- ci-cd
|
|
38
|
+
- test-architect
|
|
39
|
+
- pipeline
|
|
40
|
+
- automation
|
|
41
|
+
|
|
42
|
+
execution_hints:
|
|
43
|
+
interactive: false # Minimize prompts, auto-detect when possible
|
|
44
|
+
autonomous: true # Proceed without user input unless blocked
|
|
45
|
+
iterative: true
|