bmad-method 4.41.0 → 4.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FORK_GUIDE.md +106 -0
- package/.github/workflows/discord.yaml +1 -0
- package/.github/workflows/format-check.yaml +2 -0
- package/.github/workflows/manual-release.yaml +1 -0
- package/.github/workflows/pr-validation.yaml +55 -0
- package/CONTRIBUTING.md +41 -0
- package/README.md +21 -1
- package/bmad-core/agents/bmad-master.md +4 -4
- package/bmad-core/agents/dev.md +1 -0
- package/bmad-core/data/bmad-kb.md +1 -0
- package/bmad-core/workflows/brownfield-fullstack.yaml +2 -2
- package/bmad-core/workflows/brownfield-service.yaml +2 -2
- package/bmad-core/workflows/brownfield-ui.yaml +2 -2
- package/bmad-core/workflows/greenfield-fullstack.yaml +4 -4
- package/bmad-core/workflows/greenfield-service.yaml +2 -2
- package/bmad-core/workflows/greenfield-ui.yaml +3 -3
- package/dist/agents/analyst.txt +1 -0
- package/dist/agents/bmad-master.txt +1 -0
- package/dist/agents/bmad-orchestrator.txt +1 -0
- package/dist/agents/dev.txt +1 -0
- package/dist/teams/team-all.txt +17 -15
- package/dist/teams/team-fullstack.txt +16 -15
- package/dist/teams/team-ide-minimal.txt +2 -0
- package/dist/teams/team-no-ui.txt +5 -4
- package/docs/expansion-packs.md +3 -83
- package/docs/user-guide.md +26 -0
- package/implement-fork-friendly-ci.sh +229 -0
- package/package.json +4 -1
- package/release_notes.md +17 -2
- package/test.md +1 -0
- package/tools/installer/bin/bmad.js +36 -1
- package/tools/installer/config/install.config.yaml +41 -0
- package/tools/installer/lib/ide-setup.js +268 -0
- package/tools/installer/lib/installer.js +6 -1
- package/tools/installer/package.json +1 -1
- package/tools/setup-hooks.sh +37 -0
|
@@ -902,6 +902,7 @@ npx bmad-method install
|
|
|
902
902
|
- **Cline**: VS Code extension with AI features
|
|
903
903
|
- **Roo Code**: Web-based IDE with agent support
|
|
904
904
|
- **GitHub Copilot**: VS Code extension with AI peer programming assistant
|
|
905
|
+
- **Auggie CLI (Augment Code)**: AI-powered development environment
|
|
905
906
|
|
|
906
907
|
**Note for VS Code Users**: BMAD-METHOD™ assumes when you mention "VS Code" that you're using it with an AI-powered extension like GitHub Copilot, Cline, or Roo. Standard VS Code without AI capabilities cannot run BMad agents. The installer includes built-in support for Cline and Roo.
|
|
907
908
|
|
|
@@ -9252,7 +9253,7 @@ workflow:
|
|
|
9252
9253
|
- Dev Agent (New Chat): Address remaining items
|
|
9253
9254
|
- Return to QA for final approval
|
|
9254
9255
|
|
|
9255
|
-
- repeat_development_cycle
|
|
9256
|
+
- step: repeat_development_cycle
|
|
9256
9257
|
action: continue_for_all_stories
|
|
9257
9258
|
notes: |
|
|
9258
9259
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -9269,7 +9270,7 @@ workflow:
|
|
|
9269
9270
|
- Validate epic was completed correctly
|
|
9270
9271
|
- Document learnings and improvements
|
|
9271
9272
|
|
|
9272
|
-
- workflow_end
|
|
9273
|
+
- step: workflow_end
|
|
9273
9274
|
action: project_complete
|
|
9274
9275
|
notes: |
|
|
9275
9276
|
All stories implemented and reviewed!
|
|
@@ -9499,7 +9500,7 @@ workflow:
|
|
|
9499
9500
|
- Dev Agent (New Chat): Address remaining items
|
|
9500
9501
|
- Return to QA for final approval
|
|
9501
9502
|
|
|
9502
|
-
- repeat_development_cycle
|
|
9503
|
+
- step: repeat_development_cycle
|
|
9503
9504
|
action: continue_for_all_stories
|
|
9504
9505
|
notes: |
|
|
9505
9506
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -9516,7 +9517,7 @@ workflow:
|
|
|
9516
9517
|
- Validate epic was completed correctly
|
|
9517
9518
|
- Document learnings and improvements
|
|
9518
9519
|
|
|
9519
|
-
- workflow_end
|
|
9520
|
+
- step: workflow_end
|
|
9520
9521
|
action: project_complete
|
|
9521
9522
|
notes: |
|
|
9522
9523
|
All stories implemented and reviewed!
|
|
@@ -9697,7 +9698,7 @@ workflow:
|
|
|
9697
9698
|
- Dev Agent (New Chat): Address remaining items
|
|
9698
9699
|
- Return to QA for final approval
|
|
9699
9700
|
|
|
9700
|
-
- repeat_development_cycle
|
|
9701
|
+
- step: repeat_development_cycle
|
|
9701
9702
|
action: continue_for_all_stories
|
|
9702
9703
|
notes: |
|
|
9703
9704
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -9714,7 +9715,7 @@ workflow:
|
|
|
9714
9715
|
- Validate epic was completed correctly
|
|
9715
9716
|
- Document learnings and improvements
|
|
9716
9717
|
|
|
9717
|
-
- workflow_end
|
|
9718
|
+
- step: workflow_end
|
|
9718
9719
|
action: project_complete
|
|
9719
9720
|
notes: |
|
|
9720
9721
|
All stories implemented and reviewed!
|
|
@@ -9850,12 +9851,12 @@ workflow:
|
|
|
9850
9851
|
condition: po_checklist_issues
|
|
9851
9852
|
notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder."
|
|
9852
9853
|
|
|
9853
|
-
- project_setup_guidance
|
|
9854
|
+
- step: project_setup_guidance
|
|
9854
9855
|
action: guide_project_structure
|
|
9855
9856
|
condition: user_has_generated_ui
|
|
9856
9857
|
notes: "If user generated UI with v0/Lovable: For polyrepo setup, place downloaded project in separate frontend repo alongside backend repo. For monorepo, place in apps/web or packages/frontend directory. Review architecture document for specific guidance."
|
|
9857
9858
|
|
|
9858
|
-
- development_order_guidance
|
|
9859
|
+
- step: development_order_guidance
|
|
9859
9860
|
action: guide_development_sequence
|
|
9860
9861
|
notes: "Based on PRD stories: If stories are frontend-heavy, start with frontend project/directory first. If backend-heavy or API-first, start with backend. For tightly coupled features, follow story sequence in monorepo setup. Reference sharded PRD epics for development order."
|
|
9861
9862
|
|
|
@@ -9923,7 +9924,7 @@ workflow:
|
|
|
9923
9924
|
- Dev Agent (New Chat): Address remaining items
|
|
9924
9925
|
- Return to QA for final approval
|
|
9925
9926
|
|
|
9926
|
-
- repeat_development_cycle
|
|
9927
|
+
- step: repeat_development_cycle
|
|
9927
9928
|
action: continue_for_all_stories
|
|
9928
9929
|
notes: |
|
|
9929
9930
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -9940,7 +9941,7 @@ workflow:
|
|
|
9940
9941
|
- Validate epic was completed correctly
|
|
9941
9942
|
- Document learnings and improvements
|
|
9942
9943
|
|
|
9943
|
-
- workflow_end
|
|
9944
|
+
- step: workflow_end
|
|
9944
9945
|
action: project_complete
|
|
9945
9946
|
notes: |
|
|
9946
9947
|
All stories implemented and reviewed!
|
|
@@ -10143,7 +10144,7 @@ workflow:
|
|
|
10143
10144
|
- Dev Agent (New Chat): Address remaining items
|
|
10144
10145
|
- Return to QA for final approval
|
|
10145
10146
|
|
|
10146
|
-
- repeat_development_cycle
|
|
10147
|
+
- step: repeat_development_cycle
|
|
10147
10148
|
action: continue_for_all_stories
|
|
10148
10149
|
notes: |
|
|
10149
10150
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -10160,7 +10161,7 @@ workflow:
|
|
|
10160
10161
|
- Validate epic was completed correctly
|
|
10161
10162
|
- Document learnings and improvements
|
|
10162
10163
|
|
|
10163
|
-
- workflow_end
|
|
10164
|
+
- step: workflow_end
|
|
10164
10165
|
action: project_complete
|
|
10165
10166
|
notes: |
|
|
10166
10167
|
All stories implemented and reviewed!
|
|
@@ -10303,7 +10304,7 @@ workflow:
|
|
|
10303
10304
|
condition: po_checklist_issues
|
|
10304
10305
|
notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder."
|
|
10305
10306
|
|
|
10306
|
-
- project_setup_guidance
|
|
10307
|
+
- step: project_setup_guidance
|
|
10307
10308
|
action: guide_project_structure
|
|
10308
10309
|
condition: user_has_generated_ui
|
|
10309
10310
|
notes: "If user generated UI with v0/Lovable: For polyrepo setup, place downloaded project in separate frontend repo. For monorepo, place in apps/web or frontend/ directory. Review architecture document for specific guidance."
|
|
@@ -10372,7 +10373,7 @@ workflow:
|
|
|
10372
10373
|
- Dev Agent (New Chat): Address remaining items
|
|
10373
10374
|
- Return to QA for final approval
|
|
10374
10375
|
|
|
10375
|
-
- repeat_development_cycle
|
|
10376
|
+
- step: repeat_development_cycle
|
|
10376
10377
|
action: continue_for_all_stories
|
|
10377
10378
|
notes: |
|
|
10378
10379
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -10389,7 +10390,7 @@ workflow:
|
|
|
10389
10390
|
- Validate epic was completed correctly
|
|
10390
10391
|
- Document learnings and improvements
|
|
10391
10392
|
|
|
10392
|
-
- workflow_end
|
|
10393
|
+
- step: workflow_end
|
|
10393
10394
|
action: project_complete
|
|
10394
10395
|
notes: |
|
|
10395
10396
|
All stories implemented and reviewed!
|
|
@@ -309,6 +309,7 @@ persona:
|
|
|
309
309
|
focus: Executing story tasks with precision, updating Dev Agent Record sections only, maintaining minimal context overhead
|
|
310
310
|
core_principles:
|
|
311
311
|
- CRITICAL: Story has ALL info you will need aside from what you loaded during the startup commands. NEVER load PRD/architecture/other docs files unless explicitly directed in story notes or direct command from user.
|
|
312
|
+
- CRITICAL: ALWAYS check current folder structure before starting your story tasks, don't create new working directory if it already exists. Create new one when you're sure it's a brand new project.
|
|
312
313
|
- CRITICAL: ONLY update story file Dev Agent Record sections (checkboxes/Debug Log/Completion Notes/Change Log)
|
|
313
314
|
- CRITICAL: FOLLOW THE develop-story command when the user tells you to implement the story
|
|
314
315
|
- Numbered Options - Always use numbered lists when presenting choices to the user
|
|
@@ -821,6 +822,7 @@ npx bmad-method install
|
|
|
821
822
|
- **Cline**: VS Code extension with AI features
|
|
822
823
|
- **Roo Code**: Web-based IDE with agent support
|
|
823
824
|
- **GitHub Copilot**: VS Code extension with AI peer programming assistant
|
|
825
|
+
- **Auggie CLI (Augment Code)**: AI-powered development environment
|
|
824
826
|
|
|
825
827
|
**Note for VS Code Users**: BMAD-METHOD™ assumes when you mention "VS Code" that you're using it with an AI-powered extension like GitHub Copilot, Cline, or Roo. Standard VS Code without AI capabilities cannot run BMad agents. The installer includes built-in support for Cline and Roo.
|
|
826
828
|
|
|
@@ -848,6 +848,7 @@ npx bmad-method install
|
|
|
848
848
|
- **Cline**: VS Code extension with AI features
|
|
849
849
|
- **Roo Code**: Web-based IDE with agent support
|
|
850
850
|
- **GitHub Copilot**: VS Code extension with AI peer programming assistant
|
|
851
|
+
- **Auggie CLI (Augment Code)**: AI-powered development environment
|
|
851
852
|
|
|
852
853
|
**Note for VS Code Users**: BMAD-METHOD™ assumes when you mention "VS Code" that you're using it with an AI-powered extension like GitHub Copilot, Cline, or Roo. Standard VS Code without AI capabilities cannot run BMad agents. The installer includes built-in support for Cline and Roo.
|
|
853
854
|
|
|
@@ -8743,7 +8744,7 @@ workflow:
|
|
|
8743
8744
|
- Dev Agent (New Chat): Address remaining items
|
|
8744
8745
|
- Return to QA for final approval
|
|
8745
8746
|
|
|
8746
|
-
- repeat_development_cycle
|
|
8747
|
+
- step: repeat_development_cycle
|
|
8747
8748
|
action: continue_for_all_stories
|
|
8748
8749
|
notes: |
|
|
8749
8750
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -8760,7 +8761,7 @@ workflow:
|
|
|
8760
8761
|
- Validate epic was completed correctly
|
|
8761
8762
|
- Document learnings and improvements
|
|
8762
8763
|
|
|
8763
|
-
- workflow_end
|
|
8764
|
+
- step: workflow_end
|
|
8764
8765
|
action: project_complete
|
|
8765
8766
|
notes: |
|
|
8766
8767
|
All stories implemented and reviewed!
|
|
@@ -8945,7 +8946,7 @@ workflow:
|
|
|
8945
8946
|
- Dev Agent (New Chat): Address remaining items
|
|
8946
8947
|
- Return to QA for final approval
|
|
8947
8948
|
|
|
8948
|
-
- repeat_development_cycle
|
|
8949
|
+
- step: repeat_development_cycle
|
|
8949
8950
|
action: continue_for_all_stories
|
|
8950
8951
|
notes: |
|
|
8951
8952
|
Repeat story cycle (SM → Dev → QA) for all epic stories
|
|
@@ -8962,7 +8963,7 @@ workflow:
|
|
|
8962
8963
|
- Validate epic was completed correctly
|
|
8963
8964
|
- Document learnings and improvements
|
|
8964
8965
|
|
|
8965
|
-
- workflow_end
|
|
8966
|
+
- step: workflow_end
|
|
8966
8967
|
action: project_complete
|
|
8967
8968
|
notes: |
|
|
8968
8969
|
All stories implemented and reviewed!
|
package/docs/expansion-packs.md
CHANGED
|
@@ -18,7 +18,7 @@ Each expansion pack provides deep, specialized knowledge without bloating the co
|
|
|
18
18
|
|
|
19
19
|
Anyone can create and share expansion packs, fostering a ecosystem of AI-powered solutions across all industries and interests.
|
|
20
20
|
|
|
21
|
-
## Technical Expansion Packs
|
|
21
|
+
## Technical Expansion Packs (Examples of possible expansions to come)
|
|
22
22
|
|
|
23
23
|
### Game Development Pack
|
|
24
24
|
|
|
@@ -191,90 +191,10 @@ Research acceleration tools:
|
|
|
191
191
|
|
|
192
192
|
## Creating Your Own Expansion Pack
|
|
193
193
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
What expertise are you capturing? What problems will it solve?
|
|
197
|
-
|
|
198
|
-
### Step 2: Design Your Agents
|
|
199
|
-
|
|
200
|
-
Each agent should have:
|
|
201
|
-
|
|
202
|
-
- Clear expertise area
|
|
203
|
-
- Specific personality traits
|
|
204
|
-
- Defined capabilities
|
|
205
|
-
- Knowledge boundaries
|
|
206
|
-
|
|
207
|
-
### Step 3: Create Tasks
|
|
208
|
-
|
|
209
|
-
Tasks should be:
|
|
210
|
-
|
|
211
|
-
- Step-by-step procedures
|
|
212
|
-
- Reusable across scenarios
|
|
213
|
-
- Clear and actionable
|
|
214
|
-
- Domain-specific
|
|
215
|
-
|
|
216
|
-
### Step 4: Build Templates
|
|
217
|
-
|
|
218
|
-
Templates need:
|
|
219
|
-
|
|
220
|
-
- Structured output format
|
|
221
|
-
- Embedded LLM instructions
|
|
222
|
-
- Placeholders for customization
|
|
223
|
-
- Professional formatting
|
|
224
|
-
|
|
225
|
-
### Step 5: Test & Iterate
|
|
226
|
-
|
|
227
|
-
- Use with real scenarios
|
|
228
|
-
- Gather user feedback
|
|
229
|
-
- Refine agent responses
|
|
230
|
-
- Improve task clarity
|
|
231
|
-
|
|
232
|
-
### Step 6: Package & Share
|
|
233
|
-
|
|
234
|
-
- Create clear documentation
|
|
235
|
-
- Include usage examples
|
|
236
|
-
- Add to expansion-packs directory
|
|
237
|
-
- Share with community
|
|
238
|
-
|
|
239
|
-
## The Future of Expansion Packs
|
|
240
|
-
|
|
241
|
-
### Marketplace Potential
|
|
242
|
-
|
|
243
|
-
Imagine a future where:
|
|
244
|
-
|
|
245
|
-
- Professional expansion packs are sold
|
|
246
|
-
- Certified packs for regulated industries
|
|
247
|
-
- Community ratings and reviews
|
|
248
|
-
- Automatic updates and improvements
|
|
249
|
-
|
|
250
|
-
### AI Agent Ecosystems
|
|
251
|
-
|
|
252
|
-
Expansion packs could enable:
|
|
253
|
-
|
|
254
|
-
- Cross-pack agent collaboration
|
|
255
|
-
- Industry-standard agent protocols
|
|
256
|
-
- Interoperable AI workflows
|
|
257
|
-
- Universal agent languages
|
|
258
|
-
|
|
259
|
-
### Democratizing Expertise
|
|
260
|
-
|
|
261
|
-
Every expansion pack:
|
|
262
|
-
|
|
263
|
-
- Makes expert knowledge accessible
|
|
264
|
-
- Reduces barriers to entry
|
|
265
|
-
- Enables solo entrepreneurs
|
|
266
|
-
- Empowers small teams
|
|
267
|
-
|
|
268
|
-
## Getting Started
|
|
269
|
-
|
|
270
|
-
1. **Browse existing packs**: Check `expansion-packs/` directory
|
|
271
|
-
2. **Install what you need**: Use the installer's expansion pack option
|
|
272
|
-
3. **Create your own**: Use the expansion-creator pack
|
|
273
|
-
4. **Share with others**: Submit PRs with new packs
|
|
274
|
-
5. **Build the future**: Help shape AI-assisted work
|
|
194
|
+
The next major release will include a new agent and expansion pack builder and a new expansion format.
|
|
275
195
|
|
|
276
196
|
## Remember
|
|
277
197
|
|
|
278
|
-
The BMad Method is more than a
|
|
198
|
+
The BMad Method is more than a Software Development Agile Framework! Every expansion pack makes specialized knowledge and workflows more accessible to everyone.
|
|
279
199
|
|
|
280
200
|
**What expertise will you share with the world?**
|
package/docs/user-guide.md
CHANGED
|
@@ -187,6 +187,32 @@ If you want to do the planning on the web with Claude (Sonnet 4 or Opus), Gemini
|
|
|
187
187
|
npx bmad-method install
|
|
188
188
|
```
|
|
189
189
|
|
|
190
|
+
### Codex (CLI & Web)
|
|
191
|
+
|
|
192
|
+
BMAD integrates with OpenAI Codex via `AGENTS.md` and committed core agent files.
|
|
193
|
+
|
|
194
|
+
- Two installation modes:
|
|
195
|
+
- Codex (local only): keeps `.bmad-core/` ignored for local dev.
|
|
196
|
+
- `npx bmad-method install -f -i codex -d .`
|
|
197
|
+
- Codex Web Enabled: ensures `.bmad-core/` is tracked so you can commit it for Codex Web.
|
|
198
|
+
- `npx bmad-method install -f -i codex-web -d .`
|
|
199
|
+
|
|
200
|
+
- What gets generated:
|
|
201
|
+
- `AGENTS.md` at the project root with a BMAD section containing
|
|
202
|
+
- How-to-use with Codex (CLI & Web)
|
|
203
|
+
- Agent Directory (Title, ID, When To Use)
|
|
204
|
+
- Detailed per‑agent sections with source path, when-to-use, activation phrasing, and YAML
|
|
205
|
+
- Tasks with quick usage notes
|
|
206
|
+
- If a `package.json` exists, helpful scripts are added:
|
|
207
|
+
- `bmad:refresh`, `bmad:list`, `bmad:validate`
|
|
208
|
+
|
|
209
|
+
- Using Codex:
|
|
210
|
+
- CLI: run `codex` in the project root and prompt naturally, e.g., “As dev, implement …”.
|
|
211
|
+
- Web: commit `.bmad-core/` and `AGENTS.md`, then open the repo in Codex and prompt the same way.
|
|
212
|
+
|
|
213
|
+
- Refresh after changes:
|
|
214
|
+
- Re-run the appropriate install mode (`codex` or `codex-web`) to update the BMAD block in `AGENTS.md`.
|
|
215
|
+
|
|
190
216
|
## Special Agents
|
|
191
217
|
|
|
192
218
|
There are two BMad agents — in the future they'll be consolidated into a single BMad-Master.
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Fork-Friendly CI/CD Implementation Script
|
|
4
|
+
# Usage: ./implement-fork-friendly-ci.sh
|
|
5
|
+
#
|
|
6
|
+
# This script automates the implementation of fork-friendly CI/CD
|
|
7
|
+
# by adding fork detection conditions to all GitHub Actions workflows
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
echo "🚀 Implementing Fork-Friendly CI/CD..."
|
|
12
|
+
|
|
13
|
+
# Colors for output
|
|
14
|
+
RED='\033[0;31m'
|
|
15
|
+
GREEN='\033[0;32m'
|
|
16
|
+
YELLOW='\033[1;33m'
|
|
17
|
+
NC='\033[0m' # No Color
|
|
18
|
+
|
|
19
|
+
# 1. Check if .github/workflows directory exists
|
|
20
|
+
if [ ! -d ".github/workflows" ]; then
|
|
21
|
+
echo -e "${RED}✗${NC} No .github/workflows directory found"
|
|
22
|
+
echo "This script must be run from the repository root"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# 2. Backup existing workflows
|
|
27
|
+
echo "📦 Backing up workflows..."
|
|
28
|
+
backup_dir=".github/workflows.backup.$(date +%Y%m%d_%H%M%S)"
|
|
29
|
+
cp -r .github/workflows "$backup_dir"
|
|
30
|
+
echo -e "${GREEN}✓${NC} Workflows backed up to $backup_dir"
|
|
31
|
+
|
|
32
|
+
# 3. Count workflow files and jobs
|
|
33
|
+
WORKFLOW_COUNT=$(ls -1 .github/workflows/*.yml .github/workflows/*.yaml 2>/dev/null | wc -l)
|
|
34
|
+
echo "📊 Found ${WORKFLOW_COUNT} workflow files"
|
|
35
|
+
|
|
36
|
+
# 4. Process each workflow file
|
|
37
|
+
UPDATED_FILES=0
|
|
38
|
+
MANUAL_REVIEW_NEEDED=0
|
|
39
|
+
|
|
40
|
+
for file in .github/workflows/*.yml .github/workflows/*.yaml; do
|
|
41
|
+
if [ -f "$file" ]; then
|
|
42
|
+
filename=$(basename "$file")
|
|
43
|
+
echo -n "Processing ${filename}... "
|
|
44
|
+
|
|
45
|
+
# Create temporary file
|
|
46
|
+
temp_file="${file}.tmp"
|
|
47
|
+
|
|
48
|
+
# Track if file needs manual review
|
|
49
|
+
needs_review=0
|
|
50
|
+
|
|
51
|
+
# Process the file with awk
|
|
52
|
+
awk '
|
|
53
|
+
BEGIN {
|
|
54
|
+
in_jobs = 0
|
|
55
|
+
job_count = 0
|
|
56
|
+
modified = 0
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/^jobs:/ {
|
|
60
|
+
in_jobs = 1
|
|
61
|
+
print
|
|
62
|
+
next
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
# Match job definitions (2 spaces + name + colon)
|
|
66
|
+
in_jobs && /^ [a-z][a-z0-9_-]*:/ {
|
|
67
|
+
job_name = $0
|
|
68
|
+
print job_name
|
|
69
|
+
job_count++
|
|
70
|
+
|
|
71
|
+
# Look ahead for existing conditions
|
|
72
|
+
getline next_line
|
|
73
|
+
|
|
74
|
+
# Check if next line is already an if condition
|
|
75
|
+
if (next_line ~ /^ if:/) {
|
|
76
|
+
# Job already has condition - combine with fork detection
|
|
77
|
+
existing_condition = next_line
|
|
78
|
+
sub(/^ if: /, "", existing_condition)
|
|
79
|
+
|
|
80
|
+
# Check if fork condition already exists
|
|
81
|
+
if (existing_condition !~ /github\.event\.repository\.fork/) {
|
|
82
|
+
print " # Fork-friendly CI: Combined with existing condition"
|
|
83
|
+
print " if: (" existing_condition ") && (github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == '\''true'\'')"
|
|
84
|
+
modified++
|
|
85
|
+
} else {
|
|
86
|
+
# Already has fork detection
|
|
87
|
+
print next_line
|
|
88
|
+
}
|
|
89
|
+
} else if (next_line ~ /^ runs-on:/) {
|
|
90
|
+
# No condition exists, add before runs-on
|
|
91
|
+
print " if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == '\''true'\''"
|
|
92
|
+
print next_line
|
|
93
|
+
modified++
|
|
94
|
+
} else {
|
|
95
|
+
# Some other configuration, preserve as-is
|
|
96
|
+
print next_line
|
|
97
|
+
}
|
|
98
|
+
next
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Reset when leaving jobs section
|
|
102
|
+
/^[a-z]/ && in_jobs {
|
|
103
|
+
in_jobs = 0
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
# Print all other lines
|
|
107
|
+
{
|
|
108
|
+
if (!in_jobs) print
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
END {
|
|
112
|
+
if (modified > 0) {
|
|
113
|
+
exit 0 # Success - file was modified
|
|
114
|
+
} else {
|
|
115
|
+
exit 1 # No modifications needed
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
' "$file" > "$temp_file"
|
|
119
|
+
|
|
120
|
+
# Check if modifications were made
|
|
121
|
+
if [ $? -eq 0 ]; then
|
|
122
|
+
mv "$temp_file" "$file"
|
|
123
|
+
echo -e "${GREEN}✓${NC} Updated"
|
|
124
|
+
((UPDATED_FILES++))
|
|
125
|
+
else
|
|
126
|
+
rm -f "$temp_file"
|
|
127
|
+
echo -e "${YELLOW}○${NC} No changes needed"
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
# Check for complex conditions that might need manual review
|
|
131
|
+
if grep -q "needs:" "$file" || grep -q "strategy:" "$file"; then
|
|
132
|
+
echo " ⚠️ Complex workflow detected - manual review recommended"
|
|
133
|
+
((MANUAL_REVIEW_NEEDED++))
|
|
134
|
+
fi
|
|
135
|
+
fi
|
|
136
|
+
done
|
|
137
|
+
|
|
138
|
+
echo -e "${GREEN}✓${NC} Updated ${UPDATED_FILES} workflow files"
|
|
139
|
+
|
|
140
|
+
# 5. Create Fork Guide if it doesn't exist
|
|
141
|
+
if [ ! -f ".github/FORK_GUIDE.md" ]; then
|
|
142
|
+
echo "📝 Creating Fork Guide documentation..."
|
|
143
|
+
cat > .github/FORK_GUIDE.md << 'EOF'
|
|
144
|
+
# Fork Guide - CI/CD Configuration
|
|
145
|
+
|
|
146
|
+
## CI/CD in Forks
|
|
147
|
+
|
|
148
|
+
By default, CI/CD workflows are **disabled in forks** to conserve GitHub Actions resources.
|
|
149
|
+
|
|
150
|
+
### Enabling CI/CD in Your Fork
|
|
151
|
+
|
|
152
|
+
If you need to run CI/CD workflows in your fork:
|
|
153
|
+
|
|
154
|
+
1. Navigate to **Settings** → **Secrets and variables** → **Actions** → **Variables**
|
|
155
|
+
2. Click **New repository variable**
|
|
156
|
+
3. Create variable:
|
|
157
|
+
- **Name**: `ENABLE_CI_IN_FORK`
|
|
158
|
+
- **Value**: `true`
|
|
159
|
+
4. Click **Add variable**
|
|
160
|
+
|
|
161
|
+
### Disabling CI/CD Again
|
|
162
|
+
|
|
163
|
+
Either:
|
|
164
|
+
- Delete the `ENABLE_CI_IN_FORK` variable, or
|
|
165
|
+
- Set its value to `false`
|
|
166
|
+
|
|
167
|
+
### Alternative Testing Options
|
|
168
|
+
|
|
169
|
+
- **Local testing**: Run tests locally before pushing
|
|
170
|
+
- **Pull Request CI**: Workflows automatically run when you open a PR
|
|
171
|
+
- **GitHub Codespaces**: Full development environment
|
|
172
|
+
EOF
|
|
173
|
+
echo -e "${GREEN}✓${NC} Fork Guide created"
|
|
174
|
+
else
|
|
175
|
+
echo "ℹ️ Fork Guide already exists"
|
|
176
|
+
fi
|
|
177
|
+
|
|
178
|
+
# 6. Validate YAML files (if yamllint is available)
|
|
179
|
+
if command -v yamllint &> /dev/null; then
|
|
180
|
+
echo "🔍 Validating YAML syntax..."
|
|
181
|
+
VALIDATION_ERRORS=0
|
|
182
|
+
for file in .github/workflows/*.yml .github/workflows/*.yaml; do
|
|
183
|
+
if [ -f "$file" ]; then
|
|
184
|
+
filename=$(basename "$file")
|
|
185
|
+
if yamllint -d relaxed "$file" &>/dev/null; then
|
|
186
|
+
echo -e " ${GREEN}✓${NC} ${filename}"
|
|
187
|
+
else
|
|
188
|
+
echo -e " ${RED}✗${NC} ${filename} - YAML validation failed"
|
|
189
|
+
((VALIDATION_ERRORS++))
|
|
190
|
+
fi
|
|
191
|
+
fi
|
|
192
|
+
done
|
|
193
|
+
|
|
194
|
+
if [ $VALIDATION_ERRORS -gt 0 ]; then
|
|
195
|
+
echo -e "${YELLOW}⚠${NC} ${VALIDATION_ERRORS} files have YAML errors"
|
|
196
|
+
fi
|
|
197
|
+
else
|
|
198
|
+
echo "ℹ️ yamllint not found - skipping YAML validation"
|
|
199
|
+
echo " Install with: pip install yamllint"
|
|
200
|
+
fi
|
|
201
|
+
|
|
202
|
+
# 7. Summary
|
|
203
|
+
echo ""
|
|
204
|
+
echo "═══════════════════════════════════════"
|
|
205
|
+
echo " Fork-Friendly CI/CD Summary"
|
|
206
|
+
echo "═══════════════════════════════════════"
|
|
207
|
+
echo " 📁 Files updated: ${UPDATED_FILES}"
|
|
208
|
+
echo " 📊 Total workflows: ${WORKFLOW_COUNT}"
|
|
209
|
+
echo " 📝 Fork Guide: .github/FORK_GUIDE.md"
|
|
210
|
+
if [ $MANUAL_REVIEW_NEEDED -gt 0 ]; then
|
|
211
|
+
echo " ⚠️ Files needing review: ${MANUAL_REVIEW_NEEDED}"
|
|
212
|
+
fi
|
|
213
|
+
echo ""
|
|
214
|
+
echo "Next steps:"
|
|
215
|
+
echo "1. Review the changes: git diff"
|
|
216
|
+
echo "2. Test workflows locally (if possible)"
|
|
217
|
+
echo "3. Commit changes: git commit -m 'feat: implement fork-friendly CI/CD'"
|
|
218
|
+
echo "4. Push and create PR"
|
|
219
|
+
echo ""
|
|
220
|
+
echo "Remember to update README.md with fork information!"
|
|
221
|
+
echo "═══════════════════════════════════════"
|
|
222
|
+
|
|
223
|
+
# Exit with appropriate code
|
|
224
|
+
if [ $UPDATED_FILES -gt 0 ]; then
|
|
225
|
+
exit 0
|
|
226
|
+
else
|
|
227
|
+
echo "No files were updated - workflows may already be fork-friendly"
|
|
228
|
+
exit 1
|
|
229
|
+
fi
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "bmad-method",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.43.0",
|
|
5
5
|
"description": "Breakthrough Method of Agile AI-driven Development",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"agile",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"build": "node tools/cli.js build",
|
|
28
28
|
"build:agents": "node tools/cli.js build --agents-only",
|
|
29
29
|
"build:teams": "node tools/cli.js build --teams-only",
|
|
30
|
+
"fix": "npm run format && npm run lint:fix",
|
|
30
31
|
"flatten": "node tools/flattener/main.js",
|
|
31
32
|
"format": "prettier --write \"**/*.{js,cjs,mjs,json,md,yaml}\"",
|
|
32
33
|
"format:check": "prettier --check \"**/*.{js,cjs,mjs,json,md,yaml}\"",
|
|
@@ -34,12 +35,14 @@
|
|
|
34
35
|
"lint": "eslint . --ext .js,.cjs,.mjs,.yaml --max-warnings=0",
|
|
35
36
|
"lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix",
|
|
36
37
|
"list:agents": "node tools/cli.js list:agents",
|
|
38
|
+
"pre-release": "npm run validate && npm run format:check && npm run lint",
|
|
37
39
|
"prepare": "husky",
|
|
38
40
|
"preview:release": "node tools/preview-release-notes.js",
|
|
39
41
|
"release:major": "gh workflow run \"Manual Release\" -f version_bump=major",
|
|
40
42
|
"release:minor": "gh workflow run \"Manual Release\" -f version_bump=minor",
|
|
41
43
|
"release:patch": "gh workflow run \"Manual Release\" -f version_bump=patch",
|
|
42
44
|
"release:watch": "gh run watch",
|
|
45
|
+
"setup:hooks": "chmod +x tools/setup-hooks.sh && ./tools/setup-hooks.sh",
|
|
43
46
|
"validate": "node tools/cli.js validate",
|
|
44
47
|
"version:all": "node tools/bump-all-versions.js",
|
|
45
48
|
"version:all:major": "node tools/bump-all-versions.js major",
|
package/release_notes.md
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
## 🚀 What's New in v4.
|
|
1
|
+
## 🚀 What's New in v4.43.0
|
|
2
|
+
|
|
3
|
+
### ✨ New Features
|
|
4
|
+
- feat: implement fork-friendly CI/CD with opt-in mechanism (#476)
|
|
5
|
+
- feat(installer): add Codex CLI + Codex Web modes, generate AGENTS.md, inject npm scripts, and docs (#529)
|
|
6
|
+
- feat: add PR validation workflow and contribution checks
|
|
7
|
+
- feat: Add Auggie CLI (Augment Code) Integration (#520)
|
|
2
8
|
|
|
3
9
|
### 🐛 Bug Fixes
|
|
4
10
|
- fix: update installer version display to show 4.39.0
|
|
@@ -6,13 +12,22 @@
|
|
|
6
12
|
- fix: previous merge set wrong default install location
|
|
7
13
|
- fix: documentation and trademark updates
|
|
8
14
|
- fix: remove incorrect else branch causing flatten command regression (#452)
|
|
15
|
+
- fix: correct dependency path format in bmad-master agent (#495)
|
|
16
|
+
- fix: Codex options missing from the IDE selection menu (#535)
|
|
9
17
|
|
|
10
18
|
### 📦 Other Changes
|
|
11
19
|
- patch: move script to tools folder
|
|
20
|
+
- typo in README.md (#515)
|
|
21
|
+
- Update dev.md (#491)
|
|
22
|
+
- test: trigger PR validation (#533)
|
|
23
|
+
- docs: remove misplaced Codex section from README
|
|
24
|
+
- Expansion pack doc correction
|
|
12
25
|
|
|
13
26
|
### 🔧 Maintenance
|
|
14
27
|
- chore: bump to 4.39.1 to fix installer version display
|
|
15
28
|
- chore: update project dependencies and development tooling (#508)
|
|
29
|
+
- chore: bump version to 4.42.0 for release
|
|
30
|
+
- chore: sync version to 4.42.1 after release
|
|
16
31
|
|
|
17
32
|
|
|
18
33
|
## 📦 Installation
|
|
@@ -21,4 +36,4 @@
|
|
|
21
36
|
npx bmad-method install
|
|
22
37
|
```
|
|
23
38
|
|
|
24
|
-
**Full Changelog**: https://github.com/bmadcode/BMAD-METHOD/compare/v4.39.0...v4.
|
|
39
|
+
**Full Changelog**: https://github.com/bmadcode/BMAD-METHOD/compare/v4.39.0...v4.43.0
|
package/test.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Test
|