Merge branch 'main' into main

This commit is contained in:
sjennings 2025-09-01 16:25:46 -05:00 committed by GitHub
commit 4c0b3ce318
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 164 additions and 121 deletions

View File

@ -60,6 +60,7 @@ npm run build
### Pull Request CI ### Pull Request CI
When you open a Pull Request to the main repository: When you open a Pull Request to the main repository:
- All CI/CD workflows automatically run - All CI/CD workflows automatically run
- You get full validation of your changes - You get full validation of your changes
- No configuration needed - No configuration needed
@ -67,6 +68,7 @@ When you open a Pull Request to the main repository:
### GitHub Codespaces ### GitHub Codespaces
Use GitHub Codespaces for a full development environment: Use GitHub Codespaces for a full development environment:
- All tools pre-configured - All tools pre-configured
- Same environment as CI/CD - Same environment as CI/CD
- No local setup required - No local setup required

55
.github/workflows/pr-validation.yaml vendored Normal file
View File

@ -0,0 +1,55 @@
name: PR Validation
on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
jobs:
validate:
runs-on: ubuntu-latest
if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- name: Install dependencies
run: npm ci
- name: Run validation
run: npm run validate
- name: Check formatting
run: npm run format:check
- name: Run linter
run: npm run lint
- name: Run tests (if available)
run: npm test --if-present
- name: Comment on PR if checks fail
if: failure()
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `❌ **PR Validation Failed**
This PR has validation errors that must be fixed before merging:
- Run \`npm run validate\` to check agent/team configs
- Run \`npm run format:check\` to check formatting (fix with \`npm run format\`)
- Run \`npm run lint\` to check linting issues (fix with \`npm run lint:fix\`)
Please fix these issues and push the changes.`
})

View File

@ -17,6 +17,47 @@ Also note, we use the discussions feature in GitHub to have a community to discu
By participating in this project, you agree to abide by our Code of Conduct. Please read it before participating. By participating in this project, you agree to abide by our Code of Conduct. Please read it before participating.
## Before Submitting a PR
**IMPORTANT**: All PRs must pass validation checks before they can be merged.
### Required Checks
Before submitting your PR, run these commands locally:
```bash
# Run all validation checks
npm run pre-release
# Or run them individually:
npm run validate # Validate agent/team configs
npm run format:check # Check code formatting
npm run lint # Check for linting issues
```
### Fixing Issues
If any checks fail, use these commands to fix them:
```bash
# Fix all issues automatically
npm run fix
# Or fix individually:
npm run format # Fix formatting issues
npm run lint:fix # Fix linting issues
```
### Setup Git Hooks (Optional but Recommended)
To catch issues before committing:
```bash
# Run this once after cloning
chmod +x tools/setup-hooks.sh
./tools/setup-hooks.sh
```
## How to Contribute ## How to Contribute
### Reporting Bugs ### Reporting Bugs

View File

