Engineering

Who Changed That? Accountability for AI Coding Agents

An agent closed a sprint, deleted a story, or marked unfinished work as done, and nobody can say who allowed it. Here's how to make AI agents accountable: a name, a person they answer to, limits, and a record of every change.

It's Monday morning. Last week's sprint is closed, three stories you were sure weren't finished are marked Done, and a story the customer asked about is gone. The activity log says it was the API user, which every AI tool on the team uses.

So who did it? Was it Codex, running a cleanup someone asked for? Claude, asked by Tom to "tidy the board"? And did anyone actually allow that?

That's the accountability gap with AI agents. They're useful because they act on their own. But a tool that acts on its own, under a shared login, with whatever permissions the API key has, can't answer the basic questions every team needs answered: who did this, for whom, and were they allowed to?

The four questions every agent action should answer

Whether you use Orvezo or not, these four questions are a good test for any setup where agents change shared work:

  1. Which agent? Not "the integration". A specific, named agent.

  2. On whose behalf? Every agent should work for a person who is responsible for what it does.

  3. Was it allowed? An agent's permissions should be bounded, never more than its person's, and narrower by default.

  4. Can we see it later? Every change should be recorded with all of the above, in a place people actually look.

If your current setup can't answer one of these, that's where the next incident will come from.

A name and a person for every agent

In Orvezo, agents are members of the workspace, like people. Each one has a name, for example "Codex" or "Release Bot", and one or more sponsors: the people it works for.

The sponsor isn't a label. It's who the agent answers to:

  • On cards, comments and notifications the agent shows as "Codex, for Priya".

  • Its history reads "Codex, for Priya, moved POR-142 to In Review".

  • If Priya leaves the team, or stops sponsoring the agent, it stops acting for her at once.

That turns "an agent did it" into a conversation with a person: "Priya, Codex closed these, was that you?"

Limits: never more than its person, narrower by default

The most dangerous agent is one that can do anything the API allows. Orvezo bounds agents in two ways.

First, an agent can never do more than its sponsor. If Tom can't delete stories in the Billing project, neither can the agent working for Tom.

Second, some actions are for people only, by default. Out of the box, agents can do the everyday work: create and edit stories, assign, comment, add dependencies, tag, and move work between the backlog and sprints. They can't:

  • start, complete, cancel or reopen sprints

  • delete stories

  • archive or delete epics and tags

  • delete other people's comments and files

Teams that trust their agents can turn on "Agents have the same permissions as their sponsor". Then an agent can do those things exactly when its person could, and every step is still recorded as the agent, on behalf of its person.

And some things agents never do, whatever the setting: manage members, billing or workspace settings.

A record you can trust

Accountability needs a record that's complete and hard to rewrite.

Every change is attributed. The audit trail shows each change, with before and after, who made it, and, for agents, on whose behalf. You can filter by person, agent, project, type of change, or channel (in the app, through an AI tool, or by GitHub).

Finished sprints can't be quietly edited. Once a sprint is completed, its stories can't be moved out or given a new status in place, by a person or an agent. If something marked done wasn't really done, it's reopened into the current sprint or the backlog, and both the story and the old sprint record that it was reopened. Velocity and burndown for the finished sprint don't change, so your history stays true.

Proof beats claims. When a project is connected to GitHub, a story shows its pull requests and their status. "Done" can mean merged, not "the agent said so". (How linking pull requests to stories works.)

A practical checklist

If you're adding AI agents to a team this quarter, start with these:

  1. One named agent per purpose, never a shared integration user.

  2. A sponsor for every agent, someone who would answer for its work in a retro.

  3. Default to narrow permissions. Let agents plan and build; keep deleting and closing sprints with people until you've seen how the agents behave.

  4. Use a review step where agents write code, so a person checks before work counts as done.

  5. Read the history once a week. Five minutes of "what did the agents change?" catches surprises while they're small.

  6. Decide what "done" means, and make it something you can check, like a merged pull request.

How this fits with the rest of the team

None of this makes agents second-class. They're assigned stories, @mentioned, and visible on the board next to everyone else, and they get their own inbox so they pick up work without being told. They just have what every good teammate has: a name, someone they answer to, clear limits, and work that leaves a trail. (A worked example of a team of people and agents.)

Orvezo gives every plan named agents with sponsors and the default limits above. The full audit trail and "Agents have the same permissions as their sponsor" are part of the Business plan, and both are included in the 30-day free trial. Start your trial: no credit card needed.

Frequently asked questions

Can an AI agent close a sprint in Orvezo?

Not by default. Running the sprint (starting, completing, cancelling) is for people unless the workspace turns on "Agents have the same permissions as their sponsor". Even then, the agent can only do it if its person could.

How do I see what an agent changed?

Every change shows in the story's history and in the audit log, as the agent on behalf of its person. You can filter the audit log to show only changes made through AI tools.

What happens if an agent's sponsor leaves?

The agent can no longer act for that person. Give it a new sponsor, or archive it. Its past work stays attributed to it.