5.6 KiB
| name | description | nextStepFile | editPlan | simpleValidation | expertValidation | agentCompilation | builtYaml | advancedElicitationTask | partyModeWorkflow |
|---|---|---|---|---|---|---|---|---|---|
| e-09d-validate-structure | Validate YAML structure (after edit) - no menu, auto-advance | ./e-09e-validate-sidecar.md | {bmb_creations_output_folder}/edit-plan-{agent-name}.md | ../data/simple-agent-validation.md | ../data/expert-agent-validation.md | ../data/agent-compilation.md | {bmb_creations_output_folder}/{agent-name}/{agent-name}.agent.yaml | {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml | {project-root}/_bmad/core/workflows/party-mode/workflow.md |
Edit Step 9d: Validate Structure (After Edit)
STEP GOAL
Validate the built agent YAML file for structural completeness and correctness against the appropriate validation checklist (simple or expert) from agentCompilation.md. Record findings to editPlan and auto-advance.
MANDATORY EXECUTION RULES
- NEVER skip validation - All agents must pass structural validation
- ALWAYS use the correct validation checklist based on agent type (simple vs expert)
- ALWAYS load the builtYaml for actual structure validation
- ALWAYS use absolute paths when referencing files
- CRITICAL: Load and validate EVERYTHING specified in the agentCompilation.md file
- MUST check hasSidecar flag to determine correct validation standard
- 🚫 NO MENU in this step - record findings and auto-advance
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config
{communication_language}
EXECUTION PROTOCOLS
Protocol 1: Load and Compare
- Read the agent compilation reference from
{agentCompilation} - Read the simple validation checklist from
{simpleValidation} - Read the expert validation checklist from
{expertValidation} - Read the built agent YAML from
{builtYaml} - Read the edit plan from
{editPlan} - Determine agent type (simple vs expert) to select correct checklist
Protocol 2: Validation Checks
Perform these checks systematically - validate EVERY rule specified in agentCompilation.md:
A. YAML Syntax Validation
- Parse YAML without errors
- Check indentation consistency (2-space standard)
- Validate proper escaping of special characters
- Verify no duplicate keys in any section
B. Frontmatter Validation
- All required fields present (name, description, version, etc.)
- Field values are correct type (string, boolean, array)
- No empty required fields
- Proper array formatting with dashes
- Boolean fields are actual booleans (not strings)
C. Section Completeness
- All required sections present based on agent type
- Sections not empty unless explicitly optional
- Proper markdown heading hierarchy (##, ###)
- No orphaned content without section headers
D. Field-Level Validation
- Path references exist and are valid
- Array fields properly formatted
- No malformed YAML structures
- File references use correct path format
E. Agent Type Specific Checks
For Simple Agents (hasSidecar is false/absent, module is 'stand-alone'):
- No sidecar requirements
- No sidecar-folder path in metadata
- Basic fields complete
- No expert-only configuration present
- Menu handlers use only internal references (#) or inline prompts
For Expert Agents (hasSidecar is true):
- Sidecar flag set correctly in metadata
- Sidecar folder path specified in metadata
- All expert fields present
- Advanced features properly configured
- Menu handlers reference sidecar files or have inline prompts
For Module Agents (module is a module code like 'bmm', 'bmb', etc.):
- Module property is valid module code
- Exec paths for menu handlers start with
{project-root}/_bmad/{module}/... - Referenced files exist under the module directory
- If also hasSidecar: true, sidecar configuration is valid
Protocol 3: Record Findings
Organize findings into three sections and append to editPlan frontmatter under validationAfter.structure:
validationAfter:
structure:
agentType: [simple|expert|module]
status: [pass|fail|warning]
passing:
- "{check description}"
- "{check description}"
warnings:
- "{non-blocking issue}"
failures:
- "{blocking issue that must be fixed}"
PASSING CHECKS (List what passed)
✓ Valid YAML syntax, no parse errors
✓ All required frontmatter fields present
✓ Proper 2-space indentation throughout
✓ All required sections complete for agent type
✓ Path references are valid
WARNINGS (Non-blocking issues)
⚠ Some optional sections are empty
⚠ Minor formatting inconsistencies
⚠ Some descriptions are brief
FAILURES (Blocking issues that must be fixed)
✗ YAML syntax error preventing parsing
✗ Duplicate key 'name' in metadata
✗ Required field 'description' is empty
✗ Invalid boolean value 'yes' (should be true/false)
✗ Path reference points to non-existent file
✗ Simple agent has sidecar-folder specified
✗ Expert agent missing sidecar-folder path
Protocol 4: Auto-Advance
🚫 NO MENU PRESENTED - After recording findings, immediately load and execute {nextStepFile}
Auto-advancing to sidecar validation...
SUCCESS METRICS
✅ All structure checks from agentCompilation.md performed ✅ Correct validation checklist used based on agent type ✅ All checks validated against the actual builtYaml ✅ Findings saved to editPlan with detailed status ✅ Agent type correctly identified and validated ✅ Auto-advanced to next step