Initial commit: BMAD framework + Story 1.1 Component Trait Definition

Features:
- BMAD (Build Modular AI-driven Development) framework setup
- BMM, BMB, CIS, Core modules configured
- Story 1.1: Component trait with error handling
- Workspace Cargo.toml with components crate
- 31 tests passing (19 unit + 12 doc tests)

Technical:
- Component trait with compute_residuals, jacobian_entries, n_equations
- ComponentError enum with thiserror
- JacobianBuilder for sparse matrix construction
- Object-safe trait supporting Box<dyn Component>
- Comprehensive documentation and examples
This commit is contained in:
Sepehr
2026-02-14 13:44:32 +01:00
parent 22dd012a74
commit 1fdfefe631
634 changed files with 70435 additions and 0 deletions

View File

@@ -0,0 +1,221 @@
---
name: 'e-01-load-existing'
description: 'Load and analyze existing agent for editing'
# File References
thisStepFile: ./e-01-load-existing.md
workflowFile: ../workflow-edit-agent.md
nextStepFile: './e-02-discover-edits.md'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
agentMetadata: ../data/agent-metadata.md
agentMenuPatterns: ../data/agent-menu-patterns.md
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 1: Load Existing Agent
## STEP GOAL:
Load the existing agent file, parse its structure, and create an edit plan tracking document.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER proceed without loading the complete agent file
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not an autonomous editor
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- ✅ You are an agent analyst who helps users understand and modify existing agents
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring agent architecture expertise, user brings their modification goals, together we achieve successful edits
- ✅ Maintain collaborative analytical tone throughout
### Step-Specific Rules:
- 🎯 Focus only on loading and analyzing the existing agent
- 🚫 FORBIDDEN to make any modifications in this step
- 💬 Approach: Analytical and informative, present findings clearly
- 📋 Ensure edit plan is created with complete agent snapshot
## EXECUTION PROTOCOLS:
- 🎯 Load the complete agent YAML file
- 📊 Parse and analyze all agent components
- 💾 Create edit plan tracking document
- 🚫 FORBIDDEN to proceed without confirming file loaded successfully
## CONTEXT BOUNDARIES:
- Available context: User provided agent file path from workflow
- Focus: Load and understand the existing agent structure
- Limits: Analysis only, no modifications
- Dependencies: Agent file must exist and be valid YAML
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Load Agent File
**Load the agent file:**
Read the complete YAML from the agent file path provided by the user.
**If file does not exist or is invalid:**
Inform the user and request a valid path:
"The agent file could not be loaded. Please verify the path and try again.
Expected format: `{path-to-agent}/{agent-name}.agent.yaml`"
### 2. Parse Agent Structure
If the module property of the agent metadata is `stand-alone`, it is not a module agent.
If the module property of the agent is a module code (like bmm, bmb, etc...) it is a module agent.
If the property hasSidecar: true exists in the metadata, then it is an expert agent.
Else it is a simple agent.
If a module agent also hasSidecar: true - this means it is a modules expert agent, thus it can have sidecar.
**Extract and categorize all agent components:**
```yaml
# Basic Metadata
- name: {agent-name}
- description: {agent-description}
- module: {stand-alone|bmm|cis|bmgd|custom}
- hasSidecar: {true|false}
# Persona
- persona: {full persona text}
- system-context: {if present}
# Commands/Menu
- commands: {full command structure}
# Critical Actions (if present)
- critical-actions: {list}
# Metadata
- metadata: {all metadata fields}
```
### 3. Display Agent Summary
**Present a clear summary to the user:**
```markdown
## Agent Analysis: {agent-name}
**Type:** {simple|expert|module} (derived from module + hasSidecar)
**Status:** ready-for-edit
### Current Structure:
**Persona:** {character count} characters
**Commands:** {count} commands defined
**Critical Actions:** {count} critical actions
### Editable Components:
- [ ] Persona (role, identity, communication_style, principles)
- [ ] Commands and menu structure
- [ ] Critical actions
- [ ] Metadata (name, description, version, tags)
```
### 4. Create Edit Plan Document
**Initialize the edit plan tracking file:**
```markdown
---
mode: edit
originalAgent: '{agent-file-path}'
agentName: '{agent-name}'
agentType: '{simple|expert|module}'
editSessionDate: '{YYYY-MM-DD}'
stepsCompleted:
- e-01-load-existing.md
---
# Edit Plan: {agent-name}
## Original Agent Snapshot
**File:** {agent-file-path}
**Type:** {simple|expert|module}
**Version:** {version}
### Current Persona
{full persona text or truncated if very long}
### Current Commands
{list all commands with names and descriptions}
### Current Metadata
{all metadata fields}
---
## Edits Planned
*This section will be populated in subsequent steps*
---
## Edits Applied
*This section will track completed edits*
```
Write to `{editPlan}`.
### 5. Present MENU OPTIONS
Display: "**Is this the correct agent to edit?** [C] Yes, Continue to Discovery"
#### Menu Handling Logic:
- IF C: Save content to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
- User can chat or ask questions - always respond and then end with display again of the menu options
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [agent file loaded, analyzed, and edit plan created], will you then load and read fully `{nextStepFile}` to execute and begin edit discovery.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Agent file loaded successfully
- YAML structure parsed correctly
- Edit plan document created with agent snapshot
- User has clear understanding of current agent structure
- Menu presented and user input handled correctly
### ❌ SYSTEM FAILURE:
- Failed to load entire exist agent file (and potential sidecar content)
- Invalid YAML format that prevents parsing
- Edit plan not created
- Proceeding without user confirmation of loaded agent
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@@ -0,0 +1,194 @@
---
name: 'e-02-discover-edits'
description: 'Discover what user wants to change about the agent'
nextStepFile: './e-04-sidecar-metadata.md'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 2: Discover Edits
## STEP GOAL:
Conduct targeted discovery to understand exactly what the user wants to change about their agent. Document all requested edits in structured format.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER assume what edits are needed - ask explicitly
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: Read editPlan first to understand agent context
- 📋 YOU ARE A FACILITATOR, not an autonomous editor
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- ✅ You are an agent editor consultant who helps users clarify their modification goals
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring agent architecture expertise, user brings their vision for improvements, together we define precise edits
- ✅ Maintain collaborative inquisitive tone throughout
### Step-Specific Rules:
- 🎯 Focus only on discovering what to edit, not how to implement yet
- 🚫 FORBIDDEN to make any modifications in this step
- 💬 Approach: Ask probing questions to understand edit scope
- 📋 Ensure all edits are documented to edit plan before proceeding
## EXECUTION PROTOCOLS:
- 🎯 Guide conversation to uncover all desired changes
- 📊 Categorize edits by component (persona, commands, metadata, etc.)
- 💾 Document all edits to edit plan
- 🚫 FORBIDDEN to proceed without confirming all edits are captured
## CONTEXT BOUNDARIES:
- Available context: editPlan with agent snapshot from previous step
- Focus: Discover what changes user wants to make
- Limits: Discovery and documentation only, no implementation
- Dependencies: Agent must be loaded in editPlan
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Read Edit Plan Context
**Load the editPlan file first:**
Read `{editPlan}` to understand the current agent structure and context.
### 2. Present Edit Categories
**Guide the user through potential edit areas:**
"What would you like to change about **{agent-name}**?
I can help you modify:
**[P]ersona** - Role, identity, communication style, principles
**[C]ommands** - Add, remove, or modify commands and menu structure
**[M]etadata** - Name, description, version, tags, category
**[S]idecar** - Add or remove memory (convert hasSidecar: true/false)
**[A]ctions** - Critical actions and activation behaviors
**[O]ther** - Configuration, capabilities, system context
Which areas would you like to edit? (You can select multiple)"
### 3. Deep Dive Discovery
**For each selected category, ask targeted questions:**
#### If Persona selected:
- "What aspect of the persona needs change?"
- "Should the role be more specific or expanded?"
- "Is the communication style hitting the right tone?"
- "Do the principles need refinement?"
#### If Commands selected:
- "Do you want to add new commands, remove existing ones, or modify?"
- "Are current command names and descriptions clear?"
- "Should command steps be adjusted?"
- "Is the menu structure working well?"
#### If Metadata selected:
- "What metadata fields need updating?"
- "Is the description accurate and compelling?"
- "Should version be bumped?"
- "Are tags still relevant?"
#### If Actions selected:
- "What critical actions need modification?"
- "Should new activation behaviors be added?"
- "Are current actions executing as expected?"
#### If Sidecar selected:
- "Do you want to add memory (hasSidecar: true) or remove it (hasSidecar: false)?"
- "What should the agent remember across sessions?"
- "Are you aware of the implications?"
### 4. Document Edits to Plan
**After discovery, append to editPlan:**
```markdown
## Edits Planned
### Persona Edits
- [ ] {edit description}
- [ ] {edit description}
### Command Edits
- [ ] {edit description}
- [ ] {edit description}
### Metadata Edits
- [ ] {edit description}
- [ ] {edit description}
### Critical Action Edits
- [ ] {edit description}
- [ ] {edit description}
### Sidecar Conversion
- [ ] {from: hasSidecar: false, to: hasSidecar: true, rationale: ...}
- [ ] {from: hasSidecar: true, to: hasSidecar: false, rationale: ...}
### Other Edits
- [ ] {edit description}
```
**Present summary for confirmation:**
"Here's what I heard you want to change:
{Summarize all edits in clear bulleted list}
Did I capture everything? Any edits to add, remove, or clarify?"
### 5. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Validation"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save edits to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
- User can chat or ask questions - always respond and then end with display again of the menu options
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [all edits documented and confirmed by user], will you then load and read fully `{nextStepFile}` to execute and checks.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- All desired edits discovered and documented
- Edits categorized by component type
- User confirmed edit list is complete
- Edit plan updated with structured edits
### ❌ SYSTEM FAILURE:
- Proceeding without documenting edits
- Missing edits that user mentioned
- Unclear or ambiguous edit descriptions
- User not given opportunity to review/edit list
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@@ -0,0 +1 @@
# Placeholder - do not load this step.

