Six ways to spend an LLM well. Three of them learn.
Thesis
A dynamic workflow is not a script that runs agents. It is an orchestration that spends judgment precisely and then learns. Every one of the six designs below is the same spine bent to a different shape of work: spend reasoning where judgment lives, gate everything else for free, keep an adversary on the residue, price honesty. The story moves along two axes: how you spend the LLM, and whether the workflow remembers.
Where these came from
These six designs are not a whiteboard taxonomy. They were authored to drive real work: reconciling every figure in an operator's canonical-metrics workbook against a source-of-record warehouse, where an agent had already learned it could pass by echoing the target instead of deriving it. That story is told in Matching isn't proof. This page is its sequel: once you have a gate that grades provenance and a skeptic that refutes, how do you actually schedule the reasoning? You pick a workflow. There are six worth knowing, and they arrange themselves on a grid.
The six designs on two axes: how you spend the LLM, and whether the workflow remembers. The top row is static; the bottom row accretes a file and gets cheaper every run.
The shared spine
Before the six diverge, they agree. Every design is a bending of one skeleton, and the skeleton is what makes any of them safe to run against agent-authored work:
Spend judgment precisely. Reasoning is the expensive resource. Route it to the places where judgment actually lives, and nowhere else.
Gate everything else for free. A deterministic check (did a query fire, is there a hardcoded answer, does the shape match) costs effectively nothing and runs on every change. Clean work should never touch an expensive model to be certified clean.
Keep an adversary on the residue. An independent skeptic, told to refute rather than confirm, is spent only on the ambiguous cases the free gate cannot settle.
Price honesty. A self-caught mistake costs a little; a skeptic-caught mistake costs a lot. When honest self-report is the dominant strategy, the agent tells you the truth because the incentives make truth cheapest.
Hold that spine fixed. The six designs are what you get when you bend it toward throughput, toward leverage, toward confidence, and then toward memory.
Act I. Static: three ways to spend an LLM well
The first three designs solve a fixed job. None of them remembers anything between runs; each simply spends the model well for a particular shape of work. You do not tune your way from one to another. You read the work and choose. Are the rows uniform and cheap? Do they cluster into families? Is being wrong expensive? Each question points at a different design.
Factory Pipeline: when you need throughput
Use it when rows are uniform and individually cheap. A cheap model authors each row. A free deterministic gate certifies the clean ones. Only the ambiguous residue, the rows the gate cannot settle, is handed to the adversary. Clean work never touches an expensive model, so the cost of the run tracks the amount of genuinely hard work, not the number of rows.
Factory Pipeline: cheap author, free deterministic gate, adversary only on the residue the gate cannot settle.
Crack & Stamp: when you need leverage
Use it when rows cluster into families that share a recipe. Spend the expensive reasoning once: crack the recipe on a single representative row, understand exactly how that family is derived, then stamp the recipe across every sibling. The costly thinking is paid for once and reused dozens of times; a lightweight audit watches for drift so a member that does not actually fit the family gets caught rather than stamped anyway.
Crack & Stamp: pay the expensive reasoning once on a representative, stamp it across the family, audit for drift.
Adversarial Duel: when being wrong is costly
Use it when a wrong answer is expensive and confidence has to be earned. The author proposes; the skeptic refutes with live queries against the source; the author repairs; the loop runs until the skeptic can no longer break the claim. It is the slowest of the three and the surest. You reserve it for the rows where the cost of being wrong dwarfs the cost of the reasoning.
Adversarial Duel: propose, refute with live queries, repair, loop until the skeptic cannot break it. Slowest, surest.
Act II. Learning: cheaper and safer every run
The turn is memory. The static three do the job; they do not make the next job easier. The learning three each accrete a single file, and that file is what turns a workflow into a system. Same spine, same shapes of work, but now every run leaves the next run cheaper, and every caught mistake leaves that mistake impossible.
Recipe Library: memory of solutions
The library is a file, recipes.json. Before authoring a row from scratch, the workflow retrieves a proven recipe for that shape of work. A hit solves the row for the price of a lookup. Only a miss pays for a fresh crack, and that crack is written back to the library. The more runs accumulate, the more first-try solves you get, because the library has already seen this shape before.
Recipe Library (recipes.json): retrieve a proven recipe before authoring; only a miss pays for a fresh crack, then writes it back.
Difficulty Router: memory of effort
The router is a file, policy.json. A bandit learns which strategy to spend on which difficulty of work. Cheap strategies win the easy rows; the expensive ones are held back for the rows that genuinely need them. Over runs the policy sharpens, so the workflow stops paying duel prices for factory work and stops trusting factory work with duel-grade rows.
Difficulty Router (policy.json): a bandit routes effort by difficulty; cheap strategies win easy work, expensive ones are reserved for hard.
Trap Immunity: memory of failure
The immunity is a file, traps.json. Every cheat the adversary catches becomes an antibody: a warning injected into the proposer's context so it does not try that trick again, and a new free check added to the deterministic gate so the same failure is caught for zero cost forever. The workflow builds an immune system out of its own history. A cheat the skeptic caught once at full price can never pass again.
Trap Immunity (traps.json): every caught cheat becomes an antibody, a warning to the proposer plus a new free gate check. The same failure never passes twice.
The three files are the whole difference between a workflow and a system:
what each learning design accretes
recipes.json → memory of solutions → more runs, more first-try solves
policy.json → memory of effort → effort matched to difficulty
traps.json → memory of failure → a mistake caught once is caught forever
The moral: layer, don't pick
You do not choose one of the six and live with it. You layer them. Start static, matched to the shape of the work in front of you: a factory for uniform rows, crack-and-stamp for families, a duel for the rows you cannot afford to get wrong. Then, as the job repeats, add learning: a recipe library so solutions stop being re-derived, a router so effort stops being misspent, trap immunity so caught cheats stop recurring.
Static gets the job done. Learning makes the next job cheaper and the next mistake impossible. The endgame is trap immunity: a workflow that can never again make a mistake it has already caught. That is the point of spending judgment precisely and writing down what you learn, not a faster run today, but a run next quarter that is both cheaper and strictly safer than the one you are looking at now.