bmad-method 4.37.0 → 4.39.1
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
|
@@ -66,7 +66,6 @@ activation-instructions:
|
|
|
66
66
|
- Assess user goal against available agents and workflows in this bundle
|
|
67
67
|
- If clear match to an agent's expertise, suggest transformation with *agent command
|
|
68
68
|
- If project-oriented, suggest *workflow-guidance to explore options
|
|
69
|
-
- Load resources only when needed - never pre-load
|
|
70
69
|
agent:
|
|
71
70
|
name: BMad Orchestrator
|
|
72
71
|
id: bmad-orchestrator
|
|
@@ -90,21 +89,21 @@ persona:
|
|
|
90
89
|
- Always remind users that commands require * prefix
|
|
91
90
|
commands:
|
|
92
91
|
help: Show this guide with available agents and workflows
|
|
92
|
+
agent: Transform into a specialized agent (list if name not specified)
|
|
93
93
|
chat-mode: Start conversational mode for detailed assistance
|
|
94
|
+
checklist: Execute a checklist (list if name not specified)
|
|
95
|
+
doc-out: Output full document
|
|
94
96
|
kb-mode: Load full BMad knowledge base
|
|
97
|
+
party-mode: Group chat with all agents
|
|
98
|
+
plan: Create detailed workflow plan before starting
|
|
99
|
+
plan-status: Show current workflow plan progress
|
|
100
|
+
plan-update: Update workflow plan status
|
|
95
101
|
status: Show current context, active agent, and progress
|
|
96
|
-
agent: Transform into a specialized agent (list if name not specified)
|
|
97
|
-
exit: Return to BMad or exit session
|
|
98
102
|
task: Run a specific task (list if name not specified)
|
|
99
103
|
workflow: Start a specific workflow (list if name not specified)
|
|
100
104
|
workflow-guidance: Get personalized help selecting the right workflow
|
|
101
|
-
plan: Create detailed workflow plan before starting
|
|
102
|
-
plan-status: Show current workflow plan progress
|
|
103
|
-
plan-update: Update workflow plan status
|
|
104
|
-
checklist: Execute a checklist (list if name not specified)
|
|
105
105
|
yolo: Toggle skip confirmations mode
|
|
106
|
-
|
|
107
|
-
doc-out: Output full document
|
|
106
|
+
exit: Return to BMad or exit session
|
|
108
107
|
help-display-template: |
|
|
109
108
|
=== BMad Orchestrator Commands ===
|
|
110
109
|
All commands must start with * (asterisk)
|
|
@@ -173,13 +172,13 @@ workflow-guidance:
|
|
|
173
172
|
- Only recommend workflows that actually exist in the current bundle
|
|
174
173
|
- When *workflow-guidance is called, start an interactive session and list all available workflows with brief descriptions
|
|
175
174
|
dependencies:
|
|
175
|
+
data:
|
|
176
|
+
- bmad-kb.md
|
|
177
|
+
- elicitation-methods.md
|
|
176
178
|
tasks:
|
|
177
179
|
- advanced-elicitation.md
|
|
178
180
|
- create-doc.md
|
|
179
181
|
- kb-mode-interaction.md
|
|
180
|
-
data:
|
|
181
|
-
- bmad-kb.md
|
|
182
|
-
- elicitation-methods.md
|
|
183
182
|
utils:
|
|
184
183
|
- workflow-management.md
|
|
185
184
|
```
|
|
@@ -221,26 +220,26 @@ persona:
|
|
|
221
220
|
- Documentation Ecosystem Integrity - Maintain consistency across all documents
|
|
222
221
|
commands:
|
|
223
222
|
- help: Show numbered list of the following commands to allow selection
|
|
224
|
-
- execute-checklist-po: Run task execute-checklist (checklist po-master-checklist)
|
|
225
|
-
- shard-doc {document} {destination}: run the task shard-doc against the optionally provided document to the specified destination
|
|
226
223
|
- correct-course: execute the correct-course task
|
|
227
224
|
- create-epic: Create epic for brownfield projects (task brownfield-create-epic)
|
|
228
225
|
- create-story: Create user story from requirements (task brownfield-create-story)
|
|
229
226
|
- doc-out: Output full document to current destination file
|
|
227
|
+
- execute-checklist-po: Run task execute-checklist (checklist po-master-checklist)
|
|
228
|
+
- shard-doc {document} {destination}: run the task shard-doc against the optionally provided document to the specified destination
|
|
230
229
|
- validate-story-draft {story}: run the task validate-next-story against the provided story file
|
|
231
230
|
- yolo: Toggle Yolo Mode off on - on will skip doc section confirmations
|
|
232
231
|
- exit: Exit (confirm)
|
|
233
232
|
dependencies:
|
|
233
|
+
checklists:
|
|
234
|
+
- change-checklist.md
|
|
235
|
+
- po-master-checklist.md
|
|
234
236
|
tasks:
|
|
237
|
+
- correct-course.md
|
|
235
238
|
- execute-checklist.md
|
|
236
239
|
- shard-doc.md
|
|
237
|
-
- correct-course.md
|
|
238
240
|
- validate-next-story.md
|
|
239
241
|
templates:
|
|
240
242
|
- story-tmpl.yaml
|
|
241
|
-
checklists:
|
|
242
|
-
- po-master-checklist.md
|
|
243
|
-
- change-checklist.md
|
|
244
243
|
```
|
|
245
244
|
==================== END: .bmad-core/agents/po.md ====================
|
|
246
245
|
|
|
@@ -273,19 +272,19 @@ persona:
|
|
|
273
272
|
- You are NOT allowed to implement stories or modify code EVER!
|
|
274
273
|
commands:
|
|
275
274
|
- help: Show numbered list of the following commands to allow selection
|
|
276
|
-
- draft: Execute task create-next-story.md
|
|
277
275
|
- correct-course: Execute task correct-course.md
|
|
276
|
+
- draft: Execute task create-next-story.md
|
|
278
277
|
- story-checklist: Execute task execute-checklist.md with checklist story-draft-checklist.md
|
|
279
278
|
- exit: Say goodbye as the Scrum Master, and then abandon inhabiting this persona
|
|
280
279
|
dependencies:
|
|
280
|
+
checklists:
|
|
281
|
+
- story-draft-checklist.md
|
|
281
282
|
tasks:
|
|
283
|
+
- correct-course.md
|
|
282
284
|
- create-next-story.md
|
|
283
285
|
- execute-checklist.md
|
|
284
|
-
- correct-course.md
|
|
285
286
|
templates:
|
|
286
287
|
- story-tmpl.yaml
|
|
287
|
-
checklists:
|
|
288
|
-
- story-draft-checklist.md
|
|
289
288
|
```
|
|
290
289
|
==================== END: .bmad-core/agents/sm.md ====================
|
|
291
290
|
|
|
@@ -319,9 +318,6 @@ core_principles:
|
|
|
319
318
|
- Numbered Options - Always use numbered lists when presenting choices to the user
|
|
320
319
|
commands:
|
|
321
320
|
- help: Show numbered list of the following commands to allow selection
|
|
322
|
-
- run-tests: Execute linting and tests
|
|
323
|
-
- 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.
|
|
324
|
-
- exit: Say goodbye as the Developer, and then abandon inhabiting this persona
|
|
325
321
|
- develop-story:
|
|
326
322
|
- 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
|
|
327
323
|
- story-file-updates-ONLY:
|
|
@@ -331,12 +327,17 @@ commands:
|
|
|
331
327
|
- 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'
|
|
332
328
|
- ready-for-review: Code matches requirements + All validations pass + Follows standards + File List complete
|
|
333
329
|
- 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'
|
|
330
|
+
- 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.
|
|
331
|
+
- review-qa: run task `apply-qa-fixes.md'
|
|
332
|
+
- run-tests: Execute linting and tests
|
|
333
|
+
- exit: Say goodbye as the Developer, and then abandon inhabiting this persona
|
|
334
334
|
dependencies:
|
|
335
|
+
checklists:
|
|
336
|
+
- story-dod-checklist.md
|
|
335
337
|
tasks:
|
|
338
|
+
- apply-qa-fixes.md
|
|
336
339
|
- execute-checklist.md
|
|
337
340
|
- validate-next-story.md
|
|
338
|
-
checklists:
|
|
339
|
-
- story-dod-checklist.md
|
|
340
341
|
```
|
|
341
342
|
==================== END: .bmad-core/agents/dev.md ====================
|
|
342
343
|
|
|
@@ -354,40 +355,59 @@ activation-instructions:
|
|
|
354
355
|
agent:
|
|
355
356
|
name: Quinn
|
|
356
357
|
id: qa
|
|
357
|
-
title:
|
|
358
|
+
title: Test Architect & Quality Advisor
|
|
358
359
|
icon: 🧪
|
|
359
|
-
whenToUse:
|
|
360
|
+
whenToUse: |
|
|
361
|
+
Use for comprehensive test architecture review, quality gate decisions,
|
|
362
|
+
and code improvement. Provides thorough analysis including requirements
|
|
363
|
+
traceability, risk assessment, and test strategy.
|
|
364
|
+
Advisory only - teams choose their quality bar.
|
|
360
365
|
customization: null
|
|
361
366
|
persona:
|
|
362
|
-
role:
|
|
363
|
-
style:
|
|
364
|
-
identity:
|
|
365
|
-
focus:
|
|
367
|
+
role: Test Architect with Quality Advisory Authority
|
|
368
|
+
style: Comprehensive, systematic, advisory, educational, pragmatic
|
|
369
|
+
identity: Test architect who provides thorough quality assessment and actionable recommendations without blocking progress
|
|
370
|
+
focus: Comprehensive quality analysis through test architecture, risk assessment, and advisory gates
|
|
366
371
|
core_principles:
|
|
367
|
-
-
|
|
368
|
-
-
|
|
369
|
-
-
|
|
370
|
-
-
|
|
371
|
-
-
|
|
372
|
-
-
|
|
373
|
-
-
|
|
374
|
-
-
|
|
375
|
-
-
|
|
376
|
-
-
|
|
372
|
+
- Depth As Needed - Go deep based on risk signals, stay concise when low risk
|
|
373
|
+
- Requirements Traceability - Map all stories to tests using Given-When-Then patterns
|
|
374
|
+
- Risk-Based Testing - Assess and prioritize by probability × impact
|
|
375
|
+
- Quality Attributes - Validate NFRs (security, performance, reliability) via scenarios
|
|
376
|
+
- Testability Assessment - Evaluate controllability, observability, debuggability
|
|
377
|
+
- Gate Governance - Provide clear PASS/CONCERNS/FAIL/WAIVED decisions with rationale
|
|
378
|
+
- Advisory Excellence - Educate through documentation, never block arbitrarily
|
|
379
|
+
- Technical Debt Awareness - Identify and quantify debt with improvement suggestions
|
|
380
|
+
- LLM Acceleration - Use LLMs to accelerate thorough yet focused analysis
|
|
381
|
+
- Pragmatic Balance - Distinguish must-fix from nice-to-have improvements
|
|
377
382
|
story-file-permissions:
|
|
378
383
|
- CRITICAL: When reviewing stories, you are ONLY authorized to update the "QA Results" section of story files
|
|
379
384
|
- 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
|
|
380
385
|
- CRITICAL: Your updates must be limited to appending your review results in the QA Results section only
|
|
381
386
|
commands:
|
|
382
387
|
- help: Show numbered list of the following commands to allow selection
|
|
383
|
-
-
|
|
384
|
-
-
|
|
388
|
+
- gate {story}: Execute qa-gate task to write/update quality gate decision in directory from qa.qaLocation/gates/
|
|
389
|
+
- nfr-assess {story}: Execute nfr-assess task to validate non-functional requirements
|
|
390
|
+
- review {story}: |
|
|
391
|
+
Adaptive, risk-aware comprehensive review.
|
|
392
|
+
Produces: QA Results update in story file + gate file (PASS/CONCERNS/FAIL/WAIVED).
|
|
393
|
+
Gate file location: qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
394
|
+
Executes review-story task which includes all analysis and creates gate decision.
|
|
395
|
+
- risk-profile {story}: Execute risk-profile task to generate risk assessment matrix
|
|
396
|
+
- test-design {story}: Execute test-design task to create comprehensive test scenarios
|
|
397
|
+
- trace {story}: Execute trace-requirements task to map requirements to tests using Given-When-Then
|
|
398
|
+
- exit: Say goodbye as the Test Architect, and then abandon inhabiting this persona
|
|
385
399
|
dependencies:
|
|
386
|
-
tasks:
|
|
387
|
-
- review-story.md
|
|
388
400
|
data:
|
|
389
401
|
- technical-preferences.md
|
|
402
|
+
tasks:
|
|
403
|
+
- nfr-assess.md
|
|
404
|
+
- qa-gate.md
|
|
405
|
+
- review-story.md
|
|
406
|
+
- risk-profile.md
|
|
407
|
+
- test-design.md
|
|
408
|
+
- trace-requirements.md
|
|
390
409
|
templates:
|
|
410
|
+
- qa-gate-tmpl.yaml
|
|
391
411
|
- story-tmpl.yaml
|
|
392
412
|
```
|
|
393
413
|
==================== END: .bmad-core/agents/qa.md ====================
|
|
@@ -625,7 +645,7 @@ Provide a user-friendly interface to the BMad knowledge base without overwhelmin
|
|
|
625
645
|
|
|
626
646
|
## Instructions
|
|
627
647
|
|
|
628
|
-
When entering KB mode (
|
|
648
|
+
When entering KB mode (\*kb-mode), follow these steps:
|
|
629
649
|
|
|
630
650
|
### 1. Welcome and Guide
|
|
631
651
|
|
|
@@ -667,12 +687,12 @@ Or ask me about anything else related to BMad-Method!
|
|
|
667
687
|
When user is done or wants to exit KB mode:
|
|
668
688
|
|
|
669
689
|
- Summarize key points discussed if helpful
|
|
670
|
-
- Remind them they can return to KB mode anytime with
|
|
690
|
+
- Remind them they can return to KB mode anytime with \*kb-mode
|
|
671
691
|
- Suggest next steps based on what was discussed
|
|
672
692
|
|
|
673
693
|
## Example Interaction
|
|
674
694
|
|
|
675
|
-
**User**:
|
|
695
|
+
**User**: \*kb-mode
|
|
676
696
|
|
|
677
697
|
**Assistant**: I've entered KB mode and have access to the full BMad knowledge base. I can help you with detailed information about any aspect of BMad-Method.
|
|
678
698
|
|
|
@@ -995,7 +1015,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
|
|
|
995
1015
|
|
|
996
1016
|
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
|
|
997
1017
|
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
|
|
998
|
-
- **Windsurf**:
|
|
1018
|
+
- **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
|
|
999
1019
|
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
|
|
1000
1020
|
- **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
|
|
1001
1021
|
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
|
|
@@ -1239,7 +1259,7 @@ Each status change requires user verification and approval before proceeding.
|
|
|
1239
1259
|
#### Greenfield Development
|
|
1240
1260
|
|
|
1241
1261
|
- Business analysis and market research
|
|
1242
|
-
- Product requirements and feature definition
|
|
1262
|
+
- Product requirements and feature definition
|
|
1243
1263
|
- System architecture and design
|
|
1244
1264
|
- Development execution
|
|
1245
1265
|
- Testing and deployment
|
|
@@ -1348,8 +1368,11 @@ Templates with Level 2 headings (`##`) can be automatically sharded:
|
|
|
1348
1368
|
|
|
1349
1369
|
```markdown
|
|
1350
1370
|
## Goals and Background Context
|
|
1351
|
-
|
|
1371
|
+
|
|
1372
|
+
## Requirements
|
|
1373
|
+
|
|
1352
1374
|
## User Interface Design Goals
|
|
1375
|
+
|
|
1353
1376
|
## Success Metrics
|
|
1354
1377
|
```
|
|
1355
1378
|
|
|
@@ -1506,16 +1529,19 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1506
1529
|
## Core Reflective Methods
|
|
1507
1530
|
|
|
1508
1531
|
**Expand or Contract for Audience**
|
|
1532
|
+
|
|
1509
1533
|
- Ask whether to 'expand' (add detail, elaborate) or 'contract' (simplify, clarify)
|
|
1510
1534
|
- Identify specific target audience if relevant
|
|
1511
1535
|
- Tailor content complexity and depth accordingly
|
|
1512
1536
|
|
|
1513
1537
|
**Explain Reasoning (CoT Step-by-Step)**
|
|
1538
|
+
|
|
1514
1539
|
- Walk through the step-by-step thinking process
|
|
1515
1540
|
- Reveal underlying assumptions and decision points
|
|
1516
1541
|
- Show how conclusions were reached from current role's perspective
|
|
1517
1542
|
|
|
1518
1543
|
**Critique and Refine**
|
|
1544
|
+
|
|
1519
1545
|
- Review output for flaws, inconsistencies, or improvement areas
|
|
1520
1546
|
- Identify specific weaknesses from role's expertise
|
|
1521
1547
|
- Suggest refined version reflecting domain knowledge
|
|
@@ -1523,12 +1549,14 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1523
1549
|
## Structural Analysis Methods
|
|
1524
1550
|
|
|
1525
1551
|
**Analyze Logical Flow and Dependencies**
|
|
1552
|
+
|
|
1526
1553
|
- Examine content structure for logical progression
|
|
1527
1554
|
- Check internal consistency and coherence
|
|
1528
1555
|
- Identify and validate dependencies between elements
|
|
1529
1556
|
- Confirm effective ordering and sequencing
|
|
1530
1557
|
|
|
1531
1558
|
**Assess Alignment with Overall Goals**
|
|
1559
|
+
|
|
1532
1560
|
- Evaluate content contribution to stated objectives
|
|
1533
1561
|
- Identify any misalignments or gaps
|
|
1534
1562
|
- Interpret alignment from specific role's perspective
|
|
@@ -1537,12 +1565,14 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1537
1565
|
## Risk and Challenge Methods
|
|
1538
1566
|
|
|
1539
1567
|
**Identify Potential Risks and Unforeseen Issues**
|
|
1568
|
+
|
|
1540
1569
|
- Brainstorm potential risks from role's expertise
|
|
1541
1570
|
- Identify overlooked edge cases or scenarios
|
|
1542
1571
|
- Anticipate unintended consequences
|
|
1543
1572
|
- Highlight implementation challenges
|
|
1544
1573
|
|
|
1545
1574
|
**Challenge from Critical Perspective**
|
|
1575
|
+
|
|
1546
1576
|
- Adopt critical stance on current content
|
|
1547
1577
|
- Play devil's advocate from specified viewpoint
|
|
1548
1578
|
- Argue against proposal highlighting weaknesses
|
|
@@ -1551,12 +1581,14 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1551
1581
|
## Creative Exploration Methods
|
|
1552
1582
|
|
|
1553
1583
|
**Tree of Thoughts Deep Dive**
|
|
1584
|
+
|
|
1554
1585
|
- Break problem into discrete "thoughts" or intermediate steps
|
|
1555
1586
|
- Explore multiple reasoning paths simultaneously
|
|
1556
1587
|
- Use self-evaluation to classify each path as "sure", "likely", or "impossible"
|
|
1557
1588
|
- Apply search algorithms (BFS/DFS) to find optimal solution paths
|
|
1558
1589
|
|
|
1559
1590
|
**Hindsight is 20/20: The 'If Only...' Reflection**
|
|
1591
|
+
|
|
1560
1592
|
- Imagine retrospective scenario based on current content
|
|
1561
1593
|
- Identify the one "if only we had known/done X..." insight
|
|
1562
1594
|
- Describe imagined consequences humorously or dramatically
|
|
@@ -1565,6 +1597,7 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1565
1597
|
## Multi-Persona Collaboration Methods
|
|
1566
1598
|
|
|
1567
1599
|
**Agile Team Perspective Shift**
|
|
1600
|
+
|
|
1568
1601
|
- Rotate through different Scrum team member viewpoints
|
|
1569
1602
|
- Product Owner: Focus on user value and business impact
|
|
1570
1603
|
- Scrum Master: Examine process flow and team dynamics
|
|
@@ -1572,12 +1605,14 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1572
1605
|
- QA: Identify testing scenarios and quality concerns
|
|
1573
1606
|
|
|
1574
1607
|
**Stakeholder Round Table**
|
|
1608
|
+
|
|
1575
1609
|
- Convene virtual meeting with multiple personas
|
|
1576
1610
|
- Each persona contributes unique perspective on content
|
|
1577
1611
|
- Identify conflicts and synergies between viewpoints
|
|
1578
1612
|
- Synthesize insights into actionable recommendations
|
|
1579
1613
|
|
|
1580
1614
|
**Meta-Prompting Analysis**
|
|
1615
|
+
|
|
1581
1616
|
- Step back to analyze the structure and logic of current approach
|
|
1582
1617
|
- Question the format and methodology being used
|
|
1583
1618
|
- Suggest alternative frameworks or mental models
|
|
@@ -1586,24 +1621,28 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1586
1621
|
## Advanced 2025 Techniques
|
|
1587
1622
|
|
|
1588
1623
|
**Self-Consistency Validation**
|
|
1624
|
+
|
|
1589
1625
|
- Generate multiple reasoning paths for same problem
|
|
1590
1626
|
- Compare consistency across different approaches
|
|
1591
1627
|
- Identify most reliable and robust solution
|
|
1592
1628
|
- Highlight areas where approaches diverge and why
|
|
1593
1629
|
|
|
1594
1630
|
**ReWOO (Reasoning Without Observation)**
|
|
1631
|
+
|
|
1595
1632
|
- Separate parametric reasoning from tool-based actions
|
|
1596
1633
|
- Create reasoning plan without external dependencies
|
|
1597
1634
|
- Identify what can be solved through pure reasoning
|
|
1598
1635
|
- Optimize for efficiency and reduced token usage
|
|
1599
1636
|
|
|
1600
1637
|
**Persona-Pattern Hybrid**
|
|
1638
|
+
|
|
1601
1639
|
- Combine specific role expertise with elicitation pattern
|
|
1602
1640
|
- Architect + Risk Analysis: Deep technical risk assessment
|
|
1603
1641
|
- UX Expert + User Journey: End-to-end experience critique
|
|
1604
1642
|
- PM + Stakeholder Analysis: Multi-perspective impact review
|
|
1605
1643
|
|
|
1606
1644
|
**Emergent Collaboration Discovery**
|
|
1645
|
+
|
|
1607
1646
|
- Allow multiple perspectives to naturally emerge
|
|
1608
1647
|
- Identify unexpected insights from persona interactions
|
|
1609
1648
|
- Explore novel combinations of viewpoints
|
|
@@ -1612,18 +1651,21 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1612
1651
|
## Game-Based Elicitation Methods
|
|
1613
1652
|
|
|
1614
1653
|
**Red Team vs Blue Team**
|
|
1654
|
+
|
|
1615
1655
|
- Red Team: Attack the proposal, find vulnerabilities
|
|
1616
1656
|
- Blue Team: Defend and strengthen the approach
|
|
1617
1657
|
- Competitive analysis reveals blind spots
|
|
1618
1658
|
- Results in more robust, battle-tested solutions
|
|
1619
1659
|
|
|
1620
1660
|
**Innovation Tournament**
|
|
1661
|
+
|
|
1621
1662
|
- Pit multiple alternative approaches against each other
|
|
1622
1663
|
- Score each approach across different criteria
|
|
1623
1664
|
- Crowd-source evaluation from different personas
|
|
1624
1665
|
- Identify winning combination of features
|
|
1625
1666
|
|
|
1626
1667
|
**Escape Room Challenge**
|
|
1668
|
+
|
|
1627
1669
|
- Present content as constraints to work within
|
|
1628
1670
|
- Find creative solutions within tight limitations
|
|
1629
1671
|
- Identify minimum viable approach
|
|
@@ -1632,6 +1674,7 @@ Use the **expansion-creator** pack to build your own:
|
|
|
1632
1674
|
## Process Control
|
|
1633
1675
|
|
|
1634
1676
|
**Proceed / No Further Actions**
|
|
1677
|
+
|
|
1635
1678
|
- Acknowledge choice to finalize current work
|
|
1636
1679
|
- Accept output as-is or move to next step
|
|
1637
1680
|
- Prepare to continue without additional elicitation
|
|
@@ -1709,6 +1752,79 @@ Handle conditional paths by asking clarifying questions when needed.
|
|
|
1709
1752
|
Agents should be workflow-aware: know active workflow, their role, access artifacts, understand expected outputs.
|
|
1710
1753
|
==================== END: .bmad-core/utils/workflow-management.md ====================
|
|
1711
1754
|
|
|
1755
|
+
==================== START: .bmad-core/tasks/correct-course.md ====================
|
|
1756
|
+
# Correct Course Task
|
|
1757
|
+
|
|
1758
|
+
## Purpose
|
|
1759
|
+
|
|
1760
|
+
- Guide a structured response to a change trigger using the `.bmad-core/checklists/change-checklist`.
|
|
1761
|
+
- Analyze the impacts of the change on epics, project artifacts, and the MVP, guided by the checklist's structure.
|
|
1762
|
+
- Explore potential solutions (e.g., adjust scope, rollback elements, re-scope features) as prompted by the checklist.
|
|
1763
|
+
- Draft specific, actionable proposed updates to any affected project artifacts (e.g., epics, user stories, PRD sections, architecture document sections) based on the analysis.
|
|
1764
|
+
- Produce a consolidated "Sprint Change Proposal" document that contains the impact analysis and the clearly drafted proposed edits for user review and approval.
|
|
1765
|
+
- Ensure a clear handoff path if the nature of the changes necessitates fundamental replanning by other core agents (like PM or Architect).
|
|
1766
|
+
|
|
1767
|
+
## Instructions
|
|
1768
|
+
|
|
1769
|
+
### 1. Initial Setup & Mode Selection
|
|
1770
|
+
|
|
1771
|
+
- **Acknowledge Task & Inputs:**
|
|
1772
|
+
- Confirm with the user that the "Correct Course Task" (Change Navigation & Integration) is being initiated.
|
|
1773
|
+
- Verify the change trigger and ensure you have the user's initial explanation of the issue and its perceived impact.
|
|
1774
|
+
- Confirm access to all relevant project artifacts (e.g., PRD, Epics/Stories, Architecture Documents, UI/UX Specifications) and, critically, the `.bmad-core/checklists/change-checklist`.
|
|
1775
|
+
- **Establish Interaction Mode:**
|
|
1776
|
+
- Ask the user their preferred interaction mode for this task:
|
|
1777
|
+
- **"Incrementally (Default & Recommended):** Shall we work through the change-checklist section by section, discussing findings and collaboratively drafting proposed changes for each relevant part before moving to the next? This allows for detailed, step-by-step refinement."
|
|
1778
|
+
- **"YOLO Mode (Batch Processing):** Or, would you prefer I conduct a more batched analysis based on the checklist and then present a consolidated set of findings and proposed changes for a broader review? This can be quicker for initial assessment but might require more extensive review of the combined proposals."
|
|
1779
|
+
- Once the user chooses, confirm the selected mode and then inform the user: "We will now use the change-checklist to analyze the change and draft proposed updates. I will guide you through the checklist items based on our chosen interaction mode."
|
|
1780
|
+
|
|
1781
|
+
### 2. Execute Checklist Analysis (Iteratively or Batched, per Interaction Mode)
|
|
1782
|
+
|
|
1783
|
+
- Systematically work through Sections 1-4 of the change-checklist (typically covering Change Context, Epic/Story Impact Analysis, Artifact Conflict Resolution, and Path Evaluation/Recommendation).
|
|
1784
|
+
- For each checklist item or logical group of items (depending on interaction mode):
|
|
1785
|
+
- Present the relevant prompt(s) or considerations from the checklist to the user.
|
|
1786
|
+
- Request necessary information and actively analyze the relevant project artifacts (PRD, epics, architecture documents, story history, etc.) to assess the impact.
|
|
1787
|
+
- Discuss your findings for each item with the user.
|
|
1788
|
+
- Record the status of each checklist item (e.g., `[x] Addressed`, `[N/A]`, `[!] Further Action Needed`) and any pertinent notes or decisions.
|
|
1789
|
+
- Collaboratively agree on the "Recommended Path Forward" as prompted by Section 4 of the checklist.
|
|
1790
|
+
|
|
1791
|
+
### 3. Draft Proposed Changes (Iteratively or Batched)
|
|
1792
|
+
|
|
1793
|
+
- Based on the completed checklist analysis (Sections 1-4) and the agreed "Recommended Path Forward" (excluding scenarios requiring fundamental replans that would necessitate immediate handoff to PM/Architect):
|
|
1794
|
+
- Identify the specific project artifacts that require updates (e.g., specific epics, user stories, PRD sections, architecture document components, diagrams).
|
|
1795
|
+
- **Draft the proposed changes directly and explicitly for each identified artifact.** Examples include:
|
|
1796
|
+
- Revising user story text, acceptance criteria, or priority.
|
|
1797
|
+
- Adding, removing, reordering, or splitting user stories within epics.
|
|
1798
|
+
- Proposing modified architecture diagram snippets (e.g., providing an updated Mermaid diagram block or a clear textual description of the change to an existing diagram).
|
|
1799
|
+
- Updating technology lists, configuration details, or specific sections within the PRD or architecture documents.
|
|
1800
|
+
- Drafting new, small supporting artifacts if necessary (e.g., a brief addendum for a specific decision).
|
|
1801
|
+
- If in "Incremental Mode," discuss and refine these proposed edits for each artifact or small group of related artifacts with the user as they are drafted.
|
|
1802
|
+
- If in "YOLO Mode," compile all drafted edits for presentation in the next step.
|
|
1803
|
+
|
|
1804
|
+
### 4. Generate "Sprint Change Proposal" with Edits
|
|
1805
|
+
|
|
1806
|
+
- Synthesize the complete change-checklist analysis (covering findings from Sections 1-4) and all the agreed-upon proposed edits (from Instruction 3) into a single document titled "Sprint Change Proposal." This proposal should align with the structure suggested by Section 5 of the change-checklist.
|
|
1807
|
+
- The proposal must clearly present:
|
|
1808
|
+
- **Analysis Summary:** A concise overview of the original issue, its analyzed impact (on epics, artifacts, MVP scope), and the rationale for the chosen path forward.
|
|
1809
|
+
- **Specific Proposed Edits:** For each affected artifact, clearly show or describe the exact changes (e.g., "Change Story X.Y from: [old text] To: [new text]", "Add new Acceptance Criterion to Story A.B: [new AC]", "Update Section 3.2 of Architecture Document as follows: [new/modified text or diagram description]").
|
|
1810
|
+
- Present the complete draft of the "Sprint Change Proposal" to the user for final review and feedback. Incorporate any final adjustments requested by the user.
|
|
1811
|
+
|
|
1812
|
+
### 5. Finalize & Determine Next Steps
|
|
1813
|
+
|
|
1814
|
+
- Obtain explicit user approval for the "Sprint Change Proposal," including all the specific edits documented within it.
|
|
1815
|
+
- Provide the finalized "Sprint Change Proposal" document to the user.
|
|
1816
|
+
- **Based on the nature of the approved changes:**
|
|
1817
|
+
- **If the approved edits sufficiently address the change and can be implemented directly or organized by a PO/SM:** State that the "Correct Course Task" is complete regarding analysis and change proposal, and the user can now proceed with implementing or logging these changes (e.g., updating actual project documents, backlog items). Suggest handoff to a PO/SM agent for backlog organization if appropriate.
|
|
1818
|
+
- **If the analysis and proposed path (as per checklist Section 4 and potentially Section 6) indicate that the change requires a more fundamental replan (e.g., significant scope change, major architectural rework):** Clearly state this conclusion. Advise the user that the next step involves engaging the primary PM or Architect agents, using the "Sprint Change Proposal" as critical input and context for that deeper replanning effort.
|
|
1819
|
+
|
|
1820
|
+
## Output Deliverables
|
|
1821
|
+
|
|
1822
|
+
- **Primary:** A "Sprint Change Proposal" document (in markdown format). This document will contain:
|
|
1823
|
+
- A summary of the change-checklist analysis (issue, impact, rationale for the chosen path).
|
|
1824
|
+
- Specific, clearly drafted proposed edits for all affected project artifacts.
|
|
1825
|
+
- **Implicit:** An annotated change-checklist (or the record of its completion) reflecting the discussions, findings, and decisions made during the process.
|
|
1826
|
+
==================== END: .bmad-core/tasks/correct-course.md ====================
|
|
1827
|
+
|
|
1712
1828
|
==================== START: .bmad-core/tasks/execute-checklist.md ====================
|
|
1713
1829
|
# Checklist Validation Task
|
|
1714
1830
|
|
|
@@ -1721,7 +1837,6 @@ If the user asks or does not specify a specific checklist, list the checklists a
|
|
|
1721
1837
|
## Instructions
|
|
1722
1838
|
|
|
1723
1839
|
1. **Initial Assessment**
|
|
1724
|
-
|
|
1725
1840
|
- If user or the task being run provides a checklist name:
|
|
1726
1841
|
- Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist")
|
|
1727
1842
|
- If multiple matches found, ask user to clarify
|
|
@@ -1734,14 +1849,12 @@ If the user asks or does not specify a specific checklist, list the checklists a
|
|
|
1734
1849
|
- All at once (YOLO mode - recommended for checklists, there will be a summary of sections at the end to discuss)
|
|
1735
1850
|
|
|
1736
1851
|
2. **Document and Artifact Gathering**
|
|
1737
|
-
|
|
1738
1852
|
- Each checklist will specify its required documents/artifacts at the beginning
|
|
1739
1853
|
- Follow the checklist's specific instructions for what to gather, generally a file can be resolved in the docs folder, if not or unsure, halt and ask or confirm with the user.
|
|
1740
1854
|
|
|
1741
1855
|
3. **Checklist Processing**
|
|
1742
1856
|
|
|
1743
1857
|
If in interactive mode:
|
|
1744
|
-
|
|
1745
1858
|
- Work through each section of the checklist one at a time
|
|
1746
1859
|
- For each section:
|
|
1747
1860
|
- Review all items in the section following instructions for that section embedded in the checklist
|
|
@@ -1750,7 +1863,6 @@ If the user asks or does not specify a specific checklist, list the checklists a
|
|
|
1750
1863
|
- Get user confirmation before proceeding to next section or if any thing major do we need to halt and take corrective action
|
|
1751
1864
|
|
|
1752
1865
|
If in YOLO mode:
|
|
1753
|
-
|
|
1754
1866
|
- Process all sections at once
|
|
1755
1867
|
- Create a comprehensive report of all findings
|
|
1756
1868
|
- Present the complete analysis to the user
|
|
@@ -1758,7 +1870,6 @@ If the user asks or does not specify a specific checklist, list the checklists a
|
|
|
1758
1870
|
4. **Validation Approach**
|
|
1759
1871
|
|
|
1760
1872
|
For each checklist item:
|
|
1761
|
-
|
|
1762
1873
|
- Read and understand the requirement
|
|
1763
1874
|
- Look for evidence in the documentation that satisfies the requirement
|
|
1764
1875
|
- Consider both explicit mentions and implicit coverage
|
|
@@ -1772,7 +1883,6 @@ If the user asks or does not specify a specific checklist, list the checklists a
|
|
|
1772
1883
|
5. **Section Analysis**
|
|
1773
1884
|
|
|
1774
1885
|
For each section:
|
|
1775
|
-
|
|
1776
1886
|
- think step by step to calculate pass rate
|
|
1777
1887
|
- Identify common themes in failed items
|
|
1778
1888
|
- Provide specific recommendations for improvement
|
|
@@ -1782,7 +1892,6 @@ If the user asks or does not specify a specific checklist, list the checklists a
|
|
|
1782
1892
|
6. **Final Report**
|
|
1783
1893
|
|
|
1784
1894
|
Prepare a summary that includes:
|
|
1785
|
-
|
|
1786
1895
|
- Overall checklist completion status
|
|
1787
1896
|
- Pass rates by section
|
|
1788
1897
|
- List of failed items with context
|
|
@@ -1899,13 +2008,11 @@ CRITICAL: Use proper parsing that understands markdown context. A ## inside a co
|
|
|
1899
2008
|
For each extracted section:
|
|
1900
2009
|
|
|
1901
2010
|
1. **Generate filename**: Convert the section heading to lowercase-dash-case
|
|
1902
|
-
|
|
1903
2011
|
- Remove special characters
|
|
1904
2012
|
- Replace spaces with dashes
|
|
1905
2013
|
- Example: "## Tech Stack" → `tech-stack.md`
|
|
1906
2014
|
|
|
1907
2015
|
2. **Adjust heading levels**:
|
|
1908
|
-
|
|
1909
2016
|
- The level 2 heading becomes level 1 (# instead of ##) in the sharded new document
|
|
1910
2017
|
- All subsection levels decrease by 1:
|
|
1911
2018
|
|
|
@@ -1995,79 +2102,6 @@ Document sharded successfully:
|
|
|
1995
2102
|
- Ensure the sharding is reversible (could reconstruct the original from shards)
|
|
1996
2103
|
==================== END: .bmad-core/tasks/shard-doc.md ====================
|
|
1997
2104
|
|
|
1998
|
-
==================== START: .bmad-core/tasks/correct-course.md ====================
|
|
1999
|
-
# Correct Course Task
|
|
2000
|
-
|
|
2001
|
-
## Purpose
|
|
2002
|
-
|
|
2003
|
-
- Guide a structured response to a change trigger using the `.bmad-core/checklists/change-checklist`.
|
|
2004
|
-
- Analyze the impacts of the change on epics, project artifacts, and the MVP, guided by the checklist's structure.
|
|
2005
|
-
- Explore potential solutions (e.g., adjust scope, rollback elements, re-scope features) as prompted by the checklist.
|
|
2006
|
-
- Draft specific, actionable proposed updates to any affected project artifacts (e.g., epics, user stories, PRD sections, architecture document sections) based on the analysis.
|
|
2007
|
-
- Produce a consolidated "Sprint Change Proposal" document that contains the impact analysis and the clearly drafted proposed edits for user review and approval.
|
|
2008
|
-
- Ensure a clear handoff path if the nature of the changes necessitates fundamental replanning by other core agents (like PM or Architect).
|
|
2009
|
-
|
|
2010
|
-
## Instructions
|
|
2011
|
-
|
|
2012
|
-
### 1. Initial Setup & Mode Selection
|
|
2013
|
-
|
|
2014
|
-
- **Acknowledge Task & Inputs:**
|
|
2015
|
-
- Confirm with the user that the "Correct Course Task" (Change Navigation & Integration) is being initiated.
|
|
2016
|
-
- Verify the change trigger and ensure you have the user's initial explanation of the issue and its perceived impact.
|
|
2017
|
-
- Confirm access to all relevant project artifacts (e.g., PRD, Epics/Stories, Architecture Documents, UI/UX Specifications) and, critically, the `.bmad-core/checklists/change-checklist`.
|
|
2018
|
-
- **Establish Interaction Mode:**
|
|
2019
|
-
- Ask the user their preferred interaction mode for this task:
|
|
2020
|
-
- **"Incrementally (Default & Recommended):** Shall we work through the change-checklist section by section, discussing findings and collaboratively drafting proposed changes for each relevant part before moving to the next? This allows for detailed, step-by-step refinement."
|
|
2021
|
-
- **"YOLO Mode (Batch Processing):** Or, would you prefer I conduct a more batched analysis based on the checklist and then present a consolidated set of findings and proposed changes for a broader review? This can be quicker for initial assessment but might require more extensive review of the combined proposals."
|
|
2022
|
-
- Once the user chooses, confirm the selected mode and then inform the user: "We will now use the change-checklist to analyze the change and draft proposed updates. I will guide you through the checklist items based on our chosen interaction mode."
|
|
2023
|
-
|
|
2024
|
-
### 2. Execute Checklist Analysis (Iteratively or Batched, per Interaction Mode)
|
|
2025
|
-
|
|
2026
|
-
- Systematically work through Sections 1-4 of the change-checklist (typically covering Change Context, Epic/Story Impact Analysis, Artifact Conflict Resolution, and Path Evaluation/Recommendation).
|
|
2027
|
-
- For each checklist item or logical group of items (depending on interaction mode):
|
|
2028
|
-
- Present the relevant prompt(s) or considerations from the checklist to the user.
|
|
2029
|
-
- Request necessary information and actively analyze the relevant project artifacts (PRD, epics, architecture documents, story history, etc.) to assess the impact.
|
|
2030
|
-
- Discuss your findings for each item with the user.
|
|
2031
|
-
- Record the status of each checklist item (e.g., `[x] Addressed`, `[N/A]`, `[!] Further Action Needed`) and any pertinent notes or decisions.
|
|
2032
|
-
- Collaboratively agree on the "Recommended Path Forward" as prompted by Section 4 of the checklist.
|
|
2033
|
-
|
|
2034
|
-
### 3. Draft Proposed Changes (Iteratively or Batched)
|
|
2035
|
-
|
|
2036
|
-
- Based on the completed checklist analysis (Sections 1-4) and the agreed "Recommended Path Forward" (excluding scenarios requiring fundamental replans that would necessitate immediate handoff to PM/Architect):
|
|
2037
|
-
- Identify the specific project artifacts that require updates (e.g., specific epics, user stories, PRD sections, architecture document components, diagrams).
|
|
2038
|
-
- **Draft the proposed changes directly and explicitly for each identified artifact.** Examples include:
|
|
2039
|
-
- Revising user story text, acceptance criteria, or priority.
|
|
2040
|
-
- Adding, removing, reordering, or splitting user stories within epics.
|
|
2041
|
-
- Proposing modified architecture diagram snippets (e.g., providing an updated Mermaid diagram block or a clear textual description of the change to an existing diagram).
|
|
2042
|
-
- Updating technology lists, configuration details, or specific sections within the PRD or architecture documents.
|
|
2043
|
-
- Drafting new, small supporting artifacts if necessary (e.g., a brief addendum for a specific decision).
|
|
2044
|
-
- If in "Incremental Mode," discuss and refine these proposed edits for each artifact or small group of related artifacts with the user as they are drafted.
|
|
2045
|
-
- If in "YOLO Mode," compile all drafted edits for presentation in the next step.
|
|
2046
|
-
|
|
2047
|
-
### 4. Generate "Sprint Change Proposal" with Edits
|
|
2048
|
-
|
|
2049
|
-
- Synthesize the complete change-checklist analysis (covering findings from Sections 1-4) and all the agreed-upon proposed edits (from Instruction 3) into a single document titled "Sprint Change Proposal." This proposal should align with the structure suggested by Section 5 of the change-checklist.
|
|
2050
|
-
- The proposal must clearly present:
|
|
2051
|
-
- **Analysis Summary:** A concise overview of the original issue, its analyzed impact (on epics, artifacts, MVP scope), and the rationale for the chosen path forward.
|
|
2052
|
-
- **Specific Proposed Edits:** For each affected artifact, clearly show or describe the exact changes (e.g., "Change Story X.Y from: [old text] To: [new text]", "Add new Acceptance Criterion to Story A.B: [new AC]", "Update Section 3.2 of Architecture Document as follows: [new/modified text or diagram description]").
|
|
2053
|
-
- Present the complete draft of the "Sprint Change Proposal" to the user for final review and feedback. Incorporate any final adjustments requested by the user.
|
|
2054
|
-
|
|
2055
|
-
### 5. Finalize & Determine Next Steps
|
|
2056
|
-
|
|
2057
|
-
- Obtain explicit user approval for the "Sprint Change Proposal," including all the specific edits documented within it.
|
|
2058
|
-
- Provide the finalized "Sprint Change Proposal" document to the user.
|
|
2059
|
-
- **Based on the nature of the approved changes:**
|
|
2060
|
-
- **If the approved edits sufficiently address the change and can be implemented directly or organized by a PO/SM:** State that the "Correct Course Task" is complete regarding analysis and change proposal, and the user can now proceed with implementing or logging these changes (e.g., updating actual project documents, backlog items). Suggest handoff to a PO/SM agent for backlog organization if appropriate.
|
|
2061
|
-
- **If the analysis and proposed path (as per checklist Section 4 and potentially Section 6) indicate that the change requires a more fundamental replan (e.g., significant scope change, major architectural rework):** Clearly state this conclusion. Advise the user that the next step involves engaging the primary PM or Architect agents, using the "Sprint Change Proposal" as critical input and context for that deeper replanning effort.
|
|
2062
|
-
|
|
2063
|
-
## Output Deliverables
|
|
2064
|
-
|
|
2065
|
-
- **Primary:** A "Sprint Change Proposal" document (in markdown format). This document will contain:
|
|
2066
|
-
- A summary of the change-checklist analysis (issue, impact, rationale for the chosen path).
|
|
2067
|
-
- Specific, clearly drafted proposed edits for all affected project artifacts.
|
|
2068
|
-
- **Implicit:** An annotated change-checklist (or the record of its completion) reflecting the discussions, findings, and decisions made during the process.
|
|
2069
|
-
==================== END: .bmad-core/tasks/correct-course.md ====================
|
|
2070
|
-
|
|
2071
2105
|
==================== START: .bmad-core/tasks/validate-next-story.md ====================
|
|
2072
2106
|
# Validate Next Story Task
|
|
2073
2107
|
|
|
@@ -2220,7 +2254,7 @@ workflow:
|
|
|
2220
2254
|
elicitation: advanced-elicitation
|
|
2221
2255
|
|
|
2222
2256
|
agent_config:
|
|
2223
|
-
editable_sections:
|
|
2257
|
+
editable_sections:
|
|
2224
2258
|
- Status
|
|
2225
2259
|
- Story
|
|
2226
2260
|
- Acceptance Criteria
|
|
@@ -2237,7 +2271,7 @@ sections:
|
|
|
2237
2271
|
instruction: Select the current status of the story
|
|
2238
2272
|
owner: scrum-master
|
|
2239
2273
|
editors: [scrum-master, dev-agent]
|
|
2240
|
-
|
|
2274
|
+
|
|
2241
2275
|
- id: story
|
|
2242
2276
|
title: Story
|
|
2243
2277
|
type: template-text
|
|
@@ -2249,7 +2283,7 @@ sections:
|
|
|
2249
2283
|
elicit: true
|
|
2250
2284
|
owner: scrum-master
|
|
2251
2285
|
editors: [scrum-master]
|
|
2252
|
-
|
|
2286
|
+
|
|
2253
2287
|
- id: acceptance-criteria
|
|
2254
2288
|
title: Acceptance Criteria
|
|
2255
2289
|
type: numbered-list
|
|
@@ -2257,7 +2291,7 @@ sections:
|
|
|
2257
2291
|
elicit: true
|
|
2258
2292
|
owner: scrum-master
|
|
2259
2293
|
editors: [scrum-master]
|
|
2260
|
-
|
|
2294
|
+
|
|
2261
2295
|
- id: tasks-subtasks
|
|
2262
2296
|
title: Tasks / Subtasks
|
|
2263
2297
|
type: bullet-list
|
|
@@ -2274,7 +2308,7 @@ sections:
|
|
|
2274
2308
|
elicit: true
|
|
2275
2309
|
owner: scrum-master
|
|
2276
2310
|
editors: [scrum-master, dev-agent]
|
|
2277
|
-
|
|
2311
|
+
|
|
2278
2312
|
- id: dev-notes
|
|
2279
2313
|
title: Dev Notes
|
|
2280
2314
|
instruction: |
|
|
@@ -2298,7 +2332,7 @@ sections:
|
|
|
2298
2332
|
elicit: true
|
|
2299
2333
|
owner: scrum-master
|
|
2300
2334
|
editors: [scrum-master]
|
|
2301
|
-
|
|
2335
|
+
|
|
2302
2336
|
- id: change-log
|
|
2303
2337
|
title: Change Log
|
|
2304
2338
|
type: table
|
|
@@ -2306,7 +2340,7 @@ sections:
|
|
|
2306
2340
|
instruction: Track changes made to this story document
|
|
2307
2341
|
owner: scrum-master
|
|
2308
2342
|
editors: [scrum-master, dev-agent, qa-agent]
|
|
2309
|
-
|
|
2343
|
+
|
|
2310
2344
|
- id: dev-agent-record
|
|
2311
2345
|
title: Dev Agent Record
|
|
2312
2346
|
instruction: This section is populated by the development agent during implementation
|
|
@@ -2319,25 +2353,25 @@ sections:
|
|
|
2319
2353
|
instruction: Record the specific AI agent model and version used for development
|
|
2320
2354
|
owner: dev-agent
|
|
2321
2355
|
editors: [dev-agent]
|
|
2322
|
-
|
|
2356
|
+
|
|
2323
2357
|
- id: debug-log-references
|
|
2324
2358
|
title: Debug Log References
|
|
2325
2359
|
instruction: Reference any debug logs or traces generated during development
|
|
2326
2360
|
owner: dev-agent
|
|
2327
2361
|
editors: [dev-agent]
|
|
2328
|
-
|
|
2362
|
+
|
|
2329
2363
|
- id: completion-notes
|
|
2330
2364
|
title: Completion Notes List
|
|
2331
2365
|
instruction: Notes about the completion of tasks and any issues encountered
|
|
2332
2366
|
owner: dev-agent
|
|
2333
2367
|
editors: [dev-agent]
|
|
2334
|
-
|
|
2368
|
+
|
|
2335
2369
|
- id: file-list
|
|
2336
2370
|
title: File List
|
|
2337
2371
|
instruction: List all files created, modified, or affected during story implementation
|
|
2338
2372
|
owner: dev-agent
|
|
2339
2373
|
editors: [dev-agent]
|
|
2340
|
-
|
|
2374
|
+
|
|
2341
2375
|
- id: qa-results
|
|
2342
2376
|
title: QA Results
|
|
2343
2377
|
instruction: Results from QA Agent QA review of the completed story implementation
|
|
@@ -2345,23 +2379,206 @@ sections:
|
|
|
2345
2379
|
editors: [qa-agent]
|
|
2346
2380
|
==================== END: .bmad-core/templates/story-tmpl.yaml ====================
|
|
2347
2381
|
|
|
2348
|
-
==================== START: .bmad-core/checklists/
|
|
2349
|
-
#
|
|
2382
|
+
==================== START: .bmad-core/checklists/change-checklist.md ====================
|
|
2383
|
+
# Change Navigation Checklist
|
|
2350
2384
|
|
|
2351
|
-
|
|
2385
|
+
**Purpose:** To systematically guide the selected Agent and user through the analysis and planning required when a significant change (pivot, tech issue, missing requirement, failed story) is identified during the BMad workflow.
|
|
2352
2386
|
|
|
2353
|
-
[[
|
|
2387
|
+
**Instructions:** Review each item with the user. Mark `[x]` for completed/confirmed, `[N/A]` if not applicable, or add notes for discussion points.
|
|
2354
2388
|
|
|
2355
|
-
|
|
2356
|
-
First, determine the project type by checking:
|
|
2389
|
+
[[LLM: INITIALIZATION INSTRUCTIONS - CHANGE NAVIGATION
|
|
2357
2390
|
|
|
2358
|
-
|
|
2391
|
+
Changes during development are inevitable, but how we handle them determines project success or failure.
|
|
2392
|
+
|
|
2393
|
+
Before proceeding, understand:
|
|
2394
|
+
|
|
2395
|
+
1. This checklist is for SIGNIFICANT changes that affect the project direction
|
|
2396
|
+
2. Minor adjustments within a story don't require this process
|
|
2397
|
+
3. The goal is to minimize wasted work while adapting to new realities
|
|
2398
|
+
4. User buy-in is critical - they must understand and approve changes
|
|
2399
|
+
|
|
2400
|
+
Required context:
|
|
2401
|
+
|
|
2402
|
+
- The triggering story or issue
|
|
2403
|
+
- Current project state (completed stories, current epic)
|
|
2404
|
+
- Access to PRD, architecture, and other key documents
|
|
2405
|
+
- Understanding of remaining work planned
|
|
2406
|
+
|
|
2407
|
+
APPROACH:
|
|
2408
|
+
This is an interactive process with the user. Work through each section together, discussing implications and options. The user makes final decisions, but provide expert guidance on technical feasibility and impact.
|
|
2409
|
+
|
|
2410
|
+
REMEMBER: Changes are opportunities to improve, not failures. Handle them professionally and constructively.]]
|
|
2411
|
+
|
|
2412
|
+
---
|
|
2413
|
+
|
|
2414
|
+
## 1. Understand the Trigger & Context
|
|
2415
|
+
|
|
2416
|
+
[[LLM: Start by fully understanding what went wrong and why. Don't jump to solutions yet. Ask probing questions:
|
|
2417
|
+
|
|
2418
|
+
- What exactly happened that triggered this review?
|
|
2419
|
+
- Is this a one-time issue or symptomatic of a larger problem?
|
|
2420
|
+
- Could this have been anticipated earlier?
|
|
2421
|
+
- What assumptions were incorrect?
|
|
2422
|
+
|
|
2423
|
+
Be specific and factual, not blame-oriented.]]
|
|
2424
|
+
|
|
2425
|
+
- [ ] **Identify Triggering Story:** Clearly identify the story (or stories) that revealed the issue.
|
|
2426
|
+
- [ ] **Define the Issue:** Articulate the core problem precisely.
|
|
2427
|
+
- [ ] Is it a technical limitation/dead-end?
|
|
2428
|
+
- [ ] Is it a newly discovered requirement?
|
|
2429
|
+
- [ ] Is it a fundamental misunderstanding of existing requirements?
|
|
2430
|
+
- [ ] Is it a necessary pivot based on feedback or new information?
|
|
2431
|
+
- [ ] Is it a failed/abandoned story needing a new approach?
|
|
2432
|
+
- [ ] **Assess Initial Impact:** Describe the immediate observed consequences (e.g., blocked progress, incorrect functionality, non-viable tech).
|
|
2433
|
+
- [ ] **Gather Evidence:** Note any specific logs, error messages, user feedback, or analysis that supports the issue definition.
|
|
2434
|
+
|
|
2435
|
+
## 2. Epic Impact Assessment
|
|
2436
|
+
|
|
2437
|
+
[[LLM: Changes ripple through the project structure. Systematically evaluate:
|
|
2438
|
+
|
|
2439
|
+
1. Can we salvage the current epic with modifications?
|
|
2440
|
+
2. Do future epics still make sense given this change?
|
|
2441
|
+
3. Are we creating or eliminating dependencies?
|
|
2442
|
+
4. Does the epic sequence need reordering?
|
|
2443
|
+
|
|
2444
|
+
Think about both immediate and downstream effects.]]
|
|
2445
|
+
|
|
2446
|
+
- [ ] **Analyze Current Epic:**
|
|
2447
|
+
- [ ] Can the current epic containing the trigger story still be completed?
|
|
2448
|
+
- [ ] Does the current epic need modification (story changes, additions, removals)?
|
|
2449
|
+
- [ ] Should the current epic be abandoned or fundamentally redefined?
|
|
2450
|
+
- [ ] **Analyze Future Epics:**
|
|
2451
|
+
- [ ] Review all remaining planned epics.
|
|
2452
|
+
- [ ] Does the issue require changes to planned stories in future epics?
|
|
2453
|
+
- [ ] Does the issue invalidate any future epics?
|
|
2454
|
+
- [ ] Does the issue necessitate the creation of entirely new epics?
|
|
2455
|
+
- [ ] Should the order/priority of future epics be changed?
|
|
2456
|
+
- [ ] **Summarize Epic Impact:** Briefly document the overall effect on the project's epic structure and flow.
|
|
2457
|
+
|
|
2458
|
+
## 3. Artifact Conflict & Impact Analysis
|
|
2459
|
+
|
|
2460
|
+
[[LLM: Documentation drives development in BMad. Check each artifact:
|
|
2461
|
+
|
|
2462
|
+
1. Does this change invalidate documented decisions?
|
|
2463
|
+
2. Are architectural assumptions still valid?
|
|
2464
|
+
3. Do user flows need rethinking?
|
|
2465
|
+
4. Are technical constraints different than documented?
|
|
2466
|
+
|
|
2467
|
+
Be thorough - missed conflicts cause future problems.]]
|
|
2468
|
+
|
|
2469
|
+
- [ ] **Review PRD:**
|
|
2470
|
+
- [ ] Does the issue conflict with the core goals or requirements stated in the PRD?
|
|
2471
|
+
- [ ] Does the PRD need clarification or updates based on the new understanding?
|
|
2472
|
+
- [ ] **Review Architecture Document:**
|
|
2473
|
+
- [ ] Does the issue conflict with the documented architecture (components, patterns, tech choices)?
|
|
2474
|
+
- [ ] Are specific components/diagrams/sections impacted?
|
|
2475
|
+
- [ ] Does the technology list need updating?
|
|
2476
|
+
- [ ] Do data models or schemas need revision?
|
|
2477
|
+
- [ ] Are external API integrations affected?
|
|
2478
|
+
- [ ] **Review Frontend Spec (if applicable):**
|
|
2479
|
+
- [ ] Does the issue conflict with the FE architecture, component library choice, or UI/UX design?
|
|
2480
|
+
- [ ] Are specific FE components or user flows impacted?
|
|
2481
|
+
- [ ] **Review Other Artifacts (if applicable):**
|
|
2482
|
+
- [ ] Consider impact on deployment scripts, IaC, monitoring setup, etc.
|
|
2483
|
+
- [ ] **Summarize Artifact Impact:** List all artifacts requiring updates and the nature of the changes needed.
|
|
2484
|
+
|
|
2485
|
+
## 4. Path Forward Evaluation
|
|
2486
|
+
|
|
2487
|
+
[[LLM: Present options clearly with pros/cons. For each path:
|
|
2488
|
+
|
|
2489
|
+
1. What's the effort required?
|
|
2490
|
+
2. What work gets thrown away?
|
|
2491
|
+
3. What risks are we taking?
|
|
2492
|
+
4. How does this affect timeline?
|
|
2493
|
+
5. Is this sustainable long-term?
|
|
2494
|
+
|
|
2495
|
+
Be honest about trade-offs. There's rarely a perfect solution.]]
|
|
2496
|
+
|
|
2497
|
+
- [ ] **Option 1: Direct Adjustment / Integration:**
|
|
2498
|
+
- [ ] Can the issue be addressed by modifying/adding future stories within the existing plan?
|
|
2499
|
+
- [ ] Define the scope and nature of these adjustments.
|
|
2500
|
+
- [ ] Assess feasibility, effort, and risks of this path.
|
|
2501
|
+
- [ ] **Option 2: Potential Rollback:**
|
|
2502
|
+
- [ ] Would reverting completed stories significantly simplify addressing the issue?
|
|
2503
|
+
- [ ] Identify specific stories/commits to consider for rollback.
|
|
2504
|
+
- [ ] Assess the effort required for rollback.
|
|
2505
|
+
- [ ] Assess the impact of rollback (lost work, data implications).
|
|
2506
|
+
- [ ] Compare the net benefit/cost vs. Direct Adjustment.
|
|
2507
|
+
- [ ] **Option 3: PRD MVP Review & Potential Re-scoping:**
|
|
2508
|
+
- [ ] Is the original PRD MVP still achievable given the issue and constraints?
|
|
2509
|
+
- [ ] Does the MVP scope need reduction (removing features/epics)?
|
|
2510
|
+
- [ ] Do the core MVP goals need modification?
|
|
2511
|
+
- [ ] Are alternative approaches needed to meet the original MVP intent?
|
|
2512
|
+
- [ ] **Extreme Case:** Does the issue necessitate a fundamental replan or potentially a new PRD V2 (to be handled by PM)?
|
|
2513
|
+
- [ ] **Select Recommended Path:** Based on the evaluation, agree on the most viable path forward.
|
|
2514
|
+
|
|
2515
|
+
## 5. Sprint Change Proposal Components
|
|
2516
|
+
|
|
2517
|
+
[[LLM: The proposal must be actionable and clear. Ensure:
|
|
2518
|
+
|
|
2519
|
+
1. The issue is explained in plain language
|
|
2520
|
+
2. Impacts are quantified where possible
|
|
2521
|
+
3. The recommended path has clear rationale
|
|
2522
|
+
4. Next steps are specific and assigned
|
|
2523
|
+
5. Success criteria for the change are defined
|
|
2524
|
+
|
|
2525
|
+
This proposal guides all subsequent work.]]
|
|
2526
|
+
|
|
2527
|
+
(Ensure all agreed-upon points from previous sections are captured in the proposal)
|
|
2528
|
+
|
|
2529
|
+
- [ ] **Identified Issue Summary:** Clear, concise problem statement.
|
|
2530
|
+
- [ ] **Epic Impact Summary:** How epics are affected.
|
|
2531
|
+
- [ ] **Artifact Adjustment Needs:** List of documents to change.
|
|
2532
|
+
- [ ] **Recommended Path Forward:** Chosen solution with rationale.
|
|
2533
|
+
- [ ] **PRD MVP Impact:** Changes to scope/goals (if any).
|
|
2534
|
+
- [ ] **High-Level Action Plan:** Next steps for stories/updates.
|
|
2535
|
+
- [ ] **Agent Handoff Plan:** Identify roles needed (PM, Arch, Design Arch, PO).
|
|
2536
|
+
|
|
2537
|
+
## 6. Final Review & Handoff
|
|
2538
|
+
|
|
2539
|
+
[[LLM: Changes require coordination. Before concluding:
|
|
2540
|
+
|
|
2541
|
+
1. Is the user fully aligned with the plan?
|
|
2542
|
+
2. Do all stakeholders understand the impacts?
|
|
2543
|
+
3. Are handoffs to other agents clear?
|
|
2544
|
+
4. Is there a rollback plan if the change fails?
|
|
2545
|
+
5. How will we validate the change worked?
|
|
2546
|
+
|
|
2547
|
+
Get explicit approval - implicit agreement causes problems.
|
|
2548
|
+
|
|
2549
|
+
FINAL REPORT:
|
|
2550
|
+
After completing the checklist, provide a concise summary:
|
|
2359
2551
|
|
|
2552
|
+
- What changed and why
|
|
2553
|
+
- What we're doing about it
|
|
2554
|
+
- Who needs to do what
|
|
2555
|
+
- When we'll know if it worked
|
|
2556
|
+
|
|
2557
|
+
Keep it action-oriented and forward-looking.]]
|
|
2558
|
+
|
|
2559
|
+
- [ ] **Review Checklist:** Confirm all relevant items were discussed.
|
|
2560
|
+
- [ ] **Review Sprint Change Proposal:** Ensure it accurately reflects the discussion and decisions.
|
|
2561
|
+
- [ ] **User Approval:** Obtain explicit user approval for the proposal.
|
|
2562
|
+
- [ ] **Confirm Next Steps:** Reiterate the handoff plan and the next actions to be taken by specific agents.
|
|
2563
|
+
|
|
2564
|
+
---
|
|
2565
|
+
==================== END: .bmad-core/checklists/change-checklist.md ====================
|
|
2566
|
+
|
|
2567
|
+
==================== START: .bmad-core/checklists/po-master-checklist.md ====================
|
|
2568
|
+
# Product Owner (PO) Master Validation Checklist
|
|
2569
|
+
|
|
2570
|
+
This checklist serves as a comprehensive framework for the Product Owner to validate project plans before development execution. It adapts intelligently based on project type (greenfield vs brownfield) and includes UI/UX considerations when applicable.
|
|
2571
|
+
|
|
2572
|
+
[[LLM: INITIALIZATION INSTRUCTIONS - PO MASTER CHECKLIST
|
|
2573
|
+
|
|
2574
|
+
PROJECT TYPE DETECTION:
|
|
2575
|
+
First, determine the project type by checking:
|
|
2576
|
+
|
|
2577
|
+
1. Is this a GREENFIELD project (new from scratch)?
|
|
2360
2578
|
- Look for: New project initialization, no existing codebase references
|
|
2361
2579
|
- Check for: prd.md, architecture.md, new project setup stories
|
|
2362
2580
|
|
|
2363
2581
|
2. Is this a BROWNFIELD project (enhancing existing system)?
|
|
2364
|
-
|
|
2365
2582
|
- Look for: References to existing codebase, enhancement/modification language
|
|
2366
2583
|
- Check for: brownfield-prd.md, brownfield-architecture.md, existing system analysis
|
|
2367
2584
|
|
|
@@ -2695,7 +2912,6 @@ Ask the user if they want to work through the checklist:
|
|
|
2695
2912
|
Generate a comprehensive validation report that adapts to project type:
|
|
2696
2913
|
|
|
2697
2914
|
1. Executive Summary
|
|
2698
|
-
|
|
2699
2915
|
- Project type: [Greenfield/Brownfield] with [UI/No UI]
|
|
2700
2916
|
- Overall readiness (percentage)
|
|
2701
2917
|
- Go/No-Go recommendation
|
|
@@ -2705,42 +2921,36 @@ Generate a comprehensive validation report that adapts to project type:
|
|
|
2705
2921
|
2. Project-Specific Analysis
|
|
2706
2922
|
|
|
2707
2923
|
FOR GREENFIELD:
|
|
2708
|
-
|
|
2709
2924
|
- Setup completeness
|
|
2710
2925
|
- Dependency sequencing
|
|
2711
2926
|
- MVP scope appropriateness
|
|
2712
2927
|
- Development timeline feasibility
|
|
2713
2928
|
|
|
2714
2929
|
FOR BROWNFIELD:
|
|
2715
|
-
|
|
2716
2930
|
- Integration risk level (High/Medium/Low)
|
|
2717
2931
|
- Existing system impact assessment
|
|
2718
2932
|
- Rollback readiness
|
|
2719
2933
|
- User disruption potential
|
|
2720
2934
|
|
|
2721
2935
|
3. Risk Assessment
|
|
2722
|
-
|
|
2723
2936
|
- Top 5 risks by severity
|
|
2724
2937
|
- Mitigation recommendations
|
|
2725
2938
|
- Timeline impact of addressing issues
|
|
2726
2939
|
- [BROWNFIELD] Specific integration risks
|
|
2727
2940
|
|
|
2728
2941
|
4. MVP Completeness
|
|
2729
|
-
|
|
2730
2942
|
- Core features coverage
|
|
2731
2943
|
- Missing essential functionality
|
|
2732
2944
|
- Scope creep identified
|
|
2733
2945
|
- True MVP vs over-engineering
|
|
2734
2946
|
|
|
2735
2947
|
5. Implementation Readiness
|
|
2736
|
-
|
|
2737
2948
|
- Developer clarity score (1-10)
|
|
2738
2949
|
- Ambiguous requirements count
|
|
2739
2950
|
- Missing technical details
|
|
2740
2951
|
- [BROWNFIELD] Integration point clarity
|
|
2741
2952
|
|
|
2742
2953
|
6. Recommendations
|
|
2743
|
-
|
|
2744
2954
|
- Must-fix before development
|
|
2745
2955
|
- Should-fix for quality
|
|
2746
2956
|
- Consider for improvement
|
|
@@ -2789,239 +2999,54 @@ After presenting the report, ask if the user wants:
|
|
|
2789
2999
|
- **REJECTED**: The plan requires significant revision to address critical deficiencies.
|
|
2790
3000
|
==================== END: .bmad-core/checklists/po-master-checklist.md ====================
|
|
2791
3001
|
|
|
2792
|
-
==================== START: .bmad-core/
|
|
2793
|
-
#
|
|
3002
|
+
==================== START: .bmad-core/tasks/create-next-story.md ====================
|
|
3003
|
+
# Create Next Story Task
|
|
2794
3004
|
|
|
2795
|
-
|
|
3005
|
+
## Purpose
|
|
2796
3006
|
|
|
2797
|
-
|
|
3007
|
+
To identify the next logical story based on project progress and epic definitions, and then to prepare a comprehensive, self-contained, and actionable story file using the `Story Template`. This task ensures the story is enriched with all necessary technical context, requirements, and acceptance criteria, making it ready for efficient implementation by a Developer Agent with minimal need for additional research or finding its own context.
|
|
2798
3008
|
|
|
2799
|
-
|
|
3009
|
+
## SEQUENTIAL Task Execution (Do not proceed until current Task is complete)
|
|
2800
3010
|
|
|
2801
|
-
|
|
3011
|
+
### 0. Load Core Configuration and Check Workflow
|
|
2802
3012
|
|
|
2803
|
-
|
|
3013
|
+
- Load `.bmad-core/core-config.yaml` from the project root
|
|
3014
|
+
- If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding."
|
|
3015
|
+
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*`
|
|
2804
3016
|
|
|
2805
|
-
1.
|
|
2806
|
-
2. Minor adjustments within a story don't require this process
|
|
2807
|
-
3. The goal is to minimize wasted work while adapting to new realities
|
|
2808
|
-
4. User buy-in is critical - they must understand and approve changes
|
|
3017
|
+
### 1. Identify Next Story for Preparation
|
|
2809
3018
|
|
|
2810
|
-
|
|
3019
|
+
#### 1.1 Locate Epic Files and Review Existing Stories
|
|
2811
3020
|
|
|
2812
|
-
-
|
|
2813
|
-
-
|
|
2814
|
-
-
|
|
2815
|
-
-
|
|
3021
|
+
- Based on `prdSharded` from config, locate epic files (sharded location/pattern or monolithic PRD sections)
|
|
3022
|
+
- If `devStoryLocation` has story files, load the highest `{epicNum}.{storyNum}.story.md` file
|
|
3023
|
+
- **If highest story exists:**
|
|
3024
|
+
- Verify status is 'Done'. If not, alert user: "ALERT: Found incomplete story! File: {lastEpicNum}.{lastStoryNum}.story.md Status: [current status] You should fix this story first, but would you like to accept risk & override to create the next story in draft?"
|
|
3025
|
+
- If proceeding, select next sequential story in the current epic
|
|
3026
|
+
- If epic is complete, prompt user: "Epic {epicNum} Complete: All stories in Epic {epicNum} have been completed. Would you like to: 1) Begin Epic {epicNum + 1} with story 1 2) Select a specific story to work on 3) Cancel story creation"
|
|
3027
|
+
- **CRITICAL**: NEVER automatically skip to another epic. User MUST explicitly instruct which story to create.
|
|
3028
|
+
- **If no story files exist:** The next story is ALWAYS 1.1 (first story of first epic)
|
|
3029
|
+
- Announce the identified story to the user: "Identified next story for preparation: {epicNum}.{storyNum} - {Story Title}"
|
|
2816
3030
|
|
|
2817
|
-
|
|
2818
|
-
This is an interactive process with the user. Work through each section together, discussing implications and options. The user makes final decisions, but provide expert guidance on technical feasibility and impact.
|
|
3031
|
+
### 2. Gather Story Requirements and Previous Story Context
|
|
2819
3032
|
|
|
2820
|
-
|
|
3033
|
+
- Extract story requirements from the identified epic file
|
|
3034
|
+
- If previous story exists, review Dev Agent Record sections for:
|
|
3035
|
+
- Completion Notes and Debug Log References
|
|
3036
|
+
- Implementation deviations and technical decisions
|
|
3037
|
+
- Challenges encountered and lessons learned
|
|
3038
|
+
- Extract relevant insights that inform the current story's preparation
|
|
2821
3039
|
|
|
2822
|
-
|
|
3040
|
+
### 3. Gather Architecture Context
|
|
2823
3041
|
|
|
2824
|
-
|
|
3042
|
+
#### 3.1 Determine Architecture Reading Strategy
|
|
2825
3043
|
|
|
2826
|
-
|
|
3044
|
+
- **If `architectureVersion: >= v4` and `architectureSharded: true`**: Read `{architectureShardedLocation}/index.md` then follow structured reading order below
|
|
3045
|
+
- **Else**: Use monolithic `architectureFile` for similar sections
|
|
2827
3046
|
|
|
2828
|
-
|
|
2829
|
-
- Is this a one-time issue or symptomatic of a larger problem?
|
|
2830
|
-
- Could this have been anticipated earlier?
|
|
2831
|
-
- What assumptions were incorrect?
|
|
3047
|
+
#### 3.2 Read Architecture Documents Based on Story Type
|
|
2832
3048
|
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
- [ ] **Identify Triggering Story:** Clearly identify the story (or stories) that revealed the issue.
|
|
2836
|
-
- [ ] **Define the Issue:** Articulate the core problem precisely.
|
|
2837
|
-
- [ ] Is it a technical limitation/dead-end?
|
|
2838
|
-
- [ ] Is it a newly discovered requirement?
|
|
2839
|
-
- [ ] Is it a fundamental misunderstanding of existing requirements?
|
|
2840
|
-
- [ ] Is it a necessary pivot based on feedback or new information?
|
|
2841
|
-
- [ ] Is it a failed/abandoned story needing a new approach?
|
|
2842
|
-
- [ ] **Assess Initial Impact:** Describe the immediate observed consequences (e.g., blocked progress, incorrect functionality, non-viable tech).
|
|
2843
|
-
- [ ] **Gather Evidence:** Note any specific logs, error messages, user feedback, or analysis that supports the issue definition.
|
|
2844
|
-
|
|
2845
|
-
## 2. Epic Impact Assessment
|
|
2846
|
-
|
|
2847
|
-
[[LLM: Changes ripple through the project structure. Systematically evaluate:
|
|
2848
|
-
|
|
2849
|
-
1. Can we salvage the current epic with modifications?
|
|
2850
|
-
2. Do future epics still make sense given this change?
|
|
2851
|
-
3. Are we creating or eliminating dependencies?
|
|
2852
|
-
4. Does the epic sequence need reordering?
|
|
2853
|
-
|
|
2854
|
-
Think about both immediate and downstream effects.]]
|
|
2855
|
-
|
|
2856
|
-
- [ ] **Analyze Current Epic:**
|
|
2857
|
-
- [ ] Can the current epic containing the trigger story still be completed?
|
|
2858
|
-
- [ ] Does the current epic need modification (story changes, additions, removals)?
|
|
2859
|
-
- [ ] Should the current epic be abandoned or fundamentally redefined?
|
|
2860
|
-
- [ ] **Analyze Future Epics:**
|
|
2861
|
-
- [ ] Review all remaining planned epics.
|
|
2862
|
-
- [ ] Does the issue require changes to planned stories in future epics?
|
|
2863
|
-
- [ ] Does the issue invalidate any future epics?
|
|
2864
|
-
- [ ] Does the issue necessitate the creation of entirely new epics?
|
|
2865
|
-
- [ ] Should the order/priority of future epics be changed?
|
|
2866
|
-
- [ ] **Summarize Epic Impact:** Briefly document the overall effect on the project's epic structure and flow.
|
|
2867
|
-
|
|
2868
|
-
## 3. Artifact Conflict & Impact Analysis
|
|
2869
|
-
|
|
2870
|
-
[[LLM: Documentation drives development in BMad. Check each artifact:
|
|
2871
|
-
|
|
2872
|
-
1. Does this change invalidate documented decisions?
|
|
2873
|
-
2. Are architectural assumptions still valid?
|
|
2874
|
-
3. Do user flows need rethinking?
|
|
2875
|
-
4. Are technical constraints different than documented?
|
|
2876
|
-
|
|
2877
|
-
Be thorough - missed conflicts cause future problems.]]
|
|
2878
|
-
|
|
2879
|
-
- [ ] **Review PRD:**
|
|
2880
|
-
- [ ] Does the issue conflict with the core goals or requirements stated in the PRD?
|
|
2881
|
-
- [ ] Does the PRD need clarification or updates based on the new understanding?
|
|
2882
|
-
- [ ] **Review Architecture Document:**
|
|
2883
|
-
- [ ] Does the issue conflict with the documented architecture (components, patterns, tech choices)?
|
|
2884
|
-
- [ ] Are specific components/diagrams/sections impacted?
|
|
2885
|
-
- [ ] Does the technology list need updating?
|
|
2886
|
-
- [ ] Do data models or schemas need revision?
|
|
2887
|
-
- [ ] Are external API integrations affected?
|
|
2888
|
-
- [ ] **Review Frontend Spec (if applicable):**
|
|
2889
|
-
- [ ] Does the issue conflict with the FE architecture, component library choice, or UI/UX design?
|
|
2890
|
-
- [ ] Are specific FE components or user flows impacted?
|
|
2891
|
-
- [ ] **Review Other Artifacts (if applicable):**
|
|
2892
|
-
- [ ] Consider impact on deployment scripts, IaC, monitoring setup, etc.
|
|
2893
|
-
- [ ] **Summarize Artifact Impact:** List all artifacts requiring updates and the nature of the changes needed.
|
|
2894
|
-
|
|
2895
|
-
## 4. Path Forward Evaluation
|
|
2896
|
-
|
|
2897
|
-
[[LLM: Present options clearly with pros/cons. For each path:
|
|
2898
|
-
|
|
2899
|
-
1. What's the effort required?
|
|
2900
|
-
2. What work gets thrown away?
|
|
2901
|
-
3. What risks are we taking?
|
|
2902
|
-
4. How does this affect timeline?
|
|
2903
|
-
5. Is this sustainable long-term?
|
|
2904
|
-
|
|
2905
|
-
Be honest about trade-offs. There's rarely a perfect solution.]]
|
|
2906
|
-
|
|
2907
|
-
- [ ] **Option 1: Direct Adjustment / Integration:**
|
|
2908
|
-
- [ ] Can the issue be addressed by modifying/adding future stories within the existing plan?
|
|
2909
|
-
- [ ] Define the scope and nature of these adjustments.
|
|
2910
|
-
- [ ] Assess feasibility, effort, and risks of this path.
|
|
2911
|
-
- [ ] **Option 2: Potential Rollback:**
|
|
2912
|
-
- [ ] Would reverting completed stories significantly simplify addressing the issue?
|
|
2913
|
-
- [ ] Identify specific stories/commits to consider for rollback.
|
|
2914
|
-
- [ ] Assess the effort required for rollback.
|
|
2915
|
-
- [ ] Assess the impact of rollback (lost work, data implications).
|
|
2916
|
-
- [ ] Compare the net benefit/cost vs. Direct Adjustment.
|
|
2917
|
-
- [ ] **Option 3: PRD MVP Review & Potential Re-scoping:**
|
|
2918
|
-
- [ ] Is the original PRD MVP still achievable given the issue and constraints?
|
|
2919
|
-
- [ ] Does the MVP scope need reduction (removing features/epics)?
|
|
2920
|
-
- [ ] Do the core MVP goals need modification?
|
|
2921
|
-
- [ ] Are alternative approaches needed to meet the original MVP intent?
|
|
2922
|
-
- [ ] **Extreme Case:** Does the issue necessitate a fundamental replan or potentially a new PRD V2 (to be handled by PM)?
|
|
2923
|
-
- [ ] **Select Recommended Path:** Based on the evaluation, agree on the most viable path forward.
|
|
2924
|
-
|
|
2925
|
-
## 5. Sprint Change Proposal Components
|
|
2926
|
-
|
|
2927
|
-
[[LLM: The proposal must be actionable and clear. Ensure:
|
|
2928
|
-
|
|
2929
|
-
1. The issue is explained in plain language
|
|
2930
|
-
2. Impacts are quantified where possible
|
|
2931
|
-
3. The recommended path has clear rationale
|
|
2932
|
-
4. Next steps are specific and assigned
|
|
2933
|
-
5. Success criteria for the change are defined
|
|
2934
|
-
|
|
2935
|
-
This proposal guides all subsequent work.]]
|
|
2936
|
-
|
|
2937
|
-
(Ensure all agreed-upon points from previous sections are captured in the proposal)
|
|
2938
|
-
|
|
2939
|
-
- [ ] **Identified Issue Summary:** Clear, concise problem statement.
|
|
2940
|
-
- [ ] **Epic Impact Summary:** How epics are affected.
|
|
2941
|
-
- [ ] **Artifact Adjustment Needs:** List of documents to change.
|
|
2942
|
-
- [ ] **Recommended Path Forward:** Chosen solution with rationale.
|
|
2943
|
-
- [ ] **PRD MVP Impact:** Changes to scope/goals (if any).
|
|
2944
|
-
- [ ] **High-Level Action Plan:** Next steps for stories/updates.
|
|
2945
|
-
- [ ] **Agent Handoff Plan:** Identify roles needed (PM, Arch, Design Arch, PO).
|
|
2946
|
-
|
|
2947
|
-
## 6. Final Review & Handoff
|
|
2948
|
-
|
|
2949
|
-
[[LLM: Changes require coordination. Before concluding:
|
|
2950
|
-
|
|
2951
|
-
1. Is the user fully aligned with the plan?
|
|
2952
|
-
2. Do all stakeholders understand the impacts?
|
|
2953
|
-
3. Are handoffs to other agents clear?
|
|
2954
|
-
4. Is there a rollback plan if the change fails?
|
|
2955
|
-
5. How will we validate the change worked?
|
|
2956
|
-
|
|
2957
|
-
Get explicit approval - implicit agreement causes problems.
|
|
2958
|
-
|
|
2959
|
-
FINAL REPORT:
|
|
2960
|
-
After completing the checklist, provide a concise summary:
|
|
2961
|
-
|
|
2962
|
-
- What changed and why
|
|
2963
|
-
- What we're doing about it
|
|
2964
|
-
- Who needs to do what
|
|
2965
|
-
- When we'll know if it worked
|
|
2966
|
-
|
|
2967
|
-
Keep it action-oriented and forward-looking.]]
|
|
2968
|
-
|
|
2969
|
-
- [ ] **Review Checklist:** Confirm all relevant items were discussed.
|
|
2970
|
-
- [ ] **Review Sprint Change Proposal:** Ensure it accurately reflects the discussion and decisions.
|
|
2971
|
-
- [ ] **User Approval:** Obtain explicit user approval for the proposal.
|
|
2972
|
-
- [ ] **Confirm Next Steps:** Reiterate the handoff plan and the next actions to be taken by specific agents.
|
|
2973
|
-
|
|
2974
|
-
---
|
|
2975
|
-
==================== END: .bmad-core/checklists/change-checklist.md ====================
|
|
2976
|
-
|
|
2977
|
-
==================== START: .bmad-core/tasks/create-next-story.md ====================
|
|
2978
|
-
# Create Next Story Task
|
|
2979
|
-
|
|
2980
|
-
## Purpose
|
|
2981
|
-
|
|
2982
|
-
To identify the next logical story based on project progress and epic definitions, and then to prepare a comprehensive, self-contained, and actionable story file using the `Story Template`. This task ensures the story is enriched with all necessary technical context, requirements, and acceptance criteria, making it ready for efficient implementation by a Developer Agent with minimal need for additional research or finding its own context.
|
|
2983
|
-
|
|
2984
|
-
## SEQUENTIAL Task Execution (Do not proceed until current Task is complete)
|
|
2985
|
-
|
|
2986
|
-
### 0. Load Core Configuration and Check Workflow
|
|
2987
|
-
|
|
2988
|
-
- Load `.bmad-core/core-config.yaml` from the project root
|
|
2989
|
-
- If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding."
|
|
2990
|
-
- Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*`
|
|
2991
|
-
|
|
2992
|
-
### 1. Identify Next Story for Preparation
|
|
2993
|
-
|
|
2994
|
-
#### 1.1 Locate Epic Files and Review Existing Stories
|
|
2995
|
-
|
|
2996
|
-
- Based on `prdSharded` from config, locate epic files (sharded location/pattern or monolithic PRD sections)
|
|
2997
|
-
- If `devStoryLocation` has story files, load the highest `{epicNum}.{storyNum}.story.md` file
|
|
2998
|
-
- **If highest story exists:**
|
|
2999
|
-
- Verify status is 'Done'. If not, alert user: "ALERT: Found incomplete story! File: {lastEpicNum}.{lastStoryNum}.story.md Status: [current status] You should fix this story first, but would you like to accept risk & override to create the next story in draft?"
|
|
3000
|
-
- If proceeding, select next sequential story in the current epic
|
|
3001
|
-
- If epic is complete, prompt user: "Epic {epicNum} Complete: All stories in Epic {epicNum} have been completed. Would you like to: 1) Begin Epic {epicNum + 1} with story 1 2) Select a specific story to work on 3) Cancel story creation"
|
|
3002
|
-
- **CRITICAL**: NEVER automatically skip to another epic. User MUST explicitly instruct which story to create.
|
|
3003
|
-
- **If no story files exist:** The next story is ALWAYS 1.1 (first story of first epic)
|
|
3004
|
-
- Announce the identified story to the user: "Identified next story for preparation: {epicNum}.{storyNum} - {Story Title}"
|
|
3005
|
-
|
|
3006
|
-
### 2. Gather Story Requirements and Previous Story Context
|
|
3007
|
-
|
|
3008
|
-
- Extract story requirements from the identified epic file
|
|
3009
|
-
- If previous story exists, review Dev Agent Record sections for:
|
|
3010
|
-
- Completion Notes and Debug Log References
|
|
3011
|
-
- Implementation deviations and technical decisions
|
|
3012
|
-
- Challenges encountered and lessons learned
|
|
3013
|
-
- Extract relevant insights that inform the current story's preparation
|
|
3014
|
-
|
|
3015
|
-
### 3. Gather Architecture Context
|
|
3016
|
-
|
|
3017
|
-
#### 3.1 Determine Architecture Reading Strategy
|
|
3018
|
-
|
|
3019
|
-
- **If `architectureVersion: >= v4` and `architectureSharded: true`**: Read `{architectureShardedLocation}/index.md` then follow structured reading order below
|
|
3020
|
-
- **Else**: Use monolithic `architectureFile` for similar sections
|
|
3021
|
-
|
|
3022
|
-
#### 3.2 Read Architecture Documents Based on Story Type
|
|
3023
|
-
|
|
3024
|
-
**For ALL Stories:** tech-stack.md, unified-project-structure.md, coding-standards.md, testing-strategy.md
|
|
3049
|
+
**For ALL Stories:** tech-stack.md, unified-project-structure.md, coding-standards.md, testing-strategy.md
|
|
3025
3050
|
|
|
3026
3051
|
**For Backend/API Stories, additionally:** data-models.md, database-schema.md, backend-architecture.md, rest-api-spec.md, external-apis.md
|
|
3027
3052
|
|
|
@@ -3209,19 +3234,16 @@ Note: We don't need every file listed - just the important ones.]]
|
|
|
3209
3234
|
Generate a concise validation report:
|
|
3210
3235
|
|
|
3211
3236
|
1. Quick Summary
|
|
3212
|
-
|
|
3213
3237
|
- Story readiness: READY / NEEDS REVISION / BLOCKED
|
|
3214
3238
|
- Clarity score (1-10)
|
|
3215
3239
|
- Major gaps identified
|
|
3216
3240
|
|
|
3217
3241
|
2. Fill in the validation table with:
|
|
3218
|
-
|
|
3219
3242
|
- PASS: Requirements clearly met
|
|
3220
3243
|
- PARTIAL: Some gaps but workable
|
|
3221
3244
|
- FAIL: Critical information missing
|
|
3222
3245
|
|
|
3223
3246
|
3. Specific Issues (if any)
|
|
3224
|
-
|
|
3225
3247
|
- List concrete problems to fix
|
|
3226
3248
|
- Suggest specific improvements
|
|
3227
3249
|
- Identify any blocking dependencies
|
|
@@ -3248,6 +3270,157 @@ Be pragmatic - perfect documentation doesn't exist, but it must be enough to pro
|
|
|
3248
3270
|
- BLOCKED: External information required (specify what information)
|
|
3249
3271
|
==================== END: .bmad-core/checklists/story-draft-checklist.md ====================
|
|
3250
3272
|
|
|
3273
|
+
==================== START: .bmad-core/tasks/apply-qa-fixes.md ====================
|
|
3274
|
+
# apply-qa-fixes
|
|
3275
|
+
|
|
3276
|
+
Implement fixes based on QA results (gate and assessments) for a specific story. This task is for the Dev agent to systematically consume QA outputs and apply code/test changes while only updating allowed sections in the story file.
|
|
3277
|
+
|
|
3278
|
+
## Purpose
|
|
3279
|
+
|
|
3280
|
+
- Read QA outputs for a story (gate YAML + assessment markdowns)
|
|
3281
|
+
- Create a prioritized, deterministic fix plan
|
|
3282
|
+
- Apply code and test changes to close gaps and address issues
|
|
3283
|
+
- Update only the allowed story sections for the Dev agent
|
|
3284
|
+
|
|
3285
|
+
## Inputs
|
|
3286
|
+
|
|
3287
|
+
```yaml
|
|
3288
|
+
required:
|
|
3289
|
+
- story_id: '{epic}.{story}' # e.g., "2.2"
|
|
3290
|
+
- qa_root: from `bmad-core/core-config.yaml` key `qa.qaLocation` (e.g., `docs/project/qa`)
|
|
3291
|
+
- story_root: from `bmad-core/core-config.yaml` key `devStoryLocation` (e.g., `docs/project/stories`)
|
|
3292
|
+
|
|
3293
|
+
optional:
|
|
3294
|
+
- story_title: '{title}' # derive from story H1 if missing
|
|
3295
|
+
- story_slug: '{slug}' # derive from title (lowercase, hyphenated) if missing
|
|
3296
|
+
```
|
|
3297
|
+
|
|
3298
|
+
## QA Sources to Read
|
|
3299
|
+
|
|
3300
|
+
- Gate (YAML): `{qa_root}/gates/{epic}.{story}-*.yml`
|
|
3301
|
+
- If multiple, use the most recent by modified time
|
|
3302
|
+
- Assessments (Markdown):
|
|
3303
|
+
- Test Design: `{qa_root}/assessments/{epic}.{story}-test-design-*.md`
|
|
3304
|
+
- Traceability: `{qa_root}/assessments/{epic}.{story}-trace-*.md`
|
|
3305
|
+
- Risk Profile: `{qa_root}/assessments/{epic}.{story}-risk-*.md`
|
|
3306
|
+
- NFR Assessment: `{qa_root}/assessments/{epic}.{story}-nfr-*.md`
|
|
3307
|
+
|
|
3308
|
+
## Prerequisites
|
|
3309
|
+
|
|
3310
|
+
- Repository builds and tests run locally (Deno 2)
|
|
3311
|
+
- Lint and test commands available:
|
|
3312
|
+
- `deno lint`
|
|
3313
|
+
- `deno test -A`
|
|
3314
|
+
|
|
3315
|
+
## Process (Do not skip steps)
|
|
3316
|
+
|
|
3317
|
+
### 0) Load Core Config & Locate Story
|
|
3318
|
+
|
|
3319
|
+
- Read `bmad-core/core-config.yaml` and resolve `qa_root` and `story_root`
|
|
3320
|
+
- Locate story file in `{story_root}/{epic}.{story}.*.md`
|
|
3321
|
+
- HALT if missing and ask for correct story id/path
|
|
3322
|
+
|
|
3323
|
+
### 1) Collect QA Findings
|
|
3324
|
+
|
|
3325
|
+
- Parse the latest gate YAML:
|
|
3326
|
+
- `gate` (PASS|CONCERNS|FAIL|WAIVED)
|
|
3327
|
+
- `top_issues[]` with `id`, `severity`, `finding`, `suggested_action`
|
|
3328
|
+
- `nfr_validation.*.status` and notes
|
|
3329
|
+
- `trace` coverage summary/gaps
|
|
3330
|
+
- `test_design.coverage_gaps[]`
|
|
3331
|
+
- `risk_summary.recommendations.must_fix[]` (if present)
|
|
3332
|
+
- Read any present assessment markdowns and extract explicit gaps/recommendations
|
|
3333
|
+
|
|
3334
|
+
### 2) Build Deterministic Fix Plan (Priority Order)
|
|
3335
|
+
|
|
3336
|
+
Apply in order, highest priority first:
|
|
3337
|
+
|
|
3338
|
+
1. High severity items in `top_issues` (security/perf/reliability/maintainability)
|
|
3339
|
+
2. NFR statuses: all FAIL must be fixed → then CONCERNS
|
|
3340
|
+
3. Test Design `coverage_gaps` (prioritize P0 scenarios if specified)
|
|
3341
|
+
4. Trace uncovered requirements (AC-level)
|
|
3342
|
+
5. Risk `must_fix` recommendations
|
|
3343
|
+
6. Medium severity issues, then low
|
|
3344
|
+
|
|
3345
|
+
Guidance:
|
|
3346
|
+
|
|
3347
|
+
- Prefer tests closing coverage gaps before/with code changes
|
|
3348
|
+
- Keep changes minimal and targeted; follow project architecture and TS/Deno rules
|
|
3349
|
+
|
|
3350
|
+
### 3) Apply Changes
|
|
3351
|
+
|
|
3352
|
+
- Implement code fixes per plan
|
|
3353
|
+
- Add missing tests to close coverage gaps (unit first; integration where required by AC)
|
|
3354
|
+
- Keep imports centralized via `deps.ts` (see `docs/project/typescript-rules.md`)
|
|
3355
|
+
- Follow DI boundaries in `src/core/di.ts` and existing patterns
|
|
3356
|
+
|
|
3357
|
+
### 4) Validate
|
|
3358
|
+
|
|
3359
|
+
- Run `deno lint` and fix issues
|
|
3360
|
+
- Run `deno test -A` until all tests pass
|
|
3361
|
+
- Iterate until clean
|
|
3362
|
+
|
|
3363
|
+
### 5) Update Story (Allowed Sections ONLY)
|
|
3364
|
+
|
|
3365
|
+
CRITICAL: Dev agent is ONLY authorized to update these sections of the story file. Do not modify any other sections (e.g., QA Results, Story, Acceptance Criteria, Dev Notes, Testing):
|
|
3366
|
+
|
|
3367
|
+
- Tasks / Subtasks Checkboxes (mark any fix subtask you added as done)
|
|
3368
|
+
- Dev Agent Record →
|
|
3369
|
+
- Agent Model Used (if changed)
|
|
3370
|
+
- Debug Log References (commands/results, e.g., lint/tests)
|
|
3371
|
+
- Completion Notes List (what changed, why, how)
|
|
3372
|
+
- File List (all added/modified/deleted files)
|
|
3373
|
+
- Change Log (new dated entry describing applied fixes)
|
|
3374
|
+
- Status (see Rule below)
|
|
3375
|
+
|
|
3376
|
+
Status Rule:
|
|
3377
|
+
|
|
3378
|
+
- If gate was PASS and all identified gaps are closed → set `Status: Ready for Done`
|
|
3379
|
+
- Otherwise → set `Status: Ready for Review` and notify QA to re-run the review
|
|
3380
|
+
|
|
3381
|
+
### 6) Do NOT Edit Gate Files
|
|
3382
|
+
|
|
3383
|
+
- Dev does not modify gate YAML. If fixes address issues, request QA to re-run `review-story` to update the gate
|
|
3384
|
+
|
|
3385
|
+
## Blocking Conditions
|
|
3386
|
+
|
|
3387
|
+
- Missing `bmad-core/core-config.yaml`
|
|
3388
|
+
- Story file not found for `story_id`
|
|
3389
|
+
- No QA artifacts found (neither gate nor assessments)
|
|
3390
|
+
- HALT and request QA to generate at least a gate file (or proceed only with clear developer-provided fix list)
|
|
3391
|
+
|
|
3392
|
+
## Completion Checklist
|
|
3393
|
+
|
|
3394
|
+
- deno lint: 0 problems
|
|
3395
|
+
- deno test -A: all tests pass
|
|
3396
|
+
- All high severity `top_issues` addressed
|
|
3397
|
+
- NFR FAIL → resolved; CONCERNS minimized or documented
|
|
3398
|
+
- Coverage gaps closed or explicitly documented with rationale
|
|
3399
|
+
- Story updated (allowed sections only) including File List and Change Log
|
|
3400
|
+
- Status set according to Status Rule
|
|
3401
|
+
|
|
3402
|
+
## Example: Story 2.2
|
|
3403
|
+
|
|
3404
|
+
Given gate `docs/project/qa/gates/2.2-*.yml` shows
|
|
3405
|
+
|
|
3406
|
+
- `coverage_gaps`: Back action behavior untested (AC2)
|
|
3407
|
+
- `coverage_gaps`: Centralized dependencies enforcement untested (AC4)
|
|
3408
|
+
|
|
3409
|
+
Fix plan:
|
|
3410
|
+
|
|
3411
|
+
- Add a test ensuring the Toolkit Menu "Back" action returns to Main Menu
|
|
3412
|
+
- Add a static test verifying imports for service/view go through `deps.ts`
|
|
3413
|
+
- Re-run lint/tests and update Dev Agent Record + File List accordingly
|
|
3414
|
+
|
|
3415
|
+
## Key Principles
|
|
3416
|
+
|
|
3417
|
+
- Deterministic, risk-first prioritization
|
|
3418
|
+
- Minimal, maintainable changes
|
|
3419
|
+
- Tests validate behavior and close gaps
|
|
3420
|
+
- Strict adherence to allowed story update areas
|
|
3421
|
+
- Gate ownership remains with QA; Dev signals readiness via Status
|
|
3422
|
+
==================== END: .bmad-core/tasks/apply-qa-fixes.md ====================
|
|
3423
|
+
|
|
3251
3424
|
==================== START: .bmad-core/checklists/story-dod-checklist.md ====================
|
|
3252
3425
|
# Story Definition of Done (DoD) Checklist
|
|
3253
3426
|
|
|
@@ -3276,14 +3449,12 @@ The goal is quality delivery, not just checking boxes.]]
|
|
|
3276
3449
|
1. **Requirements Met:**
|
|
3277
3450
|
|
|
3278
3451
|
[[LLM: Be specific - list each requirement and whether it's complete]]
|
|
3279
|
-
|
|
3280
3452
|
- [ ] All functional requirements specified in the story are implemented.
|
|
3281
3453
|
- [ ] All acceptance criteria defined in the story are met.
|
|
3282
3454
|
|
|
3283
3455
|
2. **Coding Standards & Project Structure:**
|
|
3284
3456
|
|
|
3285
3457
|
[[LLM: Code quality matters for maintainability. Check each item carefully]]
|
|
3286
|
-
|
|
3287
3458
|
- [ ] All new/modified code strictly adheres to `Operational Guidelines`.
|
|
3288
3459
|
- [ ] All new/modified code aligns with `Project Structure` (file locations, naming, etc.).
|
|
3289
3460
|
- [ ] Adherence to `Tech Stack` for technologies/versions used (if story introduces or modifies tech usage).
|
|
@@ -3295,7 +3466,6 @@ The goal is quality delivery, not just checking boxes.]]
|
|
|
3295
3466
|
3. **Testing:**
|
|
3296
3467
|
|
|
3297
3468
|
[[LLM: Testing proves your code works. Be honest about test coverage]]
|
|
3298
|
-
|
|
3299
3469
|
- [ ] All required unit tests as per the story and `Operational Guidelines` Testing Strategy are implemented.
|
|
3300
3470
|
- [ ] All required integration tests (if applicable) as per the story and `Operational Guidelines` Testing Strategy are implemented.
|
|
3301
3471
|
- [ ] All tests (unit, integration, E2E if applicable) pass successfully.
|
|
@@ -3304,14 +3474,12 @@ The goal is quality delivery, not just checking boxes.]]
|
|
|
3304
3474
|
4. **Functionality & Verification:**
|
|
3305
3475
|
|
|
3306
3476
|
[[LLM: Did you actually run and test your code? Be specific about what you tested]]
|
|
3307
|
-
|
|
3308
3477
|
- [ ] Functionality has been manually verified by the developer (e.g., running the app locally, checking UI, testing API endpoints).
|
|
3309
3478
|
- [ ] Edge cases and potential error conditions considered and handled gracefully.
|
|
3310
3479
|
|
|
3311
3480
|
5. **Story Administration:**
|
|
3312
3481
|
|
|
3313
3482
|
[[LLM: Documentation helps the next developer. What should they know?]]
|
|
3314
|
-
|
|
3315
3483
|
- [ ] All tasks within the story file are marked as complete.
|
|
3316
3484
|
- [ ] Any clarifications or decisions made during development are documented in the story file or linked appropriately.
|
|
3317
3485
|
- [ ] The story wrap up section has been completed with notes of changes or information relevant to the next story or overall project, the agent model that was primarily used during development, and the changelog of any changes is properly updated.
|
|
@@ -3319,7 +3487,6 @@ The goal is quality delivery, not just checking boxes.]]
|
|
|
3319
3487
|
6. **Dependencies, Build & Configuration:**
|
|
3320
3488
|
|
|
3321
3489
|
[[LLM: Build issues block everyone. Ensure everything compiles and runs cleanly]]
|
|
3322
|
-
|
|
3323
3490
|
- [ ] Project builds successfully without errors.
|
|
3324
3491
|
- [ ] Project linting passes
|
|
3325
3492
|
- [ ] Any new dependencies added were either pre-approved in the story requirements OR explicitly approved by the user during development (approval documented in story file).
|
|
@@ -3330,7 +3497,6 @@ The goal is quality delivery, not just checking boxes.]]
|
|
|
3330
3497
|
7. **Documentation (If Applicable):**
|
|
3331
3498
|
|
|
3332
3499
|
[[LLM: Good documentation prevents future confusion. What needs explaining?]]
|
|
3333
|
-
|
|
3334
3500
|
- [ ] Relevant inline code documentation (e.g., JSDoc, TSDoc, Python docstrings) for new public APIs or complex logic is complete.
|
|
3335
3501
|
- [ ] User-facing documentation updated, if changes impact users.
|
|
3336
3502
|
- [ ] Technical documentation (e.g., READMEs, system diagrams) updated if significant architectural changes were made.
|
|
@@ -3352,109 +3518,664 @@ Be honest - it's better to flag issues now than have them discovered later.]]
|
|
|
3352
3518
|
- [ ] I, the Developer Agent, confirm that all applicable items above have been addressed.
|
|
3353
3519
|
==================== END: .bmad-core/checklists/story-dod-checklist.md ====================
|
|
3354
3520
|
|
|
3355
|
-
==================== START: .bmad-core/tasks/
|
|
3356
|
-
#
|
|
3521
|
+
==================== START: .bmad-core/tasks/nfr-assess.md ====================
|
|
3522
|
+
# nfr-assess
|
|
3357
3523
|
|
|
3358
|
-
|
|
3524
|
+
Quick NFR validation focused on the core four: security, performance, reliability, maintainability.
|
|
3359
3525
|
|
|
3360
|
-
##
|
|
3526
|
+
## Inputs
|
|
3361
3527
|
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
-
|
|
3528
|
+
```yaml
|
|
3529
|
+
required:
|
|
3530
|
+
- story_id: '{epic}.{story}' # e.g., "1.3"
|
|
3531
|
+
- story_path: `bmad-core/core-config.yaml` for the `devStoryLocation`
|
|
3532
|
+
|
|
3533
|
+
optional:
|
|
3534
|
+
- architecture_refs: `bmad-core/core-config.yaml` for the `architecture.architectureFile`
|
|
3535
|
+
- technical_preferences: `bmad-core/core-config.yaml` for the `technicalPreferences`
|
|
3536
|
+
- acceptance_criteria: From story file
|
|
3537
|
+
```
|
|
3365
3538
|
|
|
3366
|
-
##
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3539
|
+
## Purpose
|
|
3540
|
+
|
|
3541
|
+
Assess non-functional requirements for a story and generate:
|
|
3542
|
+
|
|
3543
|
+
1. YAML block for the gate file's `nfr_validation` section
|
|
3544
|
+
2. Brief markdown assessment saved to `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
|
|
3545
|
+
|
|
3546
|
+
## Process
|
|
3547
|
+
|
|
3548
|
+
### 0. Fail-safe for Missing Inputs
|
|
3549
|
+
|
|
3550
|
+
If story_path or story file can't be found:
|
|
3551
|
+
|
|
3552
|
+
- Still create assessment file with note: "Source story not found"
|
|
3553
|
+
- Set all selected NFRs to CONCERNS with notes: "Target unknown / evidence missing"
|
|
3554
|
+
- Continue with assessment to provide value
|
|
3555
|
+
|
|
3556
|
+
### 1. Elicit Scope
|
|
3557
|
+
|
|
3558
|
+
**Interactive mode:** Ask which NFRs to assess
|
|
3559
|
+
**Non-interactive mode:** Default to core four (security, performance, reliability, maintainability)
|
|
3560
|
+
|
|
3561
|
+
```text
|
|
3562
|
+
Which NFRs should I assess? (Enter numbers or press Enter for default)
|
|
3563
|
+
[1] Security (default)
|
|
3564
|
+
[2] Performance (default)
|
|
3565
|
+
[3] Reliability (default)
|
|
3566
|
+
[4] Maintainability (default)
|
|
3567
|
+
[5] Usability
|
|
3568
|
+
[6] Compatibility
|
|
3569
|
+
[7] Portability
|
|
3570
|
+
[8] Functional Suitability
|
|
3571
|
+
|
|
3572
|
+
> [Enter for 1-4]
|
|
3573
|
+
```
|
|
3574
|
+
|
|
3575
|
+
### 2. Check for Thresholds
|
|
3576
|
+
|
|
3577
|
+
Look for NFR requirements in:
|
|
3578
|
+
|
|
3579
|
+
- Story acceptance criteria
|
|
3580
|
+
- `docs/architecture/*.md` files
|
|
3581
|
+
- `docs/technical-preferences.md`
|
|
3582
|
+
|
|
3583
|
+
**Interactive mode:** Ask for missing thresholds
|
|
3584
|
+
**Non-interactive mode:** Mark as CONCERNS with "Target unknown"
|
|
3585
|
+
|
|
3586
|
+
```text
|
|
3587
|
+
No performance requirements found. What's your target response time?
|
|
3588
|
+
> 200ms for API calls
|
|
3589
|
+
|
|
3590
|
+
No security requirements found. Required auth method?
|
|
3591
|
+
> JWT with refresh tokens
|
|
3592
|
+
```
|
|
3593
|
+
|
|
3594
|
+
**Unknown targets policy:** If a target is missing and not provided, mark status as CONCERNS with notes: "Target unknown"
|
|
3595
|
+
|
|
3596
|
+
### 3. Quick Assessment
|
|
3597
|
+
|
|
3598
|
+
For each selected NFR, check:
|
|
3599
|
+
|
|
3600
|
+
- Is there evidence it's implemented?
|
|
3601
|
+
- Can we validate it?
|
|
3602
|
+
- Are there obvious gaps?
|
|
3603
|
+
|
|
3604
|
+
### 4. Generate Outputs
|
|
3605
|
+
|
|
3606
|
+
## Output 1: Gate YAML Block
|
|
3607
|
+
|
|
3608
|
+
Generate ONLY for NFRs actually assessed (no placeholders):
|
|
3609
|
+
|
|
3610
|
+
```yaml
|
|
3611
|
+
# Gate YAML (copy/paste):
|
|
3612
|
+
nfr_validation:
|
|
3613
|
+
_assessed: [security, performance, reliability, maintainability]
|
|
3614
|
+
security:
|
|
3615
|
+
status: CONCERNS
|
|
3616
|
+
notes: 'No rate limiting on auth endpoints'
|
|
3617
|
+
performance:
|
|
3618
|
+
status: PASS
|
|
3619
|
+
notes: 'Response times < 200ms verified'
|
|
3620
|
+
reliability:
|
|
3621
|
+
status: PASS
|
|
3622
|
+
notes: 'Error handling and retries implemented'
|
|
3623
|
+
maintainability:
|
|
3624
|
+
status: CONCERNS
|
|
3625
|
+
notes: 'Test coverage at 65%, target is 80%'
|
|
3626
|
+
```
|
|
3627
|
+
|
|
3628
|
+
## Deterministic Status Rules
|
|
3629
|
+
|
|
3630
|
+
- **FAIL**: Any selected NFR has critical gap or target clearly not met
|
|
3631
|
+
- **CONCERNS**: No FAILs, but any NFR is unknown/partial/missing evidence
|
|
3632
|
+
- **PASS**: All selected NFRs meet targets with evidence
|
|
3633
|
+
|
|
3634
|
+
## Quality Score Calculation
|
|
3635
|
+
|
|
3636
|
+
```
|
|
3637
|
+
quality_score = 100
|
|
3638
|
+
- 20 for each FAIL attribute
|
|
3639
|
+
- 10 for each CONCERNS attribute
|
|
3640
|
+
Floor at 0, ceiling at 100
|
|
3641
|
+
```
|
|
3642
|
+
|
|
3643
|
+
If `technical-preferences.md` defines custom weights, use those instead.
|
|
3644
|
+
|
|
3645
|
+
## Output 2: Brief Assessment Report
|
|
3646
|
+
|
|
3647
|
+
**ALWAYS save to:** `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
|
|
3648
|
+
|
|
3649
|
+
```markdown
|
|
3650
|
+
# NFR Assessment: {epic}.{story}
|
|
3651
|
+
|
|
3652
|
+
Date: {date}
|
|
3653
|
+
Reviewer: Quinn
|
|
3654
|
+
|
|
3655
|
+
<!-- Note: Source story not found (if applicable) -->
|
|
3656
|
+
|
|
3657
|
+
## Summary
|
|
3658
|
+
|
|
3659
|
+
- Security: CONCERNS - Missing rate limiting
|
|
3660
|
+
- Performance: PASS - Meets <200ms requirement
|
|
3661
|
+
- Reliability: PASS - Proper error handling
|
|
3662
|
+
- Maintainability: CONCERNS - Test coverage below target
|
|
3663
|
+
|
|
3664
|
+
## Critical Issues
|
|
3665
|
+
|
|
3666
|
+
1. **No rate limiting** (Security)
|
|
3667
|
+
- Risk: Brute force attacks possible
|
|
3668
|
+
- Fix: Add rate limiting middleware to auth endpoints
|
|
3669
|
+
|
|
3670
|
+
2. **Test coverage 65%** (Maintainability)
|
|
3671
|
+
- Risk: Untested code paths
|
|
3672
|
+
- Fix: Add tests for uncovered branches
|
|
3673
|
+
|
|
3674
|
+
## Quick Wins
|
|
3675
|
+
|
|
3676
|
+
- Add rate limiting: ~2 hours
|
|
3677
|
+
- Increase test coverage: ~4 hours
|
|
3678
|
+
- Add performance monitoring: ~1 hour
|
|
3679
|
+
```
|
|
3680
|
+
|
|
3681
|
+
## Output 3: Story Update Line
|
|
3682
|
+
|
|
3683
|
+
**End with this line for the review task to quote:**
|
|
3684
|
+
|
|
3685
|
+
```
|
|
3686
|
+
NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
|
|
3687
|
+
```
|
|
3688
|
+
|
|
3689
|
+
## Output 4: Gate Integration Line
|
|
3690
|
+
|
|
3691
|
+
**Always print at the end:**
|
|
3692
|
+
|
|
3693
|
+
```
|
|
3694
|
+
Gate NFR block ready → paste into qa.qaLocation/gates/{epic}.{story}-{slug}.yml under nfr_validation
|
|
3695
|
+
```
|
|
3696
|
+
|
|
3697
|
+
## Assessment Criteria
|
|
3698
|
+
|
|
3699
|
+
### Security
|
|
3700
|
+
|
|
3701
|
+
**PASS if:**
|
|
3702
|
+
|
|
3703
|
+
- Authentication implemented
|
|
3704
|
+
- Authorization enforced
|
|
3705
|
+
- Input validation present
|
|
3706
|
+
- No hardcoded secrets
|
|
3707
|
+
|
|
3708
|
+
**CONCERNS if:**
|
|
3709
|
+
|
|
3710
|
+
- Missing rate limiting
|
|
3711
|
+
- Weak encryption
|
|
3712
|
+
- Incomplete authorization
|
|
3713
|
+
|
|
3714
|
+
**FAIL if:**
|
|
3715
|
+
|
|
3716
|
+
- No authentication
|
|
3717
|
+
- Hardcoded credentials
|
|
3718
|
+
- SQL injection vulnerabilities
|
|
3719
|
+
|
|
3720
|
+
### Performance
|
|
3721
|
+
|
|
3722
|
+
**PASS if:**
|
|
3723
|
+
|
|
3724
|
+
- Meets response time targets
|
|
3725
|
+
- No obvious bottlenecks
|
|
3726
|
+
- Reasonable resource usage
|
|
3727
|
+
|
|
3728
|
+
**CONCERNS if:**
|
|
3729
|
+
|
|
3730
|
+
- Close to limits
|
|
3731
|
+
- Missing indexes
|
|
3732
|
+
- No caching strategy
|
|
3733
|
+
|
|
3734
|
+
**FAIL if:**
|
|
3735
|
+
|
|
3736
|
+
- Exceeds response time limits
|
|
3737
|
+
- Memory leaks
|
|
3738
|
+
- Unoptimized queries
|
|
3739
|
+
|
|
3740
|
+
### Reliability
|
|
3741
|
+
|
|
3742
|
+
**PASS if:**
|
|
3743
|
+
|
|
3744
|
+
- Error handling present
|
|
3745
|
+
- Graceful degradation
|
|
3746
|
+
- Retry logic where needed
|
|
3747
|
+
|
|
3748
|
+
**CONCERNS if:**
|
|
3749
|
+
|
|
3750
|
+
- Some error cases unhandled
|
|
3751
|
+
- No circuit breakers
|
|
3752
|
+
- Missing health checks
|
|
3753
|
+
|
|
3754
|
+
**FAIL if:**
|
|
3755
|
+
|
|
3756
|
+
- No error handling
|
|
3757
|
+
- Crashes on errors
|
|
3758
|
+
- No recovery mechanisms
|
|
3759
|
+
|
|
3760
|
+
### Maintainability
|
|
3761
|
+
|
|
3762
|
+
**PASS if:**
|
|
3763
|
+
|
|
3764
|
+
- Test coverage meets target
|
|
3765
|
+
- Code well-structured
|
|
3766
|
+
- Documentation present
|
|
3767
|
+
|
|
3768
|
+
**CONCERNS if:**
|
|
3769
|
+
|
|
3770
|
+
- Test coverage below target
|
|
3771
|
+
- Some code duplication
|
|
3772
|
+
- Missing documentation
|
|
3773
|
+
|
|
3774
|
+
**FAIL if:**
|
|
3775
|
+
|
|
3776
|
+
- No tests
|
|
3777
|
+
- Highly coupled code
|
|
3778
|
+
- No documentation
|
|
3779
|
+
|
|
3780
|
+
## Quick Reference
|
|
3781
|
+
|
|
3782
|
+
### What to Check
|
|
3783
|
+
|
|
3784
|
+
```yaml
|
|
3785
|
+
security:
|
|
3786
|
+
- Authentication mechanism
|
|
3787
|
+
- Authorization checks
|
|
3788
|
+
- Input validation
|
|
3789
|
+
- Secret management
|
|
3790
|
+
- Rate limiting
|
|
3791
|
+
|
|
3792
|
+
performance:
|
|
3793
|
+
- Response times
|
|
3794
|
+
- Database queries
|
|
3795
|
+
- Caching usage
|
|
3796
|
+
- Resource consumption
|
|
3797
|
+
|
|
3798
|
+
reliability:
|
|
3799
|
+
- Error handling
|
|
3800
|
+
- Retry logic
|
|
3801
|
+
- Circuit breakers
|
|
3802
|
+
- Health checks
|
|
3803
|
+
- Logging
|
|
3804
|
+
|
|
3805
|
+
maintainability:
|
|
3806
|
+
- Test coverage
|
|
3807
|
+
- Code structure
|
|
3808
|
+
- Documentation
|
|
3809
|
+
- Dependencies
|
|
3810
|
+
```
|
|
3811
|
+
|
|
3812
|
+
## Key Principles
|
|
3813
|
+
|
|
3814
|
+
- Focus on the core four NFRs by default
|
|
3815
|
+
- Quick assessment, not deep analysis
|
|
3816
|
+
- Gate-ready output format
|
|
3817
|
+
- Brief, actionable findings
|
|
3818
|
+
- Skip what doesn't apply
|
|
3819
|
+
- Deterministic status rules for consistency
|
|
3820
|
+
- Unknown targets → CONCERNS, not guesses
|
|
3821
|
+
|
|
3822
|
+
---
|
|
3823
|
+
|
|
3824
|
+
## Appendix: ISO 25010 Reference
|
|
3825
|
+
|
|
3826
|
+
<details>
|
|
3827
|
+
<summary>Full ISO 25010 Quality Model (click to expand)</summary>
|
|
3828
|
+
|
|
3829
|
+
### All 8 Quality Characteristics
|
|
3830
|
+
|
|
3831
|
+
1. **Functional Suitability**: Completeness, correctness, appropriateness
|
|
3832
|
+
2. **Performance Efficiency**: Time behavior, resource use, capacity
|
|
3833
|
+
3. **Compatibility**: Co-existence, interoperability
|
|
3834
|
+
4. **Usability**: Learnability, operability, accessibility
|
|
3835
|
+
5. **Reliability**: Maturity, availability, fault tolerance
|
|
3836
|
+
6. **Security**: Confidentiality, integrity, authenticity
|
|
3837
|
+
7. **Maintainability**: Modularity, reusability, testability
|
|
3838
|
+
8. **Portability**: Adaptability, installability
|
|
3839
|
+
|
|
3840
|
+
Use these when assessing beyond the core four.
|
|
3841
|
+
|
|
3842
|
+
</details>
|
|
3843
|
+
|
|
3844
|
+
<details>
|
|
3845
|
+
<summary>Example: Deep Performance Analysis (click to expand)</summary>
|
|
3846
|
+
|
|
3847
|
+
```yaml
|
|
3848
|
+
performance_deep_dive:
|
|
3849
|
+
response_times:
|
|
3850
|
+
p50: 45ms
|
|
3851
|
+
p95: 180ms
|
|
3852
|
+
p99: 350ms
|
|
3853
|
+
database:
|
|
3854
|
+
slow_queries: 2
|
|
3855
|
+
missing_indexes: ['users.email', 'orders.user_id']
|
|
3856
|
+
caching:
|
|
3857
|
+
hit_rate: 0%
|
|
3858
|
+
recommendation: 'Add Redis for session data'
|
|
3859
|
+
load_test:
|
|
3860
|
+
max_rps: 150
|
|
3861
|
+
breaking_point: 200 rps
|
|
3862
|
+
```
|
|
3863
|
+
|
|
3864
|
+
</details>
|
|
3865
|
+
==================== END: .bmad-core/tasks/nfr-assess.md ====================
|
|
3866
|
+
|
|
3867
|
+
==================== START: .bmad-core/tasks/qa-gate.md ====================
|
|
3868
|
+
# qa-gate
|
|
3869
|
+
|
|
3870
|
+
Create or update a quality gate decision file for a story based on review findings.
|
|
3871
|
+
|
|
3872
|
+
## Purpose
|
|
3873
|
+
|
|
3874
|
+
Generate a standalone quality gate file that provides a clear pass/fail decision with actionable feedback. This gate serves as an advisory checkpoint for teams to understand quality status.
|
|
3875
|
+
|
|
3876
|
+
## Prerequisites
|
|
3877
|
+
|
|
3878
|
+
- Story has been reviewed (manually or via review-story task)
|
|
3879
|
+
- Review findings are available
|
|
3880
|
+
- Understanding of story requirements and implementation
|
|
3881
|
+
|
|
3882
|
+
## Gate File Location
|
|
3883
|
+
|
|
3884
|
+
**ALWAYS** check the `bmad-core/core-config.yaml` for the `qa.qaLocation/gates`
|
|
3885
|
+
|
|
3886
|
+
Slug rules:
|
|
3887
|
+
|
|
3888
|
+
- Convert to lowercase
|
|
3889
|
+
- Replace spaces with hyphens
|
|
3890
|
+
- Strip punctuation
|
|
3891
|
+
- Example: "User Auth - Login!" becomes "user-auth-login"
|
|
3892
|
+
|
|
3893
|
+
## Minimal Required Schema
|
|
3894
|
+
|
|
3895
|
+
```yaml
|
|
3896
|
+
schema: 1
|
|
3897
|
+
story: '{epic}.{story}'
|
|
3898
|
+
gate: PASS|CONCERNS|FAIL|WAIVED
|
|
3899
|
+
status_reason: '1-2 sentence explanation of gate decision'
|
|
3900
|
+
reviewer: 'Quinn'
|
|
3901
|
+
updated: '{ISO-8601 timestamp}'
|
|
3902
|
+
top_issues: [] # Empty array if no issues
|
|
3903
|
+
waiver: { active: false } # Only set active: true if WAIVED
|
|
3904
|
+
```
|
|
3905
|
+
|
|
3906
|
+
## Schema with Issues
|
|
3907
|
+
|
|
3908
|
+
```yaml
|
|
3909
|
+
schema: 1
|
|
3910
|
+
story: '1.3'
|
|
3911
|
+
gate: CONCERNS
|
|
3912
|
+
status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
|
|
3913
|
+
reviewer: 'Quinn'
|
|
3914
|
+
updated: '2025-01-12T10:15:00Z'
|
|
3915
|
+
top_issues:
|
|
3916
|
+
- id: 'SEC-001'
|
|
3917
|
+
severity: high # ONLY: low|medium|high
|
|
3918
|
+
finding: 'No rate limiting on login endpoint'
|
|
3919
|
+
suggested_action: 'Add rate limiting middleware before production'
|
|
3920
|
+
- id: 'TEST-001'
|
|
3921
|
+
severity: medium
|
|
3922
|
+
finding: 'No integration tests for auth flow'
|
|
3923
|
+
suggested_action: 'Add integration test coverage'
|
|
3924
|
+
waiver: { active: false }
|
|
3925
|
+
```
|
|
3926
|
+
|
|
3927
|
+
## Schema when Waived
|
|
3928
|
+
|
|
3929
|
+
```yaml
|
|
3930
|
+
schema: 1
|
|
3931
|
+
story: '1.3'
|
|
3932
|
+
gate: WAIVED
|
|
3933
|
+
status_reason: 'Known issues accepted for MVP release.'
|
|
3934
|
+
reviewer: 'Quinn'
|
|
3935
|
+
updated: '2025-01-12T10:15:00Z'
|
|
3936
|
+
top_issues:
|
|
3937
|
+
- id: 'PERF-001'
|
|
3938
|
+
severity: low
|
|
3939
|
+
finding: 'Dashboard loads slowly with 1000+ items'
|
|
3940
|
+
suggested_action: 'Implement pagination in next sprint'
|
|
3941
|
+
waiver:
|
|
3942
|
+
active: true
|
|
3943
|
+
reason: 'MVP release - performance optimization deferred'
|
|
3944
|
+
approved_by: 'Product Owner'
|
|
3945
|
+
```
|
|
3946
|
+
|
|
3947
|
+
## Gate Decision Criteria
|
|
3948
|
+
|
|
3949
|
+
### PASS
|
|
3950
|
+
|
|
3951
|
+
- All acceptance criteria met
|
|
3952
|
+
- No high-severity issues
|
|
3953
|
+
- Test coverage meets project standards
|
|
3954
|
+
|
|
3955
|
+
### CONCERNS
|
|
3956
|
+
|
|
3957
|
+
- Non-blocking issues present
|
|
3958
|
+
- Should be tracked and scheduled
|
|
3959
|
+
- Can proceed with awareness
|
|
3960
|
+
|
|
3961
|
+
### FAIL
|
|
3962
|
+
|
|
3963
|
+
- Acceptance criteria not met
|
|
3964
|
+
- High-severity issues present
|
|
3965
|
+
- Recommend return to InProgress
|
|
3966
|
+
|
|
3967
|
+
### WAIVED
|
|
3968
|
+
|
|
3969
|
+
- Issues explicitly accepted
|
|
3970
|
+
- Requires approval and reason
|
|
3971
|
+
- Proceed despite known issues
|
|
3972
|
+
|
|
3973
|
+
## Severity Scale
|
|
3974
|
+
|
|
3975
|
+
**FIXED VALUES - NO VARIATIONS:**
|
|
3976
|
+
|
|
3977
|
+
- `low`: Minor issues, cosmetic problems
|
|
3978
|
+
- `medium`: Should fix soon, not blocking
|
|
3979
|
+
- `high`: Critical issues, should block release
|
|
3980
|
+
|
|
3981
|
+
## Issue ID Prefixes
|
|
3982
|
+
|
|
3983
|
+
- `SEC-`: Security issues
|
|
3984
|
+
- `PERF-`: Performance issues
|
|
3985
|
+
- `REL-`: Reliability issues
|
|
3986
|
+
- `TEST-`: Testing gaps
|
|
3987
|
+
- `MNT-`: Maintainability concerns
|
|
3988
|
+
- `ARCH-`: Architecture issues
|
|
3989
|
+
- `DOC-`: Documentation gaps
|
|
3990
|
+
- `REQ-`: Requirements issues
|
|
3991
|
+
|
|
3992
|
+
## Output Requirements
|
|
3993
|
+
|
|
3994
|
+
1. **ALWAYS** create gate file at: `qa.qaLocation/gates` from `bmad-core/core-config.yaml`
|
|
3995
|
+
2. **ALWAYS** append this exact format to story's QA Results section:
|
|
3996
|
+
|
|
3997
|
+
```text
|
|
3998
|
+
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
3999
|
+
```
|
|
4000
|
+
|
|
4001
|
+
3. Keep status_reason to 1-2 sentences maximum
|
|
4002
|
+
4. Use severity values exactly: `low`, `medium`, or `high`
|
|
4003
|
+
|
|
4004
|
+
## Example Story Update
|
|
4005
|
+
|
|
4006
|
+
After creating gate file, append to story's QA Results section:
|
|
4007
|
+
|
|
4008
|
+
```markdown
|
|
4009
|
+
## QA Results
|
|
4010
|
+
|
|
4011
|
+
### Review Date: 2025-01-12
|
|
4012
|
+
|
|
4013
|
+
### Reviewed By: Quinn (Test Architect)
|
|
4014
|
+
|
|
4015
|
+
[... existing review content ...]
|
|
4016
|
+
|
|
4017
|
+
### Gate Status
|
|
4018
|
+
|
|
4019
|
+
Gate: CONCERNS → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
4020
|
+
```
|
|
4021
|
+
|
|
4022
|
+
## Key Principles
|
|
4023
|
+
|
|
4024
|
+
- Keep it minimal and predictable
|
|
4025
|
+
- Fixed severity scale (low/medium/high)
|
|
4026
|
+
- Always write to standard path
|
|
4027
|
+
- Always update story with gate reference
|
|
4028
|
+
- Clear, actionable findings
|
|
4029
|
+
==================== END: .bmad-core/tasks/qa-gate.md ====================
|
|
4030
|
+
|
|
4031
|
+
==================== START: .bmad-core/tasks/review-story.md ====================
|
|
4032
|
+
# review-story
|
|
4033
|
+
|
|
4034
|
+
Perform a comprehensive test architecture review with quality gate decision. This adaptive, risk-aware review creates both a story update and a detailed gate file.
|
|
4035
|
+
|
|
4036
|
+
## Inputs
|
|
4037
|
+
|
|
4038
|
+
```yaml
|
|
4039
|
+
required:
|
|
4040
|
+
- story_id: '{epic}.{story}' # e.g., "1.3"
|
|
4041
|
+
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
|
|
4042
|
+
- story_title: '{title}' # If missing, derive from story file H1
|
|
4043
|
+
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
|
|
4044
|
+
```
|
|
4045
|
+
|
|
4046
|
+
## Prerequisites
|
|
4047
|
+
|
|
4048
|
+
- Story status must be "Review"
|
|
4049
|
+
- Developer has completed all tasks and updated the File List
|
|
4050
|
+
- All automated tests are passing
|
|
4051
|
+
|
|
4052
|
+
## Review Process - Adaptive Test Architecture
|
|
4053
|
+
|
|
4054
|
+
### 1. Risk Assessment (Determines Review Depth)
|
|
4055
|
+
|
|
4056
|
+
**Auto-escalate to deep review when:**
|
|
4057
|
+
|
|
4058
|
+
- Auth/payment/security files touched
|
|
4059
|
+
- No tests added to story
|
|
4060
|
+
- Diff > 500 lines
|
|
4061
|
+
- Previous gate was FAIL/CONCERNS
|
|
4062
|
+
- Story has > 5 acceptance criteria
|
|
4063
|
+
|
|
4064
|
+
### 2. Comprehensive Analysis
|
|
4065
|
+
|
|
4066
|
+
**A. Requirements Traceability**
|
|
4067
|
+
|
|
4068
|
+
- Map each acceptance criteria to its validating tests (document mapping with Given-When-Then, not test code)
|
|
4069
|
+
- Identify coverage gaps
|
|
4070
|
+
- Verify all requirements have corresponding test cases
|
|
4071
|
+
|
|
4072
|
+
**B. Code Quality Review**
|
|
4073
|
+
|
|
4074
|
+
- Architecture and design patterns
|
|
4075
|
+
- Refactoring opportunities (and perform them)
|
|
4076
|
+
- Code duplication or inefficiencies
|
|
4077
|
+
- Performance optimizations
|
|
4078
|
+
- Security vulnerabilities
|
|
4079
|
+
- Best practices adherence
|
|
4080
|
+
|
|
4081
|
+
**C. Test Architecture Assessment**
|
|
4082
|
+
|
|
4083
|
+
- Test coverage adequacy at appropriate levels
|
|
4084
|
+
- Test level appropriateness (what should be unit vs integration vs e2e)
|
|
4085
|
+
- Test design quality and maintainability
|
|
4086
|
+
- Test data management strategy
|
|
4087
|
+
- Mock/stub usage appropriateness
|
|
4088
|
+
- Edge case and error scenario coverage
|
|
4089
|
+
- Test execution time and reliability
|
|
4090
|
+
|
|
4091
|
+
**D. Non-Functional Requirements (NFRs)**
|
|
4092
|
+
|
|
4093
|
+
- Security: Authentication, authorization, data protection
|
|
4094
|
+
- Performance: Response times, resource usage
|
|
4095
|
+
- Reliability: Error handling, recovery mechanisms
|
|
4096
|
+
- Maintainability: Code clarity, documentation
|
|
4097
|
+
|
|
4098
|
+
**E. Testability Evaluation**
|
|
4099
|
+
|
|
4100
|
+
- Controllability: Can we control the inputs?
|
|
4101
|
+
- Observability: Can we observe the outputs?
|
|
4102
|
+
- Debuggability: Can we debug failures easily?
|
|
4103
|
+
|
|
4104
|
+
**F. Technical Debt Identification**
|
|
4105
|
+
|
|
4106
|
+
- Accumulated shortcuts
|
|
4107
|
+
- Missing tests
|
|
4108
|
+
- Outdated dependencies
|
|
4109
|
+
- Architecture violations
|
|
4110
|
+
|
|
4111
|
+
### 3. Active Refactoring
|
|
4112
|
+
|
|
4113
|
+
- Refactor code where safe and appropriate
|
|
4114
|
+
- Run tests to ensure changes don't break functionality
|
|
4115
|
+
- Document all changes in QA Results section with clear WHY and HOW
|
|
4116
|
+
- Do NOT alter story content beyond QA Results section
|
|
4117
|
+
- Do NOT change story Status or File List; recommend next status only
|
|
4118
|
+
|
|
4119
|
+
### 4. Standards Compliance Check
|
|
4120
|
+
|
|
4121
|
+
- Verify adherence to `docs/coding-standards.md`
|
|
4122
|
+
- Check compliance with `docs/unified-project-structure.md`
|
|
4123
|
+
- Validate testing approach against `docs/testing-strategy.md`
|
|
4124
|
+
- Ensure all guidelines mentioned in the story are followed
|
|
4125
|
+
|
|
4126
|
+
### 5. Acceptance Criteria Validation
|
|
4127
|
+
|
|
4128
|
+
- Verify each AC is fully implemented
|
|
4129
|
+
- Check for any missing functionality
|
|
4130
|
+
- Validate edge cases are handled
|
|
4131
|
+
|
|
4132
|
+
### 6. Documentation and Comments
|
|
4133
|
+
|
|
4134
|
+
- Verify code is self-documenting where possible
|
|
4135
|
+
- Add comments for complex logic if missing
|
|
4136
|
+
- Ensure any API changes are documented
|
|
4137
|
+
|
|
4138
|
+
## Output 1: Update Story File - QA Results Section ONLY
|
|
3430
4139
|
|
|
3431
4140
|
**CRITICAL**: You are ONLY authorized to update the "QA Results" section of the story file. DO NOT modify any other sections.
|
|
3432
4141
|
|
|
4142
|
+
**QA Results Anchor Rule:**
|
|
4143
|
+
|
|
4144
|
+
- If `## QA Results` doesn't exist, append it at end of file
|
|
4145
|
+
- If it exists, append a new dated entry below existing entries
|
|
4146
|
+
- Never edit other sections
|
|
4147
|
+
|
|
3433
4148
|
After review and any refactoring, append your results to the story file in the QA Results section:
|
|
3434
4149
|
|
|
3435
4150
|
```markdown
|
|
3436
4151
|
## QA Results
|
|
3437
4152
|
|
|
3438
4153
|
### Review Date: [Date]
|
|
3439
|
-
|
|
4154
|
+
|
|
4155
|
+
### Reviewed By: Quinn (Test Architect)
|
|
3440
4156
|
|
|
3441
4157
|
### Code Quality Assessment
|
|
4158
|
+
|
|
3442
4159
|
[Overall assessment of implementation quality]
|
|
3443
4160
|
|
|
3444
4161
|
### Refactoring Performed
|
|
4162
|
+
|
|
3445
4163
|
[List any refactoring you performed with explanations]
|
|
4164
|
+
|
|
3446
4165
|
- **File**: [filename]
|
|
3447
4166
|
- **Change**: [what was changed]
|
|
3448
4167
|
- **Why**: [reason for change]
|
|
3449
4168
|
- **How**: [how it improves the code]
|
|
3450
4169
|
|
|
3451
4170
|
### Compliance Check
|
|
4171
|
+
|
|
3452
4172
|
- Coding Standards: [✓/✗] [notes if any]
|
|
3453
4173
|
- Project Structure: [✓/✗] [notes if any]
|
|
3454
4174
|
- Testing Strategy: [✓/✗] [notes if any]
|
|
3455
4175
|
- All ACs Met: [✓/✗] [notes if any]
|
|
3456
4176
|
|
|
3457
4177
|
### Improvements Checklist
|
|
4178
|
+
|
|
3458
4179
|
[Check off items you handled yourself, leave unchecked for dev to address]
|
|
3459
4180
|
|
|
3460
4181
|
- [x] Refactored user service for better error handling (services/user.service.ts)
|
|
@@ -3464,22 +4185,144 @@ After review and any refactoring, append your results to the story file in the Q
|
|
|
3464
4185
|
- [ ] Update API documentation for new error codes
|
|
3465
4186
|
|
|
3466
4187
|
### Security Review
|
|
4188
|
+
|
|
3467
4189
|
[Any security concerns found and whether addressed]
|
|
3468
4190
|
|
|
3469
4191
|
### Performance Considerations
|
|
4192
|
+
|
|
3470
4193
|
[Any performance issues found and whether addressed]
|
|
3471
4194
|
|
|
3472
|
-
###
|
|
3473
|
-
|
|
4195
|
+
### Files Modified During Review
|
|
4196
|
+
|
|
4197
|
+
[If you modified files, list them here - ask Dev to update File List]
|
|
4198
|
+
|
|
4199
|
+
### Gate Status
|
|
4200
|
+
|
|
4201
|
+
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
4202
|
+
Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
|
|
4203
|
+
NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
|
|
4204
|
+
|
|
4205
|
+
# Note: Paths should reference core-config.yaml for custom configurations
|
|
4206
|
+
|
|
4207
|
+
### Recommended Status
|
|
4208
|
+
|
|
4209
|
+
[✓ Ready for Done] / [✗ Changes Required - See unchecked items above]
|
|
4210
|
+
(Story owner decides final status)
|
|
4211
|
+
```
|
|
4212
|
+
|
|
4213
|
+
## Output 2: Create Quality Gate File
|
|
4214
|
+
|
|
4215
|
+
**Template and Directory:**
|
|
4216
|
+
|
|
4217
|
+
- Render from `../templates/qa-gate-tmpl.yaml`
|
|
4218
|
+
- Create directory defined in `qa.qaLocation/gates` (see `bmad-core/core-config.yaml`) if missing
|
|
4219
|
+
- Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
|
|
4220
|
+
|
|
4221
|
+
Gate file structure:
|
|
4222
|
+
|
|
4223
|
+
```yaml
|
|
4224
|
+
schema: 1
|
|
4225
|
+
story: '{epic}.{story}'
|
|
4226
|
+
story_title: '{story title}'
|
|
4227
|
+
gate: PASS|CONCERNS|FAIL|WAIVED
|
|
4228
|
+
status_reason: '1-2 sentence explanation of gate decision'
|
|
4229
|
+
reviewer: 'Quinn (Test Architect)'
|
|
4230
|
+
updated: '{ISO-8601 timestamp}'
|
|
4231
|
+
|
|
4232
|
+
top_issues: [] # Empty if no issues
|
|
4233
|
+
waiver: { active: false } # Set active: true only if WAIVED
|
|
4234
|
+
|
|
4235
|
+
# Extended fields (optional but recommended):
|
|
4236
|
+
quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
|
|
4237
|
+
expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
|
|
4238
|
+
|
|
4239
|
+
evidence:
|
|
4240
|
+
tests_reviewed: { count }
|
|
4241
|
+
risks_identified: { count }
|
|
4242
|
+
trace:
|
|
4243
|
+
ac_covered: [1, 2, 3] # AC numbers with test coverage
|
|
4244
|
+
ac_gaps: [4] # AC numbers lacking coverage
|
|
4245
|
+
|
|
4246
|
+
nfr_validation:
|
|
4247
|
+
security:
|
|
4248
|
+
status: PASS|CONCERNS|FAIL
|
|
4249
|
+
notes: 'Specific findings'
|
|
4250
|
+
performance:
|
|
4251
|
+
status: PASS|CONCERNS|FAIL
|
|
4252
|
+
notes: 'Specific findings'
|
|
4253
|
+
reliability:
|
|
4254
|
+
status: PASS|CONCERNS|FAIL
|
|
4255
|
+
notes: 'Specific findings'
|
|
4256
|
+
maintainability:
|
|
4257
|
+
status: PASS|CONCERNS|FAIL
|
|
4258
|
+
notes: 'Specific findings'
|
|
4259
|
+
|
|
4260
|
+
recommendations:
|
|
4261
|
+
immediate: # Must fix before production
|
|
4262
|
+
- action: 'Add rate limiting'
|
|
4263
|
+
refs: ['api/auth/login.ts']
|
|
4264
|
+
future: # Can be addressed later
|
|
4265
|
+
- action: 'Consider caching'
|
|
4266
|
+
refs: ['services/data.ts']
|
|
4267
|
+
```
|
|
4268
|
+
|
|
4269
|
+
### Gate Decision Criteria
|
|
4270
|
+
|
|
4271
|
+
**Deterministic rule (apply in order):**
|
|
4272
|
+
|
|
4273
|
+
If risk_summary exists, apply its thresholds first (≥9 → FAIL, ≥6 → CONCERNS), then NFR statuses, then top_issues severity.
|
|
4274
|
+
|
|
4275
|
+
1. **Risk thresholds (if risk_summary present):**
|
|
4276
|
+
- If any risk score ≥ 9 → Gate = FAIL (unless waived)
|
|
4277
|
+
- Else if any score ≥ 6 → Gate = CONCERNS
|
|
4278
|
+
|
|
4279
|
+
2. **Test coverage gaps (if trace available):**
|
|
4280
|
+
- If any P0 test from test-design is missing → Gate = CONCERNS
|
|
4281
|
+
- If security/data-loss P0 test missing → Gate = FAIL
|
|
4282
|
+
|
|
4283
|
+
3. **Issue severity:**
|
|
4284
|
+
- If any `top_issues.severity == high` → Gate = FAIL (unless waived)
|
|
4285
|
+
- Else if any `severity == medium` → Gate = CONCERNS
|
|
4286
|
+
|
|
4287
|
+
4. **NFR statuses:**
|
|
4288
|
+
- If any NFR status is FAIL → Gate = FAIL
|
|
4289
|
+
- Else if any NFR status is CONCERNS → Gate = CONCERNS
|
|
4290
|
+
- Else → Gate = PASS
|
|
4291
|
+
|
|
4292
|
+
- WAIVED only when waiver.active: true with reason/approver
|
|
4293
|
+
|
|
4294
|
+
Detailed criteria:
|
|
4295
|
+
|
|
4296
|
+
- **PASS**: All critical requirements met, no blocking issues
|
|
4297
|
+
- **CONCERNS**: Non-critical issues found, team should review
|
|
4298
|
+
- **FAIL**: Critical issues that should be addressed
|
|
4299
|
+
- **WAIVED**: Issues acknowledged but explicitly waived by team
|
|
4300
|
+
|
|
4301
|
+
### Quality Score Calculation
|
|
4302
|
+
|
|
4303
|
+
```text
|
|
4304
|
+
quality_score = 100 - (20 × number of FAILs) - (10 × number of CONCERNS)
|
|
4305
|
+
Bounded between 0 and 100
|
|
3474
4306
|
```
|
|
3475
4307
|
|
|
4308
|
+
If `technical-preferences.md` defines custom weights, use those instead.
|
|
4309
|
+
|
|
4310
|
+
### Suggested Owner Convention
|
|
4311
|
+
|
|
4312
|
+
For each issue in `top_issues`, include a `suggested_owner`:
|
|
4313
|
+
|
|
4314
|
+
- `dev`: Code changes needed
|
|
4315
|
+
- `sm`: Requirements clarification needed
|
|
4316
|
+
- `po`: Business decision needed
|
|
4317
|
+
|
|
3476
4318
|
## Key Principles
|
|
3477
4319
|
|
|
3478
|
-
- You are a
|
|
3479
|
-
- You have the authority
|
|
4320
|
+
- You are a Test Architect providing comprehensive quality assessment
|
|
4321
|
+
- You have the authority to improve code directly when appropriate
|
|
3480
4322
|
- Always explain your changes for learning purposes
|
|
3481
4323
|
- Balance between perfection and pragmatism
|
|
3482
|
-
- Focus on
|
|
4324
|
+
- Focus on risk-based prioritization
|
|
4325
|
+
- Provide actionable recommendations with clear ownership
|
|
3483
4326
|
|
|
3484
4327
|
## Blocking Conditions
|
|
3485
4328
|
|
|
@@ -3495,11 +4338,918 @@ Stop the review and request clarification if:
|
|
|
3495
4338
|
|
|
3496
4339
|
After review:
|
|
3497
4340
|
|
|
3498
|
-
1.
|
|
3499
|
-
2.
|
|
3500
|
-
3.
|
|
4341
|
+
1. Update the QA Results section in the story file
|
|
4342
|
+
2. Create the gate file in directory from `qa.qaLocation/gates`
|
|
4343
|
+
3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
|
|
4344
|
+
4. If files were modified, list them in QA Results and ask Dev to update File List
|
|
4345
|
+
5. Always provide constructive feedback and actionable recommendations
|
|
3501
4346
|
==================== END: .bmad-core/tasks/review-story.md ====================
|
|
3502
4347
|
|
|
4348
|
+
==================== START: .bmad-core/tasks/risk-profile.md ====================
|
|
4349
|
+
# risk-profile
|
|
4350
|
+
|
|
4351
|
+
Generate a comprehensive risk assessment matrix for a story implementation using probability × impact analysis.
|
|
4352
|
+
|
|
4353
|
+
## Inputs
|
|
4354
|
+
|
|
4355
|
+
```yaml
|
|
4356
|
+
required:
|
|
4357
|
+
- story_id: '{epic}.{story}' # e.g., "1.3"
|
|
4358
|
+
- story_path: 'docs/stories/{epic}.{story}.*.md'
|
|
4359
|
+
- story_title: '{title}' # If missing, derive from story file H1
|
|
4360
|
+
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
|
|
4361
|
+
```
|
|
4362
|
+
|
|
4363
|
+
## Purpose
|
|
4364
|
+
|
|
4365
|
+
Identify, assess, and prioritize risks in the story implementation. Provide risk mitigation strategies and testing focus areas based on risk levels.
|
|
4366
|
+
|
|
4367
|
+
## Risk Assessment Framework
|
|
4368
|
+
|
|
4369
|
+
### Risk Categories
|
|
4370
|
+
|
|
4371
|
+
**Category Prefixes:**
|
|
4372
|
+
|
|
4373
|
+
- `TECH`: Technical Risks
|
|
4374
|
+
- `SEC`: Security Risks
|
|
4375
|
+
- `PERF`: Performance Risks
|
|
4376
|
+
- `DATA`: Data Risks
|
|
4377
|
+
- `BUS`: Business Risks
|
|
4378
|
+
- `OPS`: Operational Risks
|
|
4379
|
+
|
|
4380
|
+
1. **Technical Risks (TECH)**
|
|
4381
|
+
- Architecture complexity
|
|
4382
|
+
- Integration challenges
|
|
4383
|
+
- Technical debt
|
|
4384
|
+
- Scalability concerns
|
|
4385
|
+
- System dependencies
|
|
4386
|
+
|
|
4387
|
+
2. **Security Risks (SEC)**
|
|
4388
|
+
- Authentication/authorization flaws
|
|
4389
|
+
- Data exposure vulnerabilities
|
|
4390
|
+
- Injection attacks
|
|
4391
|
+
- Session management issues
|
|
4392
|
+
- Cryptographic weaknesses
|
|
4393
|
+
|
|
4394
|
+
3. **Performance Risks (PERF)**
|
|
4395
|
+
- Response time degradation
|
|
4396
|
+
- Throughput bottlenecks
|
|
4397
|
+
- Resource exhaustion
|
|
4398
|
+
- Database query optimization
|
|
4399
|
+
- Caching failures
|
|
4400
|
+
|
|
4401
|
+
4. **Data Risks (DATA)**
|
|
4402
|
+
- Data loss potential
|
|
4403
|
+
- Data corruption
|
|
4404
|
+
- Privacy violations
|
|
4405
|
+
- Compliance issues
|
|
4406
|
+
- Backup/recovery gaps
|
|
4407
|
+
|
|
4408
|
+
5. **Business Risks (BUS)**
|
|
4409
|
+
- Feature doesn't meet user needs
|
|
4410
|
+
- Revenue impact
|
|
4411
|
+
- Reputation damage
|
|
4412
|
+
- Regulatory non-compliance
|
|
4413
|
+
- Market timing
|
|
4414
|
+
|
|
4415
|
+
6. **Operational Risks (OPS)**
|
|
4416
|
+
- Deployment failures
|
|
4417
|
+
- Monitoring gaps
|
|
4418
|
+
- Incident response readiness
|
|
4419
|
+
- Documentation inadequacy
|
|
4420
|
+
- Knowledge transfer issues
|
|
4421
|
+
|
|
4422
|
+
## Risk Analysis Process
|
|
4423
|
+
|
|
4424
|
+
### 1. Risk Identification
|
|
4425
|
+
|
|
4426
|
+
For each category, identify specific risks:
|
|
4427
|
+
|
|
4428
|
+
```yaml
|
|
4429
|
+
risk:
|
|
4430
|
+
id: 'SEC-001' # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
|
|
4431
|
+
category: security
|
|
4432
|
+
title: 'Insufficient input validation on user forms'
|
|
4433
|
+
description: 'Form inputs not properly sanitized could lead to XSS attacks'
|
|
4434
|
+
affected_components:
|
|
4435
|
+
- 'UserRegistrationForm'
|
|
4436
|
+
- 'ProfileUpdateForm'
|
|
4437
|
+
detection_method: 'Code review revealed missing validation'
|
|
4438
|
+
```
|
|
4439
|
+
|
|
4440
|
+
### 2. Risk Assessment
|
|
4441
|
+
|
|
4442
|
+
Evaluate each risk using probability × impact:
|
|
4443
|
+
|
|
4444
|
+
**Probability Levels:**
|
|
4445
|
+
|
|
4446
|
+
- `High (3)`: Likely to occur (>70% chance)
|
|
4447
|
+
- `Medium (2)`: Possible occurrence (30-70% chance)
|
|
4448
|
+
- `Low (1)`: Unlikely to occur (<30% chance)
|
|
4449
|
+
|
|
4450
|
+
**Impact Levels:**
|
|
4451
|
+
|
|
4452
|
+
- `High (3)`: Severe consequences (data breach, system down, major financial loss)
|
|
4453
|
+
- `Medium (2)`: Moderate consequences (degraded performance, minor data issues)
|
|
4454
|
+
- `Low (1)`: Minor consequences (cosmetic issues, slight inconvenience)
|
|
4455
|
+
|
|
4456
|
+
### Risk Score = Probability × Impact
|
|
4457
|
+
|
|
4458
|
+
- 9: Critical Risk (Red)
|
|
4459
|
+
- 6: High Risk (Orange)
|
|
4460
|
+
- 4: Medium Risk (Yellow)
|
|
4461
|
+
- 2-3: Low Risk (Green)
|
|
4462
|
+
- 1: Minimal Risk (Blue)
|
|
4463
|
+
|
|
4464
|
+
### 3. Risk Prioritization
|
|
4465
|
+
|
|
4466
|
+
Create risk matrix:
|
|
4467
|
+
|
|
4468
|
+
```markdown
|
|
4469
|
+
## Risk Matrix
|
|
4470
|
+
|
|
4471
|
+
| Risk ID | Description | Probability | Impact | Score | Priority |
|
|
4472
|
+
| -------- | ----------------------- | ----------- | ---------- | ----- | -------- |
|
|
4473
|
+
| SEC-001 | XSS vulnerability | High (3) | High (3) | 9 | Critical |
|
|
4474
|
+
| PERF-001 | Slow query on dashboard | Medium (2) | Medium (2) | 4 | Medium |
|
|
4475
|
+
| DATA-001 | Backup failure | Low (1) | High (3) | 3 | Low |
|
|
4476
|
+
```
|
|
4477
|
+
|
|
4478
|
+
### 4. Risk Mitigation Strategies
|
|
4479
|
+
|
|
4480
|
+
For each identified risk, provide mitigation:
|
|
4481
|
+
|
|
4482
|
+
```yaml
|
|
4483
|
+
mitigation:
|
|
4484
|
+
risk_id: 'SEC-001'
|
|
4485
|
+
strategy: 'preventive' # preventive|detective|corrective
|
|
4486
|
+
actions:
|
|
4487
|
+
- 'Implement input validation library (e.g., validator.js)'
|
|
4488
|
+
- 'Add CSP headers to prevent XSS execution'
|
|
4489
|
+
- 'Sanitize all user inputs before storage'
|
|
4490
|
+
- 'Escape all outputs in templates'
|
|
4491
|
+
testing_requirements:
|
|
4492
|
+
- 'Security testing with OWASP ZAP'
|
|
4493
|
+
- 'Manual penetration testing of forms'
|
|
4494
|
+
- 'Unit tests for validation functions'
|
|
4495
|
+
residual_risk: 'Low - Some zero-day vulnerabilities may remain'
|
|
4496
|
+
owner: 'dev'
|
|
4497
|
+
timeline: 'Before deployment'
|
|
4498
|
+
```
|
|
4499
|
+
|
|
4500
|
+
## Outputs
|
|
4501
|
+
|
|
4502
|
+
### Output 1: Gate YAML Block
|
|
4503
|
+
|
|
4504
|
+
Generate for pasting into gate file under `risk_summary`:
|
|
4505
|
+
|
|
4506
|
+
**Output rules:**
|
|
4507
|
+
|
|
4508
|
+
- Only include assessed risks; do not emit placeholders
|
|
4509
|
+
- Sort risks by score (desc) when emitting highest and any tabular lists
|
|
4510
|
+
- If no risks: totals all zeros, omit highest, keep recommendations arrays empty
|
|
4511
|
+
|
|
4512
|
+
```yaml
|
|
4513
|
+
# risk_summary (paste into gate file):
|
|
4514
|
+
risk_summary:
|
|
4515
|
+
totals:
|
|
4516
|
+
critical: X # score 9
|
|
4517
|
+
high: Y # score 6
|
|
4518
|
+
medium: Z # score 4
|
|
4519
|
+
low: W # score 2-3
|
|
4520
|
+
highest:
|
|
4521
|
+
id: SEC-001
|
|
4522
|
+
score: 9
|
|
4523
|
+
title: 'XSS on profile form'
|
|
4524
|
+
recommendations:
|
|
4525
|
+
must_fix:
|
|
4526
|
+
- 'Add input sanitization & CSP'
|
|
4527
|
+
monitor:
|
|
4528
|
+
- 'Add security alerts for auth endpoints'
|
|
4529
|
+
```
|
|
4530
|
+
|
|
4531
|
+
### Output 2: Markdown Report
|
|
4532
|
+
|
|
4533
|
+
**Save to:** `qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md`
|
|
4534
|
+
|
|
4535
|
+
```markdown
|
|
4536
|
+
# Risk Profile: Story {epic}.{story}
|
|
4537
|
+
|
|
4538
|
+
Date: {date}
|
|
4539
|
+
Reviewer: Quinn (Test Architect)
|
|
4540
|
+
|
|
4541
|
+
## Executive Summary
|
|
4542
|
+
|
|
4543
|
+
- Total Risks Identified: X
|
|
4544
|
+
- Critical Risks: Y
|
|
4545
|
+
- High Risks: Z
|
|
4546
|
+
- Risk Score: XX/100 (calculated)
|
|
4547
|
+
|
|
4548
|
+
## Critical Risks Requiring Immediate Attention
|
|
4549
|
+
|
|
4550
|
+
### 1. [ID]: Risk Title
|
|
4551
|
+
|
|
4552
|
+
**Score: 9 (Critical)**
|
|
4553
|
+
**Probability**: High - Detailed reasoning
|
|
4554
|
+
**Impact**: High - Potential consequences
|
|
4555
|
+
**Mitigation**:
|
|
4556
|
+
|
|
4557
|
+
- Immediate action required
|
|
4558
|
+
- Specific steps to take
|
|
4559
|
+
**Testing Focus**: Specific test scenarios needed
|
|
4560
|
+
|
|
4561
|
+
## Risk Distribution
|
|
4562
|
+
|
|
4563
|
+
### By Category
|
|
4564
|
+
|
|
4565
|
+
- Security: X risks (Y critical)
|
|
4566
|
+
- Performance: X risks (Y critical)
|
|
4567
|
+
- Data: X risks (Y critical)
|
|
4568
|
+
- Business: X risks (Y critical)
|
|
4569
|
+
- Operational: X risks (Y critical)
|
|
4570
|
+
|
|
4571
|
+
### By Component
|
|
4572
|
+
|
|
4573
|
+
- Frontend: X risks
|
|
4574
|
+
- Backend: X risks
|
|
4575
|
+
- Database: X risks
|
|
4576
|
+
- Infrastructure: X risks
|
|
4577
|
+
|
|
4578
|
+
## Detailed Risk Register
|
|
4579
|
+
|
|
4580
|
+
[Full table of all risks with scores and mitigations]
|
|
4581
|
+
|
|
4582
|
+
## Risk-Based Testing Strategy
|
|
4583
|
+
|
|
4584
|
+
### Priority 1: Critical Risk Tests
|
|
4585
|
+
|
|
4586
|
+
- Test scenarios for critical risks
|
|
4587
|
+
- Required test types (security, load, chaos)
|
|
4588
|
+
- Test data requirements
|
|
4589
|
+
|
|
4590
|
+
### Priority 2: High Risk Tests
|
|
4591
|
+
|
|
4592
|
+
- Integration test scenarios
|
|
4593
|
+
- Edge case coverage
|
|
4594
|
+
|
|
4595
|
+
### Priority 3: Medium/Low Risk Tests
|
|
4596
|
+
|
|
4597
|
+
- Standard functional tests
|
|
4598
|
+
- Regression test suite
|
|
4599
|
+
|
|
4600
|
+
## Risk Acceptance Criteria
|
|
4601
|
+
|
|
4602
|
+
### Must Fix Before Production
|
|
4603
|
+
|
|
4604
|
+
- All critical risks (score 9)
|
|
4605
|
+
- High risks affecting security/data
|
|
4606
|
+
|
|
4607
|
+
### Can Deploy with Mitigation
|
|
4608
|
+
|
|
4609
|
+
- Medium risks with compensating controls
|
|
4610
|
+
- Low risks with monitoring in place
|
|
4611
|
+
|
|
4612
|
+
### Accepted Risks
|
|
4613
|
+
|
|
4614
|
+
- Document any risks team accepts
|
|
4615
|
+
- Include sign-off from appropriate authority
|
|
4616
|
+
|
|
4617
|
+
## Monitoring Requirements
|
|
4618
|
+
|
|
4619
|
+
Post-deployment monitoring for:
|
|
4620
|
+
|
|
4621
|
+
- Performance metrics for PERF risks
|
|
4622
|
+
- Security alerts for SEC risks
|
|
4623
|
+
- Error rates for operational risks
|
|
4624
|
+
- Business KPIs for business risks
|
|
4625
|
+
|
|
4626
|
+
## Risk Review Triggers
|
|
4627
|
+
|
|
4628
|
+
Review and update risk profile when:
|
|
4629
|
+
|
|
4630
|
+
- Architecture changes significantly
|
|
4631
|
+
- New integrations added
|
|
4632
|
+
- Security vulnerabilities discovered
|
|
4633
|
+
- Performance issues reported
|
|
4634
|
+
- Regulatory requirements change
|
|
4635
|
+
```
|
|
4636
|
+
|
|
4637
|
+
## Risk Scoring Algorithm
|
|
4638
|
+
|
|
4639
|
+
Calculate overall story risk score:
|
|
4640
|
+
|
|
4641
|
+
```text
|
|
4642
|
+
Base Score = 100
|
|
4643
|
+
For each risk:
|
|
4644
|
+
- Critical (9): Deduct 20 points
|
|
4645
|
+
- High (6): Deduct 10 points
|
|
4646
|
+
- Medium (4): Deduct 5 points
|
|
4647
|
+
- Low (2-3): Deduct 2 points
|
|
4648
|
+
|
|
4649
|
+
Minimum score = 0 (extremely risky)
|
|
4650
|
+
Maximum score = 100 (minimal risk)
|
|
4651
|
+
```
|
|
4652
|
+
|
|
4653
|
+
## Risk-Based Recommendations
|
|
4654
|
+
|
|
4655
|
+
Based on risk profile, recommend:
|
|
4656
|
+
|
|
4657
|
+
1. **Testing Priority**
|
|
4658
|
+
- Which tests to run first
|
|
4659
|
+
- Additional test types needed
|
|
4660
|
+
- Test environment requirements
|
|
4661
|
+
|
|
4662
|
+
2. **Development Focus**
|
|
4663
|
+
- Code review emphasis areas
|
|
4664
|
+
- Additional validation needed
|
|
4665
|
+
- Security controls to implement
|
|
4666
|
+
|
|
4667
|
+
3. **Deployment Strategy**
|
|
4668
|
+
- Phased rollout for high-risk changes
|
|
4669
|
+
- Feature flags for risky features
|
|
4670
|
+
- Rollback procedures
|
|
4671
|
+
|
|
4672
|
+
4. **Monitoring Setup**
|
|
4673
|
+
- Metrics to track
|
|
4674
|
+
- Alerts to configure
|
|
4675
|
+
- Dashboard requirements
|
|
4676
|
+
|
|
4677
|
+
## Integration with Quality Gates
|
|
4678
|
+
|
|
4679
|
+
**Deterministic gate mapping:**
|
|
4680
|
+
|
|
4681
|
+
- Any risk with score ≥ 9 → Gate = FAIL (unless waived)
|
|
4682
|
+
- Else if any score ≥ 6 → Gate = CONCERNS
|
|
4683
|
+
- Else → Gate = PASS
|
|
4684
|
+
- Unmitigated risks → Document in gate
|
|
4685
|
+
|
|
4686
|
+
### Output 3: Story Hook Line
|
|
4687
|
+
|
|
4688
|
+
**Print this line for review task to quote:**
|
|
4689
|
+
|
|
4690
|
+
```text
|
|
4691
|
+
Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
|
|
4692
|
+
```
|
|
4693
|
+
|
|
4694
|
+
## Key Principles
|
|
4695
|
+
|
|
4696
|
+
- Identify risks early and systematically
|
|
4697
|
+
- Use consistent probability × impact scoring
|
|
4698
|
+
- Provide actionable mitigation strategies
|
|
4699
|
+
- Link risks to specific test requirements
|
|
4700
|
+
- Track residual risk after mitigation
|
|
4701
|
+
- Update risk profile as story evolves
|
|
4702
|
+
==================== END: .bmad-core/tasks/risk-profile.md ====================
|
|
4703
|
+
|
|
4704
|
+
==================== START: .bmad-core/tasks/test-design.md ====================
|
|
4705
|
+
# test-design
|
|
4706
|
+
|
|
4707
|
+
Create comprehensive test scenarios with appropriate test level recommendations for story implementation.
|
|
4708
|
+
|
|
4709
|
+
## Inputs
|
|
4710
|
+
|
|
4711
|
+
```yaml
|
|
4712
|
+
required:
|
|
4713
|
+
- story_id: '{epic}.{story}' # e.g., "1.3"
|
|
4714
|
+
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
|
|
4715
|
+
- story_title: '{title}' # If missing, derive from story file H1
|
|
4716
|
+
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
|
|
4717
|
+
```
|
|
4718
|
+
|
|
4719
|
+
## Purpose
|
|
4720
|
+
|
|
4721
|
+
Design a complete test strategy that identifies what to test, at which level (unit/integration/e2e), and why. This ensures efficient test coverage without redundancy while maintaining appropriate test boundaries.
|
|
4722
|
+
|
|
4723
|
+
## Dependencies
|
|
4724
|
+
|
|
4725
|
+
```yaml
|
|
4726
|
+
data:
|
|
4727
|
+
- test-levels-framework.md # Unit/Integration/E2E decision criteria
|
|
4728
|
+
- test-priorities-matrix.md # P0/P1/P2/P3 classification system
|
|
4729
|
+
```
|
|
4730
|
+
|
|
4731
|
+
## Process
|
|
4732
|
+
|
|
4733
|
+
### 1. Analyze Story Requirements
|
|
4734
|
+
|
|
4735
|
+
Break down each acceptance criterion into testable scenarios. For each AC:
|
|
4736
|
+
|
|
4737
|
+
- Identify the core functionality to test
|
|
4738
|
+
- Determine data variations needed
|
|
4739
|
+
- Consider error conditions
|
|
4740
|
+
- Note edge cases
|
|
4741
|
+
|
|
4742
|
+
### 2. Apply Test Level Framework
|
|
4743
|
+
|
|
4744
|
+
**Reference:** Load `test-levels-framework.md` for detailed criteria
|
|
4745
|
+
|
|
4746
|
+
Quick rules:
|
|
4747
|
+
|
|
4748
|
+
- **Unit**: Pure logic, algorithms, calculations
|
|
4749
|
+
- **Integration**: Component interactions, DB operations
|
|
4750
|
+
- **E2E**: Critical user journeys, compliance
|
|
4751
|
+
|
|
4752
|
+
### 3. Assign Priorities
|
|
4753
|
+
|
|
4754
|
+
**Reference:** Load `test-priorities-matrix.md` for classification
|
|
4755
|
+
|
|
4756
|
+
Quick priority assignment:
|
|
4757
|
+
|
|
4758
|
+
- **P0**: Revenue-critical, security, compliance
|
|
4759
|
+
- **P1**: Core user journeys, frequently used
|
|
4760
|
+
- **P2**: Secondary features, admin functions
|
|
4761
|
+
- **P3**: Nice-to-have, rarely used
|
|
4762
|
+
|
|
4763
|
+
### 4. Design Test Scenarios
|
|
4764
|
+
|
|
4765
|
+
For each identified test need, create:
|
|
4766
|
+
|
|
4767
|
+
```yaml
|
|
4768
|
+
test_scenario:
|
|
4769
|
+
id: '{epic}.{story}-{LEVEL}-{SEQ}'
|
|
4770
|
+
requirement: 'AC reference'
|
|
4771
|
+
priority: P0|P1|P2|P3
|
|
4772
|
+
level: unit|integration|e2e
|
|
4773
|
+
description: 'What is being tested'
|
|
4774
|
+
justification: 'Why this level was chosen'
|
|
4775
|
+
mitigates_risks: ['RISK-001'] # If risk profile exists
|
|
4776
|
+
```
|
|
4777
|
+
|
|
4778
|
+
### 5. Validate Coverage
|
|
4779
|
+
|
|
4780
|
+
Ensure:
|
|
4781
|
+
|
|
4782
|
+
- Every AC has at least one test
|
|
4783
|
+
- No duplicate coverage across levels
|
|
4784
|
+
- Critical paths have multiple levels
|
|
4785
|
+
- Risk mitigations are addressed
|
|
4786
|
+
|
|
4787
|
+
## Outputs
|
|
4788
|
+
|
|
4789
|
+
### Output 1: Test Design Document
|
|
4790
|
+
|
|
4791
|
+
**Save to:** `qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md`
|
|
4792
|
+
|
|
4793
|
+
```markdown
|
|
4794
|
+
# Test Design: Story {epic}.{story}
|
|
4795
|
+
|
|
4796
|
+
Date: {date}
|
|
4797
|
+
Designer: Quinn (Test Architect)
|
|
4798
|
+
|
|
4799
|
+
## Test Strategy Overview
|
|
4800
|
+
|
|
4801
|
+
- Total test scenarios: X
|
|
4802
|
+
- Unit tests: Y (A%)
|
|
4803
|
+
- Integration tests: Z (B%)
|
|
4804
|
+
- E2E tests: W (C%)
|
|
4805
|
+
- Priority distribution: P0: X, P1: Y, P2: Z
|
|
4806
|
+
|
|
4807
|
+
## Test Scenarios by Acceptance Criteria
|
|
4808
|
+
|
|
4809
|
+
### AC1: {description}
|
|
4810
|
+
|
|
4811
|
+
#### Scenarios
|
|
4812
|
+
|
|
4813
|
+
| ID | Level | Priority | Test | Justification |
|
|
4814
|
+
| ------------ | ----------- | -------- | ------------------------- | ------------------------ |
|
|
4815
|
+
| 1.3-UNIT-001 | Unit | P0 | Validate input format | Pure validation logic |
|
|
4816
|
+
| 1.3-INT-001 | Integration | P0 | Service processes request | Multi-component flow |
|
|
4817
|
+
| 1.3-E2E-001 | E2E | P1 | User completes journey | Critical path validation |
|
|
4818
|
+
|
|
4819
|
+
[Continue for all ACs...]
|
|
4820
|
+
|
|
4821
|
+
## Risk Coverage
|
|
4822
|
+
|
|
4823
|
+
[Map test scenarios to identified risks if risk profile exists]
|
|
4824
|
+
|
|
4825
|
+
## Recommended Execution Order
|
|
4826
|
+
|
|
4827
|
+
1. P0 Unit tests (fail fast)
|
|
4828
|
+
2. P0 Integration tests
|
|
4829
|
+
3. P0 E2E tests
|
|
4830
|
+
4. P1 tests in order
|
|
4831
|
+
5. P2+ as time permits
|
|
4832
|
+
```
|
|
4833
|
+
|
|
4834
|
+
### Output 2: Gate YAML Block
|
|
4835
|
+
|
|
4836
|
+
Generate for inclusion in quality gate:
|
|
4837
|
+
|
|
4838
|
+
```yaml
|
|
4839
|
+
test_design:
|
|
4840
|
+
scenarios_total: X
|
|
4841
|
+
by_level:
|
|
4842
|
+
unit: Y
|
|
4843
|
+
integration: Z
|
|
4844
|
+
e2e: W
|
|
4845
|
+
by_priority:
|
|
4846
|
+
p0: A
|
|
4847
|
+
p1: B
|
|
4848
|
+
p2: C
|
|
4849
|
+
coverage_gaps: [] # List any ACs without tests
|
|
4850
|
+
```
|
|
4851
|
+
|
|
4852
|
+
### Output 3: Trace References
|
|
4853
|
+
|
|
4854
|
+
Print for use by trace-requirements task:
|
|
4855
|
+
|
|
4856
|
+
```text
|
|
4857
|
+
Test design matrix: qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
|
|
4858
|
+
P0 tests identified: {count}
|
|
4859
|
+
```
|
|
4860
|
+
|
|
4861
|
+
## Quality Checklist
|
|
4862
|
+
|
|
4863
|
+
Before finalizing, verify:
|
|
4864
|
+
|
|
4865
|
+
- [ ] Every AC has test coverage
|
|
4866
|
+
- [ ] Test levels are appropriate (not over-testing)
|
|
4867
|
+
- [ ] No duplicate coverage across levels
|
|
4868
|
+
- [ ] Priorities align with business risk
|
|
4869
|
+
- [ ] Test IDs follow naming convention
|
|
4870
|
+
- [ ] Scenarios are atomic and independent
|
|
4871
|
+
|
|
4872
|
+
## Key Principles
|
|
4873
|
+
|
|
4874
|
+
- **Shift left**: Prefer unit over integration, integration over E2E
|
|
4875
|
+
- **Risk-based**: Focus on what could go wrong
|
|
4876
|
+
- **Efficient coverage**: Test once at the right level
|
|
4877
|
+
- **Maintainability**: Consider long-term test maintenance
|
|
4878
|
+
- **Fast feedback**: Quick tests run first
|
|
4879
|
+
==================== END: .bmad-core/tasks/test-design.md ====================
|
|
4880
|
+
|
|
4881
|
+
==================== START: .bmad-core/tasks/trace-requirements.md ====================
|
|
4882
|
+
# trace-requirements
|
|
4883
|
+
|
|
4884
|
+
Map story requirements to test cases using Given-When-Then patterns for comprehensive traceability.
|
|
4885
|
+
|
|
4886
|
+
## Purpose
|
|
4887
|
+
|
|
4888
|
+
Create a requirements traceability matrix that ensures every acceptance criterion has corresponding test coverage. This task helps identify gaps in testing and ensures all requirements are validated.
|
|
4889
|
+
|
|
4890
|
+
**IMPORTANT**: Given-When-Then is used here for documenting the mapping between requirements and tests, NOT for writing the actual test code. Tests should follow your project's testing standards (no BDD syntax in test code).
|
|
4891
|
+
|
|
4892
|
+
## Prerequisites
|
|
4893
|
+
|
|
4894
|
+
- Story file with clear acceptance criteria
|
|
4895
|
+
- Access to test files or test specifications
|
|
4896
|
+
- Understanding of the implementation
|
|
4897
|
+
|
|
4898
|
+
## Traceability Process
|
|
4899
|
+
|
|
4900
|
+
### 1. Extract Requirements
|
|
4901
|
+
|
|
4902
|
+
Identify all testable requirements from:
|
|
4903
|
+
|
|
4904
|
+
- Acceptance Criteria (primary source)
|
|
4905
|
+
- User story statement
|
|
4906
|
+
- Tasks/subtasks with specific behaviors
|
|
4907
|
+
- Non-functional requirements mentioned
|
|
4908
|
+
- Edge cases documented
|
|
4909
|
+
|
|
4910
|
+
### 2. Map to Test Cases
|
|
4911
|
+
|
|
4912
|
+
For each requirement, document which tests validate it. Use Given-When-Then to describe what the test validates (not how it's written):
|
|
4913
|
+
|
|
4914
|
+
```yaml
|
|
4915
|
+
requirement: 'AC1: User can login with valid credentials'
|
|
4916
|
+
test_mappings:
|
|
4917
|
+
- test_file: 'auth/login.test.ts'
|
|
4918
|
+
test_case: 'should successfully login with valid email and password'
|
|
4919
|
+
# Given-When-Then describes WHAT the test validates, not HOW it's coded
|
|
4920
|
+
given: 'A registered user with valid credentials'
|
|
4921
|
+
when: 'They submit the login form'
|
|
4922
|
+
then: 'They are redirected to dashboard and session is created'
|
|
4923
|
+
coverage: full
|
|
4924
|
+
|
|
4925
|
+
- test_file: 'e2e/auth-flow.test.ts'
|
|
4926
|
+
test_case: 'complete login flow'
|
|
4927
|
+
given: 'User on login page'
|
|
4928
|
+
when: 'Entering valid credentials and submitting'
|
|
4929
|
+
then: 'Dashboard loads with user data'
|
|
4930
|
+
coverage: integration
|
|
4931
|
+
```
|
|
4932
|
+
|
|
4933
|
+
### 3. Coverage Analysis
|
|
4934
|
+
|
|
4935
|
+
Evaluate coverage for each requirement:
|
|
4936
|
+
|
|
4937
|
+
**Coverage Levels:**
|
|
4938
|
+
|
|
4939
|
+
- `full`: Requirement completely tested
|
|
4940
|
+
- `partial`: Some aspects tested, gaps exist
|
|
4941
|
+
- `none`: No test coverage found
|
|
4942
|
+
- `integration`: Covered in integration/e2e tests only
|
|
4943
|
+
- `unit`: Covered in unit tests only
|
|
4944
|
+
|
|
4945
|
+
### 4. Gap Identification
|
|
4946
|
+
|
|
4947
|
+
Document any gaps found:
|
|
4948
|
+
|
|
4949
|
+
```yaml
|
|
4950
|
+
coverage_gaps:
|
|
4951
|
+
- requirement: 'AC3: Password reset email sent within 60 seconds'
|
|
4952
|
+
gap: 'No test for email delivery timing'
|
|
4953
|
+
severity: medium
|
|
4954
|
+
suggested_test:
|
|
4955
|
+
type: integration
|
|
4956
|
+
description: 'Test email service SLA compliance'
|
|
4957
|
+
|
|
4958
|
+
- requirement: 'AC5: Support 1000 concurrent users'
|
|
4959
|
+
gap: 'No load testing implemented'
|
|
4960
|
+
severity: high
|
|
4961
|
+
suggested_test:
|
|
4962
|
+
type: performance
|
|
4963
|
+
description: 'Load test with 1000 concurrent connections'
|
|
4964
|
+
```
|
|
4965
|
+
|
|
4966
|
+
## Outputs
|
|
4967
|
+
|
|
4968
|
+
### Output 1: Gate YAML Block
|
|
4969
|
+
|
|
4970
|
+
**Generate for pasting into gate file under `trace`:**
|
|
4971
|
+
|
|
4972
|
+
```yaml
|
|
4973
|
+
trace:
|
|
4974
|
+
totals:
|
|
4975
|
+
requirements: X
|
|
4976
|
+
full: Y
|
|
4977
|
+
partial: Z
|
|
4978
|
+
none: W
|
|
4979
|
+
planning_ref: 'qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md'
|
|
4980
|
+
uncovered:
|
|
4981
|
+
- ac: 'AC3'
|
|
4982
|
+
reason: 'No test found for password reset timing'
|
|
4983
|
+
notes: 'See qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md'
|
|
4984
|
+
```
|
|
4985
|
+
|
|
4986
|
+
### Output 2: Traceability Report
|
|
4987
|
+
|
|
4988
|
+
**Save to:** `qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md`
|
|
4989
|
+
|
|
4990
|
+
Create a traceability report with:
|
|
4991
|
+
|
|
4992
|
+
```markdown
|
|
4993
|
+
# Requirements Traceability Matrix
|
|
4994
|
+
|
|
4995
|
+
## Story: {epic}.{story} - {title}
|
|
4996
|
+
|
|
4997
|
+
### Coverage Summary
|
|
4998
|
+
|
|
4999
|
+
- Total Requirements: X
|
|
5000
|
+
- Fully Covered: Y (Z%)
|
|
5001
|
+
- Partially Covered: A (B%)
|
|
5002
|
+
- Not Covered: C (D%)
|
|
5003
|
+
|
|
5004
|
+
### Requirement Mappings
|
|
5005
|
+
|
|
5006
|
+
#### AC1: {Acceptance Criterion 1}
|
|
5007
|
+
|
|
5008
|
+
**Coverage: FULL**
|
|
5009
|
+
|
|
5010
|
+
Given-When-Then Mappings:
|
|
5011
|
+
|
|
5012
|
+
- **Unit Test**: `auth.service.test.ts::validateCredentials`
|
|
5013
|
+
- Given: Valid user credentials
|
|
5014
|
+
- When: Validation method called
|
|
5015
|
+
- Then: Returns true with user object
|
|
5016
|
+
|
|
5017
|
+
- **Integration Test**: `auth.integration.test.ts::loginFlow`
|
|
5018
|
+
- Given: User with valid account
|
|
5019
|
+
- When: Login API called
|
|
5020
|
+
- Then: JWT token returned and session created
|
|
5021
|
+
|
|
5022
|
+
#### AC2: {Acceptance Criterion 2}
|
|
5023
|
+
|
|
5024
|
+
**Coverage: PARTIAL**
|
|
5025
|
+
|
|
5026
|
+
[Continue for all ACs...]
|
|
5027
|
+
|
|
5028
|
+
### Critical Gaps
|
|
5029
|
+
|
|
5030
|
+
1. **Performance Requirements**
|
|
5031
|
+
- Gap: No load testing for concurrent users
|
|
5032
|
+
- Risk: High - Could fail under production load
|
|
5033
|
+
- Action: Implement load tests using k6 or similar
|
|
5034
|
+
|
|
5035
|
+
2. **Security Requirements**
|
|
5036
|
+
- Gap: Rate limiting not tested
|
|
5037
|
+
- Risk: Medium - Potential DoS vulnerability
|
|
5038
|
+
- Action: Add rate limit tests to integration suite
|
|
5039
|
+
|
|
5040
|
+
### Test Design Recommendations
|
|
5041
|
+
|
|
5042
|
+
Based on gaps identified, recommend:
|
|
5043
|
+
|
|
5044
|
+
1. Additional test scenarios needed
|
|
5045
|
+
2. Test types to implement (unit/integration/e2e/performance)
|
|
5046
|
+
3. Test data requirements
|
|
5047
|
+
4. Mock/stub strategies
|
|
5048
|
+
|
|
5049
|
+
### Risk Assessment
|
|
5050
|
+
|
|
5051
|
+
- **High Risk**: Requirements with no coverage
|
|
5052
|
+
- **Medium Risk**: Requirements with only partial coverage
|
|
5053
|
+
- **Low Risk**: Requirements with full unit + integration coverage
|
|
5054
|
+
```
|
|
5055
|
+
|
|
5056
|
+
## Traceability Best Practices
|
|
5057
|
+
|
|
5058
|
+
### Given-When-Then for Mapping (Not Test Code)
|
|
5059
|
+
|
|
5060
|
+
Use Given-When-Then to document what each test validates:
|
|
5061
|
+
|
|
5062
|
+
**Given**: The initial context the test sets up
|
|
5063
|
+
|
|
5064
|
+
- What state/data the test prepares
|
|
5065
|
+
- User context being simulated
|
|
5066
|
+
- System preconditions
|
|
5067
|
+
|
|
5068
|
+
**When**: The action the test performs
|
|
5069
|
+
|
|
5070
|
+
- What the test executes
|
|
5071
|
+
- API calls or user actions tested
|
|
5072
|
+
- Events triggered
|
|
5073
|
+
|
|
5074
|
+
**Then**: What the test asserts
|
|
5075
|
+
|
|
5076
|
+
- Expected outcomes verified
|
|
5077
|
+
- State changes checked
|
|
5078
|
+
- Values validated
|
|
5079
|
+
|
|
5080
|
+
**Note**: This is for documentation only. Actual test code follows your project's standards (e.g., describe/it blocks, no BDD syntax).
|
|
5081
|
+
|
|
5082
|
+
### Coverage Priority
|
|
5083
|
+
|
|
5084
|
+
Prioritize coverage based on:
|
|
5085
|
+
|
|
5086
|
+
1. Critical business flows
|
|
5087
|
+
2. Security-related requirements
|
|
5088
|
+
3. Data integrity requirements
|
|
5089
|
+
4. User-facing features
|
|
5090
|
+
5. Performance SLAs
|
|
5091
|
+
|
|
5092
|
+
### Test Granularity
|
|
5093
|
+
|
|
5094
|
+
Map at appropriate levels:
|
|
5095
|
+
|
|
5096
|
+
- Unit tests for business logic
|
|
5097
|
+
- Integration tests for component interaction
|
|
5098
|
+
- E2E tests for user journeys
|
|
5099
|
+
- Performance tests for NFRs
|
|
5100
|
+
|
|
5101
|
+
## Quality Indicators
|
|
5102
|
+
|
|
5103
|
+
Good traceability shows:
|
|
5104
|
+
|
|
5105
|
+
- Every AC has at least one test
|
|
5106
|
+
- Critical paths have multiple test levels
|
|
5107
|
+
- Edge cases are explicitly covered
|
|
5108
|
+
- NFRs have appropriate test types
|
|
5109
|
+
- Clear Given-When-Then for each test
|
|
5110
|
+
|
|
5111
|
+
## Red Flags
|
|
5112
|
+
|
|
5113
|
+
Watch for:
|
|
5114
|
+
|
|
5115
|
+
- ACs with no test coverage
|
|
5116
|
+
- Tests that don't map to requirements
|
|
5117
|
+
- Vague test descriptions
|
|
5118
|
+
- Missing edge case coverage
|
|
5119
|
+
- NFRs without specific tests
|
|
5120
|
+
|
|
5121
|
+
## Integration with Gates
|
|
5122
|
+
|
|
5123
|
+
This traceability feeds into quality gates:
|
|
5124
|
+
|
|
5125
|
+
- Critical gaps → FAIL
|
|
5126
|
+
- Minor gaps → CONCERNS
|
|
5127
|
+
- Missing P0 tests from test-design → CONCERNS
|
|
5128
|
+
|
|
5129
|
+
### Output 3: Story Hook Line
|
|
5130
|
+
|
|
5131
|
+
**Print this line for review task to quote:**
|
|
5132
|
+
|
|
5133
|
+
```text
|
|
5134
|
+
Trace matrix: qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md
|
|
5135
|
+
```
|
|
5136
|
+
|
|
5137
|
+
- Full coverage → PASS contribution
|
|
5138
|
+
|
|
5139
|
+
## Key Principles
|
|
5140
|
+
|
|
5141
|
+
- Every requirement must be testable
|
|
5142
|
+
- Use Given-When-Then for clarity
|
|
5143
|
+
- Identify both presence and absence
|
|
5144
|
+
- Prioritize based on risk
|
|
5145
|
+
- Make recommendations actionable
|
|
5146
|
+
==================== END: .bmad-core/tasks/trace-requirements.md ====================
|
|
5147
|
+
|
|
5148
|
+
==================== START: .bmad-core/templates/qa-gate-tmpl.yaml ====================
|
|
5149
|
+
template:
|
|
5150
|
+
id: qa-gate-template-v1
|
|
5151
|
+
name: Quality Gate Decision
|
|
5152
|
+
version: 1.0
|
|
5153
|
+
output:
|
|
5154
|
+
format: yaml
|
|
5155
|
+
filename: qa.qaLocation/gates/{{epic_num}}.{{story_num}}-{{story_slug}}.yml
|
|
5156
|
+
title: "Quality Gate: {{epic_num}}.{{story_num}}"
|
|
5157
|
+
|
|
5158
|
+
# Required fields (keep these first)
|
|
5159
|
+
schema: 1
|
|
5160
|
+
story: "{{epic_num}}.{{story_num}}"
|
|
5161
|
+
story_title: "{{story_title}}"
|
|
5162
|
+
gate: "{{gate_status}}" # PASS|CONCERNS|FAIL|WAIVED
|
|
5163
|
+
status_reason: "{{status_reason}}" # 1-2 sentence summary of why this gate decision
|
|
5164
|
+
reviewer: "Quinn (Test Architect)"
|
|
5165
|
+
updated: "{{iso_timestamp}}"
|
|
5166
|
+
|
|
5167
|
+
# Always present but only active when WAIVED
|
|
5168
|
+
waiver: { active: false }
|
|
5169
|
+
|
|
5170
|
+
# Issues (if any) - Use fixed severity: low | medium | high
|
|
5171
|
+
top_issues: []
|
|
5172
|
+
|
|
5173
|
+
# Risk summary (from risk-profile task if run)
|
|
5174
|
+
risk_summary:
|
|
5175
|
+
totals: { critical: 0, high: 0, medium: 0, low: 0 }
|
|
5176
|
+
recommendations:
|
|
5177
|
+
must_fix: []
|
|
5178
|
+
monitor: []
|
|
5179
|
+
|
|
5180
|
+
# Examples section using block scalars for clarity
|
|
5181
|
+
examples:
|
|
5182
|
+
with_issues: |
|
|
5183
|
+
top_issues:
|
|
5184
|
+
- id: "SEC-001"
|
|
5185
|
+
severity: high # ONLY: low|medium|high
|
|
5186
|
+
finding: "No rate limiting on login endpoint"
|
|
5187
|
+
suggested_action: "Add rate limiting middleware before production"
|
|
5188
|
+
- id: "TEST-001"
|
|
5189
|
+
severity: medium
|
|
5190
|
+
finding: "Missing integration tests for auth flow"
|
|
5191
|
+
suggested_action: "Add test coverage for critical paths"
|
|
5192
|
+
|
|
5193
|
+
when_waived: |
|
|
5194
|
+
waiver:
|
|
5195
|
+
active: true
|
|
5196
|
+
reason: "Accepted for MVP release - will address in next sprint"
|
|
5197
|
+
approved_by: "Product Owner"
|
|
5198
|
+
|
|
5199
|
+
# ============ Optional Extended Fields ============
|
|
5200
|
+
# Uncomment and use if your team wants more detail
|
|
5201
|
+
|
|
5202
|
+
optional_fields_examples:
|
|
5203
|
+
quality_and_expiry: |
|
|
5204
|
+
quality_score: 75 # 0-100 (optional scoring)
|
|
5205
|
+
expires: "2025-01-26T00:00:00Z" # Optional gate freshness window
|
|
5206
|
+
|
|
5207
|
+
evidence: |
|
|
5208
|
+
evidence:
|
|
5209
|
+
tests_reviewed: 15
|
|
5210
|
+
risks_identified: 3
|
|
5211
|
+
trace:
|
|
5212
|
+
ac_covered: [1, 2, 3] # AC numbers with test coverage
|
|
5213
|
+
ac_gaps: [4] # AC numbers lacking coverage
|
|
5214
|
+
|
|
5215
|
+
nfr_validation: |
|
|
5216
|
+
nfr_validation:
|
|
5217
|
+
security: { status: CONCERNS, notes: "Rate limiting missing" }
|
|
5218
|
+
performance: { status: PASS, notes: "" }
|
|
5219
|
+
reliability: { status: PASS, notes: "" }
|
|
5220
|
+
maintainability: { status: PASS, notes: "" }
|
|
5221
|
+
|
|
5222
|
+
history: |
|
|
5223
|
+
history: # Append-only audit trail
|
|
5224
|
+
- at: "2025-01-12T10:00:00Z"
|
|
5225
|
+
gate: FAIL
|
|
5226
|
+
note: "Initial review - missing tests"
|
|
5227
|
+
- at: "2025-01-12T15:00:00Z"
|
|
5228
|
+
gate: CONCERNS
|
|
5229
|
+
note: "Tests added but rate limiting still missing"
|
|
5230
|
+
|
|
5231
|
+
risk_summary: |
|
|
5232
|
+
risk_summary: # From risk-profile task
|
|
5233
|
+
totals:
|
|
5234
|
+
critical: 0
|
|
5235
|
+
high: 0
|
|
5236
|
+
medium: 0
|
|
5237
|
+
low: 0
|
|
5238
|
+
# 'highest' is emitted only when risks exist
|
|
5239
|
+
recommendations:
|
|
5240
|
+
must_fix: []
|
|
5241
|
+
monitor: []
|
|
5242
|
+
|
|
5243
|
+
recommendations: |
|
|
5244
|
+
recommendations:
|
|
5245
|
+
immediate: # Must fix before production
|
|
5246
|
+
- action: "Add rate limiting to auth endpoints"
|
|
5247
|
+
refs: ["api/auth/login.ts:42-68"]
|
|
5248
|
+
future: # Can be addressed later
|
|
5249
|
+
- action: "Consider caching for better performance"
|
|
5250
|
+
refs: ["services/data.service.ts"]
|
|
5251
|
+
==================== END: .bmad-core/templates/qa-gate-tmpl.yaml ====================
|
|
5252
|
+
|
|
3503
5253
|
==================== START: .bmad-core/data/technical-preferences.md ====================
|
|
3504
5254
|
# User-Defined Preferred Patterns and Preferences
|
|
3505
5255
|
|