# 재현되지 않는 스크립트의 진짜 원인

> `claude -p`의 기본 로드 범위와 `--bare`가 바꾸는 것

- Canonical: https://learning.reopt.ai/courses/claude-code-team-operations/lessons/ccto-m1-concept
- Language: ko-KR
- HTML: https://learning.reopt.ai/courses/claude-code-team-operations/lessons/ccto-m1-concept

---

[헤드리스와 팀 운영](/courses/claude-code-team-operations) 1. 헤드리스 실행 계약 1 / 9

# 재현되지 않는 스크립트의 진짜 원인

`claude -p`의 기본 로드 범위와 `--bare`가 바꾸는 것
개념 학습 45 XP 9분

로컬에서 완벽하게 돌던 claude -p 스크립트가 동료 머신이나 CI 러너에서 다른 결과를 냅니다. 원인은 모델의 변덕이 아니라 무엇이 로드되었는지가 머신마다 달랐다는 사실 입니다. -p 는 실행을 비대화형으로 바꿀 뿐, 작업 디렉토리와 ~/.claude 의 hooks·skills·plugins·MCP 서버· CLAUDE.md 를 대화형 세션과 똑같이 자동 검색합니다. --bare 는 이 자동 검색을 전부 건너뛰어 시작을 가볍게 하고, 필요한 컨텍스트만 --settings · --mcp-config · --append-system-prompt 로 코드에 적히게 만듭니다. 헤드리스 설계의 첫 결정은 프롬프트 문구가 아니라 로드 범위를 누가 통제하느냐입니다.
로드 범위는 우연이 아니라 계약이다 저장소에 커밋되는 헤드리스 호출은 --bare 로 자동 검색을 끊고 실행에 실제로 필요한 컨텍스트만 플래그로 명시 주입한다. 같은 명령을 처음 보는 머신에서 실행했을 때 로드 목록을 예측할 수 없다면 그 호출은 아직 계약이 아니다.

| 실행 방식 | 로드되는 것 | 이 방식을 고르는 때 |
| claude -p 기본 | 대화형과 동일한 전체 자동 검색 | 로컬 스크립트, 프로젝트 설정이 필요할 때 |
| claude --bare -p | 자동 검색 생략, Bash·읽기·편집만 | CI·스크립트, 머신 간 동일 결과가 필요할 때 |
| claude --safe-mode | 인증·모델·권한 유지, 커스터마이즈만 해제 | hook·plugin 문제를 좁혀 진단할 때 |
| --setting-sources user | 사용자 설정만, 프로젝트 스킬 차단 | 프로젝트 설정만 배제하고 싶을 때 |

재현성 문제는 컨텍스트를 더 주는 방향이 아니라 로드를 통제하는 방향으로 풉니다.

- 1 로드 목록 적기 지금 호출이 어떤 hooks·skills·MCP· CLAUDE.md 를 끌어오는지 먼저 나열합니다.

- 2 자동 검색 끊기 CI·스크립트 호출을 claude --bare -p 형태로 바꿔 로드를 0에서 시작합니다.

- 3 필요한 것만 주입 --settings · --mcp-config · --append-system-prompt · --agents 로 실제 필요한 컨텍스트만 되돌립니다.

- 4 인증 경로 확인 --bare 는 OAuth와 키체인을 건너뛰므로 ANTHROPIC_API_KEY 나 apiKeyHelper 로 키를 공급합니다.

실무에 남길 기준

- -p 는 비대화형 실행일 뿐이며 로드 범위를 줄여 주지 않는다
- --safe-mode 는 CI 기본값이 아니라 설정 문제를 좁히는 진단 도구다
- --bare 전환 후 첫 실패는 대개 인증이므로 키 공급 경로를 함께 설계한다

이해했어요 · 계속

---

에이전트용 사이트 안내: https://learning.reopt.ai/llms.txt · 사이트맵: https://learning.reopt.ai/sitemap.xml · 문의: https://learning.reopt.ai/contact
