BMAD-METHOD/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md

4.3 KiB

name description workflow_path thisStepFile nextStepFile_modeA nextStepFile_modeB
step-01-mode-detection Determine execution mode (tech-spec vs direct), handle escalation, set state variables {project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev {workflow_path}/steps/step-01-mode-detection.md {workflow_path}/steps/step-03-execute.md {workflow_path}/steps/step-02-context-gathering.md

Step 1: Mode Detection

Goal: Determine execution mode, capture baseline, handle escalation if needed.


STATE VARIABLES (capture now, persist throughout)

These variables MUST be set in this step and available to all subsequent steps:

  • {baseline_commit} - Git HEAD at workflow start
  • {execution_mode} - "tech-spec" or "direct"
  • {tech_spec_path} - Path to tech-spec file (if Mode A)

EXECUTION SEQUENCE

1. Capture Baseline

Run git rev-parse HEAD and store result as {baseline_commit}.

2. Load Project Context

Check if {project_context} exists (**/project-context.md). If found, load it - this is foundational reference for ALL implementation decisions.

3. Parse User Input

Analyze the user's input to determine mode:

Mode A: Tech-Spec

  • User provided a path to a tech-spec file (e.g., quick-dev tech-spec-auth.md)
  • Load the spec, extract tasks/context/AC
  • Set {execution_mode} = "tech-spec"
  • Set {tech_spec_path} = provided path
  • NEXT: Load step-03-execute.md

Mode B: Direct Instructions

  • User provided task description directly (e.g., refactor src/foo.ts...)
  • Set {execution_mode} = "direct"
  • NEXT: Evaluate escalation threshold, then proceed

ESCALATION THRESHOLD (Mode B only)

Evaluate user input with minimal token usage (no file loading):

Triggers escalation (if 2+ signals present):

  • Multiple components mentioned (dashboard + api + database)
  • System-level language (platform, integration, architecture)
  • Uncertainty about approach ("how should I", "best way to")
  • Multi-layer scope (UI + backend + data together)
  • Extended timeframe ("this week", "over the next few days")

Reduces signal:

  • Simplicity markers ("just", "quickly", "fix", "bug", "typo", "simple")
  • Single file/component focus
  • Confident, specific request

Use holistic judgment, not mechanical keyword matching.


ESCALATION HANDLING

No Escalation (simple request)

Present choice:

**[t] Plan first** - Create tech-spec then implement
**[e] Execute directly** - Start now
  • [t]: Direct user to {create_tech_spec_workflow}. EXIT Quick Dev.
  • [e]: Ask for any additional guidance, then NEXT: Load step-02-context-gathering.md

Escalation Triggered - Level 0-2

This looks like a focused feature with multiple components.

**[t] Create tech-spec first** (recommended)
**[w] Seems bigger than quick-dev** - see what BMad Method recommends
**[e] Execute directly**
  • [t]: Direct to {create_tech_spec_workflow}. EXIT Quick Dev.
  • [w]: Direct to {workflow_init}. EXIT Quick Dev.
  • [e]: Ask for guidance, then NEXT: Load step-02-context-gathering.md

Escalation Triggered - Level 3+

This sounds like platform/system work.

**[w] Start BMad Method** (recommended)
**[t] Create tech-spec** (lighter planning)
**[e] Execute directly** - feeling lucky
  • [w]: Direct to {workflow_init}. EXIT Quick Dev.
  • [t]: Direct to {create_tech_spec_workflow}. EXIT Quick Dev.
  • [e]: Ask for guidance, then NEXT: Load step-02-context-gathering.md

NEXT STEP DIRECTIVE

CRITICAL: When this step completes, explicitly state which step to load:

  • Mode A (tech-spec): "NEXT: Loading step-03-execute.md"
  • Mode B (direct, [e] selected): "NEXT: Loading step-02-context-gathering.md"
  • Escalation ([t] or [w]): "EXITING Quick Dev. Follow the directed workflow."

SUCCESS METRICS

  • {baseline_commit} captured and stored
  • {execution_mode} determined ("tech-spec" or "direct")
  • {tech_spec_path} set if Mode A
  • Project context loaded if exists
  • Escalation evaluated appropriately (Mode B)
  • Explicit NEXT directive provided

FAILURE MODES

  • Proceeding without capturing baseline commit
  • Not setting execution_mode variable
  • Loading step-02 when Mode A (tech-spec provided)
  • Attempting to "return" after escalation instead of EXIT
  • No explicit NEXT directive at step completion