Publish
[PUBLISH 활성화]
목표
개발 완료된 DMAP 플러그인을 GitHub 원격 저장소에 배포하고, 사용자가 마켓플레이스를 통해 플러그인을 바로 설치할 수 있도록 안내함.
활성화 조건
사용자가 /dmap:publish 호출 시 또는 develop-plugin 스킬의 Phase 4 완료 후 연결 시.
"배포", "publish", "GitHub에 올려줘", "플러그인 등록" 키워드 감지 시.
참조
| 문서 | 경로 | 용도 |
|---|---|---|
| GitHub 계정 가이드 | resources/guides/github/github-account-setup.md | 계정 생성 안내 |
| GitHub 토큰 가이드 | resources/guides/github/github-token-guide.md | PAT 생성 안내 |
| GitHub Organization 가이드 | resources/guides/github/github-organization-guide.md | Organization 생성 안내 |
| create_repo 도구 | resources/tools/customs/git/create_repo.py | GitHub 저장소 생성 및 Push |
스킬 부스팅
| 단계 | 부스팅 스킬 | 용도 |
|---|---|---|
| Step 1 (인증 정보 수집) | /oh-my-claudecode:security-review | 토큰 저장 및 .gitignore 처리 보안 검증 |
| Step 2~3 (Push + 완료) | /oh-my-claudecode:ultraqa | 배포 결과 검증 (저장소 접근, README 확인) |
워크플로우
Step 1: GitHub 인증 정보 수집
사용자에게 GitHub 인증 정보를 수집함.
AskUserQuestion 도구로 다음 정보를 순차적으로 문의:
- •
GitHub 계정 보유 여부
- •보유: 다음 단계로 진행
- •미보유: 계정 생성 가이드 링크 제공 후 대기
resources/guides/github/github-account-setup.md참조 안내
- •
GitHub Username 입력 요청
- •
Personal Access Token (PAT) 입력 요청
- •미보유 시: 토큰 생성 가이드 링크 제공
resources/guides/github/github-token-guide.md참조 안내 - •PAT 필요 권한:
repo(전체)
- •미보유 시: 토큰 생성 가이드 링크 제공
- •
Organization 사용 여부
- •개인 계정 사용: username을 owner로 설정
- •Organization 사용: org 이름 입력 요청
- •Organization 미보유 시: 생성 가이드 링크 제공
resources/guides/github/github-organization-guide.md참조 안내
- •
토큰 저장
- •플러그인 디렉토리에
.dmap/secrets/디렉토리 생성 - •
.dmap/secrets/git-token-{plugin-name}.env파일에 저장:codeGITHUB_USERNAME={username} GITHUB_TOKEN={token} GITHUB_OWNER={owner} - •
.gitignore에.dmap/secrets/패턴이 포함되어 있는지 확인, 없으면 추가
- •플러그인 디렉토리에
Step 2: 원격 저장소 생성 및 Push
create_repo.py 도구를 사용하여 GitHub 저장소 생성 + 로컬 Git 초기화 + Push를 한번에 수행함.
gh CLI 설치가 불요하며, Python 표준 라이브러리만 사용.
- •저장소명 결정: 플러그인명 사용 (plugin.json의 name 필드)
- •
.gitignore존재 확인 (develop-plugin에서 이미 생성됨) - •
create_repo.py실행:codepython resources/tools/customs/git/create_repo.py \ --name {repo-name} \ --desc "{plugin description}" \ --token {PAT} \ --dir {plugin-directory}- •Organization 사용 시:
--org {org}옵션 추가
- •Organization 사용 시:
- •이미 git 저장소이고 원격이 설정된 경우 (업데이트 배포):
code
git add . git commit -m "Update: {plugin-name} DMAP plugin" git push
create_repo.py가 수행하는 작업: 저장소 존재 여부 확인 → 원격 저장소 생성 →git init→git remote add origin→ 초기 커밋 →git push -u origin main
Step 3: 완료 메시지 및 플러그인 등록 안내
Git Push 완료 후 다음 내용을 출력함.
축하 메시지 (감성적으로):
🎉 축하합니다!
당신의 플러그인 '{plugin-name}'이 세상에 첫 발을 내딛었습니다.
아이디어에서 시작해 요구사항 정의, 설계, 개발, 그리고 배포까지 —
모든 여정을 함께 해서 기뻤습니다.
이제 당신이 허락하는 누구나 이 플러그인을 설치하고 사용할 수 있습니다.
플러그인 등록 방법 안내:
📦 플러그인 설치 방법 (사용자에게 공유하세요)
# 1. GitHub 저장소를 마켓플레이스로 등록
claude plugin marketplace add {owner}/{repo-name}
# 2. 플러그인 설치
claude plugin add {plugin-name}@{repo-name}
# 3. 설치 확인
claude plugin list
README 참조 안내:
📖 자세한 설치·사용법은 README.md를 참고하세요:
https://github.com/{owner}/{repo-name}/blob/main/README.md
사용자 상호작용
모든 단계에서 AskUserQuestion 도구를 사용하여 사용자 입력을 수집함. 특히 Step 1의 인증 정보는 민감 정보이므로 안전한 저장을 보장함.
문제 해결
| 문제 | 해결 방법 |
|---|---|
| Python 미설치 | Python 3.7+ 설치 안내: https://python.org/ |
| Git 미설치 | Git 설치 안내: https://git-scm.com/ |
| 인증 실패 | 토큰 권한(repo) 확인, 토큰 재생성 안내 |
| 저장소 이미 존재 | 다른 이름 사용 또는 기존 저장소 활용 (업데이트 배포) |
| 저장소 생성 실패 | Organization 권한 확인, 이름 중복 확인 |
| Push 실패 | 원격 저장소 URL 확인, 인증 토큰 확인 |
MUST 규칙
| # | 규칙 |
|---|---|
| 1 | GitHub 인증 정보(username, PAT, owner)를 반드시 수집 후 진행 |
| 2 | 토큰을 .dmap/secrets/ 디렉토리에 저장하고 .gitignore 등록 확인 |
| 3 | 저장소 존재 여부를 먼저 확인하여 멱등성 보장 |
| 4 | 완료 메시지에 플러그인 설치 방법(마켓플레이스 등록 명령) 포함 |
MUST NOT 규칙
| # | 금지 사항 |
|---|---|
| 1 | 인증 토큰을 로그/출력에 노출 금지 |
| 2 | 사용자 확인 없이 기존 저장소를 덮어쓰지 않음 |
| 3 | .dmap/secrets/ 디렉토리를 Git에 커밋하지 않음 |
검증 체크리스트
- • GitHub 인증 정보 수집 단계가 포함되어 있는가
- •
.dmap/secrets/저장 및.gitignore확인 로직이 있는가 - •
create_repo.py도구를 사용하여 저장소 생성 및 Push를 수행하는가 - • 저장소 존재 여부 사전 확인(멱등성)이 있는가
- • 완료 메시지에 설치 명령어가 포함되어 있는가
- • 문제 해결 가이드가 포함되어 있는가
- • 토큰이 출력/로그에 노출되지 않도록 하는 규칙이 있는가