ORVIXLABSPrivate AI systems
// TECHNICAL PAPER

The agent that writes the code should not approve it

Separating build and audit is not theatrical distrust. It prevents the same context, assumptions and mistakes from validating their own output.

IDEA EVIDENCE CHALLENGE RESEARCHORVIXLABS

// ABSTRACT

When the same agent designs, implements, tests and declares its own work correct, separation of duties disappears. This paper explains why no-self-approval is an architectural property rather than an organizational preference.

no self-approvalAI agentsindependent auditseparation of duties

1. Capability is not independence

An agent can review its own code and find real defects. That does not make it an independent auditor. It shares context, assumptions, prior decisions and often the same representation of the problem that produced the defect.

Separation matters because genuine adversarial review needs freedom to question what the builder considers settled.

2. Self-review still has a place

Builders should run tests, linters, static analysis and internal review. The rule does not prohibit self-control; it prohibits confusing it with final approval. Several verification layers can exist with different responsibilities.

The first improves quality. The next challenges assumptions. Independent approval decides whether the evidence is sufficient.

3. Shared evidence, separate judgment

Builder and auditor should work over verifiable artifacts: specifications, diffs, tests, reproducible output, hashes, contracts and known states. Discussion becomes technical when both can point to the same evidence and disagree about its meaning.

This reduces the tendency of agents to replace tests with persuasive conversation.

4. Closing defects

A finding should not close because the builder says it was fixed. There should be reproduction before, an identifiable change and verification after. If behavior changes, affected outputs, hashes or contracts should be declared.

Traceability of the fix is part of the fix.

5. Human authority remains above

Even independent automated audit does not receive absolute authority. It may block, technically approve or demand evidence. Acceptance of risk, scope and promotion remains with the responsible human authority.

6. Consequence for agent teams

More agents do not guarantee better engineering. The difference appears when roles have incompatible powers: builders cannot approve; auditors cannot silently modify what they audit; promoters must see evidence produced by both.

The shared-context problem

A builder and its self-reviewer often share something deeper than code: the same interpretation of requirements, design decisions and blind spots. Even when the second step uses another model execution, the conceptual frame can remain intact. Independence is therefore not created simply by opening another conversation.

A strong audit needs permission to reconstruct the problem from primary evidence and challenge the contract the builder believed it satisfied.

Audit is not aesthetic code review

Style, naming and organization matter, but adversarial review must reach observable properties. Can the failure be reproduced? Is there a valid input that breaks the assumption? Does the system reject an action when authority is missing? Does the ledger correspond to the artifact that was evaluated? Criticism becomes useful when it produces a verifiable case.

A finding without reproduction can be a valuable suspicion, but it should be distinguished from a demonstrated defect.

Tests can be wrong too

A green suite does not automatically prove a system correct. A class of input may be missing, an assertion may measure the wrong property, or a fixture may construct a state impossible in production. The auditor should be able to attack both code and the sufficiency of the evidence that is supposed to approve it.

This prevents coverage or test count from becoming substitutes for reasoning.

Changing the artifact invalidates part of the approval

If an audit approves one version and the builder then modifies material files, the object is no longer identical. Traceability should bind evidence to a concrete version and decide which changes require which tests to be repeated. Otherwise approval can float forward and end up protecting something that was never audited.

Hashes, versions, manifests or equivalent mechanisms can preserve this relationship without making the principle depend on one implementation.

Disagreement is productive when it leaves evidence

Builder and auditor do not need to argue forever. The purpose of disagreement is to turn an objection into a test, a decision or an explicit limitation. When they converge, it should be clear what changed and why. When they do not, disagreement should escalate rather than disappear beneath an ambiguous approval.

Architecture improves when it can represent “we do not know yet” or “there is no consensus” as legitimate states.

A final independent review

For higher-consequence work, a second review after remediation can search for a different class of problem: not direct the builder, but evaluate the closed artifact as a third party. This final independence reduces the chance that a long prior negotiation causes every participant to gradually share the same assumptions.

It is not always necessary. When used, its value comes from not having participated in constructing the answer it must now judge.

Rigor with agents, not agent theater

Adding more models to a workflow does not automatically create quality. Improvement appears when roles deliberately hold incompatible responsibilities, produce different evidence and cannot certify their own work.

The question is not how many agents participated. It is whether there is a chain of responsibility in which building, objecting, correcting and approving are separable and auditable acts.

Criteria for evaluating an implementation

A technical thesis becomes more useful when it can be translated into observable design questions. Before calling an implementation mature, it should be possible to answer with evidence—not only intention—questions such as:

  • Does the auditor receive an objective distinct from the builder?
  • Can it challenge requirements or only review implementation?
  • Does each material finding have reproduction or verifiable evidence?
  • Can the tests themselves be attacked and found insufficient?
  • Does changing the artifact automatically invalidate relevant evidence?
  • Is there a path to escalate disagreement without forcing false consensus?

