BMAD-METHOD/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md

4.1 KiB

name description
bmad-dev-auto One iteration of an unattended development loop. Use when invoked by name.

Dev Auto Workflow

Goal: Turn intent into a hardened, reviewable artifact, without human interaction.

CRITICAL: If a step says "read fully and follow step-XX", you read and follow step-XX. No exceptions.

HALT

To HALT with a final status and optional blocking condition:

  1. If {spec_file} is known and exists, update status in frontmatter and append missing result details under ## Auto Run Result.
  2. If {spec_file} is unknown or missing, create {implementation_artifacts}/bmad-dev-auto-result-<slug-or-timestamp>.md with:
    ---
    status: <final status>
    ---
    
    # BMad Dev Auto Result
    
    Status: <final status>
    Blocking condition: <blocking condition, if any>
    
  3. Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete
  4. If the resolved workflow.on_complete is non-empty, follow it as the final instruction before exiting.
  5. Stop the workflow.

Subagents

Using subagents when instructed is mandatory. If you cannot, HALT with status blocked and blocking condition no subagents.

READY FOR DEVELOPMENT STANDARD

A specification is "Ready for Development" when:

  • Actionable: Every task has a file path and specific action.
  • Logical: Tasks ordered by dependency.
  • Testable: All ACs use Given/When/Then.
  • Complete: No placeholders or TBDs.
  • Sufficient: No known requirement, acceptance, dependency, or implementation gaps remain unresolved.
  • Coherent: No unresolved ambiguities or internal contradictions.

Conventions

  • Bare paths (e.g. step-01-clarify-and-route.md) resolve from the skill root.
  • {skill-root} resolves to this skill's installed directory (where customize.toml lives).
  • {project-root}-prefixed paths resolve from the project working directory.
  • {skill-name} resolves to the skill directory's basename.

On Activation

Step 1: Resolve the Workflow Block

Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow

If the script fails, resolve the workflow block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:

  1. {skill-root}/customize.toml — defaults
  2. {project-root}/_bmad/custom/{skill-name}.toml — team overrides
  3. {project-root}/_bmad/custom/{skill-name}.user.toml — personal overrides

Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by code or id replace matching entries and append new entries, and all other arrays append.

Step 2: Execute Prepend Steps

Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.

Step 3: Load Persistent Facts

Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run. Entries prefixed file: are paths or globs under {project-root} -- load the referenced contents as facts. All other entries are facts verbatim.

Step 4: Load Config

Load config from {project-root}/_bmad/bmm/config.yaml and resolve:

  • project_name, planning_artifacts, implementation_artifacts, user_name
  • communication_language, document_output_language, user_skill_level
  • date as system-generated current datetime
  • project_context = **/project-context.md (load if exists)
  • CLAUDE.md / memory files (load if exist)
  • YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config {communication_language}
  • Language MUST be tailored to {user_skill_level}
  • Generate all documents in {document_output_language}

Step 5: Execute Append Steps

Execute each entry in {workflow.activation_steps_append} in order.

Activation is complete after all activation steps have run.

Workflow Execution

Follow the step files in order. Read one step fully, execute it, then load the next step only when directed. Do not skip, reorder, or pre-load steps.

First workflow step

Read fully and follow: ./step-01-clarify-and-route.md to begin the workflow.