The Oracle of the in silico Coder
Coding agents need oracles.
Coding agents need an entity that accepts their work and that tells them if the code they produced is acceptable or not. Not code review, not the usual tests, but truth.
When generating code, coding agents can choose from a very large set of potential solutions, each with their own coding style, principled philosophy or bugs. To get trustworthy code that not only achieves function but also doesn't introduce verbosity and unnecessary complexity, we would need a way to reduce the scope of potential solutions.
One way to achieve this is by producing verifiable code. Code that performs as we expect, respects our business rules and has a certain form that adapts to verification.
Verifiable code is a smaller set of all the code that can be written, and if we want some guarantees of correctness, code must adapt to the patterns that match the verification language.
Coding agents need constrained creativity. Having syntactically correct code and passing made-to-fit tests is not enough to constrain coding agents to make bug-free and concise code. We need a way to collapse the infinite set of possible functions into a smaller set of verifiable ones.
For this, coding agents need oracles to tell them what is true and why.