콘텐츠로 이동

플러그인 기여하기

이 가이드는 새로운 플러그인을 생성하고 f5-sales-demo 마켓플레이스에 추가하는 방법을 설명합니다.

모든 플러그인은 plugins/ 하위에 각자의 디렉터리에 위치하며 다음 구조를 따릅니다:

  • 디렉터리plugins/
    • 디렉터리example-plugin/
      • 디렉터리.claude-plugin/
        • plugin.json
      • 디렉터리skills/
        • 디렉터리example-skill/
          • SKILL.md
          • 디렉터리references/
            • reference-data.md
      • 디렉터리commands/
        • example-command.md
      • 디렉터리agents/
        • example-agent.md
      • README.md
  1. 플러그인 디렉터리 생성

    Terminal window
    mkdir -p plugins/example-plugin/.claude-plugin
    mkdir -p plugins/example-plugin/skills
    mkdir -p plugins/example-plugin/commands
  2. plugin.json 작성

    plugins/example-plugin/.claude-plugin/plugin.json 생성:

    {
    "name": "example-plugin",
    "description": "What this plugin does",
    "version": "1.0.0",
    "author": {
    "name": "f5-sales-demo"
    },
    "homepage": "https://github.com/f5-sales-demo/marketplace/tree/main/plugins/example-plugin",
    "keywords": ["relevant", "keywords"],
    "license": "Apache-2.0",
    "repository": "https://github.com/f5-sales-demo/marketplace"
    }
  3. 스킬 추가

    프론트매터와 함께 plugins/example-plugin/skills/example-skill/SKILL.md 생성:

    ---
    name: example-skill
    description: One-line description of what this skill does
    ---
    Detailed instructions for Claude when this skill activates.

    참조 데이터는 SKILL.md와 함께 references/ 하위 디렉터리에 배치합니다.

  4. 명령어 추가

    plugins/example-plugin/commands/example-command.md 생성:

    ---
    description: What this command does
    argument_hint: "[optional-args]"
    allowed_tools:
    - Read
    - Glob
    - Grep
    ---
    Instructions for Claude when the user invokes this command.
  5. marketplace.json에 플러그인 추가

    .claude-plugin/marketplace.jsonplugins 배열에 항목을 추가합니다:

    {
    "name": "example-plugin",
    "description": "What this plugin does",
    "version": "1.0.0",
    "author": { "name": "f5-sales-demo" },
    "source": "./plugins/example-plugin",
    "category": "productivity",
    "homepage": "https://github.com/f5-sales-demo/marketplace/tree/main/plugins/example-plugin",
    "license": "Apache-2.0",
    "keywords": ["relevant", "keywords"],
    "tags": ["searchable", "tags"],
    "repository": "https://github.com/f5-sales-demo/marketplace"
    }
  6. 로컬에서 테스트

    Claude Code가 로컬 디렉터리를 참조하도록 설정하여 게시 없이 플러그인을 테스트합니다:

    Terminal window
    claude --plugin-dir ./plugins/example-plugin

    스킬이 올바른 컨텍스트에서 활성화되고 명령어가 예상된 출력을 생성하는지 확인합니다.

  1. 새 플러그인을 설명하는 GitHub 이슈 생성
  2. main에서 기능 브랜치 생성
  3. 플러그인 디렉터리 추가 및 marketplace.json 업데이트
  4. docs/plugins/example-plugin.mdx에 문서 페이지 추가
  5. Closes #N으로 이슈에 연결된 PR 생성
  6. CI 실패 수정 후 검사 통과 시 병합
  • 스킬을 집중적으로 유지 — 하나의 스킬은 하나의 일을 잘 수행해야 합니다
  • 참조 파일 활용 — 대용량 데이터셋, 스키마, 조회 테이블은 SKILL.md에 인라인으로 작성하지 말고 references/에 배치합니다
  • 지능적으로 범위 설정 — 가능한 경우 작업 집합을 좁히기 위해 커밋되지 않은 변경 사항을 확인합니다
  • 출력을 심각도별로 그룹화 — 사용자가 수정 사항의 우선순위를 정할 수 있도록 ERROR, WARNING, INFO 수준을 사용합니다
  • README 작성 — 사용 예시와 각 스킬 및 명령어에 대한 설명을 포함합니다