bmad-method 5.0.0-beta.2 → 5.0.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.
Files changed (131) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
  3. package/.github/workflows/discord.yaml +11 -2
  4. package/.github/workflows/format-check.yaml +42 -0
  5. package/.github/workflows/manual-release.yaml +173 -0
  6. package/.husky/pre-commit +3 -0
  7. package/.vscode/settings.json +26 -1
  8. package/CHANGELOG.md +0 -11
  9. package/README.md +2 -0
  10. package/bmad-core/agent-teams/team-all.yaml +1 -1
  11. package/bmad-core/agents/bmad-orchestrator.md +1 -1
  12. package/bmad-core/agents/dev.md +4 -4
  13. package/bmad-core/data/bmad-kb.md +1 -1
  14. package/bmad-core/data/test-levels-framework.md +12 -12
  15. package/bmad-core/tasks/facilitate-brainstorming-session.md +1 -1
  16. package/bmad-core/tasks/nfr-assess.md +10 -10
  17. package/bmad-core/tasks/qa-gate.md +23 -23
  18. package/bmad-core/tasks/review-story.md +18 -18
  19. package/bmad-core/tasks/risk-profile.md +25 -25
  20. package/bmad-core/tasks/test-design.md +9 -9
  21. package/bmad-core/tasks/trace-requirements.md +21 -21
  22. package/bmad-core/templates/architecture-tmpl.yaml +49 -49
  23. package/bmad-core/templates/brainstorming-output-tmpl.yaml +5 -5
  24. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +31 -31
  25. package/bmad-core/templates/brownfield-prd-tmpl.yaml +13 -13
  26. package/bmad-core/templates/competitor-analysis-tmpl.yaml +19 -6
  27. package/bmad-core/templates/front-end-architecture-tmpl.yaml +21 -9
  28. package/bmad-core/templates/front-end-spec-tmpl.yaml +24 -24
  29. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +122 -104
  30. package/bmad-core/templates/market-research-tmpl.yaml +2 -2
  31. package/bmad-core/templates/prd-tmpl.yaml +9 -9
  32. package/bmad-core/templates/project-brief-tmpl.yaml +4 -4
  33. package/bmad-core/templates/qa-gate-tmpl.yaml +9 -9
  34. package/bmad-core/templates/story-tmpl.yaml +12 -12
  35. package/bmad-core/workflows/brownfield-fullstack.yaml +9 -9
  36. package/bmad-core/workflows/brownfield-service.yaml +1 -1
  37. package/bmad-core/workflows/brownfield-ui.yaml +1 -1
  38. package/bmad-core/workflows/greenfield-fullstack.yaml +1 -1
  39. package/bmad-core/workflows/greenfield-service.yaml +1 -1
  40. package/bmad-core/workflows/greenfield-ui.yaml +1 -1
  41. package/common/utils/bmad-doc-template.md +5 -5
  42. package/dist/agents/analyst.txt +28 -15
  43. package/dist/agents/architect.txt +220 -190
  44. package/dist/agents/bmad-master.txt +298 -255
  45. package/dist/agents/bmad-orchestrator.txt +1 -1
  46. package/dist/agents/pm.txt +20 -20
  47. package/dist/agents/po.txt +11 -11
  48. package/dist/agents/qa.txt +275 -618
  49. package/dist/agents/sm.txt +11 -11
  50. package/dist/agents/ux-expert.txt +23 -23
  51. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +109 -109
  52. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +75 -77
  53. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +41 -41
  54. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +483 -474
  55. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +1 -1
  56. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +149 -149
  57. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +20 -20
  58. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +371 -358
  59. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +25 -25
  60. package/dist/teams/team-all.txt +581 -881
  61. package/dist/teams/team-fullstack.txt +316 -273
  62. package/dist/teams/team-ide-minimal.txt +276 -619
  63. package/dist/teams/team-no-ui.txt +281 -238
  64. package/docs/versioning-and-releases.md +114 -44
  65. package/eslint.config.mjs +119 -0
  66. 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 +26 -26
  67. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +4 -4
  68. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
  69. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +26 -28
  70. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +50 -50
  71. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +23 -23
  72. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +24 -24
  73. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +42 -42
  74. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  75. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  76. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +1 -1
  77. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +3 -3
  78. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +1 -1
  79. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +23 -23
  80. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +63 -63
  81. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +20 -20
  82. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  83. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  84. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +1 -1
  85. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +20 -20
  86. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +7 -7
  87. package/package.json +62 -39
  88. package/prettier.config.mjs +32 -0
  89. package/release_notes.md +30 -0
  90. package/tools/bmad-npx-wrapper.js +10 -10
  91. package/tools/builders/web-builder.js +124 -130
  92. package/tools/bump-all-versions.js +42 -33
  93. package/tools/bump-expansion-version.js +23 -16
  94. package/tools/cli.js +10 -12
  95. package/tools/flattener/aggregate.js +10 -10
  96. package/tools/flattener/binary.js +44 -17
  97. package/tools/flattener/discovery.js +19 -18
  98. package/tools/flattener/files.js +6 -6
  99. package/tools/flattener/ignoreRules.js +125 -125
  100. package/tools/flattener/main.js +201 -304
  101. package/tools/flattener/projectRoot.js +75 -73
  102. package/tools/flattener/prompts.js +9 -9
  103. package/tools/flattener/stats.helpers.js +131 -67
  104. package/tools/flattener/stats.js +3 -3
  105. package/tools/flattener/test-matrix.js +201 -193
  106. package/tools/flattener/xml.js +33 -31
  107. package/tools/installer/bin/bmad.js +130 -89
  108. package/tools/installer/config/ide-agent-config.yaml +1 -1
  109. package/tools/installer/config/install.config.yaml +2 -2
  110. package/tools/installer/lib/config-loader.js +46 -42
  111. package/tools/installer/lib/file-manager.js +91 -113
  112. package/tools/installer/lib/ide-base-setup.js +57 -56
  113. package/tools/installer/lib/ide-setup.js +375 -343
  114. package/tools/installer/lib/installer.js +875 -714
  115. package/tools/installer/lib/memory-profiler.js +54 -53
  116. package/tools/installer/lib/module-manager.js +19 -15
  117. package/tools/installer/lib/resource-locator.js +26 -28
  118. package/tools/installer/package.json +19 -19
  119. package/tools/lib/dependency-resolver.js +26 -30
  120. package/tools/lib/yaml-utils.js +7 -7
  121. package/tools/preview-release-notes.js +66 -0
  122. package/tools/shared/bannerArt.js +3 -3
  123. package/tools/sync-installer-version.js +7 -9
  124. package/tools/update-expansion-version.js +14 -15
  125. package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
  126. package/tools/version-bump.js +41 -26
  127. package/tools/yaml-format.js +56 -43
  128. package/.github/workflows/promote-to-stable.yml +0 -144
  129. package/.github/workflows/release.yaml +0 -60
  130. package/.releaserc.json +0 -21
  131. package/tools/semantic-release-sync-installer.js +0 -30
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: Bug report
3
3
  about: Create a report to help us improve
