Compare commits

...

10 Commits

Author SHA1 Message Date
Nikolas Hor ae9f91ca0f
Merge 6848e3ae54 into 521f1e15ca 2026-03-13 01:31:41 -03:00
Brian Madison 521f1e15ca chore(release): v6.1.0 [skip ci]
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 23:02:58 -05:00
Brian Madison 2e88b846f7 fix(publish): use GitHub App token to bypass branch protection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 22:53:54 -05:00
Brian Madison 88e576d10b docs: draft changelog for v6.1.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 22:20:52 -05:00
Brian Madison 9cd6e3826d WDS enabled in installer 2026-03-12 21:46:50 -05:00
Brian Madison e073aee30b update gitignore 2026-03-12 19:35:50 -05:00
Alex Verkhovsky 8f1cb7fb70 chore(brainstorming): drop redundant workflow frontmatter 2026-03-12 17:43:24 -06:00
Alex Verkhovsky a48fd4aae8
refactor(skills): convert brainstorming to native skill (#1924)
* refactor(skills): convert brainstorming to native skill

* fix(installer): skip workflow metadata for native skills

* revert: restore workflow metadata handling

* refactor(skills): remove duplicate party-mode workflow metadata

* fix(agents): invoke native skills via skill refs
2026-03-12 16:49:35 -06:00
Alex Verkhovsky 75ec4aa504 ci(publish): restrict workflow to upstream repo only
Prevent publish job from running on forks by gating on
github.repository == 'bmad-code-org/BMAD-METHOD'.
2026-03-12 11:00:52 -06:00
Nikolas de Hor 6848e3ae54 fix: ensure --yes flag assigns defaults for fields without values
When skipPrompts is true, config fields without a default value
were silently skipped, leaving them undefined in the collected
config. This caused downstream code to prompt the user or fail
when encountering missing config values.

Now assigns empty string as fallback for fields without defaults
when --yes flag is active, ensuring fully non-interactive install.

Fixes #1803
2026-03-11 21:25:40 -03:00
27 changed files with 81 additions and 33 deletions

View File

@ -37,14 +37,22 @@ permissions:
jobs: jobs:
publish: publish:
if: github.event_name != 'workflow_dispatch' || github.ref == 'refs/heads/main' if: github.repository == 'bmad-code-org/BMAD-METHOD' && (github.event_name != 'workflow_dispatch' || github.ref == 'refs/heads/main')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Generate GitHub App token
id: app-token
if: github.event_name == 'workflow_dispatch' && inputs.channel == 'latest'
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.RELEASE_APP_ID }}
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v4 uses: actions/setup-node@v4

4
.gitignore vendored
View File

