원클릭으로
bmad-dev-auto
One iteration of an unattended development loop. Use when invoked by name.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
One iteration of an unattended development loop. Use when invoked by name.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Distill any intent input into the SPEC kernel + companions — the canonical, preservation-validated machine contract for downstream work. Use when the user says "create a spec", "distill this into a spec", "validate this spec", "update the spec", or "break this into stories".
Adversarial code review using parallel review layers and structured triage. Use when the user says "run code review" or "review this code"
Implements any user intent, requirement, story, bug fix or change request by producing clean working code artifacts that follow the project's existing architecture, patterns and conventions. Use when the user wants to build, fix, tweak, refactor, add or modify any code, component or feature.
Review a code change for changed behavior that could regress without reliable verification catching it. Use when checking whether a change is adequately verified.
Analyzes current state and user query to answer BMad questions or recommend the next skill(s) to use. Use when user asks for help, bmad help, what to do next, or what to start with in BMad.
Orchestrates lively group discussions between installed BMAD agents or custom personas, and helps author custom parties. Use when the user requests party mode, a roundtable, or multiple agent perspectives — or wants to create/configure a party, define personas, or build an AI focus-group panel.
| name | bmad-dev-auto |
| description | One iteration of an unattended development loop. Use when invoked by name. |
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.
To HALT with a final status and optional blocking condition:
{spec_folder} and {story_id} are set): the write-back always lands at the id-keyed story spec. The {implementation_artifacts} fallback in step 2 below is never used in this mode, even for halts before planning starts.
{spec_file} is still empty, resolve it now:
stories.yaml is missing/unparseable, or {story_id} has no matching entry): use the fixed slug segment unresolved: {spec_file} = {spec_folder}/stories/{story_id}-unresolved.md.ambiguous story file match — more than one file already matches {spec_folder}/stories/{story_id}-*.md): use the fixed slug segment ambiguous instead of deriving from the title, so the write-back neither creates a third title-derived candidate nor risks silently landing on one of the existing ambiguous files: {spec_file} = {spec_folder}/stories/{story_id}-ambiguous.md.{spec_file} = {spec_folder}/stories/{story_id}-{slug}.md, where {slug} is a kebab-case slug from title (and description if needed) with no {story_id} prefix — the same derivation step-01's Route uses.{spec_file} exists on disk, update status in frontmatter and append missing result details under ## Auto Run Result.---
status: <final status>
---
# <entry title, or "Story {story_id}" if the entry could not be resolved or the on-disk match was ambiguous>
## Auto Run Result
Status: <final status>
Blocking condition: <blocking condition, if any>
{spec_file} is known and exists, update status in frontmatter and append missing result details under ## Auto Run Result.{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>
python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_completeworkflow.on_complete is non-empty, follow it as the final instruction before exiting.Using subagents when instructed is mandatory. If you cannot, HALT with status blocked and blocking condition no subagents.
Invoke every subagent synchronously: launch it, wait for it to return within the same turn, then continue with its result. When a step says to run subagents "in parallel" (e.g. the reviewers), that means several blocking calls awaited together in one turn — not detached execution. Never run a subagent in the background / detached / async (e.g. run_in_background: true), and never end your turn to "await a completion notification." This workflow runs unattended: there is no event loop to resume a yielded turn, so a backgrounded subagent never hands control back and the run stalls. The only sanctioned way to end a turn is the HALT protocol above with an explicit terminal status.
A specification is "Ready for Development" when:
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.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:
{skill-root}/customize.toml — defaults{project-root}/_bmad/custom/{skill-name}.toml — team overrides{project-root}/_bmad/custom/{skill-name}.user.toml — personal overridesAny 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.
Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.
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.
Load config from {project-root}/_bmad/bmm/config.yaml and resolve:
project_name, planning_artifacts, implementation_artifacts, user_namecommunication_language, document_output_language, user_skill_leveldate as system-generated current datetimeproject_context = **/project-context.md (load if exists){communication_language}{user_skill_level}{document_output_language}Execute each entry in {workflow.activation_steps_append} in order.
Activation is complete after all activation steps have run.
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.
Read fully and follow: ./step-01-clarify-and-route.md to begin the workflow.