본문으로 건너뛰기

Organization-Wide Skills

Tracked repository를 사용해 모든 프로젝트에서 Skill을 공유합니다.

개요


사용 시나리오

시나리오예시
회사 코딩 표준모든 저장소에서 일관된 네이밍, 오류 처리, 아키텍처를 강제합니다
보안 Audit Skill모든 프로젝트에 적용되는 조직 전체 보안 리뷰 체크리스트
배포 지식표준 CI/CD 패턴, 인프라 규칙, 릴리스 프로세스
코드 리뷰 가이드라인모든 팀과 프로젝트에서 일관된 리뷰 기준
프로젝트 간 패턴공유되는 API 설계 패턴, 로깅 표준, 테스팅 프레임워크

조직 공유를 사용하는 이유

Organization Skill이 없을 때Organization Skill이 있을 때
"Slack에서 최신 배포 Skill 좀 가져와줘"skillshare update --all
머신 간에 Skill을 복사-붙여넣기명령어 하나로 모든 것을 설치
"너는 어떤 버전의 Skill을 갖고 있어?"모두가 같은 Source에서 동기화
문서/저장소 여기저기에 흩어진 Skill조직을 위한 하나의 큐레이션된 저장소

팀 리더를 위한 안내

1단계: Skill 저장소 생성

조직의 Skill을 위한 GitHub/GitLab/Bitbucket 저장소를 만드세요.

mkdir org-skills && cd org-skills
git init

# Skill 구조 생성
mkdir -p frontend/ui backend/api devops/deploy

# Skill 추가
echo "---
name: acme-ui
description: Frontend UI patterns
---
# UI Skill
..." > frontend/ui/SKILL.md

git add .
git commit -m "Initial skills"
git push -u origin main

2단계: .skillignore 추가 (선택 사항)

저장소에 Skill로 발견되어서는 안 되는 내부 도구나 CI 스크립트가 있다면, 저장소 루트에 .skillignore를 만드세요:

.skillignore
# CI/CD 도우미 — 설치 대상 Skill이 아님
ci-scripts
_internal-*

.skillignore가 차단하는 Skill이 필요한 개인 팀원은 같은 디렉터리에 .skillignore.local(git에 커밋되지 않음)을 만들어 로컬에서만 재정의할 수 있습니다:

.skillignore.local
!_internal-my-tool

3단계: 설치 명령 공유

팀에게 다음을 전달하세요:

skillshare install github.com/your-org/org-skills --track && skillshare sync

일부만 필요한 팀원은 --exclude를 사용할 수 있습니다:

skillshare install github.com/your-org/org-skills --all --exclude devops-deploy

팀원을 위한 안내

초기 설정

# 조직 Skill 저장소 설치
skillshare install github.com/org/skills --track

# AI CLI에 Sync
skillshare sync

일상적인 사용

# 업데이트 확인
skillshare update --all
skillshare sync

중첩 Skill과 자동 평탄화

폴더에 Skill을 정리하세요 — skillshare는 AI CLI 호환성을 위해 이를 자동으로 평탄화합니다:

SOURCE                              TARGET
(your organization) (what AI CLI sees)
────────────────────────────────────────────────────────────
_org-skills/
├── frontend/
│ ├── react/ ───► _org-skills__frontend__react/
│ └── vue/ ───► _org-skills__frontend__vue/
├── backend/
│ └── api/ ───► _org-skills__backend__api/
└── devops/
└── deploy/ ───► _org-skills__devops__deploy/

• _ 접두사 = tracked repository
• __ (이중 밑줄) = 경로 구분자

장점:

  • 저장소에서 논리적인 폴더 구성을 유지할 수 있습니다
  • AI CLI는 원하는 평탄한 구조를 보게 됩니다
  • 평탄화된 이름은 추적 가능성을 위해 원본 경로를 보존합니다

자세한 내용은 Tracked Repositories를 참고하세요.


충돌 감지

여러 Skill이 같은 name 필드를 공유하는 경우, sync는 include/exclude 필터가 적용된 후 실제로 동일한 Target에 도달하는지 확인합니다.

필터가 충돌을 격리함 — 정보성 알림만 표시:

ℹ Duplicate skill names exist but are isolated by target filters:
'ui' (2 definitions)

충돌이 동일한 Target에 도달함 — 조치가 필요한 경고:

⚠ Target 'claude': skill name 'ui' is defined in multiple places:
- _team-a/frontend/ui
- _team-b/components/ui
Rename one in SKILL.md or adjust include/exclude filters

해결 방법: 네임스페이스가 적용된 이름을 사용하거나 필터로 라우팅하세요:

# 옵션 1: SKILL.md에서 네임스페이스 지정
name: team-a-ui