4
- title: ""
5
- labels: ""
6
- assignees: ""
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
7
  ---
8
8
 
9
9
  **Describe the bug**
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: Feature request
3
3
  about: Suggest an idea for this project
4
- title: ""
5
- labels: ""
6
- assignees: ""
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
7
  ---
8
8
 
9
9
  **Did you discuss the idea first in Discord Server (#general-dev)**
@@ -1,6 +1,15 @@
1
1
  name: Discord Notification
2
2
 
3
- on: [pull_request, release, create, delete, issue_comment, pull_request_review, pull_request_review_comment]
3
+ "on":
4
+ [
5
+ pull_request,
6
+ release,
7
+ create,
8
+ delete,
9
+ issue_comment,
10
+ pull_request_review,
11
+ pull_request_review_comment,
12
+ ]
4
13
 
5
14
  jobs:
6
15
  notify:
@@ -13,4 +22,4 @@ jobs:
13
22
  webhook: ${{ secrets.DISCORD_WEBHOOK }}
14
23
  status: ${{ job.status }}
15
24
  title: "Triggered by ${{ github.event_name }}"
16
- color: 0x5865F2
25
+ color: 0x5865F2
@@ -0,0 +1,42 @@
1
+ name: format-check
2
+
3
+ "on":
4
+ pull_request:
5
+ branches: ["**"]
6
+
7
+ jobs:
8
+ prettier:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout
12
+ uses: actions/checkout@v4
13
+
14
+ - name: Setup Node
15
+ uses: actions/setup-node@v4
16
+ with:
17
+ node-version: "20"
18
+ cache: "npm"
19
+
20
+ - name: Install dependencies
21
+ run: npm ci
22
+
23
+ - name: Prettier format check
24
+ run: npm run format:check
25
+
26
+ eslint:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - name: Checkout
30
+ uses: actions/checkout@v4
31
+
32
+ - name: Setup Node
33
+ uses: actions/setup-node@v4
34
+ with:
35
+ node-version: "20"
36
+ cache: "npm"
37
+
38
+ - name: Install dependencies
39
+ run: npm ci
40
+
41
+ - name: ESLint
42
+ run: npm run lint
@@ -0,0 +1,173 @@
1
+ name: Manual Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version_bump:
7
+ description: Version bump type
8
+ required: true
9
+ default: patch
10
+ type: choice
11
+ options:
12
+ - patch
13
+ - minor
14
+ - major
15
+
16
+ permissions:
17
+ contents: write
18
+ packages: write
19
+
20
+ jobs:
21
+ release:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Checkout
25
+ uses: actions/checkout@v4
26
+ with:
27
+ fetch-depth: 0
28
+ token: ${{ secrets.GITHUB_TOKEN }}
29
+
30
+ - name: Setup Node.js
31
+ uses: actions/setup-node@v4
32
+ with:
33
+ node-version: "20"
34
+ cache: npm
35
+ registry-url: https://registry.npmjs.org
36
+
37
+ - name: Install dependencies
38
+ run: npm ci
39
+
40
+ - name: Run tests and validation
41
+ run: |
42
+ npm run validate
43
+ npm run format:check
44
+ npm run lint
45
+
46
+ - name: Configure Git
47
+ run: |
48
+ git config user.name "github-actions[bot]"
49
+ git config user.email "github-actions[bot]@users.noreply.github.com"
50
+
51
+ - name: Bump version
52
+ run: npm run version:${{ github.event.inputs.version_bump }}
53
+
54
+ - name: Get new version and previous tag
55
+ id: version
56
+ run: |
57
+ echo "new_version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
58
+ echo "previous_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
59
+
60
+ - name: Update installer package.json
61
+ run: |
62
+ sed -i 's/"version": ".*"/"version": "${{ steps.version.outputs.new_version }}"/' tools/installer/package.json
63
+
64
+ - name: Build project
65
+ run: npm run build
66
+
67
+ - name: Commit version bump
68
+ run: |
69
+ git add .
70
+ git commit -m "release: bump to v${{ steps.version.outputs.new_version }}"
71
+
72
+ - name: Generate release notes
73
+ id: release_notes
74
+ run: |
75
+ # Get commits since last tag
76
+ COMMITS=$(git log ${{ steps.version.outputs.previous_tag }}..HEAD --pretty=format:"- %s" --reverse)
77
+
78
+ # Categorize commits
79
+ FEATURES=$(echo "$COMMITS" | grep -E "^- (feat|Feature)" || true)
80
+ FIXES=$(echo "$COMMITS" | grep -E "^- (fix|Fix)" || true)
81
+ CHORES=$(echo "$COMMITS" | grep -E "^- (chore|Chore)" || true)
82
+ OTHERS=$(echo "$COMMITS" | grep -v -E "^- (feat|Feature|fix|Fix|chore|Chore|release:|Release:)" || true)
83
+
84
+ # Build release notes
85
+ cat > release_notes.md << 'EOF'
86
+ ## 🚀 What's New in v${{ steps.version.outputs.new_version }}
87
+
88
+ EOF
89
+
90
+ if [ ! -z "$FEATURES" ]; then
91
+ echo "### ✨ New Features" >> release_notes.md
92
+ echo "$FEATURES" >> release_notes.md
93
+ echo "" >> release_notes.md
94
+ fi
95
+
96
+ if [ ! -z "$FIXES" ]; then
97
+ echo "### 🐛 Bug Fixes" >> release_notes.md
98
+ echo "$FIXES" >> release_notes.md
99
+ echo "" >> release_notes.md
100
+ fi
101
+
102
+ if [ ! -z "$OTHERS" ]; then
103
+ echo "### 📦 Other Changes" >> release_notes.md
104
+ echo "$OTHERS" >> release_notes.md
105
+ echo "" >> release_notes.md
106
+ fi
107
+
108
+ if [ ! -z "$CHORES" ]; then
109
+ echo "### 🔧 Maintenance" >> release_notes.md
110
+ echo "$CHORES" >> release_notes.md
111
+ echo "" >> release_notes.md
112
+ fi
113
+
114
+ cat >> release_notes.md << 'EOF'
115
+
116
+ ## 📦 Installation
117
+
118
+ ```bash
119
+ npx bmad-method install
120
+ ```
121
+
122
+ **Full Changelog**: https://github.com/bmadcode/BMAD-METHOD/compare/${{ steps.version.outputs.previous_tag }}...v${{ steps.version.outputs.new_version }}
123
+ EOF
124
+
125
+ # Output for GitHub Actions
126
+ echo "RELEASE_NOTES<<EOF" >> $GITHUB_OUTPUT
127
+ cat release_notes.md >> $GITHUB_OUTPUT
128
+ echo "EOF" >> $GITHUB_OUTPUT
129
+
130
+ - name: Create and push tag
131
+ run: |
132
+ # Check if tag already exists
133
+ if git rev-parse "v${{ steps.version.outputs.new_version }}" >/dev/null 2>&1; then
134
+ echo "Tag v${{ steps.version.outputs.new_version }} already exists, skipping tag creation"
135
+ else
136
+ git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
137
+ git push origin "v${{ steps.version.outputs.new_version }}"
138
+ fi
139
+
140
+ - name: Push changes to main
141
+ run: |
142
+ if git push origin HEAD:main 2>/dev/null; then
143
+ echo "✅ Successfully pushed to main branch"
144
+ else
145
+ echo "⚠️ Could not push to main (protected branch). This is expected."
146
+ echo "📝 Version bump and tag were created successfully."
147
+ fi
148
+
149
+ - name: Publish to NPM
150
+ env:
151
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
152
+ run: npm publish
153
+
154
+ - name: Create GitHub Release
155
+ uses: actions/create-release@v1
156
+ env:
157
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
158
+ with:
159
+ tag_name: v${{ steps.version.outputs.new_version }}
160
+ release_name: "BMad Method v${{ steps.version.outputs.new_version }}"
161
+ body: ${{ steps.release_notes.outputs.RELEASE_NOTES }}
162
+ draft: false
163
+ prerelease: false
164
+
165
+ - name: Summary
166
+ run: |
167
+ echo "🎉 Successfully released v${{ steps.version.outputs.new_version }}!"
168
+ echo "📦 Published to NPM with @latest tag"
169
+ echo "🏷️ Git tag: v${{ steps.version.outputs.new_version }}"
170
+ echo "✅ Users running 'npx bmad-method install' will now get version ${{ steps.version.outputs.new_version }}"
171
+ echo ""
172
+ echo "📝 Release notes preview:"
173
+ cat release_notes.md
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env sh
2
+
3
+ npx --no-install lint-staged
@@ -40,5 +40,30 @@
40
40
  "tileset",
41
41
  "Trae",
42
42
  "VNET"
43
- ]
43
+ ],
44
+ "json.schemas": [
45
+ {
46
+ "fileMatch": ["package.json"],
47
+ "url": "https://json.schemastore.org/package.json"
48
+ },
49
+ {
50
+ "fileMatch": [".vscode/settings.json"],
51
+ "url": "vscode://schemas/settings/folder"
52
+ }
53
+ ],
54
+ "editor.formatOnSave": true,
55
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
56
+ "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
57
+ "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
58
+ "[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
59
+ "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
60
+ "prettier.prettierPath": "node_modules/prettier",
61
+ "prettier.requireConfig": true,
62
+ "yaml.format.enable": false,
63
+ "eslint.useFlatConfig": true,
64
+ "eslint.validate": ["javascript", "yaml"],
65
+ "editor.codeActionsOnSave": {
66
+ "source.fixAll.eslint": "explicit"
67
+ },
68
+ "editor.rulers": [100]
44
69
  }
