--- 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...**