@ -243,19 +243,3 @@ BMAD™ and BMAD-METHOD™ are trademarks of BMad Code, LLC. All rights reserved
[![Contributors](https://contrib.rocks/image?repo=bmadcode/bmad-method)](https://github.com/bmadcode/bmad-method/graphs/contributors) [![Contributors](https://contrib.rocks/image?repo=bmadcode/bmad-method)](https://github.com/bmadcode/bmad-method/graphs/contributors)
<sub>Built with ❤️ for the AI-assisted development community</sub> <sub>Built with ❤️ for the AI-assisted development community</sub>
#### Codex (CLI & Web)
- Two modes are supported:
- Codex (local only): `npx bmad-method install -f -i codex -d .` — keeps `.bmad-core/` ignored via `.gitignore` for local development.
- Codex Web Enabled: `npx bmad-method install -f -i codex-web -d .` — ensures `.bmad-core/` is tracked (not ignored) so it can be committed for Codex Web.
- For Codex Web, commit both `.bmad-core/` and `AGENTS.md` to the repository.
- Codex CLI: run `codex` at your project root; reference agents naturally, e.g., “As dev, implement …”.
- Codex Web: open your repo in Codex and prompt the same way — it reads `AGENTS.md` automatically.
- Refresh after changes: rerun the appropriate install command (`codex` or `codex-web`) to regenerate the BMAD section inside `AGENTS.md`.
If a `package.json` exists in your project, the installer will add helpful scripts:
- `bmad:refresh``bmad-method install -f -i codex`
- `bmad:list``bmad-method list:agents`
- `bmad:validate``bmad-method validate`

View File

@ -160,7 +160,7 @@ workflow:
- Dev Agent (New Chat): Address remaining items - Dev Agent (New Chat): Address remaining items
- Return to QA for final approval - Return to QA for final approval
- repeat_development_cycle: - step: repeat_development_cycle
action: continue_for_all_stories action: continue_for_all_stories
notes: | notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories Repeat story cycle (SM → Dev → QA) for all epic stories
@ -177,7 +177,7 @@ workflow:
- Validate epic was completed correctly - Validate epic was completed correctly
- Document learnings and improvements - Document learnings and improvements
- workflow_end: - step: workflow_end
action: project_complete action: project_complete
notes: | notes: |
All stories implemented and reviewed! All stories implemented and reviewed!

View File

@ -106,7 +106,7 @@ workflow:
- Dev Agent (New Chat): Address remaining items - Dev Agent (New Chat): Address remaining items
- Return to QA for final approval - Return to QA for final approval
- repeat_development_cycle: - step: repeat_development_cycle
action: continue_for_all_stories action: continue_for_all_stories
notes: | notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories Repeat story cycle (SM → Dev → QA) for all epic stories
@ -123,7 +123,7 @@ workflow:
- Validate epic was completed correctly - Validate epic was completed correctly
- Document learnings and improvements - Document learnings and improvements
- workflow_end: - step: workflow_end
action: project_complete action: project_complete
notes: | notes: |
All stories implemented and reviewed! All stories implemented and reviewed!

View File

@ -113,7 +113,7 @@ workflow:
- Dev Agent (New Chat): Address remaining items - Dev Agent (New Chat): Address remaining items
- Return to QA for final approval - Return to QA for final approval
- repeat_development_cycle: - step: repeat_development_cycle
action: continue_for_all_stories action: continue_for_all_stories
notes: | notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories Repeat story cycle (SM → Dev → QA) for all epic stories
@ -130,7 +130,7 @@ workflow:
- Validate epic was completed correctly - Validate epic was completed correctly
- Document learnings and improvements - Document learnings and improvements
- workflow_end: - step: workflow_end
action: project_complete action: project_complete
notes: | notes: |
All stories implemented and reviewed! All stories implemented and reviewed!

View File

@ -65,12 +65,12 @@ workflow:
condition: po_checklist_issues condition: po_checklist_issues
notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder." notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder."
- project_setup_guidance: - step: project_setup_guidance
action: guide_project_structure action: guide_project_structure
condition: user_has_generated_ui condition: user_has_generated_ui
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." 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."
- development_order_guidance: - step: development_order_guidance
action: guide_development_sequence action: guide_development_sequence
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." 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."
@ -138,7 +138,7 @@ workflow:
- Dev Agent (New Chat): Address remaining items - Dev Agent (New Chat): Address remaining items
- Return to QA for final approval - Return to QA for final approval
- repeat_development_cycle: - step: repeat_development_cycle
action: continue_for_all_stories action: continue_for_all_stories
notes: | notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories Repeat story cycle (SM → Dev → QA) for all epic stories
@ -155,7 +155,7 @@ workflow:
- Validate epic was completed correctly - Validate epic was completed correctly
- Document learnings and improvements - Document learnings and improvements
- workflow_end: - step: workflow_end
action: project_complete action: project_complete
notes: | notes: |
All stories implemented and reviewed! All stories implemented and reviewed!

View File

@ -114,7 +114,7 @@ workflow:
- Dev Agent (New Chat): Address remaining items - Dev Agent (New Chat): Address remaining items
- Return to QA for final approval - Return to QA for final approval
- repeat_development_cycle: - step: repeat_development_cycle
action: continue_for_all_stories action: continue_for_all_stories
notes: | notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories Repeat story cycle (SM → Dev → QA) for all epic stories
@ -131,7 +131,7 @@ workflow:
- Validate epic was completed correctly - Validate epic was completed correctly
- Document learnings and improvements - Document learnings and improvements
- workflow_end: - step: workflow_end
action: project_complete action: project_complete
notes: | notes: |
All stories implemented and reviewed! All stories implemented and reviewed!

View File

@ -64,7 +64,7 @@ workflow:
condition: po_checklist_issues condition: po_checklist_issues
notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder." notes: "If PO finds issues, return to relevant agent to fix and re-export updated documents to docs/ folder."
- project_setup_guidance: - step: project_setup_guidance
action: guide_project_structure action: guide_project_structure
condition: user_has_generated_ui condition: user_has_generated_ui
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." 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."
@ -133,7 +133,7 @@ workflow:
- Dev Agent (New Chat): Address remaining items - Dev Agent (New Chat): Address remaining items
- Return to QA for final approval - Return to QA for final approval
- repeat_development_cycle: - step: repeat_development_cycle
action: continue_for_all_stories action: continue_for_all_stories
notes: | notes: |
Repeat story cycle (SM → Dev → QA) for all epic stories Repeat story cycle (SM → Dev → QA) for all epic stories
@ -150,7 +150,7 @@ workflow:
- Validate epic was completed correctly - Validate epic was completed correctly
- Document learnings and improvements - Document learnings and improvements
- workflow_end: - step: workflow_end
action: project_complete action: project_complete
notes: | notes: |
All stories implemented and reviewed! All stories implemented and reviewed!

View File

@ -18,7 +18,7 @@ Each expansion pack provides deep, specialized knowledge without bloating the co
Anyone can create and share expansion packs, fostering a ecosystem of AI-powered solutions across all industries and interests. Anyone can create and share expansion packs, fostering a ecosystem of AI-powered solutions across all industries and interests.
## Technical Expansion Packs ## Technical Expansion Packs (Examples of possible expansions to come)
### Game Development Pack ### Game Development Pack
@ -191,90 +191,10 @@ Research acceleration tools:
## Creating Your Own Expansion Pack ## Creating Your Own Expansion Pack
### Step 1: Define Your Domain The next major release will include a new agent and expansion pack builder and a new expansion format.
What expertise are you capturing? What problems will it solve?
### Step 2: Design Your Agents
Each agent should have:
- Clear expertise area
- Specific personality traits
- Defined capabilities
- Knowledge boundaries
### Step 3: Create Tasks
Tasks should be:
- Step-by-step procedures
- Reusable across scenarios
- Clear and actionable
- Domain-specific
### Step 4: Build Templates
Templates need:
- Structured output format
- Embedded LLM instructions
- Placeholders for customization
- Professional formatting
### Step 5: Test & Iterate
- Use with real scenarios
- Gather user feedback
- Refine agent responses
- Improve task clarity
### Step 6: Package & Share
- Create clear documentation
- Include usage examples
- Add to expansion-packs directory
- Share with community
## The Future of Expansion Packs
### Marketplace Potential
Imagine a future where:
- Professional expansion packs are sold
- Certified packs for regulated industries
- Community ratings and reviews
- Automatic updates and improvements
### AI Agent Ecosystems
Expansion packs could enable:
- Cross-pack agent collaboration
- Industry-standard agent protocols
- Interoperable AI workflows
- Universal agent languages
### Democratizing Expertise
Every expansion pack:
- Makes expert knowledge accessible
- Reduces barriers to entry
- Enables solo entrepreneurs
- Empowers small teams
## Getting Started
1. **Browse existing packs**: Check `expansion-packs/` directory
2. **Install what you need**: Use the installer's expansion pack option
3. **Create your own**: Use the expansion-creator pack
4. **Share with others**: Submit PRs with new packs
5. **Build the future**: Help shape AI-assisted work
## Remember ## Remember
The BMad Method is more than a development framework - it's a platform for structuring human expertise into AI-accessible formats. Every expansion pack you create makes specialized knowledge more accessible to everyone. The BMad Method is more than a Software Development Agile Framework! Every expansion pack makes specialized knowledge and workflows more accessible to everyone.
**What expertise will you share with the world?** **What expertise will you share with the world?**

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "4.40.1", "version": "4.42.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bmad-method", "name": "bmad-method",
"version": "4.40.1", "version": "4.42.1",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@kayvan/markdown-tree-parser": "^1.6.1", "@kayvan/markdown-tree-parser": "^1.6.1",

View File

@ -1,7 +1,7 @@
{ {
"$schema": "https://json.schemastore.org/package.json", "$schema": "https://json.schemastore.org/package.json",
"name": "bmad-method", "name": "bmad-method",
"version": "4.40.1", "version": "4.42.1",
"description": "Breakthrough Method of Agile AI-driven Development", "description": "Breakthrough Method of Agile AI-driven Development",
"keywords": [ "keywords": [
"agile", "agile",
@ -27,6 +27,7 @@
"build": "node tools/cli.js build", "build": "node tools/cli.js build",
"build:agents": "node tools/cli.js build --agents-only", "build:agents": "node tools/cli.js build --agents-only",
"build:teams": "node tools/cli.js build --teams-only", "build:teams": "node tools/cli.js build --teams-only",
"fix": "npm run format && npm run lint:fix",
"flatten": "node tools/flattener/main.js", "flatten": "node tools/flattener/main.js",
"format": "prettier --write \"**/*.{js,cjs,mjs,json,md,yaml}\"", "format": "prettier --write \"**/*.{js,cjs,mjs,json,md,yaml}\"",
"format:check": "prettier --check \"**/*.{js,cjs,mjs,json,md,yaml}\"", "format:check": "prettier --check \"**/*.{js,cjs,mjs,json,md,yaml}\"",
@ -34,12 +35,14 @@
"lint": "eslint . --ext .js,.cjs,.mjs,.yaml --max-warnings=0", "lint": "eslint . --ext .js,.cjs,.mjs,.yaml --max-warnings=0",
"lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix", "lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix",
"list:agents": "node tools/cli.js list:agents", "list:agents": "node tools/cli.js list:agents",
"pre-release": "npm run validate && npm run format:check && npm run lint",
"prepare": "husky", "prepare": "husky",
"preview:release": "node tools/preview-release-notes.js", "preview:release": "node tools/preview-release-notes.js",
"release:major": "gh workflow run \"Manual Release\" -f version_bump=major", "release:major": "gh workflow run \"Manual Release\" -f version_bump=major",
"release:minor": "gh workflow run \"Manual Release\" -f version_bump=minor", "release:minor": "gh workflow run \"Manual Release\" -f version_bump=minor",
"release:patch": "gh workflow run \"Manual Release\" -f version_bump=patch", "release:patch": "gh workflow run \"Manual Release\" -f version_bump=patch",
"release:watch": "gh run watch", "release:watch": "gh run watch",
"setup:hooks": "chmod +x tools/setup-hooks.sh && ./tools/setup-hooks.sh",
"validate": "node tools/cli.js validate", "validate": "node tools/cli.js validate",
"version:all": "node tools/bump-all-versions.js", "version:all": "node tools/bump-all-versions.js",
"version:all:major": "node tools/bump-all-versions.js major", "version:all:major": "node tools/bump-all-versions.js major",

1
test.md Normal file
View File

@ -0,0 +1 @@
# Test

View File

@ -1,12 +1,12 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "4.37.0-beta.4", "version": "4.42.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bmad-method", "name": "bmad-method",
"version": "4.37.0-beta.4", "version": "4.42.1",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"chalk": "^4.1.2", "chalk": "^4.1.2",

View File

@ -1,6 +1,6 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "4.39.1", "version": "4.42.1",
"description": "BMad Method installer - AI-powered Agile development framework", "description": "BMad Method installer - AI-powered Agile development framework",
"keywords": [ "keywords": [
"bmad", "bmad",

37
tools/setup-hooks.sh Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
# Setup script for git hooks
echo "Setting up git hooks..."
# Install husky
npm install --save-dev husky
# Initialize husky
npx husky init
# Create pre-commit hook
cat > .husky/pre-commit << 'EOF'
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
# Run validation checks before commit
echo "Running pre-commit checks..."
npm run validate
npm run format:check
npm run lint
if [ $? -ne 0 ]; then
echo "❌ Pre-commit checks failed. Please fix the issues before committing."
echo " Run 'npm run format' to fix formatting issues"
echo " Run 'npm run lint:fix' to fix some lint issues"
exit 1
fi
echo "✅ Pre-commit checks passed!"
EOF
chmod +x .husky/pre-commit
echo "✅ Git hooks setup complete!"
echo "Now commits will be validated before they're created."