package/CHANGELOG.md CHANGED
@@ -1,10 +1,3 @@
1
- # [5.0.0-beta.2](https://github.com/bmadcode/BMAD-METHOD/compare/v5.0.0-beta.1...v5.0.0-beta.2) (2025-08-16)
2
-
3
-
4
- ### Features
5
-
6
- * **flattener:** prompt for detailed stats; polish .stats.md with emojis ([#422](https://github.com/bmadcode/BMAD-METHOD/issues/422)) ([fab9d5e](https://github.com/bmadcode/BMAD-METHOD/commit/fab9d5e1f55d7876b6909002415af89508cc41a7))
7
-
8
1
  ## [4.36.2](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.1...v4.36.2) (2025-08-10)
9
2
 
10
3
  ### Bug Fixes
@@ -581,10 +574,6 @@
581
574
 
582
575
  - Manual version bumping via npm scripts is now disabled. Use conventional commits for automated releases.
583
576
 
584
- 🤖 Generated with [Claude Code](https://claude.ai/code)
585
-
586
- Co-Authored-By: Claude <noreply@anthropic.com>
587
-
588
577
  # [4.2.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.1.0...v4.2.0) (2025-06-15)
589
578
 
590
579
  ### Bug Fixes
package/README.md CHANGED
@@ -75,6 +75,8 @@ This makes it easy to benefit from the latest improvements, bug fixes, and new a
75
75
 
76
76
  ```bash
77
77
  npx bmad-method install
78
+ # OR explicitly use stable tag:
79
+ npx bmad-method@stable install
78
80
  # OR if you already have BMad installed:
79
81
  git pull
80
82
  npm run install:bmad
@@ -4,7 +4,7 @@ bundle:
4
4
  description: Includes every core system agent.
5
5
  agents:
6
6
  - bmad-orchestrator
7
- - '*'
7
+ - "*"
8
8
  workflows:
9
9
  - brownfield-fullstack.yaml
10
10
  - brownfield-service.yaml
@@ -131,7 +131,7 @@ workflow-guidance:
131
131
  - Understand each workflow's purpose, options, and decision points
132
132
  - Ask clarifying questions based on the workflow's structure
133
133
  - Guide users through workflow selection when multiple options exist
134
- - When appropriate, suggest: "Would you like me to create a detailed workflow plan before starting?"
134
+ - When appropriate, suggest: 'Would you like me to create a detailed workflow plan before starting?'
135
135
  - For workflows with divergent paths, help users choose the right path
136
136
  - Adapt questions to the specific domain (e.g., game dev vs infrastructure vs web dev)
137
137
  - Only recommend workflows that actually exist in the current bundle
@@ -35,7 +35,7 @@ agent:
35
35
  id: dev
36
36
  title: Full Stack Developer
37
37
  icon: 💻
38
- whenToUse: "Use for code implementation, debugging, refactoring, and development best practices"
38
+ whenToUse: 'Use for code implementation, debugging, refactoring, and development best practices'
39
39
  customization:
40
40
 
41
41
  persona:
@@ -57,13 +57,13 @@ commands:
57
57
  - explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior engineer.
58
58
  - exit: Say goodbye as the Developer, and then abandon inhabiting this persona
59
59
  - develop-story:
60
- - 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"
60
+ - order-of-execution: 'Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete'
61
61
  - story-file-updates-ONLY:
62
62
  - CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
63
63
  - CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
64
64
  - CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
65
- - 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"
66
- - ready-for-review: "Code matches requirements + All validations pass + Follows standards + File List complete"
65
+ - 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'
66
+ - ready-for-review: 'Code matches requirements + All validations pass + Follows standards + File List complete'
67
67
  - 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"
68
68
 
69
69
  dependencies:
@@ -298,7 +298,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
298
298
 
299
299
  - **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
300
300
  - **Cursor**: `@agent-name` (e.g., `@bmad-master`)
301
- - **Windsurf**: `@agent-name` (e.g., `@bmad-master`)
301
+ - **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
302
302
  - **Trae**: `@agent-name` (e.g., `@bmad-master`)
303
303
  - **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
304
304
  - **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
@@ -25,10 +25,10 @@ Comprehensive guide for determining appropriate test levels (unit, integration,
25
25
 
26
26
  ```yaml
27
27
  unit_test:
28
- component: "PriceCalculator"
29
- scenario: "Calculate discount with multiple rules"
30
- justification: "Complex business logic with multiple branches"
31
- mock_requirements: "None - pure function"
28
+ component: 'PriceCalculator'
29
+ scenario: 'Calculate discount with multiple rules'
30
+ justification: 'Complex business logic with multiple branches'
31
+ mock_requirements: 'None - pure function'
32
32
  ```
33
33
 
34
34
  ### Integration Tests
@@ -52,10 +52,10 @@ unit_test:
52
52
 
53
53
  ```yaml
54
54
  integration_test:
55
- components: ["UserService", "AuthRepository"]
56
- scenario: "Create user with role assignment"
57
- justification: "Critical data flow between service and persistence"
58
- test_environment: "In-memory database"
55
+ components: ['UserService', 'AuthRepository']
56
+ scenario: 'Create user with role assignment'
57
+ justification: 'Critical data flow between service and persistence'
58
+ test_environment: 'In-memory database'
59
59
  ```
60
60
 
61
61
  ### End-to-End Tests
@@ -79,10 +79,10 @@ integration_test:
79
79
 
80
80
  ```yaml
81
81
  e2e_test:
82
- journey: "Complete checkout process"
83
- scenario: "User purchases with saved payment method"
84
- justification: "Revenue-critical path requiring full validation"
85
- environment: "Staging with test payment gateway"
82
+ journey: 'Complete checkout process'
83
+ scenario: 'User purchases with saved payment method'
84
+ justification: 'Revenue-critical path requiring full validation'
85
+ environment: 'Staging with test payment gateway'
86
86
  ```
87
87
 
88
88
  ## Test Level Selection Rules
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  docOutputLocation: docs/brainstorming-session-results.md
3
- template: "{root}/templates/brainstorming-output-tmpl.yaml"
3
+ template: '{root}/templates/brainstorming-output-tmpl.yaml'
4
4
  ---
5
5
 
6
6
  # Facilitate Brainstorming Session Task
@@ -6,12 +6,12 @@ Quick NFR validation focused on the core four: security, performance, reliabilit
6
6
 
7
7
  ```yaml
8
8
  required:
9
- - story_id: "{epic}.{story}" # e.g., "1.3"
10
- - story_path: "docs/stories/{epic}.{story}.*.md"
9
+ - story_id: '{epic}.{story}' # e.g., "1.3"
10
+ - story_path: 'docs/stories/{epic}.{story}.*.md'
11
11
 
12
12
  optional:
13
- - architecture_refs: "docs/architecture/*.md"
14
- - technical_preferences: "docs/technical-preferences.md"
13
+ - architecture_refs: 'docs/architecture/*.md'
14
+ - technical_preferences: 'docs/technical-preferences.md'
15
15
  - acceptance_criteria: From story file
16
16
  ```
17
17
 
@@ -92,16 +92,16 @@ nfr_validation:
92
92
  _assessed: [security, performance, reliability, maintainability]
93
93
  security:
94
94
  status: CONCERNS
95
- notes: "No rate limiting on auth endpoints"
95
+ notes: 'No rate limiting on auth endpoints'
96
96
  performance:
97
97
  status: PASS
98
- notes: "Response times < 200ms verified"
98
+ notes: 'Response times < 200ms verified'
99
99
  reliability:
100
100
  status: PASS
101
- notes: "Error handling and retries implemented"
101
+ notes: 'Error handling and retries implemented'
102
102
  maintainability:
103
103
  status: CONCERNS
104
- notes: "Test coverage at 65%, target is 80%"
104
+ notes: 'Test coverage at 65%, target is 80%'
105
105
  ```
106
106
 
107
107
  ## Deterministic Status Rules
@@ -331,10 +331,10 @@ performance_deep_dive:
331
331
  p99: 350ms
332
332
  database:
333
333
  slow_queries: 2
334
- missing_indexes: ["users.email", "orders.user_id"]
334
+ missing_indexes: ['users.email', 'orders.user_id']
335
335
  caching:
336
336
  hit_rate: 0%
337
- recommendation: "Add Redis for session data"
337
+ recommendation: 'Add Redis for session data'
338
338
  load_test:
339
339
  max_rps: 150
340
340
  breaking_point: 200 rps
@@ -27,11 +27,11 @@ Slug rules:
27
27
 
28
28
  ```yaml
29
29
  schema: 1
30
- story: "{epic}.{story}"
30
+ story: '{epic}.{story}'
31
31
  gate: PASS|CONCERNS|FAIL|WAIVED
32
- status_reason: "1-2 sentence explanation of gate decision"
33
- reviewer: "Quinn"
34
- updated: "{ISO-8601 timestamp}"
32
+ status_reason: '1-2 sentence explanation of gate decision'
33
+ reviewer: 'Quinn'
34
+ updated: '{ISO-8601 timestamp}'
35
35
  top_issues: [] # Empty array if no issues
36
36
  waiver: { active: false } # Only set active: true if WAIVED
37
37
  ```
@@ -40,20 +40,20 @@ waiver: { active: false } # Only set active: true if WAIVED
40
40
 
41
41
  ```yaml
42
42
  schema: 1
43
- story: "1.3"
43
+ story: '1.3'
44
44
  gate: CONCERNS
45
- status_reason: "Missing rate limiting on auth endpoints poses security risk."
46
- reviewer: "Quinn"
47
- updated: "2025-01-12T10:15:00Z"
45
+ status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
46
+ reviewer: 'Quinn'
47
+ updated: '2025-01-12T10:15:00Z'
48
48
  top_issues:
49
- - id: "SEC-001"
49
+ - id: 'SEC-001'
50
50
  severity: high # ONLY: low|medium|high
51
- finding: "No rate limiting on login endpoint"
52
- suggested_action: "Add rate limiting middleware before production"
53
- - id: "TEST-001"
51
+ finding: 'No rate limiting on login endpoint'
52
+ suggested_action: 'Add rate limiting middleware before production'
53
+ - id: 'TEST-001'
54
54
  severity: medium
55
- finding: "No integration tests for auth flow"
56
- suggested_action: "Add integration test coverage"
55
+ finding: 'No integration tests for auth flow'
56
+ suggested_action: 'Add integration test coverage'
57
57
  waiver: { active: false }
58
58
  ```
59
59
 
@@ -61,20 +61,20 @@ waiver: { active: false }
61
61
 
62
62
  ```yaml
63
63
  schema: 1
64
- story: "1.3"
64
+ story: '1.3'
65
65
  gate: WAIVED
66
- status_reason: "Known issues accepted for MVP release."
67
- reviewer: "Quinn"
68
- updated: "2025-01-12T10:15:00Z"
66
+ status_reason: 'Known issues accepted for MVP release.'
67
+ reviewer: 'Quinn'
68
+ updated: '2025-01-12T10:15:00Z'
69
69
  top_issues:
70
- - id: "PERF-001"
70
+ - id: 'PERF-001'
71
71
  severity: low
72
- finding: "Dashboard loads slowly with 1000+ items"
73
- suggested_action: "Implement pagination in next sprint"
72
+ finding: 'Dashboard loads slowly with 1000+ items'
73
+ suggested_action: 'Implement pagination in next sprint'
74
74
  waiver:
75
75
  active: true
76
- reason: "MVP release - performance optimization deferred"
77
- approved_by: "Product Owner"
76
+ reason: 'MVP release - performance optimization deferred'
77
+ approved_by: 'Product Owner'
78
78
  ```
79
79
 
80
80
  ## Gate Decision Criteria
@@ -6,10 +6,10 @@ Perform a comprehensive test architecture review with quality gate decision. Thi
6
6
 
7
7
  ```yaml
8
8
  required:
9
- - story_id: "{epic}.{story}" # e.g., "1.3"
10
- - story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
11
- - story_title: "{title}" # If missing, derive from story file H1
12
- - story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
9
+ - story_id: '{epic}.{story}' # e.g., "1.3"
10
+ - story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
11
+ - story_title: '{title}' # If missing, derive from story file H1
12
+ - story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
13
13
  ```
14
14
 
15
15
  ## Prerequisites
@@ -191,19 +191,19 @@ Gate file structure:
191
191
 
192
192
  ```yaml
193
193
  schema: 1
194
- story: "{epic}.{story}"
195
- story_title: "{story title}"
194
+ story: '{epic}.{story}'
195
+ story_title: '{story title}'
196
196
  gate: PASS|CONCERNS|FAIL|WAIVED
197
- status_reason: "1-2 sentence explanation of gate decision"
198
- reviewer: "Quinn (Test Architect)"
199
- updated: "{ISO-8601 timestamp}"
197
+ status_reason: '1-2 sentence explanation of gate decision'
198
+ reviewer: 'Quinn (Test Architect)'
199
+ updated: '{ISO-8601 timestamp}'
200
200
 
201
201
  top_issues: [] # Empty if no issues
202
202
  waiver: { active: false } # Set active: true only if WAIVED
203
203
 
204
204
  # Extended fields (optional but recommended):
205
205
  quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
206
- expires: "{ISO-8601 timestamp}" # Typically 2 weeks from review
206
+ expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
207
207
 
208
208
  evidence:
209
209
  tests_reviewed: { count }
@@ -215,24 +215,24 @@ evidence:
215
215
  nfr_validation:
216
216
  security:
217
217
  status: PASS|CONCERNS|FAIL
218
- notes: "Specific findings"
218
+ notes: 'Specific findings'
219
219
  performance:
220
220
  status: PASS|CONCERNS|FAIL
221
- notes: "Specific findings"
221
+ notes: 'Specific findings'
222
222
  reliability:
223
223
  status: PASS|CONCERNS|FAIL
224
- notes: "Specific findings"
224
+ notes: 'Specific findings'
225
225
  maintainability:
226
226
  status: PASS|CONCERNS|FAIL
227
- notes: "Specific findings"
227
+ notes: 'Specific findings'
228
228
 
229
229
  recommendations:
230
230
  immediate: # Must fix before production
231
- - action: "Add rate limiting"
232
- refs: ["api/auth/login.ts"]
231
+ - action: 'Add rate limiting'
232
+ refs: ['api/auth/login.ts']
233
233
  future: # Can be addressed later
234
- - action: "Consider caching"
235
- refs: ["services/data.ts"]
234
+ - action: 'Consider caching'
235
+ refs: ['services/data.ts']
236
236
  ```
237
237
 
238
238
  ### Gate Decision Criteria