Anvil CoderLog in

The engine

From ticket to pull request

You pull a ticket onto the start state, Anvil Coder plans, slices and builds. Back comes a draft pull request in your repository, with one commit per work step and a run report that says what was checked.

A ticket in five steps

  1. Describe: task and acceptance criteria go into the ticket, or you develop them in Spec Studio.
  2. Plan: Anvil Coder splits the implementation into small steps, each with exactly the context it needs.
  3. Implement: agents create changes and commits in your repository, under your guardrails.
  4. Check: gates report their results into the run report. You see what ran and what did not.
  5. Review: you open the draft pull request in your code host and decide on the merge.

Read a real run: a Laravel bug fix, three commits, fix and regression test in 24 minutes.

The result is a repository, not a suggestion

The result is not a chat transcript someone copies code out of. It is a Git repository with history: every work step leaves its commit, every phase its state. You read on the commit which assignment it came from instead of reconstructing what an agent was thinking. And what sits there is verifiable: by you, by your pipeline, by an auditor.

System diagram: tickets and epics from YouTrack, GitHub, Jira, GitLab and the internal board flow into Anvil Coder; out come pull requests on GitHub, GitLab and Bitbucket; signals feed the dashboard, the model layer is interchangeable
The flow at a glance. Dashed means planned.

Why small steps

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 this particular step needs. That is why the quality of the two-hundredth step is the same as the first.

Before the ticket: the Spec Studio

Not every assignment starts as a finished ticket. For the text that is not one yet, the cockpit has the Spec Studio: a guided specification in seven sections, from goal through roles and flows to the stack profile, each with a follow-up chat that names gaps instead of papering over them. At the end real tickets emerge: epics and stories in your tracker, on request together with a newly created repository.

The studio writes tickets, not code. Which story runs is your call, story by story. The guide (in German) lives in the documentation.

Two axes: phases and slices

Execution runs on two crossing levels. Phases run one after another, separated by barriers: a phase starts only when every step of the previous one is done. TaskSlicesrun in parallel within a phase. 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.

Requirements
The ticket becomes a verified picture of requirements. Open points stand in the run as assumptions, not between the lines.
Architecture
Structure, interfaces and dependencies are settled before the first line of code exists, so no step builds past another.
Implementation
Each work step is exactly one prompt on one worker with its own working tree. The model sees only what this step needs.
Reconciliation
The parts built in parallel are checked against each other and merged.
Test
Tests are work steps of their own, not an afterthought.
Verification
The result is checked against the requirements, not against the intention that produced it.
Documentation
What was built gets described while the context is still fresh.
Consistency
One final pass over the whole: does what was built separately fit together?

At the end the consistency pass checks the whole. If it measures a regression, it sends the affected steps into capped repair rounds; if it cannot measure, it lets the run through and records that on the gate, so you see it in the run report instead of missing it.

Two things you should know: reconciliation, verification and the build-and-test pass are switchable per project and switched on in the rented service, and if your project's build tools are missing in the sandbox, the run marks the result unverified instead of calling it green.

Illustration: one large orange block on the left becomes, along a line, a row of equally sized small blocks, an epic becomes stories
An epic pulled onto the start state decomposes itself into evenly cut user stories. Which of them runs, you release one by one.

What a worker does

A worker takes exactly one TaskSlice, executes one prompt, validates the result and commits it. No worker sees the overall plan; it sees its step and the context that step needs. The coordinator holds the plan and distributes slices through a durable queue.

If a worker dies, its slice is not lost, it is redelivered. If the queue backs up, workers are added; when it is empty, the fleet scales to zero.

What you see during a run

A run is not a black box. In the cockpit you follow live which step 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 step. Where a run's time or money went is written in the run itself, not in a reconstruction afterwards.