Contents
  1. Purpose and foundations
    1. From suggestions to repository work
    2. Define behavior and authority
    3. Turning points in automated change
  2. Repository knowledge
    1. Establish the working baseline
    2. Locate the behavior
  3. Planning and modification
    1. Plan around dependencies
    2. Make bounded edits
  4. Execution and diagnosis
    1. Interpret execution results
    2. Check the intended behavior
      1. Plausible patches and correct repairs
    3. Diagnose before editing again
  5. Collaboration and review
    1. Steer and resume work
    2. Review the actual change
  6. Verification and integration
    1. Verify the final candidate
    2. Check the combined result
  7. Evaluation and usefulness
    1. Build a software-task evaluation
    2. Read benchmark claims precisely
    3. Measure useful delivery
  8. Check understanding
  9. Open questions
  10. Selected talks
  11. References
  12. Talk library
← All topics

AI Coding Agents: Turning Software Tasks Into Tested Changes

Coding agents turn software requests into a loop of investigation, editing and checking. A model chooses what to inspect or change; tools let it work in the repository; execution results shape the next step. Useful autonomy depends on understanding the task, preserving existing work and checking the exact change that will be integrated. This chapter follows that workflow without treating an agent’s completion message as proof that the software works.

For an in-person event on this theme, explore Code Summit, our conference on AI coding agents in San Francisco (November 10–12, 2026).

Purpose and foundations

From suggestions to repository work

A coding agent uses a model to choose code-related actions, observes their results, and selects further actions toward a task. It might search for a function, inspect its callers, edit an implementation, and run a test before deciding what to do next. What distinguishes this from a predefined workflow is who selects the subsequent operation—not whether execution happens in a loop or in the background. Agent Engineering develops that distinction.

A repository contains a project's version-controlled files and history. Working on a repository means changing an existing system of relationships, not merely producing a self-contained answer. The model proposes operations; surrounding software executes permitted requests and returns their results so the model can choose its next action. This surrounding software is the harness, which supplies instructions, tools, and the execution loop. Agent Runtimes and Harness Engineering explains its execution responsibilities.

Delegation changes the division of work, not the need to establish an acceptable result.
ResponsibilityCode suggestionDelegated repository task
Locate relevant codeThe programmer usually supplies the immediate editing context.The agent can investigate files and dependencies.
Modify and checkThe programmer incorporates the suggestion and directs checks.The agent can edit, execute checks, and investigate failures.
Accept the resultThe programmer judges the resulting change.Acceptance remains a separate, accountable decision.

GitHub's delegated maintenance workflow illustrates this separation: an issue initiates work, the agent prepares a draft pull request and runs tests, and review can request revisions. The documented agent cannot merge its own pull request. This is one concrete allocation of authority, not a requirement that every coding agent use the same interface.

Define behavior and authority

Acceptance criteria describe testable conditions for the requested behavior. The definition of done adds the completion obligations surrounding that behavior, such as required checks and review. State both what should change and what must remain unchanged. A feature adds behavior; a bug fix restores intended behavior; a refactor changes internal structure while preserving observable behavior. That preservation requirement is central to Fowler's definition, not an optional quality goal.

Behavioral requirements and delegated authority answer different questions. Specify whether the agent may inspect files, edit them, execute code, publish a proposal, merge, or deploy. Permission at one boundary need not extend to the next. Likewise, distinguish an implementation detail the repository can answer from a product decision it cannot: locating the authorization check calls for investigation; deciding whether another role should gain access calls for an authorized decision.

For example, acceptance criteria for article publishing can separate starting conditions, actions, and observable outcomes, as Gherkin recommends. These scenarios define application behavior; they do not authorize testing against real accounts or releasing the implementation.
Starting conditionActionExpected outcome
The user owns the draft.Attempt to publish it.The published article becomes available.
The draft belongs to another user.Attempt to publish it.The request is refused; the draft stays unchanged.

Use close collaboration when intent is unsettled or a wrong direction would be expensive to reverse. Bounded background delegation fits clearer tasks with executable checks and a reviewable stopping point. Backlog.md's workflow places reviews at specification, plan, and code; these are useful decision locations, not mandatory ceremony for a tiny edit. Stop when the agreed boundary is reached, a necessary decision is missing, or the attempt budget is exhausted. See requesting the right human decision.

Turning points in automated change

Program synthesis constructs programs from specifications or examples. Automated program repair instead searches for changes to an existing program. Coding agents connect learned generation to repository tools, but inherit an older problem: constructing a candidate and establishing that it meets the intended specification are different achievements.

These contributions mark complementary approaches, not a sequence in which each displaced its predecessor.
ContributionDateWhat changed
Imperative deductive synthesis — Zohar Manna and Richard Waldinger1987Extended proof-directed program construction to mutable data by representing computational states explicitly.
GenProg — Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest2009Searched for repairs to existing C programs, using compilation and tests to evaluate candidate edits.
Codex — Mark Chen and colleaguesJuly 2021Studied learned Python function generation from docstrings using a model specialized on public GitHub code.
SWE-agent — John Yang, Carlos E. Jimenez, and Princeton collaboratorsMay 2024Studied how repository navigation, editing, and execution interfaces affect an agent's ability to repair software.

In deductive synthesis, a program is constructed from a proof that the specified result exists. Manna and Waldinger's 1987 contribution extended this approach to mutation: changing data can invalidate statements that were previously true. Their hand-derived list reversal required finite lists and restrictions on shared pointers; guaranteeing storage efficiency also required specifying it. Test-directed repair can work without a complete formal specification, but inherits the limits of its tests. Interactive agents add observations from development tools, while still needing a clear account of acceptable behavior and checks that distinguish success from failure.

Repository knowledge

Establish the working baseline

Before editing, identify the state being changed. A commit records a project version; a branch is a movable reference to a line of development. The working tree contains checked-out files, and HEAD identifies the current branch or a detached commit. HEAD identifies the committed baseline; the working tree can also contain uncommitted modifications and untracked files. The index, or staging area, holds content selected for the next commit.

Git status distinguishes staged changes, unstaged modifications, and untracked files. Record these before work begins; their presence does not tell you who owns them. Default output also omits ignored files. Preserve unrelated work rather than treating every difference as disposable agent output. When an operation would overwrite or remove existing content, inspect its scope and resolve ownership first.

A linked worktree is another checked-out directory for the same repository, with its own HEAD and index. Git worktrees separate editable files while sharing repository history and some configuration. They do not isolate processes, credentials, ports, or databases. Two checkouts pointed at one test database can still interfere. A sandbox restricts execution and resource access; its filesystem controls solve a different problem from checkout separation.

Example configuration. A fixture reset from one test process can disrupt the other despite separate checkout files. Neutral connectors indicate shared Git history; colored arrows indicate database operations. Worktrees do not provide process or resource isolation, and database sharing is not required.

The baseline also includes the toolchain, dependency versions, configuration, and required services. A lockfile records dependency resolution; it is not the installed dependency tree. For example, pnpm can update only a lockfile without populating installed packages. Its frozen-lockfile option rejects missing or inconsistent dependency records. Neither an unchanged lockfile nor successful installation establishes that the application can run.

Locate the behavior

Repository investigation should answer the questions that control the change: where a request enters, which implementation handles it, who calls that implementation, what configuration changes its behavior, and which tests exercise it. Model context is the information supplied for the current decision. Selecting for that decision means gathering the relationships needed to justify the next operation, rather than loading as much source as possible.

Different navigation tools resolve different uncertainties.
MethodUseful questionWhat the result does not establish
Exact-text searchWhere does this spelling or error message occur?Symbol identity or runtime reachability. Matches can be comments or unrelated names; filters can exclude files.
Definition and reference navigationWhich declaration is this symbol, and where is it referenced?Complete dynamic behavior, reflective uses, or external consumers.
Repository mapWhich files and declarations should I inspect next?Complete source or exhaustive dependency coverage.
Semantic searchWhere is code related to this behavior when I do not know its spelling?That a similar-looking candidate uses the intended API or has the required semantics.

Aider's repository map supplies selected paths and declarations, using dependency relationships to prioritize a bounded overview. The model can then request complete files. This is progressive disclosure: reveal enough structure to find relevant detail before loading it. Context Engineering explains the general method; Search and Retrieval covers meaning-based candidate retrieval.

AGENTS.md provides a designated place for build commands, testing procedures, and project conventions, including nested guidance for subprojects. It is guidance, not enforcement or proof of compliance. A thin index can point toward detailed runbooks, while comments near relevant code can help agents discover them during search—a practice described in Amazon AGI. Keep arbitrary repository text and tool output distinct from authorized instructions.

Follow candidate locations into actual code, inspect callers and tests, and consult documentation matching the installed dependency version. Preserve file references and unresolved questions so another inspection can close the remaining gaps. After an edit or another person's change, revisit affected observations: a previously correct excerpt may no longer describe the workspace. This is the local form of context freshness.

Planning and modification

Plan around dependencies

A useful plan connects the desired behavior to the work needed to establish it. Investigation resolves uncertainty; implementation changes the system; verification checks the resulting obligations. Keep those purposes distinct even when the plan is only a few sentences. For a small, obvious edit, a formal planning phase may add little. For an unfamiliar or cross-cutting change, investigating before committing to an approach can prevent extensive work on a mistaken premise.

File boundaries do not determine task independence. Changing a producer's return contract can require its implementation, consumers, and tests to move together. Dividing those files among workers does not remove their shared decision. Prefer increments whose behavioral obligation is coherent and checkable. Excessively fine decomposition can replace one ambiguous task with many coordination decisions; revise the plan when repository observations contradict its assumptions.

For larger migrations, the OpenHands refactor workflow groups related files into reviewable contributions and orders work around dependencies. Directory grouping is a practical heuristic, not proof that batches are independent. Its accompanying engineering account describes workers starting from an integration branch, submitting reviewed changes there, and incorporating later integration changes. Broader communication and coordination designs belong in Multi-Agent Systems.

