안녕하세요? 정리하는 개발자 워니즈입니다.
Claude Code 플러그인을 설치하면 그 코드가 내 컴퓨터에서 언제 어떤 권한으로 도는지 확인해보신 적이 있으신가요?
이 글은 필자가 개인 블로그의 SEO 점검에 쓰려고 설치한 claude-seo 플러그인을 예로 들어서 서드파티 Claude Code 플러그인을 설치하기 전에 확인해야 할 3가지를 실제 파일을 열어가며 짚어보는 글입니다. 특정 플러그인 후기가 아니라 아무 플러그인에나 그대로 적용할 수 있는 절차로 적었는데요, 여기 나오는 명령은 전부 파일을 읽기만 하는 것이라 그대로 따라 하셔도 설정이 바뀌거나 지워지는 일은 없습니다.
【한 줄 요약】 설치 전에 확인할 것은 훅과 네트워크 호출과 텔레메트리 이렇게 3가지이고, 셋 다 파일을 읽는 명령 한두 줄이면 판정이 끝납니다. claude-seo 2.2.5 를 실제로 검사해보니 훅은 PostToolUse 하나뿐이었고 그 훅이 실행하는 스크립트는 네트워크 라이브러리를 아예 불러오지 않았으며 텔레메트리 SDK 는 0건이었습니다. 다만 이 검토 방식은 플러그인이 AI 에게 건네는 마크다운 지시문까지는 잡아내지 못한다는 한계가 있습니다.
- 훅:
hooks/hooks.json을 열어 언제 무엇이 자동 실행되는지 본다 - 네트워크: 훅 스크립트의 import 줄만 보면 통신 가능 여부가 판정된다
- 텔레메트리: 상용 SDK 이름을 검색하되 결과는 개수가 아니라 줄 내용으로 읽는다
목차
- Claude Code 플러그인은 설치할 때 무엇을 받아오나요?
- 확인 1. 훅이 언제 무엇을 실행하는지 본다
- 직접 확인 1: 훅을 손으로 돌려서 편집 차단을 재현했습니다
- 확인 2. 스크립트가 외부로 무엇을 보내는지 본다
- 직접 확인 2: 네트워크를 쓰는 파일 30개와 접속처를 뽑았습니다
- 확인 3. 텔레메트리가 있는지 본다
- 직접 확인 3: 텔레메트리 검색 49건이 전부 오탐이었습니다
- 설치 스크립트와 공개 문서를 대조합니다
- 이 검토가 못 잡는 것은 무엇인가요?
- 누구에게 필요하고 누구에게는 굳이인가