View File

@@ -0,0 +1,125 @@
---
name: 'e-04-sidecar-metadata'
description: 'Review and plan metadata edits'
nextStepFile: './e-05-persona.md'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
agentMetadata: ../data/agent-metadata.md
agentTypesDoc: ../data/understanding-agent-types.md
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 4: Sidecar and Metadata
## STEP GOAL:
Review the agent's hasSidecar decision and metadata, and plan any changes. If edits involve sidecar conversion, identify the implications.
## MANDATORY EXECUTION RULES:
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: Load agentMetadata and agentTypesDoc first
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- 🎯 Load reference documents before discussing edits
- 📊 Document sidecar conversion requirements if applicable
- 💬 Focus on metadata that user wants to change
## EXECUTION PROTOCOLS:
- 🎯 Load agentMetadata.md and agentTypesDoc.md
- 📊 Review current metadata from editPlan
- 💾 Document planned metadata changes
- 🚫 FORBIDDEN to proceed without documenting changes
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Load Reference Documents
Read `{agentMetadata}` and `{agentTypesDoc}` to understand validation rules and sidecar implications.
### 2. Review Current Metadata
From `{editPlan}`, display current:
- hasSidecar (true/false)
- All metadata fields: id, name, title, icon, module
### 3. Discuss Metadata Edits
If user wants metadata changes:
**For sidecar conversion:**
- "Converting from hasSidecar: {current} to {target}"
- Explain implications:
- false → true: Need to create sidecar folder, add critical_actions with sidecar file loading
- true → false: Remove sidecar fields; if critical_actions only has sidecar references, remove section; otherwise keep non-sidecar critical_actions
- Update editPlan with conversion
**For metadata field changes:**
- id: kebab-case requirements
- name: display name conventions
- title: function description format
- icon: emoji/symbol
- module: path format
### 4. Document to Edit Plan
Append to `{editPlan}`:
```yaml
metadataEdits:
sidecarConversion:
from: {current-hasSidecar}
to: {target-hasSidecar}
rationale: {explanation}
fieldChanges:
- field: {field-name}
from: {current-value}
to: {target-value}
```
### 5. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Persona"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [metadata changes documented], will you then load and read fully `{nextStepFile}` to execute and begin persona planning.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Reference documents loaded
- Metadata changes discussed and documented
- Sidecar conversion implications understood
- Edit plan updated
### ❌ SYSTEM FAILURE:
- Proceeded without loading reference documents
- Sidecar conversion without understanding implications
- Changes not documented to edit plan
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@@ -0,0 +1,134 @@
---
name: 'e-05-persona'
description: 'Review and plan persona edits'
nextStepFile: './e-06-commands-menu.md'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
personaProperties: ../data/persona-properties.md
principlesCrafting: ../data/principles-crafting.md
communicationPresets: ../data/communication-presets.csv
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 5: Persona
## STEP GOAL:
Review the agent's persona and plan any changes using the four-field persona system.
## MANDATORY EXECUTION RULES:
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: Load personaProperties, principlesCrafting, communicationPresets first
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- 🎯 Load reference documents before discussing persona edits
- 📊 Maintain four-field system purity
- 💬 Focus on persona fields that user wants to change
## EXECUTION PROTOCOLS:
- 🎯 Load personaProperties.md, principlesCrafting.md, communicationPresets.csv
- 📊 Review current persona from editPlan
- 💾 Document planned persona changes
- 🚫 FORBIDDEN to proceed without documenting changes
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Load Reference Documents
Read `{personaProperties}`, `{principlesCrafting}`, `{communicationPresets}` to understand the four-field system.
### 2. Review Current Persona
From `{editPlan}`, display current persona:
- **role:** What they do
- **identity:** Who they are
- **communication_style:** How they speak
- **principles:** Why they act (decision framework)
### 3. Discuss Persona Edits
For each field the user wants to change:
**Role edits:**
- Ensure functional definition (not personality)
- Define expertise domain and capabilities
**Identity edits:**
- Ensure personality definition (not job description)
- Define character, attitude, worldview
**Communication_style edits:**
- Ensure speech pattern definition (not expertise)
- Define tone, formality, voice
**Principles edits:**
- First principle must activate expert knowledge
- Other principles guide decision-making
- Follow principlesCrafting.md guidance
### 4. Document to Edit Plan
Append to `{editPlan}`:
```yaml
personaEdits:
role:
from: {current}
to: {target}
identity:
from: {current}
to: {target}
communication_style:
from: {current}
to: {target}
principles:
from: {current}
to: {target}
```
### 5. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Commands Menu"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [persona changes documented with field purity maintained], will you then load and read fully `{nextStepFile}` to execute and begin commands menu planning.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Reference documents loaded
- Four-field system purity maintained
- Persona changes documented
### ❌ SYSTEM FAILURE:
- Proceeded without loading reference documents
- Field purity violated (mixed concepts)
- Changes not documented to edit plan
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@@ -0,0 +1,122 @@
---
name: 'e-06-commands-menu'
description: 'Review and plan command/menu edits'
nextStepFile: './e-07-activation.md'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
agentMenuPatterns: ../data/agent-menu-patterns.md
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 6: Commands Menu
## STEP GOAL:
Review the agent's command menu and plan any additions, modifications, or removals.
## MANDATORY EXECUTION RULES:
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: Load agentMenuPatterns first
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- 🎯 Load agentMenuPatterns before discussing menu edits
- 📊 Follow A/P/C convention for menu structure
- 💬 Focus on commands that user wants to add/modify/remove
## EXECUTION PROTOCOLS:
- 🎯 Load agentMenuPatterns.md
- 📊 Review current commands from editPlan
- 💾 Document planned command changes
- 🚫 FORBIDDEN to proceed without documenting changes
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Load Reference Documents
Read `{agentMenuPatterns}` to understand menu structure requirements.
### 2. Review Current Commands
From `{editPlan}`, display current commands with:
- trigger
- description
- handler/action
### 3. Discuss Command Edits
**For additions:**
- Define trigger (clear, intuitive, following conventions)
- Define description (concise, one line)
- Define handler/action (references capability)
**For modifications:**
- Update trigger, description, or handler
- Ensure still follows menu patterns
**For removals:**
- Identify commands to remove
- Confirm impact on agent functionality
### 4. Document to Edit Plan
Append to `{editPlan}`:
```yaml
commandEdits:
additions:
- trigger: {trigger}
description: {description}
handler: {handler}
modifications:
- command: {existing-command}
changes: {what-to-change}
removals:
- command: {command-to-remove}
```
### 5. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Activation"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [command changes documented], will you then load and read fully `{nextStepFile}` to execute and begin activation planning.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- agentMenuPatterns loaded
- Command changes documented with trigger/description/handler
- A/P/C convention followed
### ❌ SYSTEM FAILURE:
- Proceeded without loading reference documents
- Commands missing required elements
- Changes not documented to edit plan
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@@ -0,0 +1,123 @@
---
name: 'e-07-activation'
description: 'Review critical_actions and route to edit step'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
criticalActions: ../data/critical-actions.md
# Edit step route (determined by hasSidecar)
agentEdit: './e-08-edit-agent.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 7: Activation and Routing
## STEP GOAL:
Review critical_actions and route to the agent edit step based on hasSidecar value.
## MANDATORY EXECUTION RULES:
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: Load criticalActions and editPlan first
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- 🎯 Load criticalActions.md before discussing activation
- 📊 Determine hasSidecar for routing
- 💬 Route based on POST-EDIT hasSidecar value
## EXECUTION PROTOCOLS:
- 🎯 Load criticalActions.md
- 📊 Check editPlan for target hasSidecar value
- 💾 Route to agent edit step
- ➡️ Auto-advance to edit step on [C]
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Load Reference Documents
Read `{criticalActions}` and `{editPlan}` to understand:
- Current critical_actions (if any)
- Target hasSidecar value after edits
### 2. Review Critical Actions
If user wants to add/modify critical_actions:
- Reference patterns from criticalActions.md
- Define action name, description, invocation
- For hasSidecar: true — specify sidecar-folder and file paths
### 3. Determine Routing
Check `{editPlan}` for agent metadata (hasSidecar):
```yaml
# Simple routing based on hasSidecar
hasSidecar: true → route to e-08-edit-agent.md (create sidecar structure)
hasSidecar: false → route to e-08-edit-agent.md (single YAML file)
```
The edit step handles both cases based on hasSidecar value.
### 4. Document to Edit Plan
Append to `{editPlan}`:
```yaml
activationEdits:
criticalActions:
additions: []
modifications: []
routing:
destinationEdit: e-08-edit-agent.md
hasSidecar: {true|false} # Derived from edit plan
```
### 5. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Edit Agent"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save to {editPlan}, then only then load and execute the agent edit step
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#5-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
## CRITICAL STEP COMPLETION NOTE
This is the **ROUTING HUB** for edit flow. ONLY WHEN [C continue option] is selected and [routing determined], load and execute the agent edit step:
- hasSidecar: false → Single YAML file edit
- hasSidecar: true → YAML + sidecar folder structure edit
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- criticalActions.md loaded
- Routing determined based on hasSidecar
- Edit plan updated with routing info
### ❌ SYSTEM FAILURE:
- Proceeded without loading reference documents
- Routing not determined
- Wrong edit step selected
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.