Dynamic action selection is not always necessary. Agentless, introduced by Chunqiu Steven Xia, Yinlin Deng, Soren Dunn, and Lingming Zhang in July 2024, used a fixed localization-and-repair workflow. It narrowed a repository overview to declarations and then edit locations, generated patches, filtered invalid candidates, and ranked survivors. Its contribution is a useful architectural alternative: models perform bounded subtasks while ordinary software controls their sequence. Choose autonomy where adapting the next action has value, not merely because a model can call tools.

Make bounded edits

A diff compares file states; a patch describes edits that can be applied. A patch hunk groups a local change with surrounding context. Always identify the comparison: Git diff can compare working files, staged content, or commits, and its three-dot form uses a merge base. These comparisons answer different questions. A diff also does not automatically inventory untracked files.

Choose the editing interface for the transformation. Exact replacement needs current text and a unique match. A context-based patch uses surrounding lines to locate edits. A codemod is a programmatic source transformation; tools such as jscodeshift operate on an abstract syntax tree, a structured representation of source constructs. Codemods suit repeated structural changes, but parser support and target selection still matter. None of these interfaces establishes behavioral correctness by successfully writing files.

Git apply normally rejects a patch without modifying the working tree if some hunks cannot apply. Its explicit --reject option instead permits partial application. An applicability check is not a lock: files can change afterward. Read the selected tool's failure semantics, and inspect the resulting state rather than assuming all-or-nothing behavior.

For example, suppose an internal API changes from returning a complete list to returning one page at a time. Each page contains items and a continuation cursor—a value the caller supplies to request the next page. A consumer that still needs the complete collection must now follow those cursors, not just read the new return shape.

Traverse pages, preserve the complete result

Before: one response
ConsumerExchangeProducer
Complete result: A, B, CProducer to consumer: Return A, B, CComplete collection
After: follow continuation cursors
ConsumerExchangeProducer
Start with no accumulated itemsConsumer to producer: Request first pageRead first page
Accumulate A, B; retain c1Producer to consumer: Return A, B; cursor c1First page
Use the returned cursor c1Consumer to producer: Request next page with c1Read next page
Append C once; stop at nullProducer to consumer: Return C; cursor nullFinal page

Complete consumer result in both contracts: ABC

In this fictional contract, the consumer still needs A, B, C. The first response supplies c1 for the next request; the final response supplies C and null, so no further request follows. Null is this example’s agreed terminal convention. Requests and responses are sequential.

The fewest changed lines would alter only the producer; the smallest complete change also updates its obligations. Stay within the existing implementation boundary, reuse established dependencies, and keep unrelated cleanup separate. Inspect additions, deletions, generated files, manifests, and lockfiles as part of the actual candidate. This applies controlled change to agent-produced edits.

Editing interfaces can materially affect performance. SWE-agent paired bounded edits with immediate file display and rejection of selected lint errors. In its historical GPT-4 Turbo comparison on 300 SWE-bench Lite tasks, the custom interface resolved 18%, versus 11% for a shell-only baseline supplied with a demonstration. The model and task setting were held fixed; the interface changed. Lint acceptance still did not establish that the repaired behavior was correct.

Execution and diagnosis

Interpret execution results

Running code turns a proposal into an observation, but the observation depends on how execution was launched. Record the command and arguments, working directory, relevant configuration, and completion state. Standard output and standard error are separate output streams. An exit status reports process termination according to the command's contract; a terminating signal is another possible outcome. Neither a launch acknowledgment nor an intermediate log line is a completed result.

Attach each observation to the claim it can support.
ObservationSupported claimStill unresolved
Dependency installation completed.The selected installation operation succeeded.Required services and application behavior.
A build completed.That build accepted its inputs.Behavior of an exercised application path.
A development server reports readiness.The server reached its readiness condition.Whether the requested interaction works.
A test runner reports passing assertions.Those assertions passed in that execution.Requirements they did not exercise.

For background work, retain the operation reference and observe its eventual result. If output is truncated, recover the relevant diagnostics or narrow the command; missing output is not evidence that nothing failed. Keep references to produced artifacts so later steps inspect what was actually generated. Operational records should identify relevant settings without copying credentials or unnecessary sensitive content.

Execution also has consequences. Repository scripts and tests can modify files or contact services using available credentials. Keep side effects isolated and prefer test environments without production secrets. A passing test is not worth an accidental live mutation. Sandboxes and Execution Isolation owns those controls; controlled dispatch explains the boundary between a model's requested call and application execution.

Check the intended behavior

A test suite is a collection of automated checks. A regression occurs when a change breaks previously working behavior. Select checks from the requested outcomes and affected dependencies: reproduce the target failure, run relevant existing tests, add coverage for a real gap, and exercise collaborating components where an isolated check cannot establish the result. See observable obligations and integration boundaries.

For the page-returning API, checks should follow behavior rather than merely mirror the new return shape.
ObligationUseful checkRemaining gap
Return the selected items.Check known items and the continuation cursor.A correct first page does not prove complete traversal.
Preserve the consumer's complete output.Exercise the consumer across multiple pages.Only tested input conditions are covered.
Handle the end of the collection.Check empty results and the agreed terminal cursor.The expectation must match the intended API contract.

The test oracle is the rule deciding whether observed behavior is acceptable. Execution can be independent while expectations are not. If an agent assumes a cursor always exists and writes both implementation and tests around that assumption, the tests may faithfully confirm the wrong contract. More cases do not repair an incorrect expectation. In a VS Code demonstration, generated tests passed, yet the developer still found inadequate route error handling and requested changes to both code and tests.

Plausible patches and correct repairs

Automated repair exposed this distinction before language-model agents. GenProg generated candidate edits, compiled and tested them, and minimized a passing patch. Its motivating greatest-common-divisor program printed the correct value for one input but failed to terminate: output alone was insufficient. The method made existing tests useful search feedback, but passing them remained a bounded acceptance condition.

Qi, Long, Achour, and Rinard's 2015 audit of later repair collections distinguished two failures. Some validation scripts accepted a successful exit without checking output. Other patches really passed the intended tests but failed new counterexamples, often because they removed needed functionality. Their patch-plausibility study explains why a plausible patch, meaning one that passes validation tests, is not necessarily a correct repair. These audited collections were distinct from GenProg's original 2009 experiments.

Review generated tests for durable behavioral expectations, not volume. Requirements can legitimately change, and incidental assertions may deserve removal or revision. But a failing assertion must be explained before weakening it. Curating tests means preserving useful obligations and removing unjustified constraints—not discarding failures until the suite becomes green.

Diagnose before editing again

A red result is a symptom, not a diagnosis. Narrow the failure before editing again: isolate the interaction that fails and inspect what actually happened. Software Engineering Fundamentals explains reproduction and hypothesis-driven debugging.

Compare identical checks on baseline and candidate under matching conditions. Baseline passes: investigate the change. Same failure: investigate shared causes. Baseline untestable: leave the comparison unresolved.

A flaky test produces intermittent outcomes. Shared state, incomplete cleanup, test order, timing assumptions, and concurrency can all contribute. One successful rerun does not identify the cause of the preceding failure. pytest's guidance is useful for separating repeatability problems from straightforward regressions.

When building the coding agent itself, narrow failures similarly. Zed's testing account moves from an end-to-end failure to a focused, repeated model interaction and finally to a conventional regression test when the defect lies in deterministic tooling. That progression turns a vague agent failure into a repairable software boundary.

After a justified fix, rerun the focused check and the broader affected checks. Avoid accumulating speculative changes. The same diagnosis applies in continuous integration (CI), which runs automated checks on repository versions. A CI timeout may need a bounded retry rather than a code edit; a compatibility failure may need a further code change that preserves the original security fix. The PatchPilot account uses this distinction and escalates after a retry limit. Stop earlier when authority, intent, or required execution conditions are unavailable.

Collaboration and review

Steer and resume work

Human intervention is most useful when it changes a consequential decision: the intended behavior is ambiguous, a dependency broadens scope, the proposed design conflicts with an accepted constraint, or the next action exceeds authority. Routine, reversible edits within scope need not each become an approval interruption. Active steering keeps the programmer engaged with implementation direction, while independent execution controls enforce permissions.

A decision-bearing update explains discovery, consequence, and the needed decision. For example: “The requested response change also affects an external client. Changing it now would break that client's parser. I can add a versioned response or coordinate a client update; the choice changes the compatibility promise. I am continuing with the unaffected validation tests.” This is more useful than listing searches because it exposes the decision the agent cannot settle from code alone.

An interruption requires a different kind of handoff: preserve the goal, accepted decisions, changed-file references, observed checks, pending commands, and unresolved work. Context compaction replaces a longer active history with a shorter representation; it can lose details and preserve observations that later become stale. On resumption, read the handoff, inspect current files and changes, and establish which operations remain active. Accepted intent and historical observations have different lifetimes.

Anthropic's long-running coding account uses progress notes, Git history, unfinished feature records, and a basic application check to orient a new session. Apply the same principle after human edits: refresh affected files and revise only the work their changes disturb. Context reconstruction owns the input-recovery method; runtime steering owns delivering accepted direction across long waits.

Review the actual change

A pull request proposes integrating changes through a review interface. The review object is the actual change, not its generated summary. Follow the behavior through producer, consumers, configuration, and tests rather than treating alphabetical file order as an explanation. Chris Kelly's review discussion emphasizes this gap between a list of modified files and an understanding of how the software changes.

Inspect design, required behavior, preserved contracts, and maintainability in surrounding code. Pay particular attention to altered test expectations, dependency or configuration changes, unsafe data handling, and incidental artifacts. Would the tests fail for a broken implementation? Does a new abstraction serve the current requirement? Google's review guidance provides a concrete reference for this examination. Keep the change focused as described in controlled change.

The handoff should connect the symptom or requested behavior, diagnosis, implementation, and supporting checks. State what changed and why, identify the candidate tested, name the checks that actually ran, and retain material unresolved limitations. A long list of commands is less useful than an explanation of which obligations their results cover. The human owner must be able to stand behind that explanation, whether or not an agent helped draft it.

Author self-review, automated review, and accountable acceptance have different roles. Automated review can surface focused findings, but its usefulness depends on both detection capability and whether its comments help the recipient act. Another model's agreement does not make shared assumptions independent. In OpenHands' reported workflow, bot-owned pull requests obscured responsibility and interacted badly with review rules. Assigning the initiating human ownership made responsibility for completion and later breakage explicit.

