From plugin-forge
멀티호스트(Claude Code·Codex·agy·hermes) 플러그인 매니저. 사용자가 "플러그인 만들어", "create plugin", "플러그인 점검", "doctor", "플러그인 설치 검증", "publish plugin", "마켓 등록" 같은 표현을 쓸 때 사용한다. toefl-prep/byoh에서 확립한 매니페스트 패턴(루트 plugin.json=agy, plugin.yaml=hermes, .claude-plugin=claude, .codex-plugin=codex, 발견용 복사본)으로 생성·점검· 로컬 설치 검증·리모트 배포를 통합 관리한다.
How this skill is triggered — by the user, by Claude, or both
Slash command
/plugin-forge:plugin-forgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
새 플러그인을 4호스트(claude/codex/agy/hermes) 구조로 스캐폴드하고, 매니페스트를
새 플러그인을 4호스트(claude/codex/agy/hermes) 구조로 스캐폴드하고, 매니페스트를 점검하고, 로컬 설치를 검증하고, GitHub + 마켓플레이스에 배포한다.
엔진 위치:
${CLAUDE_PLUGIN_ROOT}/scripts/forge.py가 단일 진실 원천. Claude Code는commands/슬래시 명령, Codex/agy/hermes는 아래 매핑대로forge.py직접 호출.
| 파일 | 호스트 |
|---|---|
plugin.json (루트) | agy |
plugin.yaml (루트) | hermes (YAML 매니페스트 + __init__.py의 register(ctx)) |
.claude-plugin/plugin.json | Claude Code (skills/commands/agents/mcpServers) |
.claude-plugin/marketplace.json | Claude 마켓 (source "./") |
.codex-plugin/plugin.json | Codex (interface 블록) |
.claude/skills/<n>/, .codex/skills/<n>/, .hermes/skills/<n>/ | 로컬 발견용 SKILL 복사본 (symlink) — 마켓플레이스 설치는 루트 skills/를 로드 |
플러그인 루트:
.claude-plugin/plugin.json을 포함하는 디렉터리가 플러그인 루트입니다 (.claude-plugin/자체가 아님). 매니페스트의skills/commands/agents/mcpServers경로는 이 루트 기준으로 해석됩니다. 따라서"skills": "./skills/"는 루트의skills/디렉터리를 가리키며 올바른 구조이고,.claude-plugin/안에 skills가 없어도 정상입니다.
| 사용자 의도 | 명령/스크립트 |
|---|---|
| "플러그인 만들어", "새 플러그인 생성" | forge.py create <name> --hosts ... --desc ... / /plugin-forge-create |
| "플러그인 점검", "doctor", "매니페스트 검증" | forge.py doctor [PATH] [--fix] / /plugin-forge-doctor |
| "설치 검증", "로컬에서 로드되나" | forge.py install <PATH> --host ... / /plugin-forge-install |
| "배포", "깃헙에 올려", "마켓 등록" | forge.py publish [PATH] [--marketplace] / /plugin-forge-publish |
forge.py create <name> [--hosts claude,codex,agy,hermes] [--desc "..."] [--dir PATH]
--hosts로 부분 선택 (기본 4개 전부). 미선택 호스트는 매니페스트 생략.plugin.yaml(YAML) + __init__.py(register(ctx) 스텁) 생성. hermes는
JSON이 아닌 YAML 매니페스트를 쓰며, 플러그인 디렉터리에 __init__.py가 필수다
(Hermes plugin spec).skills/<name>/SKILL.md 가 진실 원천; 선택한 호스트의 발견용 복사본 자동 생성.0.1.0 고정, doctor가 임의 부여하지 않음.$schema + 필수 필드(name/version/description) + name 일관성 (marketplace.json 최상위 name=마켓 이름은 제외). hermes는 YAML plugin.yaml을 stdlib 키 추출로 검증(PyYAML 의존 없음).skills/*/SKILL.md vs .claude/·.codex/·.hermes/ (SHA 비교, --fix로 재동기화).skills(디렉터리)/commands(디렉터리)/agents(파일 배열)/mcpServers(파일) 경로가 플러그인 루트 기준으로 실제 존재하는지 확인. 선언됐지만 없는 경로는 FAIL.gh api로 repo 존재 + epicsagas/plugins 마켓 등록 여부.plugin-forge 자신도 4호스트 구조로 만들어졌다. forge.py doctor를 자기 자신과
toefl-prep에 돌려 검증 기준이 맞는지 확인한다 (둘 다 0 FAIL 통과).
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.
npx claudepluginhub epicsagas/plugin-forge --plugin plugin-forge