Insights / October 12, 2026

Why the customer loop matters more with agentic coding

Coding agents have certainly made one aspect of software delivery a lot cheaper: the act of producing a change. They haven’t in any way made it any cheaper to work out which change is the one that you should make, or to find out whether the change actually worked for the person who requested it.

For any software organization, both of those questions go through the customer. A need comes in, reaches engineering with sufficient context to build the right thing, and the result comes back to the customer who asked. That’s the loop. The faster the middle of the loop is, the more the two ends will decide whether the work was worth doing.

What changes when agents write the code

Two things. First, when code is cheap to produce, building the right thing matters more than building it fast. DORA’s guidance on user-centric focus calls the failure mode the feature factory trap: AI helps a team that’s out of touch with its users ship low-value software faster. Its recommendations include keeping engineers close to users rather than behind a support gatekeeper, and writing user needs down before coding so they become the source of truth an agent works from. Read DORA on user-centric focus.

The second gets less attention. When a customer’s words enter a workflow that agents act on, those words become input, not instructions. OWASP’s 2025 list of risks for LLM applications puts prompt injection first, including instructions hidden in external content that a model reads, and recommends least privilege and human approval for privileged operations. Read OWASP on prompt injection. So the points where people decide aren’t overhead you’d remove once the agents got good enough. They’re also where untrusted input stops and authorized work begins.

That leaves two questions for your own team to answer. From a customer’s request to a confirmed resolution, where exactly do people decide, and where can agents do the work? And can you trace a request all the way through it, in both directions?

Walking one request through the loop

The example is the one on the Blacktops homepage, and the one the first article in this series used to find where a request waits. A customer asks: “Can this export include our Customer ID?” It’s small, and that’s the point. Even a one-column change still has to pass through support, product, engineering, review, and release before the customer can use it.

Illustrative walkthrough. The customer, the people, and the order of steps are invented to show the loop. Your stages will have different names, and some of them will be one person’s afternoon.

The customer asks whether an export can include their Customer ID. The request moves through four phases, Understand, Specify, Build and review, and Deliver and confirm, then returns to the customer. Diamonds mark the six steps where a person or the customer decides: whether it becomes work, scope, review, release, what to tell the customer, and confirmation. Ask, clarify, build and validate are work agents and systems do.

Ten steps in four phases (understand, specify, build and review, deliver and confirm). Each step lists what goes on the record. The steps marked Decision require a person (or the customer). All the rest is work that agents and systems can do.

1. The customer asks · Understand

What happens: The customer’s account admin asks from the application’s export screen.
On the record: Their words, their account and role, the report they were looking at, the application version.
Who: The customer asks. The in-app assistant picks up the context.

2. Clarify before building · Understand

What happens: Which report and which format? Which “Customer ID”? The application’s internal ID or the account reference that the customer uses in their own systems? Is it already available as a configurable column? The customer means their account reference and there’s no setting that will expose it.
On the record: The answers and the settings checked.
Who: Agent work. It asks, it checks the config and the docs, and the customer replies.

If a setting had solved it, the loop would have closed there: show the customer the setting, confirm it works, that’s it. That’s a good outcome, not a failure to get to engineering. Lots of requests should end at step 2.

Clarify before building. Which report and format: account activity export, CSV and XLSX. Which Customer ID: their account reference, not the internal ID. Is it a setting already: no setting exposes it. If a setting solves it, show it, confirm and close at step 2. Here a code change is needed, so it becomes an engineering candidate with the answers attached.

3. Decide whether it becomes work · Specify

What happens: The product owner decides whether this is engineering work and where it sits in relation to all the other work.
On the record: The decision, the priority, and who made it.
Who: Decision, product owner. An agent can draft the case. It doesn’t make the call.

4. Agree the scope · Specify

What happens: The requirement is documented and accepted.
On the record: The approved requirement, its acceptance criteria, and what’s out of scope.
Who: An agent drafts it from the clarified need. Decision, the product owner approves the scope.

