Autonomy levels

On this page

The autonomy level sets how often the team stops to ask you. There are three: guided, balanced and autonomous. balanced is the default. /kotharo:setup asks for a level when none is set.

The levels

  • guided: stops at plan and merge in every lane, and at scope and design in a new feature. It asks Ship it? before the merge stop, and asks before every action on the list below, including a deploy to dev.
  • balanced: the lane's stops as set, with one end card that ships. It asks before every action on the list below.
  • autonomous: commits, pushes the feature branch, opens the pull request, removes its own worktree and deploys to dev without asking. Small fixes and clear tickets stop only at merge.

Lanes and stops shows each lane's stops at each level.

Actions a level can let run

These are the actions a level, or your own settings, can let the team take without asking:

ActionWhat it is
commit-localCommit on the feature branch, without pushing
push-feature-branchPush the ticket's feature branch
open-prOpen the pull request
remove-own-worktreeRemove a worktree the team made for the ticket
deploy-devDeploy to a dev environment

Each one the team takes without asking is logged as a dated line in the ticket's docs/work/<KEY>/handoff.md. A shared dev environment never deploys without asking, whatever the level.

What always asks

Whatever the level and whatever any settings file says, the team asks you before it:

  • merges into main or another long-lived branch;
  • force-pushes;
  • rewrites history that was pushed;
  • deletes a remote branch or tag;
  • deploys to production;
  • runs a migration on a shared environment;
  • installs a dependency;
  • creates, edits, moves or reassigns a ticket;
  • goes past anything a risk gate on the ticket holds.

This list is fixed in Kotharo's code, so no settings file can change it. Naming one of these in autonomy.allow is an error.

Set the level

For one repo, for everyone on it:

/kotharo:config set autonomy.level autonomous --repo

Or just for you, in every repo, with --user. /kotharo:config show --origin autonomy.level says which file sets it now.

Fine-tune single actions

autonomy.allow lets single actions run without asking, and autonomy.ask makes them ask, on top of the level. Ask always wins, and every layer's ask adds up. For example, in the repo's .claude/kotharo.toml:

[autonomy]
level = "autonomous"
ask = ["deploy-dev"]

Who can loosen it

A team profile can only tighten: it can set guided and add to ask. A looser level or a new allow takes effect only from your own ~/.claude/kotharo.toml or the repo's committed .claude/kotharo.toml, never from a team profile or from .claude/kotharo.local.toml. A stricter rule in your CLAUDE.md, the repo's CLAUDE.md or the team profile wins over the level.

At any level other than balanced, or with overrides, each session starts with a short note that tells Claude the level and what it may do without asking.

Next: Teaching mode. All docs