—
1. Claude Code 플러그인은 설치할 때 무엇을 받아오나요?
Claude Code 플러그인은 마켓플레이스 주소를 등록하고 설치 명령을 한 번 치면 끝나는 구조인데요 그 한 번으로 남의 저장소에 있던 파일 뭉치가 통째로 내 홈 디렉터리 아래에 복사됩니다. 필자가 설치한 claude-seo 2.2.5 의 경우 용량이 4.9MB 였고 파일 구성은 마크다운 199개, 파이썬 98개, 셸 스크립트 18개, 파워셸 11개였습니다.
여기서 짚어둘 것은 이 파일이 저마다 성격이 전부 다르다는 점입니다. 마크다운은 AI 에게 읽히는 지시문이고, 파이썬과 셸은 실제로 내 컴퓨터에서 실행될 수 있는 코드인데요 이 둘을 뭉뚱그려서 “코드를 봤다”고 말하면 검토가 헐거워집니다.
설치된 실물은 아래 경로에 버전별 디렉터리로 들어갑니다. 마켓플레이스 이름과 플러그인 이름이 조합된 폴더 아래에 버전 번호 디렉터리가 생기는 구조라, 어떤 플러그인이든 같은 자리에서 찾으실 수 있습니다.
ls ~/.claude/plugins/cache/
find ~/.claude/plugins/cache -maxdepth 3 -name "hooks.json"
두 번째 줄이 이 글 전체에서 가장 값이 큰 명령이라고 생각합니다. 설치된 모든 플러그인 중에서 훅을 등록한 것만 골라내기 때문인데요 결과가 비어 있으면 적어도 “내가 파일을 저장할 때마다 자동으로 도는 남의 코드”는 없다는 뜻이 됩니다.
### 왜 하필 이 3가지를 보나요?
Claude Code 플러그인이 사용자에게 손해를 끼칠 수 있는 경로가 크게 셋이기 때문입니다. 내 명령 없이 스스로 실행되는 경로가 훅이고, 내 파일 내용이 밖으로 나가는 경로가 네트워크 호출이며, 내가 무엇을 하는지가 제작자에게 쌓이는 경로가 텔레메트리인데요 이 셋을 확인하고 나면 나머지는 대체로 사용자가 명시적으로 명령을 쳤을 때만 도는 코드입니다.
반대로 말하면 별점이 몇 개인지, 포크가 몇 개인지, 라이선스가 MIT 인지는 이 셋 중 어느 것도 답해주지 않습니다. 필자도 처음에는 별 개수를 신뢰의 근거로 삼고 싶었는데요, 별을 누른 사람들이 훅 파일을 열어봤을 것 같지는 않다는 생각이 들어서 결국 직접 읽는 쪽을 택했습니다.
—
2. 확인 1. 훅이 언제 무엇을 실행하는지 본다
훅은 Claude Code 플러그인 검토에서 우선순위가 가장 높습니다. 다른 코드는 내가 그 기능을 부를 때만 돌지만, 훅은 내가 그 플러그인을 쓸 생각이 전혀 없는 순간에도 조건만 맞으면 실행되기 때문입니다.
확인 대상은 Claude Code 플러그인 폴더 안의 hooks/hooks.json 파일 하나입니다. claude-seo 의 경우 이 파일에 등록된 훅이 하나뿐이었고, 내용을 필드별로 옮기면 아래 표와 같았습니다.
| 필드 | 값 | 읽는 법 | |
|---|---|---|---|
| 이벤트 | PostToolUse | 도구 사용이 끝난 다음에 실행된다 | |
| matcher | `Edit\ | Write` | 파일을 고치거나 새로 쓸 때마다 걸린다 |
| command | node | 노드로 실행한다 | |
| args 1 | run-python-hook.js | 파이썬 실행기를 찾아주는 중계 스크립트 | |
| args 2 | validate-schema.py | 실제 일을 하는 본체 | |
| args 3 | ${tool_input.file_path} | 방금 편집한 파일 경로를 넘긴다 |
여기서 필자가 눈여겨본 것은 matcher 였습니다. Edit|Write 는 SEO 작업 중에만 도는 것이 아니라 내가 이 컴퓨터에서 파일을 편집할 때마다 이 훅이 걸린다는 뜻이기 때문인데요 그래서 훅 본체가 무엇을 하는지는 반드시 확인해야 할 사항이 됩니다.
훅 본체를 볼 때는 전체를 정독할 필요가 없습니다. 파이썬이면 import 줄만, 자바스크립트면 require 줄만 뽑아보면 그 스크립트가 할 수 있는 일의 상한이 정해지는데요, 네트워크 라이브러리를 안 불러온 스크립트는 아무리 코드가 길어도 네트워크로 무언가를 보낼 수 없습니다.
grep -nE "^(import|from|const|require)" hooks/validate-schema.py hooks/run-python-hook.js
claude-seo 의 훅 본체가 불러오는 것은 json, os, re, sys 그리고 타입 힌트용 typing 이 전부였습니다. 파이썬 표준 라이브러리만 있고 requests 나 urllib 같은 것은 한 줄도 없었는데요, 242줄짜리 스크립트치고는 권한이 상당히 좁게 잡혀 있는 편이라고 봤습니다.
### grep 에 https 가 잡히면 통신하는 건가요?
아닙니다. 필자가 같은 스크립트에 주소 패턴을 걸었더니 https://schema.org 가 세 번 잡혔는데요 줄을 열어보니 전부 문자열 비교였습니다. JSON-LD 의 @context 값이 스키마 표준 주소와 같은지 대조하는 코드였고 어디로도 접속하지 않았습니다.
그래서 검색 결과는 개수가 아니라 줄 내용으로 판정해야 합니다. 주소 문자열이 잡혔다는 사실만으로 통신을 단정하면 멀쩡한 Claude Code 플러그인을 오해하게 되고, 반대로 개수가 0이라고 안심하면 변수로 조립된 주소를 놓치게 되는데요, 결국 import 줄을 보는 쪽이 훨씬 확실한 판정 기준이 됩니다.
—
3. 직접 확인 1: 훅을 손으로 돌려서 편집 차단을 재현했습니다
코드를 읽는 것만으로는 훅이 실제로 무엇을 막는지 감이 잘 오지 않아서 필자는 훅 스크립트를 직접 실행해봤습니다. 훅은 결국 파일 경로를 인자로 받는 평범한 파이썬 스크립트라서 손으로 호출해도 Claude Code 를 거쳤을 때와 같은 판정을 내립니다.
검증 환경은 macOS 에 파이썬 3 이었고, 임시 폴더에 테스트용 HTML 두 개와 마크다운 하나를 만든 뒤 훅 본체에 각각 넘겼습니다. 결과는 아래와 같았습니다.
| 입력한 파일 | 훅이 출력한 것 | 종료 코드 | 편집은 어떻게 되나 |
|---|---|---|---|
| 정상 스키마 HTML | 없음 | 0 | 그대로 통과 |
HowTo 타입에 [Business Name] 이 남은 HTML | 차단 메시지 2줄 | 2 | 편집이 차단됨 |
| 마크다운 파일 | 없음 | 0 | 검사 자체를 건너뜀 |

