@cregis-dev/cckit 0.2.0 → 0.4.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/README.md +15 -3
- package/package.json +1 -1
- package/registry.json +234 -194
- package/src/commands/init.js +19 -15
- package/src/commands/update.js +9 -4
- package/src/core/plugin-installer.js +64 -23
- package/src/utils/fs.js +6 -1
- package/templates/bmad/_config/bmad-help.csv +2 -1
- package/templates/bmad/_config/files-manifest.csv +437 -431
- package/templates/bmad/_config/ides/claude-code.yaml +5 -5
- package/templates/bmad/_config/ides/trae.yaml +5 -5
- package/templates/bmad/_config/task-manifest.csv +7 -6
- package/templates/bmad/_config/workflow-manifest.csv +34 -34
- package/templates/bmad/bmm/agents/qa.md +1 -1
- package/templates/bmad/bmm/config.yaml +1 -1
- package/templates/bmad/bmm/module-help.csv +1 -1
- package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +1 -1
- package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md +1 -1
- package/templates/bmad/bmm/workflows/1-analysis/research/workflow-market-research.md +1 -1
- package/templates/bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +1 -1
- package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
- package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +1 -1
- package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
- package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/document-project/workflow.yaml +1 -1
- package/templates/bmad/bmm/workflows/generate-project-context/workflow.md +1 -1
- package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +2 -2
- package/templates/bmad/commands/bmad-bmm-check-implementation-readiness.md +2 -2
- package/templates/bmad/commands/bmad-bmm-code-review.md +4 -4
- package/templates/bmad/commands/bmad-bmm-correct-course.md +4 -4
- package/templates/bmad/commands/bmad-bmm-create-architecture.md +2 -2
- package/templates/bmad/commands/bmad-bmm-create-epics-and-stories.md +2 -2
- package/templates/bmad/commands/bmad-bmm-create-prd.md +2 -2
- package/templates/bmad/commands/bmad-bmm-create-product-brief.md +2 -2
- package/templates/bmad/commands/bmad-bmm-create-story.md +4 -4
- package/templates/bmad/commands/bmad-bmm-create-ux-design.md +2 -2
- package/templates/bmad/commands/bmad-bmm-dev-story.md +4 -4
- package/templates/bmad/commands/bmad-bmm-document-project.md +4 -4
- package/templates/bmad/commands/bmad-bmm-domain-research.md +2 -2
- package/templates/bmad/commands/bmad-bmm-edit-prd.md +2 -2
- package/templates/bmad/commands/bmad-bmm-generate-project-context.md +2 -2
- package/templates/bmad/commands/bmad-bmm-market-research.md +2 -2
- package/templates/bmad/commands/bmad-bmm-qa-generate-e2e-tests.md +4 -4
- package/templates/bmad/commands/bmad-bmm-quick-dev.md +2 -2
- package/templates/bmad/commands/bmad-bmm-quick-spec.md +2 -2
- package/templates/bmad/commands/bmad-bmm-retrospective.md +4 -4
- package/templates/bmad/commands/bmad-bmm-sprint-planning.md +4 -4
- package/templates/bmad/commands/bmad-bmm-sprint-status.md +4 -4
- package/templates/bmad/commands/bmad-bmm-technical-research.md +2 -2
- package/templates/bmad/commands/bmad-bmm-validate-prd.md +2 -2
- package/templates/bmad/commands/bmad-brainstorming.md +2 -2
- package/templates/bmad/commands/bmad-editorial-review-prose.md +1 -1
- package/templates/bmad/commands/bmad-editorial-review-structure.md +1 -1
- package/templates/bmad/commands/bmad-help.md +1 -1
- package/templates/bmad/commands/bmad-index-docs.md +1 -1
- package/templates/bmad/commands/bmad-party-mode.md +2 -2
- package/templates/bmad/commands/bmad-review-adversarial-general.md +1 -1
- package/templates/bmad/commands/bmad-review-edge-case-hunter.md +10 -0
- package/templates/bmad/commands/bmad-shard-doc.md +1 -1
- package/templates/bmad/commands/bmad-tea-teach-me-testing.md +2 -2
- package/templates/bmad/commands/bmad-tea-testarch-atdd.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-automate.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-ci.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-framework.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-nfr.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-test-design.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-test-review.md +4 -4
- package/templates/bmad/commands/bmad-tea-testarch-trace.md +4 -4
- package/templates/bmad/core/config.yaml +1 -1
- package/templates/bmad/core/module-help.csv +1 -0
- package/templates/bmad/core/tasks/editorial-review-prose.xml +1 -1
- package/templates/bmad/core/tasks/editorial-review-structure.xml +1 -1
- package/templates/bmad/core/tasks/help.md +1 -1
- package/templates/bmad/core/tasks/index-docs.xml +1 -1
- package/templates/bmad/core/tasks/review-adversarial-general.xml +1 -1
- package/templates/bmad/core/tasks/review-edge-case-hunter.xml +63 -0
- package/templates/bmad/core/tasks/shard-doc.xml +1 -1
- package/templates/bmad/core/workflows/advanced-elicitation/workflow.xml +1 -1
- package/templates/bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +31 -18
- package/templates/bmad/core/workflows/brainstorming/steps/step-01b-continue.md +1 -1
- package/templates/bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +2 -2
- package/templates/bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +2 -2
- package/templates/bmad/core/workflows/brainstorming/workflow.md +4 -2
- package/templates/bmad/core/workflows/party-mode/workflow.md +1 -1
- package/templates/bmad/tea/config.yaml +5 -1
- package/templates/bmad/tea/testarch/knowledge/contract-testing.md +24 -2
- package/templates/bmad/tea/testarch/knowledge/pact-mcp.md +204 -0
- package/templates/bmad/tea/testarch/knowledge/pactjs-utils-consumer-helpers.md +211 -0
- package/templates/bmad/tea/testarch/knowledge/pactjs-utils-overview.md +210 -0
- package/templates/bmad/tea/testarch/knowledge/pactjs-utils-provider-verifier.md +315 -0
- package/templates/bmad/tea/testarch/knowledge/pactjs-utils-request-filter.md +224 -0
- package/templates/bmad/tea/testarch/tea-index.csv +5 -0
- package/templates/bmad/tea/workflows/testarch/README.md +1 -1
- package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +30 -0
- package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +159 -57
- package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04a-subagent-api-failing.md +215 -0
- package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04b-subagent-e2e-failing.md +244 -0
- package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +31 -15
- package/templates/bmad/tea/workflows/testarch/atdd/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/atdd/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/atdd/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +32 -0
- package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03-generate-tests.md +215 -101
- package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03a-subagent-api.md +193 -0
- package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03b-subagent-backend.md +246 -0
- package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03b-subagent-e2e.md +213 -0
- package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03c-aggregate.md +38 -22
- package/templates/bmad/tea/workflows/testarch/automate/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/automate/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/automate/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +124 -1
- package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +7 -0
- package/templates/bmad/tea/workflows/testarch/ci/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/ci/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/ci/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +126 -3
- package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/framework/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +150 -36
- package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04a-subagent-security.md +138 -0
- package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04b-subagent-performance.md +84 -0
- package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04c-subagent-reliability.md +85 -0
- package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04d-subagent-scalability.md +88 -0
- package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +27 -10
- package/templates/bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/nfr-assess/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/tea-resources-index.yaml +3 -3
- package/templates/bmad/tea/workflows/testarch/teach-me-testing/workflow-plan-teach-me-testing.md +6 -6
- package/templates/bmad/tea/workflows/testarch/teach-me-testing/workflow.md +1 -1
- package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-02-load-context.md +30 -0
- package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-05-generate-output.md +72 -1
- package/templates/bmad/tea/workflows/testarch/test-design/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/test-design/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/test-design/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-01-load-context.md +29 -1
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +147 -46
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03a-subagent-determinism.md +214 -0
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03b-subagent-isolation.md +125 -0
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subagent-maintainability.md +102 -0
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03e-subagent-performance.md +117 -0
- package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +10 -10
- package/templates/bmad/tea/workflows/testarch/test-review/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/test-review/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/test-review/workflow.yaml +2 -2
- package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +92 -1
- package/templates/bmad/tea/workflows/testarch/trace/validation-report-20260127-095021.md +1 -1
- package/templates/bmad/tea/workflows/testarch/trace/validation-report-20260127-102401.md +3 -3
- package/templates/bmad/tea/workflows/testarch/trace/workflow.yaml +2 -2
- package/templates/ecc/agents/chief-of-staff.md +151 -0
- package/templates/ecc/commands/claw.md +79 -0
- package/templates/ecc/rules/README.md +23 -2
- package/templates/ecc/rules/common/development-workflow.md +37 -0
- package/templates/ecc/rules/common/git-workflow.md +2 -23
- package/templates/ecc/rules/swift/coding-style.md +47 -0
- package/templates/ecc/rules/swift/hooks.md +20 -0
- package/templates/ecc/rules/swift/patterns.md +66 -0
- package/templates/ecc/rules/swift/security.md +33 -0
- package/templates/ecc/rules/swift/testing.md +45 -0
- package/templates/ecc/skills/api-design/SKILL.md +1 -0
- package/templates/ecc/skills/article-writing/SKILL.md +85 -0
- package/templates/ecc/skills/backend-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/clickhouse-io/SKILL.md +1 -0
- package/templates/ecc/skills/coding-standards/SKILL.md +1 -0
- package/templates/ecc/skills/configure-ecc/SKILL.md +32 -4
- package/templates/ecc/skills/content-engine/SKILL.md +88 -0
- package/templates/ecc/skills/content-hash-cache-pattern/SKILL.md +1 -0
- package/templates/ecc/skills/continuous-learning/SKILL.md +2 -1
- package/templates/ecc/skills/continuous-learning-v2/SKILL.md +4 -1
- package/templates/ecc/skills/continuous-learning-v2/hooks/observe.sh +14 -7
- package/templates/ecc/skills/cost-aware-llm-pipeline/SKILL.md +1 -0
- package/templates/ecc/skills/cpp-coding-standards/SKILL.md +1 -0
- package/templates/ecc/skills/cpp-testing/SKILL.md +1 -0
- package/templates/ecc/skills/database-migrations/SKILL.md +1 -0
- package/templates/ecc/skills/deployment-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/django-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/django-security/SKILL.md +1 -0
- package/templates/ecc/skills/django-tdd/SKILL.md +1 -0
- package/templates/ecc/skills/django-verification/SKILL.md +1 -0
- package/templates/ecc/skills/docker-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/e2e-testing/SKILL.md +1 -0
- package/templates/ecc/skills/eval-harness/SKILL.md +1 -0
- package/templates/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
- package/templates/ecc/skills/frontend-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/frontend-slides/SKILL.md +184 -0
- package/templates/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/templates/ecc/skills/golang-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/golang-testing/SKILL.md +1 -0
- package/templates/ecc/skills/investor-materials/SKILL.md +96 -0
- package/templates/ecc/skills/investor-outreach/SKILL.md +76 -0
- package/templates/ecc/skills/iterative-retrieval/SKILL.md +1 -0
- package/templates/ecc/skills/java-coding-standards/SKILL.md +1 -0
- package/templates/ecc/skills/jpa-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/liquid-glass-design/SKILL.md +279 -0
- package/templates/ecc/skills/market-research/SKILL.md +75 -0
- package/templates/ecc/skills/nutrient-document-processing/SKILL.md +1 -1
- package/templates/ecc/skills/postgres-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/project-guidelines-example/SKILL.md +1 -0
- package/templates/ecc/skills/python-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/python-testing/SKILL.md +1 -0
- package/templates/ecc/skills/regex-vs-llm-structured-text/SKILL.md +1 -0
- package/templates/ecc/skills/search-first/SKILL.md +3 -1
- package/templates/ecc/skills/security-review/SKILL.md +1 -0
- package/templates/ecc/skills/security-scan/SKILL.md +1 -0
- package/templates/ecc/skills/skill-stocktake/SKILL.md +176 -0
- package/templates/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/templates/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/templates/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/templates/ecc/skills/springboot-patterns/SKILL.md +1 -0
- package/templates/ecc/skills/springboot-security/SKILL.md +1 -0
- package/templates/ecc/skills/springboot-tdd/SKILL.md +1 -0
- package/templates/ecc/skills/springboot-verification/SKILL.md +1 -0
- package/templates/ecc/skills/strategic-compact/SKILL.md +1 -0
- package/templates/ecc/skills/swift-actor-persistence/SKILL.md +1 -0
- package/templates/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/templates/ecc/skills/swift-protocol-di-testing/SKILL.md +1 -0
- package/templates/ecc/skills/swiftui-patterns/SKILL.md +259 -0
- package/templates/ecc/skills/tdd-workflow/SKILL.md +1 -0
- package/templates/ecc/skills/verification-loop/SKILL.md +1 -0
- package/templates/ecc/skills/visa-doc-translate/README.md +86 -0
- package/templates/ecc/skills/visa-doc-translate/SKILL.md +117 -0
- package/templates/ext-skills/pinchtab/SKILL.md +89 -486
- package/templates/ext-skills/pinchtab/TRUST.md +69 -0
- package/templates/ext-skills/pinchtab/references/api.md +297 -0
- package/templates/ext-skills/pinchtab/references/env.md +45 -0
- package/templates/ext-skills/pinchtab/references/profiles.md +107 -0
- package/templates/plugins/claude-code-setup/.claude-plugin/plugin.json +9 -0
- package/templates/plugins/claude-code-setup/LICENSE +202 -0
- package/templates/plugins/claude-code-setup/README.md +29 -0
- package/templates/plugins/claude-code-setup/automation-recommender-example.png +0 -0
- package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/SKILL.md +288 -0
- package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/hooks-patterns.md +226 -0
- package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/mcp-servers.md +263 -0
- package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/plugins-reference.md +98 -0
- package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/skills-reference.md +408 -0
- package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/subagent-templates.md +181 -0
- package/templates/plugins/claude-md-management/.claude-plugin/plugin.json +9 -0
- package/templates/plugins/claude-md-management/LICENSE +202 -0
- package/templates/plugins/claude-md-management/README.md +40 -0
- package/templates/plugins/claude-md-management/claude-md-improver-example.png +0 -0
- package/templates/plugins/claude-md-management/commands/revise-claude-md.md +54 -0
- package/templates/plugins/claude-md-management/revise-claude-md-example.png +0 -0
- package/templates/plugins/claude-md-management/skills/claude-md-improver/SKILL.md +179 -0
- package/templates/plugins/claude-md-management/skills/claude-md-improver/references/quality-criteria.md +109 -0
- package/templates/plugins/claude-md-management/skills/claude-md-improver/references/templates.md +253 -0
- package/templates/plugins/claude-md-management/skills/claude-md-improver/references/update-guidelines.md +150 -0
- package/templates/plugins/code-simplifier/.claude-plugin/plugin.json +9 -0
- package/templates/plugins/code-simplifier/LICENSE +202 -0
- package/templates/plugins/code-simplifier/agents/code-simplifier.md +52 -0
- package/templates/plugins/commit-commands/.claude-plugin/plugin.json +9 -0
- package/templates/plugins/commit-commands/LICENSE +202 -0
- package/templates/plugins/commit-commands/README.md +225 -0
- package/templates/plugins/commit-commands/commands/clean_gone.md +53 -0
- package/templates/plugins/commit-commands/commands/commit-push-pr.md +20 -0
- package/templates/plugins/commit-commands/commands/commit.md +17 -0
- package/templates/trae-bmad/rules/bmad-bmm-check-implementation-readiness.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-code-review.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-correct-course.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-create-architecture.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-create-epics-and-stories.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-create-prd.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-create-product-brief.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-create-story.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-create-ux-design.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-dev-story.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-document-project.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-domain-research.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-edit-prd.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-generate-project-context.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-market-research.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-qa-generate-e2e-tests.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-quick-dev.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-quick-spec.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-retrospective.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-sprint-planning.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-sprint-status.md +4 -4
- package/templates/trae-bmad/rules/bmad-bmm-technical-research.md +2 -2
- package/templates/trae-bmad/rules/bmad-bmm-validate-prd.md +2 -2
- package/templates/trae-bmad/rules/bmad-brainstorming.md +2 -2
- package/templates/trae-bmad/rules/bmad-editorial-review-prose.md +1 -1
- package/templates/trae-bmad/rules/bmad-editorial-review-structure.md +1 -1
- package/templates/trae-bmad/rules/bmad-help.md +1 -1
- package/templates/trae-bmad/rules/bmad-index-docs.md +1 -1
- package/templates/trae-bmad/rules/bmad-party-mode.md +2 -2
- package/templates/trae-bmad/rules/bmad-review-adversarial-general.md +1 -1
- package/templates/trae-bmad/rules/bmad-review-edge-case-hunter.md +10 -0
- package/templates/trae-bmad/rules/bmad-shard-doc.md +1 -1
- package/templates/trae-bmad/rules/bmad-tea-teach-me-testing.md +2 -2
- package/templates/trae-bmad/rules/bmad-tea-testarch-atdd.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-automate.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-ci.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-framework.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-nfr.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-test-design.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-test-review.md +4 -4
- package/templates/trae-bmad/rules/bmad-tea-testarch-trace.md +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 'step-02-generate-pipeline'
|
|
3
|
-
description: 'Generate CI pipeline configuration'
|
|
3
|
+
description: 'Generate CI pipeline configuration with adaptive orchestration (agent-team, subagent, or sequential)'
|
|
4
4
|
nextStepFile: './step-03-configure-quality-gates.md'
|
|
5
5
|
outputFile: '{test_artifacts}/ci-pipeline-progress.md'
|
|
6
6
|
---
|
|
@@ -15,6 +15,8 @@ Create platform-specific CI configuration with test execution, sharding, burn-in
|
|
|
15
15
|
|
|
16
16
|
- 📖 Read the entire step file before acting
|
|
17
17
|
- ✅ Speak in `{communication_language}`
|
|
18
|
+
- ✅ Resolve execution mode from explicit user request first, then config
|
|
19
|
+
- ✅ Apply fallback rules deterministically when requested mode is unsupported
|
|
18
20
|
|
|
19
21
|
---
|
|
20
22
|
|
|
@@ -35,6 +37,71 @@ Create platform-specific CI configuration with test execution, sharding, burn-in
|
|
|
35
37
|
|
|
36
38
|
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
37
39
|
|
|
40
|
+
## 0. Resolve Execution Mode (User Override First)
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
const orchestrationContext = {
|
|
44
|
+
config: {
|
|
45
|
+
execution_mode: config.tea_execution_mode || 'auto', // "auto" | "subagent" | "agent-team" | "sequential"
|
|
46
|
+
capability_probe: config.tea_capability_probe !== false, // true by default
|
|
47
|
+
},
|
|
48
|
+
timestamp: new Date().toISOString().replace(/[:.]/g, '-'),
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const normalizeUserExecutionMode = (mode) => {
|
|
52
|
+
if (typeof mode !== 'string') return null;
|
|
53
|
+
const normalized = mode.trim().toLowerCase().replace(/[-_]/g, ' ').replace(/\s+/g, ' ');
|
|
54
|
+
|
|
55
|
+
if (normalized === 'auto') return 'auto';
|
|
56
|
+
if (normalized === 'sequential') return 'sequential';
|
|
57
|
+
if (normalized === 'subagent' || normalized === 'sub agent' || normalized === 'subagents' || normalized === 'sub agents') {
|
|
58
|
+
return 'subagent';
|
|
59
|
+
}
|
|
60
|
+
if (normalized === 'agent team' || normalized === 'agent teams' || normalized === 'agentteam') {
|
|
61
|
+
return 'agent-team';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const normalizeConfigExecutionMode = (mode) => {
|
|
68
|
+
if (mode === 'subagent') return 'subagent';
|
|
69
|
+
if (mode === 'auto' || mode === 'sequential' || mode === 'subagent' || mode === 'agent-team') {
|
|
70
|
+
return mode;
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// Explicit user instruction in the active run takes priority over config.
|
|
76
|
+
const explicitModeFromUser = normalizeUserExecutionMode(runtime.getExplicitExecutionModeHint?.() || null);
|
|
77
|
+
|
|
78
|
+
const requestedMode = explicitModeFromUser || normalizeConfigExecutionMode(orchestrationContext.config.execution_mode) || 'auto';
|
|
79
|
+
const probeEnabled = orchestrationContext.config.capability_probe;
|
|
80
|
+
|
|
81
|
+
const supports = { subagent: false, agentTeam: false };
|
|
82
|
+
if (probeEnabled) {
|
|
83
|
+
supports.subagent = runtime.canLaunchSubagents?.() === true;
|
|
84
|
+
supports.agentTeam = runtime.canLaunchAgentTeams?.() === true;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
let resolvedMode = requestedMode;
|
|
88
|
+
if (requestedMode === 'auto') {
|
|
89
|
+
if (supports.agentTeam) resolvedMode = 'agent-team';
|
|
90
|
+
else if (supports.subagent) resolvedMode = 'subagent';
|
|
91
|
+
else resolvedMode = 'sequential';
|
|
92
|
+
} else if (probeEnabled && requestedMode === 'agent-team' && !supports.agentTeam) {
|
|
93
|
+
resolvedMode = supports.subagent ? 'subagent' : 'sequential';
|
|
94
|
+
} else if (probeEnabled && requestedMode === 'subagent' && !supports.subagent) {
|
|
95
|
+
resolvedMode = 'sequential';
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Resolution precedence:
|
|
100
|
+
|
|
101
|
+
1. Explicit user request in this run (`agent team` => `agent-team`; `subagent` => `subagent`; `sequential`; `auto`)
|
|
102
|
+
2. `tea_execution_mode` from config
|
|
103
|
+
3. Runtime capability fallback (when probing enabled)
|
|
104
|
+
|
|
38
105
|
## 1. Resolve Output Path and Select Template
|
|
39
106
|
|
|
40
107
|
Determine the pipeline output file path based on the detected `ci_platform`:
|
|
@@ -58,6 +125,7 @@ Include stages:
|
|
|
58
125
|
|
|
59
126
|
- lint
|
|
60
127
|
- test (parallel shards)
|
|
128
|
+
- contract-test (if `tea_use_pactjs_utils` enabled)
|
|
61
129
|
- burn-in (flaky detection)
|
|
62
130
|
- report (aggregate + publish)
|
|
63
131
|
|
|
@@ -80,6 +148,51 @@ Write the selected pipeline configuration to the resolved output path from step
|
|
|
80
148
|
- **Backend (C#/.NET)**: Use `dotnet test` with coverage, restore NuGet packages
|
|
81
149
|
- **Backend (Ruby)**: Use `bundle exec rspec` with coverage, cache `vendor/bundle`
|
|
82
150
|
|
|
151
|
+
### Contract Testing Pipeline (if `tea_use_pactjs_utils` enabled)
|
|
152
|
+
|
|
153
|
+
When `tea_use_pactjs_utils` is enabled, add a `contract-test` stage after `test`:
|
|
154
|
+
|
|
155
|
+
**Required env block** (add to the generated pipeline):
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
env:
|
|
159
|
+
PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }}
|
|
160
|
+
PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
|
|
161
|
+
GITHUB_SHA: ${{ github.sha }} # auto-set by GitHub Actions
|
|
162
|
+
GITHUB_BRANCH: ${{ github.head_ref || github.ref_name }} # NOT auto-set — must be defined explicitly
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
> **Note:** `GITHUB_SHA` is auto-set by GitHub Actions, but `GITHUB_BRANCH` is **not** — it must be derived from `github.head_ref` (for PRs) or `github.ref_name` (for pushes). The pactjs-utils library reads both from `process.env`.
|
|
166
|
+
|
|
167
|
+
1. **Consumer test + publish**: Run consumer contract tests, then publish pacts to broker
|
|
168
|
+
- `npm run test:contract:consumer`
|
|
169
|
+
- `npx pact-broker publish ./pacts --consumer-app-version=$GITHUB_SHA --branch=$GITHUB_BRANCH`
|
|
170
|
+
- Only publish on PR and main branch pushes
|
|
171
|
+
|
|
172
|
+
2. **Provider verification**: Run provider verification against published pacts
|
|
173
|
+
- `npm run test:contract:provider`
|
|
174
|
+
- `buildVerifierOptions` auto-reads `PACT_BROKER_BASE_URL`, `PACT_BROKER_TOKEN`, `GITHUB_SHA`, `GITHUB_BRANCH`
|
|
175
|
+
- Verification results published to broker when `CI=true`
|
|
176
|
+
|
|
177
|
+
3. **Can-I-Deploy gate**: Block deployment if contracts are incompatible
|
|
178
|
+
- `npx pact-broker can-i-deploy --pacticipant=<ServiceName> --version=$GITHUB_SHA --to-environment=production`
|
|
179
|
+
- Add `--retry-while-unknown 6 --retry-interval 10` for async verification
|
|
180
|
+
|
|
181
|
+
4. **Webhook job**: Add `repository_dispatch` trigger for `pact_changed` event
|
|
182
|
+
- Provider verification runs when consumers publish new pacts
|
|
183
|
+
- Ensures compatibility is checked on both consumer and provider changes
|
|
184
|
+
|
|
185
|
+
5. **Breaking change handling**: When `PACT_BREAKING_CHANGE=true` env var is set:
|
|
186
|
+
- Provider test passes `includeMainAndDeployed: false` to `buildVerifierOptions` — verifies only matching branch
|
|
187
|
+
- Coordinate with consumer team before removing the flag
|
|
188
|
+
|
|
189
|
+
6. **Record deployment**: After successful deployment, record version in broker
|
|
190
|
+
- `npx pact-broker record-deployment --pacticipant=<ServiceName> --version=$GITHUB_SHA --environment=production`
|
|
191
|
+
|
|
192
|
+
Required CI secrets: `PACT_BROKER_BASE_URL`, `PACT_BROKER_TOKEN`
|
|
193
|
+
|
|
194
|
+
**If `tea_pact_mcp` is `"mcp"`:** Reference the SmartBear MCP `Can I Deploy` and `Matrix` tools for pipeline guidance in `pact-mcp.md`.
|
|
195
|
+
|
|
83
196
|
---
|
|
84
197
|
|
|
85
198
|
### 4. Save Progress
|
|
@@ -104,6 +217,16 @@ Write the selected pipeline configuration to the resolved output path from step
|
|
|
104
217
|
- Set `lastSaved: '{date}'`
|
|
105
218
|
- Append this step's output to the appropriate section of the document.
|
|
106
219
|
|
|
220
|
+
### 5. Orchestration Notes for This Step
|
|
221
|
+
|
|
222
|
+
For this step, treat these work units as parallelizable when `resolvedMode` is `agent-team` or `subagent`:
|
|
223
|
+
|
|
224
|
+
- Worker A: resolve platform path/template and produce base pipeline skeleton (section 1)
|
|
225
|
+
- Worker B: construct stage definitions and test execution blocks (sections 2-3)
|
|
226
|
+
- Worker C: contract-testing block (only when `tea_use_pactjs_utils` is true)
|
|
227
|
+
|
|
228
|
+
If `resolvedMode` is `sequential`, execute sections 1→4 in order.
|
|
229
|
+
|
|
107
230
|
Load next step: `{nextStepFile}`
|
|
108
231
|
|
|
109
232
|
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
|
@@ -58,6 +58,13 @@ Define:
|
|
|
58
58
|
- Fail CI on critical test failures
|
|
59
59
|
- Optional: require traceability or nfr-assess output before release
|
|
60
60
|
|
|
61
|
+
**Contract testing gate** (if `tea_use_pactjs_utils` is enabled):
|
|
62
|
+
|
|
63
|
+
- **can-i-deploy must pass** before any deployment to staging or production
|
|
64
|
+
- Block the deployment pipeline if contract verification fails
|
|
65
|
+
- Treat consumer pact publishing failures as CI failures (contracts must stay up-to-date)
|
|
66
|
+
- Provider verification must pass for all consumer pacts before merge
|
|
67
|
+
|
|
61
68
|
---
|
|
62
69
|
|
|
63
70
|
## 3. Notifications
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
validationDate: 2026-01-27
|
|
3
3
|
workflowName: testarch-ci
|
|
4
|
-
workflowPath:
|
|
4
|
+
workflowPath: {project-root}/src/workflows/testarch/ci
|
|
5
5
|
validationStatus: COMPLETE
|
|
6
6
|
completionDate: 2026-01-27 10:03:10
|
|
7
7
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
validationDate: 2026-01-27
|
|
3
3
|
workflowName: testarch-ci
|
|
4
|
-
workflowPath:
|
|
4
|
+
workflowPath: {project-root}/src/workflows/testarch/ci
|
|
5
5
|
validationStatus: COMPLETE
|
|
6
6
|
completionDate: 2026-01-27 10:24:01
|
|
7
7
|
---
|
|
@@ -85,9 +85,9 @@ Standard BMAD config variables treated as valid exceptions: bmb_creations_output
|
|
|
85
85
|
- Steps use progressive prompts and clear role reinforcement; no laundry-list interrogation detected
|
|
86
86
|
- Flow progression is clear and aligned to workflow goals
|
|
87
87
|
|
|
88
|
-
##
|
|
88
|
+
## Subagent Optimization Opportunities
|
|
89
89
|
|
|
90
|
-
- No high-priority
|
|
90
|
+
- No high-priority subagent optimizations identified; workflow already uses step-file architecture
|
|
91
91
|
- Pattern 1 (grep/regex): N/A for most steps
|
|
92
92
|
- Pattern 2 (per-file analysis): already aligned to validation structure
|
|
93
93
|
- Pattern 3 (data ops): minimal data file loads
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Test Architect workflow: ci
|
|
2
2
|
name: testarch-ci
|
|
3
|
-
|
|
3
|
+
# prettier-ignore
|
|
4
|
+
description: 'Scaffold CI/CD quality pipeline with test execution. Use when the user says "lets setup CI pipeline" or "I want to create quality gates"'
|
|
4
5
|
|
|
5
6
|
# Critical variables from config
|
|
6
7
|
config_source: "{project-root}/_bmad/tea/config.yaml"
|
|
@@ -45,4 +46,3 @@ execution_hints:
|
|
|
45
46
|
interactive: false # Minimize prompts, auto-detect when possible
|
|
46
47
|
autonomous: true # Proceed without user input unless blocked
|
|
47
48
|
iterative: true
|
|
48
|
-
|
package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 'step-03-scaffold-framework'
|
|
3
|
-
description: 'Create
|
|
3
|
+
description: 'Create framework scaffold with adaptive orchestration (agent-team, subagent, or sequential)'
|
|
4
4
|
nextStepFile: './step-04-docs-and-scripts.md'
|
|
5
5
|
knowledgeIndex: '{project-root}/_bmad/tea/testarch/tea-index.csv'
|
|
6
6
|
outputFile: '{test_artifacts}/framework-setup-progress.md'
|
|
@@ -10,13 +10,15 @@ outputFile: '{test_artifacts}/framework-setup-progress.md'
|
|
|
10
10
|
|
|
11
11
|
## STEP GOAL
|
|
12
12
|
|
|
13
|
-
Generate the test directory structure, configuration files, fixtures, factories, helpers, and sample tests.
|
|
13
|
+
Generate the test directory structure, configuration files, fixtures, factories, helpers, and sample tests using deterministic mode selection with runtime fallback.
|
|
14
14
|
|
|
15
15
|
## MANDATORY EXECUTION RULES
|
|
16
16
|
|
|
17
17
|
- 📖 Read the entire step file before acting
|
|
18
18
|
- ✅ Speak in `{communication_language}`
|
|
19
19
|
- ✅ Apply knowledge base patterns where required
|
|
20
|
+
- ✅ Resolve execution mode from explicit user request first, then config
|
|
21
|
+
- ✅ Apply fallback rules deterministically when requested mode is unsupported
|
|
20
22
|
|
|
21
23
|
---
|
|
22
24
|
|
|
@@ -37,6 +39,81 @@ Generate the test directory structure, configuration files, fixtures, factories,
|
|
|
37
39
|
|
|
38
40
|
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
39
41
|
|
|
42
|
+
## 0. Resolve Execution Mode (User Override First)
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
const parseBooleanFlag = (value, defaultValue = true) => {
|
|
46
|
+
if (typeof value === 'string') {
|
|
47
|
+
const normalized = value.trim().toLowerCase();
|
|
48
|
+
if (['false', '0', 'off', 'no'].includes(normalized)) return false;
|
|
49
|
+
if (['true', '1', 'on', 'yes'].includes(normalized)) return true;
|
|
50
|
+
}
|
|
51
|
+
if (value === undefined || value === null) return defaultValue;
|
|
52
|
+
return Boolean(value);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const orchestrationContext = {
|
|
56
|
+
config: {
|
|
57
|
+
execution_mode: config.tea_execution_mode || 'auto', // "auto" | "subagent" | "agent-team" | "sequential"
|
|
58
|
+
capability_probe: parseBooleanFlag(config.tea_capability_probe, true), // supports booleans and "false"/"true" strings
|
|
59
|
+
},
|
|
60
|
+
timestamp: new Date().toISOString().replace(/[:.]/g, '-'),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const normalizeUserExecutionMode = (mode) => {
|
|
64
|
+
if (typeof mode !== 'string') return null;
|
|
65
|
+
const normalized = mode.trim().toLowerCase().replace(/[-_]/g, ' ').replace(/\s+/g, ' ');
|
|
66
|
+
|
|
67
|
+
if (normalized === 'auto') return 'auto';
|
|
68
|
+
if (normalized === 'sequential') return 'sequential';
|
|
69
|
+
if (normalized === 'subagent' || normalized === 'sub agent' || normalized === 'subagents' || normalized === 'sub agents') {
|
|
70
|
+
return 'subagent';
|
|
71
|
+
}
|
|
72
|
+
if (normalized === 'agent team' || normalized === 'agent teams' || normalized === 'agentteam') {
|
|
73
|
+
return 'agent-team';
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return null;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const normalizeConfigExecutionMode = (mode) => {
|
|
80
|
+
if (mode === 'subagent') return 'subagent';
|
|
81
|
+
if (mode === 'auto' || mode === 'sequential' || mode === 'subagent' || mode === 'agent-team') {
|
|
82
|
+
return mode;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// Explicit user instruction in the active run takes priority over config.
|
|
88
|
+
const explicitModeFromUser = normalizeUserExecutionMode(runtime.getExplicitExecutionModeHint?.() || null);
|
|
89
|
+
|
|
90
|
+
const requestedMode = explicitModeFromUser || normalizeConfigExecutionMode(orchestrationContext.config.execution_mode) || 'auto';
|
|
91
|
+
const probeEnabled = orchestrationContext.config.capability_probe;
|
|
92
|
+
|
|
93
|
+
const supports = { subagent: false, agentTeam: false };
|
|
94
|
+
if (probeEnabled) {
|
|
95
|
+
supports.subagent = runtime.canLaunchSubagents?.() === true;
|
|
96
|
+
supports.agentTeam = runtime.canLaunchAgentTeams?.() === true;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
let resolvedMode = requestedMode;
|
|
100
|
+
if (requestedMode === 'auto') {
|
|
101
|
+
if (supports.agentTeam) resolvedMode = 'agent-team';
|
|
102
|
+
else if (supports.subagent) resolvedMode = 'subagent';
|
|
103
|
+
else resolvedMode = 'sequential';
|
|
104
|
+
} else if (probeEnabled && requestedMode === 'agent-team' && !supports.agentTeam) {
|
|
105
|
+
resolvedMode = supports.subagent ? 'subagent' : 'sequential';
|
|
106
|
+
} else if (probeEnabled && requestedMode === 'subagent' && !supports.subagent) {
|
|
107
|
+
resolvedMode = 'sequential';
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Resolution precedence:
|
|
112
|
+
|
|
113
|
+
1. Explicit user request in this run (`agent team` => `agent-team`; `subagent` => `subagent`; `sequential`; `auto`)
|
|
114
|
+
2. `tea_execution_mode` from config
|
|
115
|
+
3. Runtime capability fallback (when probing enabled)
|
|
116
|
+
|
|
40
117
|
## 1. Create Directory Structure
|
|
41
118
|
|
|
42
119
|
Use `{detected_stack}` from Step 1 to determine directory layout.
|
|
@@ -59,6 +136,15 @@ Create the idiomatic test directory for the detected language:
|
|
|
59
136
|
- **Ruby (RSpec)**: `spec/` with `spec/unit/`, `spec/integration/`, `spec/api/`, `spec/support/`
|
|
60
137
|
- **Rust**: `tests/` for integration tests, inline `#[cfg(test)]` modules for unit tests
|
|
61
138
|
|
|
139
|
+
**If `config.tea_use_pactjs_utils` is enabled** (and `{detected_stack}` is `backend` or `fullstack`):
|
|
140
|
+
|
|
141
|
+
Create contract testing directory structure:
|
|
142
|
+
|
|
143
|
+
- `pact/http/consumer/` — consumer contract tests
|
|
144
|
+
- `pact/http/provider/` — provider verification tests and state handlers
|
|
145
|
+
- `pact/http/helpers/` — shared helpers (request filter, state constants)
|
|
146
|
+
- `pact/message/` — message/Kafka contract tests (if async patterns detected)
|
|
147
|
+
|
|
62
148
|
---
|
|
63
149
|
|
|
64
150
|
## 2. Generate Framework Config
|
|
@@ -122,6 +208,19 @@ Read `{config_source}` and use `{knowledgeIndex}` to load fragments based on `co
|
|
|
122
208
|
|
|
123
209
|
- `fixture-architecture.md`, `data-factories.md`, `network-first.md`, `playwright-config.md`, `test-quality.md`
|
|
124
210
|
|
|
211
|
+
**If Pact.js Utils enabled** (`config.tea_use_pactjs_utils`):
|
|
212
|
+
|
|
213
|
+
- `pactjs-utils-overview.md`, `pactjs-utils-consumer-helpers.md`, `pactjs-utils-provider-verifier.md`, `pactjs-utils-request-filter.md`, `contract-testing.md`
|
|
214
|
+
- Recommend installing `@seontechnologies/pactjs-utils` and `@pact-foundation/pact`
|
|
215
|
+
|
|
216
|
+
**If Pact.js Utils disabled but contract testing relevant:**
|
|
217
|
+
|
|
218
|
+
- `contract-testing.md`
|
|
219
|
+
|
|
220
|
+
**If Pact MCP enabled** (`config.tea_pact_mcp` is `"mcp"`):
|
|
221
|
+
|
|
222
|
+
- `pact-mcp.md`
|
|
223
|
+
|
|
125
224
|
Implement:
|
|
126
225
|
|
|
127
226
|
- Fixture index with `mergeTests`
|
|
@@ -158,9 +257,33 @@ Create helpers for:
|
|
|
158
257
|
- Auth helpers
|
|
159
258
|
- Test data factories (language-idiomatic patterns)
|
|
160
259
|
|
|
260
|
+
**If `config.tea_use_pactjs_utils` is enabled** (and `{detected_stack}` is `backend` or `fullstack`):
|
|
261
|
+
|
|
262
|
+
Create contract test samples in `pact/` directory:
|
|
263
|
+
|
|
264
|
+
- **Consumer test**: Example using `PactV3` + `createProviderState` for type-safe provider states
|
|
265
|
+
- **Provider verification test**: Example using `buildVerifierOptions` + `createRequestFilter`
|
|
266
|
+
- **Helpers**: Request filter setup (`pact/http/helpers/request-filter.ts`), shared state constants (`pact/http/helpers/states.ts`)
|
|
267
|
+
- **Vitest configs** (if vitest detected): `vitest.consumer.config.mts` and `vitest.provider.config.mts` for separated test execution
|
|
268
|
+
- **package.json scripts**: `test:contract:consumer`, `test:contract:provider`, `pact:publish`, `pact:can-deploy`
|
|
269
|
+
|
|
161
270
|
---
|
|
162
271
|
|
|
163
|
-
### 6.
|
|
272
|
+
### 6. Orchestration Notes for This Step
|
|
273
|
+
|
|
274
|
+
For this step, treat these work units as parallelizable when `resolvedMode` is `agent-team` or `subagent`:
|
|
275
|
+
|
|
276
|
+
- Worker A: directory + framework config + env setup (sections 1-3)
|
|
277
|
+
- Worker B: fixtures + factories (section 4)
|
|
278
|
+
- Worker C: sample tests + helpers (section 5)
|
|
279
|
+
|
|
280
|
+
In parallel-capable modes, runtime decides worker scheduling and concurrency.
|
|
281
|
+
|
|
282
|
+
If `resolvedMode` is `sequential`, execute sections 1→5 in order.
|
|
283
|
+
|
|
284
|
+
Regardless of mode, outputs must be identical in structure and quality.
|
|
285
|
+
|
|
286
|
+
### 7. Save Progress
|
|
164
287
|
|
|
165
288
|
**Save this step's accumulated work to `{outputFile}`.**
|
|
166
289
|
|
package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
validationDate: 2026-01-27
|
|
3
3
|
workflowName: testarch-framework
|
|
4
|
-
workflowPath:
|
|
4
|
+
workflowPath: {project-root}/src/workflows/testarch/framework
|
|
5
5
|
validationStatus: COMPLETE
|
|
6
6
|
completionDate: 2026-01-27 10:03:10
|
|
7
7
|
---
|
package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
validationDate: 2026-01-27
|
|
3
3
|
workflowName: testarch-framework
|
|
4
|
-
workflowPath:
|
|
4
|
+
workflowPath: {project-root}/src/workflows/testarch/framework
|
|
5
5
|
validationStatus: COMPLETE
|
|
6
6
|
completionDate: 2026-01-27 10:24:01
|
|
7
7
|
---
|
|
@@ -87,9 +87,9 @@ Standard BMAD config variables treated as valid exceptions: bmb_creations_output
|
|
|
87
87
|
- Steps use progressive prompts and clear role reinforcement; no laundry-list interrogation detected
|
|
88
88
|
- Flow progression is clear and aligned to workflow goals
|
|
89
89
|
|
|
90
|
-
##
|
|
90
|
+
## Subagent Optimization Opportunities
|
|
91
91
|
|
|
92
|
-
- No high-priority
|
|
92
|
+
- No high-priority subagent optimizations identified; workflow already uses step-file architecture
|
|
93
93
|
- Pattern 1 (grep/regex): N/A for most steps
|
|
94
94
|
- Pattern 2 (per-file analysis): already aligned to validation structure
|
|
95
95
|
- Pattern 3 (data ops): minimal data file loads
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Test Architect workflow: framework
|
|
2
2
|
name: testarch-framework
|
|
3
|
-
|
|
3
|
+
# prettier-ignore
|
|
4
|
+
description: 'Initialize test framework with Playwright or Cypress. Use when the user says "lets setup test framework" or "I want to initialize testing framework"'
|
|
4
5
|
|
|
5
6
|
# Critical variables from config
|
|
6
7
|
config_source: "{project-root}/_bmad/tea/config.yaml"
|
|
@@ -45,4 +46,3 @@ execution_hints:
|
|
|
45
46
|
interactive: false # Minimize prompts; auto-detect when possible
|
|
46
47
|
autonomous: true # Proceed without user input unless blocked
|
|
47
48
|
iterative: true
|
|
48
|
-
|