Book a call
All talks and takeaways

Policy template

Agent permissions in one page

What an AI coding agent may and may not do in your repository, cloud, and data, with how to enforce each line. Ready to copy into a policy.

I'm starting to see coding agents run with a personal access token. That token can push to main, read every secret, and call production APIs. The agent is fast and mostly right. That's exactly why the one wrong change slips through.

I treat agents as untrusted contributors. They get scoped permissions, the same checks as humans, and a human on every merge that matters. The table below is that rule, line by line.

From the talk: Ship fast, break nothing: CI/CD for vibe-coded startups

The policy

AreaThe agent mayThe agent may notHow we enforce it
RepositoryOpen branches and pull requests, and comment.Push to main, merge, approve its own work, or edit workflow files.A branch ruleset with no bypass for the bot, and CODEOWNERS on .github/.
IdentityAct as its own bot account or GitHub App.Use a person's account or personal access token.A GitHub App with the fewest permissions. Its installation tokens expire after an hour.
SecretsUse the secrets of its sandbox.Read production secrets or long-lived cloud keys.Production secrets only in an environment with required reviewers.
CloudRead and write in a sandbox account.Reach production accounts.A separate account, with OIDC roles scoped to it.
DataWork with synthetic or anonymised fixtures.Read production customer data.No production credentials in the sandbox, and no copies of production data there.
RunnersRun in fresh, isolated runners.Run on a laptop or a runner with a network path to production.GitHub-hosted or ephemeral runners only.
Outside inputRead issues, web pages, and READMEs as data.Follow instructions found in them.No secrets for workflows that outside contributors trigger.
ReviewReview code as an extra reviewer that comments.Give the approving review.A required approval from a human code owner.
RecordAct under its own identity, with every action in the log.Act anonymously or under a shared login.An audit log we keep, so last week's agent changes are one query away.

When to give an agent more

I raise autonomy one area at a time. The trigger is the agent's change failure rate matching the human engineers' rate. Products with LLM features need one more check. Their evaluation set runs in CI on every prompt or model change, as a check that can block a merge.

What I leave out on purpose

I leave out fully autonomous merge and deploy by agents, self-hosted model infrastructure, and multi-agent orchestration. Each one removes a human check before the metrics justify it. They can wait until the change failure rate says otherwise.

Next step

I highly recommend picking one repetitive task for an agent, such as dependency upgrades or test backfill. In thirty minutes we'll check whether it pays back and sketch the permissions it needs. Which task would your team hand over first?

Book a call

These takeaways are an engineer's reading of the rules and the tools. I wrote them to help teams decide what to build. They aren't legal advice. I recommend checking the current text with your own counsel before planning around a date or a threshold.

Let's talk.

A 30-minute call, no pitch. We look at your current setup, your stage, and the thing that's bothering you about it. I give a straight opinion on what to change, what to leave alone, and whether the problem is the one it looks like. What's the one thing in your stack you'd fix tomorrow?