Major Enhancements:

- Installation path is now fully configurable, allowing users to specify custom installation directories during setup
  - Default installation location changed to .bmad (hidden directory) for cleaner project root organization

    Web Bundle Improvements:

    - All web bundles (single agent and team) now include party mode support for multi-agent collaboration!
    - Advanced elicitation capabilities integrated into standalone agents
    - All bundles enhanced with party mode agent manifests
    - Added default-party.csv files to bmm, bmgd, and cis module teams
    - The default party file is what will be used with single agent bundles. teams can customize for different party configurations before web bundling through a setting in the team yaml file
    - New web bundle outputs for all agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer, game-*, creative-squad)

    Phase 4 Workflow Updates (In Progress):

    - Initiated shift to separate phase 4 implementation artifacts from documentation
        - Phase 4 implementation artifacts (stories, code review, sprint plan, context files) will move to dedicated location outside docs folder
        - Installer questions and configuration added for artifact path selection
        - Updated workflow.yaml files for code-review, sprint-planning, story-context, epic-tech-context, and retrospective workflows to support this, but still might require some udpates

    Additional Changes:

    - New agent and action command header models for standardization
    - Enhanced web-bundle-activation-steps fragment
    - Updated web-bundler.js to support new structure
    - VS Code settings updated for new .bmad directory
    - Party mode instructions and workflow enhanced for better orchestration

   IDE Installer Updates:

    - Show version number of installer in cli
    - improved Installer UX
    - Gemini TOML Improved to have clear loading instructions with @ commands
    - All tools agent launcher mds improved to use a central file template critical indication isntead of hardcoding in 2 different locations.
This commit is contained in:
Brian Madison
2025-11-09 17:39:05 -06:00
parent fd2521ec69
commit 7eb52520fa
433 changed files with 125975 additions and 689 deletions

View File

@@ -4,8 +4,8 @@ const os = require('node:os');
const chalk = require('chalk');
const yaml = require('js-yaml');
const { BaseIdeSetup } = require('./_base-ide');
const { WorkflowCommandGenerator } = require('./workflow-command-generator');
const { TaskToolCommandGenerator } = require('./task-tool-command-generator');
const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator');
const { getAgentsFromBmad } = require('./shared/bmad-artifacts');
@@ -44,7 +44,7 @@ class OpenCodeSetup extends BaseIdeSetup {
name: agent.name,
});
const agentContent = this.createAgentContent(processed, agent);
const agentContent = await this.createAgentContent(processed, agent);
// Flat structure in agent folder: bmad-agent-{module}-{name}.md
const targetPath = path.join(agentsBaseDir, `bmad-agent-${agent.module}-${agent.name}.md`);
await this.writeFile(targetPath, agentContent);
@@ -52,7 +52,7 @@ class OpenCodeSetup extends BaseIdeSetup {
}
// Install workflow commands with flat naming: bmad-workflow-{module}-{name}.md
const workflowGenerator = new WorkflowCommandGenerator();
const workflowGenerator = new WorkflowCommandGenerator(this.bmadFolderName);
const { artifacts: workflowArtifacts, counts: workflowCounts } = await workflowGenerator.collectWorkflowArtifacts(bmadDir);
let workflowCommandCount = 0;
@@ -127,7 +127,7 @@ class OpenCodeSetup extends BaseIdeSetup {
return this.processContent(content, metadata);
}
createAgentContent(content, metadata) {
async createAgentContent(content, metadata) {
const { frontmatter = {}, body } = this.parseFrontmatter(content);
frontmatter.description =
@@ -140,7 +140,10 @@ class OpenCodeSetup extends BaseIdeSetup {
const frontmatterString = this.stringifyFrontmatter(frontmatter);
return `${frontmatterString}\n${body}`;
// Get the activation header from central template
const activationHeader = await this.getAgentCommandHeader();
return `${frontmatterString}\n\n${activationHeader}\n\n${body}`;
}
parseFrontmatter(content) {