Verification and integration

Verify the final candidate

Verification provenance connects a result to the source, dependencies, configuration, command, and environment it exercised. A check does not belong permanently to a branch name. If relevant inputs change, the earlier result remains a statement about the earlier candidate. Artifact identity explains this foundation; the practical task is deciding which results still support acceptance now.

Select reruns by changed dependencies and the claim being made. A documentation-only edit need not invalidate an unrelated computation check, while a shared-library change can affect consumers far beyond edited files. Nx's affected-task mechanism combines changed files with project ownership and dependencies to select checks; its default treatment of lockfile changes is conservative. Such selection is only as complete as the graph and configuration. In this example, A’s result remains history after the relevant edit. Only a new execution supports the checked property on B.
Checked candidateRelevant inputsObservationClaim supported
ASource A; identified dependencies D and configuration C.Affected check passed on A.Checked property supported on A; retain this historical result.
B, before rerunRelevant implementation edit creates source B; D and C held fixed.Affected check not yet run on B.B remains unsupported for this property; not-run is neither passed nor failed.
B, after rerunSame source B, D and C; new execution of the affected check.Affected check passed on B.Checked property now supported on B; no claim about untested behavior.

Before packaging, check that the proposed candidate includes every file needed to reproduce the tested behavior. A test that depended on an omitted new file does not verify the delivered patch. Preserve passed, failed, skipped, and unavailable outcomes separately. GitHub's branch protections are configurable: approvals can be dismissed after changes, and accepted status checks can include skipped or neutral outcomes. An accepted badge therefore does not necessarily mean the intended tests executed.

Readiness is a claim about the actual candidate and the agreed completion boundary. When a required check cannot run, report the unsupported claim and its cause instead of replacing it with confidence. The harness's current-outcome check should examine that candidate, not merely whether the agent has finished speaking.

Check the combined result

Integration incorporates an accepted change into the intended shared development version. A merge combines histories; a rebase instead replays changes onto another base. Git can combine files without unresolved textual conflicts, but it does not execute the resulting application. A semantic conflict is an incompatibility in combined behavior, even when the text merges cleanly.

Consider two changes from the same base. One removes a returned display_name field after updating all existing consumers. The other adds an export that reads that field. Each can work independently; their combination can fail even if the new export file produces no textual conflict. Integration must reconcile the shared contract and check the resulting candidate, not merely collect each branch's earlier passing results.

A clean merge can break a contract

Example

Two changes can each preserve their own tested behavior while introducing incompatible assumptions when combined.

In this example, branch A removes display_name and updates existing consumers; branch B adds an export that still reads display_name. The combined candidate contains the new read without its producer field. Dashed arrows show ancestry and combination; the solid arrow exercises the incompatible export.
Read the diagram as text
  • Common base. The producer returns display_name.
  • A: remove display_name. Updates existing consumers to use other fields.
  • B: add export. A new file reads display_name from the producer.
  • Combined candidate. The new export is present, but the field it needs is absent.
  • Export behavior fails. A combined behavioral check exposes the incompatible assumptions.
  • Common baseA: remove display_name: branch from base.
  • Common baseB: add export: branch from base.
  • A: remove display_nameCombined candidate: combine changed producer.
  • B: add exportCombined candidate: combine new consumer.
  • Combined candidateExport behavior fails: exercise export.

CI must check the version that will actually be integrated. GitHub's merge queue tests a proposed change together with the current target and preceding queued changes. Its temporary combined candidate has a different commit identifier from the pull request's head commit. GitHub Actions checks must handle the merge_group event to report on that candidate. This checks the combined source, but only for behavior covered by the configured checks.

Keep the outcomes distinct: applied means files changed; checked means specified observations were obtained; accepted means the responsible reviewer approved; integrated means the intended shared version includes the change; released means the authorized delivery step occurred. Do not infer deployment from merge or permission to deploy from permission to merge. Organization-wide production stages and ownership belong in Software Factories.

Evaluation and usefulness

Build a software-task evaluation

An evaluation systematically assesses behavior against an intended purpose. A case specifies a task and its conditions; a trial is one attempt; a grader assesses designated observations. For coding agents, the system under assessment includes the model, harness, tools, environment, budgets, and human assistance. Case design provides the general framework; here the unit is a software task rather than a final chat response.

A software-task case needs enough information to reconstruct both the opportunity to act and the basis for assessment.

  • Starting conditionsRequest, repository and base revision, toolchain, installed environment, fixtures, and required services.
  • Permitted workAvailable information, tools, permissions, human assistance, attempt and time budgets, retry rules, and stopping conditions.
  • Delivered resultFinal patch or artifact, command observations, assistance received, and remaining incomplete work.
  • AssessmentRequired behavior, preserved behavior, grader version, and separate task, infrastructure, and integration outcomes.

Separate what the solver may inspect from what assesses its result. The SWE-bench dataset structure distinguishes the issue and base commit from a reference solution and test material; its guide warns against inspecting the reference solution while solving. In your own evaluation, protect assessment checks from silent agent modification. Solver-visible tests provide feedback during work; protected checks assess the delivered candidate under the declared protocol.

Separate solving from assessment

Example

The solver's development feedback and the grader's protected checks have different access boundaries.

This example access policy must be enforced: permitted inputs reach the solver, while protected checks and references reach only the grader assessing the identified delivered candidate. The diagram itself supplies no isolation guarantee. Protected checks can still be incomplete or incorrect; the report keeps task results, execution problems, assistance and unfinished integration separate.
Read the diagram as text
  • Declared task inputs. Issue, base revision, environment, permitted tools, and solver-visible tests.
  • Solver workspace. Model and harness work within declared permissions and budgets.
  • Delivered candidate. Identified patch or artifact plus retained execution observations.
  • Protected assessment material. Outside solver access and mutation: required-behavior checks, preservation checks, and assessment references.
  • External grader. Assesses the delivered candidate under the specified protocol.
  • Outcome report. Separates task results, execution problems, assistance, and unfinished integration.
  • Declared task inputsSolver workspace: data: permitted inputs.
  • Solver workspaceDelivered candidate: data: final output.
  • Delivered candidateExternal grader: data: assess this candidate.
  • Protected assessment materialExternal grader: data: protected criteria.
  • External graderOutcome report: data: grades and dispositions.

Choose a task mix that resembles the proposed delegation: repairs, features, refactors, and integration work have different burdens. Sampling the intended work explains representativeness. Start repeated trials in clean environments and inspect trajectories alongside grades. A failed setup, incorrect repair, and completed patch awaiting integration are different outcomes, even if none satisfies the full delivery objective.

Keep development separate from final assessment. Once case results have guided prompt, tool, policy, or grader changes, those cases are useful development and regression material. Freeze the configuration before evaluating untouched tasks for a generalization claim. That does not prevent the agent from adapting its actions within a trial according to its declared policy. Clean environments address state contamination; untouched cases address a different form of independence. See protecting assessment.

Read benchmark claims precisely

A benchmark standardizes a task and an assessment protocol, not every property of useful software work. HumanEval, introduced in the 2021 Codex study, evaluates generated functions through executable tests. SWE-bench instead supplies a repository and an issue to resolve, making localization, coordinated edits, and execution part of the task. These are different assessment units, not interchangeable measures of coding ability.

Read a score through the work its protocol actually checks.
BenchmarkTask and inputAssessment boundary
HumanEvalGenerate a Python function from its supplied specification.Tests assess sampled programs; repository integration is not the task.
SWE-benchEdit an identified repository version to address an issue.Associated repair and preservation checks assess the patch; maintainer acceptance and deployment remain outside the score.

Fail-to-pass checks fail before the intended repair and must pass afterward. Pass-to-pass checks protect behavior already working. To interpret a resolved-task score, also check how that grader version handles skipped tests and missing results: an accepted outcome does not always mean every test ran. A separate measure, pass@k, asks whether at least one of k sampled candidates passes. It measures candidate coverage, not whether the system selects the passing candidate for delivery or succeeds consistently. The attempt-policy treatment develops the estimator and its assumptions.

Graders can reject valid alternatives as well as accept inadequate repairs. OpenAI's July 2026 SWE-Bench Pro audit found an example whose prompt showed one leading space while hidden tests required two. The report retracted an earlier recommendation to adopt that benchmark. Its detailed review followed automated selection of potentially problematic tasks, so it does not establish a universal defect rate. The general lesson is to inspect whether an expectation is an actual requirement or an accidental property of one reference implementation.

Contamination occurs when evaluation information reaches training or a solving path that violates the intended assessment. Finding a public solution through repository history is different from legitimately consulting API documentation when that is allowed. Tools, network access, retries, and assistance therefore belong in the protocol. SWE-rebench's practical account also highlights environment and configuration failures that can masquerade as capability changes.

Even resource settings change the assessment. Anthropic's infrastructure experiments varied allocations while holding model, harness, and tasks fixed. Additional headroom could prevent transient failures, while larger allocations could enable different solution strategies. Record guarantees, hard limits, and time budgets instead of attributing every score change to the model. Finally, evaluate bug discovery directly if that is the intended work: repairing a supplied issue does not test the same capability as finding an unknown defect.

Measure useful delivery

The final adoption question concerns the complete programmer-agent workflow. Measure task completion, human effort, elapsed time, review, repair, integration, and quality against a credible alternative. Generated lines and pull-request counts can increase without reducing delivery work. Faster implementation may move effort into someone else's review queue, so an individual's apparent gain can differ from the team's outcome.

Two controlled studies illustrate why conditions belong beside outcomes. They are not a matched contest or a time trend.
StudyPopulation and taskFinding and scope
Peng and colleagues, reported February 2023A May–June 2022 randomized study assigned 95 professional programmers a JavaScript HTTP-server task, with or without Copilot.Among 35 completers per arm, mean completion time was 71.17 versus 160.89 minutes: a 55.8% reduction, with a reported 95% confidence interval of 21–89%. Success-rate differences were not statistically significant. Completion required passing 12 visible, unmodifiable tests.
METR, early-2025 toolsSixteen experienced developers worked on 246 predefined tasks in mature repositories they knew well, with AI availability randomized.Allowing the studied AI tools increased completion time by 19%, despite participants believing afterward that they had saved time. This does not estimate the effect of current tools or every development setting.

