Separation of powers
Every unit is built by two agents that never share state.
The Specsmith authors the tests — both the visible suite and a hidden suite — and never writes a line of implementation. The Codewright writes the code, sees only the visible tests, and never sees the hidden suite. They run on different models, with no shared reasoning between them.
Why it kills teaching-to-the-test
When one agent writes both the tests and the code, the tests drift toward whatever the code already does. The suite passes because it was shaped to pass — and proves nothing.
Separating the roles breaks that loop. The Codewright cannot tune its code to a hidden suite it never sees, so passing those tests is real evidence, not a tautology. The visible tests guide; the hidden tests judge.
The precondition for an honest oracle
This separation is what turns the hidden suite into a genuine held-out oracle: a unit reaches trusted only after surviving tests it could not have studied for. From there, the trust model covers how mutation testing proves those tests have teeth.
See it in a build
The build trace names both roles — the Specsmith authoring visible and hidden suites, the Codewright generating candidates against the visible tests only:
