packaging

scaffold-repo

산출물 — <domain>-skills 형태의 마켓플레이스 repo 한 벌. 루트 매니페스트(7개 harness) + 평면 skills/<name>/ 분리형 구조, README, LICENSE, .gitignore, 그리고 초기 커밋이 올라간 GitHub 원격 저장소까지.

01

언제 쓰고, 언제 안 쓰는가

상황에 따라 다섯 개의 스킬 중 하나를 고른다.

상황쓸 스킬
repo 가 아직 없다. 흩어진 스킬을 묶어 새로 만든다 scaffold-repo
외부 repo 가 github.com 에는 있는데 GHES 에는 없다 mirror-repo
repo 는 있는데 이름이 컨벤션에 안 맞는다 rename-repo
repo 는 있는데 구조가 표준에서 벗어났는지 알고 싶다 structure-check
그 구조를 실제로 고친다 structure-refactor
scaffold-repo 는 신규 repo 전용이다. 대상 디렉터리가 이미 존재하면 덮어쓰지 않고 중단한다 — 멱등하지 않다.
02

호출 형식

<repo-name> 와 --src 가 필수이고, 나머지는 모두 기본값이 있다.

/packaging:scaffold-repo <repo-name> [skill ...] --src <path> [--dest <path>]
                  [--host <host>] [--owner <owner>] [--plugin <name>] [--dry-run]
/packaging:scaffold-repo help
인자 / 플래그의미기본값
<repo-name> <domain>-skills 형식 repo 이름 (필수). -skills 접미어가 없으면 자동으로 붙이고 알려 준다. claude-plugin- prefix 는 pre-#1410 옛 규칙이라 거부한다 —
[skill ...] 복사할 스킬 디렉터리 이름들 대화에서 추론, 안 되면 질문
--src <path> 스킬 원본 디렉터리 (필수 — 기본값 없음) —
--dest <path> repo 를 만들 위치 ~/para/project/skills/
--host <host> GitHub 호스트 (GHES 지원) github.com
--owner <owner> GitHub owner dEitY719
--plugin <name> 내부 plugin key <repo-name> 에서 -skills 를 뗀 부분
--dry-run 계획만 출력, 아무것도 쓰지 않음 off
03

동작 단계

단계를 눌러 펼치면 상세가 보인다. 하드 중단 지점은 3곳뿐이다 — 1단계 검증 실패, 7단계 gh auth status 실패, push 거부.

한 번에 한 단계만 열립니다.
1 인자 검증 중단 지점

-skills 접미어 보정, claude-plugin- prefix 거부, 소문자-하이픈 강제. --src 누락 / dest 중복 시 중단.

2 [PLAN] 블록 출력 항상

[PLAN] 블록은 항상 출력된다. --dry-run 이면 여기서 정지.

3 분리형 골든 구조 생성

루트 매니페스트 + 평면 skills/ 구조를 만든다. plugins/ 디렉터리는 만들지 않는다.

4 스킬 복사 읽기 전용 원본

cp -r, 원본은 읽기 전용.

5 매니페스트 / README / LICENSE / .gitignore 작성

매니페스트, README, LICENSE, .gitignore 를 작성한다.

6 git 초기화

git init + git checkout -B main

7 원격 repo 생성 사용자 확인중단 지점

gh auth status 후 사용자 확인을 받고 gh repo create.

gh auth status 실패는 하드 중단 지점이다.

8 초기 커밋 + push 사용자 확인중단 지점

초기 커밋 후 사용자 확인을 받고 git push -u origin main.

push 거부는 하드 중단 지점이다.

9 구조 검증 후 [OK] 리포트

packaging:structure-check 로 M1-M11 PASS 확인 후 [OK] 리포트.

04

주의사항 / 제약

다섯 가지 제약을 그대로 지킨다.

원본은 복사 전용

--src 를 수정 / 이동 / 삭제 / 심볼릭 링크 하지 않는다.

멱등하지 않다

<dest>/<repo-name> 이 이미 있으면 무조건 중단한다.

복사 대상은 부모 디렉터리

스킬 복사는 부모 skills/ 디렉터리를 대상으로 한다. skills/<skill> 을 대상으로 잡으면 skills/<skill>/<skill>/ 로 중첩된다.

외부 영향 단계는 각각 확인

7단계(repo 생성)와 8단계(push)는 외부에 영향을 주므로 각각 확인을 받는다. git push --force 는 절대 쓰지 않는다.

하드 중단 지점은 3곳

1단계 검증 실패, 7단계 gh auth status 실패, push 거부. 나머지는 부분 정리 없이 크게 실패한다.