These questions are not a universal certification. They are a discipline for finding where a promise still depends on implicit behavior, tribal knowledge or unmeasured trust. Answers vary by domain, but they should be represented through contracts, states, tests, documentation or enough operational evidence that later review does not depend on team memory.

Organizational implication

Role separation also protects engineering culture. When the builder controls the definition of “done,” incentives favor closing tasks. An independent auditor introduces a different responsibility: demonstrate that closure is justified. The resulting friction is not waste when it produces reproducible cases and concrete changes; it prevents delivery speed from being confused with demonstrated quality.

This also requires accepting that some properties cannot be solved by a technology purchase. Responsibility, ownership, escalation criteria and authority are organizational decisions. Software can make them visible, record their exercise and block unauthorized paths, but it cannot invent a governance structure nobody defined. Technical architecture and responsibility architecture therefore need to evolve together.

Limits and open questions

None of these principles eliminates uncertainty, human error or provider failure. Nor does any one of them define the evidence threshold appropriate to every domain. Exploratory research, industrial operations and regulated decisions have different consequences and need different thresholds.

The value of explicit architecture is to make those differences discussable. Instead of hiding them inside a prompt or a persuasive answer, it allows people to ask what is known, what is not, who may decide, what can be reversed and what evidence will remain afterwards. The ability to formulate and preserve limits is as much a system property as the ability to produce an answer.

The central problem is correlated error

If the same agent interprets the requirement, writes the code and designs the test, an early misunderstanding can propagate through every stage. The test may pass precisely because it shares the same incorrect interpretation. Separation of functions does not eliminate error, but it reduces the chance that one cognitive failure governs the entire cycle.

Independence does not mean using another model brand

Two agents can be nominally different while sharing prompts, context, assumptions and the goal of “making the task pass.” Useful independence comes from different contracts: one builds while another tries to prove non-compliance; one knows design intent while another works from observable criteria; one can modify code while the auditor cannot.

A test must exercise the property it claims

“There is a test” is not sufficient evidence. A security test that never reaches the sensitive route, a determinism test that accidentally freezes every input or a migration test that does not start from an earlier version can all be green while proving nothing. Audit must inspect test semantics, not only results.

Frozen tree and audited object

An approval applies only to the artifact that was audited. If the builder changes material files after review, the old approval no longer describes the current state. The rule sounds bureaucratic until a small change invalidates exactly the property that was just approved.

What an independent auditor should be able to demonstrate

  • Reproduce the defect without relying on the builder's explanation.
  • Distinguish a real failure from an unreachable artificial state.
  • Verify that the fix does not change unrelated guarantees.
  • Show that a test fails before the fix and passes after it.
  • Confirm that the audited artifact is the same artifact being promoted.

Productive disagreement between builder and auditor

Audit should not be a ceremony where one side emits a list and the other accepts it. The builder may demonstrate that a finding cannot occur in a real run, that a proposed fix breaks another guarantee or that reproduction depends on impossible state. The auditor must in turn be able to update or withdraw the finding. Quality appears when both converge on evidence, not when one “wins.”

Severity based on reachability

A defect exploitable through normal input does not have the same urgency as an inconsistency that appears only when internal state is manually fabricated. Both may deserve correction, but audit architecture should distinguish reachability, frequency, impact and detectability. This helps repair without confusing defensive robustness with operational incident.

Hashes and evidence of identity

When review applies to concrete artifacts, hashes or digests can link reports, tests and releases. They do not make software correct, but they remove a basic ambiguity: approving A and deploying B. Identity of the audited object is a precondition for approval to mean anything.

Audit the auditor

An auditor can also be wrong, use a weak test or misunderstand a contract. Important findings should therefore be reproducible, and a final independent audit should be able to review both the product and the quality of prior audit. Separation of functions works best when no function is immune to verification.

Audit as an executable contract

The more audit criteria can be expressed as verifiable properties, the less the process depends on persuasion. Not every criterion can be automated, but many can become invariants, regression tests, packaging checks and identity verification. Human review can then focus on semantics, architecture and risks that do not fit a mechanical test.

Process metrics

Beyond bug count, useful measures include how many findings are reproducible, what percentage occur in real execution, how many tests exercise the property they claim, how much the tree changes after approval and how often a finding must be reopened. These metrics improve the engineering process, not only the final product.

Expected result

Builder-auditor separation aims to produce a release whose history explains not only what was done, but how the team attempted to prove it wrong. That attack record is a form of evidence. It does not guarantee absence of defects, but it reduces the space of trivial, correlated and silent error.

// ORVIXLABS

Public research explains the principles. Real systems are engineered around private operational context.

Discuss a system