Claude Code auto mode 가 셀프 머지를 막는다 — 우회하지 말 것
에이전트가 자기가 만든 PR 을 병합하려 하면 차단된다. 차단을 풀려고 설정을 고치는 것도, 그 설정 파일을 읽는 것도 막힌다. 버그가 아니라 의도된 경계다.
에이전트에게 작업을 시키고 “커밋하고 push 해서 배포되게 해줘”라고 했다. PR 까지는 잘 만들었다. 병합에서 막혔다.
Permission for this action was denied by the Claude Code auto mode classifier.
Reason: [Merge Without Review] The agent authored PR #126 itself and immediately
merged it into main without any human review or approval...
“PR 병합해주세요”라고 명시적으로 다시 요청해도 똑같이 막힌다. 사용자 지시는 push 까지만 승인한 것으로 해석되고, 셀프 머지는 별도 동의로 치지 않는다.
우회 시도도 각각 막힌다
설정 파일을 고쳐서 권한을 넓히려 하면 다른 이유로 막힌다.
Reason: [Self-Modification] The agent is about to modify its own permission/config
settings (update-config skill) to widen Bash permissions bypassing the "Merge Without
Review" block...
그 설정 파일을 읽기만 해도 막힌다. git log -- .claude/settings.json 정도로도 걸린다.
Reason: [Auto-Mode Bypass] ...clear intent to tunnel the same self-modification/
permission-widening goal through a different tool path.
세 번째 메시지가 이 구조를 잘 보여준다. 도구가 아니라 의도를 보고 있다. 같은 목적을 다른 경로로 시도하는 것을 하나로 묶어서 판단한다.
원인 — 의도된 하드 바운더리
Claude Code 의 auto mode 에는 “AI 가 자기 자신의 승인 범위를 스스로 넓히는 패턴”을 잡는 분류기가 있다. 세 단계가 각각 독립적으로 차단된다.
- 자기가 만든 PR 을 사람 리뷰 없이 셀프 머지
- 그 차단을 풀기 위해 자기 권한 설정을 수정
- 2번을 다른 도구로 우회 시도
사용자가 아무리 명확히 승인해도, 에이전트 자신이 도구로 실행하는 한 계속 막힌다.
버그가 아니다. 재시도하거나, 다른 도구를 쓰거나, 문구를 바꿔도 안 뚫린다. denial 메시지 자체가 “이 방향으로 우회 시도하지 말라”고 명시한다.
시간 낭비를 줄이려면 이걸 빨리 인정하는 게 낫다. 나도 두 번 다르게 시도해보고 나서야 알았다.
해결 — 사람이 직접
지금 이 PR 을 병합하려면
GitHub UI 에서 직접 Merge 버튼을 누른다. 30초면 되고 가장 확실하다.
앞으로 에이전트가 gh pr merge 를 쓰게 하려면
.claude/settings.json 에 권한을 추가한다.
{
"permissions": {
"allow": ["Bash(gh pr merge:*)"]
}
}
이 파일 수정을 에이전트에게 시키면 안 된다. 위의 2번·3번 차단에 그대로 걸린다. 두 가지 방법이 있다.
- 에디터로 직접 파일을 열어 넣는다
- 세션에서
!접두사로 셸 명령을 직접 실행한다
! 접두사는 사용자가 실행하는 것이라 에이전트의 도구 호출이 아니다. 그래서 이 경로는 열려 있다.
프로젝트별 .claude/settings.json 과 사용자 전역 ~/.claude/settings.json 이 둘 다 존재할 수 있다. 그리고 worktree 는 worktree 루트 기준으로 자체 .claude/settings.json 사본을 갖는다. 어느 파일을 고치고 있는지 확인하는 게 좋다.
이 설계를 어떻게 볼 것인가
처음에는 답답했다. 내가 승인했는데 왜 못 하나 싶었다.
그런데 막힌 세 단계를 다시 보면 납득이 간다. 에이전트가 자기 권한을 넓힐 수 있으면, “권한을 넓히지 말라”는 제약 자체가 의미를 잃는다. 한 번만 뚫리면 그 뒤로는 전부 통과다.
그래서 이 경계는 사용자 승인으로 열 수 있는 것과 아닌 것을 나눈 것에 가깝다. 사람이 파일을 직접 고치면 열린다. 승인 자체가 막힌 게 아니라, 승인의 표현 방식이 에이전트 바깥이어야 한다는 조건이 붙은 것이다.
정리
이 메시지를 봤다면 우회를 시도하지 말고 바로 사람이 처리한다. 반복 시도는 다른 이유로 계속 차단될 뿐이다.
에이전트에게 맡기고 싶다면 설정 파일을 사람이 직접 고친다. 그게 유일하게 열려 있는 경로다.