Initial commit of the L'Ami Fiduciaire SaaS platform built on Laravel 12, Vue 3, Inertia.js 2, and Tailwind CSS 4. Story 0.1 (rename folders to declarations in database) is implemented and code-reviewed: migration, rollback, and 6 Pest tests all passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
197 lines
6.3 KiB
Markdown
197 lines
6.3 KiB
Markdown
---
|
|
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...**
|