diff --git a/777775/_bmad-output/bmb-creations/custom.yaml b/777775/_bmad-output/bmb-creations/custom.yaml new file mode 100644 index 00000000..17c94389 --- /dev/null +++ b/777775/_bmad-output/bmb-creations/custom.yaml @@ -0,0 +1,3 @@ +code: my-custom-bmad +name: "Brianmadison-Custom-BMad: Sample Stand Alone Custom Agents and Workflows" +default_selected: true diff --git a/src/core/agents/bmad-master.agent.yaml b/src/core/agents/bmad-master.agent.yaml index ae89108e..a7338d49 100644 --- a/src/core/agents/bmad-master.agent.yaml +++ b/src/core/agents/bmad-master.agent.yaml @@ -12,16 +12,14 @@ agent: role: "Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator" identity: "Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations." communication_style: "Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability." - principles: + principles: | - "Load resources at runtime never pre-load, and always present numbered lists for choices." - # Agent-specific critical actions critical_actions: - "Load into memory {project-root}/_bmad/core/config.yaml and set variable project_name, output_folder, user_name, communication_language" - "Remember the users name is {user_name}" - "ALWAYS communicate in {communication_language}" - # Agent menu items menu: - trigger: "list-tasks" action: "list all tasks from {project-root}/_bmad/_config/task-manifest.csv" @@ -34,5 +32,3 @@ agent: - trigger: "party-mode" exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" description: "Group chat with all agents" - - prompts: [] diff --git a/src/core/module.yaml b/src/core/module.yaml index 2ae67f3d..0c0f43c0 100644 --- a/src/core/module.yaml +++ b/src/core/module.yaml @@ -16,7 +16,7 @@ communication_language: document_output_language: prompt: "Preferred document output language?" - default: "{communication_language}" + default: "English" result: "{value}" output_folder: diff --git a/src/modules/bmm/module.yaml b/src/modules/bmm/module.yaml index 5c6f3f96..0f143b44 100644 --- a/src/modules/bmm/module.yaml +++ b/src/modules/bmm/module.yaml @@ -35,17 +35,17 @@ planning_artifacts: # Phase 1-3 artifacts default: "{output_folder}/project-planning-artifacts" result: "{project-root}/{value}" -implementation_artifacts: # Phase 4 artifacts - prompt: "Where should implementation artifacts be stored?\n - Such as: (sprint status, individual story files and reviews, retrospectives, Quick Flow output)" +implementation_artifacts: # Phase 4 artifacts and quick-dev flow output + prompt: "Where should implementation artifacts be stored?\n(sprint status, individual story files and reviews, retrospectives, Quick Flow output)" default: "{output_folder}/implementation-artifacts" result: "{project-root}/{value}" -project_knowledge: # Artifacts from research, document-project output, other long lived accurate kn - prompt: "Where should non-ephemeral project knowledge be stored (docs, research, references)?" +project_knowledge: # Artifacts from research, document-project output, other long lived accurate knowledge + prompt: "Where should non-ephemeral project knowledge be searched for and stored\n(docs, research, references)?" default: "docs" result: "{project-root}/{value}" # tea_use_mcp_enhancements: -# prompt: "Enable Test Architect Playwright MCP capabilities (healing, exploratory, verification)?\nYou have to setup your MCPs yourself; refer to test-architecture.md for hints." +# prompt: "Test Architect Playwright MCP capabilities (healing, exploratory, verification) are optionally available.\nYou will have to setup your MCPs yourself; refer to test-architecture.md for hints.\nWould you like to enable MCP enhancements in Test Architect?" # default: false # result: "{value}" diff --git a/tools/cli/installers/lib/core/config-collector.js b/tools/cli/installers/lib/core/config-collector.js index bdcea5d3..f1f633b1 100644 --- a/tools/cli/installers/lib/core/config-collector.js +++ b/tools/cli/installers/lib/core/config-collector.js @@ -563,6 +563,9 @@ class ConfigCollector { // Get friendly module name from config or use uppercase module name const moduleDisplayName = moduleConfig.header || `${moduleName.toUpperCase()} Module`; + // Add blank line for better readability + console.log(); + // Display the module name in color first console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName)); diff --git a/tools/cli/installers/lib/ide/_base-ide.js b/tools/cli/installers/lib/ide/_base-ide.js index 2d0ea38d..b53eb977 100644 --- a/tools/cli/installers/lib/ide/_base-ide.js +++ b/tools/cli/installers/lib/ide/_base-ide.js @@ -34,7 +34,7 @@ class BaseIdeSetup { * @returns {string} The activation header text */ async getAgentCommandHeader() { - const headerPath = path.join(getSourcePath(), 'src', 'utility', 'agent-components', 'agent-command-header.md'); + const headerPath = getSourcePath('utility', 'agent-components', 'agent-command-header.md'); return await fs.readFile(headerPath, 'utf8'); } diff --git a/tools/cli/installers/lib/ide/roo.js b/tools/cli/installers/lib/ide/roo.js index 4f0f2f1b..26370100 100644 --- a/tools/cli/installers/lib/ide/roo.js +++ b/tools/cli/installers/lib/ide/roo.js @@ -45,12 +45,22 @@ class RooSetup extends BaseIdeSetup { continue; } - // Read the actual agent file from _bmad for metadata extraction (installed agents are .md files) - const agentPath = path.join(bmadDir, artifact.module, 'agents', `${artifact.name}.md`); - const content = await this.readFile(agentPath); + // artifact.sourcePath contains the full path to the agent file + if (!artifact.sourcePath) { + console.error(`Error: Missing sourcePath for artifact ${artifact.name} from module ${artifact.module}`); + console.error(`Artifact object:`, artifact); + throw new Error(`Missing sourcePath for agent: ${artifact.name}`); + } + + const content = await this.readFile(artifact.sourcePath); // Create command file that references the actual _bmad agent - await this.createCommandFile({ module: artifact.module, name: artifact.name, path: agentPath }, content, commandPath, projectDir); + await this.createCommandFile( + { module: artifact.module, name: artifact.name, path: artifact.sourcePath }, + content, + commandPath, + projectDir, + ); addedCount++; console.log(chalk.green(` ✓ Added command: ${commandName}`));