Skip to main content

Command Palette

Search for a command to run...

The Pull Request Is the Product: A Delivery System for Coding Agents

Within a month there are several teams, several tools, several permission models, and several definitions of done. Management asks how much faster engineering has become. Nobody can say, but the token dashboard is exceptionally detailed.

Updated
•5 min read•View as Markdown
The Pull Request Is the Product: A Delivery System for Coding Agents
A
AI Architect. I design the boring control plane plumbing that keeps your impressive demos from quietly setting themselves on fire in production.

🗓️ Last updated: September 2026

The pilot begins with one developer and one coding agent. Within a month, several teams have different tools, different repository instructions, different permission models, and different definitions of completion. Management asks how much faster engineering has become. Nobody can say, but the token dashboard is exceptionally detailed.

The unit an engineering organization should optimize is not generated code. It is an accepted, verified, reviewable change. The pull request is the product of the coding agent workflow.

Assemble the delivery loop

A production workflow has seven explicit stages.

  1. Intake turns an issue into a task contract.

  2. Risk classification chooses permissions, environment, and review route.

  3. Provisioning creates an isolated branch, worktree, and disposable runtime.

  4. Execution lets the agent inspect, modify, and run scoped checks.

  5. Verification runs authoritative repository checks.

  6. Review evaluates intent, architecture, evidence, and risk.

  7. Integration merges through current target branch checks and records the outcome.

Each stage has an owner and a failure state. The agent may participate in several stages, but it should not silently redefine them. A workflow in which the same process writes the task, implements the change, invents the acceptance test, approves the result, and merges it is efficient in the way an unsigned blank cheque is efficient.

Classify before execution

Use a small risk model based on affected components and action types. Documentation, local tests, and mechanical refactors may run with minimal privileges. Dependency changes, workflows, secrets handling, authentication, authorization, infrastructure, migrations, and public contracts require tighter controls and designated reviewers.

Risk classification controls network access, available credentials, writable paths, runtime limits, and approval requirements. It also decides whether the agent may open a pull request automatically or must return a proposal.

Keep agent environments disposable. Start from a known image and commit. Supply only task specific credentials. Capture commands and artifacts. Destroy the environment after the handoff according to retention policy. A developer laptop with years of ambient credentials is not an execution platform. It is a museum of implicit trust.

Standardize the repository interface

The platform should not hardcode every project's build system. Define a small repository contract: setup, fast verification, full verification, formatting, generated file policy, and instruction discovery. Let each repository implement the contract through checked in scripts or task definitions.

This keeps the platform generic while preserving local truth. It also makes onboarding measurable. A repository that cannot satisfy the contract is not ready for unattended agent work. That finding may be more valuable than the first generated patch.

Keep the model replaceable

Model capability changes rapidly. The durable assets are the task format, repository interface, isolation boundary, verification evidence, review policy, and outcome data. Avoid coupling the delivery workflow to one provider's conversation format or tool names.

Store model and harness versions with each run so results can be compared. Route tasks by capability and risk where useful, but do not treat model selection as the architecture. The model is an important dependency. It is not the entire software delivery system, despite marketing's best efforts.

Measure accepted outcomes

Useful measures follow work from intake to production:

  1. Time from ready task to merged change

  2. First pass verification rate

  3. Human review time and queue delay

  4. Rework requested after review

  5. Revert and escaped defect rate

  6. Percentage of runs that escalate correctly

  7. Cost per accepted change

Segment results by task class and risk. Documentation changes and schema migrations should not share one productivity average. Avoid lines of code, prompts sent, and raw pull request count as success measures. A system can maximize all three while making the product worse with remarkable consistency.

Compare against an appropriate baseline and include human time. An agent that saves twenty minutes of implementation and consumes an hour of review has not created forty minutes of innovation. It has moved work to a more senior salary band.

Roll out by repository and task class

Begin with repositories that have reliable setup and verification. Choose bounded task classes. Establish baseline measures. Expand permissions and autonomy only when evidence supports it. Keep a disable path at the organization, repository, and task level.

