scaffold-repo
/packaging:scaffold-repo <repo-name> [skill ...]
빈 자리에서 마켓플레이스 repo 하나를 끝까지 조립한다 — 골든 레이아웃, 매니페스트, 스킬 복사, git init, repo 생성, push. 원본 스킬은 복사만 하고 건드리지 않으며, 대상 경로가 이미 있으면 중단한다.
스킬이 아니라 스킬을 담는 저장소를 다루는 스킬 5개 — 새 마켓플레이스 repo 를 조립하고, 외부 repo 를 GHES 로 미러하고, 규약대로 이름을 바꾸고, 디렉터리 배치를 감사하고, 그 감사 결과를 실제로 고칩니다. 스킬마다 설명서 1건과 사용 예시 1건이 있습니다.
structure-check 하나뿐입니다. 나머지 넷은 파일이나 원격 저장소에 씁니다 — 그래서 각각 앞에 게이트가 하나씩 있습니다. structure-refactor 는 --apply 가 없으면 계획만 찍고, scaffold-repo 와 mirror-repo 는 repo 생성과 push 앞에서, rename-repo 는 rename 과 push 앞에서 확인을 받습니다.
/packaging:scaffold-repo <repo-name> [skill ...]
빈 자리에서 마켓플레이스 repo 하나를 끝까지 조립한다 — 골든 레이아웃, 매니페스트, 스킬 복사, git init, repo 생성, push. 원본 스킬은 복사만 하고 건드리지 않으며, 대상 경로가 이미 있으면 중단한다.
/packaging:mirror-repo <repo-name>
github.com 에는 있지만 GHES 에는 없는 기존 *-skills repo 를 GHES 로 미러한다 — HTTPS 클론, GHES private repo 생성, origin=GHES / upstream=github.com remote, push. 신규 미러 전용이라 대상 경로나 GHES repo 가 이미 있으면 중단하고, --force push 는 하지 않는다.
/packaging:rename-repo [new-name]
이미 있는 repo 를 <domain>-skills 규약으로 개명하고, marketplace.json 의 name 부터 README 의 설치 명령까지 하드코딩된 옛 이름을 전부 고친다. 상대 경로 source 필드는 이름과 무관하므로 손대지 않는다.
/packaging:structure-check [repo-path] [--single|--mono]
필수 M1-M11 과 권장 R1-R8 로 배치를 채점해 PASS / WARN / FAIL 보고서를 낸다. 읽기 전용이라 파일을 만들지도 옮기지도 않고, SKILL.md 의 내용이나 셸 품질도 보지 않는다 — 디렉터리 구조만이다.
/packaging:structure-refactor [repo-path] [--apply] [--op]
structure-check 가 찾아낸 것을 실제로 고치는 쪽이다. --apply 가 없으면 계획만 출력하고 아무것도 쓰지 않으며, 이동은 이력이 남는 git mv 를 먼저 쓴다. 이미 맞는 항목은 줄을 만들지 않는다.
다섯 스킬은 하나의 구조 표준을 공유합니다. 그 표준을 읽기만 하는 쪽과 쓰는 쪽이 갈리고, 저장소가 이미 존재하느냐로 한 번 더 갈립니다.
항목 ID 를 붙여 점수만 매긴다. FAIL 이 하나라도 있으면 FAIL, 없고 WARN 만 있으면 WARN 이다. 대상 자체가 없는 검사는 N/A 로 빠지며 N/A 는 FAIL 이 아니다. 무엇을 고칠지는 말해도 고치지는 않는다.
같은 항목 ID 로 변경 계획을 만들고 --apply 에서만 실행한다. 기본 범위는 필수 M1-M10 이고 R1-R5 는 --op 를 붙여야 들어온다. R6-R8 은 감사 전용이라 계획 줄조차 생기지 않는다.
--single / --mono 는 "그 모드 기준으로 채점하라"는 뜻이다. 강제한 모드가 실제 배치와 다르면 refactor 는 [convert] 경고만 남기고 --apply 에서도 멈춘다 — 레이아웃 변환은 범위 밖이다.
scaffold-repo 는 신규 전용이라 대상 경로가 있으면 중단하고, mirror-repo 는 GHES 에 아직 없는 외부 repo 만 미러하며 대상 경로나 GHES repo 가 있으면 중단한다. rename-repo 는 이미 클론된 저장소에서만 동작하며 기본 브랜치 위에서는 작업을 거부한다. 셋의 적용 대상은 겹치지 않는다.