--- name: {skill-name} description: {one-line summary plus the trigger phrases that should route here, e.g. "Use when the user says X or wants to Y"} --- # {skill-name} {One paragraph stating the destination: the stance the skill acts from, the outcome it produces, who consumes that output, and the bar that consumer sets. Write it once; do not restate it lower down.} ## Resolution rules - Bare paths and `{skill-root}` (e.g. `references/guide.md`) resolve from this skill's installed directory. - `{project-root}` → the project working directory. - `{skill-name}` → the skill directory's basename. ## On Activation 1. Load config from `{project-root}/_bmad/config.yaml` (and `.user.yaml` if present). Use sensible defaults for anything missing rather than requiring configuration. 2. Resume check. Look for an existing `.memlog.md` in the run folder. If one is found, read it once to rebuild state and continue append-only; otherwise initialize a new memlog with `uv run {project-root}/_bmad/scripts/memlog.py init --path /.memlog.md`. 3. Resolve the `workflow` block: run `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. If the script fails, merge these three files yourself in base → team → user order — `{skill-root}/customize.toml`, `{project-root}/_bmad/custom/{skill-name}.toml`, `{project-root}/_bmad/custom/{skill-name}.user.toml` — where scalars override, tables deep-merge, arrays of tables keyed by `code`/`id` replace matching entries and append new ones, and all other arrays append. Reference resolved values as `{workflow.}` everywhere below; never hardcode a path beside a declared scalar. ## {Body} {The body is whatever the skill needs and nothing more. State each beat as the outcome you want, reserving exact procedure for the few places a wrong move costs something. Name stages with descriptive words, never numbered prefixes.}