Skip to main content
Playbook: Onboarding · Recommended Starting Policies · Threat Model · What Defaults Protect · Tool Policy Examples
Your AI coding agents can run anything a developer can — including the handful of commands that wipe a database, tear down production, or rewrite shared history. This is the pack that draws the line. It ships as 49 policies — 23 Block and 26 Audit — grouped into the seven categories the onboarding wizard asks you about. The genuinely irreversible and production-scoped actions are stopped; everything else is audited so you build the evidence to decide what to lock down next. The family and field values below are exactly what Unbound matches on.
You apply this pack yourself. It is the last step of onboarding — Load Policies. You are asked one question per category, you keep the categories you care about, and every policy inside a kept category shows its default Block or Audit, which you can flip before you confirm. Skipping a category creates none of its policies.First-Run Setup walks through that step and everything before it. Afterwards the policies live in Policies → Agentic Use → Tool Policies, where you can edit, rescope, disable or delete any of them. Anything you skipped you can create by hand with the When → If → Then values below.
The pack uses Block and Audit only. Warn is available when you author your own policies, but its effect depends on the coding agent — it prompts on some, is not enforced on others, and stops the command outright on Codex and OpenClaw — so it isn’t used for a baseline that has to hold everywhere. Actions has the per-agent behaviour, including headless runs.Where an action must actually be stopped, use Block; where you want a Slack confirmation step, use Require Slack Approval, sent to the developer by default (needs the Slack integration).
This pack covers terminal commands — what your agents run through the shell. For policies on MCP tool calls (GitHub, Slack, Notion, Linear, the filesystem MCP, …), see Tool Policy Examples. For the threat-modelling view of this same pack, see Threat Model. For what each default protects you from, and what it deliberately leaves alone, see What each default protects. For platform background, see the Onboarding Playbook.

Live in three steps

1

Apply the pack

Answer the seven questions at the Load Policies step and confirm. The irreversible handful is stopped; routine work is logged, not interrupted.
2

Watch your agents work

Give it a few days. Every audited action — and every blocked one — lands in Analytics → Agentic Use → Terminal Run, attributed to the user and session. Now you can see exactly what your agents do, not guess.
3

Tune to your data

Promote any noisy Audit rule to enforcement once you’ve seen the traffic, or relax one that’s getting in the way. Your enforcement is now shaped by your team’s traffic, not generic defaults.
Rolling out safely. The pack applies org-wide. If you’d rather ease in, flip the categories you’re unsure about to Audit at the Load Policies step and promote them once you’ve read a week of traffic — or apply as-is and scope individual rules to a User Group afterwards. Preview Impact on any policy shows what it would have matched over recent activity before you enable it. Any rule can be disabled or moved back to Audit instantly from Policies → Agentic Use. If a single rule turns noisy, narrow it (tighter pattern or smaller user group) rather than turning the whole pack off.
The Try it column gives a natural-language prompt you can paste into your AI agent — Claude Code, Cursor, Copilot, etc. — to watch the policy fire end-to-end. The arrow shows the command the agent will issue that Unbound catches.

1. Production — 10 policies (10 Block)

Can your agents deploy or change production directly? Nine of the ten rules are scoped to a production target, so the same command against staging or local is untouched. The tenth — Block cloud project or account switch — carries no production scope: it fires on any project, account or profile switch, production or not.

2. Cloud & Infrastructure — 10 policies (2 Block · 8 Audit)

Do your agents have cloud credentials (AWS, GCP, Azure, Terraform)? Provisioning is daily work, so it is logged. Decommissioning that takes a service down is stopped.

3. Identity, Access & Privilege — 7 policies (3 Block · 4 Audit)

Can your agents change access or escalate to root? This is where an agent grants itself authority it can’t be asked to give back.
There is no sudo rule in this pack. It governs how an agent reaches a privileged boundary — remote access as root, IAM grants, Kubernetes RBAC — and audits local privilege escalation rather than blocking it. A sudo command on the developer’s own machine is logged, not stopped. If you want local escalation stopped, add a Custom policy matching the whole command; see Tool Policy Examples.

4. Secrets & Credentials — 8 policies (1 Block · 7 Audit)

Should agents be able to read your secrets and tokens? Agents need to read secrets to work, so reads are logged. Deleting one can’t be undone, so that stops.

5. Databases & Data Movement — 8 policies (3 Block · 5 Audit)

Do your agents have database access or move data in bulk? Dropped tables and bulk exports don’t come back.
TRUNCATE counts as Database Admin, not Database Write, so its rule sits beside DROP and a Database Write rule will not catch it. UPDATE stays on Audit — it is logged, not stopped.

6. Source Control & Delivery — 2 policies (2 Block)

Should agents be able to force-push or push to protected branches? Both rewrite history other people depend on.
Force push needs the Custom family. A git_action policy matches on branch, remote, repo and operation, and a force push and a plain push are both push — no field tells them apart. The Custom family matches one pattern against the whole raw command, which is what makes --force catchable. It is the same escape hatch you use for any command a field can’t express.

7. System & Runtime Safety — 4 policies (2 Block · 2 Audit)

Should agents be able to run destructive commands like rm -rf? Corrupting the machine an agent runs on is never a normal coding step.

How the coverage layers up

Twelve of the 26 Audit rules match ANY field in their family — Audit all cloud provisioning, Audit all database writes, Audit all remote access and so on. They sit underneath every high-risk family and log whatever lands there, however it is named. The targeted rules above them fire when a command names its environment, its operation or its path — and the family-wide rule has your back when it doesn’t. Together that is defense-in-depth coverage across every high-risk family, and the audit trail shows you what’s worth tightening next.
Those family-wide Audit rules are the biggest driver of analytics volume — by design, while you’re learning your baseline. Once you’ve watched a few days of activity, lean on the targeted rules and narrow or disable the family-wide ones so the signal stays sharp.
Some commands match more than one rule, and that’s deliberate. kubectl apply --context prod matches Block kubectl apply to production, the broader Block deployment to production, and Audit all cloud provisioning. Block wins over Audit, and either Block rule stops the command. If you’d rather one rule own that path, narrow the broader one once you’ve decided which should.

Go live

Apply the pack at the Load Policies step of onboarding, or create any policy by hand from Policies → Agentic Use → Tool Policies → Create Policy with the When → If → Then values above. Review a few days of analytics, promote what matters from Audit to Block, relax anything noisy, and you’ve got enforcement tuned to how your team actually works.