The first study evaluates assistance on a standardized construction task and conditions its time estimate on completion. The second examines experienced contributors working in familiar systems. Neither establishes the long-term effect of autonomous agents across implementation, integration, and later maintenance. Their differences show why local task type, developer familiarity, tool version, and completion criteria matter.

Measurement becomes harder when people select which tasks enter the comparison or work elsewhere while agents run. METR's February 2026 update described participation and task-selection problems, unequal completion, and ambiguous concurrent-time accounting; it treated the later data as an unreliable estimate of the current effect. Agent elapsed time is not automatically human effort, and overlapping work should not be counted twice.

For a local comparison, define completion and quality first, retain unfinished tasks, and account for steering, review, and rework as well as implementation. Use matched-work comparisons where appropriate and choose a defensible live assignment and follow-up design. Track later corrections and regressions rather than ending observation at the first passing patch.

Start bounded delegation with clear, verifiable tasks; use closer collaboration when design or intent needs continuing judgment. Prefer manual work when it is the simpler reliable path for the task at hand. Expand delegation when observed delivery outcomes justify it—not merely when the agent can generate more code. The operating goal remains an understandable change that satisfies its obligations in the version where it will be used.

Open questions

  1. Long-term delivery value remains difficult to establish because early implementation savings can be offset by review, integration, and later maintenance. Progress would mean representative studies that retain unfinished work, account for concurrent human effort, and follow accepted changes for regressions and repair costs.

  2. Behavioral assessment must become stronger without forcing every valid implementation to resemble one reference patch. Incomplete requirements and implementation-specific tests create errors in opposite directions. Progress would combine clearer contracts, counterexample testing, and independent review of both accepted and rejected repairs.

  3. Safe parallelism depends on recognizing semantic dependencies that file separation and import graphs do not fully capture. Progress would identify shared behavioral contracts early and validate combined candidates without making coordination and review cost exceed the benefit of parallel work.

  4. The right amount of autonomy changes with the task, model, and available feedback. Fixed workflows can simplify control, while dynamic agents can respond to discoveries. Progress would compare these policies on matched repository tasks, including intervention effort and unsuccessful outcomes rather than only successful patches.

Follow the curated reading path through the speakers and demonstrations behind this entry.

Explore more talks

The rest of the library, beyond the curated path. Cited talks support this entry; reviewed transcripts were processed in full. Metadata candidates have not been reviewed as sources or verified as topic members.

250 matching talks

Every catalogued talk on this subject: Coding and developer tools

TalkSpeakerEventYear
Morgante PellAI Engineer World's Fair 20242024
Aakanksha ChowdheryAI Engineer World's Fair 20252025
Corey J. GallonAI Engineer Code 20252025
Maxime Rivest, Isaac MillerAI Engineer World's Fair 20262026
Mark MoyouAI Engineer World's Fair 20242024
Julián Duque, Anush DSouzaAI Engineer World's Fair 20252025
Danilo CamposAI Engineer Europe 20262026
Scaling to Long Horizons

Transcript reviewed

Ross Taylor, Chengxi TaylorAI Engineer World's Fair 20262026
Aditya BhargavaAI Engineer World's Fair 20262026
Nick NisiAI Engineer Europe 20262026
Mason EggerAI Engineer World's Fair 20252025
Ian Butler, Nick GregoryAI Engineer World's Fair 20252025
Frank LiuAI Engineer World's Fair 20252025
Future-Proof Coding Agents

Cited in this entry

Bill Chen, Brian FiocaAI Engineer Code 20252025
Jesse HuAI Engineer Code 20252025
Yogendra MirajeAI Engineer World's Fair 20252025
Gaurav MishraAI Engineer World's Fair 20262026
Steven WillmottAI Engineer Europe 20262026
How to Kill the Code Review

Transcript reviewed

Ankit JainAI Engineer World's Fair 20262026
Darius EmraniAI Engineer World's Fair 20252025
Fouad MatinAI Engineer World's Fair 20252025
Harshil AgrawalAI Engineer Europe 20262026
Security Firewall for Agents

Transcript reviewed

Ryan DahlAI Engineer World's Fair 20262026
Eric AllamAI Engineer World's Fair 20252025
Samuel ColvinAI Engineer Code 20252025
Luke AlvoeiroAI Engineer Europe 20262026
Ramana Siddanth EmaniAI Engineer World's Fair 20262026
Ara KhanAI Engineer Europe 20262026
Pierluca D'OroAI Engineer World's Fair 20262026
Naman JainAI Engineer Code 20252025
Jun Yu TanAI Engineer World's Fair 20252025
Angel Ortmann LeeAI Engineer World's Fair 20262026
What's next after RLHF?

Transcript reviewed

Diogo AlmeidaAI Engineer World's Fair 20262026
Sam MorrowAI Engineer Europe 20262026
Alex GavrilescuAI Engineer Code 20252025
Hailong ZhangAI Engineer Summit 20252025
Talha SheikhAI Engineer Europe 20262026
David GomesAI Engineer Europe 20262026
Liam HamptonAI Engineer Europe 20262026
Kevin HouAI Engineer World's Fair 20242024
Nupur SharmaAI Engineer Europe 20262026
Eno ReyesAI Engineer World's Fair 20242024
How Claude Code Works

Transcript reviewed

Jared ZoneraichAI Engineer Code 20252025
Vinoth GovindarajanAI Engineer World's Fair 20262026
Ash Prabaker, Andrew WilsonAI Engineer Europe 20262026
Josh AlbrechtAI Engineer World's Fair 20252025
Tomas ReimersAI Engineer World's Fair 20252025
Hugo Santos, Madison FaulknerAI Engineer Europe 20262026
2025 in LLMs so far

Transcript reviewed

Simon WillisonAI Engineer World's Fair 20252025
Rishi DesaiAI Engineer World's Fair 20262026
Ali KhialAI Engineer World's Fair 20262026
Sachin GuptaAI Engineer World's Fair 20262026
Amazon AGI

Cited in this entry

Amazon AGI, Aditya KhandelwalAI Engineer World's Fair 20262026
Rafal Wilinski, Vitor BaloccoAI Engineer World's Fair 20252025
Building Self-Coding Agents

Cited in this entry

Colin FlahertyAI Engineer Summit 20252025
Beyang LiuAI Engineer World's Fair 20252025
Sarthak AggarwalAI Engineer World's Fair 20262026
Copilots Everywhere

Transcript reviewed

Thomas Dohmke, Eugene YanAI Engineer World's Fair 20242024
Josh PurtellAI Engineer World's Fair 20252025
A Genius With Amnesia

Transcript reviewed

Victor SavkinAI Engineer World's Fair 20262026
Eugene YanAI Engineer World's Fair 20262026
Brian JohnAI Engineer Code 20252025
Nuno CamposAI Engineer Europe 20262026
Mohak SharmaAI Engineer Summit 20252025
Sarah ChiengAI Engineer Europe 20262026
Ido SalomonAI Engineer Europe 20262026
Vibes won't cut it

Cited in this entry

Chris KellyAI Engineer World's Fair 20252025
Tomas ReimersAI Engineer World's Fair 20252025
Maggie AppletonAI Engineer Europe 20262026
Yegor Denisov-BlanchAI Engineer World's Fair 20252025
Lei ZhangAI Engineer Code 20252025
Gergely Orosz, swyxAI Engineer Europe 20262026
Matthias LuebkenAI Engineer Europe 20262026
Matt PocockAI Engineer Europe 20262026
Beyang LiuAI Engineer Code 20252025
Denys LinkovAI Engineer World's Fair 20262026
Boris ChernyAI Engineer World's Fair 20252025
Jon Peck, Christopher HarrisonAI Engineer World's Fair 20252025
Devendra Chaplot, Devendra Singh ChaplotAI Engineer World's Fair 20242024
Max Kanat-AlexanderAI Engineer Code 20252025
Ahmad AwaisAI Engineer Code 20252025
KitzeAI Engineer World's Fair 20252025
Nik PashAI Engineer Code 20252025
Ian ButlerAI Engineer World's Fair 20252025
Mahmoud AbdelwahabAI Engineer Code 20252025
Recursive Coding Agents

Metadata candidate

Raymond WeitekampAI Engineer World's Fair 20262026
Marc KlingenAI Engineer Europe 20262026
Al HarrisAI Engineer Code 20252025
Harald KirschnerAI Engineer World's Fair 20252025
Harald KirschnerAI Engineer World's Fair 20252025
Itamar FriedmanAI Engineer World's Fair 20252025
Rajkumar SakthivelAI Engineer World's Fair 20262026
Daniel SzokeAI Engineer Europe 20262026
Rustin BanksAI Engineer World's Fair 20252025
Ben BurtenshawAI Engineer Europe 20262026
James ShiAI Engineer World's Fair 20262026
Kenton VardaAI Engineer World's Fair 20262026
Ishan AnandAI Engineer World's Fair 20242024
Diego CarpenteroAI Engineer Europe 20262026
2026: The Year the IDE Died

Metadata candidate

Steve Yegge, Gene KimAI Engineer Code 20252025
Harrison ChaseAI Engineer World's Fair 20252025
A Song of Types and Agents

Metadata candidate

Roberto StagiAI Engineer World's Fair 20262026
Will Hang, Cathy ZhouAI Engineer Code 20252025
Ezra Tanzer, Dan ArpinoAI Engineer World's Fair 20262026
Brendan O'LearyAI Engineer Europe 20262026
Steve YeggeAI Engineer World's Fair 20262026
Kevin HouAI Engineer Summit 20252025
Agents Building Agents

Metadata candidate

Alfonso GrazianoAI Engineer World's Fair 20262026
Shawn "swyx" WangAI Engineer Europe 20262026
AGI: The Path Forward

Metadata candidate

