Assurance Envelopes for Autonomous Coding Agents: Minimum-Cost Evidence for Software Change
Organizations: SmartInfer AI
Abstract
When a coding agent returns to existing software, it inherits evidence from earlier engineering work: tests, type checks, proofs, static analyses, and traces. Reloading all of it is wasteful, but dropping a piece the change depends on can leave a required property unsupported. Given the properties a change must preserve, its obligations, we ask which least-cost subset of the available evidence re-establishes them, and we call such a subset a task-conditioned assurance envelope. Evidence and the rules that combine it form a typed inference graph; an obligation is met when forward chaining from the selected evidence reaches it, and we validate every selection by that closure rather than by trusting the optimizer. The software-derived graphs in our evaluation come from preserved outcomes of prior AI coding-agent runs; we freeze those artifacts and ask which accumulated evidence should be restored for a later task. Small graphs from Rust, IronBlocks, and Pong outcomes show that the minimum envelope depends on the task, that none may exist when current evidence cannot re-establish a required property, that some properties need several pieces of evidence together, and that expanding the requirements adds evidence rather than replacing it. A prespecified synthetic benchmark of 249 instances characterizes computation: a baseline that discards the 'several pieces together' structure necessarily fails to re-derive them; every completed exact cross-check agreed with the CP-SAT optimizer; and median solve time stayed below 20 ms at 500-evidence graphs, except that graphs with many alternative derivations per target timed out at far smaller sizes, so structure, not raw size, drives difficulty. The contribution is a bounded application of established optimization to selecting assurance context for a software change; discovering the obligations and downstream agent benefit remain open.
Figures & tables
| Graph/task | Required support | Cost | Result |
|---|---|---|---|
| Rust C, local | 2 | feasible; trace evidence omitted | |
| Rust C, trace | 3 | feasible; task adds trace root | |
| Rust B, local | 2 | feasible | |
| Rust B, trace | none | – | no sufficient envelope; no positive trace support |
| IronBlocks | 2 | unique compositional optimum; FLAT chooses invalid cost-1 singleton | |
| Pong, | 1 | prior repaired-artifact obligation |
| Family | Evaluations | Invalid FLAT | False roots |
|---|---|---|---|
| F1 independent | 36 | 0 | 0 |
| F2 conjunction | 45 | 45 | 651 |
| F3 alternatives | 33 | 0 | 0 |
| F4 shared support | 33 | 33 | 2,022 |
| F5 irrelevant evidence | 36 | 0 | 0 |
| F6 mixed composition | 27 | 27 | 636 |
| Size | Graph instances | Both methods complete | Compositional timeouts |
|---|---|---|---|
| 10 | 21 | 21 | 0 |
| 15 | 21 | 21 | 0 |
| 20 | 21 | 6 | 15 |
| Method-instance total | 63 | 111/126 completed | |
Evidence Selection
Evidence selection chooses the documents, passages, claims, or observations that best support an answer or decision.
See all 61 papers