Node 20, installer improvements, agent improvements and Expansion Pack for game dev (#232)
* feat: add expansion pack installation system with game dev and infrastructure expansion packs - Added expansion pack discovery and installation to BMAD installer - Supports interactive and CLI installation of expansion packs - Expansion pack files install to destination root (.bmad-core) - Added game development expansion pack (.bmad-2d-phaser-game-dev) - Game designer, developer, and scrum master agents - Game-specific templates, tasks, workflows, and guidelines - Specialized for Phaser 3 + TypeScript development - Added infrastructure devops expansion pack (.bmad-infrastructure-devops) - Platform engineering agent and infrastructure templates - Expansion pack agents automatically integrate with IDE rules - Added list:expansions command and --expansion-packs CLI option 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com> * alpha expansion packs and installer update to support installing expansion packs optionally * node20 --------- Co-authored-by: Brian Madison <brianmadison@Brians-MacBook-Pro.local> Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
112
bmad-core/utils/agent-switcher.ide.md
Normal file
112
bmad-core/utils/agent-switcher.ide.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Agent Switcher Instructions
|
||||
|
||||
## Overview
|
||||
|
||||
This document provides instructions for switching between different IDE agent personas in the BMAD-METHOD framework.
|
||||
|
||||
## Behavior
|
||||
|
||||
### Listing Available Agents
|
||||
|
||||
When no agent name is provided:
|
||||
|
||||
1. Read the `bmad-core/ide-agents/` directory
|
||||
2. Look for files matching the pattern `*.ide.md`
|
||||
3. Extract agent names from filenames (the part before `.ide.md`)
|
||||
4. Present a numbered list of available agents
|
||||
|
||||
### Loading an Agent
|
||||
|
||||
When an agent name is provided:
|
||||
|
||||
1. Attempt to load `bmad-core/ide-agents/{agent-name}.ide.md`
|
||||
2. If the file doesn't exist:
|
||||
- List all available agents found in the directory
|
||||
- Prompt for a valid selection
|
||||
3. If the file exists:
|
||||
- Read and internalize the agent's instructions
|
||||
- Note the agent's name and role from the Agent Profile section
|
||||
- Embody that agent's persona, communication style, and capabilities
|
||||
- Use the agent's name when referring to yourself (e.g., "I'm John, the Product Manager")
|
||||
- Follow the agent's specific workflows and constraints
|
||||
|
||||
### Active Agent Behavior
|
||||
|
||||
When successfully operating as an IDE agent:
|
||||
|
||||
- Strictly follow the agent's defined capabilities and limitations
|
||||
- Only execute commands that the agent supports (typically prefixed with `*`)
|
||||
- Maintain the agent identity and context until switched or exited
|
||||
- If asked to perform tasks outside the agent's scope:
|
||||
- Inform the user of the limitation
|
||||
- Suggest the appropriate agent for that task
|
||||
|
||||
### Exiting Agent Mode
|
||||
|
||||
When exiting agent mode:
|
||||
|
||||
- Immediately exit the current agent persona
|
||||
- Return to standard assistant capabilities
|
||||
- Clear any agent-specific context or workflows
|
||||
|
||||
## Implementation Details
|
||||
|
||||
- Each agent maintains its own context and workflow state
|
||||
- Switching agents clears the previous agent's context
|
||||
- Agents are self-contained - no need to read additional files
|
||||
- The system automatically adapts as agents are added or removed
|
||||
|
||||
## Example Interactions
|
||||
|
||||
### Example Listing Agents
|
||||
|
||||
```text
|
||||
User: [requests agent list]
|
||||
Agent: Available IDE agents:
|
||||
1. architect
|
||||
2. dev
|
||||
3. devops
|
||||
4. pm
|
||||
5. po
|
||||
6. sm
|
||||
|
||||
Please select an agent by specifying: <agent-name>
|
||||
```text
|
||||
|
||||
### Example Loading an Agent
|
||||
|
||||
```text
|
||||
User: [requests dev agent]
|
||||
Agent: [Loads dev.ide.md and operates as Dev agent]
|
||||
```
|
||||
|
||||
### Example Invalid Agent Request
|
||||
|
||||
```text
|
||||
User: [requests designer agent]
|
||||
Agent: Could not find IDE agent 'designer'. Available agents:
|
||||
1. architect
|
||||
2. dev
|
||||
3. devops
|
||||
4. pm
|
||||
5. po
|
||||
6. sm
|
||||
|
||||
Please select an agent by specifying: <agent-name>
|
||||
```text
|
||||
|
||||
### Example Task Outside Agent Scope
|
||||
|
||||
```text
|
||||
[While operating as Dev agent]
|
||||
User: Create a PRD
|
||||
Agent: I'm currently operating as the Dev agent, which doesn't have PRD creation capabilities.
|
||||
The PM agent can create PRDs. Would you like me to switch to the PM agent?
|
||||
```
|
||||
|
||||
### Example Exiting Agent Mode
|
||||
|
||||
```text
|
||||
User: [requests to exit agent mode]
|
||||
Agent: Exited IDE agent mode. Returned to standard assistant capabilities.
|
||||
```
|
||||
26
bmad-core/utils/template-format.md
Normal file
26
bmad-core/utils/template-format.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Template Format Conventions
|
||||
|
||||
Templates in the BMAD method use standardized markup for AI processing. These conventions ensure consistent document generation.
|
||||
|
||||
## Template Markup Elements
|
||||
|
||||
- **{{placeholders}}**: Variables to be replaced with actual content
|
||||
- **[[LLM: instructions]]**: Internal processing instructions for AI agents (never shown to users)
|
||||
- **REPEAT** sections: Content blocks that may be repeated as needed
|
||||
- **^^CONDITION^^** blocks: Conditional content included only if criteria are met
|
||||
- **@{examples}**: Example content for guidance (never output to users)
|
||||
|
||||
## Processing Rules
|
||||
|
||||
- Replace all {{placeholders}} with project-specific content
|
||||
- Execute all [[LLM: instructions]] internally without showing users
|
||||
- Process conditional and repeat blocks as specified
|
||||
- Use examples for guidance but never include them in final output
|
||||
- Present only clean, formatted content to users
|
||||
|
||||
## Critical Guidelines
|
||||
|
||||
- **NEVER display template markup, LLM instructions, or examples to users**
|
||||
- Template elements are for AI processing only
|
||||
- Focus on faithful template execution and clean output
|
||||
- All template-specific instructions are embedded within templates
|
||||
223
bmad-core/utils/workflow-management.md
Normal file
223
bmad-core/utils/workflow-management.md
Normal file
@@ -0,0 +1,223 @@
|
||||
# Workflow Management
|
||||
|
||||
This utility enables the BMAD orchestrator to manage and execute team workflows.
|
||||
|
||||
## Important: Dynamic Workflow Loading
|
||||
|
||||
The BMAD orchestrator MUST read the available workflows from the current team configuration's `workflows` field. Do not use hardcoded workflow lists. Each team bundle defines its own set of supported workflows based on the agents it includes.
|
||||
|
||||
**Critical Distinction**:
|
||||
|
||||
- When asked "what workflows are available?", show ONLY the workflows defined in the current team bundle's configuration
|
||||
- Use `/agent-list` to show agents in the current bundle
|
||||
- Use `/workflows` to show workflows in the current bundle, NOT any creation tasks
|
||||
|
||||
### Workflow Descriptions
|
||||
|
||||
When displaying workflows, use these descriptions based on the workflow ID:
|
||||
|
||||
- **greenfield-fullstack**: Build a new full-stack application from concept to development
|
||||
- **brownfield-fullstack**: Enhance an existing full-stack application with new features
|
||||
- **greenfield-service**: Build a new backend service or API from concept to development
|
||||
- **brownfield-service**: Enhance an existing backend service or API
|
||||
- **greenfield-ui**: Build a new frontend/UI application from concept to development
|
||||
- **brownfield-ui**: Enhance an existing frontend/UI application
|
||||
|
||||
## Workflow Commands
|
||||
|
||||
### /workflows
|
||||
|
||||
Lists all available workflows for the current team. The available workflows are determined by the team configuration and may include workflows such as:
|
||||
|
||||
- greenfield-fullstack
|
||||
- brownfield-fullstack
|
||||
- greenfield-service
|
||||
- brownfield-service
|
||||
- greenfield-ui
|
||||
- brownfield-ui
|
||||
|
||||
The actual list depends on which team bundle is loaded. When responding to this command, display the workflows that are configured in the current team's `workflows` field.
|
||||
|
||||
Example response format:
|
||||
|
||||
```text
|
||||
Available workflows for [Team Name]:
|
||||
1. [workflow-id] - [Brief description based on workflow type]
|
||||
2. [workflow-id] - [Brief description based on workflow type]
|
||||
[... etc. ...]
|
||||
|
||||
Use /workflow-start {number or id} to begin a workflow.
|
||||
```text
|
||||
|
||||
### /workflow-start {workflow-id}
|
||||
|
||||
Starts a specific workflow and transitions to the first agent.
|
||||
|
||||
Example: `/workflow-start greenfield-fullstack`
|
||||
|
||||
### /workflow-status
|
||||
|
||||
Shows current workflow progress, completed artifacts, and next steps.
|
||||
|
||||
Example response:
|
||||
|
||||
```text
|
||||
Current Workflow: Greenfield Full-Stack Development
|
||||
Stage: Product Planning (2 of 6)
|
||||
Completed:
|
||||
✓ Discovery & Requirements
|
||||
- project-brief (completed by Mary)
|
||||
|
||||
In Progress:
|
||||
⚡ Product Planning
|
||||
- Create PRD (John) - awaiting input
|
||||
|
||||
Next: Technical Architecture
|
||||
```text
|
||||
|
||||
### /workflow-resume
|
||||
|
||||
Resumes a workflow from where it left off, useful when starting a new chat.
|
||||
|
||||
User can provide completed artifacts:
|
||||
|
||||
```text
|
||||
User: /workflow-resume greenfield-fullstack
|
||||
I have completed: project-brief, PRD
|
||||
BMad: I see you've completed Discovery and part of Product Planning.
|
||||
Based on the greenfield-fullstack workflow, the next step is:
|
||||
- UX Strategy with Sally (ux-expert)
|
||||
|
||||
Would you like me to load Sally to continue?
|
||||
```text
|
||||
|
||||
### /workflow-next
|
||||
|
||||
Shows the next recommended agent and action in the current workflow.
|
||||
|
||||
## Workflow Execution Flow
|
||||
|
||||
### 1. Starting a Workflow
|
||||
|
||||
When a workflow is started:
|
||||
|
||||
1. Load the workflow definition
|
||||
2. Identify the first stage and step
|
||||
3. Transition to the required agent
|
||||
4. Provide context about expected inputs/outputs
|
||||
5. Guide artifact creation
|
||||
|
||||
### 2. Stage Transitions
|
||||
|
||||
After each artifact is completed:
|
||||
|
||||
1. Mark the step as complete
|
||||
2. Check transition conditions
|
||||
3. If stage is complete, move to next stage
|
||||
4. Load the appropriate agent
|
||||
5. Pass relevant artifacts as context
|
||||
|
||||
### 3. Artifact Tracking
|
||||
|
||||
Track all created artifacts:
|
||||
|
||||
```yaml
|
||||
workflow_state:
|
||||
current_workflow: greenfield-fullstack
|
||||
current_stage: planning
|
||||
current_step: 2
|
||||
artifacts:
|
||||
project-brief:
|
||||
status: completed
|
||||
created_by: analyst
|
||||
timestamp: 2024-01-15T10:30:00.000Z
|
||||
prd:
|
||||
status: in-progress
|
||||
created_by: pm
|
||||
started: 2024-01-15T11:00:00.000Z
|
||||
```
|
||||
|
||||
### 4. Workflow Interruption Handling
|
||||
|
||||
When user returns after interruption:
|
||||
|
||||
1. Ask if continuing previous workflow
|
||||
2. Request any completed artifacts
|
||||
3. Analyze provided artifacts
|
||||
4. Determine workflow position
|
||||
5. Suggest next appropriate step
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
User: I'm working on a new app. Here's my PRD and architecture doc.
|
||||
BMad: I see you have a PRD and architecture document. Based on these artifacts,
|
||||
it looks like you're following the greenfield-fullstack workflow and have completed
|
||||
stages 1-3. The next recommended step would be:
|
||||
|
||||
Stage 4: Validation & Refinement
|
||||
- Load Sarah (Product Owner) to validate all artifacts
|
||||
|
||||
Would you like to continue with this workflow?
|
||||
```text
|
||||
|
||||
## Workflow Context Passing
|
||||
|
||||
When transitioning between agents, pass:
|
||||
|
||||
1. Previous artifacts created
|
||||
2. Current workflow stage
|
||||
3. Expected outputs
|
||||
4. Any decisions or constraints identified
|
||||
|
||||
Example transition:
|
||||
|
||||
```text
|
||||
BMad: Great! John has completed the PRD. According to the greenfield-fullstack workflow,
|
||||
the next step is UX Strategy with Sally.
|
||||
|
||||
/ux-expert
|
||||
|
||||
Sally: I see we're in the Product Planning stage of the greenfield-fullstack workflow.
|
||||
I have access to:
|
||||
- Project Brief from Mary
|
||||
- PRD from John
|
||||
|
||||
Let's create the UX strategy and UI specifications. First, let me review
|
||||
the PRD to understand the features we're designing for...
|
||||
```text
|
||||
|
||||
## Multi-Path Workflows
|
||||
|
||||
Some workflows may have multiple paths:
|
||||
|
||||
```yaml
|
||||
conditional_paths:
|
||||
- condition: project_type == 'mobile'
|
||||
next_stage: mobile-specific-design
|
||||
- condition: project_type == 'web'
|
||||
next_stage: web-architecture
|
||||
- default: fullstack-architecture
|
||||
```
|
||||
|
||||
Handle these by asking clarifying questions when needed.
|
||||
|
||||
## Workflow Best Practices
|
||||
|
||||
1. **Always show progress** - Users should know where they are
|
||||
2. **Explain transitions** - Why moving to next agent
|
||||
3. **Preserve context** - Pass relevant information forward
|
||||
4. **Allow flexibility** - Users can skip or modify steps
|
||||
5. **Track everything** - Maintain complete workflow state
|
||||
|
||||
## Integration with Agents
|
||||
|
||||
Each agent should be workflow-aware:
|
||||
|
||||
- Know which workflow is active
|
||||
- Understand their role in the workflow
|
||||
- Access previous artifacts
|
||||
- Know expected outputs
|
||||
- Guide toward workflow goals
|
||||
|
||||
This creates a seamless experience where the entire team works together toward the workflow's objectives.
|
||||
Reference in New Issue
Block a user