View File

@@ -0,0 +1,196 @@
---
name: 'e-08-edit-agent'
description: 'Apply edits to agent (with or without sidecar)'
nextStepFile: './e-09-celebrate.md'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
agentFile: '{original-agent-path}'
agentBackup: '{original-agent-path}.backup'
# Template and Architecture
agentTemplate: ../templates/agent-template.md
agentArch: ../data/agent-architecture.md
agentValidation: ../data/agent-validation.md
agentCompilation: ../data/agent-compilation.md
agentMetadata: ../data/agent-metadata.md
personaProperties: ../data/persona-properties.md
principlesCrafting: ../data/principles-crafting.md
agentMenuPatterns: ../data/agent-menu-patterns.md
criticalActions: ../data/critical-actions.md
# Reference examples
noSidecarExample: ../data/reference/without-sidecar/commit-poet.agent.yaml
withSidecarExample: ../data/reference/with-sidecar/journal-keeper/journal-keeper.agent.yaml
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---
# Edit Step 8: Edit Agent
## STEP GOAL:
Apply all planned edits to the agent YAML file. The edit approach (with or without sidecar) is determined by the `hasSidecar` value from the edit plan.
## MANDATORY EXECUTION RULES:
- 🛑 ALWAYS create backup before modifying agent file
- 📖 CRITICAL: Read template and architecture files first
- 🔄 CRITICAL: Load editPlan and agentFile
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- 🎯 Load all reference files before applying edits
- 📊 Apply edits exactly as specified in editPlan
- 💾 Validate YAML after each edit
- 🎭 Handle sidecar structure if hasSidecar: true
- ➡️ Auto-advance to celebration when complete
## EXECUTION PROTOCOLS:
- 🎯 Load template, architecture, and validation files
- 📊 Read editPlan to get all planned changes
- 💾 Create backup
- 📝 Apply edits: sidecar conversion, metadata, persona, commands, critical_actions
- 🎭 Manage sidecar folder structure (if applicable)
- ✅ Validate YAML and sidecar paths
- ➡️ Auto-advance to next step
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
### 1. Load Reference Documents
Read all files before editing:
- `{agentTemplate}` - YAML structure reference
- `{agentArch}` - Agent architecture (with/without sidecar)
- `{agentValidation}` - Validation checklist
- `{agentCompilation}` - Assembly guidelines
- `{agentMetadata}`, `{personaProperties}`, `{principlesCrafting}`
- `{agentMenuPatterns}`, `{criticalActions}`
### 2. Load Edit Plan and Agent
Read `{editPlan}` to get all planned edits.
Read `{agentFile}` to get current agent YAML.
Check the `hasSidecar` value from editPlan to determine edit approach.
### 3. Create Backup
ALWAYS backup before editing:
```bash
cp {agentFile} {agentBackup}
```
Confirm: "Backup created at: `{agentBackup}`"
### 4. Apply Edits in Sequence
For each planned edit:
**Sidecar Conversion:**
**false → true (Adding sidecar):**
- Set `hasSidecar: true`
- Add `metadata.sidecar-folder` if not present
- Add `critical_actions` section with sidecar file references
- Create sidecar directory: `{agent-folder}/{agent-name}-sidecar/`
- Create starter files: `memories.md`, `instructions.md`
- Update all references to use `{project-root}/_bmad/_memory/{sidecar-folder}/` format
**true → false (Removing sidecar):**
- Set `hasSidecar: false`
- Remove `metadata.sidecar-folder` and `metadata.sidecar-path`
- If critical_actions contains only sidecar references, remove the section
- If critical_actions contains non-sidecar activation behaviors, keep and clean sidecar references
- Remove sidecar references from menu actions
- Optionally archive sidecar folder
**Metadata Edits:**
- Apply each field change from metadataEdits
- Validate format conventions
**Persona Edits:**
- Replace persona section with new four-field persona
- Validate field purity (role ≠ identity ≠ communication_style)
- For hasSidecar: true, ensure communication_style includes memory reference patterns
**Command Edits:**
- Additions: append to commands array
- Modifications: update specific commands
- Removals: remove from commands array
**Critical Actions Edits (hasSidecar: true only):**
- Additions: append to critical_actions array
- Modifications: update specific actions
- Removals: remove from array
- Ensure all references use correct `{project-root}/_bmad/_memory/` paths
### 5. Validate After Each Edit
**For both types:**
- Confirm YAML syntax is valid after each modification
**For hasSidecar: true:**
- Validate sidecar path format
- Ensure all critical_actions reference correct paths
- Confirm sidecar folder structure exists
### 6. Document Applied Edits
Append to `{editPlan}`:
```yaml
editsApplied:
- {edit-description}
- {edit-description}
backup: {agentBackup}
timestamp: {YYYY-MM-DD HH:MM}
```
### 7. Present MENU OPTIONS
Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"
#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save to {editPlan}, then only then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [C continue option] is selected and [all edits applied and validated], will you then load and read fully `{nextStepFile}` to execute and celebrate.
---
## SUCCESS METRICS
✅ Backup created
✅ All reference files loaded
✅ All edits applied correctly
✅ YAML remains valid
✅ Sidecar structure correct (if hasSidecar: true)
✅ Sidecar paths validated (if hasSidecar: true)
✅ Edit plan tracking updated
## FAILURE MODES
❌ Backup failed
❌ YAML became invalid
❌ Sidecar paths broken (hasSidecar: true)
❌ Edits not applied as specified
---
**Auto-advancing to celebration when complete...**

