You can hand an AI agent a hundred tools. The thing that actually decides whether it helps you or quietly wrecks something is a document most setups don't have: a written delegation contract.
I run a one-person, multi-channel operation (publishing, monitoring, commerce) on autonomous Claude Code agents. Every line that runs unattended runs under a one-page charter. Here's the exact template and the reasoning behind each section — copy it, fill the brackets, and you have a management layer.
The template
# AUTOPILOT CHARTER — [agent/line name]
## Goal
[One sentence. Measurable. With a deadline.]
## Daily routine
[What it does on schedule, in order. Times matter.]
## Autonomous powers
[What it may do WITHOUT asking — publish to owned channels,
edit its own queue, retry failures, rotate content.]
## Absolute guardrails
- Facts only: no number without a live source — otherwise write `unverified`.
- Never touch credentials, payments, or anything irreversible.
- [Your domain-specific red lines.]
## Human-only blockers
[Logins, API-key issuance, spend approval, account creation.
Surface these in EVERY report until cleared. Never work around them.]
## Report format
[Daily, 5 lines max. Every number verified or marked `unverified`.]
Why each section earns its place
Goal, one sentence. If you can't state it in a sentence, the agent can't optimize for it and you can't audit it. "Grow the blog" fails both tests. "Publish 1 search-optimized post daily; >100 search impressions by Aug 31" passes.
Autonomous powers — written as a positive list. The default failure mode isn't a rogue agent; it's a timid one that asks permission for everything, or a creative one that invents permissions. An explicit list kills both. Everything not listed is not granted.
Guardrails: the facts-only rule. The single highest-value line in the whole file. My dashboards used to flatter me — an agent would report "views growing" from thin air. The rule that every number needs a live source (or an honest unverified) is what made reports trustworthy enough to act on.
Human-only blockers surface in every report. Agents work around obstacles — it's what they're built for. But some obstacles (an expired login, a missing API key) should stop the line. Making them a standing checklist item means they get 20 seconds of my attention daily instead of being silently routed around.
Report format is the interface. Five lines, facts only. If the report is long, nobody reads it; an unread report is the same as no report.
What changed after adopting this
Before: agents behaved like eager interns — plausible output, invisible mistakes. After: three silent failures surfaced in the first week (a scheduler logging success while publishing nothing, a dedup filter swallowing every item, a session that had been dead for days). None were new. They'd been happening under the old "just prompt it well" setup — I only found out because reports were finally forced to be honest.
The charter template plus the two watchdog agents that enforce it (ops-monitor, qa-reviewer) are free here: ai-employee-management-layer (MIT, plain markdown).
The full org — 12 role charters, memory conventions, scheduling recipes, the lessons file — is the AI Employee Company Starter Kit that funds the build log at builderlog.net.
If you're running agents unattended: what's in your guardrails section? Genuinely curious what other people's red lines look like — comments open.
Top comments (0)