@ -20,6 +20,10 @@ build/*.txt
# Environment variables # Environment variables
.env .env
# Python
__pycache__/
.pytest_cache/
# System files # System files
.DS_Store .DS_Store
Thumbs.db Thumbs.db

View File

@ -1,5 +1,42 @@
# Changelog # Changelog
## [6.1.0] - 2026-03-12
### Highlights
* Whiteport Design Studio (WDS) module enabled in the installer
* Support @next installation channel (`npx bmad-method@next install`) — get the latest tip of main instead of waiting for the next stable published version
* Everything now installs as a skill — all workflows, agents, and tasks converted to markdown with SKILL.md entrypoints (not yet optimized skills, but unified format)
* An experimental preview of the new Quick Dev is available, which will become the main Phase 4 development tool
* Edge Case Hunter added as a parallel code review layer in Phase 4, improving code quality by exhaustively tracing branching paths and boundary conditions (#1791)
* Documentation now available in Chinese (zh-CN) with complete translation (#1822, #1795)
### 💥 Breaking Changes
* Convert entire BMAD method to skills-based architecture with unified skill manifests (#1834)
* Convert all core workflows from YAML+instructions to single workflow.md format
* Migrate all remaining platforms to native Agent Skills format (#1841)
* Remove legacy YAML/XML workflow engine plumbing (#1864)
### 🎁 Features
* Add Pi coding agent as supported platform (#1854)
* Add unified skill scanner decoupled from legacy collectors (#1859)
* Add continuous delivery workflows for npm publishing with trusted OIDC publishing (#1872)
### ♻️ Refactoring
* Update terminology from "commands" to "skills" across all documentation (#1850)
### 🐛 Bug Fixes
* Fix code review removing mandatory minimum issue count that caused infinite review loops (#1913)
* Fix silent loss of brainstorming ideas in PRD by adding reconciliation step (#1914)
* Reduce npm tarball from 533 to 348 files (91% size reduction, 6.2 MB → 555 KB) via .npmignore (#1900)
* Fix party-mode skill conversion review findings (#1919)
---
## [6.0.4] ## [6.0.4]
### 🎁 Features ### 🎁 Features

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "bmad-method", "name": "bmad-method",
"version": "6.0.4", "version": "6.1.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bmad-method", "name": "bmad-method",
"version": "6.0.4", "version": "6.1.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@clack/core": "^1.0.0", "@clack/core": "^1.0.0",

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": "6.0.4", "version": "6.1.0",
"description": "Breakthrough Method of Agile AI-driven Development", "description": "Breakthrough Method of Agile AI-driven Development",
"keywords": [ "keywords": [
"agile", "agile",

View File

@ -18,7 +18,7 @@ agent:
menu: menu:
- trigger: BP or fuzzy match on brainstorm-project - trigger: BP or fuzzy match on brainstorm-project
exec: "{project-root}/_bmad/core/workflows/brainstorming/workflow.md" exec: "skill:bmad-brainstorming"
data: "{project-root}/_bmad/bmm/data/project-context-template.md" data: "{project-root}/_bmad/bmm/data/project-context-template.md"
description: "[BP] Brainstorm Project: Expert Guided Facilitation through a single or multiple techniques with a final report" description: "[BP] Brainstorm Project: Expert Guided Facilitation through a single or multiple techniques with a final report"

View File

@ -10,7 +10,7 @@ bmm,anytime,Update Standards,US,,_bmad/bmm/agents/tech-writer/tech-writer.agent.
bmm,anytime,Mermaid Generate,MG,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Create a Mermaid diagram based on user description. Will suggest diagram types if not specified.",planning_artifacts,"mermaid diagram", bmm,anytime,Mermaid Generate,MG,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Create a Mermaid diagram based on user description. Will suggest diagram types if not specified.",planning_artifacts,"mermaid diagram",
bmm,anytime,Validate Document,VD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Review the specified document against documentation standards and best practices. Returns specific actionable improvement suggestions organized by priority.",planning_artifacts,"validation report", bmm,anytime,Validate Document,VD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Review the specified document against documentation standards and best practices. Returns specific actionable improvement suggestions organized by priority.",planning_artifacts,"validation report",
bmm,anytime,Explain Concept,EC,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Create clear technical explanations with examples and diagrams for complex concepts. Breaks down into digestible sections using task-oriented approach.",project_knowledge,"explanation", bmm,anytime,Explain Concept,EC,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,,"Create clear technical explanations with examples and diagrams for complex concepts. Breaks down into digestible sections using task-oriented approach.",project_knowledge,"explanation",
bmm,1-analysis,Brainstorm Project,BP,10,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,data=_bmad/bmm/data/project-context-template.md,"Expert Guided Facilitation through a single or multiple techniques",planning_artifacts,"brainstorming session", bmm,1-analysis,Brainstorm Project,BP,10,skill:bmad-brainstorming,bmad-brainstorming,false,analyst,data=_bmad/bmm/data/project-context-template.md,"Expert Guided Facilitation through a single or multiple techniques",planning_artifacts,"brainstorming session",
bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md,bmad-bmm-market-research,false,analyst,Create Mode,"Market analysis competitive landscape customer needs and trends","planning_artifacts|project-knowledge","research documents", bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md,bmad-bmm-market-research,false,analyst,Create Mode,"Market analysis competitive landscape customer needs and trends","planning_artifacts|project-knowledge","research documents",
bmm,1-analysis,Domain Research,DR,21,_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md,bmad-bmm-domain-research,false,analyst,Create Mode,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project_knowledge","research documents", bmm,1-analysis,Domain Research,DR,21,_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md,bmad-bmm-domain-research,false,analyst,Create Mode,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project_knowledge","research documents",
bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md,bmad-bmm-technical-research,false,analyst,Create Mode,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project_knowledge","research documents", bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md,bmad-bmm-technical-research,false,analyst,Create Mode,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project_knowledge","research documents",

1 module phase name code sequence workflow-file command required agent options description output-location outputs
10 bmm anytime Mermaid Generate MG _bmad/bmm/agents/tech-writer/tech-writer.agent.yaml false tech-writer Create a Mermaid diagram based on user description. Will suggest diagram types if not specified. planning_artifacts mermaid diagram
11 bmm anytime Validate Document VD _bmad/bmm/agents/tech-writer/tech-writer.agent.yaml false tech-writer Review the specified document against documentation standards and best practices. Returns specific actionable improvement suggestions organized by priority. planning_artifacts validation report
12 bmm anytime Explain Concept EC _bmad/bmm/agents/tech-writer/tech-writer.agent.yaml false tech-writer Create clear technical explanations with examples and diagrams for complex concepts. Breaks down into digestible sections using task-oriented approach. project_knowledge explanation
13 bmm 1-analysis Brainstorm Project BP 10 _bmad/core/workflows/brainstorming/workflow.md skill:bmad-brainstorming bmad-brainstorming false analyst data=_bmad/bmm/data/project-context-template.md Expert Guided Facilitation through a single or multiple techniques planning_artifacts brainstorming session
14 bmm 1-analysis Market Research MR 20 _bmad/bmm/workflows/1-analysis/research/workflow-market-research.md bmad-bmm-market-research false analyst Create Mode Market analysis competitive landscape customer needs and trends planning_artifacts|project-knowledge research documents
15 bmm 1-analysis Domain Research DR 21 _bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md bmad-bmm-domain-research false analyst Create Mode Industry domain deep dive subject matter expertise and terminology planning_artifacts|project_knowledge research documents
16 bmm 1-analysis Technical Research TR 22 _bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md bmad-bmm-technical-research false analyst Create Mode Technical feasibility architecture options and implementation approaches planning_artifacts|project_knowledge research documents

View File

@ -1,5 +1,5 @@
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
core,anytime,Brainstorming,BSP,,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,,"Generate diverse ideas through interactive techniques. Use early in ideation phase or when stuck generating ideas.",{output_folder}/brainstorming/brainstorming-session-{{date}}.md,, core,anytime,Brainstorming,BSP,,skill:bmad-brainstorming,bmad-brainstorming,false,analyst,,"Generate diverse ideas through interactive techniques. Use early in ideation phase or when stuck generating ideas.",{output_folder}/brainstorming/brainstorming-session-{{date}}.md,,
core,anytime,Party Mode,PM,,skill:bmad-party-mode,bmad-party-mode,false,party-mode facilitator,,"Orchestrate multi-agent discussions. Use when you need multiple agent perspectives or want agents to collaborate.",, core,anytime,Party Mode,PM,,skill:bmad-party-mode,bmad-party-mode,false,party-mode facilitator,,"Orchestrate multi-agent discussions. Use when you need multiple agent perspectives or want agents to collaborate.",,
core,anytime,bmad-help,BH,,skill:bmad-help,bmad-help,false,,,"Get unstuck by showing what workflow steps come next or answering BMad Method questions.",, core,anytime,bmad-help,BH,,skill:bmad-help,bmad-help,false,,,"Get unstuck by showing what workflow steps come next or answering BMad Method questions.",,
core,anytime,Index Docs,ID,,skill:bmad-index-docs,bmad-index-docs,false,,,"Create lightweight index for quick LLM scanning. Use when LLM needs to understand available docs without loading everything.",, core,anytime,Index Docs,ID,,skill:bmad-index-docs,bmad-index-docs,false,,,"Create lightweight index for quick LLM scanning. Use when LLM needs to understand available docs without loading everything.",,

Can't render this file because it has a wrong number of fields in line 2.

View File

@ -0,0 +1,6 @@
---
name: bmad-brainstorming
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods. Use when the user says help me brainstorm or help me ideate.'
---
Follow the instructions in [workflow.md](workflow.md).

View File

@ -0,0 +1 @@
type: skill

View File

@ -1,6 +1,4 @@
--- ---
name: brainstorming
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods. Use when the user says help me brainstorm or help me ideate.'
context_file: '' # Optional context file path for project-specific guidance context_file: '' # Optional context file path for project-specific guidance
--- ---
@ -42,9 +40,8 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
### Paths ### Paths
- `installed_path` = `{project-root}/_bmad/core/workflows/brainstorming` - `template_path` = `./template.md`
- `template_path` = `{installed_path}/template.md` - `brain_techniques_path` = `./brain-methods.csv`
- `brain_techniques_path` = `{installed_path}/brain-methods.csv`
- `brainstorming_session_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}-{{time}}.md` (evaluated once at workflow start) - `brainstorming_session_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}-{{time}}.md` (evaluated once at workflow start)
All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern. All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern.

View File

@ -1,6 +1,4 @@
--- ---
name: bmad-party-mode
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations. Use when user requests party mode.'
--- ---
# Party Mode Workflow # Party Mode Workflow

View File

@ -1,3 +0,0 @@
canonicalId: bmad-brainstorming
type: workflow
description: "Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods"

View File

@ -42,12 +42,12 @@ modules:
type: bmad-org type: bmad-org
npmPackage: bmad-method-test-architecture-enterprise npmPackage: bmad-method-test-architecture-enterprise
# whiteport-design-system: whiteport-design-studio:
# url: https://github.com/bmad-code-org/bmad-method-wds-expansion url: https://github.com/bmad-code-org/bmad-method-wds-expansion
# module-definition: src/module.yaml module-definition: src/module.yaml
# code: wds code: wds
# name: "Whiteport UX Design System" name: "Whiteport Design Studio (For UX Professionals)"
# description: "UX design framework with Figma integration" description: "Whiteport Design Studio (For UX Professionals)"
# defaultSelected: false defaultSelected: false
# type: community type: community
# npmPackage: bmad-method-wds-expansion npmPackage: bmad-method-wds-expansion

View File

@ -735,12 +735,13 @@ class ConfigCollector {
// Skip prompts mode: use all defaults without asking // Skip prompts mode: use all defaults without asking
if (this.skipPrompts) { if (this.skipPrompts) {
await prompts.log.info(`Using default configuration for ${moduleDisplayName}`); await prompts.log.info(`Using default configuration for ${moduleDisplayName}`);
// Use defaults for all questions // Use defaults for all questions; use empty string for fields without defaults
for (const question of questions) { for (const question of questions) {
const hasDefault = question.default !== undefined && question.default !== null && question.default !== ''; if (typeof question.default === 'function') {
if (hasDefault && typeof question.default !== 'function') { continue;
allAnswers[question.name] = question.default;
} }
const hasDefault = question.default !== undefined && question.default !== null && question.default !== '';
allAnswers[question.name] = hasDefault ? question.default : '';
} }
} else { } else {
if (!this._silentConfig) await prompts.log.step(`Configuring ${moduleDisplayName}`); if (!this._silentConfig) await prompts.log.step(`Configuring ${moduleDisplayName}`);

View File

@ -349,7 +349,6 @@ class BaseIdeSetup {
} else if (entry.isFile() && entry.name === 'workflow.md') { } else if (entry.isFile() && entry.name === 'workflow.md') {
// Read workflow.md frontmatter to get name and standalone property // Read workflow.md frontmatter to get name and standalone property
try { try {
const yaml = require('yaml');
const content = await fs.readFile(fullPath, 'utf8'); const content = await fs.readFile(fullPath, 'utf8');
const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/); const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
if (!frontmatterMatch) continue; if (!frontmatterMatch) continue;

View File

@ -157,7 +157,7 @@ function buildMenuXml(menuItems) {
} }
} }
xml += ` <item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md">[PM] Start Party Mode</item>\n`; xml += ` <item cmd="PM or fuzzy match on party-mode" exec="skill:bmad-party-mode">[PM] Start Party Mode</item>\n`;
xml += ` <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>\n`; xml += ` <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>\n`;
xml += ' </menu>\n'; xml += ' </menu>\n';