The accepted scope for the account reference in the export: account activity export in CSV and XLSX; add an Account reference column after the existing columns; only records the user can already export; never a value from another tenant; existing column names and order unchanged; internal identifier and other reports out of scope; confirmed by the customer's admin through support. Approved by the product owner.
Requirement Accepted scope
Report Account activity export, CSV and XLSX
Change Add an “Account reference” column after the existing columns
Access Fill it only for records the requesting user can already export
Isolation Never return a value from another tenant
Unchanged Existing column names and order
Out of scope Changing the internal identifier; other reports
Confirmed by The customer’s admin, through support

5. Build in a workspace · Build and review

What happens: The approved task goes to a coding agent in a workspace with the repository, the tools, and only the access the task needs. An engineer can steer and take over.
On the record: The proposed change, linked to the requirement.
Who: Agent work. The agent works from the approved requirement rather than the customer’s message.

6. Validate · Build and review

What happens: Checks run against each acceptance criterion. The column shows the correct values. A user can’t get a reference for a record they couldn’t already export. No value crosses tenants. Existing columns are untouched.
On the record: The results, the environment used, and what wasn’t tested.
Who: Agent and pipeline work.

The access test matters most. Adding an identifier to an export is exactly the kind of change where object-level authorization slips. OWASP ranks broken object-level authorization first among API security risks and recommends testing the authorization mechanism and not deploying changes that make those tests fail. Read OWASP on object level authorization.

7. Review · Build and review

What happens: A reviewer reads the requirement, the change, and the evidence together, then approves, requests changes, or rejects.
On the record: The decision, the reviewer, and what they looked at.
Who: Decision, an authorized reviewer.

In the first article, review stalled because the identifier decision lived in a support conversation. Here, it’s been on the record since step 2, so the reviewer spends time judging the change instead of understanding why it was made.

8. Release and verify · Deliver and confirm

What happens: The approved version goes out via the team’s normal release process. A check is then performed to confirm that the version is indeed running on the customer’s account.
On the record: The version, the time, and the verification result.
Who: Decision, the release owner, or a release policy that they own. Deploying and verifying is system work.

9. Tell the customer · Deliver and confirm

What happens: An agent drafts an update in terms the customer is allowed to see: what changed and where to find it, nothing internal.
On the record: The update and when it was sent.
Who: An agent drafts it. Decision, whoever owns the customer relationship, or a communication policy they set.

10. The customer confirms · Deliver and confirm

What happens: The admin runs the export and then matches the records to the accounts.
On the record: The confirmation, in the customer’s words.
Who: Decision, the customer.

The loop closes when the customer says it meets the need rather than when the deploy has succeeded. If it doesn’t meet the need, the request goes back to step 2 with all of the learnings so far.

Where people decide

Pull the decisions out, and there are six. Everything else in the loop is work: asking clarifying questions, checking configuration, drafting the requirement, proposing and testing the change, assembling evidence, deploying and verifying, drafting the update. Agents and systems can do that work. The decisions stay with people.

Six decisions in ten steps. Steps 1, 2, 5 and 6 are work for agents and systems: the assistant captures the request, an agent asks and checks, a coding agent builds, agent and pipeline validate. Steps 3 and 4 are decided by the product owner, 7 by the reviewer, 8 by the release owner or policy, 9 by the relationship owner and 10 by the customer.
Decision Who decides What they need on the record
Is this engineering work, and when? Product owner The clarified need; the settings already checked
Is this the right scope? Product owner Draft requirement, access and tenant rules, what’s out of scope
Is this change right? Reviewer Requirement, change, test results, known gaps
Does it go out now? Release owner, or their policy Approval, version, rollback step
What do we tell the customer? Owner of the customer relationship Verified release; the customer’s original question
Did it solve the problem? The customer The change, working in their own account

A policy someone owns is still a person’s decision. Someone makes it once, in advance, and everyone can see it. That’s how small, low-risk releases go out without a meeting.

