마켓플레이스
LEVEL11 플러그인(스킬·에이전트·MCP 번들)을 찾고 설치하고 직접 게시하는 방법, 패키지 형식, 심사 정책, 버전 규칙.
무엇을 설치할 수 있나
마켓플레이스는 LEVEL11 플러그인을 나누는 곳입니다. 플러그인 하나는 스킬(SKILL.md 폴더), 에이전트 프리셋, MCP 서버 설정, 규칙 파일을 묶은 zip이며, 설치하면 규칙과 MCP에서 보던 그 자리에 그대로 들어갑니다. 종류(kind)는 skills, agents, mcp, 그리고 여럿을 합친 bundle 네 가지입니다.
VS Code 확장은 마켓플레이스의 대상이 아닙니다. 확장은 Open VSX에서 가져오며, LEVEL11은 그중 테마와 스니펫만 적용합니다. 언어 서버나 UI를 가진 확장은 동작하지 않습니다.
skills.sh 방식의 GitHub 저장소(예: emilkowalski/skills, pbakaus/impeccable)는 게시 없이도 owner/repo만 입력하면 바로 설치됩니다. 마켓플레이스에 올리는 것은 심사를 거친 묶음을 이름과 버전으로 찾게 하고 싶을 때입니다.
패키지 형식
zip의 루트에 level11-plugin.json이 있어야 합니다.
{
"id": "publisher.name", // ^[a-z0-9-]{2,32}\.[a-z0-9-]{2,48}$ ; the publisher part must stay the same across versions and is bound to the uploading account on first publish
"name": "Skills for Designers", // ≤ 60 chars
"version": "1.2.0", // semver; must be greater than the current published version
"description": "…", // ≤ 300 chars
"author": "Emil Kowalski", // ≤ 80
"homepage": "https://…", // optional https URL
"license": "MIT", // ≤ 40
"kind": "skills" | "agents" | "mcp" | "bundle",
"keywords": ["design", "animation"],// ≤ 10, each ≤ 30 chars
"contents": {
"skills": ["skills/animate"], // directories inside the zip that contain SKILL.md (skills.sh-compatible)
"agents": ["agents/reviewer.json"],// LEVEL11 agent preset JSON files
"mcp": { "figma": { "command": "npx", "args": ["-y", "mcp-remote", "https://…"] } },
"rules": ["rules/global.md"]
}
}
규칙은 이렇습니다.
id의 점 앞부분이 게시자 이름입니다. 처음 게시한 계정에 묶이며, 다른 계정은 같은 게시자 이름으로 올릴 수 없습니다.contents의 경로는 zip 루트 기준 상대 경로여야 하고..를 쓸 수 없습니다.skills의 각 폴더에는SKILL.md가,agents·rules의 각 파일은 zip 안에 실제로 있어야 합니다.contents.mcp의 각 항목은 문자열command와 문자열 배열args(선택: 문자열 값의env)를 가집니다.contents에는 스킬·에이전트·MCP·규칙 중 하나 이상이 있어야 하고, zip은 20 MB 이하입니다.- 매니페스트에 없는 키는 무시됩니다.
게시하기
앱에서: 마켓플레이스 → 내 플러그인 게시 → 폴더 선택. 폴더에 level11-plugin.json이 있으면 앱이 zip으로 묶어 올립니다.
터미널에서: 계정 토큰으로 직접 올릴 수도 있습니다.
curl -F manifest=@level11-plugin.json -F package=@plugin.zip \
-H "authorization: Bearer <token>" https://api.level11.co.kr/market/publish
응답은 {"ok":true,"id":"…","version":"…","status":"pending"}입니다. 게시는 계정당 시간에 10회까지이며, 내 플러그인과 각 버전의 심사 상태는 앱의 마켓플레이스 탭이나 GET /market/mine에서 봅니다.
심사와 공개
- 올린 플러그인은 심사 후 공개됩니다. 보통 영업일 2일 안에 결과가 가입 메일로 갑니다.
- 거절되면 사유를 메일로 받습니다. 고친 뒤 같은 버전 번호로 다시 올릴 수 있습니다.
- 심사 기준: 설명과 실제 내용이 맞을 것, 스킬·규칙이 사용자의 데이터를 밖으로 보내거나 파괴적인 명령을 숨기지 않을 것, MCP 서버가 공개된 패키지나 URL을 가리킬 것, 타인의 저작물을 라이선스 없이 담지 않을 것.
- 공개된 플러그인도 신고나 정책 위반이 확인되면 내려갈 수 있습니다(비공개 처리). 이미 설치한 사용자의 로컬 복사본은 그대로 남습니다.
버전
- 새 버전은 지금 공개된(또는 심사 대기 중인) 버전보다 큰 semver여야 합니다. 거절된 버전 번호는 다시 쓸 수 있습니다.
- 공개된 플러그인의 새 버전은 심사가 끝날 때까지 기존 버전이 그대로 공개됩니다. 승인되면 그 버전이 목록과 다운로드를 대체합니다.
- 앱은 설치된 플러그인의
id와version을 기억하고, 카탈로그의 버전이 더 높으면 업데이트를 제안합니다.
카탈로그 API
누구나 읽을 수 있습니다.
| 경로 | 설명 |
|---|---|
GET /market/plugins?q=&kind=&sort=downloads|recent |
공개된 플러그인 목록. q는 이름·설명·키워드·id를 대소문자 구분 없이 찾습니다 |
GET /market/plugins/:id |
매니페스트와 다운로드 수 |
GET /market/plugins/:id/download |
승인된 버전의 zip |