the short answer
Yes, below. Most AI usage policies are documents nobody can enforce. This template pairs every clause with the mechanism that makes it true: managed settings, a hook-level policy, credentials or a review step, and it assumes several approved agents rather than one. Adopt the clauses that fit, delete the rest, and only publish a clause once its control is deployed, at least in observe mode.
- Format
- Clause, enforcement mechanism, evidence
- Sections
- Approved agents, accounts, data, actions, credentials, review, monitoring
- Rule
- No clause without a control
- Multi-agent
- One list of approved agents; one policy layer across them
- Owner
- Platform engineering with security
Write It for Several Agents, Not One
Most engineering teams now run more than one agent: Claude Code in the terminal, Cursor in the editor, Codex or Copilot for some teams. A usage policy that names one tool is out of date the week it ships. Name the approved agents and plan tiers in one list, apply each vendor’s own admin settings to pin accounts and modes, and put the action rules in a policy layer that covers all of them.
The Template
| Clause | Enforced by | Evidence |
|---|---|---|
| 1. Only approved agents and plans are used on company code: [list, e.g. Claude Code (Team), Cursor (Enterprise), Codex (Business)]. | Inventory script; policy client installed on every machine | Inventory report; coverage under Admin → enforcement |
| 2. Agents sign in only to company accounts. | Claude Code forceLoginMethod and forceLoginOrgUUID; Codex allowed_chatgpt_workspaces (requirements.toml or MDM); Cursor AllowedTeamId | Managed settings and MDM profiles |
| 3. Agents do not read secret files or print environment secrets. | block-env-files, protect-env-vars (on by default) | Deny decisions |
| 4. Agents do not run destructive infrastructure commands. | Custom policies (see the Terraform, Route 53 and database guides) | Deny decisions |
| 5. Agents do not push directly to protected branches or force-push. | block-push-master (set protectedBranches), block-force-push | Deny decisions; branch protection |
| 6. Agent work in the cloud uses the approved agent profile. | Approved-profile custom policy; IAM permission set | Policy version; IAM config |
| 7. Infrastructure changes from agents go through pull requests. | Deny local applies with a reason that points to a PR | Deny decisions; PR history |
| 8. Agent activity is recorded for every session. | Policy client connected to the fleet console | Session traces |
| 9. Bypass and auto-approve modes are disabled. | Claude Code managed settings: permissions.disableBypassPermissionsMode: "disable" and disableAutoMode: "disable"; equivalents per agent | Managed settings files |
| 10. Exceptions are requested, approved and time-limited. | Per-machine deployment (persona assignment in managed deployments), rolled back with fp fleet rollback when the exception ends | Deployment history |
How to Adopt It
- Delete clauses you will not enforce. An unenforced clause trains people to ignore the document.
- For each remaining clause, deploy the control in observe mode (a Cloud deployment) and read a week of decisions.
- Publish the policy and switch controls to enforce in the same week.
- Review quarterly against new agents and new incidents.
Two Commands Cover Clauses 3 and 5
block-push-master protects main and master unless you set protectedBranches under policyParams in policies-config.json; add your release branches there.
failproofai policies add FailproofAI/policies # env files, env vars, protected branches, sudo, curl | sh on by default
failproofai policies add block-force-push # off by defaultFAQ
Do developers need to sign it?
Many companies attach it to the existing acceptable use policy acknowledgement. The controls matter more than the signature.
How specific should the approved tools list be?
Name the tools and the plan tier, for example “Claude Code on the company Team plan”. Generic wording invites personal accounts.
What about non-engineers using agents?
The same template works; trim the infrastructure clauses and keep the data and account clauses.
Sources
Checked against the sources below on October 21, 2026. Harness settings, hook capabilities and cloud features change between versions.
- Failproof AI docs: Use a policy pack
- Failproof AI docs: Deploy a policy
- Claude Code docs: Deploy managed settings
- Claude Code docs: Configure permissions
- OpenAI Codex docs: Configuration reference
- Cursor docs: Deployment patterns (MDM policies, AllowedTeamId)
- OWASP: LLM06:2025 Excessive Agency
- Hacker News: How to introduce Claude Code to a team?