Eiso Kant, Jason WarnerAI Engineer Code 20252025
Rajat ShahAI Engineer World's Fair 20262026
Christopher ChedeauAI Engineer World's Fair 20252025
Dax RaadAI Engineer Code 20252025
Boris Bogatin, Toufic BoubezAI Engineer Code 20252025
Olivier Leplus, Yohan LasorsaAI Engineer Europe 20262026
AI Engineering 101

Metadata candidate

Noah HeinAI Engineer Summit 20232023
swyxAI Engineer World's Fair 20242024
AI SDK v6

Metadata candidate

Nico AlbaneseAI Engineer Europe 20262026
Brendan RappazzoAI Engineer World's Fair 20262026
Justin SmithAI Engineer World's Fair 20262026
Anthropic for VPs of AI

Metadata candidate

Alexander Bricken, Joe BayleyAI Engineer Summit 20252025
Michal CichraAI Engineer Europe 20262026
Rajiv ChandegraAI Engineer World's Fair 20262026
Paul Klein IVAI Engineer World's Fair 20262026
Will BrykAI Engineer World's Fair 20252025
Michael HablichAI Engineer Europe 20262026
Bruno Passos, Beyang LiuAI Engineer Summit 20252025
Building AI For All

Metadata candidate

Amjad Masad, Michele CatastaAI Engineer Summit 20232023
Bennet FennerAI Engineer Europe 20262026
Thor Schaeff, Philipp SchmidAI Engineer Europe 20262026
Building Cursor Composer

Metadata candidate

Lee RobinsonAI Engineer Code 20252025
Peter WielanderAI Engineer Code 20252025
Building security around ML

Metadata candidate

Dr. Andrew DavisAI Engineer World's Fair 20242024
Eric ZakariassonAI Engineer Europe 20262026
Prasenjit SarkarAI Engineer Europe 20262026
Cat Wu, Thariq Shihipar, Simon WillisonAI Engineer World's Fair 20262026
Dylan PatelAI Engineer World's Fair 20242024
Containing Agent Chaos

Metadata candidate

Solomon HykesAI Engineer World's Fair 20252025
Dex HorthyAI Engineer Code 20252025
Context Is the New Code

Metadata candidate

Patrick DeboisAI Engineer Europe 20262026
Karina NguyenAI Engineer Summit 20252025
Vincent KocAI Engineer Europe 20262026
Develop at Idea Velocity

Metadata candidate

Jeffrey Lee-ChanAI Engineer World's Fair 20262026
Philipp SchmidAI Engineer World's Fair 20262026
Barry ZhangAI Engineer Summit 20252025
Joseph Wang, SidAI Engineer World's Fair 20262026
Garry TanAI Engineer World's Fair 20262026
Sam BhagwatAI Engineer World's Fair 20262026
Theo BrowneAI Engineer World's Fair 20262026
Danny Gollapalli, Ben Hylak, Zubin KotichaAI Engineer Europe 20262026
Daniel Kim, Daria SobolevaAI Engineer World's Fair 20252025
Chris NoringAI Engineer Europe 20262026
Frontier Feud

Metadata candidate

Barr Yaron, Mihir, John, Tina, Shresta, Paige, Colin, Petra, StevenAI Engineer Summit 20252025
Ilan BigioAI Engineer Summit 20252025
Cassidy HardinAI Engineer Europe 20262026
Dave BurnisonAI Engineer World's Fair 20242024
John PhamAI Engineer World's Fair 20252025
Anirban ChatterjeeAI Engineer World's Fair 20262026
Ryan Lopopolo, Vibhu SapraAI Engineer Europe 20262026
Dex HorthyAI Engineer World's Fair 20262026
Donald HruskaAI Engineer World's Fair 20252025
Brian ScanlanAI Engineer Europe 20262026
Benjamin VerbeekAI Engineer Europe 20262026
Beth GlenfieldAI Engineer World's Fair 20252025
Kyle Jaejun LeeAI Engineer World's Fair 20262026
Tariq ShaukatAI Engineer World's Fair 20262026
Jake NationsAI Engineer Code 20252025
Yu SuAI Engineer World's Fair 20262026
Chip HuyenAI Engineer Summit 20252025
Lawrence JonesAI Engineer Europe 20262026
Justin ReockAI Engineer Code 20252025
Juan PeredoAI Engineer Summit 20252025
Michael RichmanAI Engineer Europe 20262026
Manuel OdendahlAI Engineer World's Fair 20242024
Kyle MisteleAI Engineer World's Fair 20262026
Eno ReyesAI Engineer Code 20252025
Eashan SinhaAI Engineer World's Fair 20252025
David CramerAI Engineer World's Fair 20252025
Theodora ChuAI Engineer World's Fair 20252025
Mentoring the Machine

Metadata candidate

Eric HouAI Engineer World's Fair 20252025
Peter Werry, BrandonAI Engineer Europe 20262026
Minimax M2

Metadata candidate

Olive SongAI Engineer Code 20252025
Move Fast Break Nothing

Metadata candidate

Dedy KredoAI Engineer Summit 20232023
Martin Harrysson, Natasha ManiarAI Engineer Code 20252025
Arjun SinghAI Engineer World's Fair 20262026
Rémi LoufAI Engineer World's Fair 20242024
No More Slop – swyx

Metadata candidate

Shawn "swyx" WangAI Engineer Code 20252025
On AI and Knowledge

Metadata candidate

Pablo CastroAI Engineer World's Fair 20262026
Saoud RizwanAI Engineer World's Fair 20262026
Ryan MartenAI Engineer World's Fair 20252025
Philip KielyAI Engineer World's Fair 20252025
Mario ZechnerAI Engineer Europe 20262026
Christopher HarrisonAI Engineer World's Fair 20252025
Proactive Agents

Metadata candidate

Kath KorevecAI Engineer Code 20252025
Chris ParsonsAI Engineer Europe 20262026
Harald Kirschner, Christopher HarrisonAI Engineer World's Fair 20252025
Jon PeckAI Engineer World's Fair 20252025
Idan GazitAI Engineer World's Fair 20262026
Recursive Model Improvement

Metadata candidate

Lee RobinsonAI Engineer World's Fair 20262026
Connor AdamsAI Engineer Europe 20262026
Benoit SchillingsAI Engineer World's Fair 20262026
Respect The Process

Metadata candidate

Andrew DumitAI Engineer World's Fair 20262026
Patrick DeboisAI Engineer Summit 20252025
Shashi JagtapAI Engineer World's Fair 20262026
Michael YuanAI Engineer World's Fair 20252025
Onur SolmazAI Engineer Europe 20262026
Gunjan PatelAI Engineer World's Fair 20242024
Eno ReyesAI Engineer World's Fair 20252025
Skills are the New SDKs

Metadata candidate

Elvin AghammadzadaAI Engineer World's Fair 20262026
Louis Knight-WebbAI Engineer Europe 20262026
Matt PocockAI Engineer Europe 20262026
Gus Martins, Ian BallantyneAI Engineer Europe 20262026
The New Code

Metadata candidate

Sean GroveAI Engineer World's Fair 20252025
Sarah GuoAI Engineer World's Fair 20252025
Brandon WaselnukAI Engineer Europe 20262026
Rob CheungAI Engineer World's Fair 20242024
Vikash Agrawal, LindaAI Engineer World's Fair 20252025
Brendan O'DonoghueAI Engineer Europe 20262026
Michele CatastaAI Engineer Code 20252025
Patrick DeboisAI Engineer World's Fair 20252025
Christopher Harrison, John PeckAI Engineer World's Fair 20252025
Jack CableAI Engineer World's Fair 20262026
Quinn SlackAI Engineer World's Fair 20242024
Ado KukicAI Engineer Summit 20232023
Natalie MeurerAI Engineer World's Fair 20262026
Travis Bartley, Myungjong Kim, Byungjoong, JaehanAI Engineer World's Fair 20252025
Sam FertigAI Engineer World's Fair 20252025
Armin Ronacher, Cristina Poncela CubeiroAI Engineer Europe 20262026
Allie Howe, Dex Horthy, Geoffrey Huntley, Ian Livingstone, Greg PstruchaAI Engineer World's Fair 20262026
Itamar FriedmanAI Engineer World's Fair 20262026
Ray MyersAI Engineer World's Fair 20252025
Marah Abdin, Robert McHardyAI Engineer World's Fair 20262026
Lou BichardAI Engineer Europe 20262026
The Prompt is the Platform

Metadata candidate

Dominik, Dominik TornowAI Engineer World's Fair 20262026
Beyang LiuAI Engineer World's Fair 20242024
Filip MakraduliAI Engineer World's Fair 20252025
Itamar FriedmanAI Engineer Code 20252025
Aparna DhinakaranAI Engineer Code 20252025
Stefania DrugaAI Engineer Summit 20252025
Geoffrey LittAI Engineer World's Fair 20252025
Michael ArnaldiAI Engineer Europe 20262026
Nicholas ArcolanoAI Engineer Code 20252025
Charles FryeAI Engineer World's Fair 20252025
Alex AlbertAI Engineer World's Fair 20242024
Dmitry PetrovAI Engineer World's Fair 20262026
Why Agent Engineering

Metadata candidate

swyx (Shawn Wang)AI Engineer Summit 20252025
Eugene CheahAI Engineer Summit 20252025
Your agent is blindfolded

Metadata candidate

Johan LajiliAI Engineer Europe 20262026
Zack ProserAI Engineer Europe 20262026
Yuxuan ZhangAI Engineer Code 20252025

References

Coverage and source review
Processed transcripts
77 processed in full · 5 in the curated path
Automated source review
Passed
Metadata candidates
178 unreviewed; not verified topic membership
Corpus version
1bd8e407b26a07b33815594e1b2db5f41827119a2b3cb6fbf240f9fc571fc767

Automated review checks source support; it is not publication approval.

