bmad-method 4.37.0 → 4.39.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/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
- package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
- package/.github/workflows/discord.yaml +11 -2
- package/.github/workflows/format-check.yaml +42 -0
- package/.github/workflows/manual-release.yaml +173 -0
- package/.husky/pre-commit +3 -0
- package/.vscode/settings.json +26 -1
- package/CHANGELOG.md +2 -23
- package/README.md +2 -0
- package/bmad-core/agent-teams/team-all.yaml +1 -1
- package/bmad-core/agents/analyst.md +16 -15
- package/bmad-core/agents/architect.md +11 -11
- package/bmad-core/agents/bmad-master.md +23 -22
- package/bmad-core/agents/bmad-orchestrator.md +13 -17
- package/bmad-core/agents/dev.md +14 -11
- package/bmad-core/agents/pm.md +15 -14
- package/bmad-core/agents/po.md +9 -8
- package/bmad-core/agents/qa.md +42 -22
- package/bmad-core/agents/sm.md +7 -6
- package/bmad-core/agents/ux-expert.md +6 -5
- package/bmad-core/core-config.yaml +2 -0
- package/bmad-core/data/bmad-kb.md +1 -1
- package/bmad-core/data/test-levels-framework.md +146 -0
- package/bmad-core/data/test-priorities-matrix.md +172 -0
- package/bmad-core/tasks/apply-qa-fixes.md +148 -0
- package/bmad-core/tasks/facilitate-brainstorming-session.md +1 -1
- package/bmad-core/tasks/nfr-assess.md +343 -0
- package/bmad-core/tasks/qa-gate.md +161 -0
- package/bmad-core/tasks/review-story.md +234 -74
- package/bmad-core/tasks/risk-profile.md +353 -0
- package/bmad-core/tasks/test-design.md +174 -0
- package/bmad-core/tasks/trace-requirements.md +264 -0
- package/bmad-core/templates/architecture-tmpl.yaml +49 -49
- package/bmad-core/templates/brainstorming-output-tmpl.yaml +5 -5
- package/bmad-core/templates/brownfield-architecture-tmpl.yaml +31 -31
- package/bmad-core/templates/brownfield-prd-tmpl.yaml +13 -13
- package/bmad-core/templates/competitor-analysis-tmpl.yaml +19 -6
- package/bmad-core/templates/front-end-architecture-tmpl.yaml +21 -9
- package/bmad-core/templates/front-end-spec-tmpl.yaml +24 -24
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +122 -104
- package/bmad-core/templates/market-research-tmpl.yaml +2 -2
- package/bmad-core/templates/prd-tmpl.yaml +9 -9
- package/bmad-core/templates/project-brief-tmpl.yaml +4 -4
- package/bmad-core/templates/qa-gate-tmpl.yaml +102 -0
- package/bmad-core/templates/story-tmpl.yaml +12 -12
- package/bmad-core/workflows/brownfield-fullstack.yaml +9 -9
- package/bmad-core/workflows/brownfield-service.yaml +1 -1
- package/bmad-core/workflows/brownfield-ui.yaml +1 -1
- package/bmad-core/workflows/greenfield-fullstack.yaml +1 -1
- package/bmad-core/workflows/greenfield-service.yaml +1 -1
- package/bmad-core/workflows/greenfield-ui.yaml +1 -1
- package/common/utils/bmad-doc-template.md +5 -5
- package/dist/agents/analyst.txt +1086 -1079
- package/dist/agents/architect.txt +1534 -1526
- package/dist/agents/bmad-master.txt +646 -632
- package/dist/agents/bmad-orchestrator.txt +40 -18
- package/dist/agents/dev.txt +158 -19
- package/dist/agents/pm.txt +1082 -1107
- package/dist/agents/po.txt +314 -332
- package/dist/agents/qa.txt +1754 -151
- package/dist/agents/sm.txt +88 -98
- package/dist/agents/ux-expert.txt +80 -87
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +109 -146
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +75 -86
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +41 -48
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +1903 -1941
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +15 -50
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +149 -195
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -15
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +20 -37
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +2660 -2752
- package/dist/expansion-packs/bmad-creative-writing/agents/beta-reader.txt +871 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/book-critic.txt +78 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/character-psychologist.txt +839 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/cover-designer.txt +85 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/dialog-specialist.txt +861 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/editor.txt +796 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/genre-specialist.txt +927 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/narrative-designer.txt +842 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/plot-architect.txt +1126 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/world-builder.txt +864 -0
- package/dist/expansion-packs/bmad-creative-writing/teams/agent-team.txt +5917 -0
- package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +25 -27
- package/dist/teams/team-all.txt +5541 -3768
- package/dist/teams/team-fullstack.txt +3014 -2987
- package/dist/teams/team-ide-minimal.txt +2219 -469
- package/dist/teams/team-no-ui.txt +2993 -2966
- package/docs/enhanced-ide-development-workflow.md +220 -15
- package/docs/user-guide.md +271 -18
- package/docs/versioning-and-releases.md +122 -44
- package/docs/working-in-the-brownfield.md +264 -31
- package/eslint.config.mjs +119 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +4 -4
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
- package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
- package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +26 -28
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +50 -50
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +23 -23
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +24 -24
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +42 -42
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +5 -5
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +1 -1
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +3 -3
- package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +1 -1
- package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +1 -1
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +23 -23
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +63 -63
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +20 -20
- package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +5 -5
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +1 -1
- package/expansion-packs/bmad-creative-writing/README.md +132 -0
- package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +19 -0
- package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +91 -0
- package/expansion-packs/bmad-creative-writing/agents/book-critic.md +35 -0
- package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +90 -0
- package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +41 -0
- package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +89 -0
- package/expansion-packs/bmad-creative-writing/agents/editor.md +90 -0
- package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +92 -0
- package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +90 -0
- package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +92 -0
- package/expansion-packs/bmad-creative-writing/agents/world-builder.md +91 -0
- package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +15 -0
- package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +15 -0
- package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +15 -0
- package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +18 -0
- package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +49 -0
- package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +15 -0
- package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +16 -0
- package/expansion-packs/bmad-creative-writing/config.yaml +11 -0
- package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +197 -0
- package/expansion-packs/bmad-creative-writing/data/story-structures.md +58 -0
- package/expansion-packs/bmad-creative-writing/docs/brief.md +183 -0
- package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +117 -0
- package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +55 -0
- package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +22 -0
- package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/build-world.md +17 -0
- package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +15 -0
- package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +101 -0
- package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +19 -0
- package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +19 -0
- package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +17 -0
- package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +93 -0
- package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +18 -0
- package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +19 -0
- package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +18 -0
- package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +17 -0
- package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +15 -0
- package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +16 -0
- package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +51 -0
- package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +96 -0
- package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +81 -0
- package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
- package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +97 -0
- package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +77 -0
- package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +54 -0
- package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
- package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +88 -0
- package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +176 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +58 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +51 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +92 -0
- package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +86 -0
- package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +79 -0
- package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +65 -0
- package/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +20 -20
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +7 -7
- package/package.json +62 -39
- package/prettier.config.mjs +32 -0
- package/sync-version.sh +23 -0
- package/tools/bmad-npx-wrapper.js +10 -10
- package/tools/builders/web-builder.js +124 -130
- package/tools/bump-all-versions.js +42 -33
- package/tools/bump-expansion-version.js +23 -16
- package/tools/cli.js +10 -12
- package/tools/flattener/aggregate.js +10 -10
- package/tools/flattener/binary.js +44 -17
- package/tools/flattener/discovery.js +19 -18
- package/tools/flattener/files.js +6 -6
- package/tools/flattener/ignoreRules.js +125 -125
- package/tools/flattener/main.js +426 -70
- package/tools/flattener/projectRoot.js +186 -25
- package/tools/flattener/prompts.js +9 -9
- package/tools/flattener/stats.helpers.js +395 -0
- package/tools/flattener/stats.js +64 -14
- package/tools/flattener/test-matrix.js +413 -0
- package/tools/flattener/xml.js +33 -31
- package/tools/installer/bin/bmad.js +156 -113
- package/tools/installer/config/ide-agent-config.yaml +1 -1
- package/tools/installer/config/install.config.yaml +13 -3
- package/tools/installer/lib/config-loader.js +46 -42
- package/tools/installer/lib/file-manager.js +91 -113
- package/tools/installer/lib/ide-base-setup.js +57 -56
- package/tools/installer/lib/ide-setup.js +545 -399
- package/tools/installer/lib/installer.js +875 -714
- package/tools/installer/lib/memory-profiler.js +54 -53
- package/tools/installer/lib/module-manager.js +19 -15
- package/tools/installer/lib/resource-locator.js +26 -28
- package/tools/installer/package.json +19 -19
- package/tools/lib/dependency-resolver.js +26 -30
- package/tools/lib/yaml-utils.js +7 -7
- package/tools/preview-release-notes.js +66 -0
- package/tools/shared/bannerArt.js +3 -3
- package/tools/sync-installer-version.js +7 -9
- package/tools/update-expansion-version.js +14 -15
- package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
- package/tools/version-bump.js +41 -26
- package/tools/yaml-format.js +56 -43
- package/.github/workflows/release.yaml +0 -60
- package/.releaserc.json +0 -21
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +0 -102
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +0 -13
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +0 -13
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +0 -25
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +0 -34
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +0 -70
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +0 -26
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +0 -109
- package/tools/semantic-release-sync-installer.js +0 -30
package/bmad-core/agents/dev.md
CHANGED
|
@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
|
|
|
17
17
|
activation-instructions:
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
|
-
- STEP 3:
|
|
20
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
21
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
21
22
|
- DO NOT: Load any other agent files during activation
|
|
22
23
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
23
24
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
@@ -29,13 +30,13 @@ activation-instructions:
|
|
|
29
30
|
- CRITICAL: Read the following full files as these are your explicit rules for development standards for this project - {root}/core-config.yaml devLoadAlwaysFiles list
|
|
30
31
|
- CRITICAL: Do NOT load any other files during startup aside from the assigned story and devLoadAlwaysFiles items, unless user requested you do or the following contradicts
|
|
31
32
|
- CRITICAL: Do NOT begin development until a story is not in draft mode and you are told to proceed
|
|
32
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
33
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
33
34
|
agent:
|
|
34
35
|
name: James
|
|
35
36
|
id: dev
|
|
36
37
|
title: Full Stack Developer
|
|
37
38
|
icon: 💻
|
|
38
|
-
whenToUse:
|
|
39
|
+
whenToUse: 'Use for code implementation, debugging, refactoring, and development best practices'
|
|
39
40
|
customization:
|
|
40
41
|
|
|
41
42
|
persona:
|
|
@@ -53,23 +54,25 @@ core_principles:
|
|
|
53
54
|
# All commands require * prefix when used (e.g., *help)
|
|
54
55
|
commands:
|
|
55
56
|
- help: Show numbered list of the following commands to allow selection
|
|
56
|
-
- run-tests: Execute linting and tests
|
|
57
|
-
- explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior engineer.
|
|
58
|
-
- exit: Say goodbye as the Developer, and then abandon inhabiting this persona
|
|
59
57
|
- develop-story:
|
|
60
|
-
- order-of-execution:
|
|
58
|
+
- order-of-execution: 'Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete'
|
|
61
59
|
- story-file-updates-ONLY:
|
|
62
60
|
- CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
|
|
63
61
|
- CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
|
|
64
62
|
- CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
|
|
65
|
-
- blocking:
|
|
66
|
-
- ready-for-review:
|
|
63
|
+
- blocking: 'HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression'
|
|
64
|
+
- ready-for-review: 'Code matches requirements + All validations pass + Follows standards + File List complete'
|
|
67
65
|
- completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist story-dod-checklist→set story status: 'Ready for Review'→HALT"
|
|
66
|
+
- explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior engineer.
|
|
67
|
+
- review-qa: run task `apply-qa-fixes.md'
|
|
68
|
+
- run-tests: Execute linting and tests
|
|
69
|
+
- exit: Say goodbye as the Developer, and then abandon inhabiting this persona
|
|
68
70
|
|
|
69
71
|
dependencies:
|
|
72
|
+
checklists:
|
|
73
|
+
- story-dod-checklist.md
|
|
70
74
|
tasks:
|
|
75
|
+
- apply-qa-fixes.md
|
|
71
76
|
- execute-checklist.md
|
|
72
77
|
- validate-next-story.md
|
|
73
|
-
checklists:
|
|
74
|
-
- story-dod-checklist.md
|
|
75
78
|
```
|
package/bmad-core/agents/pm.md
CHANGED
|
@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
|
|
|
17
17
|
activation-instructions:
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
|
-
- STEP 3:
|
|
20
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
21
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
21
22
|
- DO NOT: Load any other agent files during activation
|
|
22
23
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
23
24
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
@@ -26,7 +27,7 @@ activation-instructions:
|
|
|
26
27
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
27
28
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
28
29
|
- STAY IN CHARACTER!
|
|
29
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
31
|
agent:
|
|
31
32
|
name: John
|
|
32
33
|
id: pm
|
|
@@ -50,32 +51,32 @@ persona:
|
|
|
50
51
|
# All commands require * prefix when used (e.g., *help)
|
|
51
52
|
commands:
|
|
52
53
|
- help: Show numbered list of the following commands to allow selection
|
|
53
|
-
-
|
|
54
|
-
- create-brownfield-prd: run task create-doc.md with template brownfield-prd-tmpl.yaml
|
|
54
|
+
- correct-course: execute the correct-course task
|
|
55
55
|
- create-brownfield-epic: run task brownfield-create-epic.md
|
|
56
|
+
- create-brownfield-prd: run task create-doc.md with template brownfield-prd-tmpl.yaml
|
|
56
57
|
- create-brownfield-story: run task brownfield-create-story.md
|
|
57
58
|
- create-epic: Create epic for brownfield projects (task brownfield-create-epic)
|
|
59
|
+
- create-prd: run task create-doc.md with template prd-tmpl.yaml
|
|
58
60
|
- create-story: Create user story from requirements (task brownfield-create-story)
|
|
59
61
|
- doc-out: Output full document to current destination file
|
|
60
62
|
- shard-prd: run the task shard-doc.md for the provided prd.md (ask if not found)
|
|
61
|
-
- correct-course: execute the correct-course task
|
|
62
63
|
- yolo: Toggle Yolo Mode
|
|
63
64
|
- exit: Exit (confirm)
|
|
64
65
|
dependencies:
|
|
66
|
+
checklists:
|
|
67
|
+
- change-checklist.md
|
|
68
|
+
- pm-checklist.md
|
|
69
|
+
data:
|
|
70
|
+
- technical-preferences.md
|
|
65
71
|
tasks:
|
|
66
|
-
- create-doc.md
|
|
67
|
-
- correct-course.md
|
|
68
|
-
- create-deep-research-prompt.md
|
|
69
72
|
- brownfield-create-epic.md
|
|
70
73
|
- brownfield-create-story.md
|
|
74
|
+
- correct-course.md
|
|
75
|
+
- create-deep-research-prompt.md
|
|
76
|
+
- create-doc.md
|
|
71
77
|
- execute-checklist.md
|
|
72
78
|
- shard-doc.md
|
|
73
79
|
templates:
|
|
74
|
-
- prd-tmpl.yaml
|
|
75
80
|
- brownfield-prd-tmpl.yaml
|
|
76
|
-
|
|
77
|
-
- pm-checklist.md
|
|
78
|
-
- change-checklist.md
|
|
79
|
-
data:
|
|
80
|
-
- technical-preferences.md
|
|
81
|
+
- prd-tmpl.yaml
|
|
81
82
|
```
|
package/bmad-core/agents/po.md
CHANGED
|
@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
|
|
|
17
17
|
activation-instructions:
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
|
-
- STEP 3:
|
|
20
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
21
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
21
22
|
- DO NOT: Load any other agent files during activation
|
|
22
23
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
23
24
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
@@ -26,7 +27,7 @@ activation-instructions:
|
|
|
26
27
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
27
28
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
28
29
|
- STAY IN CHARACTER!
|
|
29
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
31
|
agent:
|
|
31
32
|
name: Sarah
|
|
32
33
|
id: po
|
|
@@ -53,24 +54,24 @@ persona:
|
|
|
53
54
|
# All commands require * prefix when used (e.g., *help)
|
|
54
55
|
commands:
|
|
55
56
|
- help: Show numbered list of the following commands to allow selection
|
|
56
|
-
- execute-checklist-po: Run task execute-checklist (checklist po-master-checklist)
|
|
57
|
-
- shard-doc {document} {destination}: run the task shard-doc against the optionally provided document to the specified destination
|
|
58
57
|
- correct-course: execute the correct-course task
|
|
59
58
|
- create-epic: Create epic for brownfield projects (task brownfield-create-epic)
|
|
60
59
|
- create-story: Create user story from requirements (task brownfield-create-story)
|
|
61
60
|
- doc-out: Output full document to current destination file
|
|
61
|
+
- execute-checklist-po: Run task execute-checklist (checklist po-master-checklist)
|
|
62
|
+
- shard-doc {document} {destination}: run the task shard-doc against the optionally provided document to the specified destination
|
|
62
63
|
- validate-story-draft {story}: run the task validate-next-story against the provided story file
|
|
63
64
|
- yolo: Toggle Yolo Mode off on - on will skip doc section confirmations
|
|
64
65
|
- exit: Exit (confirm)
|
|
65
66
|
dependencies:
|
|
67
|
+
checklists:
|
|
68
|
+
- change-checklist.md
|
|
69
|
+
- po-master-checklist.md
|
|
66
70
|
tasks:
|
|
71
|
+
- correct-course.md
|
|
67
72
|
- execute-checklist.md
|
|
68
73
|
- shard-doc.md
|
|
69
|
-
- correct-course.md
|
|
70
74
|
- validate-next-story.md
|
|
71
75
|
templates:
|
|
72
76
|
- story-tmpl.yaml
|
|
73
|
-
checklists:
|
|
74
|
-
- po-master-checklist.md
|
|
75
|
-
- change-checklist.md
|
|
76
77
|
```
|
package/bmad-core/agents/qa.md
CHANGED
|
@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
|
|
|
17
17
|
activation-instructions:
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
|
-
- STEP 3:
|
|
20
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
21
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
21
22
|
- DO NOT: Load any other agent files during activation
|
|
22
23
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
23
24
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
@@ -26,30 +27,34 @@ activation-instructions:
|
|
|
26
27
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
27
28
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
28
29
|
- STAY IN CHARACTER!
|
|
29
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
31
|
agent:
|
|
31
32
|
name: Quinn
|
|
32
33
|
id: qa
|
|
33
|
-
title:
|
|
34
|
+
title: Test Architect & Quality Advisor
|
|
34
35
|
icon: 🧪
|
|
35
|
-
whenToUse:
|
|
36
|
+
whenToUse: |
|
|
37
|
+
Use for comprehensive test architecture review, quality gate decisions,
|
|
38
|
+
and code improvement. Provides thorough analysis including requirements
|
|
39
|
+
traceability, risk assessment, and test strategy.
|
|
40
|
+
Advisory only - teams choose their quality bar.
|
|
36
41
|
customization: null
|
|
37
42
|
persona:
|
|
38
|
-
role:
|
|
39
|
-
style:
|
|
40
|
-
identity:
|
|
41
|
-
focus:
|
|
43
|
+
role: Test Architect with Quality Advisory Authority
|
|
44
|
+
style: Comprehensive, systematic, advisory, educational, pragmatic
|
|
45
|
+
identity: Test architect who provides thorough quality assessment and actionable recommendations without blocking progress
|
|
46
|
+
focus: Comprehensive quality analysis through test architecture, risk assessment, and advisory gates
|
|
42
47
|
core_principles:
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
48
|
+
- Depth As Needed - Go deep based on risk signals, stay concise when low risk
|
|
49
|
+
- Requirements Traceability - Map all stories to tests using Given-When-Then patterns
|
|
50
|
+
- Risk-Based Testing - Assess and prioritize by probability × impact
|
|
51
|
+
- Quality Attributes - Validate NFRs (security, performance, reliability) via scenarios
|
|
52
|
+
- Testability Assessment - Evaluate controllability, observability, debuggability
|
|
53
|
+
- Gate Governance - Provide clear PASS/CONCERNS/FAIL/WAIVED decisions with rationale
|
|
54
|
+
- Advisory Excellence - Educate through documentation, never block arbitrarily
|
|
55
|
+
- Technical Debt Awareness - Identify and quantify debt with improvement suggestions
|
|
56
|
+
- LLM Acceleration - Use LLMs to accelerate thorough yet focused analysis
|
|
57
|
+
- Pragmatic Balance - Distinguish must-fix from nice-to-have improvements
|
|
53
58
|
story-file-permissions:
|
|
54
59
|
- CRITICAL: When reviewing stories, you are ONLY authorized to update the "QA Results" section of story files
|
|
55
60
|
- CRITICAL: DO NOT modify any other sections including Status, Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Testing, Dev Agent Record, Change Log, or any other sections
|
|
@@ -57,13 +62,28 @@ story-file-permissions:
|
|
|
57
62
|
# All commands require * prefix when used (e.g., *help)
|
|
58
63
|
commands:
|
|
59
64
|
- help: Show numbered list of the following commands to allow selection
|
|
60
|
-
-
|
|
61
|
-
-
|
|
65
|
+
- gate {story}: Execute qa-gate task to write/update quality gate decision in directory from qa.qaLocation/gates/
|
|
66
|
+
- nfr-assess {story}: Execute nfr-assess task to validate non-functional requirements
|
|
67
|
+
- review {story}: |
|
|
68
|
+
Adaptive, risk-aware comprehensive review.
|
|
69
|
+
Produces: QA Results update in story file + gate file (PASS/CONCERNS/FAIL/WAIVED).
|
|
70
|
+
Gate file location: qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
71
|
+
Executes review-story task which includes all analysis and creates gate decision.
|
|
72
|
+
- risk-profile {story}: Execute risk-profile task to generate risk assessment matrix
|
|
73
|
+
- test-design {story}: Execute test-design task to create comprehensive test scenarios
|
|
74
|
+
- trace {story}: Execute trace-requirements task to map requirements to tests using Given-When-Then
|
|
75
|
+
- exit: Say goodbye as the Test Architect, and then abandon inhabiting this persona
|
|
62
76
|
dependencies:
|
|
63
|
-
tasks:
|
|
64
|
-
- review-story.md
|
|
65
77
|
data:
|
|
66
78
|
- technical-preferences.md
|
|
79
|
+
tasks:
|
|
80
|
+
- nfr-assess.md
|
|
81
|
+
- qa-gate.md
|
|
82
|
+
- review-story.md
|
|
83
|
+
- risk-profile.md
|
|
84
|
+
- test-design.md
|
|
85
|
+
- trace-requirements.md
|
|
67
86
|
templates:
|
|
87
|
+
- qa-gate-tmpl.yaml
|
|
68
88
|
- story-tmpl.yaml
|
|
69
89
|
```
|
package/bmad-core/agents/sm.md
CHANGED
|
@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
|
|
|
17
17
|
activation-instructions:
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
|
-
- STEP 3:
|
|
20
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
21
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
21
22
|
- DO NOT: Load any other agent files during activation
|
|
22
23
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
23
24
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
@@ -26,7 +27,7 @@ activation-instructions:
|
|
|
26
27
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
27
28
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
28
29
|
- STAY IN CHARACTER!
|
|
29
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
31
|
agent:
|
|
31
32
|
name: Bob
|
|
32
33
|
id: sm
|
|
@@ -46,17 +47,17 @@ persona:
|
|
|
46
47
|
# All commands require * prefix when used (e.g., *help)
|
|
47
48
|
commands:
|
|
48
49
|
- help: Show numbered list of the following commands to allow selection
|
|
49
|
-
- draft: Execute task create-next-story.md
|
|
50
50
|
- correct-course: Execute task correct-course.md
|
|
51
|
+
- draft: Execute task create-next-story.md
|
|
51
52
|
- story-checklist: Execute task execute-checklist.md with checklist story-draft-checklist.md
|
|
52
53
|
- exit: Say goodbye as the Scrum Master, and then abandon inhabiting this persona
|
|
53
54
|
dependencies:
|
|
55
|
+
checklists:
|
|
56
|
+
- story-draft-checklist.md
|
|
54
57
|
tasks:
|
|
58
|
+
- correct-course.md
|
|
55
59
|
- create-next-story.md
|
|
56
60
|
- execute-checklist.md
|
|
57
|
-
- correct-course.md
|
|
58
61
|
templates:
|
|
59
62
|
- story-tmpl.yaml
|
|
60
|
-
checklists:
|
|
61
|
-
- story-draft-checklist.md
|
|
62
63
|
```
|
|
@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
|
|
|
17
17
|
activation-instructions:
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
|
-
- STEP 3:
|
|
20
|
+
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
|
|
21
|
+
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
|
|
21
22
|
- DO NOT: Load any other agent files during activation
|
|
22
23
|
- ONLY load dependency files when user selects them for execution via command or request of a task
|
|
23
24
|
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
|
|
@@ -26,7 +27,7 @@ activation-instructions:
|
|
|
26
27
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
27
28
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
28
29
|
- STAY IN CHARACTER!
|
|
29
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
|
+
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
|
|
30
31
|
agent:
|
|
31
32
|
name: Sally
|
|
32
33
|
id: ux-expert
|
|
@@ -55,12 +56,12 @@ commands:
|
|
|
55
56
|
- generate-ui-prompt: Run task generate-ai-frontend-prompt.md
|
|
56
57
|
- exit: Say goodbye as the UX Expert, and then abandon inhabiting this persona
|
|
57
58
|
dependencies:
|
|
59
|
+
data:
|
|
60
|
+
- technical-preferences.md
|
|
58
61
|
tasks:
|
|
59
|
-
- generate-ai-frontend-prompt.md
|
|
60
62
|
- create-doc.md
|
|
61
63
|
- execute-checklist.md
|
|
64
|
+
- generate-ai-frontend-prompt.md
|
|
62
65
|
templates:
|
|
63
66
|
- front-end-spec-tmpl.yaml
|
|
64
|
-
data:
|
|
65
|
-
- technical-preferences.md
|
|
66
67
|
```
|
|
@@ -298,7 +298,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
|
|
|
298
298
|
|
|
299
299
|
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
|
|
300
300
|
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
|
|
301
|
-
- **Windsurf**:
|
|
301
|
+
- **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
|
|
302
302
|
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
|
|
303
303
|
- **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
|
|
304
304
|
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Test Levels Framework
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for determining appropriate test levels (unit, integration, E2E) for different scenarios.
|
|
4
|
+
|
|
5
|
+
## Test Level Decision Matrix
|
|
6
|
+
|
|
7
|
+
### Unit Tests
|
|
8
|
+
|
|
9
|
+
**When to use:**
|
|
10
|
+
|
|
11
|
+
- Testing pure functions and business logic
|
|
12
|
+
- Algorithm correctness
|
|
13
|
+
- Input validation and data transformation
|
|
14
|
+
- Error handling in isolated components
|
|
15
|
+
- Complex calculations or state machines
|
|
16
|
+
|
|
17
|
+
**Characteristics:**
|
|
18
|
+
|
|
19
|
+
- Fast execution (immediate feedback)
|
|
20
|
+
- No external dependencies (DB, API, file system)
|
|
21
|
+
- Highly maintainable and stable
|
|
22
|
+
- Easy to debug failures
|
|
23
|
+
|
|
24
|
+
**Example scenarios:**
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
unit_test:
|
|
28
|
+
component: 'PriceCalculator'
|
|
29
|
+
scenario: 'Calculate discount with multiple rules'
|
|
30
|
+
justification: 'Complex business logic with multiple branches'
|
|
31
|
+
mock_requirements: 'None - pure function'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Integration Tests
|
|
35
|
+
|
|
36
|
+
**When to use:**
|
|
37
|
+
|
|
38
|
+
- Component interaction verification
|
|
39
|
+
- Database operations and transactions
|
|
40
|
+
- API endpoint contracts
|
|
41
|
+
- Service-to-service communication
|
|
42
|
+
- Middleware and interceptor behavior
|
|
43
|
+
|
|
44
|
+
**Characteristics:**
|
|
45
|
+
|
|
46
|
+
- Moderate execution time
|
|
47
|
+
- Tests component boundaries
|
|
48
|
+
- May use test databases or containers
|
|
49
|
+
- Validates system integration points
|
|
50
|
+
|
|
51
|
+
**Example scenarios:**
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
integration_test:
|
|
55
|
+
components: ['UserService', 'AuthRepository']
|
|
56
|
+
scenario: 'Create user with role assignment'
|
|
57
|
+
justification: 'Critical data flow between service and persistence'
|
|
58
|
+
test_environment: 'In-memory database'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### End-to-End Tests
|
|
62
|
+
|
|
63
|
+
**When to use:**
|
|
64
|
+
|
|
65
|
+
- Critical user journeys
|
|
66
|
+
- Cross-system workflows
|
|
67
|
+
- Visual regression testing
|
|
68
|
+
- Compliance and regulatory requirements
|
|
69
|
+
- Final validation before release
|
|
70
|
+
|
|
71
|
+
**Characteristics:**
|
|
72
|
+
|
|
73
|
+
- Slower execution
|
|
74
|
+
- Tests complete workflows
|
|
75
|
+
- Requires full environment setup
|
|
76
|
+
- Most realistic but most brittle
|
|
77
|
+
|
|
78
|
+
**Example scenarios:**
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
e2e_test:
|
|
82
|
+
journey: 'Complete checkout process'
|
|
83
|
+
scenario: 'User purchases with saved payment method'
|
|
84
|
+
justification: 'Revenue-critical path requiring full validation'
|
|
85
|
+
environment: 'Staging with test payment gateway'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Test Level Selection Rules
|
|
89
|
+
|
|
90
|
+
### Favor Unit Tests When:
|
|
91
|
+
|
|
92
|
+
- Logic can be isolated
|
|
93
|
+
- No side effects involved
|
|
94
|
+
- Fast feedback needed
|
|
95
|
+
- High cyclomatic complexity
|
|
96
|
+
|
|
97
|
+
### Favor Integration Tests When:
|
|
98
|
+
|
|
99
|
+
- Testing persistence layer
|
|
100
|
+
- Validating service contracts
|
|
101
|
+
- Testing middleware/interceptors
|
|
102
|
+
- Component boundaries critical
|
|
103
|
+
|
|
104
|
+
### Favor E2E Tests When:
|
|
105
|
+
|
|
106
|
+
- User-facing critical paths
|
|
107
|
+
- Multi-system interactions
|
|
108
|
+
- Regulatory compliance scenarios
|
|
109
|
+
- Visual regression important
|
|
110
|
+
|
|
111
|
+
## Anti-patterns to Avoid
|
|
112
|
+
|
|
113
|
+
- E2E testing for business logic validation
|
|
114
|
+
- Unit testing framework behavior
|
|
115
|
+
- Integration testing third-party libraries
|
|
116
|
+
- Duplicate coverage across levels
|
|
117
|
+
|
|
118
|
+
## Duplicate Coverage Guard
|
|
119
|
+
|
|
120
|
+
**Before adding any test, check:**
|
|
121
|
+
|
|
122
|
+
1. Is this already tested at a lower level?
|
|
123
|
+
2. Can a unit test cover this instead of integration?
|
|
124
|
+
3. Can an integration test cover this instead of E2E?
|
|
125
|
+
|
|
126
|
+
**Coverage overlap is only acceptable when:**
|
|
127
|
+
|
|
128
|
+
- Testing different aspects (unit: logic, integration: interaction, e2e: user experience)
|
|
129
|
+
- Critical paths requiring defense in depth
|
|
130
|
+
- Regression prevention for previously broken functionality
|
|
131
|
+
|
|
132
|
+
## Test Naming Conventions
|
|
133
|
+
|
|
134
|
+
- Unit: `test_{component}_{scenario}`
|
|
135
|
+
- Integration: `test_{flow}_{interaction}`
|
|
136
|
+
- E2E: `test_{journey}_{outcome}`
|
|
137
|
+
|
|
138
|
+
## Test ID Format
|
|
139
|
+
|
|
140
|
+
`{EPIC}.{STORY}-{LEVEL}-{SEQ}`
|
|
141
|
+
|
|
142
|
+
Examples:
|
|
143
|
+
|
|
144
|
+
- `1.3-UNIT-001`
|
|
145
|
+
- `1.3-INT-002`
|
|
146
|
+
- `1.3-E2E-001`
|