두 번째 줄이 이 검토에서 얻은 가장 실질적인 정보였습니다. 종료 코드 2는 Claude Code 에서 편집을 되돌리라는 신호이고, 실제로 출력된 메시지는 자리표시자 문구가 남아 있다는 것과 HowTo 타입이 2023년 9월에 폐기되었다는 두 가지였는데요, 다시 말해 이 플러그인은 설치해두면 조건이 맞을 때 내 편집을 실제로 막을 수 있는 권한을 가집니다.
세 번째 줄도 그냥 넘길 것이 아니었습니다. 훅 본체를 읽어보니 확장자가 .html, .htm, .jsx, .tsx, .vue, .svelte, .php, .ejs 가 아니면 아무 일도 하지 않고 즉시 종료하도록 되어 있었는데요, 10MB 가 넘는 파일도 건너뜁니다.
### 훅은 모든 편집에서 다 도나요?
프로세스는 매번 뜨지만 실제 검사는 거의 안 합니다. matcher 는 도구 이름만 보기 때문에 파일을 고칠 때마다 노드와 파이썬이 한 번씩 실행되는데요, 스크립트 앞부분의 확장자 필터에서 대부분 곧바로 빠져나가기 때문에 마크다운이나 파이썬 파일을 편집할 때는 사실상 아무 검사도 일어나지 않습니다.
이 구조를 알고 나면 판단이 갈립니다. HTML 을 자주 만지는 분에게는 실수를 잡아주는 안전장치가 되지만, 그렇지 않은 분에게는 편집할 때마다 프로세스가 두 개씩 뜨는 비용만 남는 셈인데요 필자는 그래서 SEO 점검이 필요한 기간에만 플러그인을 켜두는 쪽으로 정리했습니다.
—
4. 확인 2. 스크립트가 외부로 무엇을 보내는지 본다
훅을 확인했으면 다음은 Claude Code 플러그인 전체에서 네트워크를 쓰는 파일이 어디인지 보는 순서입니다. 여기서 목표는 “네트워크를 쓰는 파일이 있느냐”가 아니라 “그 파일들이 훅 경로에 들어 있느냐” 인데요 SEO 도구처럼 남의 페이지를 가져와야 하는 프로그램은 당연히 네트워크를 쓰기 때문입니다.
그래서 판정 기준을 이렇게 두었습니다. 자동으로 도는 경로에 네트워크가 있으면 문제이고, 내가 명령을 쳤을 때만 도는 경로에 네트워크가 있으면 그건 그냥 그 도구의 기능입니다.
grep -rlE "^\s*(import|from)\s+(requests|urllib|socket|httpx|aiohttp)" --include="*.py" .
이 한 줄이면 네트워크를 쓸 수 있는 파일 목록이 그대로 나옵니다. 목록이 나오면 그중에 아까 훅에서 본 파일 이름이 있는지만 대조하시면 되는데요, 없으면 자동 실행 경로는 깨끗한 것입니다.
—
5. 직접 확인 2: 네트워크를 쓰는 파일 30개와 접속처를 뽑았습니다
claude-seo 2.2.5 의 파이썬 파일 98개 중 네트워크 라이브러리를 불러오는 것은 30개였습니다. 30개는 적지 않은 숫자인데요 그런데 이 30개가 전부 scripts/, tests/, extensions/ 아래에 있었고 hooks/ 아래에는 하나도 없었습니다. 앞에서 확인한 훅 본체 두 개는 이 목록에 들어 있지 않았습니다.

