Use cases
Every case reads the same way: the action an agent tried, the rule you wrote, and the decision it met before anything ran. The first six are the rows on the home page. The rest are the rules a production policy carries, one case each.
At work
-
Agents you buy, through the gateway
A support agent on WhatsApp
- What it tried
- stripe.create_refund, cus_9Kx, amount 400000
- Your rule
- Refunds above 10,000 wait for a person.
- What happened
- Waiting The refund waits for the finance approver, one of two. It expires in 52 minutes if nobody answers. Nothing reached Stripe.
-
Agents you buy, through the gateway
Claude Code, in a developer session
- What it tried
- github.merge_pull_request, payments-service, main
- Your rule
- Merges to main wait for a person.
- What happened
- Waiting The merge waits for the release approver. The agent is not told where the line is, and it cannot argue its way past it.
-
Agents you buy, through the gateway
A Cursor agent, in an editor
- What it tried
- aws.iam.attach_role_policy, role/deploy, AdministratorAccess
- Your rule
- Permission changes wait.
- What happened
- Waiting The policy change waits for the platform approver, two of three. Until they say yes, the role stays as it was.
-
Agents you build, through the adapter
A sales workflow on the OpenAI Agents SDK
- What it tried
- salesforce.delete_records, 340 records
- Your rule
- Bulk deletes above 100 wait.
- What happened
- Waiting The delete waits for the CRM owner. Ten records would have gone through; 340 stops.
-
Agents you build, through the decorator
An ops bot in Slack
- What it tried
- k8s.rollout, checkout-api, production, 12 pods
- Your rule
- Production actions wait.
- What happened
- Waiting The rollout waits for the release approver. The same rollout to staging went through two minutes earlier, allowed by the same rule.
-
Agents you buy, through the gateway
A ChatGPT connector on the support inbox
- What it tried
- gmail.send, 300 recipients
- Your rule
- Sends above 50 recipients wait.
- What happened
- Waiting The send waits for the comms approver. A reply to one customer would not have.
-
Agents you build, through the adapter
A CRM agent
- What it tried
- salesforce.export_all
- Your rule
- No rule mentions it.
- What happened
- Blocked Blocked. Silence is never permission: an action with no rule does not run.
Production and infrastructure
The rules from a production policy: staging goes through, production waits, the destructive ones never run.
-
Agents you buy, through the gateway
A Teams app, deploying
- What it tried
- k8s.rollout, checkout-api, staging, 12 pods
- Your rule
- Rollouts to staging go through.
- What happened
- Allowed Runs at once and is recorded. The same agent, the same tool, the same image: only the target decides.
-
Agents you build, through the decorator
An ops bot in Slack, four regions
- What it tried
- k8s.rollout, checkout-api, production, regions 4
- Your rule
- Production rollouts to more than three regions wait for two of two.
- What happened
- Waiting Waits for both release approvers. One yes is not enough for a rollout that touches every region at once.
-
Agents you buy, through the gateway
A Codex agent, cleaning up
- What it tried
- k8s.delete_namespace, production
- Your rule
- Deleting a production namespace is blocked.
- What happened
- Blocked Never runs, and no approver can be asked. Some rules have no line above which a person may say yes.
-
Agents you build, through the decorator
A release agent, fourth time today
- What it tried
- k8s.rollout, checkout-api, production
- Your rule
- Three production actions per agent per day.
- What happened
- Blocked The fourth stops. The budget counts what reached a decision today, retries included, and resets tomorrow.
-
Agents you build, through the decorator
A release agent, after a lost reply
- What it tried
- k8s.rollout, checkout-api, production, attempt 2
- Your rule
- An outcome nobody saw is ambiguous. No retry until a person resolves it.
- What happened
- Ambiguous The first attempt may have run. The second is refused until someone looks at the cluster and says which. Nothing runs twice on a guess.
-
Agents you build, through the decorator
The on-call lead, at three in the morning
- What it tried
- k8s.rollout, checkout-api, production, rollback to v2.14.0
- Your rule
- The break-glass role may act alone in production, with a review after.
- What happened
- Allowed Runs now, marked break-glass, and lands in the incident queue for the two-person review in the morning.
Access and privilege
Anything that changes who can do what waits for the security approver, and the agent is never told the threshold.
-
Agents you build, through the adapter
A LangGraph agent, rotating credentials
- What it tried
- iam.create_access_key, role/admin
- Your rule
- Privilege changes wait for the security approver, two of two.
- What happened
- Waiting Waits for both. The old key keeps working until they answer, and the request expires if they do not.
-
Agents you buy, through the gateway
A Cursor agent, tidying a user
- What it tried
- okta.deactivate_user, j.doe
- Your rule
- Changes to a person's account wait.
- What happened
- Waiting Waits for the platform approver. The agent sees "waiting", not the rule that put it there.
-
Agents you buy, through the gateway
A CRM agent, after it went quiet
- What it tried
- salesforce.update_record, any
- Your rule
- Frozen by the on-call lead at 10:14.
- What happened
- Blocked Every action from this agent is refused while it is frozen, each one a receipt. Unfreezing is a recorded policy action, not a flag.
Data and records
Counts are the rule. A handful goes through, a bulk change waits, an export with no rule does not run.
-
Agents you build, through the adapter
A sales workflow on the OpenAI Agents SDK, forty records
- What it tried
- salesforce.delete_records, 40 records
- Your rule
- Bulk deletes above 100 wait.
- What happened
- Allowed Forty is under the line, so it runs. The same rule that stopped 340 lets 40 through.
-
Agents you build, through the adapter
A CrewAI agent, migrating
- What it tried
- postgres.drop_table, orders_archive
- Your rule
- Schema changes in production wait for the data owner.
- What happened
- Waiting Waits for the data owner, one of four. The migration that only adds a column would have gone through.
-
Agents you build, through the decorator
A research agent in your own Python, sending rows out
- What it tried
- http.post, api.vendor.example, 12,000 customer rows
- Your rule
- Customer data leaving your systems waits.
- What happened
- Waiting Waits for the data owner. The agent had every permission it needed; the rule is about where the rows go, not whether it may call the API.
-
Agents you buy, through the gateway
A WhatsApp support bot, all day
- What it tried
- zendesk.update_ticket, status solved
- Your rule
- Ticket updates go through.
- What happened
- Allowed Three thousand a day, each recorded, none waiting. Control is not a queue; most of what an agent does is allowed and simply written down.
Messages and customers
One reply is a reply. Three hundred is a campaign, and a campaign waits.
-
Agents you buy, through the gateway
A ChatGPT connector, answering one customer
- What it tried
- gmail.send, 1 recipient
- Your rule
- Sends above 50 recipients wait.
- What happened
- Allowed One recipient goes out at once. The rule that holds the campaign never slows the reply.
-
Agents you buy, through the gateway
A Slack app, posting to everyone
- What it tried
- slack.post_message, #announcements, 4,000 members
- Your rule
- Posts to channels above 500 members wait.
- What happened
- Waiting Waits for the comms approver with the message on the card. They read what will be sent, not a summary of it.
-
Agents you buy, through the gateway
A support agent, changing a plan
- What it tried
- stripe.subscription.update, cus_2Zq, plan downgrade
- Your rule
- Subscription changes go through; cancellations wait.
- What happened
- Allowed A downgrade runs. A cancellation on the same customer would have waited, under the same rule. Money is its own product: ctrl payments.
When the answer is no
The cases that only a boundary catches: the approval that no longer matches, the yes from the wrong person, the window that closed.
-
Agents you buy, through the gateway
A support agent, second attempt
- What it tried
- stripe.create_refund, cus_9Kx, amount 400000, under an approval for 200000
- Your rule
- An approval is for one exact action. Different arguments need a new yes.
- What happened
- Blocked Blocked for approval mismatch. The first refund, for 200000, ran with that approval. This one does not, even though the same person approved.
-
Agents you build, through the decorator
The agent's owner, approving their own agent
- What it tried
- approve, k8s.rollout, checkout-api, production
- Your rule
- The requester is never the approver.
- What happened
- Blocked The yes is refused and recorded. The rollout keeps waiting for another release approver.
-
Agents you buy, through the gateway
A release agent, an hour later
- What it tried
- k8s.rollout, checkout-api, production, approval apr_3f6
- Your rule
- An approval expires in 55 minutes.
- What happened
- Blocked The window closed at 55 minutes. The agent asks again and a person answers again; an old yes never runs a new action.
-
Agents you build, through the decorator
A release agent, after the cluster moved
- What it tried
- k8s.rollout, checkout-api, production, replicas now 14
- Your rule
- An approval binds to the state it was given in.
- What happened
- Blocked The deployment changed between the yes and the run, so the approval is void. Refused, and the approver is told why.
At home
One person and the agents they run, with one approver: you.
-
Personal
Claude Code, through your MCP tools
- What it tried
- Merge payments-service into main?
- Your rule
- Merges to main wait for you.
- What happened
- Waiting Waits in your inbox, and in your assistant if you have linked one. Expires in 41 minutes.
-
Personal
A Cursor agent, through your MCP tools
- What it tried
- Attach AdministratorAccess to role/deploy?
- Your rule
- Permission changes wait.
- What happened
- Waiting Waits for you. Anything with no rule at all is blocked.
-
Personal
A shopping agent with a wallet on Coinbase
- What it tried
- Pay $340.00 to a new seller?
- Your rule
- New sellers wait at any amount. Approved amounts are exact.
- What happened
- Waiting Waits for you. When you approve $340, $350 under that approval is refused, and a lost reply is never retried on a guess.
-
Personal
Claude Code, pushing
- What it tried
- git push --force origin main
- Your rule
- Force pushes wait for you.
- What happened
- Waiting Waits in your inbox. A normal push to a branch would not have.
-
Personal
A Codex agent, releasing
- What it tried
- npm publish, @you/cli 2.0.0
- Your rule
- Publishing waits for you.
- What happened
- Waiting Waits for you, with the version on the card. Nothing reaches the registry until you say so.
-
Personal
A ChatGPT connector on your inbox
- What it tried
- gmail.archive, 2,000 messages
- Your rule
- Bulk changes above 100 wait.
- What happened
- Waiting Waits for you. Archiving one thread would have gone through.
-
Personal
A booking agent with your wallet
- What it tried
- Pay $640.00 to a new seller?
- Your rule
- New sellers wait at any amount.
- What happened
- Waiting Waits for you. Approve $640 and it pays $640; $700 under that approval is refused.
-
Personal
An assistant on your calendar
- What it tried
- calendar.create_event, tomorrow 10:00
- Your rule
- Calendar changes go through.
- What happened
- Allowed Runs, and is in your record. Most of what your agents do is allowed; the inbox only holds the few that matter.
-
Personal
A new agent you have not written a rule for
- What it tried
- aws.ec2.terminate_instances, 3 instances
- Your rule
- No rule mentions it.
- What happened
- Blocked Blocked. Silence is never permission, at home as at work.