Use failed runs as repository feedback. Repeated setup failures indicate environment debt. Repeated scope violations indicate weak task contracts or boundaries. Repeated review surprises indicate missing architecture documentation or tests. The agent workflow becomes a diagnostic instrument for the engineering system around it.

Failure modes

The first failure is tool first adoption. The organization buys seats before defining the work and evidence flow. Usage grows; accountable outcomes remain elusive.

The second is universal autonomy. Every repository and task receives the same permissions because policy design would delay the launch announcement.

The third is local optimization. Agent execution becomes faster while verification, review, and integration queues grow.

The fourth is vendor shaped architecture. Repository and process design become dependent on one product's current interface, making future capability improvements oddly expensive to adopt.

The architect's checklist

  1. Optimize for accepted changes, not generated code.

  2. Make intake, risk, isolation, verification, review, and integration explicit stages.

  3. Define a portable repository contract for setup and checks.

  4. Provision disposable environments with task specific authority.

  5. Record model, harness, task, evidence, review, and outcome data.

  6. Expand autonomy only by task class and measured results.

Coding agents do not create a software factory by themselves. They create a very fast workstation. The factory is the delivery system that decides what work enters, what evidence leaves, and what is allowed to reach production.

Sources

  1. Visual Studio Code documentation for custom agent instructions

  2. Anthropic on harnesses for long running agents

  3. GitHub documentation for reviewing proposed changes

Engineering With Coding Agents

Part 3 of 6

Four series of The Pragmatic Stack have explored the architecture and operation of LLM-powered systems: the discipline inside the agent, the systems around it, the operational practices that keep those systems running in production, and the .NET runtime used to implement them. All four series focused on systems that contain agents or agents that serve users. Series 5 examines a different kind of agent: one that opens your repository, understands your codebase, makes changes, and commits code. Coding agents are more than a new developer experience. They are a new actor in the software delivery system. Most delivery systems, including repositories, task backlogs, branching strategies, test suites, review processes, and deployment pipelines, were designed around human authors. Introducing automated authors changes the assumptions behind those systems. Some of those assumptions will need to evolve. Engineering With Coding Agents is a six article series focused on what needs to change and how engineering teams can adapt. This is the fifth series in The Pragmatic Stack. Series 1, Architecting Agents, covered the discipline inside an agent. Series 2, System Design, Reimagined, covered the systems around the agent. Series 3, Shipping AI Systems, covered how those systems are operated in production. Series 4, AI for the .NET Architect, covered what all of the above looks like in .NET. Series 5, Engineering With Coding Agents, covers what your software delivery system needs to handle agents as authors. What You Will Learn By the end of the series, you will have: A framework for making any repository legible to a coding agent without creating an extensive instruction manual. A task contract format that prevents vague intent from becoming production code faster than the team can identify and correct it. An isolation model for parallel coding agent work based on one branch, one worktree, and one environment per task. A six layer verification ladder that distinguishes software correctness from LLM benchmark performance. A code review approach designed for generated diffs at scale, with an emphasis on risk, provenance, and test evidence. A seven stage delivery loop that produces accepted, verified, and reviewable changes rather than raw generated output. The Articles 1. The Repository Is the Prompt: Preparing a Codebase for Coding Agents 2. The Ticket Is the Contract: Specifying Work for Coding Agents 3. One Agent, One Worktree: Isolation and Concurrency for Coding Agents 4. Tests Are the Verification Layer: Proving Agent Generated Changes 5. Reviewing Code Nobody Typed: Human Judgment in an Agentic Workflow 6. The Pull Request Is the Product: A Delivery System for Coding Agents Read the articles in order if you are building an agent ready delivery system from the ground up. If your organization has already begun adopting coding agents, start with the article that addresses the constraint you are currently encountering. The agent writes the code. The delivery system determines what reaches production.

Up next

Reviewing Code Nobody Typed: Human Judgment in an Agentic Workflow

A pull request arrives with thirty seven changed files, polished comments, and a description that explains the architecture with unusual confidence. The reviewer approves it. Two days later the team finds the bypassed authorization rule. Nothing looked careless. That was part of the problem.