스킬 게시(Publish Skill)
skills.sh는 제출 큐가 없습니다. 대신 공개 GitHub 저장소에서 skills/<slug>/SKILL.md 파일의 형식이 올바른지 크롤링하여 스킬을 발견합니다. 따라서 "게시"의 의미는 다음과 같습니다: 저장소가 공개되어 있고, 모든 SKILL.md의 프론트매터가 유효하며, (선택적으로) 스킬이 저장소를 직접 인덱싱하는 보조 마켓플레이스/조직으로 미러링됩니다.
검증(Validate)
이 스킬 디렉토리에서 실행하세요:
python3 scripts/skill_publisher.py validate --workspace /path/to/repo --fail-on block
모든 skills/<slug>/SKILL.md를 검사합니다: 프론트매터가 ---로 시작하고 끝나는지, name이 존재하고 소문자 케밥-케이스인지, name이 해당 디렉토리명과 일치하는지, description이 존재하고 20자에서 1024자 사이인지, 프론트매터 이후의 본문에 실제 지침(단순한 스텁이 아닌)이 있는지 확인합니다.
더 엄격한 게이트를 원하면 --fail-on revise를, 기계가 처리할 출력을 원하면 --format json을 사용하세요.
설치 매니페스트 생성(Generate The Install Manifest)
python3 scripts/skill_publisher.py manifest --workspace /path/to/repo
git remote origin에서 저장소의 GitHub 슬러그를 확인하고, 유효한 각 스킬마다 npx skills add <owner>/<repo> --skill <name> 줄을 한 줄씩 출력합니다. 이것이 README/공지에 붙여넣거나 배포할 "skills.sh에서 설치" 명령어입니다. 별도의 제출 단계는 없습니다.
all은 validate와 manifest를 한 번의 호출로 실행하며, 동일한 --fail-on 게이트를 공유합니다.
한 번의 명령으로 전체 조직 게시(Publish An Entire Org In One Command)
python3 scripts/skill_publisher.py org --org farfarfun-skill --workspaces-dir /path/to/farfarfun-skill
이것은 "전체 게시"의 원샷 진입점입니다. --org의 모든 공개 비포크 저장소를 gh repo list를 통해 나열하고, --workspaces-dir 아래에 아직 체크아웃되지 않은 저장소는 클론합니다(기존 클론을 풀하거나 변경하지 않음). skills/ 디렉토리가 없는 저장소는 건너뛰고, 나머지에 대해 validate를 실행하며, 조직 전체의 결합된 설치 매니페스트를 출력합니다. --workspaces-dir의 기본값은 --workspace의 상위 디렉토리이므로, 디스크에서 형제 저장소 옆에 있는 저장소 내에서 실행할 때 추가 플래그가 필요하지 않습니다.
--register를 추가하면 검증에 통과한 모든 스킬에 대해 로컬에서 npx skills add <owner>/<repo> --skill <name> -y도 실행합니다. 이것이 skills.sh의 설치 텔레메트리/리더보드에 데이터를 제공하는 실제 메커니즘입니다(제출 API 없음). 또한 이 머신의 에이전트 스킬 디렉토리에 스킬을 설치하므로, 해당 부작용이 필요할 때만 전달하세요.
--mirror-to <org>를 추가하면 통과한 모든 저장소를 보조 조직으로 포크/동기화합니다(아래 참조).
다른 플랫폼으로 미러링(Mirror To Another Platform)
python3 scripts/skill_publisher.py mirror --workspace /path/to/repo --target-org farfarfun-skills
처음 실행 시 저장소를 --target-org(기본값 farfarfun-skills)로 <owner>--<repo> 이름으로 포크하고, 이후 실행 시마다 해당 포크를 소스와 다시 동기화합니다. 이는 이 조직이 이미 farfarfun-skill/* 저장소를 보조 검색을 위해 미러링하는 방식과 일치합니다. gh가 대상 조직에 저장소를 생성할 권한으로 인증되어 있어야 합니다. 이는 원격 GitHub 상태를 변경하는 유일한 하위 명령입니다. 먼저 validate를 실행하고, 검증을 통과한 저장소만 미러링하세요.
결과 반환(Return Results)
validate에서 allow, revise, 또는 block을 반환하고, 통과한 검사 목록과 각 발견 사항에 대한 구체적인 수정 경로(어느 파일, 어느 필드, 무엇을 변경할지)를 반환하세요. manifest와 mirror는 정보 제공/실행 출력이며 게이트가 아닙니다. 이들로 인해 차단하지 마세요.