# 옵션 2: 필터로 라우팅 (Global config)
targets:
codex:
path: ~/.codex/skills
include: [_team-a__*]
claude:
path: ~/.claude/skills
include: [_team-b__*]
# 옵션 2: 필터로 라우팅 (Project config)
targets:
- name: claude
exclude: [codex-*]
- name: codex
include: [codex-*]

전체 문법과 예시는 Target Filters를 참고하세요.


여러 조직 저장소

서로 다른 팀이나 관심사를 위해 여러 저장소를 설치하세요:

# 프론트엔드 팀
skillshare install github.com/org/frontend-skills --track --name frontend

# 백엔드 팀
skillshare install github.com/org/backend-skills --track --name backend

# DevOps 팀
skillshare install github.com/org/devops-skills --track --name devops

skillshare sync

모두 업데이트:

skillshare update --all
skillshare sync

비공개 저장소

SSH (개발자 머신에 권장):

skillshare install [email protected]:org/private-skills.git --track

토큰을 사용한 HTTPS (CI/CD에 권장):

export GITHUB_TOKEN=ghp_your_token
skillshare install https://github.com/org/private-skills.git --track

공식 토큰 문서:

CI/CD 설정

GitHub Actions:

- name: Install org skills
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
skillshare install https://github.com/org/skills.git --track
skillshare sync

GitLab CI:

install-skills:
script:
- skillshare install https://gitlab.com/org/skills.git --track
- skillshare sync
variables:
GITLAB_TOKEN: $CI_JOB_TOKEN

Bitbucket Pipelines:

- step:
name: Install org skills
script:
- skillshare install https://bitbucket.org/team/skills.git --track
- skillshare sync
env:
BITBUCKET_USERNAME: $BITBUCKET_USERNAME # app password용
BITBUCKET_TOKEN: $BITBUCKET_TOKEN

지원되는 모든 토큰은 Environment Variables를 참고하세요.


명령어 레퍼런스

명령어설명
install <url> --track저장소를 tracked repository로 clone
update <name>특정 tracked repo를 git pull
update --all모든 tracked repo 업데이트
uninstall <name>...tracked repo 제거
list모든 Skill과 tracked repo 나열
statusSync 상태 표시

Organization Agent

Tracked organization repo는 Skill과 함께 agent를 배포할 수 있습니다. skills/ 옆의 최상위 agents/ 디렉터리에 배치하세요:

your-org/org-shared/
├── skills/ # Skill로 발견됨
│ ├── api-design/
│ │ └── SKILL.md
│ └── security/
│ └── SKILL.md
└── agents/ # Agent로 발견됨
├── reviewer.md
└── auditor.md

팀원이 skillshare install github.com/your-org/org-shared --track을 실행하면 두 디렉터리 모두 자동으로 수집됩니다. skillshare update --all은 둘 다 동기화 상태로 유지하며, skillshare sync(또는 skillshare sync agents)는 agent를 지원하는 Target(Claude, Cursor, Augment, OpenCode)에 agent를 전파합니다.

Org repo 내부의 .agentignore 파일은 디스크에서 존중되지만, 각 머신이 업스트림 저장소를 편집하지 않고도 opt-out할 수 있도록 일반적으로 소비자의 Source 루트(또는 .agentignore.local)에 두는 것이 좋습니다. 전체 발견 규칙은 Agents를 참고하세요.


Organization Skill vs Project Skill

Organization SkillProject Skill
범위머신의 모든 프로젝트단일 저장소
Source~/.config/skillshare/skills/_repo/.skillshare/skills/
설치skillshare install <url> --trackskillshare install <url> -p
공유 방식각 멤버가 tracked repo 설치프로젝트 git 저장소에 커밋
적합한 용도코딩 표준, 보안, 조직 패턴API 규칙, 도메인 컨텍스트, 프로젝트 도구
공존 여부Project Skill과 함께 동작Organization Skill과 함께 동작
둘 다 사용하세요

Organization Skill은 회사 전체의 표준을 제공합니다. Project Skill은 저장소별 컨텍스트를 제공합니다. 서로를 보완하므로 — 최상의 개발자 경험을 위해 둘 다 사용하세요.


모범 사례

팀 리더를 위한 안내

  1. 명확한 구조 사용: 기능별로 구성하세요 (frontend, backend, devops)
  2. Skill 네임스페이스 지정: 충돌을 피하기 위해 org-skill-name 형태로
  3. 요구 사항 문서화: 설정 안내가 담긴 README
  4. 버전 관리: 안정적인 릴리스에 태그 사용

팀원을 위한 안내

  1. 정기적으로 업데이트: 매일 skillshare update --all
  2. 문제 보고: Skill이 작동하지 않으면 유지 관리자에게 알리세요
  3. 개선 제안: Skill 저장소에 PR을 열어 제안하세요

참고 자료