Core workflow

The commands that plan, build and verify. These are the ones you use daily.

CommandArgumentsWhat it does
/devflow:new-project[--auto]Set up a new project from scratch — asks what you're building, researches the domain, defines requirements, and creates a development roadmap.
/devflow:discuss-objective<objective-number>Capture implementation decisions for an objective before planning — lock in preferences so research and planning don't drift into assumptions.
/devflow:research-objective[objective]Research how to build something before planning it — discovers best practices, architecture patterns, and pitfalls for the domain.
/devflow:plan-objective[objective] [--auto] [--research] [--skip-research] [--gaps] [--skip-verify] [--work TYPE] [--tdd POSTURE] [--depth LEVEL] [--model PROFILE]Create a detailed execution plan for an objective, breaking it into concrete tasks with success criteria.
/devflow:execute-objective<phase-number> [--gaps-only]Execute all planned tasks for an objective, running independent tasks in parallel for speed.
/devflow:build<objective-number-or-description> [--pause] [--skip-research] [--work TYPE] [--tdd POSTURE] [--depth LEVEL] [--model PROFILE]Build a feature from start to finish — plans the work, executes it, and verifies the result in one command.
/devflow:verify-work[objective number, e.g., '4']Test what was built by walking through expected behavior and checking it matches reality.
/devflow:quick[--full]Small features (single executor, no planner, no verifier) — between micro (1-line) and build (multi-subsystem). Cutoff: <5 files, <200 LOC, no new abstractions.
/devflow:micro<description>Sub-30-LOC, single-file changes. The cheapest DevFlow path (~2k tokens). Use for typo fixes, single-line bug fixes, prop renames, dependency bumps, missing semicolons.
/devflow:debug[issue description]Investigate bugs using a structured approach that survives context resets. Tracks hypotheses, evidence, and progress across sessions.

Choosing a tier

The single biggest cost lever in DevFlow is picking the right entry point.

ScopeCommandWhat runs
Sub-30 LOC, one file/devflow:microNo agents. ~2k token floor.
Under 5 files, under 200 LOC, no new abstractions/devflow:quickOne executor. No planner, no verifier.
Multi-file feature, more than one subsystem/devflow:buildFull plan → execute → verify
Something is broken/devflow:debugStructured investigation with persistent state

/devflow:build

The workhorse. Chains planning, execution and verification with gates in between.

/devflow:build 4
/devflow:build "add rate limiting to the public API"
/devflow:build 4 --pause --model budget

Routes on phrases like

build this build objective let's build implement this ship this make this work build the work on objective start building let's implement

FlagEffect
--pauseStop after planning so you can review before execution
--skip-researchSkip the research agent — use on familiar ground
--work TYPEOverride the objective’s work type
--tdd POSTUREOverride the derived TDD posture
--depth LEVELquick / standard / comprehensive
--model PROFILEquality / balanced / budget for this run only

The last four override the intent model resolution for this run without changing any files.

/devflow:plan-objective

Planning on its own, when you want to review before committing to execution.

/devflow:plan-objective 4
/devflow:plan-objective 4 --research --depth comprehensive
/devflow:plan-objective 4 --gaps          # plan gap-closure work after verification

Runs objective-researcherplannerjob-checker. The job-checker is the part worth knowing about: it reads the plan before it executes and asks whether running it would actually achieve the objective’s goal. Disable it with workflow.job_check: false if you find it redundant on a familiar project.

/devflow:execute-objective

Execution on its own, against plans that already exist.

/devflow:execute-objective 4
/devflow:execute-objective 4 --gaps-only   # only the gap-closure jobs

Groups jobs into waves and dispatches each to an executor in a fresh window and its own git worktree.

/devflow:verify-work

/devflow:verify-work 4

Tests against the objective’s goal, not against the task list. Produces VERIFICATION.md and UAT.md. Backend-aware: web surfaces are driven through Playwright, Flutter through Maestro.

If it finds gaps, the objective’s status becomes gaps_found; plan the follow-up with /devflow:plan-objective 4 --gaps.

/devflow:quick

/devflow:quick "add a --json flag to the status command"
/devflow:quick --full     # forces the full quick pipeline

One executor, atomic commits, no planning ceremony. If the change turns out to be bigger than the cutoff, it tells you and suggests /devflow:build.

/devflow:micro

/devflow:micro "rename userId to accountId in auth.go"

The cheapest path. No agents at all. It has its own commit flow:

df-tools micro start "<description>"
df-tools micro commit [--files <path>...]
df-tools micro abort

/devflow:debug

/devflow:debug "login redirects to 404 after password reset"

A different loop from build. The debugger agent works a structured scientific method — hypothesis, prediction, experiment, evidence — and writes it all to .planning/debug/. That persistence is the point: a hard bug outlives a context window, and starting over from scratch each session is how bugs stay unfixed.

Resolved sessions archive to .planning/debug/resolved/.

Routes on phrases like

debug this something's broken fix this bug not working there's an error why isn't this working?