Files
calctext/.agents/skills/bmad-workflow-builder/references/template-substitution-rules.md
2026-03-16 19:54:53 -04:00

3.5 KiB

Template Substitution Rules

When building the workflow/skill, you MUST apply these conditional blocks to the templates:

Skill Type Conditionals

Complex Workflow

  • {if-complex-workflow} ... {/if-complex-workflow} → Keep the content inside
  • {if-simple-workflow} ... {/if-simple-workflow} → Remove the entire block including markers
  • {if-simple-utility} ... {/if-simple-utility} → Remove the entire block including markers

Simple Workflow

  • {if-complex-workflow} ... {/if-complex-workflow} → Remove the entire block including markers
  • {if-simple-workflow} ... {/if-simple-workflow} → Keep the content inside
  • {if-simple-utility} ... {/if-simple-utility} → Remove the entire block including markers

Simple Utility

  • {if-complex-workflow} ... {/if-complex-workflow} → Remove the entire block including markers
  • {if-simple-workflow} ... {/if-simple-workflow} → Remove the entire block including markers
  • {if-simple-utility} ... {/if-simple-utility} → Keep the content inside

Module Conditionals

For Module-Based Skills

  • {if-module} ... {/if-module} → Keep the content inside
  • {if-standalone} ... {/if-standalone} → Remove the entire block including markers
  • {module-code-or-empty} → Replace with module code (e.g., bmb-)

For Standalone Skills

  • {if-module} ... {/if-module} → Remove the entire block including markers
  • {if-standalone} ... {/if-standalone} → Keep the content inside
  • {module-code-or-empty} → Empty string

bmad-init Conditional

Uses bmad-init (default)

  • {if-bmad-init} ... {/if-bmad-init} → Keep the content inside

Opted out of bmad-init (standalone utilities only)

  • {if-bmad-init} ... {/if-bmad-init} → Remove the entire block including markers

Feature Conditionals

Headless Mode

  • {if-headless} ... {/if-headless} → Keep if supports headless/autonomous mode, otherwise remove

Creates Documents

  • {if-creates-docs} ... {/if-creates-docs} → Keep if creates output documents, otherwise remove

Has Stages (Complex Workflow)

  • {if-stages} ... {/if-stages} → Keep if has numbered stage prompts, otherwise remove

Has Scripts

  • {if-scripts} ... {/if-scripts} → Keep if has scripts/ directory, otherwise remove

External Skills

  • {if-external-skills} ... {/if-external-skills} → Keep if skill uses external skills, otherwise remove
  • {external-skills-list} → Replace with bulleted list of exact skill names:
    - `bmad-skill-name` — Description
    

Frontmatter Placeholders

Replace all frontmatter placeholders:

  • {module-code-or-empty} → Module code prefix (e.g., bmb-) or empty
  • {skill-name} → Skill functional name (kebab-case)
  • {skill-description} → Full description with trigger phrases
  • {role-guidance} → Brief role/expertise statement

Content Placeholders

Replace all content placeholders with skill-specific values:

  • {overview-template} → Overview paragraph following 3-part formula (What, How, Why/Outcome)
  • {stage-N-name} → Name of numbered stage
  • {stage-N-purpose} → Purpose description of numbered stage
  • {progression-condition} → When this stage completes

Path References

All generated skills use these paths:

  • bmad-manifest.json — Module metadata (if module-based)
  • references/{reference}.md — Reference documents loaded on demand
  • 01-{stage}.md — Numbered stage prompts at skill root (complex workflows)
  • scripts/ — Python/shell scripts for deterministic operations (if needed)