3.7 KiB
Template Substitution Rules
The SKILL-template provides a minimal skeleton: frontmatter, overview, agent identity sections, memory, and activation with config loading. Everything beyond that is crafted by the builder based on what was learned during discovery and requirements phases.
Frontmatter
{module-code-or-empty}→ Module code prefix with hyphen (e.g.,cis-) or empty for standalone. Thebmad-prefix is reserved for official BMad creations; user agents should not include it.{agent-name}→ Agent functional name (kebab-case){skill-description}→ Two parts: [4-6 word summary]. [trigger phrases]{displayName}→ Friendly display name{skillName}→ Full skill name with module prefix
Module Conditionals
For Module-Based Agents
{if-module}...{/if-module}→ Keep the content inside{if-standalone}...{/if-standalone}→ Remove the entire block including markers{module-code}→ Module code without trailing hyphen (e.g.,cis){module-setup-skill}→ Name of the module's setup skill (e.g.,cis-setup)
For Standalone Agents
{if-module}...{/if-module}→ Remove the entire block including markers{if-standalone}...{/if-standalone}→ Keep the content inside
Memory Conditionals (legacy — stateless agents)
{if-memory}...{/if-memory}→ Keep if agent has persistent memory, otherwise remove{if-no-memory}...{/if-no-memory}→ Inverse of above
Headless Conditional (legacy — stateless agents)
{if-headless}...{/if-headless}→ Keep if agent supports headless mode, otherwise remove
Agent Type Conditionals
These replace the legacy memory/headless conditionals for the new agent type system:
{if-memory-agent}...{/if-memory-agent}→ Keep for memory and autonomous agents, remove for stateless{if-stateless-agent}...{/if-stateless-agent}→ Keep for stateless agents, remove for memory/autonomous{if-evolvable}...{/if-evolvable}→ Keep if agent has evolvable capabilities (owner can teach new capabilities){if-pulse}...{/if-pulse}→ Keep if agent has autonomous mode (PULSE enabled)
Mapping from legacy conditionals:
{if-memory}is equivalent to{if-memory-agent}— both mean the agent has persistent state{if-headless}maps to{if-pulse}— both mean the agent can operate autonomously
Template Selection
The builder selects the appropriate SKILL.md template based on agent type:
- Stateless agent: Use
./assets/SKILL-template.md(full identity, no Three Laws/Sacred Truth) - Memory/autonomous agent: Use
./assets/SKILL-template-bootloader.md(lean bootloader with Three Laws, Sacred Truth, 3-path activation)
Beyond the Template
The builder determines the rest of the agent structure — capabilities, activation flow, sanctum templates, init script, First Breath, capability routing, external skills, scripts — based on the agent's requirements. The template intentionally does not prescribe these.
Path References
All generated agents use ./ prefix for skill-internal paths:
Stateless agents:
./references/{capability}.md— Individual capability prompts./scripts/— Python/shell scripts for deterministic operations
Memory agents:
./references/first-breath.md— First Breath onboarding (loaded when no sanctum exists)./references/memory-guidance.md— Memory philosophy./references/capability-authoring.md— Capability evolution framework (if evolvable)./references/{capability}.md— Individual capability prompts./assets/{FILE}-template.md— Sanctum templates (copied by init script)./scripts/init-sanctum.py— Deterministic sanctum scaffolding