doc and text cleanup

This commit is contained in:
Brian Madison
2025-07-04 07:47:57 -05:00
parent be4fcd8668
commit f440d14565
77 changed files with 243 additions and 78705 deletions

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env node
/**
* BMAD Method CLI - Direct execution wrapper for npx
* BMad Method CLI - Direct execution wrapper for npx
* This file ensures proper execution when run via npx from GitHub
*/

View File

@@ -470,7 +470,7 @@ class WebBuilder {
}
}
} else {
// Use core BMAD version
// Use core BMad version
try {
const coreAgentPath = path.join(this.rootDir, "bmad-core", "agents", `${agentId}.md`);
const coreAgentContent = await fs.readFile(coreAgentPath, "utf8");

View File

@@ -10,7 +10,7 @@ const program = new Command();
program
.name('bmad-build')
.description('BMAD-METHOD build tool for creating web bundles')
.description('BMad-Method build tool for creating web bundles')
.version('4.0.0');
program
@@ -136,7 +136,7 @@ program
program
.command('upgrade')
.description('Upgrade a BMAD-METHOD V3 project to V4')
.description('Upgrade a BMad-Method V3 project to V4')
.option('-p, --project <path>', 'Path to V3 project (defaults to current directory)')
.option('--dry-run', 'Show what would be changed without making changes')
.option('--no-backup', 'Skip creating backup (not recommended)')

View File

@@ -1,58 +1,8 @@
# BMAD Method Installer
This directory contains the BMAD Method installer implementation.
## Structure
```text
installer/
├── bin/ # CLI entry points
│ └── bmad.js # Main CLI executable
├── lib/ # Core implementation
│ ├── installer.js # Main installation logic
│ ├── updater.js # Update management
│ ├── config-loader.js # YAML config parsing
│ ├── file-manager.js # File operations
│ ├── ide-setup.js # IDE-specific setup
│ └── prompts.js # Interactive CLI prompts
├── config/ # Configuration files
│ └── install.config.yaml # Installation profiles
├── templates/ # IDE template files
│ ├── cursor-rules.md # Cursor template
│ ├── claude-commands.md # Claude Code template
│ └── windsurf-rules.md # Windsurf template
└── package.json # NPM package configuration
```
## Installation Profiles
- **minimal**: IDE agents only (best for beginners)
- **core**: IDE + Web agents
- **teams**: Full team workflows
- **developer**: Everything including creation tools
# BMad Method Installer
## Usage
```bash
# Interactive installation
npx bmad-method install
# Direct profile installation
npx bmad-method install --profile=minimal
# Update existing installation
npx bmad-method update
```
## Development
```bash
# Install dependencies
npm install
# Run tests
npm test
# Lint code
npm run lint
```

View File

@@ -42,12 +42,12 @@ try {
program
.version(version)
.description('BMAD Method installer - Universal AI agent framework for any domain');
.description('BMad Method installer - Universal AI agent framework for any domain');
program
.command('install')
.description('Install BMAD Method agents and tools')
.option('-f, --full', 'Install complete BMAD Method')
.description('Install BMad Method agents and tools')
.option('-f, --full', 'Install complete BMad Method')
.option('-x, --expansion-only', 'Install only expansion packs (no bmad-core)')
.option('-d, --directory <path>', 'Installation directory')
.option('-i, --ide <ide...>', 'Configure for specific IDE(s) - can specify multiple (cursor, claude-code, windsurf, roo, cline, gemini, vs-code-copilot, other)')
@@ -83,7 +83,7 @@ program
program
.command('update')
.description('Update existing BMAD installation')
.description('Update existing BMad installation')
.option('--force', 'Force update, overwriting modified files')
.option('--dry-run', 'Show what would be updated without making changes')
.action(async () => {
@@ -124,7 +124,7 @@ program
async function promptInstallation() {
await initializeModules();
console.log(chalk.bold.blue(`\nWelcome to BMAD Method Installer v${version}\n`));
console.log(chalk.bold.blue(`\nWelcome to BMad Method Installer v${version}\n`));
const answers = {};
@@ -133,7 +133,7 @@ async function promptInstallation() {
{
type: 'input',
name: 'directory',
message: 'Enter the full path to your project directory where BMAD should be installed:',
message: 'Enter the full path to your project directory where BMad should be installed:',
validate: (input) => {
if (!input.trim()) {
return 'Please enter a valid project path';
@@ -162,7 +162,7 @@ async function promptInstallation() {
const coreConfig = yaml.load(await fs.readFile(coreConfigPath, 'utf8'));
const coreShortTitle = coreConfig['short-title'] || 'BMad Agile Core System';
// Add BMAD core option
// Add BMad core option
let bmadOptionText;
if (state.type === 'v4_existing') {
const currentVersion = state.manifest?.version || 'unknown';

View File

@@ -1,6 +1,6 @@
installation-options:
full:
name: Complete BMAD Core
name: Complete BMad Core
description: Copy the entire .bmad-core folder with all agents, templates, and tools
action: copy-folder
source: bmad-core
@@ -15,7 +15,7 @@ ide-configurations:
format: multi-file
command-suffix: .mdc
instructions: |
# To use BMAD agents in Cursor:
# To use BMad agents in Cursor:
# 1. Press Ctrl+L (Cmd+L on Mac) to open the chat
# 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
# 3. The agent will adopt that persona for the conversation
@@ -25,7 +25,7 @@ ide-configurations:
format: multi-file
command-suffix: .md
instructions: |
# To use BMAD agents in Claude Code:
# To use BMad agents in Claude Code:
# 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
# 2. Claude will switch to that agent's persona
windsurf:
@@ -34,7 +34,7 @@ ide-configurations:
format: multi-file
command-suffix: .md
instructions: |
# To use BMAD agents in Windsurf:
# To use BMad agents in Windsurf:
# 1. Type @agent-name (e.g., "@dev", "@pm")
# 2. Windsurf will adopt that agent's persona
roo:
@@ -42,7 +42,7 @@ ide-configurations:
format: custom-modes
file: .roomodes
instructions: |
# To use BMAD agents in Roo Code:
# To use BMad agents in Roo Code:
# 1. Open the mode selector (usually in the status bar)
# 2. Select any bmad-{agent} mode (e.g., "bmad-dev", "bmad-pm")
# 3. The AI will adopt that agent's full personality and capabilities
@@ -52,7 +52,7 @@ ide-configurations:
format: multi-file
command-suffix: .md
instructions: |
# To use BMAD agents in Cline:
# To use BMad agents in Cline:
# 1. Open the Cline chat panel in VS Code
# 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
# 3. The agent will adopt that persona for the conversation
@@ -62,7 +62,7 @@ ide-configurations:
rule-dir: .gemini/agents/
format: context-files
instructions: |
# To use BMAD agents with the Gemini CLI:
# To use BMad agents with the Gemini CLI:
# 1. The installer creates a .gemini/ directory in your project.
# 2. It also configures .gemini/settings.json to load all agent files.
# 3. Simply mention the agent in your prompt (e.g., "As @dev, ...").
@@ -73,7 +73,7 @@ ide-configurations:
format: multi-file
command-suffix: .md
instructions: |
# To use BMAD agents with VS Code Copilot:
# To use BMad agents with VS Code Copilot:
# 1. The installer creates a .github/chatmodes/ directory in your project
# 2. Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
# 3. The agent will adopt that persona for the conversation

View File

@@ -93,7 +93,7 @@ class ConfigLoader {
description: config['short-title'] || config.description || 'No description available',
fullDescription: config.description || config['short-title'] || 'No description available',
version: config.version || '1.0.0',
author: config.author || 'BMAD Team',
author: config.author || 'BMad Team',
packPath: packPath,
dependencies: config.dependencies?.agents || []
});
@@ -113,7 +113,7 @@ class ConfigLoader {
description: 'No description available',
fullDescription: 'No description available',
version: '1.0.0',
author: 'BMAD Team',
author: 'BMad Team',
packPath: packPath,
dependencies: []
});

View File

@@ -560,7 +560,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
}
console.log(chalk.green(`\n✓ VS Code Copilot setup complete!`));
console.log(chalk.dim(`You can now find the BMAD agents in the Chat view's mode selector.`));
console.log(chalk.dim(`You can now find the BMad agents in the Chat view's mode selector.`));
return true;
}
@@ -578,7 +578,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
try {
const existingContent = await fileManager.readFile(settingsPath);
existingSettings = JSON.parse(existingContent);
console.log(chalk.yellow("Found existing .vscode/settings.json. Merging BMAD settings..."));
console.log(chalk.yellow("Found existing .vscode/settings.json. Merging BMad settings..."));
} catch (error) {
console.warn(chalk.yellow("Could not parse existing settings.json. Creating new one."));
existingSettings = {};
@@ -588,7 +588,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
// Clear any previous output and add spacing to avoid conflicts with loaders
console.log('\n'.repeat(2));
console.log(chalk.blue("🔧 VS Code Copilot Agent Settings Configuration"));
console.log(chalk.dim("BMAD works best with specific VS Code settings for optimal agent experience."));
console.log(chalk.dim("BMad works best with specific VS Code settings for optimal agent experience."));
console.log(''); // Add extra spacing
const { configChoice } = await inquirer.prompt([
@@ -638,7 +638,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
"github.copilot.chat.agent.autoFix": true,
"chat.tools.autoApprove": false
};
console.log(chalk.green("✓ Using recommended BMAD defaults for VS Code Copilot settings"));
console.log(chalk.green("✓ Using recommended BMad defaults for VS Code Copilot settings"));
} else {
// Manual configuration
console.log(chalk.blue("\n📋 Let's configure each setting for your preferences:"));
@@ -696,7 +696,7 @@ tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'problems
}
bmadSettings = {
"chat.agent.enabled": true, // Always enabled - required for BMAD agents
"chat.agent.enabled": true, // Always enabled - required for BMad agents
"chat.agent.maxRequests": parseInt(manualSettings.maxRequests),
"github.copilot.chat.agent.runTasks": manualSettings.runTasks,
"chat.mcp.discovery.enabled": manualSettings.mcpDiscovery,

View File

@@ -220,7 +220,7 @@ class Installer {
});
if (files.length > 0) {
// Directory has other files, but no BMAD installation.
// Directory has other files, but no BMad installation.
// Treat as clean install but record that it isn't empty.
state.hasOtherFiles = true;
}
@@ -235,7 +235,7 @@ class Installer {
async performFreshInstall(config, installDir, spinner, options = {}) {
// Ensure modules are initialized
await initializeModules();
spinner.text = "Installing BMAD Method...";
spinner.text = "Installing BMad Method...";
let files = [];
@@ -396,7 +396,7 @@ class Installer {
const newVersion = await this.getCoreVersion();
const versionCompare = this.compareVersions(currentVersion, newVersion);
console.log(chalk.yellow("\n🔍 Found existing BMAD v4 installation"));
console.log(chalk.yellow("\n🔍 Found existing BMad v4 installation"));
console.log(` Directory: ${installDir}`);
console.log(` Current version: ${currentVersion}`);
console.log(` Available version: ${newVersion}`);
@@ -446,8 +446,8 @@ class Installer {
let choices = [];
if (versionCompare < 0) {
console.log(chalk.cyan("\n⬆ Upgrade available for BMAD core"));
choices.push({ name: `Upgrade BMAD core (v${currentVersion} → v${newVersion})`, value: "upgrade" });
console.log(chalk.cyan("\n⬆ Upgrade available for BMad core"));
choices.push({ name: `Upgrade BMad core (v${currentVersion} → v${newVersion})`, value: "upgrade" });
} else if (versionCompare === 0) {
if (hasIntegrityIssues) {
// Offer repair option when files are missing or modified
@@ -457,10 +457,10 @@ class Installer {
});
}
console.log(chalk.yellow("\n⚠ Same version already installed"));
choices.push({ name: `Force reinstall BMAD core (v${currentVersion} - reinstall)`, value: "reinstall" });
choices.push({ name: `Force reinstall BMad core (v${currentVersion} - reinstall)`, value: "reinstall" });
} else {
console.log(chalk.yellow("\n⬇ Installed version is newer than available"));
choices.push({ name: `Downgrade BMAD core (v${currentVersion} → v${newVersion})`, value: "reinstall" });
choices.push({ name: `Downgrade BMad core (v${currentVersion} → v${newVersion})`, value: "reinstall" });
}
choices.push(
@@ -535,7 +535,7 @@ class Installer {
spinner.stop();
console.log(
chalk.yellow("\n🔍 Found BMAD v3 installation (bmad-agent/ directory)")
chalk.yellow("\n🔍 Found BMad v3 installation (bmad-agent/ directory)")
);
console.log(` Directory: ${installDir}`);
@@ -768,7 +768,7 @@ class Installer {
}
async performReinstall(config, installDir, spinner) {
spinner.start("Preparing to reinstall BMAD Method...");
spinner.start("Preparing to reinstall BMad Method...");
// Remove existing .bmad-core
const bmadCorePath = path.join(installDir, ".bmad-core");
@@ -782,7 +782,7 @@ class Installer {
}
showSuccessMessage(config, installDir, options = {}) {
console.log(chalk.green("\n✓ BMAD Method installed successfully!\n"));
console.log(chalk.green("\n✓ BMad Method installed successfully!\n"));
const ides = config.ides || (config.ide ? [config.ide] : []);
if (ides.length > 0) {
@@ -790,7 +790,7 @@ class Installer {
const ideConfig = configLoader.getIdeConfiguration(ide);
if (ideConfig?.instructions) {
console.log(
chalk.bold(`To use BMAD agents in ${ideConfig.name}:`)
chalk.bold(`To use BMad agents in ${ideConfig.name}:`)
);
console.log(ideConfig.instructions);
}
@@ -879,7 +879,7 @@ class Installer {
};
return await this.install(config);
}
console.log(chalk.red("No BMAD installation found."));
console.log(chalk.red("No BMad installation found."));
}
async listAgents() {
@@ -887,7 +887,7 @@ class Installer {
await initializeModules();
const agents = await configLoader.getAvailableAgents();
console.log(chalk.bold("\nAvailable BMAD Agents:\n"));
console.log(chalk.bold("\nAvailable BMad Agents:\n"));
for (const agent of agents) {
console.log(chalk.cyan(` ${agent.id.padEnd(20)}`), agent.description);
@@ -903,7 +903,7 @@ class Installer {
await initializeModules();
const expansionPacks = await this.getAvailableExpansionPacks();
console.log(chalk.bold("\nAvailable BMAD Expansion Packs:\n"));
console.log(chalk.bold("\nAvailable BMad Expansion Packs:\n"));
if (expansionPacks.length === 0) {
console.log(chalk.yellow("No expansion packs found."));
@@ -932,7 +932,7 @@ class Installer {
if (!installDir) {
console.log(
chalk.yellow("No BMAD installation found in current directory tree")
chalk.yellow("No BMad installation found in current directory tree")
);
return;
}
@@ -944,7 +944,7 @@ class Installer {
return;
}
console.log(chalk.bold("\nBMAD Installation Status:\n"));
console.log(chalk.bold("\nBMad Installation Status:\n"));
console.log(` Directory: ${installDir}`);
console.log(` Version: ${manifest.version}`);
console.log(
@@ -1399,7 +1399,7 @@ class Installer {
await initializeModules();
try {
// Find the dist directory in the BMAD installation
// Find the dist directory in the BMad installation
const distDir = configLoader.getDistPath();
if (!(await fileManager.pathExists(distDir))) {

View File

@@ -1,7 +1,7 @@
{
"name": "bmad-method",
"version": "4.24.3",
"description": "BMAD Method installer - AI-powered Agile development framework",
"description": "BMad Method installer - AI-powered Agile development framework",
"main": "lib/installer.js",
"bin": {
"bmad": "./bin/bmad.js",
@@ -19,7 +19,7 @@
"installer",
"agents"
],
"author": "BMAD Team",
"author": "BMad Team",
"license": "MIT",
"dependencies": {
"chalk": "^5.4.1",

View File

@@ -1,7 +0,0 @@
# {{AGENT_NAME}} Agent
{{AGENT_CONTENT}}
---
This is a BMAD Method agent. For more information, visit: https://github.com/your-org/bmad-method

View File

@@ -1,22 +0,0 @@
# BMAD Method Agents for Cursor
This file contains all BMAD Method agent personas. To use an agent, type its name or alias in the Cursor chat.
## Available Agents
{{AGENT_LIST}}
---
{{AGENT_RULES}}
---
# Agent Switching
To switch between agents during a conversation:
1. Simply type the new agent name (e.g., "architect" or "dev")
2. The AI will adopt that agent's persona
For more information about BMAD Method, visit: https://github.com/your-org/bmad-method

View File

@@ -1,22 +0,0 @@
# BMAD Method Agent Commands
This file contains all BMAD Method agent commands for Windsurf. Use /agent-name to switch personas.
## Available Commands
{{COMMAND_LIST}}
---
{{AGENT_SECTIONS}}
---
# Usage Tips
- Type `/dev` to switch to Developer persona
- Type `/pm` to switch to Product Manager persona
- Type `/architect` to switch to Architect persona
- And so on for other agents...
For more information about BMAD Method, visit: https://github.com/your-org/bmad-method

View File

@@ -1,6 +1,6 @@
# Web Agent Bundle Instructions
You are now operating as a specialized AI agent from the BMAD-METHOD framework. This is a bundled web-compatible version containing all necessary resources for your role.
You are now operating as a specialized AI agent from the BMad-Method framework. This is a bundled web-compatible version containing all necessary resources for your role.
## Important Instructions
@@ -34,6 +34,6 @@ These references map directly to bundle sections:
3. **Execution Context**: You are operating in a web environment. All your capabilities and knowledge are contained within this bundle. Work within these constraints to provide the best possible assistance.
4. **Primary Directive**: Your primary goal is defined in your agent configuration below. Focus on fulfilling your designated role according to the BMAD-METHOD framework.
4. **Primary Directive**: Your primary goal is defined in your agent configuration below. Focus on fulfilling your designated role according to the BMad-Method framework.
---

View File

@@ -26,10 +26,10 @@ class V3ToV4Upgrader {
// 1. Welcome message
console.log(
chalk.bold("\nWelcome to BMAD-METHOD V3 to V4 Upgrade Tool\n")
chalk.bold("\nWelcome to BMad-Method V3 to V4 Upgrade Tool\n")
);
console.log(
"This tool will help you upgrade your BMAD-METHOD V3 project to V4.\n"
"This tool will help you upgrade your BMad-Method V3 project to V4.\n"
);
console.log(chalk.cyan("What this tool does:"));
console.log("- Creates a backup of your V3 files (.bmad-v3-backup/)");

View File

@@ -15,7 +15,7 @@ async function initializeModules() {
}
/**
* Simple version bumping script for BMAD-METHOD
* Simple version bumping script for BMad-Method
* Usage: node tools/version-bump.js [patch|minor|major]
*/

View File

@@ -16,7 +16,7 @@ async function initializeModules() {
}
/**
* YAML Formatter and Linter for BMAD-METHOD
* YAML Formatter and Linter for BMad-Method
* Formats and validates YAML files and YAML embedded in Markdown
*/