접속하는 곳이 어디인지도 같이 뽑아봤습니다. 하드코딩된 주소를 호스트별로 세어보니 가장 많이 나온 것은 example.com 이 66번이었는데요, 이건 문서와 도움말에 쓰인 예시 주소라서 실제 접속처가 아닙니다. 실제로 의미가 있는 것만 추리면 아래와 같았습니다.
| 접속처 | 무엇에 쓰나 | 언제 호출되나 |
|---|---|---|
| www.googleapis.com | 서치 콘솔, GA4 조회 | 구글 연동 명령을 칠 때 |
| chromeuxreport.googleapis.com | 실사용자 속도 데이터 조회 | 속도 점검 명령을 칠 때 |
| api.dataforseo.com | 순위와 키워드 데이터 | 확장 기능을 따로 켰을 때 |
| api.moz.com | 백링크 지표 | 확장 기능을 따로 켰을 때 |
| api.indexnow.org | 색인 요청 전송 | 색인 제출 명령을 칠 때 |
| data.commoncrawl.org | 공개 크롤 데이터 조회 | 백링크 조사 명령을 칠 때 |
여기서 확인이 하나 더 필요했습니다. 제작자 본인의 도메인이 코드에 박혀 있으면 사용 기록을 본인에게 보내는 통로일 수 있어서 따로 찾아봤는데요, agricidaniel.com 은 두 곳에서만 나왔고 하나는 사용 예시를 적은 주석이었고 다른 하나는 테스트용 가짜 값이었습니다. 실제 요청을 보내는 코드는 아니었습니다.
또 하나 안심이 되는 구조가 있었습니다. 외부 서비스를 쓰는 경로는 하나같이 환경 변수에서 API 키를 읽어오도록 되어 있었는데요, GOOGLE_API_KEY, MOZ_API_KEY, DATAFORSEO_PASSWORD, BING_WEBMASTER_API_KEY 같은 이름이었습니다. 제가 키를 넣지 않으면 그 경로는 애초에 동작하지 못한다는 뜻이라, 기본 상태에서는 접속처가 자동으로 좁혀집니다.
### 네트워크를 쓰는 파일이 많으면 위험한 건가요?
개수 자체는 판단 근거가 되기 어렵습니다. SEO 도구는 남의 웹페이지와 검색 API 를 읽는 것이 본업이라 네트워크 파일이 많은 쪽이 오히려 자연스러운데요 실제로 위험한 조합은 파일 개수가 아니라 자동 실행되는 훅이 네트워크를 함께 쓰는 경우입니다.
자동 실행되는 훅에는 네트워크 라이브러리가 0개였고, 네트워크를 쓰는 30개는 전부 내가 명령을 칠 때만 도는 경로에 있었습니다. 이 교집합이 0이라는 점이 이번 검토의 핵심 판정입니다.
그래서 이 단계의 결론은 숫자가 아니라 교집합으로 내야 합니다. 훅 목록과 네트워크 파일 목록을 겹쳐서 공통 항목이 0이면, 적어도 내가 명령을 치지 않는 한 밖으로 나가는 통신은 없다고 볼 수 있습니다.
—
6. 확인 3. 텔레메트리가 있는지 본다
세 번째는 텔레메트리인데요 텔레메트리는 앞의 두 가지와 성격이 조금 다릅니다. 네트워크 호출은 내가 시킨 일을 하려고 나가는 것이지만 텔레메트리는 내가 시키지 않은 정보가 제작자 쪽으로 쌓이는 것이라, 기능상 필요가 없는데도 있다면 그 자체가 신호가 됩니다.
확인 방법은 제품 이름으로 검색하는 것입니다. 사용량 수집은 대부분 상용 SDK 를 붙여서 하기 때문에 널리 쓰이는 이름 몇 개만 걸어봐도 대부분 걸러집니다.
grep -rniE "posthog|mixpanel|amplitude|sentry|telemetry|gtag" --include="*.py" --include="*.js" .
여기에 더해서 공개 문서에 뭐라고 적혀 있는지도 같이 확인하시는 편이 좋습니다. 문서의 주장과 코드의 실제가 어긋나는 경우가 검토에서 가장 확실한 위험 신호이기 때문인데요 반대로 둘이 일치하면 그 문서의 다른 주장들도 어느 정도 믿을 근거가 생깁니다.
—
7. 직접 확인 3: 텔레메트리 검색 49건이 전부 오탐이었습니다
claude-seo 에 위 검색을 걸었을 때 처음 나온 결과는 상당히 놀라웠습니다. analytics 라는 단어가 49번 잡혔기 때문인데요 숫자만 보면 사용량 추적이 잔뜩 들어 있는 것처럼 보입니다.
그런데 줄을 하나씩 열어보니 전부 다른 것이었습니다. 오탐이 어떤 모양이었는지 정리하면 아래와 같습니다.
| 잡힌 문자열 | 실제 정체 | 텔레메트리인가 |
|---|---|---|
| analytics 49건 | 구글 애널리틱스 및 서치 콘솔 조회 API 이름 | 아니오 |
| google-analytics-data | 내 GA4 데이터를 읽어오는 공식 클라이언트 | 아니오 |
| segment 1건 | URL 경로 조각을 뜻하는 영어 단어 | 아니오 |
| posthog, mixpanel, amplitude, sentry | 0건 | 해당 없음 |
방향이 정반대였습니다. 여기 잡힌 것은 내 데이터를 밖으로 보내는 코드가 아니라 내 계정의 데이터를 가져오는 코드였는데요, 이름만 보고 판정했다면 멀쩡한 Claude Code 플러그인을 위험하다고 결론을 낼 뻔했습니다.
그래서 이 단계에서 필자가 얻은 교훈은 검색 결과를 개수로 읽지 말라는 것입니다. 상용 SDK 이름 네 개는 0건이었고 남은 것은 전부 단어가 겹쳤을 뿐인 오탐이었는데요, 판정을 뒤집은 것은 결국 줄을 직접 열어본 30초였습니다.
—
8. 설치 스크립트와 공개 문서를 대조합니다
훅과 네트워크와 텔레메트리를 다 봤으면 마지막으로 설치 스크립트를 확인합니다. 설치 스크립트는 사용자가 가장 안 읽으면서 권한은 가장 넓게 쓰는 파일이라, 여기에 원격에서 코드를 내려받아 바로 실행하는 구문이 있는지만 봐도 성격이 드러납니다.
claude-seo 의 install.sh 는 205줄이었고, 실행 계열 명령을 뽑아보니 mkdir, cp, chmod 가 전부였습니다. 파일을 정해진 자리로 복사하고 실행 권한을 주는 것 외에 하는 일이 없었는데요, 다운로드 후 바로 실행하는 구문은 202번째 줄 한 곳에서 잡혔지만 열어보니 화면에 안내 문구를 출력하는 echo 안의 문자열이었습니다. 삭제 방법을 알려주는 안내였고 실행되는 코드가 아니었습니다.
문서 대조도 해봤습니다. 저장소의 PRIVACY.md 에는 텔레메트리와 사용량 추적이 없다는 문장이 명시되어 있었고, 유료 확장 기능이 어떤 업체에 무엇을 보내는지를 표로 따로 정리해두고 있었는데요, 앞에서 코드로 확인한 결과와 어긋나는 부분이 없었습니다.
의존 패키지 목록도 짧게 봤습니다. requirements.txt 에는 각 패키지 옆에 어떤 취약점 때문에 최소 버전을 그렇게 잡았는지가 주석으로 적혀 있었는데요, 이런 주석이 달려 있다고 해서 안전이 보장되는 것은 아니지만 적어도 제작자가 그 항목을 신경 쓰고 있다는 정황은 됩니다.
—
9. 이 검토가 못 잡는 것은 무엇인가요?
여기까지가 필자가 실제로 수행한 검토인데요 이 방식이 못 잡는 것을 적지 않으면 이 글은 과장이 됩니다. 한계는 분명합니다.
| 못 잡는 것 | 왜 못 잡나 | 그러면 어떻게 하나 |
|---|---|---|
| 마크다운에 적힌 지시문 | AI 에게 주는 자연어라 네트워크 검색에 안 걸린다 | 스킬 문서의 파일 접근과 전송 지시를 눈으로 읽는다 |
| 설치본이 원본과 같은지 | 서명 대조를 하지 않았다 | 저장소 원본과 파일 해시를 비교한다 |
| 실행 중 실제 통신 | 정적으로 읽기만 했다 | 통신을 감시하며 명령을 한 번 돌려본다 |
| 다음 버전 | 2.2.5 기준 결과다 | 업데이트할 때 훅 파일만 다시 본다 |

