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.
| Component | Question it answers |
|---|---|
| Git baseline | How can we return to a safe state? |
| Permission mode | Which actions may Claude perform? |
| Prompt | Which task needs to be completed? |
| Review and tests | Can the resulting work be accepted? |
Four behavioral families
| Behavior | When it fits | Primary control |
|---|---|---|
| Exploratory / read-only | Unfamiliar code and finding the cause of a bug | Do not edit; gather context and a plan |
| Normal with confirmations | Most implementation tasks | Confirm sensitive steps |
| Accelerated local | Mechanical changes with a narrow scope | Separate branch and obvious rollback |
| Nearly autonomous | A disposable sandbox session | An 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.
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 defaultWhat 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
- Check the repository and local state.
- Define the task boundaries and sensitive areas.
- Choose the permission mode before the first substantive request.
- Ask for analysis and a plan if the problem is not yet understood.
- Confirm only actions that match the scope.
- Review the diff, run checks, and perform a human review.
Canonical lesson source · JavaRush
Open JavaRush material