A synthesis of selected conference talks and technical references. Citations link to the source material; they do not imply that every talk on this subject is included.

  1. Building effective agents

    The operational distinction is who selects the next step: workflows route models and tools through predefined code paths; agents let the model dynamically choose processes and tool use. A loop alone does not distinguish them, since predefined workflows can also iterate. Agents receive environmental observations, such as execution results, and use them to assess progress and choose subsequent actions. Human checkpoints supply missing information or judgment. Completion checks and iteration limits terminate execution even when the model could continue. These boundaries constrain autonomy without prescribing every intermediate action.

  2. Git Glossary

    Git stores project history as interconnected commits. A commit records a project snapshot and links to its parents; revision is another name for a commit. A repository contains references and the objects reachable from them. HEAD normally identifies the current branch, or directly identifies a commit when detached. Uncommitted modifications make the working tree dirty. Consequently, identifying HEAD alone does not identify all files an agent may currently execute or edit.

  3. Future-Proof Coding Agents

    A coding agent separates into an interface, a model, and a harness; the harness supplies the model-facing prompts, tools, and execution loop.

  4. Function calling

    The application supplies tool descriptions and argument schemas; the model returns a proposed function name and arguments. The application parses arguments, dispatches its own code, and sends the resulting output back with the corresponding call identifier. The model can then answer or request further calls. Strict mode constrains arguments to the supported schema; object schemas require additionalProperties:false and required properties, with nullable types representing optional values. Application-side validation and authorization must occur before effects: a schema-valid customer identifier can still identify the wrong customer or an inaccessible account.

  5. The emerging skillset of wielding coding agents

    The speaker recommends allowing agents to edit directly while moving human effort toward steering and contextual diff review.

  6. Using GitHub Copilot to reduce technical debt

    GitHub documents a delegated maintenance workflow in which an issue specifies the requested transformation, Copilot prepares an environment and draft pull request, edits code, runs tests, and requests review. Review comments can trigger further revisions before a human approves and merges. Its feature-flag example explicitly names the flags and requires preserving their enabled paths. The documented agent can push only to its copilot/* branches and cannot merge pull requests. These boundaries separate permission to propose and test changes from permission to integrate them.

  7. Backlog.md: Terminal Kanban Board for Managing Tasks with AI Agents — Alex Gavrilescu, Funstage

    Acceptance criteria should describe testable behavior, and completion should depend on satisfying the definition of done.

  8. Definition Of Refactoring

    Fowler defines refactoring as changing software's internal structure to improve understandability and ease of modification while preserving observable behavior. This preservation condition distinguishes a refactoring objective from an intentional feature change or bug repair.

  9. From RL to IRL — Gaurav Mishra, Amazon AGI Lab

    Calibrated confidence should account for action risk and authority; maximizing autonomy is not always the right objective.

  10. Gherkin Reference

    Gherkin separates a scenario's known starting conditions, triggering action, and expected outcome through Given, When, and Then. A Then step's implementation compares actual and expected outcomes with assertions. The guidance favors outcomes visible to a user or external system and keeps implementation details in step definitions. Its blog example distinguishes an owner publishing successfully from another user being refused.

  11. Backlog.md: Terminal Kanban Board for Managing Tasks with AI Agents — Alex Gavrilescu, Funstage

    The proposed workflow has three review checkpoints: task specification, implementation plan, and code.

  12. Best practices for Claude Code

    Anthropic recommends exploring relevant files before planning and implementation when the approach is uncertain, the repository is unfamiliar, or multiple files must change. Its OAuth example investigates session handling and secret configuration, plans affected files and flow, then implements and tests the callback. Other examples supply existing repository patterns, constraints, and a failing reproduction. Verification can use tests, builds, linting, or visible application behavior. The guide explicitly allows skipping formal planning for small, clear changes.

  13. The Deductive Synthesis of Imperative LISP Programs

    In their AAAI 1987 paper, Zohar Manna of Stanford and Richard Waldinger of SRI extended their deductive synthesis approach to programs that modify data structures. Deductive synthesis constructs a program from a proof that its specified result exists. Their logic represents computational states explicitly because mutation can make previously true statements false. The worked list-reversal derivation requires finite lists and restrictions on shared pointers so reversal does not unintentionally alter other data. They also explain that obtaining a storage-efficient program does not guarantee that property: resource requirements must enter the specification.

  14. Automatically Finding Patches Using Genetic Programming

    At ICSE 2009, Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest presented automated repair of existing C programs without formal specifications. Their approach evolves candidate edits, favoring executed regions associated with failure and reusing structures already present in the program. Candidates are compiled and tested; a passing patch is subsequently minimized. The paper reports repairs across ten C programs. Its small greatest-common-divisor example prints the right answer for gcd(0,55) but then loops forever. The required repair must restore termination while preserving cases such as gcd(1071,1029), whose answer is 21.

  15. SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering

    SWE-agent studies how the interface between a language-model agent and its computer changes software-engineering performance. Its custom interface supports repository navigation, file creation and editing, and execution of tests and programs. The central finding is that the environment exposed to a model is part of the system being evaluated: model capability alone does not determine whether it can locate relevant code, make a valid edit, or use feedback effectively.

  16. Evaluating Large Language Models Trained on Code

    Mark Chen and colleagues at OpenAI introduced Codex in July 2021 as a GPT model specialized through training on public GitHub code. The paper studies standalone Python functions generated from docstrings and states that descendants of these research models power GitHub Copilot.

  17. SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering

    John Yang, Carlos E. Jimenez, and their Princeton collaborators studied coding interfaces while holding the underlying language model fixed. SWE-agent combines repository search, a line-numbered file viewer, bounded edits, and execution feedback. Searches exceeding 50 matches request a narrower query rather than flooding context. Edits immediately display updated content; selected lint errors reject an edit and expose the problem. On the 300-task SWE-bench Lite split, the reported GPT-4 Turbo configuration resolved 18% of tasks, versus 11% for its shell-only baseline with a demonstration. The contribution is evidence that action and observation design changes repository-task performance.

  18. Git status documentation

    Git status distinguishes changes staged relative to HEAD, working-file changes relative to the index, and untracked files. The index is the staging area used for the next commit. Porcelain output provides a format intended for scripts, and branch output can include tracking information. Untracked-file options control whether individual files inside new directories appear. These distinctions support recording existing modifications before an agent changes the workspace.

  19. Git Worktree Documentation

    Linked worktrees let one repository have multiple checked-out working trees with their own HEAD and index. This separates concurrent edits to working files, while repository references and configuration can still be shared. Git normally prevents checking out a branch already in another worktree unless forced. Worktrees therefore provide useful workspace separation for parallel coding, but integration must still reconcile commits, resolve conflicts and verify the combined result.

  20. Beyond permission prompts: making Claude Code more secure and autonomous

    The engineering report separates filesystem isolation from network isolation. Restricting accessible paths limits local damage, while restricting outbound connections limits where processes can communicate. Either boundary alone leaves important attack paths: code with unrestricted network access can transmit readable secrets, while unrestricted filesystem changes can undermine containment. A sandbox defines where actions may occur; approvals remain a separate decision about whether a particular action is authorized. This is especially relevant when a coding agent reads repository content that may contain hostile instructions.

  21. pnpm install

    pnpm's frozen-lockfile option prevents lockfile generation and fails installation when the lockfile is absent or inconsistent with the dependency manifest. A lockfile-only operation updates dependency records without populating node_modules. Offline installation uses the local package store and fails if a required package is unavailable. Thus an unchanged dependency record, an installed dependency tree, and an executable test environment are distinct states.

  22. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?

    SWE-bench's construction applies contributed tests and compares their results before and after the reference implementation change, retaining instances with at least one failing-to-passing test. Assessment requires successful patch application and passing the task's associated tests, including checks of retained functionality. Resolved rate is the percentage of task instances meeting that contract. Separately, the paper cautions that supplying only files edited by the reference patch can omit necessary behavioral context from other files.

  23. ripgrep user guide

    ripgrep searches file contents for regular-expression matches and ordinarily reports matching lines, with file and line information according to output mode. Fixed-string mode treats the pattern literally. Context flags expose neighboring lines; file filters and ignore rules determine which files are searched. These are lexical results: matching a function's spelling can find comments, strings, and unrelated identifiers as well as real uses.

  24. LSP 3.17: Go to Definition

    textDocument/definition asks a language server to resolve the symbol at a document position. Its result is a Location, an array of Locations or LocationLinks, or null; link-form results depend on client capability. This operation returns source navigation targets rather than an explanation of what the target does.

  25. LSP 3.17: Find References

    textDocument/references requests project-wide references to the symbol at a document position and returns Location[] or null. ReferenceContext.includeDeclaration controls whether to include its declaration. The protocol therefore exposes symbol-oriented locations, unlike a search for identical text.

  26. Repository map — aider

    Aider supplies a compact repository map containing file paths and selected class and function definitions, including signatures and important defining lines. The model can use this overview to identify files whose complete contents it needs. For large repositories, Aider ranks a graph whose nodes are source files and whose edges represent dependencies, selecting relevant portions within a context budget. The documentation's sample deliberately omits many definitions rather than reproducing every file.

  27. Code Generation and Maintenance at Scale

    Grit combines syntactic matching, semantic similarity, and import provenance to identify intended logging calls.

  28. AGENTS.md

    AGENTS.md provides a designated Markdown location for project instructions such as build commands, testing procedures, code conventions, and security considerations. The convention permits nested files for subprojects and describes the closest file as taking precedence for an edited file. Its examples direct agents to inspect package identity and CI configuration rather than invent project commands.

  29. Amazon AGI

    Use progressive disclosure as a repository-wide harness-engineering pattern: thin instruction indexes, small skill entrypoints, and documentation pointers next to relevant code.

  30. Building Self-Coding Agents

    Existing integration examples and a documentation-search tool can let an agent implement additional integrations without relying on memorized API knowledge.

  31. Building Reliable Agentic Systems

    Evaluate subtask outcomes against the current environment and replan as feedback arrives, especially when other actors can change the environment.

  32. Effective context engineering for AI agents

    Compaction replaces a long conversation with a summary in a fresh context window. Anthropic's described implementation preserves architectural decisions, unresolved bugs, and implementation details while discarding redundant outputs and messages; it also reloads recently accessed files. Aggressive compression can lose details whose importance emerges later. Persistent notes and lightweight references such as file paths allow information to be retrieved again. Applied recovery procedure: reload the goal, constraints, decisions, and unresolved work, then inspect relevant current files and repository state before acting on summarized claims.

  33. Building Reliable Agentic Systems

    Finer subtasks make the action space easier to control, but excessive decomposition creates more decisions the model must get right.

  34. Automating Large-Scale Refactors with Parallel Agents

    The OpenHands Refactor SDK demo groups files into reviewable batches, derives a batch dependency graph, and processes dependencies before their consumers.

  35. Automating Massive Refactors with Parallel Agents

    Robert Brennan's October 9, 2025 OpenHands account describes dividing a refactor into individually reviewable contributions. Agents branch from a shared integration branch, submit changes there for human review and checks, and incorporate subsequent integration changes before the combined work is proposed to main. The report distinguishes changes that can proceed incrementally, such as adding Python annotations with necessary caller changes, from migrations requiring dependency-aware decomposition. Its Refactor SDK separates instructions for making a change from executable or model-based checks of that change.

  36. Agentless: Demystifying LLM-based Software Engineering Agents

    Chunqiu Steven Xia, Yinlin Deng, Soren Dunn, and Lingming Zhang's July 1, 2024 Agentless paper investigated whether repository repair required autonomous action selection. Its fixed workflow first narrows a repository tree to files, then declaration skeletons to relevant functions, then complete code to edit locations. It generates candidate patches, filters syntax errors and failures of existing tests, and ranks surviving candidates. This version reports resolving 27.33% of SWE-bench Lite tasks. It supplies a competing architecture: language models perform bounded subtasks while ordinary software determines the sequence.

  37. Git diff documentation

    A diff describes differences between specified file states. Plain git diff compares working files with the index; git diff --cached compares staged content with a commit, normally HEAD. git diff HEAD compares working files with HEAD, while git diff A B compares two commit snapshots. The three-dot form A...B instead compares B with the branches' merge base. These commands answer different questions, so a review must identify its comparison endpoints.

  38. Git apply documentation

    A patch is diff output that can be applied to files. git apply --check checks applicability without applying it; applying a patch does not create a commit. Context lines constrain where changes apply. By default, a failure to apply some hunks rejects the whole patch without touching the working tree. With --reject, applicable portions are written and rejected portions remain in .rej files. With --index, affected index entries and working copies must match in content and relevant metadata.

  39. Text editor tool

    The text editor interface exposes file viewing and targeted replacement using a path, old text, and new text. Old text must match exactly, including indentation and whitespace; the implementation guidance requires exactly one matching location. The application performs the filesystem operation and returns its result. The published syntax-repair example reads a Python file and adds a missing colon through a bounded replacement.

  40. jscodeshift: A JavaScript codemod toolkit

    A codemod is a programmatic source transformation. jscodeshift runs a supplied transformation over selected JavaScript or TypeScript files and provides operations over an abstract syntax tree, a structured representation of source constructs. Its published example locates variable declarations and renames them before printing source. The underlying Recast tool attempts to preserve original style. Dry-run mode avoids writing files, print mode exposes transformed output, and execution summaries distinguish changed, unchanged, skipped, and erroneous files.

  41. What to look for in a code review

    Google's review guidance examines design, intended functionality, edge cases, concurrency, complexity, tests, and documentation. Reviewers should check whether tests would fail for broken code and whether their assertions are useful. Reviewing surrounding files and system context can reveal problems hidden by a narrow diff. The guidance discourages speculative generality and mixing large formatting changes with functional changes. Reviewers should understand their assigned code and explicitly identify limited review scope or required specialist review.

  42. Node.js child process documentation

    A child process executes with a working directory and environment; Node defaults to the parent's cwd and process.env unless overridden. Relative paths and executable lookup therefore depend on launch configuration. stdout and stderr are separate streams; piped output must be consumed to avoid blocking on finite pipe capacity. Exit code or terminating signal reports process termination, while close additionally waits for stdio closure. A timeout sends killSignal; AbortSignal cancellation similarly requests termination and reports AbortError. Successfully sending a signal does not establish that the process exited. On Linux, killing a shell parent does not necessarily kill its descendants.

  43. Effective harnesses for long-running agents

    Anthropic reports coding sessions leaving undocumented partial implementations or declaring completion prematurely. Its application-development pattern records feature requirements, Git commits, and progress notes; subsequent sessions inspect location, recent history, and unfinished features, then run a basic application check before adding functionality. Work proceeds one feature at a time. Browser checks exposed failures that unit tests or development-server requests had missed, although browser-tool visibility limitations remained.

  44. unittest — Unit testing framework

    A test case checks a particular response to specified inputs. A test suite groups cases or other suites for execution together. A fixture supplies preparation and cleanup, such as a temporary database or server. A runner executes tests and reports outcomes. Python's published example separately checks expected values, Boolean conditions, and expected exceptions; its command interface can select a module, class, or individual method.

  45. OpenTelemetry: Handling sensitive data

    OpenTelemetry cannot determine what is sensitive in an application's context; implementers must review emitted telemetry and protect it. The guidance favors collecting only data needed for observability and avoiding unnecessary personal information. Collector processors can delete or modify attributes, filter entire records, enforce attribute allowlists, and transform values. Credentials and session tokens are among the explicitly identified sensitive categories. Hashing predictable identifiers does not reliably anonymize them because candidate values can be enumerated.

  46. Beyond the Prototype: Using AI to Write High-Quality Code

    Isolate side effects, keep most logic as functional transformations, and run tests in sandboxes without secrets where possible.

  47. Run Only Tasks Affected by a PR — Nx

    Nx determines affected projects by combining changed files from Git with project ownership and dependency relationships, then runs selected tasks for that set. A change to a widely shared project can therefore require checks across almost the entire workspace. Base and head identify the comparison; the documentation recommends using the last successful main-branch commit as the CI base so intervening changes are included. By default, a package-manager lockfile change marks every project affected as a conservative safeguard.

  48. The Oracle Problem in Software Testing: A Survey

    A test oracle decides whether observed behavior is acceptable. The survey formalizes a deterministic oracle as a partial function from test activity sequences to true or false, distinguishing it from conceptual ground truth. An oracle can therefore be missing for some cases or disagree with intended behavior. Engineering inference: independently executing tests does not make their expected answers independent of the implementation's assumptions. If both encode the same mistaken interpretation of a requirement, execution can faithfully confirm their agreement while the delivered behavior remains wrong.

  49. Cooking with Agents in VS Code

    Passing generated tests did not prevent the developer from finding inadequate route error handling.

  50. An Analysis of Patch Plausibility and Correctness for Generate-and-Validate Patch Generation Systems

    Zichao Qi, Fan Long, Sara Achour, and Martin Rinard's ISSTA 2015 study separated plausible patches, which satisfy validation tests, from correct repairs. Auditing published GenProg, RSRepair, and AE results revealed two distinct failures. Some validation scripts accepted exit status zero without checking output, so reported patches failed even the intended existing checks. Other patches genuinely passed those checks but failed new counterexample tests. Functionality deletion explained many incorrect repairs. Their deletion-only Kali system demonstrated that apparently successful repair counts could reward a narrow search strategy without establishing preservation of intended functionality.

  51. Beyond the Prototype: Using AI to Write High-Quality Code

    Curate generated tests: preserve behavior that matters, refactor useful tests, and consider discarding tests that constrain unimportant behavior.

  52. ReviewDebt: a practical framework for scoring every pull request — Sachin Gupta, eBay

    The test evidence gap measures test presence relative to production additions, but cannot establish whether tests encode the intended behavior.

  53. CI in the Era of AI: From Unit Tests to Stochastic Evals

    Narrow an end-to-end eval into a focused stochastic test, then isolate deterministic defects in the surrounding software.

  54. Git bisect documentation

    Git bisect locates a behavior-changing commit by testing revisions between known working and broken endpoints. Its example rebuilds and tests each selected checkout before classifying it. Revisions that cannot be assessed because of an unrelated build failure can be skipped rather than labeled broken for the target behavior. Skipping revisions near the transition can leave the exact introducing commit unresolved.

  55. We Gave an Agent Production Code Access and Then Tried to Sleep at Night

    Use a bounded remediation loop that distinguishes code failures from transient infrastructure failures and preserves the intended security fix.

  56. Flaky tests

    A flaky test fails intermittently rather than yielding a reliable outcome. pytest identifies uncontrolled system state, test-order dependencies, incomplete cleanup, shared global state, overly strict timing or floating-point assertions, and thread-safety problems as possible causes. Such failures can waste investigation time and undermine trust in genuine failures. Running tests in parallel can expose dependencies on another test's setup or leftovers.

  57. Managing a merge queue

    GitHub's merge queue evaluates a proposed change together with the latest target branch and preceding queued changes. Temporary queue branches have a different SHA from the pull request. Required GitHub Actions workflows must also handle merge_group events; pull_request and push triggers alone do not supply those results. This provides a concrete mechanism for checking the combined candidate instead of relying only on an earlier branch's checks.

  58. Fast Models Need Slow Developers

    Use real-time steering and explicit change constraints to keep developers engaged with what agents are modifying.

  59. Two Roads to Durable Agents: Replay vs. Snapshot — Eric Allam, Co-founder, Trigger.dev

    Machine-using agents accumulate valuable filesystem, memory, and process state that the speaker proposes preserving separately from context.

  60. Vibes won't cut it

    Develop the ability to read and judge others' code, and recognize that alphabetically ordered file diffs do not explain how a software change works.

  61. SWE-rebench: Lessons from Evaluating Coding Agents on Real Software Engineering Tasks — Ibragim Badertdinov, Nebius

    Benchmark submissions can contain artifacts that a developer would reject during review, so task completion needs complementary code-quality evaluation.

  62. ReviewDebt: a practical framework for scoring every pull request — Sachin Gupta, eBay

    The speaker recommends that the human author write the rationale for the change, using the PR body as an explicit commitment to understanding what will ship.

  63. AI-powered entomology: Lessons from millions of AI code reviews

    Use two separate axes: whether the model can reliably identify an issue and whether developers want that feedback from an AI.

  64. Software Development Agents: What Works and What Doesn't

    Human ownership preserves review accountability and responsibility for completing or repairing the change.

  65. SWE-bench Evaluation Guide

    SWE-bench applies generated patches to repositories and runs repository tests inside Docker containers. Evaluation parameters identify the dataset, predictions, run, worker count, selected instances, and cache policy. Reports distinguish unresolved instances from errors that produced no result, likely infrastructure failures, and ambiguous environment-versus-patch failures. Reproducibility inference: retain the dataset revision and instance IDs, repository base revision, submitted patch, harness version, exact test commands, timeout settings, and logs. Report infrastructure failures separately rather than silently treating missing results as demonstrated patch failures.

  66. About protected branches

    GitHub can record the approved pull-request diff and dismiss approval when later changes alter it, including new pushes or relevant target-branch changes. Another configurable rule requires someone other than the latest pusher to approve the most recent reviewable push. Required status checks may accept successful, skipped, or neutral statuses. Therefore an approval or accepted check status must be interpreted through both the reviewed state and the configured rule.

  67. Git merge documentation

    A fast-forward moves a branch pointer when its history is already an ancestor of the other tip. Divergent histories normally require a merge commit with both tips as parents. Git reconciles changes relative to common ancestry; unresolved content or path changes leave conflict entries for human resolution. For conflicting paths, the index records base, ours, and theirs versions. A clean merge means the selected merge strategy combined the files without unresolved conflicts. It does not execute the resulting application.

  68. Don’t get one-shotted: Use AI to test, review, merge, and deploy code — Tomas Reimers, Graphite

    Higher change volume calls for coordinated improvements to pull-request management, reviewer assistance, CI, merge queues, and deployment tooling.

  69. Demystifying evals for AI agents

    An evaluation task specifies inputs and success criteria; a trial is one attempt. Repeat trials because model outputs vary, and use varied, balanced tasks drawn from real requirements and failures. Start each trial in a clean environment to prevent shared state from contaminating results. Check the final environment outcome, not merely the agent's claim of success. Inspect transcripts alongside grades to distinguish agent errors, valid solutions rejected by graders, and harness problems. For a fixed task with independent trials of success probability p, all-k success is p^k, whereas at-least-one success is 1−(1−p)^k.

  70. Demystifying evals for AI agents

    An agent evaluation separates a task and its success criteria from repeated trials, execution transcripts, graders, and final environment outcomes. A booking claim in a transcript is different from an actual reservation in the database. The system under test includes both model and agent harness. Code-based checks suit precise state or test assertions; model graders cover more open-ended properties but require calibration; human review helps establish the standard. Capability suites explore difficult behavior, while regression suites protect behavior that already works.

  71. SWE-rebench: Lessons from Evaluating Coding Agents on Real Software Engineering Tasks — Ibragim Badertdinov, Nebius

    Define retry and failure policies, check model configuration defaults, and validate the evaluation infrastructure against an external benchmark before interpreting experiments.

  72. SWE-bench Datasets

    The documented task structure separates repository identity, base commit, issue description, package version, reference solution patch, test patch, and fail-to-pass and pass-to-pass test metadata. The guide explicitly warns against inspecting the reference solution while solving the task. This supplies a concrete repository-level fixture whose task inputs can be separated from assessment material.

  73. Cross-validation: evaluating estimator performance

    Tuning settings against test-set performance can leak test information into model selection. The documented remedy separates training and validation from final testing; cross-validation for development still leaves a test set for final evaluation. Coding-agent application: use development cases to choose prompts, tools, harness policies and grader rules, then freeze that configuration before scoring untouched tasks. Keep expected answers and grading outcomes outside the tuning feedback loop. Freezing the policy does not prohibit the agent from making its declared runtime decisions in response to a task. Clean trial environments address a different problem from separation of development and final evaluation.

  74. Generalization in Adaptive Data Analysis and Holdout Reuse

    Selecting later analyses using earlier results makes the selection depend on the reused dataset. Aggregate scores can therefore influence selection even when individual test cases remain hidden; ordinary fixed-analysis guarantees no longer follow automatically. Engineering application: after using evaluation failures or scores to revise a coding agent, retain useful failures for regression testing but evaluate the revised configuration on fresh, independently sampled untouched cases for an ordinary holdout claim. Reuse is possible under specialized safeguards: Thresholdout compares training and holdout averages using noisy thresholds, releases controlled answers and stops when its overfitting budget is exhausted.

  75. Evaluating Large Language Models Trained on Code

    HumanEval evaluates generated programs by executing tests. Pass@k asks whether at least one of k sampled candidates passes; it is not the probability that all k attempts succeed or that a user can select the right candidate without a checker. With n samples and c passing samples, the paper estimates it as 1 minus choose(n-c,k)/choose(n,k), averaged over tasks. Sampling budget and checker quality are part of what this score measures.

  76. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?

    SWE-bench turns GitHub issues and corresponding repository changes into software-engineering tasks: given a codebase and an issue description, the system must edit the repository to address the problem. Unlike isolated function completion, these tasks can require coordinated changes across functions, classes, and files and interaction with an execution environment. This makes repository understanding and change verification part of the task rather than optional context around code generation.

  77. SWE-bench evaluation grading implementation

    The inspected grader computes resolution and maintenance separately and marks full resolution when both reach one. Its pass-and-fail mode treats skipped fail-to-pass tests as failures but permits skipped pass-to-pass tests as maintained. A separate fail-only mode uses different missing-result semantics. The implementation also checks for evidence that a suite actually ran when parsed results are empty and cross-checks certain reported passes against the recorded command exit status.

  78. Separating signal from noise in coding evaluations

    OpenAI's July 8, 2026 audit examined SWE-Bench Pro task quality and retracted its earlier recommendation to adopt that benchmark. An automated filter selected 286 potentially problematic tasks for deeper agent-assisted investigation and review by five engineers per task. The report identifies overly implementation-specific tests, hidden requirements, insufficient test coverage, and misleading prompts. Its OpenLibrary example exposes a concrete mismatch: the prompt's Markdown examples require one leading space while hidden tests require two. The report also distinguishes ambiguity resolvable from repository conventions from genuinely missing requirements.

  79. SWE-rebench: Lessons from Evaluating Coding Agents on Real Software Engineering Tasks — Ibragim Badertdinov, Nebius

    Tests taken from a resolving pull request can overfit that particular implementation instead of checking the requested behavior.

  80. Language Models are Few-Shot Learners

    Few-shot inference supplies demonstrations as input conditioning while keeping model weights fixed; fine-tuning changes pretrained weights through training. Examples consume bounded context and influence subsequent predictions without becoming parameter updates. Separately, benchmark contamination means evaluation material overlaps training data, weakening claims of generalization to unseen examples. GPT-3's study compares original scores with subsets lacking detected n-gram overlap, but acknowledges false positives and possible distribution differences between clean and original subsets. Conceptually, contamination concerns exposure to evaluation data; optimizing a proxy concerns objective mismatch, while biased reviewer labels concern measurement. Those problems can occur independently.

  81. Benchmarks: The Good, the Bad, and the Ugly

    Reward hacking can involve searching repository history or the internet for solution traces instead of constructing the intended patch.

  82. Quantifying infrastructure noise in agentic coding evals

    With model, harness, and tasks held fixed, the reported coding experiments vary resource allocations and enforcement. Guaranteed CPU or memory allocation is different from a hard limit that terminates a container. Extra headroom can prevent transient infrastructure failures; sufficiently generous resources can also enable strategies that were previously infeasible, changing the task being measured. An evaluation configuration should therefore record both resource guarantees and enforcement limits, alongside time budgets, instead of attributing every score change to the model or prompt.

  83. Agents reported thousands of bugs, how many were real? - Ian Butler and Nick Gregory

    The speakers' comparison of SWE-bench and SM100 indicates that performance on an existing coding benchmark should not substitute for direct bug-discovery evaluation.

  84. Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity

    METR randomized whether 16 experienced developers could use AI on 246 predefined tasks in repositories they knew well. With the early-2025 tools studied, allowing AI increased completion time by 19%, although participants estimated afterward that it had reduced time. The study also used screen recordings to examine how work time was spent. Its motivation distinguishes fixed task completion from activity counts that can change through more verbose code or different task splitting.

  85. Amazon AGI

    Treat agent enablement as a leadership-owned shared engineering investment, because individual optimization can transfer work into other engineers' review queues.

  86. The Impact of AI on Developer Productivity: Evidence from GitHub Copilot

    Sida Peng, Eirini Kalliamvakou, Peter Cihon, and Mert Demirer reported a randomized Copilot experiment in February 2023, conducted during May–June 2022. Ninety-five professional programmers were assigned to implement a JavaScript HTTP server with or without Copilot access. Among the 35 completers in each arm, mean completion time was 71.17 versus 160.89 minutes, a 55.8% reduction with a reported 95% confidence interval of 21–89%. Completion meant the first pushed commit passing twelve visible but unmodifiable tests. The difference in task-success rates was not statistically significant.

  87. We are Changing our Developer Productivity Experiment Design

    METR reports that its later productivity experiment became difficult to interpret because developers declined participation or withheld tasks they did not want to perform without AI. Additional concerns included changed compensation, unequal task completion, differences in delivered work, and difficulty measuring task time when developers worked elsewhere while agents ran. METR therefore characterizes the later data as an unreliable signal of the current productivity effect.

  88. ReviewDebt: a practical framework for scoring every pull request — Sachin Gupta, eBay

    ReviewDebt names the gap between generated code and code humans have reviewed, trusted, and understood; the speaker proposes that repository grounding and organizational feedback loops make this gap compound.

  89. Software Development Agents: What Works and What Doesn't

    Start with small chores that have a clear completion condition and are easy for a human to verify.

  90. RL for Autonomous Coding — Aakanksha Chowdhery, Reflection AI

    The cited coding result reports improved pass@k or coverage as more samples are generated.

  91. One Developer, Two Dozen Agents, Zero Alignment: Why we Need Collaborative AI Engineering

    Increasing individual agent output can create coordination debt through overlapping edits, duplicated work, and review queues lacking context.

  92. How to Build Agents That Run for Hours (Without Losing the Plot)

    Reevaluate how much explicit planning a harness imposes when the underlying model changes.

  93. Automating Large-Scale Refactors with Parallel Agents

    Use a shared integration branch with migration context, accumulate individual agent changes there, and review intermediate outputs as well as the final result.