A workflow is a program, not a skill
I've tried most of the ways to get Claude through a big piece of work. Better prompts, skills, written specs, teams of agents it manages itself. They lean on the same thing underneath. The model holds the plan in its head as it works, and on a long run that grip slips and the work drifts.
A dynamic workflow is a different kind of thing. You describe the task, and Claude writes an actual program for it, a JavaScript file, and a runtime runs that program in the background. The program holds the loop, the branching, and every partial result. It spawns a fleet of fresh agents. Claude Code is already a harness, the loop that drives the model and its tools. A workflow is a smaller harness it builds on the spot for one task, a sub-harness that runs the work so the model doesn't have to hold it together.
A skill or a spec is text the model reads and follows, the opinionated way you want a thing done. A workflow is code that runs and gives the orders. The model writes it, and the runtime takes over.
A workflow takes one of a few standard shapes, and Claude picks the one that fits the task.
route each task to the right handler
split wide, merge into one answer
separate skeptics check the output
flood with options, keep the best
rank by head-to-head comparison
keep going until a real stop
Most days you won't need one. For a focused job in a single pass, a skill is still the right tool, like running a review checklist over a pull request. A workflow doesn't replace that. You reach for one when the work is wide, or repetitive, or has to be checked by something other than the agent that did it, like auditing a whole codebase or ranking a few hundred applicants. Each item gets a clean context of its own, and the program holds the run from end to end.
This is what I'm building into Contextful, where the routine work runs on structure like this and only the uncertain calls reach a person.