Skip to content
BtSavvy

Governance & First Principles

Connecting software changes to approval evidence

In METR’s randomised trial, experienced developers took 19% longer with AI tools while estimating afterwards that AI had reduced completion time by 20%. We examine the gap between confidence and observed results. An approval record needs to identify the source checked, the evidence retained and the decision a reviewer made.

Experienced developers in Becker and colleagues’ METR trial (2025) took 19% longer to complete tasks when AI tools were allowed. Afterwards, they estimated that AI had reduced completion time by 20%. The randomised study covered 16 developers and 246 tasks in mature repositories they knew well, using early-2025 tools. It measured completion time and perceived speed, showing that confidence could remain high even when the observed result pointed the other way.

Cortex’s 2026 benchmark summary reports a related measurement gap: 91% of leaders said AI improved developer velocity and quality, while only 25% had supporting data. This is a survey of reported confidence and measurement practice; its public summary gives neither sample size nor survey method. For acceptance decisions, the implication is practical. A claim should be accompanied by evidence that a reviewer can inspect against the work being accepted.

A claim needs an object

Anthropic’s Claude Code guidance (accessed 2026) makes the requirement explicit. It asks for “evidence rather than asserting success: the test output, the command it ran and what it returned”. The distinction matters because a completion summary and an execution result perform different jobs. The summary explains what the agent believes it accomplished. The output records what a particular command observed under particular conditions.

We apply that guidance by attaching the observation to its source revision. A test result without that identity leaves the reviewer to reconstruct which patch was checked. An approval without a scope leaves the next person to infer what the reviewer accepted. Both omissions weaken the connection between the visible result and the underlying application described in what separates an AI-built demo from a working application.

OpenSSF’s SLSA v1.0 (2023) describes build provenance recording the platform, process and top-level inputs that produced an artifact. That record establishes origin. A review decision adds who accepted a particular change, on what evidence and with which qualifications. We connect these records through the same source revision so an artifact can be traced to the decision covering it.

The figure contrasts the agent’s completion claim with a retained decision record. Each check result identifies the source revision it tested. The command and output for revision X join the named approver’s rationale; the decision record links to build provenance identifying X. A later edit creates revision Y, which needs checks and a decision covering Y. The old evidence remains available as history without silently authorising the new work.

At the top, an agent reports Work complete, tests passed, asserted rather than shown and without saying which revision. Below, a commit graph on main shows revision X with three pieces of evidence attached: the test run's command and output for that commit, a decision naming the approver, scope and rationale, and build provenance for an artifact built from it. A later revision Y, edited after review, has empty slots for its own test run, decision and provenance. The evidence for X stays as history and does not cover Y.
Approval stays attached to the revision its evidence covers. This application of provenance and work-record guidance illustrates why a later edit requires a new review of the affected evidence.

View full-size diagram

Capture the observed result

Friel’s OpenAI Cookbook guidance on execution plans (2025) describes a living record of progress, decisions, unexpected findings and acceptance outcomes. Completed work remains distinguishable from work still to be done. This makes the status of a requirement inspectable while a long task is underway. A final summary can then refer to observations collected during execution instead of reconstructing them from memory.

For software review, we recommend retaining the test command and its output alongside the source revision and environment. The environment includes dependencies and configuration that affect the result. These references let another reviewer locate the observation and determine what it covers. The record should also identify a check that was skipped, interrupted or unable to start, because those outcomes warrant different decisions from a pass.

Coverage needs its own explanation. A successful rendering test demonstrates the behaviour that test exercises. An access-control requirement needs evidence about whether disallowed actions are rejected. Naming the requirement beside its check lets the reviewer identify that distinction before accepting the feature. More output is useful only when it helps establish the behaviour under review.

When an edit follows testing, the retained evidence still identifies the earlier revision. The reviewer should compare the edit with the scope of those checks and request fresh evidence for affected behaviour. This preserves the value of earlier work while making the new decision explicit. An unchanged status label cannot make an old command result describe code it never ran against.

A known failure can also be part of an acceptance decision. We recommend retaining the failed result, the reason for accepting it and the person authorised to make that exception. Its scope should identify which requirement or environment is affected. The exception then remains visible beside the approval, so a later reader can distinguish an intentional decision from a missing check.

The decision record should lead directly to these observations. A long conversation may contain the relevant output, but finding it should not depend on remembering where the agent discussed a problem. Stable references to the command results and reviewed revision give the decision a usable basis. The agent’s explanation remains helpful context alongside those observations.

Preserve the decision's scope

NIST’s AI Risk Management Framework 1.0 (2023), GOVERN 2.1, calls for documented roles, responsibilities and communication for managing AI risk. We apply that principle to acceptance by naming the approver and the authority exercised. A build account identifies who ran a process; an approver identifies who accepted its result. Recording both keeps execution and responsibility distinguishable.

SLSA also distinguishes recording provenance from protecting its integrity. Higher build levels add protections against forgery and tampering. Approval evidence raises a parallel concern: the author of a change should not be able to silently replace the results after review. We recommend storing the retained observations where changes are controlled and visible, with access appropriate to the evidence they contain.

The release check can then compare the artifact’s provenance with the revision covered by the decision. A mismatch is a reason to inspect what changed before proceeding. A matching revision still needs the review’s qualifications to travel with it, including accepted exceptions and environmental limits. The identity link makes the decision traceable; the evidence and review determine its substance.

Teams can assess this practice by following one recently accepted change backwards. Start with the artifact, identify its source, find the corresponding command results and read the review decision. The route should reveal what was checked and why the reviewer accepted it. A missing revision, inaccessible output or unexplained exception identifies a specific repair to the recordkeeping process.

The confidence measurements make observation worth insisting on. Published provenance and work-record guidance supplies a way to retain it during development. Connecting that observation to a named decision and a fixed revision makes approval explainable after the conversation has ended. A later change should earn a decision that covers the work actually being delivered.

References

  • J. Becker et al., Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity, METR research paper (2025). Across 16 developers and 246 tasks, AI access increased completion time by 19%; participants estimated a 20% reduction afterwards. Source
  • Cortex, Engineering in the Age of AI: 2026 Benchmark Report, public survey summary (2026). Reports 91% perceived improvement against 25% with supporting data; the linked summary omits sample size and method. Source
  • Anthropic, Best practices for Claude Code, technical documentation (accessed 2026). Recommends showing test output and executed commands as evidence for completion. Source
  • OpenSSF, SLSA Security levels, SLSA v1.0 (2023). Defines build provenance and increasing protection of its integrity. Source
  • A. Friel, Using PLANS.md for multi-hour problem solving, OpenAI Cookbook (2025). Describes living execution plans with progress, decisions and observable acceptance outcomes. Source
  • NIST, Artificial Intelligence Risk Management Framework (AI RMF 1.0), NIST AI 100-1 (2023), page 23. GOVERN 2.1 calls for documented roles and responsibilities for AI risk management. Source

The FORGE Diagnostic takes one recent change you select and examines whether its acceptance can be traced to retained review evidence. You get a readiness assessment and a proposed next step.

Book a Diagnostic