View File

@@ -0,0 +1,155 @@
---
name: 'e-09-celebrate'
description: 'Celebrate successful agent edit completion'
editPlan: '{bmb_creations_output_folder}/edit-plan-{agent-name}.md'
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
validationWorkflow: '{project-root}/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md'
---
# Edit Step 9: Celebration
## STEP GOAL:
Celebrate the successful agent edit, provide summary of changes, and mark edit workflow completion.
## MANDATORY EXECUTION RULES:
- 🎉 ALWAYS celebrate the achievement with enthusiasm
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: Read editPlan to summarize what was accomplished
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- ✅ You are a celebration coordinator who acknowledges successful agent improvements
- ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring celebration energy, user brings their satisfaction, together we acknowledge successful collaboration
### Step-Specific Rules:
- 🎯 Focus on celebrating and summarizing what was accomplished
- 🚫 FORBIDDEN to end without marking workflow completion
- 💬 Approach: Enthusiastic while providing clear summary
## EXECUTION PROTOCOLS:
- 🎉 Celebrate the edit completion enthusiastically
- 📊 Provide clear summary of all changes made
- 💾 Mark workflow completion in edit plan
- 🚫 FORBIDDEN to end without proper completion marking
## CONTEXT BOUNDARIES:
- Available context: editPlan with full edit history
- Focus: Celebration and summary
- Limits: No more edits, only acknowledgment
- Dependencies: All edits successfully applied
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.:
### 1. Read Edit Plan
Read `{editPlan}` to get:
- Original agent state
- All edits that were applied
- Validation results (before and after)
### 2. Grand Celebration
"🎉 **Excellent work!** Your agent **{agent-name}** has been successfully updated!"
### 3. Edit Summary
```markdown
## Edit Summary for {agent-name}
**Completed:** {YYYY-MM-DD HH:MM}
**Edits Applied:** {count}
### What Changed
**Persona Updates:** {list or "None"}
**Command Updates:** {list or "None"}
**Metadata Updates:** {list or "None"}
**Type Conversion:** {details or "None"}
### Validation Results
**Before:** {summary of pre-edit validation}
**After:** {summary of post-edit validation}
```
### 4. Verification Guidance
"**Quick Test:**
- Load the agent and check it initializes correctly
- Run through a few commands to verify behavior
**File Locations:**
- **Agent File:** `{agentFile}`
- **Backup:** `{agentFile}.backup`"
### 5. Document Completion
Append to editPlan:
```markdown
## Edit Session Complete ✅
**Completed:** {YYYY-MM-DD HH:MM}
**Status:** Success
### Final State
- Agent file updated successfully
- All edits applied
- Backup preserved
```
### 6. Present MENU OPTIONS
Display: "**✅ Agent Edit Complete! Select an Option:** [V] Run Validation [S] Skip - Complete Now [A] Advanced Elicitation [P] Party Mode"
#### Menu Handling Logic:
- IF V: "Loading validation phase..." → Save completion status to {editPlan}, update frontmatter with edit completion, then load, read entire file, then execute {validationWorkflow}
- IF S: "Skipping validation. Completing workflow..." → Save completion status to {editPlan} and end workflow gracefully
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#6-present-menu-options)
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- User can choose validation (V), skip to complete (S), or use advanced elicitation (A) or party mode (P)
- After other menu items execution (A/P), return to this menu
## CRITICAL STEP COMPLETION NOTE
ONLY WHEN [S skip option] is selected and [completion documented], will the workflow end gracefully with agent edit complete.
IF [V validation option] is selected, the validation workflow will be loaded to perform comprehensive validation checks.
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Enthusiastic celebration of edit completion
- Clear summary of all changes provided
- Before/after validation comparison shown
- Verification guidance provided
- Workflow completion marked in edit plan
### ❌ SYSTEM FAILURE:
- Ending without marking workflow completion
- Not providing clear summary of changes
- Missing celebration of achievement
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.