The engine
Anvil Coder is a system for autonomous software manufacturing: it decomposes requirements into a directed graph of atomic work steps, runs those steps in parallel and delivers a Git repository with working, tested code. Every single step is checked against the same invariants.
A language model has a context window. A real software project does not fit inside it — not the requirements, not the existing code, certainly not both at once. Put a whole project into one prompt anyway and you get a sketch back, not a program.
Prompt slicing is the answer: the requirements are not summarised, they aredecomposed. Each TaskSlice is small enough to fit into a prompt completely — together with the context that this particular step needs.
Execution runs on two crossing levels. Phases run one after another, separated by barriers: a phase starts only when every work step of the previous one is done. At the end stands a consistency pass over the whole. It is built so that a missing or disturbed measurement never waves anything through: it reports red and sends the affected work steps into capped repair rounds. The measurement itself is optional and not yet switched on in the hosted service. An additional build-and-test pass over the full state is optional; the hosted service runs it. TaskSlices run in parallel within a phase — as many at once as the deployment provides workers.
That is the difference between "typing faster" and "building more at the same time": order is preserved where it matters and dropped where it only slows things down.

A worker takes exactly one TaskSlice, executes one AI prompt, validates the result and commits it. No worker sees the overall plan; it sees its step and the context that step needs. Coordination sits with the coordinator, which holds the graph and distributes slices through a durable queue.
If a worker dies, its slice is not lost — it is redelivered. If a slice sits unacknowledged, it counts as demand and a worker is scaled up (optional).
A run is not a black box. The cockpit shows live what is happening: which TaskSlice is being worked on, which changes it produces and which intermediate steps the model takes.
That includes cost — not summarised at the end of the month, but itemised per TaskSlice: which step consumed how much. If you want to know where a run's time or budget went, the answer is in the run itself, not in a reconstruction after the fact.
The result is not a chat transcript someone copies code out of. It is a Git repository with history: every TaskSlice leaves its commit, every phase its state. What sits there is verifiable — by a human, by a pipeline, by an auditor.