None of the six is a place to take the person out because the agent got better. OWASP’s guidance on excessive agency is direct: enforce authorization in downstream systems instead of trusting the model to decide what’s allowed, and have a human approve high-impact actions before they happen. Read OWASP on excessive agency. Anthropic’s guidance for people building agents makes the same point from the other side: agents should pause for human judgement at checkpoints and when they hit blockers, and for coding work, human review remains essential. Read Anthropic on building effective agents.

Which parts are illustrative? The number of steps, their names, and their order. Your team might merge steps 3 and 4, or run validation and review as one. Keep the six questions. Rename everything else.

Trace it both ways

A loop is said to be traceable if you can walk it in both directions without having to ask anyone.

Forward: from the customer’s question, can you click through to the requirement, the change, the evidence, the approval, and the version that shipped? Backward: from a deployed version, can you find the customer who asked for it, and whether anyone told them?

Eight linked records from the customer's question to the customer told and confirmed, traced forward and backward. The link from requirement to change is usually there, for example Fixes #123. The two links that break are at the ends: the clarified need is pasted into a work item instead of linked, and nobody links the released version back to the customer, so support finds out late.

Most teams will have some of the forward journey managed. On GitHub, if you have a closing keyword in a PR (e.g. “Fixes #123”), that will link it to the issue, and the issue will close when the PR is merged into the default branch. See the GitHub documentation on linking PRs to issues. That closes the issue. It doesn’t close the loop.

The links that break most often are at the two ends. At the start, support turns the conversation into a work item by copy-pasting instead of linking, and the customer’s words don’t survive the trip. At the end, nobody connects the release back to the person who asked. That’s how the customer in the second article’s example lost out: the fix shipped, and support learned about it from the release note.

Trace one request in your own stack

Pick a change that came from a customer and was shipped fairly recently. Half an hour with the person who took the request and the engineer who implemented the change is all that’s required.

  • Forward. Start at the customer’s question and follow links to the deployed version. Every time you have to search or ask someone, mark a break.
  • Backward. Start at the deployed version and work backwards to the customer. Mark the breaks again.
  • Decisions. For each of the six, find out who made it, when, and what they had in front of them. Where there is no record, put “unknown”.

The breaks show where memory carries the context. The unknowns show where someone decided without what they needed, or where nobody decided at all. In most teams, the thinnest records are at the ends: why the work was accepted, and whether the customer was ever told.

The backward trip pays off later. DORA’s guidance on customer feedback is that teams can learn from customer responses only if those responses reach them, and can act on them only if they have the authority to change course. Read DORA on customer feedback.

Where Blacktops fits

You can do everything above by hand, and tracing one request by hand is the best way to see your own breaks.

Blacktops is the Agentic SDLC Platform built to make this loop the default. The AI FDE, our AI Forward Deployed Engineer, works inside the application where the customer asks. It clarifies the need, checks what already exists, and carries the context into the engineering workflow. From there, Blacktops keeps one thread from the customer’s question to the delivered resolution: the approved requirement, the agent’s work in a scoped workspace, the evidence, each decision and who made it, the released version, and the update back to the customer. Agents do the work between the decisions. People make the decisions, with what they need already on the record. We call the operating model Continuous Agentic Software Delivery™, or Blacktops CASD™.

Blacktops CASD keeps one thread from the customer's question to the customer's confirmation. The AI FDE captures and clarifies the request; the product owner accepts the work and scope; agents build and validate in a scoped workspace; a reviewer approves; the release owner or policy releases; the delivery system verifies the version; the relationship owner approves the update; the customer confirms. The requirement, evidence, decisions, version and update stay on the thread.

Trace one request first. If your breaks are at the two ends, then that’s the loop Blacktops closes.

Tell us which handoff would matter most to your team.

Related: Why faster coding can still leave a slow release follows this same export request to find where it waits. Find the handoff where progress stops turns those waits into a six-stage checklist.

Continuous Agentic Software Delivery, CASD and Blacktops CASD are trademarks of Blacktops, Inc.

Discover more from Blacktops

Subscribe now to keep reading and get access to the full archive.

Continue reading