Claude Code 가이드: 플러그인 패키징·테스트와 배포

Answer in brief

Claude Code 플러그인은 독립된 디렉터리로 패키징하고, 구성 요소 폴더는 플러그인 루트에 두며 .claude-plugin/ 아래에는 plugin.json만 배치한다. --plugin-dir로 테스트하되 /reload-plugins는 문서에 나온 스킬 수정 사례에 한정해 설명하고, claude plugin validate는 근거가 확인된 에이전트 프런트매터 검사에 사용한다. 릴리스는 마켓플레이스 카탈로그로 배포하고, 선언한 매니페스트 버전은 필요한 시점에 올리며, 제공된 발췌문에 없는 캐시 동작은 단정하지 않는다.

Key facts at a glance

Product / model Current ID or version Use case Evidence
claude-code Official source does not specify a selectable model ID Confirm the current product surface Official source Official source Official source

Failure modes and verification

Failure mode Verification action
Stale model or version reference Compare the model name and ID with the official source before release.
Unstructured or incomplete output Validate the response against the documented contract and a deterministic fixture.
Unverified factual claim Keep the claim qualified or remove the claim when the official source does not support it.

FAQ

Claude Code 플러그인의 최소 구조는 무엇인가요?

플러그인은 지원 구성 요소를 담은 독립된 디렉터리다. .claude-plugin/plugin.json 매니페스트는 선택 사항이며, 사용할 때는 .claude-plugin/ 아래에 둔다. skills/, agents/, commands/, hooks/ 같은 구성 요소 폴더는 플러그인 루트에 둔다. 자세한 내용은 플러그인 생성 가이드에서 확인할 수 있다.

플러그인을 로컬에서 어떻게 테스트하나요?

claude --plugin-dir ./my-plugin으로 실행하고, 각 스킬을 예상한 네임스페이스로 호출한 뒤 /help의 Custom commands 탭을 확인한다. 이 절차로 플러그인 생성 가이드에 나온 로컬 패키지 경로와 스킬 검색 결과를 확인할 수 있다.

/reload-plugins가 모든 플러그인 구성 요소를 다시 불러오나요?

제공된 근거는 예제 스킬을 수정한 뒤 /reload-plugins를 사용하는 사례만 보여 준다. 에이전트, 훅, MCP 서버, LSP 서버, 모니터에도 같은 즉시 반영 동작이 적용된다고 입증하지는 않으므로, 이들 구성 요소는 새 테스트 세션에서도 확인해야 한다.

claude plugin validate 결과는 무엇을 입증하나요?

제공된 기술 참조는 이 명령으로 프런트매터가 파싱되지 않는 플러그인 에이전트 파일을 찾는 방법을 구체적으로 설명한다. 매니페스트가 있으면 플러그인 루트를, 문서에 나온 매니페스트 없는 사례에서는 agents/ 디렉터리를 전달한다. Claude Code v2.1.233 이상이 필요하며, 오류가 없더라도 모든 구성 요소가 포괄적으로 검증됐다는 뜻은 아니다.

매니페스트 버전은 업데이트에 어떤 영향을 주나요?

선택적인 매니페스트 version을 선언했다면 command source 예외를 제외하고 그 값을 올려야 사용자가 업데이트를 받는다. 생략하면 문서에 정의된 버전 결정 순서의 다른 소스가 값을 제공하지만, 제공된 발췌문에는 전체 우선순위가 나오지 않는다. 자세한 명세는 플러그인 기술 참조를 확인해야 한다.

마켓플레이스 배포는 어떻게 작동하나요?

사용자는 먼저 마켓플레이스 카탈로그를 추가한 다음 개별 플러그인을 설치한다. 카탈로그 추가만으로 플러그인이 설치되지는 않는다. 공식 마켓플레이스 수록 여부는 Anthropic이 결정하며, 독립 배포자는 자체 카탈로그를 공유할 수 있다. 커뮤니티 마켓플레이스는 자동 검증과 안전성 심사를 사용하고 각 항목을 commit SHA에 고정한다. 자세한 내용은 플러그인 검색 및 설치 문서에 나와 있다.

제공된 근거로 확인할 수 있는 캐시 동작은 무엇인가요?

발췌문에는 설치된 플러그인의 캐시 위치, 보존 기간, 파일 복사 방식 또는 모든 설치 방식에 공통인 무효화 규칙이 명시되어 있지 않다. 따라서 마켓플레이스로 설치한 플러그인의 임의 변경 사항이 언제 보이는지는 단정할 수 없으며, 버전을 명시적으로 관리하고 게시된 설치 경로를 직접 시험해야 한다.

Sources and freshness

Extended guide

