Permissions define the autonomy boundary

Permission mode determines which actions Claude can perform in the current session and when confirmation is required. Choose it before defining the task, not after unwanted changes appear.

The Git baseline, permission mode, and prompt have different roles: Git provides a point of return, permissions limit actions, and the prompt describes the goal.

ComponentQuestion it answers
Git baselineHow can we return to a safe state?
Permission modeWhich actions may Claude perform?
PromptWhich task needs to be completed?
Review and testsCan the resulting work be accepted?

Four behavioral families

BehaviorWhen it fitsPrimary control
Exploratory / read-onlyUnfamiliar code and finding the cause of a bugDo not edit; gather context and a plan
Normal with confirmationsMost implementation tasksConfirm sensitive steps
Accelerated localMechanical changes with a narrow scopeSeparate branch and obvious rollback
Nearly autonomousA disposable sandbox sessionAn environment that can be safely discarded

Examples of choosing a mode

  • Investigate an unknown bug without editing first.
  • Make a small change in normal mode with confirmations.
  • Allow broad mechanical changes only with a narrow scope and simple rollback.
  • Auth, payments, migrations, and monetary calculations require a conservative mode.
Research first, implementation second
git switch -c investigate/refund-order
claude --permission-mode plan

# After confirming the hypothesis — a separate branch for the fix
git switch -c fix/refund-order
claude --permission-mode default

What requires confirmation

Reading, searching, and analysis usually carry less risk. Writing files, running commands with side effects, broad changes, and destructive operations can change the project state, so consider them separately.

An approval is a signal that the next step has a higher cost of error. Confirmation does not replace scope and does not mean the proposed action is correct.

  • Do not confirm an action if it is unclear which files or data it will affect.
  • Do not use the prompt as a replacement for technical constraints.
  • When in doubt, stop, clarify the context, and choose a stricter mode.

A controlled-session algorithm

  1. Check the repository and local state.
  2. Define the task boundaries and sensitive areas.
  3. Choose the permission mode before the first substantive request.
  4. Ask for analysis and a plan if the problem is not yet understood.
  5. Confirm only actions that match the scope.
  6. Review the diff, run checks, and perform a human review.

Canonical lesson source · JavaRush

Open JavaRush material