에이전트를 픽셀 캐릭터로 보여 주는 클로드 코드 확장 pixel-agents(별 8,795개)를 지웠더니 설정 파일 내용이 통째로 사라지고 자기 훅만 남았다는 신고가 8월 4일 저장소 이슈 #377로 올라왔어요. 코드를 열어 보니 평소에는 기존 설정을 읽어 hooks만 손대고 permissions 같은 다른 키는 그대로 두는 합치기 방식이지만, 파일을 읽거나 JSON으로 해석하는 데 한 번이라도 실패하면 오류만 찍고 빈 값으로 간주한 뒤 그 위에 자기 훅을 얹어 파일을 다시 써요 — 백업은 만들지 않아요. 저장소 시험 코드에 '잘못된 설정 파일도 무난히 처리한다'는 항목이 있지만 확인하는 건 예외가 안 난다는 것뿐이고, 사용자의 다른 설정이 살아남는지 보는 시험은 없어요.
용어 풀이
- JSON
- 설정·자료를 프로그램끼리 주고받을 때 쓰는 문서 형식
- hooks
- 클로드 코드 설정에서 정해진 순간마다 자동 실행할 명령을 담는 항목
- permissions
- 클로드 코드 설정에서 도구 사용 허용·차단 규칙을 담는 항목
운영자 인사이트
외부 도구를 들이기 전에 ~/.claude/settings.json에 손대는지, 손댄다면 읽기에 실패했을 때 어떻게 하는지를 코드로 확인해 두세요 — 합치기로 짜 뒀어도 예외 처리 한 줄이 '빈 값으로 시작'이면 걸어 둔 권한 규칙이 조용히 사라져요. 설정 파일을 버전 관리에 넣어 두면 사라진 순간을 바로 알 수 있어요.
여러 관점으로 보기
- 신고 확장을 지운 뒤 설정 파일 내용이 통째로 사라지고 자기 훅만 남았다는 버그 신고예요 — 8월 4일 등록, 아직 관리자 답변이 없어요. GitHub
- 코드 확인 설정을 읽다 실패하면 오류만 찍고 빈 값을 돌려준 다음 그 값을 그대로 파일에 다시 써요 — 백업은 안 만들어요. GitHub
- 훅 14개의 정체 훅이 14벌 쌓인 게 아니라 걸어 두는 이벤트가 SessionStart부터 TaskCompleted까지 14가지예요 — 다시 설치해도 자기 항목은 먼저 지우고 넣어요. GitHub
- 시험이 안 보는 곳 '잘못된 설정 파일 처리' 시험은 예외가 안 나는지만 보고, 사용자의 다른 설정 항목이 살아남는지는 안 봐요. GitHub