bmad-method-test-architecture-enterprise 2.0.4-next.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +10 -10
- package/README.md +28 -13
- package/cli/atdd-red-check.js +1 -1
- package/cli/atdd-runner.js +1 -1
- package/cli/automate.js +3 -3
- package/cli/ci-runner.js +1 -1
- package/cli/lib/automate-prompt.js +1 -1
- package/cli/lib/framework-setup.js +2 -2
- package/cli/lib/resolve-skill.js +2 -2
- package/cli/lib/resolve-tea-config.js +42 -5
- package/cli/lib/test-design-parser.js +1 -1
- package/cli/lib/workflow-cli.js +5 -1
- package/cli/migrate-customizations.js +254 -0
- package/cli/nfr-runner.js +1 -1
- package/cli/nfr.js +2 -2
- package/cli/teach.js +4 -4
- package/cli/test-design.js +2 -2
- package/cli/test-review.js +3 -3
- package/cli/trace.js +2 -2
- package/cli/transcript-runner.js +1 -1
- package/package.json +5 -3
- package/skills/bmad-tea/SKILL.md +4 -2
- package/skills/bmad-tea/customize.toml +10 -10
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/SKILL.md +3 -1
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/checklist.md +1 -1
- package/skills/{bmad-testarch-nfr → bmad-tea-automate}/customize.toml +1 -1
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/customize.toml +1 -1
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/instructions.md +1 -1
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/workflow.yaml +2 -2
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/resources/test-generation-routing.md +14 -14
- package/skills/{bmad-testarch-automate → bmad-tea-automate}/workflow.yaml +2 -2
- package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/SKILL.md +4 -2
- package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/inspection-record.md +1 -1
- package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/customize.toml +1 -1
- package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/ci.md +4 -4
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/SKILL.md +5 -3
- package/skills/bmad-tea-framework/ci/customize.toml +10 -0
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/instructions.md +1 -1
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/customize.toml +2 -2
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/framework-setup-progress.example.md +1 -1
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/hooks/tea-enforce.cjs +2 -2
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/setup-phase-completion.md +1 -1
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/setup-routing.md +3 -3
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/setup-run-progress.example.md +1 -1
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-04-docs-and-scripts.md +2 -2
- package/skills/{bmad-testarch-framework → bmad-tea-framework}/workflow.yaml +2 -2
- package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/SKILL.md +3 -1
- package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/checklist.md +3 -3
- package/skills/{bmad-testarch-trace → bmad-tea-nfr}/customize.toml +1 -1
- package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/instructions.md +1 -1
- package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/nfr-report-template.md +3 -3
- package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/resources/nfr-assessment.example.md +4 -4
- package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/workflow.yaml +2 -2
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/SKILL.md +3 -1
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/customize.toml +1 -1
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/instructions.md +2 -2
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-01.md +1 -1
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-03.md +2 -2
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-05.md +2 -2
- package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-e/step-e-02-apply-edits.md +2 -2
- package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/SKILL.md +3 -1
- package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/checklist.md +3 -3
- package/skills/{bmad-testarch-automate → bmad-tea-test-design}/customize.toml +1 -1
- package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/resources/test-design-epic-3.example.md +5 -5
- package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/test-design-qa-template.md +1 -1
- package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/test-design-template.md +3 -3
- package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/workflow.yaml +2 -2
- package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/SKILL.md +3 -1
- package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/customize.toml +1 -1
- package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/instructions.md +1 -1
- package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/workflow.yaml +2 -2
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/SKILL.md +3 -1
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/checklist.md +2 -2
- package/skills/bmad-tea-trace/customize.toml +38 -0
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/instructions.md +1 -1
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/resources/traceability-matrix.example.md +1 -1
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-c/step-04-analyze-gaps.md +3 -3
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/trace-template.md +2 -2
- package/skills/{bmad-testarch-trace → bmad-tea-trace}/workflow.yaml +2 -2
- package/skills/bmod-tea/bmod.toml +11 -11
- package/skills/bmod-tea/help/help.md +10 -10
- package/skills/bmod-tea/help/integrations.md +2 -2
- package/skills/bmod-tea/knowledge/burn-in.md +1 -1
- package/skills/bmod-tea/knowledge/risk-governance.md +1 -1
- package/skills/bmod-tea/knowledge/test-healing-patterns.md +1 -1
- package/skills/bmod-tea/migration-1.toml +11 -11
- package/skills/bmad-testarch-test-design/customize.toml +0 -38
- /package/skills/{bmad-teach-me-testing → bmad-tea-automate}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/instructions.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/atdd-checklist-template.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/checklist.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/resources/atdd-checklist-2-4-guest-checkout.example.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-01-preflight-and-context.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-02-generation-mode.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-03-test-strategy.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-04-generate-tests.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-04a-subagent-api-failing.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-04b-subagent-e2e-failing.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-04c-aggregate.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-c/step-05-validate-and-complete.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/red/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/resources/automation-summary.example.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/resources/run-and-heal.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-01-preflight-and-context.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-02-identify-targets.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-03-generate-tests.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-03a-subagent-api.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-03b-subagent-backend.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-03b-subagent-e2e.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-03b-subagent-mobile.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-03c-aggregate.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-c/step-04-validate-and-summarize.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-automate}/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/README.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/contract.skeleton.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluation-ci-plan.template.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluation-folder.gitignore +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluation.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluator-conditions.template.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/LEARNED.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/agentevals-frameworks.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/agentevals-trajectory.mjs +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/command-evaluator.mjs +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/frameworks.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/installed-version.mjs +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/mapping.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/promptfoo-assertions.mjs +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/evaluators/promptfoo-frameworks.json +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/http-probe-port.conformance.mjs +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/http-probe-port.mjs +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/requirements-statement.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/assets/scoring-policy.template.json +0 -0
- /package/skills/{bmad-testarch-automate → bmad-tea-evaluate}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/adapters.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/authoring-routing.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/contract.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus-agent.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus-ai-feature.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus-skill.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus-test-review-mechanism.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus-tool-use-system.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus-workflow.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/corpus.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/evaluator.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/gaps.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/harness.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/inspection.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/intake.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/mutation.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/oracles.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-evaluate}/references/run.md +0 -0
- /package/skills/{bmad-testarch-evaluate → bmad-tea-framework}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/checklist.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/azure-pipelines-template.yaml +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/checklist.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/github-actions-template.yaml +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/gitlab-ci-template.yaml +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/harness-pipeline-template.yaml +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/jenkins-pipeline-template.groovy +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/resources/ci-pipeline-progress.example.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-c/step-01-preflight.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-c/step-02-generate-pipeline.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-c/step-03-configure-quality-gates.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-c/step-03b-render-evaluation-plans.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-c/step-04-validate-and-summary.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/ci/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/instructions.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/setup-parallel.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/setup-state.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-01-preflight.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-02-select-framework.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-03-scaffold-framework.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-05-validate-and-summary.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-framework → bmad-tea-nfr}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/nfr-status-definitions.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-01-load-context.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-02-define-thresholds.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-03-gather-evidence.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-04-evaluate-and-score.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-04a-subagent-security.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-04b-subagent-performance.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-04c-subagent-reliability.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-04d-subagent-maintainability.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-04e-aggregate-nfr.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-c/step-05-generate-report.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-nfr}/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-nfr → bmad-tea-teach-me-testing}/bmod.toml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/checklist.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/data/curriculum.yaml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/data/quiz-questions.yaml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/data/role-paths.yaml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/data/session-content-map.yaml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/data/tea-resources-index.yaml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/resources/tea-completion-summary.example.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-01-init.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-01b-continue.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-02-assess.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-03-session-menu.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-02.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-04.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-06.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-04-session-07.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-c/step-05-completion.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-e/step-e-01-assess-workflow.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/steps-v/step-v-01-validate.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/templates/completion-summary-template.md +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/templates/progress-template.yaml +0 -0
- /package/skills/{bmad-teach-me-testing → bmad-tea-teach-me-testing}/templates/session-notes-template.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/instructions.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-c/step-01-detect-mode.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-c/step-02-load-context.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-c/step-03-risk-and-testability.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-c/step-04-coverage-plan.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-c/step-05-generate-output.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/test-design-architecture-template.md +0 -0
- /package/skills/{bmad-testarch-test-design → bmad-tea-test-design}/test-design-handoff-template.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/checklist.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/resources/test-review.example.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/criteria-registry.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-01-load-context.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-02-discover-tests.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-03-quality-evaluation.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-03a-subagent-determinism.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-03b-subagent-isolation.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-03c-subagent-maintainability.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-03e-subagent-performance.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-03f-aggregate-scores.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-c/step-04-generate-report.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/steps-v/step-01-validate.md +0 -0
- /package/skills/{bmad-testarch-test-review → bmad-tea-test-review}/test-review-template.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/bmod.toml +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/resources/live-verification-results.example.json +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-c/step-01-load-context.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-c/step-01b-resume.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-c/step-02-discover-tests.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-c/step-03-map-criteria.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-c/step-05-gate-decision.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-e/step-01-assess.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-e/step-02-apply-edit.md +0 -0
- /package/skills/{bmad-testarch-trace → bmad-tea-trace}/steps-v/step-01-validate.md +0 -0
package/cli/trace.js
CHANGED
|
@@ -50,8 +50,8 @@ function execute(options, registerOutputGuard = () => {}) {
|
|
|
50
50
|
const levels = options.coverageLevels.split(',').map((level) => level.trim().toLowerCase());
|
|
51
51
|
if (levels.length === 0 || levels.some((level) => !['e2e', 'api', 'component', 'unit', 'live'].includes(level)))
|
|
52
52
|
throw new Error('--coverage-levels must list e2e, api, component, unit, or live.');
|
|
53
|
-
const skillRoot = resolveWorkflowSkill({ projectRoot, skillName: 'bmad-
|
|
54
|
-
const resolvedConfig = resolveTeaConfig({ projectRoot, skillRoot, skillName: 'bmad-
|
|
53
|
+
const skillRoot = resolveWorkflowSkill({ projectRoot, skillName: 'bmad-tea-trace', skillRoot: options.skillRoot });
|
|
54
|
+
const resolvedConfig = resolveTeaConfig({ projectRoot, skillRoot, skillName: 'bmad-tea-trace' });
|
|
55
55
|
const rawArtifacts = resolvedConfig.configSnapshot.modules.tea.test_artifacts;
|
|
56
56
|
if (typeof rawArtifacts !== 'string' || !rawArtifacts.trim())
|
|
57
57
|
throw new Error('test_artifacts in the TEA config must be a nonempty string.');
|
package/cli/transcript-runner.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* state a session needs across turns is whatever the agent (or, in a scripted
|
|
18
18
|
* proof, the stand-in for one) chooses to leave in the workspace. That is what
|
|
19
19
|
* keeps this command reusable for a story this one does not know about:
|
|
20
|
-
* Story 6.11 measures `bmad-teach-me-testing`, a real multi-turn teaching
|
|
20
|
+
* Story 6.11 measures `bmad-tea-teach-me-testing`, a real multi-turn teaching
|
|
21
21
|
* session, through the same engine and the same runner.
|
|
22
22
|
*
|
|
23
23
|
* The prompt belongs to whichever caller is driving the session — the
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "bmad-method-test-architecture-enterprise",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.0",
|
|
5
5
|
"description": "Master Test Architect for quality strategy, test automation, and release gates",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"bmad",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"tea-evaluate": "cli/evaluate.js",
|
|
39
39
|
"tea-fragment-selection-runner": "cli/fragment-selection-runner.js",
|
|
40
40
|
"tea-framework": "cli/framework.js",
|
|
41
|
+
"tea-migrate-customizations": "cli/migrate-customizations.js",
|
|
41
42
|
"tea-nfr": "cli/nfr.js",
|
|
42
43
|
"tea-nfr-runner": "cli/nfr-runner.js",
|
|
43
44
|
"tea-routing-runner": "cli/routing-runner.js",
|
|
@@ -94,7 +95,7 @@
|
|
|
94
95
|
"release:minor": "gh workflow run publish.yaml -f channel=latest -f bump=minor",
|
|
95
96
|
"release:next": "gh workflow run publish.yaml -f channel=next",
|
|
96
97
|
"release:patch": "gh workflow run publish.yaml -f channel=latest -f bump=patch",
|
|
97
|
-
"test": "npm run test:conflict-markers && npm run test:schemas && npm run test:install && npm run test:evaluate-guidance && npm run test:evaluate-authoring && npm run test:evaluate-gap-loop && npm run test:evaluate-dogfood && npm run test:evaluate-check && npm run test:evaluate-compare && npm run test:evaluate-before-state && npm run test:evaluate-ci-gates && npm run test:evaluate-ci-tiers && npm run test:evaluate-ci-repositories:tagged-release-pr && npm run test:evaluate-ci-repositories:tagged-release-merge && npm run test:evaluate-ci-repositories:tagged-release-release && npm run test:evaluate-ci-repositories:nightly-deploy-pr && npm run test:evaluate-ci-repositories:nightly-deploy-merge && npm run test:evaluate-ci-repositories:nightly-deploy-scheduled && npm run test:evaluate-ci-repositories:nightly-deploy-release && npm run test:evaluate-ci-render && npm run test:evaluate-pr-mcp && npm run test:evaluate-pr-api && npm run test:evaluate-pr-suite && npm run test:evaluate-pr-workflow && npm run test:evaluate-pr-tool-use && npm run test:evaluate-pr-promptfoo && npm run test:evaluate-pr-ai-feature && npm run test:evaluate-pr-test-review && npm run test:evaluate-pr-gap-loop && npm run test:evaluate-pr-learn && npm run test:evaluate-pr-tutorial && npm run test:evaluate-partitions && npm run test:evaluate-partition-plans-views-and-check && npm run test:evaluate-partition-plans-preflight-and-run && npm run test:evaluate-partition-plans-score && npm run test:evaluate-partition-plans-attempts-seal-and-mappings && npm run test:evaluate-partition-plans-attempts-records && npm run test:evaluate-partition-plans-attempts-gameability && npm run test:evaluate-interpret && npm run test:evaluate-calibration && npm run test:evaluate-boundaries && npm run test:evaluate-preflight && npm run test:evaluate-isolation-conformance && npm run test:evaluate-mutation:qualification-basics && npm run test:evaluate-mutation:qualification-guards && npm run test:evaluate-mutation:recovery && npm run test:evaluate-mutation:journals && npm run test:evaluate-run && npm run test:evaluate-progress && npm run test:evaluate-aggregate && npm run test:evaluate-confinement && npm run test:evaluate-confinement-audit && npm run test:evaluate-confinement-history && npm run test:evaluate-confinement-git-state && npm run test:evaluate-confinement-network && npm run test:evaluate-held-inputs && npm run test:evaluate-arms-historical && npm run test:evaluate-arms-deployments && npm run test:evaluate-evaluators && npm run test:evaluate-evaluators-agent-version && npm run test:evaluate-agents && npm run test:evaluate-agents-importers && npm run test:evaluate-agents-sealed-brief && npm run test:evaluate-held-attempts && npm run test:evaluate-private && npm run test:evaluate-records && npm run test:evaluate-mcp && npm run test:evaluate-api && npm run test:evaluate-workflow && npm run test:evaluate-tool-use && npm run test:evaluate-promptfoo && npm run test:evaluate-learned-framework && npm run test:docs-tutorial && npm run test:knowledge && npm run test:criteria-fragments && npm run test:doc-count-sources && npm run test:planning-doc-sources && npm run test:doc-counts && npm run test:doc-claim-sources && npm run test:doc-claims && npm run test:doc-invocation-entry && npm run test:doc-invocations && npm run test:doc-link-anchors && npm run test:docs-build-names && npm run test:docs-evaluate-sidebar && npm run test:docs-gap-reader && npm run test:enforce-hook && npm run test:framework-scaffold && npm run test:isolation-primitives && npm run test:atdd-isolation && npm run test:atdd-net-guard && npm run test:atdd-scoring && npm run test:atdd-workflow-guidance && npm run test:generation-healing && npm run test:framework-scaffold-install-isolation && npm run test:transcript-harness && npm run test:suite-manifest && npm run test:teach-me-testing-scoring && npm run test:teach-cli && npm run test:eval-data && npm run test:eval-atdd-data && npm run test:eval-ci-data && npm run test:eval-framework-scaffold-data && npm run test:eval-nfr-data && npm run test:nfr-validate-corpus && npm run test:nfr-evidence-guidance && npm run test:nfr-cli && npm run test:eval-test-design-data && npm run test:eval-trace-data && npm run test:eval-routing-data && npm run test:eval-routing-boundaries && npm run test:eval-routing-evidence && npm run test:eval-transcript-data && npm run test:eval-teach-me-testing-data && npm run test:eval-schemas && npm run test:eval-diagnostics && npm run test:eval-replay && npm run test:eval-quality-corpus && npm run test:schema-versions && npm run test:contract-sources && npm run test:contracts && npm run test:contract-oracles && npm run test:probe-sources && npm run test:test-design-qualification && npm run test:test-review-qualification && npm run test:trace-qualification && npm run test:nfr-qualification && npm run test:ci-qualification && npm run test:probe-corpus && npm run test:compare-dominance && npm run test:compare-eval-runs && npm run test:trial-set-scoring && npm run test:automate-cli && npm run test:automate-generation-evidence && npm run test:automate-eval-fixture && npm run test:eval-automate-data && npm run test:clock-port && npm run test:probe-conformance && npm run test:corpus-conformance && npm run test:file-system-conformance && npm run test:file-system-port && npm run test:probe-targets && npm run test:port-totality && npm run test:ci-coverage && npm run test:ci-coverage-filters && npm run test:install-actionlint && npm run test:workflows-lint && npm run test:install-linux-sandbox && npm run test:shards && npm run test:groups && npm run test:cli && npm run test:workflow-cli && npm run test:framework-cli && npm run test:test-review-pr-scope && npm run test:test-review-report && npm run test:test-review-rubric && npm run test:bmad-output-gated && npm run test:release-metadata && npm run test:release-notes && npm run test:lockfile-age && npm run test:lockfile-age-cache && npm run test:licences && npm run test:supply-chain && npm run test:boundary && npm run test:direction && npm run test:lineage && npm run test:guard-publish && npm run test:layering-boundary-lineage && npm run test:changelog && npm run test:tea-workflow-descriptions && npm run test:docs-mermaid && npm run test:llms-headroom && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
|
|
98
|
+
"test": "npm run test:conflict-markers && npm run test:schemas && npm run test:install && npm run test:evaluate-guidance && npm run test:evaluate-authoring && npm run test:evaluate-gap-loop && npm run test:evaluate-dogfood && npm run test:evaluate-check && npm run test:evaluate-compare && npm run test:evaluate-before-state && npm run test:evaluate-ci-gates && npm run test:evaluate-ci-tiers && npm run test:evaluate-ci-repositories:tagged-release-pr && npm run test:evaluate-ci-repositories:tagged-release-merge && npm run test:evaluate-ci-repositories:tagged-release-release && npm run test:evaluate-ci-repositories:nightly-deploy-pr && npm run test:evaluate-ci-repositories:nightly-deploy-merge && npm run test:evaluate-ci-repositories:nightly-deploy-scheduled && npm run test:evaluate-ci-repositories:nightly-deploy-release && npm run test:evaluate-ci-render && npm run test:evaluate-pr-mcp && npm run test:evaluate-pr-api && npm run test:evaluate-pr-suite && npm run test:evaluate-pr-workflow && npm run test:evaluate-pr-tool-use && npm run test:evaluate-pr-promptfoo && npm run test:evaluate-pr-ai-feature && npm run test:evaluate-pr-test-review && npm run test:evaluate-pr-gap-loop && npm run test:evaluate-pr-learn && npm run test:evaluate-pr-tutorial && npm run test:evaluate-partitions && npm run test:evaluate-partition-plans-views-and-check && npm run test:evaluate-partition-plans-preflight-and-run && npm run test:evaluate-partition-plans-score && npm run test:evaluate-partition-plans-attempts-seal-and-mappings && npm run test:evaluate-partition-plans-attempts-records && npm run test:evaluate-partition-plans-attempts-gameability && npm run test:evaluate-interpret && npm run test:evaluate-calibration && npm run test:evaluate-boundaries && npm run test:evaluate-preflight && npm run test:evaluate-isolation-conformance && npm run test:evaluate-mutation:qualification-basics && npm run test:evaluate-mutation:qualification-guards && npm run test:evaluate-mutation:recovery && npm run test:evaluate-mutation:journals && npm run test:evaluate-run && npm run test:evaluate-progress && npm run test:evaluate-aggregate && npm run test:evaluate-confinement && npm run test:evaluate-confinement-audit && npm run test:evaluate-confinement-history && npm run test:evaluate-confinement-git-state && npm run test:evaluate-confinement-network && npm run test:evaluate-held-inputs && npm run test:evaluate-arms-historical && npm run test:evaluate-arms-deployments && npm run test:evaluate-evaluators && npm run test:evaluate-evaluators-agent-version && npm run test:evaluate-agents && npm run test:evaluate-agents-importers && npm run test:evaluate-agents-sealed-brief && npm run test:evaluate-held-attempts && npm run test:evaluate-private && npm run test:evaluate-records && npm run test:evaluate-mcp && npm run test:evaluate-api && npm run test:evaluate-workflow && npm run test:evaluate-tool-use && npm run test:evaluate-promptfoo && npm run test:evaluate-learned-framework && npm run test:docs-tutorial && npm run test:knowledge && npm run test:criteria-fragments && npm run test:doc-count-sources && npm run test:planning-doc-sources && npm run test:doc-counts && npm run test:doc-claim-sources && npm run test:doc-claims && npm run test:doc-invocation-entry && npm run test:doc-invocations && npm run test:doc-link-anchors && npm run test:docs-build-names && npm run test:docs-evaluate-sidebar && npm run test:docs-gap-reader && npm run test:enforce-hook && npm run test:framework-scaffold && npm run test:isolation-primitives && npm run test:atdd-isolation && npm run test:atdd-net-guard && npm run test:atdd-scoring && npm run test:atdd-workflow-guidance && npm run test:generation-healing && npm run test:framework-scaffold-install-isolation && npm run test:transcript-harness && npm run test:suite-manifest && npm run test:teach-me-testing-scoring && npm run test:teach-cli && npm run test:eval-data && npm run test:eval-atdd-data && npm run test:eval-ci-data && npm run test:eval-framework-scaffold-data && npm run test:eval-nfr-data && npm run test:nfr-validate-corpus && npm run test:nfr-evidence-guidance && npm run test:nfr-cli && npm run test:eval-test-design-data && npm run test:eval-trace-data && npm run test:eval-routing-data && npm run test:eval-routing-boundaries && npm run test:eval-routing-evidence && npm run test:eval-transcript-data && npm run test:eval-teach-me-testing-data && npm run test:eval-schemas && npm run test:eval-diagnostics && npm run test:eval-replay && npm run test:eval-quality-corpus && npm run test:schema-versions && npm run test:contract-sources && npm run test:contracts && npm run test:contract-oracles && npm run test:probe-sources && npm run test:test-design-qualification && npm run test:test-review-qualification && npm run test:trace-qualification && npm run test:nfr-qualification && npm run test:ci-qualification && npm run test:probe-corpus && npm run test:compare-dominance && npm run test:compare-eval-runs && npm run test:trial-set-scoring && npm run test:automate-cli && npm run test:automate-generation-evidence && npm run test:automate-eval-fixture && npm run test:eval-automate-data && npm run test:clock-port && npm run test:probe-conformance && npm run test:corpus-conformance && npm run test:file-system-conformance && npm run test:file-system-port && npm run test:probe-targets && npm run test:port-totality && npm run test:ci-coverage && npm run test:ci-coverage-filters && npm run test:install-actionlint && npm run test:workflows-lint && npm run test:install-linux-sandbox && npm run test:shards && npm run test:groups && npm run test:cli && npm run test:workflow-cli && npm run test:migrate-customizations && npm run test:framework-cli && npm run test:test-review-pr-scope && npm run test:test-review-report && npm run test:test-review-rubric && npm run test:bmad-output-gated && npm run test:release-metadata && npm run test:release-notes && npm run test:lockfile-age && npm run test:lockfile-age-cache && npm run test:licences && npm run test:supply-chain && npm run test:boundary && npm run test:direction && npm run test:lineage && npm run test:guard-publish && npm run test:layering-boundary-lineage && npm run test:changelog && npm run test:tea-workflow-descriptions && npm run test:docs-mermaid && npm run test:llms-headroom && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
|
|
98
99
|
"test:atdd-isolation": "node test/test-atdd-isolation.js",
|
|
99
100
|
"test:atdd-net-guard": "node test/test-atdd-net-guard.js",
|
|
100
101
|
"test:atdd-scoring": "node test/test-atdd-scoring.js",
|
|
@@ -241,6 +242,7 @@
|
|
|
241
242
|
"test:llms-headroom": "node test/test-llms-headroom.js",
|
|
242
243
|
"test:lockfile-age": "eval-quality-gates lockfile-age",
|
|
243
244
|
"test:lockfile-age-cache": "node test/test-generate-lockfile-age-cache.js",
|
|
245
|
+
"test:migrate-customizations": "node test/test-migrate-customizations.js",
|
|
244
246
|
"test:nfr-cli": "node --test test/test-nfr-cli.js",
|
|
245
247
|
"test:nfr-evidence-guidance": "node test/test-nfr-evidence-guidance.js",
|
|
246
248
|
"test:nfr-qualification": "node test/test-nfr-qualification.js",
|
|
@@ -304,7 +306,7 @@
|
|
|
304
306
|
"include": [
|
|
305
307
|
"cli/**",
|
|
306
308
|
"tools/**",
|
|
307
|
-
"skills/bmad-
|
|
309
|
+
"skills/bmad-tea-framework/resources/hooks/**"
|
|
308
310
|
],
|
|
309
311
|
"lines": 78,
|
|
310
312
|
"reporter": [
|
package/skills/bmad-tea/SKILL.md
CHANGED
|
@@ -19,6 +19,8 @@ You are Murat, the Master Test Architect and Quality Advisor. You lead risk-base
|
|
|
19
19
|
|
|
20
20
|
## On Activation
|
|
21
21
|
|
|
22
|
+
Before resolving the agent menu, inspect `{project-root}/_bmad/custom/bmad-tea.toml` and `{project-root}/_bmad/custom/bmad-tea.user.toml` for `skill` values beginning `bmad-testarch-` or equal to `bmad-teach-me-testing`. If found, stop and tell the user to run `npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}`. A migration conflict requires the manual merge named by that command. Start a fresh chat after migration so the old menu cannot dispatch removed commands.
|
|
23
|
+
|
|
22
24
|
### Step 1: Resolve the Agent Block
|
|
23
25
|
|
|
24
26
|
Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent`
|
|
@@ -78,11 +80,11 @@ Dispatch on a clear match by invoking the item's `skill` or executing its `promp
|
|
|
78
80
|
|
|
79
81
|
### Framework and CI Setup Routing
|
|
80
82
|
|
|
81
|
-
TF invokes `bmad-
|
|
83
|
+
TF invokes `bmad-tea-framework` for framework setup. CI invokes the same skill with `setup_scope = ci`. Preserve both codes, custom menu overrides, requested scope and operation. A request for framework and pipeline setup routes to TF with `setup_scope = both`. The shared router asks “Do you want CI too?” once when setup leaves CI intent unclear.
|
|
82
84
|
|
|
83
85
|
### Test Generation Routing
|
|
84
86
|
|
|
85
|
-
AT invokes `bmad-
|
|
87
|
+
AT invokes `bmad-tea-automate` with `test_mode = red`. TA invokes the same skill with expand as its default. Preserve both menu codes, custom menu overrides, the requested operation and any explicit red or expand intent. Red writes acceptance tests before implementation and checks the intended failure; expand adds passing coverage for implemented code. Create runs run-and-heal by default in both modes. Validate and Edit report their own checks without repair. A mixed implemented/unimplemented request still needs the deciding scope or sequence when the user has supplied neither.
|
|
86
88
|
|
|
87
89
|
### Routing Ambiguity Boundaries
|
|
88
90
|
|
|
@@ -60,37 +60,37 @@ principles = [
|
|
|
60
60
|
[[agent.menu]]
|
|
61
61
|
code = "TMT"
|
|
62
62
|
description = "Teach Me Testing — interactive learning companion with 7 progressive sessions from fundamentals to advanced practices"
|
|
63
|
-
skill = "bmad-teach-me-testing"
|
|
63
|
+
skill = "bmad-tea-teach-me-testing"
|
|
64
64
|
|
|
65
65
|
[[agent.menu]]
|
|
66
66
|
code = "TD"
|
|
67
67
|
description = "Test Design — risk assessment, NFR planning, and coverage strategy for system or epic scope"
|
|
68
|
-
skill = "bmad-
|
|
68
|
+
skill = "bmad-tea-test-design"
|
|
69
69
|
|
|
70
70
|
[[agent.menu]]
|
|
71
71
|
code = "TF"
|
|
72
72
|
description = "Test Framework: initialize framework architecture and optional CI/CD quality pipeline"
|
|
73
|
-
skill = "bmad-
|
|
73
|
+
skill = "bmad-tea-framework"
|
|
74
74
|
|
|
75
75
|
[[agent.menu]]
|
|
76
76
|
code = "CI"
|
|
77
77
|
description = "Continuous Integration: scaffold a CI/CD quality pipeline through Framework CI scope"
|
|
78
|
-
skill = "bmad-
|
|
78
|
+
skill = "bmad-tea-framework"
|
|
79
79
|
|
|
80
80
|
[[agent.menu]]
|
|
81
81
|
code = "AT"
|
|
82
82
|
description = "ATDD: generate and verify failing acceptance tests through Automate red mode"
|
|
83
|
-
skill = "bmad-
|
|
83
|
+
skill = "bmad-tea-automate"
|
|
84
84
|
|
|
85
85
|
[[agent.menu]]
|
|
86
86
|
code = "TA"
|
|
87
87
|
description = "Test Automation: generate prioritized tests in expand mode, run and heal test defects, and report product defects"
|
|
88
|
-
skill = "bmad-
|
|
88
|
+
skill = "bmad-tea-automate"
|
|
89
89
|
|
|
90
90
|
[[agent.menu]]
|
|
91
91
|
code = "EV"
|
|
92
92
|
description = "Evaluate — build and run a scored, evidence-backed evaluation of an agent, skill, workflow, or tool-use system, with seeded-defect proof and CI enforcement"
|
|
93
|
-
skill = "bmad-
|
|
93
|
+
skill = "bmad-tea-evaluate"
|
|
94
94
|
|
|
95
95
|
[[agent.menu]]
|
|
96
96
|
code = "GATE"
|
|
@@ -100,14 +100,14 @@ prompt = "Help the user run the release gate path. First determine which evidenc
|
|
|
100
100
|
[[agent.menu]]
|
|
101
101
|
code = "RV"
|
|
102
102
|
description = "Review Tests — perform a quality check against written tests using comprehensive knowledge base and best practices"
|
|
103
|
-
skill = "bmad-
|
|
103
|
+
skill = "bmad-tea-test-review"
|
|
104
104
|
|
|
105
105
|
[[agent.menu]]
|
|
106
106
|
code = "NR"
|
|
107
107
|
description = "NFR Evidence Audit — assess implemented NFR evidence and recommend actions"
|
|
108
|
-
skill = "bmad-
|
|
108
|
+
skill = "bmad-tea-nfr"
|
|
109
109
|
|
|
110
110
|
[[agent.menu]]
|
|
111
111
|
code = "TR"
|
|
112
112
|
description = "Trace Coverage — map requirements to tests (Phase 1) and make quality gate decision (Phase 2)"
|
|
113
|
-
skill = "bmad-
|
|
113
|
+
skill = "bmad-tea-trace"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: bmad-
|
|
2
|
+
name: bmad-tea-automate
|
|
3
3
|
description: 'Generate tests in red or expand mode and run-and-heal new tests. Use when the user says "lets expand test coverage", "I want to automate tests", "lets write acceptance tests", or "I want to do ATDD"'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -28,6 +28,8 @@ The router selects exactly one customization surface; activation below uses that
|
|
|
28
28
|
|
|
29
29
|
## On Activation
|
|
30
30
|
|
|
31
|
+
Before resolving customizations or running hooks, inspect `{project-root}/_bmad/custom/` for `bmad-testarch-automate.toml`, `bmad-testarch-automate.user.toml`, `bmad-testarch-atdd.toml`, and `bmad-testarch-atdd.user.toml`. If any exists, stop and tell the user to run `npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}`. Resolve any reported manual merge, then start a fresh chat. Do not continue with default settings while legacy overrides remain.
|
|
32
|
+
|
|
31
33
|
### Step 1: Resolve the Workflow Block
|
|
32
34
|
|
|
33
35
|
When `workflow_customization_manual = true`, use the already resolved red workflow block and skip this resolver command.
|
|
@@ -548,7 +548,7 @@ Check the generation deliverables below and record the shared loop's actual exec
|
|
|
548
548
|
**Resolution:**
|
|
549
549
|
|
|
550
550
|
- **HALT workflow** - framework is required
|
|
551
|
-
- Message: "Framework scaffolding required. Run `/bmad-
|
|
551
|
+
- Message: "Framework scaffolding required. Run `/bmad-tea-framework` first."
|
|
552
552
|
- User must run framework workflow before automate
|
|
553
553
|
|
|
554
554
|
### Issue: No automation targets identified
|
|
@@ -26,7 +26,7 @@ This workflow uses **step-file architecture**:
|
|
|
26
26
|
|
|
27
27
|
This instruction file owns red mode after canonical activation.
|
|
28
28
|
Set `test_mode = red` when a direct runner loads this file without the shared router; keep `{skill-root}` canonical.
|
|
29
|
-
Resolve red customization by merging `{skill-root}/red/customize.toml` with `_bmad/custom/bmad-
|
|
29
|
+
Resolve red customization by merging `{skill-root}/red/customize.toml` with `_bmad/custom/bmad-tea-atdd.toml` and `.user.toml` manually and retain its workflow block.
|
|
30
30
|
Entry activation and operation routing remain in `{skill-root}/SKILL.md`.
|
|
31
31
|
|
|
32
32
|
### 1. Configuration Loading
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Test Architect workflow: bmad-
|
|
2
|
-
name: bmad-
|
|
1
|
+
# Test Architect workflow: bmad-tea-atdd
|
|
2
|
+
name: bmad-tea-atdd
|
|
3
3
|
# prettier-ignore
|
|
4
4
|
description: 'Generate red-phase acceptance test scaffolds using TDD cycle. Use when the user says "lets write acceptance tests" or "I want to do ATDD"'
|
|
5
5
|
|
package/skills/{bmad-testarch-automate → bmad-tea-automate}/resources/test-generation-routing.md
RENAMED
|
@@ -7,7 +7,7 @@ These are separate from the worker execution mode (`tea_execution_mode`) and the
|
|
|
7
7
|
## 1. Choose the Operation and Mode
|
|
8
8
|
|
|
9
9
|
Keep the original request and supplied files.
|
|
10
|
-
Use `bmad-
|
|
10
|
+
Use `bmad-tea-automate` as `test_entry`. Preserve a legacy `testEntry` value when resuming an existing checkpoint. An AT menu invocation presets red mode; a single explicit user mode overrides that preset.
|
|
11
11
|
Resolve explicit Create, Resume, Validate or Edit wording first.
|
|
12
12
|
A request to generate tests means Create.
|
|
13
13
|
In a headless or autonomous invocation, an unspecified operation defaults to Create without a menu.
|
|
@@ -15,7 +15,7 @@ In a headless or autonomous invocation, an unspecified operation defaults to Cre
|
|
|
15
15
|
Start with `test_mode_defaulted = false`.
|
|
16
16
|
A single explicit `red mode` or `expand mode` is authoritative.
|
|
17
17
|
Otherwise an AT menu invocation selects red. Acceptance tests before implementation, `write acceptance tests`, `acceptance test scaffolds`, ATDD, or the TDD red phase also selects red; coverage expansion, tests for existing code, or automation selects expand.
|
|
18
|
-
Treat the invoked command name as an entry default, separate from the user's task wording: mentioning `/bmad-
|
|
18
|
+
Treat the invoked command name as an entry default, separate from the user's task wording: mentioning `/bmad-tea-automate` in an acceptance-test request cannot count as an expand signal.
|
|
19
19
|
When no task mode signal is present, default to expand.
|
|
20
20
|
Ask once which mode to use only when explicit task mode signals conflict in an interactive run, including a request that names both `red mode` and `expand mode`.
|
|
21
21
|
A headless or autonomous run with conflicting signals defaults to expand without a question.
|
|
@@ -24,14 +24,14 @@ An explicit mode in the user's request overrides the default.
|
|
|
24
24
|
|
|
25
25
|
The following routing examples apply before customization activation:
|
|
26
26
|
|
|
27
|
-
| Invocation
|
|
28
|
-
|
|
|
29
|
-
| `bmad-
|
|
30
|
-
| `bmad-
|
|
31
|
-
| `bmad-
|
|
32
|
-
| `bmad-
|
|
33
|
-
| `bmad-
|
|
34
|
-
| `bmad-tea` AT menu
|
|
27
|
+
| Invocation | Task signal | Run mode | Selected mode | Mode question |
|
|
28
|
+
| ------------------- | --------------------------- | ----------------------- | ---------------- | ------------- |
|
|
29
|
+
| `bmad-tea-automate` | none | interactive | expand (default) | no |
|
|
30
|
+
| `bmad-tea-automate` | lets write acceptance tests | interactive or headless | red | no |
|
|
31
|
+
| `bmad-tea-automate` | acceptance test scaffolds | interactive or headless | red | no |
|
|
32
|
+
| `bmad-tea-automate` | red and expand task signals | interactive | unresolved | ask once |
|
|
33
|
+
| `bmad-tea-automate` | red and expand task signals | headless | expand (default) | no |
|
|
34
|
+
| `bmad-tea` AT menu | none | interactive or headless | red | no |
|
|
35
35
|
|
|
36
36
|
For Resume with an exact checkpoint path, resolve it against the project root, verify that it exists and is readable, and retain it as `resume_checkpoint_path`. A missing supplied file stops before activation; do not search for a replacement. The checkpoint path itself is not a new target scope.
|
|
37
37
|
Infer the original mode from that supplied checkpoint's `testMode` or its owning artifact folder: `atdd/` is red and `automate/` is expand; legacy `atdd-checklist-*.md` is red and `automation-summary.md` is expand.
|
|
@@ -43,13 +43,13 @@ Do not restart Create or execute a completed generation step on an explicit Resu
|
|
|
43
43
|
|
|
44
44
|
## 2. Choose Exactly One Customization Surface
|
|
45
45
|
|
|
46
|
-
For red set `workflow-skill-root = {skill-root}/red` and `workflow-skill-name = bmad-
|
|
47
|
-
For expand set `workflow-skill-root = {skill-root}` and `workflow-skill-name = bmad-
|
|
48
|
-
Resolve `{skill-root}/red/customize.toml` plus `_bmad/custom/bmad-
|
|
46
|
+
For red set `workflow-skill-root = {skill-root}/red` and `workflow-skill-name = bmad-tea-atdd` to select the red customization namespace.
|
|
47
|
+
For expand set `workflow-skill-root = {skill-root}` and `workflow-skill-name = bmad-tea-automate`.
|
|
48
|
+
Resolve `{skill-root}/red/customize.toml` plus `_bmad/custom/bmad-tea-atdd.toml` and `.user.toml` manually with the activation merge rules; the resolver's directory-name inference cannot resolve this customization namespace from `red/`.
|
|
49
49
|
Record `workflow_customization_manual = true` and retain the resolved workflow block for its terminal hook.
|
|
50
50
|
Keep the resolver's workflow namespace and structural merge rules intact.
|
|
51
51
|
Resolve only the selected surface's defaults, team file and user file.
|
|
52
|
-
Red uses `_bmad/custom/bmad-
|
|
52
|
+
Red uses `_bmad/custom/bmad-tea-atdd.toml` and `.user.toml`; expand uses `_bmad/custom/bmad-tea-automate.toml` and `.user.toml`.
|
|
53
53
|
|
|
54
54
|
Run selected prepend hooks, load selected persistent facts, load config, greet, then run selected append hooks in that order.
|
|
55
55
|
The selected mode's `workflow.on_complete` executes at its original terminal after outputs are saved, including Validate and Edit.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Test Architect workflow: bmad-
|
|
2
|
-
name: bmad-
|
|
1
|
+
# Test Architect workflow: bmad-tea-automate
|
|
2
|
+
name: bmad-tea-automate
|
|
3
3
|
# prettier-ignore
|
|
4
4
|
description: 'Generate tests in red or expand mode and run-and-heal new tests. Use when the user says "lets expand test coverage", "I want to automate tests", "lets write acceptance tests", or "I want to do ATDD"'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: bmad-
|
|
2
|
+
name: bmad-tea-evaluate
|
|
3
3
|
description: 'Run scored behavioral evaluations and repair gaps. Use when the user says "evaluate this agent" or "I want proof this behaves correctly"'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -23,6 +23,8 @@ You will continue to operate with your given name, identity, and communication_s
|
|
|
23
23
|
|
|
24
24
|
## On Activation
|
|
25
25
|
|
|
26
|
+
Before resolving customizations or running hooks, inspect `{project-root}/_bmad/custom/` for `bmad-testarch-evaluate.toml` and `bmad-testarch-evaluate.user.toml`. If either exists, stop and tell the user to run `npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}`. Resolve any reported manual merge, then start a fresh chat. Do not continue with default settings while legacy overrides remain.
|
|
27
|
+
|
|
26
28
|
### Step 1: Resolve the Workflow Block
|
|
27
29
|
|
|
28
30
|
Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`
|
|
@@ -123,7 +125,7 @@ Interpret a weak result and close the gap. Load `references/gaps.md`.
|
|
|
123
125
|
|
|
124
126
|
### Stage 12: CI
|
|
125
127
|
|
|
126
|
-
Inspect the adopter's repository, place each check in a tier, write `<evaluation-folder>/ci/evaluation-ci-plan.json` and hand it to `bmad-
|
|
128
|
+
Inspect the adopter's repository, place each check in a tier, write `<evaluation-folder>/ci/evaluation-ci-plan.json` and hand it to `bmad-tea-framework` with CI setup scope. Load `references/ci.md`.
|
|
127
129
|
|
|
128
130
|
## On Complete
|
|
129
131
|
|
|
@@ -51,6 +51,6 @@ Stage 12 appends this section as each inspection finishes.
|
|
|
51
51
|
- Release flow: `release.yml` on `v*` tags, with `docs/RELEASING.md` naming the tag as the gate.
|
|
52
52
|
- Risk profile: one `critical` behavior (`contract.json`), about forty model calls per live run, nightly and release accepted and per pull request not (the adopter's answer), a missed defect ships within a day (`docs/RELEASING.md`).
|
|
53
53
|
- Tier exits: `pr` 0; `scheduled` not run, `RESERVATION_MODEL_KEY` is absent on this machine; `release` 2, repair owned by Stage 3.
|
|
54
|
-
- Hand-off status: framework skill invoked with CI scope and Create or Edit, or an open item such as a declined baseline or a missing `bmad-
|
|
54
|
+
- Hand-off status: framework skill invoked with CI scope and Create or Edit, or an open item such as a declined baseline or a missing `bmad-tea-framework`.
|
|
55
55
|
|
|
56
56
|
Replace this worked record with the inspected target's facts and source paths. Record the selected target kind and interface in `evaluation.json` alone.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DO NOT EDIT -- overwritten on every update.
|
|
2
2
|
#
|
|
3
|
-
# Workflow customization surface for bmad-
|
|
3
|
+
# Workflow customization surface for bmad-tea-evaluate. Mirrors the
|
|
4
4
|
# agent customization shape under the [workflow] namespace.
|
|
5
5
|
|
|
6
6
|
[workflow]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CI
|
|
2
2
|
|
|
3
|
-
Run this stage after the evaluation checks clean and a scored run exists (Stages 1 to 11). It writes `<evaluation-folder>/ci/evaluation-ci-plan.json`, the platform-neutral plan that is the only definition of which check runs when and what blocks, then hands the plan to `bmad-
|
|
3
|
+
Run this stage after the evaluation checks clean and a scored run exists (Stages 1 to 11). It writes `<evaluation-folder>/ci/evaluation-ci-plan.json`, the platform-neutral plan that is the only definition of which check runs when and what blocks, then hands the plan to `bmad-tea-framework` with explicit CI setup scope. Never write a pipeline file here. The plan's schema and placement rules belong to the installed runtime, in `{tea_evaluations_folder}/node_modules/bmad-method-test-architecture-enterprise/cli/lib/evaluate/schemas/evaluation-ci-plan.schema.json` and `{tea_evaluations_folder}/node_modules/bmad-method-test-architecture-enterprise/cli/lib/evaluate/ci-plan.js` (`cli/lib/evaluate/...` from the repository root inside TeA's own package); read them there and copy neither. `npm exec --prefix {tea_evaluations_folder} -- tea-evaluate check --evaluation <evaluation-folder>` reports the plan's findings under the `ci-plan` rule family, so the command that validates the rest of the evaluation validates the plan.
|
|
4
4
|
|
|
5
5
|
If `check` reports a finding outside the `ci-plan` family, or no scored run exists, name the missing prerequisite and return to its stage before inspecting CI.
|
|
6
6
|
|
|
@@ -48,7 +48,7 @@ The `release` tier is the usual home, since its event is the one that starts the
|
|
|
48
48
|
Name in the `trigger` of every check on the gating tier each event that starts the gated job's workflow.
|
|
49
49
|
When that workflow also starts on `workflow_dispatch`, as a nightly `deploy.yml` does, list `manual-dispatch` beside `release`, since the CI skill refuses a gate whose job already ran on an event where the tier's evaluation job is skipped.
|
|
50
50
|
The jobs a tier gates are the union of `gates` over the checks the plan places on that tier, so name a job once, on any check of the tier, and a name repeated across the tier's checks is merged.
|
|
51
|
-
`check` accepts a job id and reports any other name under rule `gates`; it cannot tell whether the repository holds that job, which `bmad-
|
|
51
|
+
`check` accepts a job id and reports any other name under rule `gates`; it cannot tell whether the repository holds that job, which `bmad-tea-framework` answers when it renders the wait.
|
|
52
52
|
The wait holds best when the job lives in the workflow file the CI skill edits, which holds the evaluation jobs too: the job then waits through `needs`, and the step refuses the plan when the job already ran in a run where the tier's evaluation job is skipped, such as a deploy on every `push` beside an evaluation job guarded to tags, or when the evaluation job runs on a run the job did not run on before, such as a `workflow_dispatch` the plan adds to a tag-push release file, while a run the render adds that the evaluation job skips is skipped through the wait and is no conflict.
|
|
53
53
|
A job in another workflow file waits through a `workflow_run` trigger, which the step refuses for a pull request tier, for a tier whose evaluation job carries a ref or cron guard, and for a job with its own `needs`, `if:` or ref and event contexts, so hand the CI skill the workflow file that holds the job when you can.
|
|
54
54
|
Leave `gates` out when the inspection found no such job or the adopter declined the gate, and say which in the `reason` of the release entries.
|
|
@@ -250,7 +250,7 @@ With no accepted baseline, skip the tier runs and record that in the `## CI` sec
|
|
|
250
250
|
|
|
251
251
|
## Hand the plan to framework setup with CI scope
|
|
252
252
|
|
|
253
|
-
Invoke `bmad-
|
|
253
|
+
Invoke `bmad-tea-framework` with explicit CI setup scope and Edit operation on the adopter's pipeline file, naming the plan's path, or Create when the inspection found no pipeline file. Its CI phase detects `ci/evaluation-ci-plan.json` and validates it; the rendering rules belong to `skills/bmad-tea-framework/ci/steps-c/step-03b-render-evaluation-plans.md` from TEA's repository root. In an installed skill set, resolve it as `{skill-root}/../bmad-tea-framework/ci/steps-c/step-03b-render-evaluation-plans.md`, where `{skill-root}` is the Evaluate skill root. Setup scope and operation are independent, so this handoff selects CI and preserves an existing framework. CI Edit validates the changed pipeline syntax, injection safety and evaluation-plan rendering/gates; it does not require the adopter's full suite to pass or activate framework hooks. CI Create uses the existing framework contract and its execution gate. Name in the request the concrete event of this repository for each tier it should render, such as `release`: the push of `v*` tags that starts `.github/workflows/release.yml`.
|
|
254
254
|
That step renders each `gates` entry as a wait of the named job on the evaluation job of the tier, and its summary reports the edit to the job, a name that matches no job and a conflicting gate, so relay that report to the adopter.
|
|
255
255
|
When the plan gates a job, invoke it on the workflow file that holds that job.
|
|
256
|
-
When that skill is not installed, give the adopter the request and the plan's path and record the hand-off as an open item in the inspection record. Stage 12 is complete when the plan passes `check` and the hand-off is made; a declined baseline or a missing `bmad-
|
|
256
|
+
When that skill is not installed, give the adopter the request and the plan's path and record the hand-off as an open item in the inspection record. Stage 12 is complete when the plan passes `check` and the hand-off is made; a declined baseline or a missing `bmad-tea-framework` stays a named open item in the `## CI` section and does not reopen the stage. Finish with the closing summary: the placement table, the deviations and their reasons, the secrets the live tiers need (the names from `environmentKeys`), the gates adopted, the baseline still to accept, every tier that exited non-zero with the stage that owns its repair, and each publish or deploy job that waits for the evaluation job through `gates`, with every such job the plan leaves ungated and the reason.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: bmad-
|
|
2
|
+
name: bmad-tea-framework
|
|
3
3
|
description: 'Initialize test framework and CI/CD setup for browser, backend or mobile stacks. Use when the user says "lets setup test framework" or "I want to initialize testing framework"'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -26,6 +26,8 @@ Before activation hooks or project writes, load `{skill-root}/resources/setup-ro
|
|
|
26
26
|
|
|
27
27
|
## On Activation
|
|
28
28
|
|
|
29
|
+
Before resolving customizations or running hooks, inspect `{project-root}/_bmad/custom/` for `bmad-testarch-framework.toml`, `bmad-testarch-framework.user.toml`, `bmad-testarch-ci.toml`, and `bmad-testarch-ci.user.toml`. If any exists, stop and tell the user to run `npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}`. Resolve any reported manual merge, then start a fresh chat. Do not continue with default settings while legacy overrides remain.
|
|
30
|
+
|
|
29
31
|
### Step 1: Resolve the Workflow Block
|
|
30
32
|
|
|
31
33
|
Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`
|
|
@@ -68,9 +70,9 @@ Activation is complete. Begin the workflow below.
|
|
|
68
70
|
|
|
69
71
|
## Workflow Architecture
|
|
70
72
|
|
|
71
|
-
The existing framework steps at the skill root and the CI steps under `ci/` share scope and operation routing. Select CI setup by asking `bmad-
|
|
73
|
+
The existing framework steps at the skill root and the CI steps under `ci/` share scope and operation routing. Select CI setup by asking `bmad-tea-framework` for CI scope.
|
|
72
74
|
|
|
73
|
-
Create and edit CI phases detect `ci/evaluation-ci-plan.json` and render it through `{skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md`. Evaluate invokes `bmad-
|
|
75
|
+
Create and edit CI phases detect `ci/evaluation-ci-plan.json` and render it through `{skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md`. Evaluate invokes `bmad-tea-framework` with CI scope in create or edit mode.
|
|
74
76
|
|
|
75
77
|
## Initialization Sequence
|
|
76
78
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
+
# CI scope defaults for bmad-tea-framework. Project overrides live in
|
|
3
|
+
# _bmad/custom/bmad-tea-ci.toml and bmad-tea-ci.user.toml.
|
|
4
|
+
|
|
5
|
+
[workflow]
|
|
6
|
+
activation_steps_prepend = []
|
|
7
|
+
activation_steps_append = []
|
|
8
|
+
persistent_facts = []
|
|
9
|
+
on_complete = ""
|
|
10
|
+
ci_platform = "auto"
|
|
@@ -33,7 +33,7 @@ From `workflow.yaml`, resolve:
|
|
|
33
33
|
|
|
34
34
|
### 2. Canonical CI Activation
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
When the CI menu code selects this phase, preset `setup_scope = ci`, then load `{skill-root}/SKILL.md` and its shared router before executing a phase. Keep the original operation and CI customization. CI instructions, templates and steps resolve under `{skill-root}/ci/`.
|
|
37
37
|
|
|
38
38
|
### 3. First Step
|
|
39
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DO NOT EDIT -- overwritten on every update.
|
|
2
2
|
#
|
|
3
|
-
# Workflow customization surface for bmad-
|
|
3
|
+
# Workflow customization surface for bmad-tea-framework. Mirrors the
|
|
4
4
|
# agent customization shape under the [workflow] namespace.
|
|
5
5
|
|
|
6
6
|
[workflow]
|
|
@@ -38,5 +38,5 @@ persistent_facts = []
|
|
|
38
38
|
on_complete = ""
|
|
39
39
|
|
|
40
40
|
# Explicit canonical team/user override wins; otherwise CI alias ci_platform applies.
|
|
41
|
-
# The default auto value does not mask a migrated bmad-
|
|
41
|
+
# The default auto value does not mask a migrated bmad-tea-ci override.
|
|
42
42
|
ci_platform = "auto"
|
|
@@ -164,7 +164,7 @@ This project runs on Claude Code, which supports tool hooks, so the hook was ins
|
|
|
164
164
|
`pactConfigGlobs` stayed empty: no pact vitest config exists (see Contract Testing above). `excludeGlobs` stayed empty: no k6 scripts in this project.
|
|
165
165
|
|
|
166
166
|
- All three hooks (`--pre`, `--post`, `--stop`) registered under `hooks` in `.claude/settings.json`, merged into the file's existing content: the project already had an unrelated `permissions` block, which was preserved as-is.
|
|
167
|
-
- `tests/README.md` now documents that enforced rules come from the `Absolute`-severity rows of the `bmad-
|
|
167
|
+
- `tests/README.md` now documents that enforced rules come from the `Absolute`-severity rows of the `bmad-tea-test-review` criteria registry (for example, the H1 hard-wait pattern and the H5 file-length ceiling), not from the hook itself, and that a rule can be turned off per project via `disabledRules` in `.tea/enforce-config.json` provided the reason is stated in the commit.
|
|
168
168
|
|
|
169
169
|
---
|
|
170
170
|
|
package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/hooks/tea-enforce.cjs
RENAMED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* WHAT IT ENFORCES, AND WHAT IT DELIBERATELY DOES NOT
|
|
10
10
|
*
|
|
11
|
-
* Every rule here is a row from `bmad-
|
|
11
|
+
* Every rule here is a row from `bmad-tea-test-review/steps-c/criteria-registry.md`,
|
|
12
12
|
* gated `Absolute` there, and mechanically decidable by pattern. That is a small
|
|
13
13
|
* subset on purpose. The registry's Absolute rows that need a judgment a regex
|
|
14
14
|
* cannot make (C5 mock-asserted-against-itself, C6 unreachable assertion, H3
|
|
@@ -79,7 +79,7 @@ const crypto = require('node:crypto');
|
|
|
79
79
|
const fs = require('node:fs');
|
|
80
80
|
const path = require('node:path');
|
|
81
81
|
|
|
82
|
-
const REGISTRY_PATH = 'bmad-
|
|
82
|
+
const REGISTRY_PATH = 'bmad-tea-test-review/steps-c/criteria-registry.md';
|
|
83
83
|
|
|
84
84
|
// ---------------------------------------------------------------------------
|
|
85
85
|
// Configuration
|
package/skills/{bmad-testarch-framework → bmad-tea-framework}/resources/setup-phase-completion.md
RENAMED
|
@@ -26,7 +26,7 @@ Edit/Validate results and hook failures never mutate historical Create checkpoin
|
|
|
26
26
|
|
|
27
27
|
## 2. Phase Handoff and CI Hook
|
|
28
28
|
|
|
29
|
-
After the operation's completion criteria are satisfied, journal `phase-handoff` before the applicable phase hook. CI uses the
|
|
29
|
+
After the operation's completion criteria are satisfied, journal `phase-handoff` before the applicable phase hook. CI uses the retained `ci_workflow.on_complete` from activation. Empty hooks record a skipped result.
|
|
30
30
|
|
|
31
31
|
Execute the CI hook with key `ci.on_complete` through `setup-state.md` section 3: save its exact instruction and started marker before execution, skip completed entries, halt on uncertain started entries, and save completion only after success. A failed phase hook leaves this operation's journal in progress. Create can mirror its hook state to its own phase checkpoint; Edit/Validate preserve old Create checkpoint contents.
|
|
32
32
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Shared Setup Router
|
|
2
2
|
|
|
3
|
-
Read this resource and `{skill-root}/resources/setup-state.md` completely before activation. `{skill-root}` always names `bmad-
|
|
3
|
+
Read this resource and `{skill-root}/resources/setup-state.md` completely before activation. `{skill-root}` always names `bmad-tea-framework`. Keep the original request and supplied artifact paths through every handoff.
|
|
4
4
|
|
|
5
5
|
## 1. Read-Only Request Gate: Before Activation
|
|
6
6
|
|
|
@@ -29,8 +29,8 @@ Before SKILL.md executes prepend hooks or greets, resolve settings for every req
|
|
|
29
29
|
|
|
30
30
|
When scope includes CI:
|
|
31
31
|
|
|
32
|
-
1.
|
|
33
|
-
2. Structurally merge the CI defaults, `_bmad/custom/bmad-
|
|
32
|
+
1. Read `{skill-root}/ci/customize.toml` for CI defaults: `ci_platform = auto`, empty `activation_steps_prepend`, `activation_steps_append`, `persistent_facts`, and `on_complete`.
|
|
33
|
+
2. Structurally merge the CI defaults, `_bmad/custom/bmad-tea-ci.toml`, and `_bmad/custom/bmad-tea-ci.user.toml`, skipping missing override files. Existing CI overrides, including migrated platform settings, remain effective.
|
|
34
34
|
3. Store the result as `ci_workflow`. SKILL.md executes applicable prepend entries before greeting, loads applicable facts/globs in lexical order, and executes append entries after greeting through `setup-state.md` section 3's individual durable hook protocol. On Resume, resolve current settings and reload applicable facts; skip completed hook entries and halt on uncertain started entries. Save each applicable phase in `activation_completed` only after its activation succeeds. This section resolves settings; it does not replay activation at phase or worker handoffs.
|
|
35
35
|
4. Framework steps use canonical `workflow`. CI steps read `ci_workflow` for their legacy hooks/facts and the effective platform below. Keep `{skill-root}` bound to the canonical directory for every CI asset.
|
|
36
36
|
|
|
@@ -4,7 +4,7 @@ recovery_decision: 'fresh'
|
|
|
4
4
|
workflowStatus: 'in-progress'
|
|
5
5
|
setup_scope: 'both'
|
|
6
6
|
setup_operation: 'create'
|
|
7
|
-
setup_entry: 'bmad-
|
|
7
|
+
setup_entry: 'bmad-tea-framework'
|
|
8
8
|
ci_scope_answered: true
|
|
9
9
|
ci_scope_defaulted: false
|
|
10
10
|
framework_first_accepted: false
|
package/skills/{bmad-testarch-framework → bmad-tea-framework}/steps-c/step-04-docs-and-scripts.md
RENAMED
|
@@ -84,11 +84,11 @@ Document that `maestro test` needs a booted simulator or emulator and an install
|
|
|
84
84
|
|
|
85
85
|
The knowledge fragments are advisory and `test-review` is post-hoc. Between the two sits the write itself, and nothing occupied it: a `.only`, a `waitForTimeout`, or a `Thread.sleep` could be written, committed, and only caught at review. This step installs the hook that blocks the write instead.
|
|
86
86
|
|
|
87
|
-
Install it whenever the agent platform supports tool hooks. Claude Code does, through `.claude/settings.json`. Cursor, Windsurf, and Codex do not have an equivalent write-time interception point today, so on those platforms skip this section, say so in the summary, and note that `bmad-
|
|
87
|
+
Install it whenever the agent platform supports tool hooks. Claude Code does, through `.claude/settings.json`. Cursor, Windsurf, and Codex do not have an equivalent write-time interception point today, so on those platforms skip this section, say so in the summary, and note that `bmad-tea-test-review` remains the enforcement path.
|
|
88
88
|
|
|
89
89
|
### 3.1 Copy the hook script
|
|
90
90
|
|
|
91
|
-
Copy `{skill-root}/resources/hooks/tea-enforce.cjs` to `{project-root}/.claude/hooks/tea-enforce.cjs` **byte for byte**. Do not retype it, do not trim it, and do not "adapt" its rule table: the rules are generated from `bmad-
|
|
91
|
+
Copy `{skill-root}/resources/hooks/tea-enforce.cjs` to `{project-root}/.claude/hooks/tea-enforce.cjs` **byte for byte**. Do not retype it, do not trim it, and do not "adapt" its rule table: the rules are generated from `bmad-tea-test-review/steps-c/criteria-registry.md` and a test in the TEA repo asserts the two still agree. A locally edited copy silently opts the project out of that guarantee.
|
|
92
92
|
|
|
93
93
|
The script has no dependencies and runs on the Node that installed TEA. The `.cjs` extension is deliberate so it keeps working in a project whose `package.json` sets `"type": "module"`.
|
|
94
94
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Test Architect workflow: bmad-
|
|
2
|
-
name: bmad-
|
|
1
|
+
# Test Architect workflow: bmad-tea-framework
|
|
2
|
+
name: bmad-tea-framework
|
|
3
3
|
# prettier-ignore
|
|
4
4
|
description: 'Initialize test framework and CI/CD setup for browser, backend or mobile stacks. Use when the user says "lets setup test framework" or "I want to initialize testing framework"'
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: bmad-
|
|
2
|
+
name: bmad-tea-nfr
|
|
3
3
|
description: 'Audit NFR evidence for performance, security, reliability, and maintainability. Use when implementation evidence exists and the user says "audit NFR evidence", "audit NFRs", or "evaluate non-functional requirements"'
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -22,6 +22,8 @@ You will continue to operate with your given name, identity, and communication_s
|
|
|
22
22
|
|
|
23
23
|
## On Activation
|
|
24
24
|
|
|
25
|
+
Before resolving customizations or running hooks, inspect `{project-root}/_bmad/custom/` for `bmad-testarch-nfr.toml` and `bmad-testarch-nfr.user.toml`. If either exists, stop and tell the user to run `npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}`. Resolve any reported manual merge, then start a fresh chat. Do not continue with default settings while legacy overrides remain.
|
|
26
|
+
|
|
25
27
|
### Step 1: Resolve the Workflow Block
|
|
26
28
|
|
|
27
29
|
Run: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow`
|
|
@@ -397,9 +397,9 @@ The template ends with this snippet and every audit writes it. It is the machine
|
|
|
397
397
|
|
|
398
398
|
**Next Actions:**
|
|
399
399
|
|
|
400
|
-
- If PASS ✅: Run `/bmad-
|
|
401
|
-
- If CONCERNS ⚠️: Address HIGH/CRITICAL issues, re-run `/bmad-
|
|
402
|
-
- If FAIL ❌: Resolve FAIL status NFRs, re-run `/bmad-
|
|
400
|
+
- If PASS ✅: Run `/bmad-tea-trace` Phase 2 for the release gate decision, or release
|
|
401
|
+
- If CONCERNS ⚠️: Address HIGH/CRITICAL issues, re-run `/bmad-tea-nfr`
|
|
402
|
+
- If FAIL ❌: Resolve FAIL status NFRs, re-run `/bmad-tea-nfr`
|
|
403
403
|
|
|
404
404
|
**Critical Issues:** {COUNT}
|
|
405
405
|
**High Priority Issues:** {COUNT}
|