Are coding agents ready for our team?
What a good first assignment looks like, and what you want to see before you merge.
The difference
The rules file was there. The agent nodded and built right past it. With Anvil Coder your rules stand in every single prompt, and whatever is machine-readable is checked against the result: a violation is a finding in the run, not a comment in the review.
Friday, 11:00, review before the release. The agent has bypassed the layering and written straight from the controller into the database. The rule was in the rules file. It was there last time, too.
The usual way is: generate first, check afterwards. A linter, a scanner, a review, and whatever fails gets reworked. That holds for individual files. In a project of hundreds of parallel work steps, a structural mistake from step 12 has propagated by step 200. Finding it then is no longer rework but rebuilding, and the context it arose in is long gone. That is why Anvil Coder checks at every step, not at the end.
The invariants do not live in documentation a model might have read. They stand in every prompt, at every step, for every stack.
The invariants that ship with the system are the baseline, not the limit. A particular layering, a naming scheme, a ban on certain libraries: you store them as your own guardrails, and they are loaded into every prompt exactly like the built-in ones. Store a rule machine-readably and it is also checked against the result; as prose it acts in the prompt.
From live operation the system also collects suggestions for new guardrails. None of them is applied by itself: the only way into the catalogue is your approval.
This is the point where architecture governance stops being a document nobody reads and starts being a property of the system.
Every rule carries a severity. A blocking rule halts the run the moment it is violated; an advisory one shows up as a note without stopping it. When a rule does not fit a project, you relax it with a justification or disable it for a limited time where the rule allows it. Some rules are structurally protected and stay in force.
They do not replace review. A system that checks every step against the same invariants produces consistent code, not necessarily correct code. Whether the requirement is right, whether the domain slicing holds, whether the solution fits the problem: that remains your decision, and Anvil Coder is built so that it stays with you. Which actions need an approval is something you configure per project.
How a rule moves from the wiki into the run, with categories, the #RULE pattern and the proposal inbox, is the subject ofGuardrails for AI coding agents.
If you have to vet the catalogue before handing it to a team, here are the facts.
What a good first assignment looks like, and what you want to see before you merge.
Follow one assignment from the tracker to the draft pull request in your repository.
Turn a requirements text into epics and stories your team can prioritise.