Overview
The approval system lets each squad declare what agents can do automatically vs. what requires human sign-off. That declaration lives in plain YAML inSQUAD.md — it’s read by critic agents doing PR review, and (if you run a
companion API + Slack app) by an interactive approve/reject flow. The two are
independent: the policy is useful as documentation and as a critic-agent gate
even if you never wire up Slack.
This is a different mechanism from governance, which protects
goals.md/directives.md/SQUAD.md themselves from autonomous edits via native Claude Code permission rules. Approvals gate what an agent does; governance gates what an agent can rewrite.Configuration
Each squad’sSQUAD.md contains an approvals: section:
Action Categories
Auto Actions
Agents execute immediately without human intervention:Notify Actions
Posted to the channel, but the agent proceeds without waiting:Approve Actions
Require async approval via Slack:Confirm Actions
Require synchronous confirmation before proceeding:Thresholds
Automatic escalation based on impact:How Thresholds Work
- Spend Threshold: Agent tracks cumulative spend. When approaching threshold, pauses for approval.
- Bulk Actions: Creating >5 issues? Closing >5 PRs? Requires approval.
- Files Changed: Large PRs automatically require squad lead review.
Approval Flow
Interactive Slack approve/reject buttons require a running companion API
(
SQUADS_API_URL) with a Slack app configured — that’s part of the hosted
platform, not something the standalone local CLI spins up for you. Without
it, squads approval send records a request but nothing decides it. What
works standalone: squads add auto-creates a #squad-<name> Slack channel
if SLACK_BOT_TOKEN is set, and critic agents can enforce the same policy:
tiers directly on a PR without any Slack integration at all.CLI Approval
squads approval cancel <id> exists in the CLI but isn’t implemented yet
server-side — sending it is currently a no-op.
Escalation
Some actions escalate to higher-level channels:confirm, it escalates from the squad channel to the company channel, requiring explicit confirmation before proceeding.
Timeout Behavior
Approvals have configurable timeouts:Per-Squad Examples
Engineering Squad
Company Squad
Best Practices
1. Start Restrictive
Begin with most actions inapprove, move to auto as trust builds.