Playbook: Onboarding · Recommended Starting Policies · Threat Model · Tool Policy Examples
Create these under Policies → Tool Policies → Create Policy. Leave User Groups empty to apply org-wide, or scope to a team. The four actions are Audit, Warn, Block, and Require Slack Approval (the last needs the Slack integration).Warn prompts for inline confirmation on Claude Code, Copilot, Codex, Augment Code, and Claude Cowork. On Cursor a Warn policy is not enforced — the command runs with no prompt, so use Block there. On OpenClaw, Warn blocks outright.
Looking for the day-one set we recommend most teams enable first? See Recommended Starting Policies. For the threat-modelling view of that pack (six layers, what each blocks vs. audits), see Threat Model. For platform background, see the Onboarding Playbook.
Examples
Block destructive database operations
Risk: an agent with DB credentials runsDROP DATABASE or TRUNCATE and wipes data irreversibly.
- When Command Family = Database Admin
- If Match Against = Operation, Pattern =
DROP*(add a second rule forTRUNCATE*) - Then Block
DROP DATABASE prod; is blocked. A normal SELECT is untouched.
Block production infrastructure teardown
Risk: an agent with cloud credentials deletes a live environment.- When Command Family = Cloud Destroy
- If Match Against = Environment, Pattern =
*prod* - Then Block
kubectl delete namespace production is blocked (Unbound reads production from the target and tags the environment). Same for aws rds delete-db-instance --db-instance-identifier prod-db.
Require approval to tear down staging
Risk: staging teardown is sometimes legitimate, but you still want a human in the loop.- When Command Family = Cloud Destroy
- If Match Against = Environment, Pattern =
staging - Then Require Slack Approval
kubectl delete namespace staging is held, and an approver gets a Slack DM to Allow or Deny.
Audit every git push
Risk: agents push code — including pushes that overwrite shared history. Log them all so you can see what your agents ship.- When Command Family = Git Action
- If Match Against = Operation, Pattern =
push - Then Audit
git push origin main runs as usual and is logged in Analytics → Tool Use → Terminal Run. (The operation is recorded as push for plain and force-pushes alike, so this one rule covers both.)
Audit every file deletion
Risk: you don’t yet know what your agents delete — get visibility before you enforce.- When Command Family = Delete File
- If Match Against = Path, Pattern =
* - Then Audit
rm -rf build/ runs as usual, with a log entry in Analytics → Tool Use → Terminal Run. Tighten the path later (e.g. */prod/*) and switch to Block.
Block deleting files from a repo (GitHub)
Risk: an agent removes source files through the GitHub MCP, no terminal command involved.- MCP Server = GitHub, Tool =
delete_file - Then Block
delete_file call is blocked.
Require approval before merging a PR (GitHub)
Risk: an agent self-merges a pull request with no human review.- MCP Server = GitHub, Tool =
merge_pull_request - Then Require Slack Approval
Block posting to Slack
Risk: an agent posts to channels — noise at best, data exfiltration at worst.- MCP Server = Slack, Tool =
slack_send_message - Then Block
Warn before editing Notion docs
Risk: an agent edits shared team documentation.- MCP Server = Notion, Tool =
notion-update-page - Then Warn (prompts on Claude Code, Copilot, Codex, Augment Code, and Cowork; not enforced on Cursor)
Audit all destructive Linear actions
Risk: you want a record of every deletion an agent makes in Linear.- MCP Server = Linear, Action type = destructive
- Then Audit
delete_comment, delete_attachment, and delete_status_update).