첫 번째 줄을 특히 눈여겨보셨으면 합니다. claude-seo 는 마크다운이 199개였고 그 문서는 AI 에게 무엇을 하라고 지시하는 문서인데요 여기에 “이 파일을 읽어서 저기로 올려라”는 문장이 자연어로 들어 있으면 파이썬 코드를 아무리 검색해도 걸리지 않습니다. Claude Code 플러그인의 진짜 실행 주체가 코드가 아니라 AI 라는 점이 기존 소프트웨어 검토와 다른 지점인 것 같습니다. 자동화를 맡길 때 사람이 어디까지 확인해야 하는지는 AI 자동화 성공률 29% 글에서도 같은 결이었습니다.
세 번째 줄은 필자가 이번에 하지 못한 것이라 그대로 적습니다. 통신을 감시하면서 명령을 실행해보는 검증까지는 하지 않았기 때문에 이 글이 확인한 것은 정확히 말하면 “코드가 네트워크를 쓸 수 있는 상태인가”이지 “실행 중 실제로 무엇이 나갔는가”가 아닙니다. 후자는 확인 불가로 남겨두겠습니다.
### 이 검토를 매번 해야 하나요?
처음 설치할 때 한 번이면 충분하고 업데이트 때는 훅만 다시 보시면 됩니다. 앞에서 본 것처럼 위험도가 압도적으로 높은 것은 자동 실행 경로 하나뿐이라, 버전이 올라갔을 때 hooks/hooks.json 이 그대로인지만 확인해도 대부분의 변화는 감지됩니다.
시간도 그렇게 오래 걸리지 않습니다. 필자가 이번에 쓴 시간은 명령 다섯 번과 파일 세 개를 읽는 정도였는데요, 설치 명령 한 줄에 남의 코드를 상시 실행 경로에 올리는 일이라고 생각하면 그 정도는 들일 만한 것 같습니다.
—
10. 누구에게 필요하고 누구에게는 굳이인가
정리하면 이렇습니다. 별점과 포크 수는 훅이 무엇을 하는지 알려주지 않기 때문에 설치 전에 확인할 것은 자동 실행되는 훅과 밖으로 나가는 네트워크와 뒤로 쌓이는 텔레메트리 이렇게 3가지입니다. 명령으로는 훅 정의 파일 하나를 읽고 import 줄을 뽑고 제품 이름 몇 개를 검색하는 것이 전부인데요 검색 결과는 개수가 아니라 줄 내용으로 판정해야 오탐에 속지 않습니다.
이 검토가 필요한 분은 회사 코드가 들어 있는 작업 폴더에서 Claude Code 를 쓰시는 분입니다. 훅은 내가 그 플러그인을 부르지 않아도 파일 편집만으로 실행되기 때문에 어떤 파일이 언제 읽히는지는 알고 계셔야 합니다.
굳이 안 하셔도 되는 경우는 공식 마켓플레이스에서만 설치하고 개인 습작 폴더에서만 쓰시는 경우입니다. 그래도 find 로 훅 파일 유무만 확인하는 데는 몇 초면 되니, 그 한 줄만이라도 습관으로 두시는 것을 권해드리고 싶습니다.
claude-seo 를 실제로 어떻게 쓰는지, 어떤 명령으로 무엇이 나오는지가 궁금하신 분은 어제 올린 claude-seo 사용법 총정리 글을 함께 보시면 좋을 것 같습니다. 다른 도구의 설치와 사용 절차가 궁금하시면 GLM-5.3-Flash 무료 사용법 도 같은 형식으로 정리해두었습니다.
이 글에서 검토한 플러그인의 원본 코드는 AgriciDaniel/claude-seo 저장소에서 그대로 보실 수 있고, 훅이 어떤 이벤트에서 어떤 종료 코드로 동작하는지를 규정한 내용은 Claude Code 훅 공식 문서에 정리되어 있습니다.
여기까지 읽어주셔서 감사합니다. 다음에도 직접 확인한 것만 적어보겠습니다.