bmm-opencode 1.4.3 → 1.6.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/.opencode/agents/bmad-bmad-master.md +21 -1
- package/.opencode/agents/bmm-analyst.md +20 -0
- package/.opencode/agents/bmm-architect.md +20 -0
- package/.opencode/agents/bmm-dev.md +20 -0
- package/.opencode/agents/bmm-pm.md +20 -0
- package/.opencode/agents/bmm-qa.md +20 -0
- package/.opencode/agents/bmm-quick-flow-solo-dev.md +20 -0
- package/.opencode/agents/bmm-sm.md +20 -0
- package/.opencode/agents/bmm-tech-writer.md +20 -0
- package/.opencode/agents/bmm-ux-designer.md +20 -0
- package/_bmad/_config/agent-manifest.csv +18 -0
- package/_bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-architect.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-dev.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-pm.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-qa.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-sm.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
- package/_bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
- package/_bmad/_config/agents/cis-brainstorming-coach.customize.yaml +41 -0
- package/_bmad/_config/agents/cis-creative-problem-solver.customize.yaml +41 -0
- package/_bmad/_config/agents/cis-design-thinking-coach.customize.yaml +41 -0
- package/_bmad/_config/agents/cis-innovation-strategist.customize.yaml +41 -0
- package/_bmad/_config/agents/cis-presentation-master.customize.yaml +41 -0
- package/_bmad/_config/agents/cis-storyteller.customize.yaml +41 -0
- package/_bmad/_config/agents/core-bmad-master.customize.yaml +41 -0
- package/_bmad/_config/agents/tea-tea.customize.yaml +41 -0
- package/_bmad/_config/bmad-help.csv +53 -0
- package/_bmad/_config/files-manifest.csv +443 -0
- package/_bmad/_config/manifest.yaml +34 -0
- package/_bmad/_config/task-manifest.csv +7 -0
- package/_bmad/_config/tool-manifest.csv +1 -0
- package/_bmad/_config/workflow-manifest.csv +39 -0
- package/_bmad/_memory/config.yaml +11 -0
- package/_bmad/_memory/storyteller-sidecar/stories-told.md +7 -0
- package/_bmad/_memory/storyteller-sidecar/story-preferences.md +7 -0
- package/_bmad/_memory/tech-writer-sidecar/documentation-standards.md +224 -0
- package/_bmad/bmm/agents/analyst.md +78 -0
- package/_bmad/bmm/agents/architect.md +58 -0
- package/_bmad/bmm/agents/dev.md +69 -0
- package/_bmad/bmm/agents/pm.md +72 -0
- package/_bmad/bmm/agents/qa.md +92 -0
- package/_bmad/bmm/agents/quick-flow-solo-dev.md +69 -0
- package/_bmad/bmm/agents/sm.md +70 -0
- package/_bmad/bmm/agents/tech-writer/tech-writer.md +70 -0
- package/_bmad/bmm/agents/ux-designer.md +57 -0
- package/_bmad/bmm/config.yaml +16 -0
- package/_bmad/bmm/data/project-context-template.md +26 -0
- package/_bmad/bmm/module-help.csv +31 -0
- package/_bmad/bmm/teams/default-party.csv +20 -0
- package/_bmad/bmm/teams/team-fullstack.yaml +12 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
- package/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
- package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
- package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
- package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
- package/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
- package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
- package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
- package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
- package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
- package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
- package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
- package/_bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
- package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
- package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
- package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
- package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
- package/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
- package/_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
- package/_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
- package/_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +65 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
- package/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
- package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
- package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
- package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +282 -0
- package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
- package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +63 -0
- package/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
- package/_bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
- package/_bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
- package/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +48 -0
- package/_bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
- package/_bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
- package/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +56 -0
- package/_bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
- package/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
- package/_bmad/bmm/workflows/4-implementation/create-story/template.md +50 -0
- package/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +57 -0
- package/_bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
- package/_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
- package/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +23 -0
- package/_bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
- package/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +55 -0
- package/_bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/_bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +265 -0
- package/_bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +81 -0
- package/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +51 -0
- package/_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
- package/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +30 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
- package/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +78 -0
- package/_bmad/bmm/workflows/document-project/checklist.md +245 -0
- package/_bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/_bmad/bmm/workflows/document-project/instructions.md +221 -0
- package/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/_bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/_bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/_bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/_bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/_bmad/bmm/workflows/document-project/workflow.yaml +22 -0
- package/_bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/_bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/_bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/_bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/_bmad/bmm/workflows/generate-project-context/project-context-template.md +21 -0
- package/_bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
- package/_bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
- package/_bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
- package/_bmad/bmm/workflows/generate-project-context/workflow.md +49 -0
- package/_bmad/bmm/workflows/qa/automate/checklist.md +33 -0
- package/_bmad/bmm/workflows/qa/automate/instructions.md +110 -0
- package/_bmad/bmm/workflows/qa/automate/workflow.yaml +47 -0
- package/_bmad/cis/agents/brainstorming-coach.md +61 -0
- package/_bmad/cis/agents/creative-problem-solver.md +61 -0
- package/_bmad/cis/agents/design-thinking-coach.md +61 -0
- package/_bmad/cis/agents/innovation-strategist.md +61 -0
- package/_bmad/cis/agents/presentation-master.md +67 -0
- package/_bmad/cis/agents/storyteller/storyteller.md +58 -0
- package/_bmad/cis/config.yaml +12 -0
- package/_bmad/cis/module-help.csv +6 -0
- package/_bmad/cis/teams/creative-squad.yaml +7 -0
- package/_bmad/cis/teams/default-party.csv +12 -0
- package/_bmad/cis/workflows/README.md +139 -0
- package/_bmad/cis/workflows/design-thinking/README.md +56 -0
- package/_bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
- package/_bmad/cis/workflows/design-thinking/instructions.md +202 -0
- package/_bmad/cis/workflows/design-thinking/template.md +111 -0
- package/_bmad/cis/workflows/design-thinking/workflow.yaml +27 -0
- package/_bmad/cis/workflows/innovation-strategy/README.md +56 -0
- package/_bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
- package/_bmad/cis/workflows/innovation-strategy/instructions.md +276 -0
- package/_bmad/cis/workflows/innovation-strategy/template.md +189 -0
- package/_bmad/cis/workflows/innovation-strategy/workflow.yaml +27 -0
- package/_bmad/cis/workflows/problem-solving/README.md +56 -0
- package/_bmad/cis/workflows/problem-solving/instructions.md +252 -0
- package/_bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
- package/_bmad/cis/workflows/problem-solving/template.md +165 -0
- package/_bmad/cis/workflows/problem-solving/workflow.yaml +27 -0
- package/_bmad/cis/workflows/storytelling/README.md +58 -0
- package/_bmad/cis/workflows/storytelling/instructions.md +293 -0
- package/_bmad/cis/workflows/storytelling/story-types.csv +26 -0
- package/_bmad/cis/workflows/storytelling/template.md +113 -0
- package/_bmad/cis/workflows/storytelling/workflow.yaml +27 -0
- package/_bmad/core/agents/bmad-master.md +56 -0
- package/_bmad/core/config.yaml +9 -0
- package/_bmad/core/module-help.csv +9 -0
- package/_bmad/core/tasks/editorial-review-prose.xml +102 -0
- package/_bmad/core/tasks/editorial-review-structure.xml +209 -0
- package/_bmad/core/tasks/help.md +82 -0
- package/_bmad/core/tasks/index-docs.xml +65 -0
- package/_bmad/core/tasks/review-adversarial-general.xml +48 -0
- package/_bmad/core/tasks/shard-doc.xml +108 -0
- package/_bmad/core/tasks/workflow.xml +235 -0
- package/_bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
- package/_bmad/core/workflows/advanced-elicitation/workflow.xml +117 -0
- package/_bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
- package/_bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
- package/_bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
- package/_bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
- package/_bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
- package/_bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
- package/_bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
- package/_bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
- package/_bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
- package/_bmad/core/workflows/brainstorming/template.md +15 -0
- package/_bmad/core/workflows/brainstorming/workflow.md +58 -0
- package/_bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
- package/_bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +261 -0
- package/_bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +166 -0
- package/_bmad/core/workflows/party-mode/workflow.md +219 -0
- package/_bmad/tea/agents/tea.md +71 -0
- package/_bmad/tea/config.yaml +19 -0
- package/_bmad/tea/module-help.csv +10 -0
- package/_bmad/tea/teams/default-party.csv +2 -0
- package/_bmad/tea/testarch/knowledge/adr-quality-readiness-checklist.md +377 -0
- package/_bmad/tea/testarch/knowledge/api-request.md +442 -0
- package/_bmad/tea/testarch/knowledge/api-testing-patterns.md +851 -0
- package/_bmad/tea/testarch/knowledge/auth-session.md +548 -0
- package/_bmad/tea/testarch/knowledge/burn-in.md +273 -0
- package/_bmad/tea/testarch/knowledge/ci-burn-in.md +675 -0
- package/_bmad/tea/testarch/knowledge/component-tdd.md +486 -0
- package/_bmad/tea/testarch/knowledge/contract-testing.md +957 -0
- package/_bmad/tea/testarch/knowledge/data-factories.md +500 -0
- package/_bmad/tea/testarch/knowledge/email-auth.md +721 -0
- package/_bmad/tea/testarch/knowledge/error-handling.md +725 -0
- package/_bmad/tea/testarch/knowledge/feature-flags.md +750 -0
- package/_bmad/tea/testarch/knowledge/file-utils.md +456 -0
- package/_bmad/tea/testarch/knowledge/fixture-architecture.md +401 -0
- package/_bmad/tea/testarch/knowledge/fixtures-composition.md +382 -0
- package/_bmad/tea/testarch/knowledge/intercept-network-call.md +426 -0
- package/_bmad/tea/testarch/knowledge/log.md +426 -0
- package/_bmad/tea/testarch/knowledge/network-error-monitor.md +401 -0
- package/_bmad/tea/testarch/knowledge/network-first.md +486 -0
- package/_bmad/tea/testarch/knowledge/network-recorder.md +527 -0
- package/_bmad/tea/testarch/knowledge/nfr-criteria.md +670 -0
- package/_bmad/tea/testarch/knowledge/overview.md +286 -0
- package/_bmad/tea/testarch/knowledge/playwright-config.md +730 -0
- package/_bmad/tea/testarch/knowledge/probability-impact.md +601 -0
- package/_bmad/tea/testarch/knowledge/recurse.md +421 -0
- package/_bmad/tea/testarch/knowledge/risk-governance.md +615 -0
- package/_bmad/tea/testarch/knowledge/selective-testing.md +732 -0
- package/_bmad/tea/testarch/knowledge/selector-resilience.md +527 -0
- package/_bmad/tea/testarch/knowledge/test-healing-patterns.md +644 -0
- package/_bmad/tea/testarch/knowledge/test-levels-framework.md +473 -0
- package/_bmad/tea/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/_bmad/tea/testarch/knowledge/test-quality.md +664 -0
- package/_bmad/tea/testarch/knowledge/timing-debugging.md +372 -0
- package/_bmad/tea/testarch/knowledge/visual-debugging.md +524 -0
- package/_bmad/tea/testarch/tea-index.csv +35 -0
- package/_bmad/tea/workflows/testarch/README.md +74 -0
- package/_bmad/tea/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
- package/_bmad/tea/workflows/testarch/atdd/checklist.md +374 -0
- package/_bmad/tea/workflows/testarch/atdd/instructions.md +38 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +110 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +79 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +76 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +228 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04a-subprocess-api-failing.md +215 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04b-subprocess-e2e-failing.md +212 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +329 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +68 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/atdd/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/atdd/validation-report-20260127-095021.md +73 -0
- package/_bmad/tea/workflows/testarch/atdd/validation-report-20260127-102401.md +116 -0
- package/_bmad/tea/workflows/testarch/atdd/workflow-plan.md +21 -0
- package/_bmad/tea/workflows/testarch/atdd/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/atdd/workflow.yaml +45 -0
- package/_bmad/tea/workflows/testarch/automate/checklist.md +582 -0
- package/_bmad/tea/workflows/testarch/automate/instructions.md +43 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +127 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-02-identify-targets.md +95 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-03-generate-tests.md +199 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-03a-subprocess-api.md +183 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-03b-subprocess-e2e.md +181 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-03c-aggregate.md +300 -0
- package/_bmad/tea/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +69 -0
- package/_bmad/tea/workflows/testarch/automate/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/automate/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/automate/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/automate/validation-report-20260127-095021.md +72 -0
- package/_bmad/tea/workflows/testarch/automate/validation-report-20260127-102401.md +114 -0
- package/_bmad/tea/workflows/testarch/automate/workflow-plan.md +20 -0
- package/_bmad/tea/workflows/testarch/automate/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/automate/workflow.yaml +52 -0
- package/_bmad/tea/workflows/testarch/ci/checklist.md +247 -0
- package/_bmad/tea/workflows/testarch/ci/github-actions-template.yaml +198 -0
- package/_bmad/tea/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
- package/_bmad/tea/workflows/testarch/ci/instructions.md +38 -0
- package/_bmad/tea/workflows/testarch/ci/steps-c/step-01-preflight.md +92 -0
- package/_bmad/tea/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +82 -0
- package/_bmad/tea/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +75 -0
- package/_bmad/tea/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +67 -0
- package/_bmad/tea/workflows/testarch/ci/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/ci/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/ci/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/ci/validation-report-20260127-095021.md +72 -0
- package/_bmad/tea/workflows/testarch/ci/validation-report-20260127-102401.md +114 -0
- package/_bmad/tea/workflows/testarch/ci/workflow-plan.md +20 -0
- package/_bmad/tea/workflows/testarch/ci/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/ci/workflow.yaml +45 -0
- package/_bmad/tea/workflows/testarch/framework/checklist.md +320 -0
- package/_bmad/tea/workflows/testarch/framework/instructions.md +38 -0
- package/_bmad/tea/workflows/testarch/framework/steps-c/step-01-preflight.md +75 -0
- package/_bmad/tea/workflows/testarch/framework/steps-c/step-02-select-framework.md +73 -0
- package/_bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +120 -0
- package/_bmad/tea/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +70 -0
- package/_bmad/tea/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +68 -0
- package/_bmad/tea/workflows/testarch/framework/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/framework/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/framework/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md +73 -0
- package/_bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md +116 -0
- package/_bmad/tea/workflows/testarch/framework/workflow-plan.md +22 -0
- package/_bmad/tea/workflows/testarch/framework/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/framework/workflow.yaml +47 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/checklist.md +407 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/instructions.md +36 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/nfr-report-template.md +462 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +85 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +82 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +64 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +140 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04a-subprocess-security.md +138 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04b-subprocess-performance.md +84 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04c-subprocess-reliability.md +85 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04d-subprocess-scalability.md +88 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +219 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +71 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +73 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +116 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/workflow-plan.md +19 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/nfr-assess/workflow.yaml +47 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/checklist.md +197 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/data/curriculum.yaml +129 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/data/quiz-questions.yaml +206 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/data/role-paths.yaml +136 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/data/session-content-map.yaml +204 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/data/tea-resources-index.yaml +359 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/instructions.md +130 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01-init.md +235 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01b-continue.md +147 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-02-assess.md +258 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-03-session-menu.md +219 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-01.md +460 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-02.md +465 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-03.md +301 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-04.md +234 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-05.md +234 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-06.md +209 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-07.md +212 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-05-completion.md +339 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-01-assess-workflow.md +141 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-02-apply-edits.md +122 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/steps-v/step-v-01-validate.md +263 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/templates/certificate-template.md +86 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/templates/progress-template.yaml +95 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/templates/session-notes-template.md +83 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/workflow-plan-teach-me-testing.md +950 -0
- package/_bmad/tea/workflows/testarch/teach-me-testing/workflow.md +90 -0
- package/_bmad/tea/workflows/testarch/test-design/checklist.md +410 -0
- package/_bmad/tea/workflows/testarch/test-design/instructions.md +52 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +109 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-c/step-02-load-context.md +127 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +85 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +98 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-c/step-05-generate-output.md +97 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/test-design/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/test-design/test-design-architecture-template.md +222 -0
- package/_bmad/tea/workflows/testarch/test-design/test-design-qa-template.md +296 -0
- package/_bmad/tea/workflows/testarch/test-design/test-design-template.md +294 -0
- package/_bmad/tea/workflows/testarch/test-design/validation-report-20260127-095021.md +73 -0
- package/_bmad/tea/workflows/testarch/test-design/validation-report-20260127-102401.md +116 -0
- package/_bmad/tea/workflows/testarch/test-design/workflow-plan.md +22 -0
- package/_bmad/tea/workflows/testarch/test-design/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/test-design/workflow.yaml +69 -0
- package/_bmad/tea/workflows/testarch/test-review/checklist.md +472 -0
- package/_bmad/tea/workflows/testarch/test-review/instructions.md +36 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-01-load-context.md +101 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +69 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +184 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03a-subprocess-determinism.md +214 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03b-subprocess-isolation.md +125 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md +102 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03d-subprocess-coverage.md +111 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03e-subprocess-performance.md +117 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +246 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-c/step-04-generate-report.md +72 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/test-review/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/test-review/test-review-template.md +390 -0
- package/_bmad/tea/workflows/testarch/test-review/validation-report-20260127-095021.md +72 -0
- package/_bmad/tea/workflows/testarch/test-review/validation-report-20260127-102401.md +114 -0
- package/_bmad/tea/workflows/testarch/test-review/workflow-plan.md +18 -0
- package/_bmad/tea/workflows/testarch/test-review/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/test-review/workflow.yaml +46 -0
- package/_bmad/tea/workflows/testarch/trace/checklist.md +642 -0
- package/_bmad/tea/workflows/testarch/trace/instructions.md +36 -0
- package/_bmad/tea/workflows/testarch/trace/steps-c/step-01-load-context.md +80 -0
- package/_bmad/tea/workflows/testarch/trace/steps-c/step-02-discover-tests.md +69 -0
- package/_bmad/tea/workflows/testarch/trace/steps-c/step-03-map-criteria.md +65 -0
- package/_bmad/tea/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +244 -0
- package/_bmad/tea/workflows/testarch/trace/steps-c/step-05-gate-decision.md +232 -0
- package/_bmad/tea/workflows/testarch/trace/steps-e/step-01-assess.md +65 -0
- package/_bmad/tea/workflows/testarch/trace/steps-e/step-02-apply-edit.md +60 -0
- package/_bmad/tea/workflows/testarch/trace/steps-v/step-01-validate.md +67 -0
- package/_bmad/tea/workflows/testarch/trace/trace-template.md +675 -0
- package/_bmad/tea/workflows/testarch/trace/validation-report-20260127-095021.md +73 -0
- package/_bmad/tea/workflows/testarch/trace/validation-report-20260127-102401.md +116 -0
- package/_bmad/tea/workflows/testarch/trace/workflow-plan.md +21 -0
- package/_bmad/tea/workflows/testarch/trace/workflow.md +39 -0
- package/_bmad/tea/workflows/testarch/trace/workflow.yaml +55 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +201 -11
- package/package.json +2 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03-quality-evaluation'
|
|
3
|
+
description: 'Orchestrate parallel quality dimension checks (5 subprocesses)'
|
|
4
|
+
nextStepFile: './step-03f-aggregate-scores.md'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Step 3: Orchestrate Parallel Quality Evaluation
|
|
8
|
+
|
|
9
|
+
## STEP GOAL
|
|
10
|
+
|
|
11
|
+
Launch 5 parallel subprocesses to evaluate independent quality dimensions simultaneously for maximum performance.
|
|
12
|
+
|
|
13
|
+
## MANDATORY EXECUTION RULES
|
|
14
|
+
|
|
15
|
+
- 📖 Read the entire step file before acting
|
|
16
|
+
- ✅ Speak in `{communication_language}`
|
|
17
|
+
- ✅ Launch FIVE subprocesses in PARALLEL
|
|
18
|
+
- ✅ Wait for ALL subprocesses to complete
|
|
19
|
+
- ❌ Do NOT evaluate quality sequentially (use subprocesses)
|
|
20
|
+
- ❌ Do NOT proceed until all subprocesses finish
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## EXECUTION PROTOCOLS:
|
|
25
|
+
|
|
26
|
+
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
27
|
+
- 💾 Wait for subprocess outputs
|
|
28
|
+
- 📖 Load the next step only when instructed
|
|
29
|
+
|
|
30
|
+
## CONTEXT BOUNDARIES:
|
|
31
|
+
|
|
32
|
+
- Available context: test files from Step 2, knowledge fragments
|
|
33
|
+
- Focus: subprocess orchestration only
|
|
34
|
+
- Limits: do not evaluate quality directly (delegate to subprocesses)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## MANDATORY SEQUENCE
|
|
39
|
+
|
|
40
|
+
### 1. Prepare Subprocess Inputs
|
|
41
|
+
|
|
42
|
+
**Generate unique timestamp:**
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Prepare context for all subprocesses:**
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
const subprocessContext = {
|
|
52
|
+
test_files: /* from Step 2 */,
|
|
53
|
+
knowledge_fragments_loaded: ['test-quality'],
|
|
54
|
+
timestamp: timestamp
|
|
55
|
+
};
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
### 2. Launch 5 Parallel Quality Subprocesses
|
|
61
|
+
|
|
62
|
+
**Subprocess A: Determinism Check**
|
|
63
|
+
|
|
64
|
+
- File: `./step-03a-subprocess-determinism.md`
|
|
65
|
+
- Output: `/tmp/tea-test-review-determinism-${timestamp}.json`
|
|
66
|
+
- Status: Running in parallel... ⟳
|
|
67
|
+
|
|
68
|
+
**Subprocess B: Isolation Check**
|
|
69
|
+
|
|
70
|
+
- File: `./step-03b-subprocess-isolation.md`
|
|
71
|
+
- Output: `/tmp/tea-test-review-isolation-${timestamp}.json`
|
|
72
|
+
- Status: Running in parallel... ⟳
|
|
73
|
+
|
|
74
|
+
**Subprocess C: Maintainability Check**
|
|
75
|
+
|
|
76
|
+
- File: `./step-03c-subprocess-maintainability.md`
|
|
77
|
+
- Output: `/tmp/tea-test-review-maintainability-${timestamp}.json`
|
|
78
|
+
- Status: Running in parallel... ⟳
|
|
79
|
+
|
|
80
|
+
**Subprocess D: Coverage Check**
|
|
81
|
+
|
|
82
|
+
- File: `./step-03d-subprocess-coverage.md`
|
|
83
|
+
- Output: `/tmp/tea-test-review-coverage-${timestamp}.json`
|
|
84
|
+
- Status: Running in parallel... ⟳
|
|
85
|
+
|
|
86
|
+
**Subprocess E: Performance Check**
|
|
87
|
+
|
|
88
|
+
- File: `./step-03e-subprocess-performance.md`
|
|
89
|
+
- Output: `/tmp/tea-test-review-performance-${timestamp}.json`
|
|
90
|
+
- Status: Running in parallel... ⟳
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### 3. Wait for All Subprocesses
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
⏳ Waiting for 5 quality subprocesses to complete...
|
|
98
|
+
├── Subprocess A (Determinism): Running... ⟳
|
|
99
|
+
├── Subprocess B (Isolation): Running... ⟳
|
|
100
|
+
├── Subprocess C (Maintainability): Running... ⟳
|
|
101
|
+
├── Subprocess D (Coverage): Running... ⟳
|
|
102
|
+
└── Subprocess E (Performance): Running... ⟳
|
|
103
|
+
|
|
104
|
+
[... time passes ...]
|
|
105
|
+
|
|
106
|
+
├── Subprocess A (Determinism): Complete ✅
|
|
107
|
+
├── Subprocess B (Isolation): Complete ✅
|
|
108
|
+
├── Subprocess C (Maintainability): Complete ✅
|
|
109
|
+
├── Subprocess D (Coverage): Complete ✅
|
|
110
|
+
└── Subprocess E (Performance): Complete ✅
|
|
111
|
+
|
|
112
|
+
✅ All 5 quality subprocesses completed successfully!
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### 4. Verify All Outputs Exist
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
const outputs = ['determinism', 'isolation', 'maintainability', 'coverage', 'performance'].map(
|
|
121
|
+
(dim) => `/tmp/tea-test-review-${dim}-${timestamp}.json`,
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
outputs.forEach((output) => {
|
|
125
|
+
if (!fs.existsSync(output)) {
|
|
126
|
+
throw new Error(`Subprocess output missing: ${output}`);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### 5. Performance Report
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
🚀 Performance Report:
|
|
137
|
+
- Execution Mode: PARALLEL (5 subprocesses)
|
|
138
|
+
- Total Elapsed: ~max(all subprocesses) minutes
|
|
139
|
+
- Sequential Would Take: ~sum(all subprocesses) minutes
|
|
140
|
+
- Performance Gain: ~60-70% faster!
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### 6. Proceed to Aggregation
|
|
146
|
+
|
|
147
|
+
Load next step: `{nextStepFile}`
|
|
148
|
+
|
|
149
|
+
The aggregation step (3F) will:
|
|
150
|
+
|
|
151
|
+
- Read all 5 subprocess outputs
|
|
152
|
+
- Calculate weighted overall score (0-100)
|
|
153
|
+
- Aggregate violations by severity
|
|
154
|
+
- Generate review report with top suggestions
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## EXIT CONDITION
|
|
159
|
+
|
|
160
|
+
Proceed to Step 3F when:
|
|
161
|
+
|
|
162
|
+
- ✅ All 5 subprocesses completed successfully
|
|
163
|
+
- ✅ All output files exist and are valid JSON
|
|
164
|
+
- ✅ Performance metrics displayed
|
|
165
|
+
|
|
166
|
+
**Do NOT proceed if any subprocess failed.**
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 🚨 SYSTEM SUCCESS METRICS
|
|
171
|
+
|
|
172
|
+
### ✅ SUCCESS:
|
|
173
|
+
|
|
174
|
+
- All 5 subprocesses launched and completed
|
|
175
|
+
- Output files generated and valid
|
|
176
|
+
- Parallel execution achieved ~60% performance gain
|
|
177
|
+
|
|
178
|
+
### ❌ FAILURE:
|
|
179
|
+
|
|
180
|
+
- One or more subprocesses failed
|
|
181
|
+
- Output files missing or invalid
|
|
182
|
+
- Sequential evaluation instead of parallel
|
|
183
|
+
|
|
184
|
+
**Master Rule:** Parallel subprocess execution is MANDATORY for performance.
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03a-subprocess-determinism'
|
|
3
|
+
description: 'Subprocess: Check test determinism (no random/time dependencies)'
|
|
4
|
+
subprocess: true
|
|
5
|
+
outputFile: '/tmp/tea-test-review-determinism-{{timestamp}}.json'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Subprocess 3A: Determinism Quality Check
|
|
9
|
+
|
|
10
|
+
## SUBPROCESS CONTEXT
|
|
11
|
+
|
|
12
|
+
This is an **isolated subprocess** running in parallel with other quality dimension checks.
|
|
13
|
+
|
|
14
|
+
**What you have from parent workflow:**
|
|
15
|
+
|
|
16
|
+
- Test files discovered in Step 2
|
|
17
|
+
- Knowledge fragment: test-quality (determinism criteria)
|
|
18
|
+
- Config: test framework
|
|
19
|
+
|
|
20
|
+
**Your task:** Analyze test files for DETERMINISM violations only.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## MANDATORY EXECUTION RULES
|
|
25
|
+
|
|
26
|
+
- 📖 Read this entire subprocess file before acting
|
|
27
|
+
- ✅ Check DETERMINISM only (not other quality dimensions)
|
|
28
|
+
- ✅ Output structured JSON to temp file
|
|
29
|
+
- ❌ Do NOT check isolation, maintainability, coverage, or performance (other subprocesses)
|
|
30
|
+
- ❌ Do NOT modify test files (read-only analysis)
|
|
31
|
+
- ❌ Do NOT run tests (just analyze code)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## SUBPROCESS TASK
|
|
36
|
+
|
|
37
|
+
### 1. Identify Determinism Violations
|
|
38
|
+
|
|
39
|
+
**Scan test files for non-deterministic patterns:**
|
|
40
|
+
|
|
41
|
+
**HIGH SEVERITY Violations**:
|
|
42
|
+
|
|
43
|
+
- `Math.random()` - Random number generation
|
|
44
|
+
- `Date.now()` or `new Date()` without mocking
|
|
45
|
+
- `setTimeout` / `setInterval` without proper waits
|
|
46
|
+
- External API calls without mocking
|
|
47
|
+
- File system operations on random paths
|
|
48
|
+
- Database queries with non-deterministic ordering
|
|
49
|
+
|
|
50
|
+
**MEDIUM SEVERITY Violations**:
|
|
51
|
+
|
|
52
|
+
- `page.waitForTimeout(N)` - Hard waits instead of conditions
|
|
53
|
+
- Flaky selectors (CSS classes that may change)
|
|
54
|
+
- Race conditions (missing proper synchronization)
|
|
55
|
+
- Test order dependencies (test A must run before test B)
|
|
56
|
+
|
|
57
|
+
**LOW SEVERITY Violations**:
|
|
58
|
+
|
|
59
|
+
- Missing test isolation (shared state between tests)
|
|
60
|
+
- Console timestamps without fixed timezone
|
|
61
|
+
|
|
62
|
+
### 2. Analyze Each Test File
|
|
63
|
+
|
|
64
|
+
For each test file from Step 2:
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
const violations = [];
|
|
68
|
+
|
|
69
|
+
// Check for Math.random()
|
|
70
|
+
if (testFileContent.includes('Math.random()')) {
|
|
71
|
+
violations.push({
|
|
72
|
+
file: testFile,
|
|
73
|
+
line: findLineNumber('Math.random()'),
|
|
74
|
+
severity: 'HIGH',
|
|
75
|
+
category: 'random-generation',
|
|
76
|
+
description: 'Test uses Math.random() - non-deterministic',
|
|
77
|
+
suggestion: 'Use faker.seed(12345) for deterministic random data',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Check for Date.now()
|
|
82
|
+
if (testFileContent.includes('Date.now()') || testFileContent.includes('new Date()')) {
|
|
83
|
+
violations.push({
|
|
84
|
+
file: testFile,
|
|
85
|
+
line: findLineNumber('Date.now()'),
|
|
86
|
+
severity: 'HIGH',
|
|
87
|
+
category: 'time-dependency',
|
|
88
|
+
description: 'Test uses Date.now() or new Date() without mocking',
|
|
89
|
+
suggestion: 'Mock system time with test.useFakeTimers() or use fixed timestamps',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Check for hard waits
|
|
94
|
+
if (testFileContent.includes('waitForTimeout')) {
|
|
95
|
+
violations.push({
|
|
96
|
+
file: testFile,
|
|
97
|
+
line: findLineNumber('waitForTimeout'),
|
|
98
|
+
severity: 'MEDIUM',
|
|
99
|
+
category: 'hard-wait',
|
|
100
|
+
description: 'Test uses waitForTimeout - creates flakiness',
|
|
101
|
+
suggestion: 'Replace with expect(locator).toBeVisible() or waitForResponse',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// ... check other patterns
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 3. Calculate Determinism Score
|
|
109
|
+
|
|
110
|
+
**Scoring Logic**:
|
|
111
|
+
|
|
112
|
+
```javascript
|
|
113
|
+
const totalChecks = testFiles.length * checksPerFile;
|
|
114
|
+
const failedChecks = violations.length;
|
|
115
|
+
const passedChecks = totalChecks - failedChecks;
|
|
116
|
+
|
|
117
|
+
// Weight violations by severity
|
|
118
|
+
const severityWeights = { HIGH: 10, MEDIUM: 5, LOW: 2 };
|
|
119
|
+
const totalPenalty = violations.reduce((sum, v) => sum + severityWeights[v.severity], 0);
|
|
120
|
+
|
|
121
|
+
// Score: 100 - (penalty points)
|
|
122
|
+
const score = Math.max(0, 100 - totalPenalty);
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## OUTPUT FORMAT
|
|
128
|
+
|
|
129
|
+
Write JSON to temp file: `/tmp/tea-test-review-determinism-{{timestamp}}.json`
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"dimension": "determinism",
|
|
134
|
+
"score": 85,
|
|
135
|
+
"max_score": 100,
|
|
136
|
+
"grade": "B",
|
|
137
|
+
"violations": [
|
|
138
|
+
{
|
|
139
|
+
"file": "tests/api/user.spec.ts",
|
|
140
|
+
"line": 42,
|
|
141
|
+
"severity": "HIGH",
|
|
142
|
+
"category": "random-generation",
|
|
143
|
+
"description": "Test uses Math.random() - non-deterministic",
|
|
144
|
+
"suggestion": "Use faker.seed(12345) for deterministic random data",
|
|
145
|
+
"code_snippet": "const userId = Math.random() * 1000;"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"file": "tests/e2e/checkout.spec.ts",
|
|
149
|
+
"line": 78,
|
|
150
|
+
"severity": "MEDIUM",
|
|
151
|
+
"category": "hard-wait",
|
|
152
|
+
"description": "Test uses waitForTimeout - creates flakiness",
|
|
153
|
+
"suggestion": "Replace with expect(locator).toBeVisible()",
|
|
154
|
+
"code_snippet": "await page.waitForTimeout(5000);"
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"passed_checks": 12,
|
|
158
|
+
"failed_checks": 3,
|
|
159
|
+
"total_checks": 15,
|
|
160
|
+
"violation_summary": {
|
|
161
|
+
"HIGH": 1,
|
|
162
|
+
"MEDIUM": 1,
|
|
163
|
+
"LOW": 1
|
|
164
|
+
},
|
|
165
|
+
"recommendations": [
|
|
166
|
+
"Use faker with fixed seed for all random data",
|
|
167
|
+
"Replace all waitForTimeout with conditional waits",
|
|
168
|
+
"Mock Date.now() in tests that use current time"
|
|
169
|
+
],
|
|
170
|
+
"summary": "Tests are mostly deterministic with 3 violations (1 HIGH, 1 MEDIUM, 1 LOW)"
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**On Error:**
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"dimension": "determinism",
|
|
179
|
+
"success": false,
|
|
180
|
+
"error": "Error message describing what went wrong"
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## EXIT CONDITION
|
|
187
|
+
|
|
188
|
+
Subprocess completes when:
|
|
189
|
+
|
|
190
|
+
- ✅ All test files analyzed for determinism violations
|
|
191
|
+
- ✅ Score calculated (0-100)
|
|
192
|
+
- ✅ Violations categorized by severity
|
|
193
|
+
- ✅ Recommendations generated
|
|
194
|
+
- ✅ JSON output written to temp file
|
|
195
|
+
|
|
196
|
+
**Subprocess terminates here.** Parent workflow will read output and aggregate with other quality dimensions.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 🚨 SUBPROCESS SUCCESS METRICS
|
|
201
|
+
|
|
202
|
+
### ✅ SUCCESS:
|
|
203
|
+
|
|
204
|
+
- All test files scanned for determinism violations
|
|
205
|
+
- Score calculated with proper severity weighting
|
|
206
|
+
- JSON output valid and complete
|
|
207
|
+
- Only determinism checked (not other dimensions)
|
|
208
|
+
|
|
209
|
+
### ❌ FAILURE:
|
|
210
|
+
|
|
211
|
+
- Checked quality dimensions other than determinism
|
|
212
|
+
- Invalid or missing JSON output
|
|
213
|
+
- Score calculation incorrect
|
|
214
|
+
- Modified test files (should be read-only)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03b-subprocess-isolation'
|
|
3
|
+
description: 'Subprocess: Check test isolation (no shared state/dependencies)'
|
|
4
|
+
subprocess: true
|
|
5
|
+
outputFile: '/tmp/tea-test-review-isolation-{{timestamp}}.json'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Subprocess 3B: Isolation Quality Check
|
|
9
|
+
|
|
10
|
+
## SUBPROCESS CONTEXT
|
|
11
|
+
|
|
12
|
+
This is an **isolated subprocess** running in parallel with other quality dimension checks.
|
|
13
|
+
|
|
14
|
+
**Your task:** Analyze test files for ISOLATION violations only.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## MANDATORY EXECUTION RULES
|
|
19
|
+
|
|
20
|
+
- ✅ Check ISOLATION only (not other quality dimensions)
|
|
21
|
+
- ✅ Output structured JSON to temp file
|
|
22
|
+
- ❌ Do NOT check determinism, maintainability, coverage, or performance
|
|
23
|
+
- ❌ Do NOT modify test files (read-only analysis)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## SUBPROCESS TASK
|
|
28
|
+
|
|
29
|
+
### 1. Identify Isolation Violations
|
|
30
|
+
|
|
31
|
+
**Scan test files for isolation issues:**
|
|
32
|
+
|
|
33
|
+
**HIGH SEVERITY Violations**:
|
|
34
|
+
|
|
35
|
+
- Global state mutations (global variables modified)
|
|
36
|
+
- Test order dependencies (test B depends on test A running first)
|
|
37
|
+
- Shared database records without cleanup
|
|
38
|
+
- beforeAll/afterAll with side effects leaking to other tests
|
|
39
|
+
|
|
40
|
+
**MEDIUM SEVERITY Violations**:
|
|
41
|
+
|
|
42
|
+
- Missing test cleanup (created data not deleted)
|
|
43
|
+
- Shared fixtures that mutate state
|
|
44
|
+
- Tests that assume specific execution order
|
|
45
|
+
- Environment variables modified without restoration
|
|
46
|
+
|
|
47
|
+
**LOW SEVERITY Violations**:
|
|
48
|
+
|
|
49
|
+
- Tests sharing test data (but not mutating)
|
|
50
|
+
- Missing test.describe grouping
|
|
51
|
+
- Tests that could be more isolated
|
|
52
|
+
|
|
53
|
+
### 2. Calculate Isolation Score
|
|
54
|
+
|
|
55
|
+
```javascript
|
|
56
|
+
const totalChecks = testFiles.length * checksPerFile;
|
|
57
|
+
const failedChecks = violations.length;
|
|
58
|
+
const severityWeights = { HIGH: 10, MEDIUM: 5, LOW: 2 };
|
|
59
|
+
const totalPenalty = violations.reduce((sum, v) => sum + severityWeights[v.severity], 0);
|
|
60
|
+
const score = Math.max(0, 100 - totalPenalty);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## OUTPUT FORMAT
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"dimension": "isolation",
|
|
70
|
+
"score": 90,
|
|
71
|
+
"max_score": 100,
|
|
72
|
+
"grade": "A-",
|
|
73
|
+
"violations": [
|
|
74
|
+
{
|
|
75
|
+
"file": "tests/api/integration.spec.ts",
|
|
76
|
+
"line": 15,
|
|
77
|
+
"severity": "HIGH",
|
|
78
|
+
"category": "test-order-dependency",
|
|
79
|
+
"description": "Test depends on previous test creating user record",
|
|
80
|
+
"suggestion": "Each test should create its own test data in beforeEach",
|
|
81
|
+
"code_snippet": "test('should update user', async () => { /* assumes user exists */ });"
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
"passed_checks": 14,
|
|
85
|
+
"failed_checks": 1,
|
|
86
|
+
"total_checks": 15,
|
|
87
|
+
"violation_summary": {
|
|
88
|
+
"HIGH": 1,
|
|
89
|
+
"MEDIUM": 0,
|
|
90
|
+
"LOW": 0
|
|
91
|
+
},
|
|
92
|
+
"recommendations": [
|
|
93
|
+
"Add beforeEach hooks to create test data",
|
|
94
|
+
"Add afterEach hooks to cleanup created records",
|
|
95
|
+
"Use test.describe.configure({ mode: 'parallel' }) to enforce isolation"
|
|
96
|
+
],
|
|
97
|
+
"summary": "Tests are well isolated with 1 HIGH severity violation"
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## EXIT CONDITION
|
|
104
|
+
|
|
105
|
+
Subprocess completes when:
|
|
106
|
+
|
|
107
|
+
- ✅ All test files analyzed for isolation violations
|
|
108
|
+
- ✅ Score calculated
|
|
109
|
+
- ✅ JSON output written to temp file
|
|
110
|
+
|
|
111
|
+
**Subprocess terminates here.**
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🚨 SUBPROCESS SUCCESS METRICS
|
|
116
|
+
|
|
117
|
+
### ✅ SUCCESS:
|
|
118
|
+
|
|
119
|
+
- Only isolation checked (not other dimensions)
|
|
120
|
+
- JSON output valid and complete
|
|
121
|
+
|
|
122
|
+
### ❌ FAILURE:
|
|
123
|
+
|
|
124
|
+
- Checked quality dimensions other than isolation
|
|
125
|
+
- Invalid or missing JSON output
|
package/_bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03c-subprocess-maintainability'
|
|
3
|
+
description: 'Subprocess: Check test maintainability (readability, structure, DRY)'
|
|
4
|
+
subprocess: true
|
|
5
|
+
outputFile: '/tmp/tea-test-review-maintainability-{{timestamp}}.json'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Subprocess 3C: Maintainability Quality Check
|
|
9
|
+
|
|
10
|
+
## SUBPROCESS CONTEXT
|
|
11
|
+
|
|
12
|
+
This is an **isolated subprocess** running in parallel with other quality dimension checks.
|
|
13
|
+
|
|
14
|
+
**Your task:** Analyze test files for MAINTAINABILITY violations only.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## MANDATORY EXECUTION RULES
|
|
19
|
+
|
|
20
|
+
- ✅ Check MAINTAINABILITY only (not other quality dimensions)
|
|
21
|
+
- ✅ Output structured JSON to temp file
|
|
22
|
+
- ❌ Do NOT check determinism, isolation, coverage, or performance
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## SUBPROCESS TASK
|
|
27
|
+
|
|
28
|
+
### 1. Identify Maintainability Violations
|
|
29
|
+
|
|
30
|
+
**HIGH SEVERITY Violations**:
|
|
31
|
+
|
|
32
|
+
- Tests >100 lines (too complex)
|
|
33
|
+
- No test.describe grouping
|
|
34
|
+
- Duplicate test logic (copy-paste)
|
|
35
|
+
- Unclear test names (no Given/When/Then structure)
|
|
36
|
+
- Magic numbers/strings without constants
|
|
37
|
+
|
|
38
|
+
**MEDIUM SEVERITY Violations**:
|
|
39
|
+
|
|
40
|
+
- Tests missing comments for complex logic
|
|
41
|
+
- Inconsistent naming conventions
|
|
42
|
+
- Excessive nesting (>3 levels)
|
|
43
|
+
- Large setup/teardown blocks
|
|
44
|
+
|
|
45
|
+
**LOW SEVERITY Violations**:
|
|
46
|
+
|
|
47
|
+
- Minor code style issues
|
|
48
|
+
- Could benefit from helper functions
|
|
49
|
+
- Inconsistent assertion styles
|
|
50
|
+
|
|
51
|
+
### 2. Calculate Maintainability Score
|
|
52
|
+
|
|
53
|
+
```javascript
|
|
54
|
+
const severityWeights = { HIGH: 10, MEDIUM: 5, LOW: 2 };
|
|
55
|
+
const totalPenalty = violations.reduce((sum, v) => sum + severityWeights[v.severity], 0);
|
|
56
|
+
const score = Math.max(0, 100 - totalPenalty);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## OUTPUT FORMAT
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"dimension": "maintainability",
|
|
66
|
+
"score": 75,
|
|
67
|
+
"max_score": 100,
|
|
68
|
+
"grade": "C",
|
|
69
|
+
"violations": [
|
|
70
|
+
{
|
|
71
|
+
"file": "tests/e2e/complex-flow.spec.ts",
|
|
72
|
+
"line": 1,
|
|
73
|
+
"severity": "HIGH",
|
|
74
|
+
"category": "test-too-long",
|
|
75
|
+
"description": "Test file is 250 lines - too complex to maintain",
|
|
76
|
+
"suggestion": "Split into multiple smaller test files by feature area",
|
|
77
|
+
"code_snippet": "test.describe('Complex flow', () => { /* 250 lines */ });"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"passed_checks": 10,
|
|
81
|
+
"failed_checks": 5,
|
|
82
|
+
"violation_summary": {
|
|
83
|
+
"HIGH": 2,
|
|
84
|
+
"MEDIUM": 2,
|
|
85
|
+
"LOW": 1
|
|
86
|
+
},
|
|
87
|
+
"recommendations": [
|
|
88
|
+
"Split large test files into smaller, focused files (<100 lines each)",
|
|
89
|
+
"Add test.describe grouping for related tests",
|
|
90
|
+
"Extract duplicate logic into helper functions"
|
|
91
|
+
],
|
|
92
|
+
"summary": "Tests have maintainability issues - 5 violations (2 HIGH)"
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## EXIT CONDITION
|
|
99
|
+
|
|
100
|
+
Subprocess completes when JSON output written to temp file.
|
|
101
|
+
|
|
102
|
+
**Subprocess terminates here.**
|