Dynamic Workflows in Claude Code
Static prompts tell Claude what to do once. Dynamic workflows let Claude adapt — branching when a test fails, looping until a condition is met, or spawning a specialist subagent when a subtask is out of scope. Here's how to build them.
The core pattern: plan → execute → evaluate → re-route
A dynamic workflow starts with a planning phase that breaks the goal into subtasks, then evaluates each result before deciding what to do next. Claude Code's TaskCreate and TaskUpdate tools are built for this: create tasks at the start with status pending, mark them in_progress when started, and completed or failed when done. An orchestrator prompt that reads the task list can then re-route — retry a failed step with a different approach, or skip ahead if a dependency succeeded.
The simplest version is a CLAUDE.md instruction like: "After each edit, run the tests. If they fail, diagnose and fix before moving on. If they fail three times on the same file, stop and ask." This turns a linear "write code" task into a feedback loop without any code changes.
Using /loop and /plan
The /loop skill runs a prompt on a recurring interval, re-invoking itself until a stop condition is met. Pair it with a check command — for example, loop every 60 seconds running npm test until all tests pass, then commit. The loop self-terminates when the success condition appears in output.
The /plan skill generates a structured task breakdown before any code is written. By externalizing the plan to a PLAN.md file (or task list), subsequent agent turns can read current progress and pick up from the right step — even across session restarts. This is the key to workflows that survive context resets.
Spawning specialist subagents
For tasks that span domains — say, a refactor that touches both the database schema and the API layer — spawn separate subagents with narrow scopes rather than asking one agent to context-switch. The Agent tool in Claude Code creates a child agent with its own context window, runs a specific prompt, and returns a result. The orchestrator agent receives the summary and decides what to do next. Keep subagent tasks to 1-2 files and under 500 lines of change for best results.
Preventing runaway loops
Dynamic workflows can run indefinitely if success conditions are vague. Always encode explicit termination: a maximum iteration count, a concrete output to check for, or a "stop if N consecutive failures" rule in CLAUDE.md. Adding "If you've made more than 5 edits to the same file without passing tests, stop and report what you tried" to your CLAUDE.md prevents the most common runaway pattern.
← Back to Claude Cowork FAQ · See also: Skills Guide · Setup Guide