Claude Code 플러그인은 하나의 독립된 디렉터리로 패키징한다. 구성 요소 폴더는 플러그인 루트에 두고, .claude-plugin/plugin.json 전용 위치로 사용한다.

패키지 구조

매니페스트는 선택 사항이다. 사용할 경우 .claude-plugin/plugin.jsonname, description, version, author 같은 식별 정보와 표시용 메타데이터를 선언한다. 여기서 name은 스킬 네임스페이스로도 사용된다. 예를 들어 my-first-plugin에 포함된 hello 스킬은 /my-first-plugin:hello로 호출한다. 플러그인 루트는 --plugin-dir에 전달하는 개별 디렉터리 또는 .claude-plugin/plugin.json을 포함하는 개별 디렉터리다. ~/.claude/ 자체를 플러그인 루트로 간주해서는 안 된다. 자세한 구조는 공식 플러그인 생성 가이드기술 참조에서 확인할 수 있다.

요소 문서에 나온 위치 패키징 규칙
매니페스트 .claude-plugin/plugin.json 구성 요소 폴더를 .claude-plugin/ 아래에 넣지 않는다.
스킬 skills/<name>/SKILL.md, commands/ 또는 루트의 단일 SKILL.md 여러 스킬을 제공할 때는 skills/ 구조를 사용한다.
에이전트 agents/*.md Markdown 본문과 프런트매터로 동작을 정의한다.
hooks/hooks.json 또는 plugin.json 내부 지원되는 수명 주기 이벤트에 작업을 연결한다.
추가 구성 요소 각 문서에 정의된 플러그인 루트 경로 MCP 서버, LSP 서버, 모니터도 플러그인에 포함할 수 있다.

빌드와 릴리스 절차

  1. 패키지를 만든다. 전용 플러그인 디렉터리를 먼저 만든다. 안정적인 식별자, 플러그인 관리자에 표시할 설명 또는 명시적인 버전이 필요하면 .claude-plugin/plugin.json을 추가한다. skills/, commands/, agents/, hooks/.claude-plugin/ 안이 아니라 그 폴더와 같은 플러그인 루트에 배치한다. 이 경계를 지키면 Claude Code가 구성 요소를 찾는 위치와 사람이 패키지를 검토하는 기준이 일치한다.

  2. 스킬을 의도적으로 구성한다. 여러 스킬을 제공한다면 스킬마다 SKILL.md를 포함하는 별도 디렉터리를 만든다. skills/ 디렉터리와 매니페스트의 skills 필드가 모두 없을 때는 루트의 SKILL.md 하나를 단일 스킬로 불러올 수 있다. 이 파일에는 프런트매터 name을 지정하는 편이 안전하다. name이 없으면 설치 디렉터리 이름이 호출 이름으로 사용될 수 있으며, 마켓플레이스 설치에서는 그 디렉터리 이름이 업데이트마다 달라지는 버전 문자열일 수 있다. 호출 이름이 릴리스 사이에서 바뀌면 사용자 문서와 자동화도 함께 깨질 수 있으므로 실제 네임스페이스를 반드시 확인한다.

  3. 로컬에서 실행해 본다. claude --plugin-dir ./my-plugin으로 Claude Code를 시작하고, 각 스킬을 예상한 네임스페이스로 직접 호출한다. /help의 Custom commands 탭에서도 올바른 플러그인 이름 아래에 표시되는지 확인한다. 생성 가이드는 예제 스킬을 수정한 다음 /reload-plugins를 실행하는 절차를 보여 준다. 이 근거는 수정한 스킬을 다시 읽는 사례까지는 뒷받침하지만, 훅, 에이전트, MCP 서버, LSP 서버, 모니터의 모든 변경 사항이 같은 방식으로 즉시 반영된다는 뜻은 아니다. 다른 구성 요소나 완성된 릴리스를 확인할 때는 새 테스트 세션에서도 다시 실행해 보는 것이 보수적인 검증 방법이다.

  4. 문서에 명시된 범위만 검증한다. 매니페스트가 있는 플러그인은 claude plugin validate ./my-plugin을 사용한다. 문서에 나온 매니페스트 없는 에이전트 사례에서는 claude plugin validate ./my-plugin/agents를 사용한다. 제공된 기술 참조는 이 명령이 플러그인의 기본 agents/ 디렉터리에서 파싱되지 않는 에이전트 프런트매터를 찾는 용도라고 구체적으로 설명한다. 이 기능에는 Claude Code v2.1.233 이상이 필요하다. 검사 결과가 깨끗하더라도 모든 매니페스트 필드, 훅, MCP 서버 또는 다른 구성 요소의 의미까지 포괄적으로 검증됐다고 해석해서는 안 된다. 관련 스키마를 별도로 대조하고 실제 호출과 이벤트 동작도 함께 시험한다.

  5. 릴리스 버전을 관리한다. 매니페스트의 version은 선택 사항이다. 값을 선언했다면 command source 예외를 제외하고 그 값을 올려야 사용자가 업데이트를 받는다. 값을 생략하면 문서에 정의된 버전 결정 순서의 다른 소스가 버전을 제공한다. 다만 제공된 발췌문은 나머지 소스의 전체 우선순위를 보여 주지 않으므로, 여기서는 구체적인 순서를 추정하지 않는다. 배포 전에 매니페스트 버전과 실제로 배포하려는 소스 리비전이 같은 릴리스를 가리키는지 확인한다.

  6. 마켓플레이스로 배포한다. 마켓플레이스는 플러그인 묶음이 아니라 플러그인을 찾고 설치하기 위한 카탈로그다. 사용자는 먼저 카탈로그를 추가하고, 그다음 필요한 플러그인을 개별적으로 설치한다. 카탈로그만 추가해서는 플러그인이 설치되지 않는다. claude-plugins-official 수록 여부는 Anthropic이 결정하며, 앱 내부 제출 양식은 공식 마켓플레이스가 아니라 커뮤니티 마켓플레이스로 제출된다. 독립 배포자는 자체 마켓플레이스를 만들어 사용자에게 공유할 수 있다. 커뮤니티 마켓플레이스의 타사 플러그인은 자동 검증과 안전성 심사를 거쳤으며, 각 카탈로그 항목은 특정 commit SHA에 고정된다. 설치 흐름은 플러그인 검색 및 설치 문서에 설명되어 있다.

릴리스 점검과 근거의 한계

게시 전에는 루트 디렉터리 구조, 매니페스트 식별 정보, 스킬 네임스페이스, 로컬 호출, 근거가 확인된 에이전트 프런트매터 검사, 버전 변경, 마켓플레이스 설치 경로를 차례로 확인한다. 가능하면 기존 로컬 상태에 의존하지 않는 깨끗한 환경에서 게시된 항목을 다시 설치해 실제 사용자 경로도 시험한다.

제공된 발췌문은 수정한 예제 스킬을 다시 불러오는 방법은 보여 주지만, 설치된 플러그인의 캐시 디렉터리, 보존 기간, 파일 복사 방식 또는 모든 설치 방식에 적용되는 무효화 규칙은 설명하지 않는다. 따라서 마켓플레이스로 설치한 플러그인이 임의의 파일 변경을 언제 감지하는지는 여기서 단정하지 않는다. 이 글에서 근거가 확인된 릴리스 통제 수단은 선언한 버전의 변경과 실제 설치 경로를 통한 종단 간 테스트다.

모델 제공 범위 안내: 공식 출처는 선택 가능한 모델 ID를 지정하지 않습니다.

근거와 최신성

근거 수준: 공식 문서 검증

AI-assisted editorial content; verify current product details against the linked official sources.

마지막 검증:

주요 출처

다른 도구 둘러보기

Mistral API 가이드: Agents·Conversations와 상태 기반 handoff가이드Claude API 가이드: 멀티도구 워크플로우의 프로그래밍 방식 도구 호출가이드Groq Batch API 가이드: 비동기 JSONL 작업과 결과 회수가이드GitHub Copilot 가이드: 커스텀 에이전트와 서브에이전트 오케스트레이션가이드Gemini API 가이드: URL 컨텍스트와 검색 그라운딩가이드OpenAI Responses API 가이드: 백그라운드 실행과 컨텍스트 관리가이드GitHub Copilot 가이드: 권한·감사·복구를 위한 Hooks가이드Claude Agent SDK 가이드: 동적 멀티에이전트 워크플로우가이드Microsoft Agent Framework 가이드: HITL 요청과 checkpoint 재개가이드Claude Code 가이드: 훅 수명주기 자동화와 실행 경계가이드Cloudflare Agents 가이드: 내구성 워크플로우와 사람 승인가이드Timeline Studio 가이드: 브라우저에서 실행하는 로컬 우선 AI 영상 편집가이드NVIDIA NeMo Agent Toolkit 가이드: 평가·profiling과 tracing가이드Amazon Bedrock AgentCore Memory 가이드: 전략·namespace와 검색가이드Gemini API 가이드: File Search 저장소와 RAG 경계가이드Copilot Studio 가이드: 가드레일 기반 자율 에이전트 운영가이드LangGraph 가이드: persistence·checkpoint와 내구성 있는 에이전트 복구가이드Vercel AI SDK 가이드: ToolLoopAgent·루프 제어와 승인가이드OpenAI Agents SDK 가이드: tracing·span과 민감 데이터 제어가이드Amazon Bedrock AgentCore 가이드: 런타임·세션과 에이전트 엔드포인트가이드