Compare commits
11 Commits
890cb6f3fd
...
6a2ba31f97
| Author | SHA1 | Date |
|---|---|---|
|
|
6a2ba31f97 | |
|
|
521f1e15ca | |
|
|
2e88b846f7 | |
|
|
88e576d10b | |
|
|
9cd6e3826d | |
|
|
e073aee30b | |
|
|
8f1cb7fb70 | |
|
|
a48fd4aae8 | |
|
|
75ec4aa504 | |
|
|
7b4875be79 | |
|
|
5bd1e8a12b |
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
37
CHANGELOG.md
37
CHANGELOG.md
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
|
@ -273,9 +273,17 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
||||||
<action>Review the current task/subtask from the story file - this is your authoritative implementation guide</action>
|
<action>Review the current task/subtask from the story file - this is your authoritative implementation guide</action>
|
||||||
<action>Plan implementation following red-green-refactor cycle</action>
|
<action>Plan implementation following red-green-refactor cycle</action>
|
||||||
|
|
||||||
<!-- RED PHASE -->
|
<!-- RED PHASE (ATDD-aware) -->
|
||||||
<action>Write FAILING tests first for the task/subtask functionality</action>
|
<check if="test files with test.fixme() or test.skip() exist for this story (check story Dev Notes for ATDD test file paths, or search project test directories for files referencing this story's acceptance criteria)">
|
||||||
<action>Confirm tests fail before implementation - this validates test correctness</action>
|
<action>Identify test files containing test.fixme() or test.skip() that map to the current task/subtask</action>
|
||||||
|
<action>Convert matching test.fixme()/test.skip() calls to regular test() calls to activate them</action>
|
||||||
|
<action>Run activated tests to confirm they FAIL due to missing implementation (RED phase verified)</action>
|
||||||
|
<action>If a test passes unexpectedly before implementation, investigate — it may not be validating real behavior</action>
|
||||||
|
</check>
|
||||||
|
<check if="no pre-existing test.fixme()/test.skip() tests found for this task">
|
||||||
|
<action>Write FAILING tests first for the task/subtask functionality</action>
|
||||||
|
<action>Confirm tests fail before implementation - this validates test correctness</action>
|
||||||
|
</check>
|
||||||
|
|
||||||
<!-- GREEN PHASE -->
|
<!-- GREEN PHASE -->
|
||||||
<action>Implement MINIMAL code to make tests pass</action>
|
<action>Implement MINIMAL code to make tests pass</action>
|
||||||
|
|
@ -386,6 +394,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
||||||
- Dev Agent Record contains implementation notes
|
- Dev Agent Record contains implementation notes
|
||||||
- Change Log includes summary of changes
|
- Change Log includes summary of changes
|
||||||
- Only permitted story sections were modified
|
- Only permitted story sections were modified
|
||||||
|
- No test.fixme() or test.skip() calls remain for completed tasks (all ATDD tests activated and passing)
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<!-- Mark story ready for review - sprint status conditional -->
|
<!-- Mark story ready for review - sprint status conditional -->
|
||||||
|
|
|
||||||
|
|
@ -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.
|
|
|
@ -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).
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
type: skill
|
||||||
|
|
@ -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.
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
canonicalId: bmad-brainstorming
|
|
||||||
type: workflow
|
|
||||||
description: "Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods"
|
|
||||||
|
|
@ -1846,7 +1846,7 @@ async function runTests() {
|
||||||
});
|
});
|
||||||
|
|
||||||
assert(result.success === true, 'Antigravity setup succeeds with overlapping skill names');
|
assert(result.success === true, 'Antigravity setup succeeds with overlapping skill names');
|
||||||
assert(result.detail === '2 skills, 2 agents', 'Installer detail reports total skills and total agents');
|
assert(result.detail === '2 agents', 'Installer detail reports agents separately from skills');
|
||||||
assert(result.handlerResult.results.skillDirectories === 2, 'Result exposes unique skill directory count');
|
assert(result.handlerResult.results.skillDirectories === 2, 'Result exposes unique skill directory count');
|
||||||
assert(result.handlerResult.results.agents === 2, 'Result retains generated agent write count');
|
assert(result.handlerResult.results.agents === 2, 'Result retains generated agent write count');
|
||||||
assert(result.handlerResult.results.workflows === 1, 'Result retains generated workflow count');
|
assert(result.handlerResult.results.workflows === 1, 'Result retains generated workflow count');
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -712,9 +712,10 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
||||||
async printSummary(results, targetDir, options = {}) {
|
async printSummary(results, targetDir, options = {}) {
|
||||||
if (options.silent) return;
|
if (options.silent) return;
|
||||||
const parts = [];
|
const parts = [];
|
||||||
const totalSkills =
|
const totalDirs =
|
||||||
results.skillDirectories || (results.workflows || 0) + (results.tasks || 0) + (results.tools || 0) + (results.skills || 0);
|
results.skillDirectories || (results.workflows || 0) + (results.tasks || 0) + (results.tools || 0) + (results.skills || 0);
|
||||||
if (totalSkills > 0) parts.push(`${totalSkills} skills`);
|
const skillCount = totalDirs - (results.agents || 0);
|
||||||
|
if (skillCount > 0) parts.push(`${skillCount} skills`);
|
||||||
if (results.agents > 0) parts.push(`${results.agents} agents`);
|
if (results.agents > 0) parts.push(`${results.agents} agents`);
|
||||||
await prompts.log.success(`${this.name} configured: ${parts.join(', ')} → ${targetDir}`);
|
await prompts.log.success(`${this.name} configured: ${parts.join(', ')} → ${targetDir}`);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -162,8 +162,9 @@ class IdeManager {
|
||||||
// Config-driven handlers return { success, results: { agents, workflows, tasks, tools } }
|
// Config-driven handlers return { success, results: { agents, workflows, tasks, tools } }
|
||||||
const r = handlerResult.results;
|
const r = handlerResult.results;
|
||||||
const parts = [];
|
const parts = [];
|
||||||
const totalSkills = r.skillDirectories || (r.workflows || 0) + (r.tasks || 0) + (r.tools || 0) + (r.skills || 0);
|
const totalDirs = r.skillDirectories || (r.workflows || 0) + (r.tasks || 0) + (r.tools || 0) + (r.skills || 0);
|
||||||
if (totalSkills > 0) parts.push(`${totalSkills} skills`);
|
const skillCount = totalDirs - (r.agents || 0);
|
||||||
|
if (skillCount > 0) parts.push(`${skillCount} skills`);
|
||||||
if (r.agents > 0) parts.push(`${r.agents} agents`);
|
if (r.agents > 0) parts.push(`${r.agents} agents`);
|
||||||
detail = parts.join(', ');
|
detail = parts.join(', ');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue