Claude Code 권한 거절에서 복구하기: guardrail 을 약하게 만들지 않는 법
거절된 Claude Code 명령을 이유, 안전한 대안, 증거 명령, 재시도 조건으로 나누는 복구 workflow.
Claude Code 의 권한 거절은 자동으로 실패가 아닙니다. 실무에서는 guardrail 이 제대로 작동했다는 신호일 때가 많습니다. 실수는 진행하려고 바로 권한을 넓히는 것입니다.
이 글은 거절을 recovery prompt 로 바꿉니다. 막힌 명령, 이유, 안전한 대안, 증거, 재시도 조건을 분리하면 정책을 약하게 만들지 않고도 계속 진행할 수 있습니다.
함께 읽기: claude-code-approval-sandbox-guide, claude-code-permission-audit-before-deploy, claude-code-security-best-practices. 공식 설치 기준은 Anthropic Claude Code getting started.
첫 명령 전에 필요한 이유
이 주제의 핵심은 거절 이유를 다음 안전 단계로 바꾸기 입니다. Claude Code 는 빠르게 움직일 수 있지만, 첫 입력이 너무 넓으면 낮은 가치의 diff, 오래된 가설, 수익과 무관한 정리가 중요한 작업과 같은 무게로 다뤄집니다.
권한을 강하게 설정한 뒤 Claude Code 가 멈춰서 곤란한 사용자 에게 중요한 것은 일을 크게 보이게 만드는 것이 아닙니다. 무엇을 읽고, 무엇을 만지지 않고, 무엇을 먼저 시도하고, 실패하면 어디로 돌아갈지를 짧게 정하는 것입니다. 콘텐츠 운영과 제품 개발 모두에 같은 원칙이 적용됩니다.
실무에서 쓰는 절차
- 거절된 명령을 정확히 기록합니다
- 위험을 사람이 이해할 말로 바꿉니다
- 안전한 대안을 하나만 고릅니다
- build, diff, screenshot, URL 증거가 있을 때만 재시도합니다
이 순서는 요청을 “자유롭게 생각해”에서 “이 경계 안에서 증거를 남겨”로 바꿉니다. Claude Code 의 추론 여지는 남기되 위험한 영역은 첫 편집 전에 닫습니다.
| 상황 | 안전한 진행 | 확인할 증거 |
|---|---|---|
| 배포 | wrangler 재시도 전에 build 와 URL 확인을 합니다 | build, diff, URL |
| 삭제 | 삭제 전 파일 목록과 영향 범위 확인으로 돌아갑니다 | build, diff, URL |
| 외부 API | 실제 credential 전에 dry-run 과 sample payload 를 씁니다 | build, diff, URL |
이 증거가 있으면 Claude Code 의 말을 분위기가 아니라 결과로 판단할 수 있습니다.
복사해서 쓰는 프롬프트와 코드
이 권한 거절을 recovery plan 으로 바꾸세요. 거절된 명령, 이유, 안전한 대안, 필요한 증거, 재시도 조건을 분리하세요. 아직 권한을 넓히지 마세요.
const denial = {
command: "npx wrangler pages deploy site/dist",
reason: "production deploy needs proof first",
safeAlternative: "run build and verify local dist before retrying deploy",
proof: ["ASTRO_TELEMETRY_DISABLED=1 npm.cmd run build", "git diff --stat"],
};
function recoveryPrompt(item) {
return `The command was denied: ${item.command}\nReason: ${item.reason}\nDo instead: ${item.safeAlternative}\nProof required: ${item.proof.join(", ")}`;
}
console.log(recoveryPrompt(denial));
코드는 작은 확인용입니다. 실제 프로젝트에서는 출력을 CLAUDE.md, issue, handoff note 에 붙여 다음 세션에서도 같은 판단을 재사용할 수 있습니다.
실제 예시와 실패 사례
| 상황 | 안전한 진행 | 확인할 증거 |
|---|---|---|
| 배포 | wrangler 재시도 전에 build 와 URL 확인을 합니다 | build, diff, URL |
| 삭제 | 삭제 전 파일 목록과 영향 범위 확인으로 돌아갑니다 | build, diff, URL |
| 외부 API | 실제 credential 전에 dry-run 과 sample payload 를 씁니다 | build, diff, URL |
- 거절 직후 allow 를 넓히면 정책 가치가 사라집니다.
- 이유를 생략하면 같은 거절이 다음에도 놀라움이 됩니다.
- 대안을 많이 주면 Claude Code 가 다시 넓은 작업을 고릅니다.
실패의 공통점은 Claude Code 의 능력 부족이 아니라 입력 경계가 얇다는 점입니다. 경계가 얇으면 AI 는 도와주려는 마음으로 작업을 넓힙니다. 수익 경로가 있는 글에서는 무료 PDF, Gumroad, 상담 중 어디로 보낼지도 경계의 일부입니다.
무료 PDF, Gumroad, 상담으로 이어지는 경로
기본 명령이 아직 낯설다면 무료 치트시트 로 일상 루틴을 먼저 잡습니다. 설치, 권한, CLAUDE.md, MCP, CI 가 병목이면 Setup Guide 가 다음 유료 단계입니다. review, debugging, refactoring 프롬프트를 매번 다시 쓰고 있다면 50 Prompt Templates 가 맞습니다. 팀 도입이나 수익 경로 설계까지 필요하면 상담 으로 이동하고, 상품 비교는 products 에서 확인합니다.
CTA 는 문서 끝에 한 번만 둘 필요가 없습니다. 도입부 근처에는 무료 PDF, 구현 예시 뒤에는 Gumroad 교재, 팀이나 운영 위험 이야기가 나오면 상담이 자연스러운 다음 단계입니다.
게시 후 볼 지표
다음에는 permission 글에서 Setup Guide 와 상담 페이지로 이동을 봅니다.
게시 후에는 PV 와 별도로 본문 초반 읽기, 내부 링크 클릭, 무료 PDF 등록, Gumroad 클릭, 상담 페이지 이동을 봅니다. HTTP 200 만으로는 성공이 아닙니다. h1, canonical, heroImage, CTA, 현지화 본문이 모두 같은 다음 행동을 가리켜야 합니다.
무료 PDF: Claude Code 치트시트
이메일을 입력하면 명령, 리뷰 습관, 안전한 워크플로를 정리한 PDF를 받을 수 있습니다.
개인정보를 안전하게 관리하며 스팸을 보내지 않습니다.
작성자 소개
Masa
Claude Code 실무 워크플로와 팀 도입을 검증하는 엔지니어입니다.
관련 글
Claude Code Harness Smoke Test: 에이전트를 믿기 전 15분 검증 루프
Claude Code 작업 전에 범위, 금지 영역, 증거 명령, 공개 URL, 수익 CTA를 확인하는 실무 체크입니다.
Claude Code 권한 세이프티 래더: 통제력을 잃지 않고 allow 넓히기
read-only에서 제한 편집, 검증 명령, deploy 확인까지 권한을 단계적으로 넓히는 방법.
Claude Code Small PR Proof Pack: 작은 PR을 리뷰 가능한 상태로 만드는 증거 세트
Claude Code의 작은 PR에 diff, 검증, 공개 URL, CTA 경로, rollback을 붙이는 실무 체크리스트.