Skills in CoCo Desktop
Skills in CoCo Desktop (CoCo Desktop의 스킬)
스킬은 특정 작업을 위한 재사용 가능한 사전 포장된 지식과 워크플로로 CoCo Desktop 에이전트를 확장해요. 스킬은 스킬이 무엇을 하는지와 호출될 때 에이전트가 따라야 할 단계를 설명하는 SKILL.md 파일을 가진 자족적인 폴더예요.
CoCo Desktop에 포함된 스킬을 사용하거나, Git 저장소에서 커뮤니티 스킬을 설치하거나, Snowflake 스테이지로 팀과 스킬을 공유하거나, 직접 작성할 수 있어요. 모든 스킬은 Agent Settings 패널에서 관리되고, 에이전트가 자동으로 또는 채팅에서 명시적으로 호출할 수 있어요.
본문
참고
스킬 구성은 ~/.snowflake/cortex/skills.json에 저장되고 cortex 명령줄 도구와 공유돼요. CoCo Desktop에서 추가한 스킬은 CLI에서도 사용할 수 있고, 그 반대도 마찬가지예요.
사전 요구사항
- CoCo Desktop이 설치되고 로그인되어 있어요.
- Stage 스킬: 대상 스테이지에 대한 읽기 접근(그리고 게시하려면 쓰기 접근)이 있는 활성 Snowflake 연결.
- GitHub 스킬: Git 호스트에 대한 네트워크 접근. 비공개 저장소는 내 시스템 Git 자격 증명을 사용해요.
Agent Settings 패널 열기
스킬은 Agent Settings 패널에서 관리해요. 열려면 왼쪽 사이드바의 Agent Settings 탭을 클릭해요.
Agent Settings 패널에서 왼쪽 사이드바의 Skills 카테고리를 선택해요. 이곳이 스킬을 탐색, 추가, 업데이트, 즐겨찾기, 비활성화, 제거하기에 권장되는 곳이에요.
Skills 탭은 에이전트가 볼 수 있는 모든 스킬을 접이식 섹션으로 묶어요.
- Shared Skills — Snowflake 스테이지나 Shared skills 카탈로그에서 가져온 스킬.
- Packaged Skills — CoCo Desktop에 포함된 내장 스킬.
- Local Skills — 프로젝트 스킬(워크스페이스 로컬)과 내가 등록한 사용자 수준 스킬.
- GitHub Skills — Git 저장소에서 추가한 스킬.
Skills 탭 상단의 검색 상자는 모든 섹션에서 이름이나 설명으로 스킬을 필터링해요. 스킬을 선택하면 설명이 표시되고 Open SKILL.md, Favorite, Disable, Update, Publish to stage, Remove 같은 동작이 나타나요.
팁
다른 Agent Settings 카테고리 — Plugins, Profiles, MCP, Subagents, Hooks, Rules — 도 같은 패널에서 관리돼요. Plugins 탭에서 설치한 플러그인이 제공하는 스킬은 Skills 탭에 자동으로 나타나요.
스킬 소스
CoCo Desktop은 여러 소스에서 스킬을 로드해요. 모두 Agent Settings 패널의 Skills 탭에 나타나고, 채팅에서 같은 방식으로 호출할 수 있어요.
내장(패키지) 스킬
내장 스킬은 CoCo Desktop에 포함되어 Packaged Skills 섹션에 나타나요. Cortex Agent 만들기, Cortex Search 서비스 최적화, Streamlit 앱 구축, 새 플러그인 작성 같은 일반적인 Snowflake 작업을 다뤄요.
패키지 스킬을 탐색하고, 즐겨찾기하고, 비활성화할 수 있지만, 삭제할 수는 없어요 — 애플리케이션 번들의 일부이기 때문이에요. 에이전트가 패키지 스킬을 자동 선택하지 못하게 하려면 비활성화해요(스킬 관리 참고).
프로젝트 스킬
프로젝트 스킬은 CoCo Desktop에서 연 워크스페이스 폴더 안, 보통 .snowflake/cortex/skills/ 아래에 있어요. 코드나 노트북과 함께 커밋되므로 프로젝트와 함께 이동하고, 그 워크스페이스가 열려 있을 때만 적용돼요.
특정 저장소에 범위가 정해진 워크플로를 원할 때 프로젝트 스킬을 사용해요. 예를 들어:
- "이 dbt 프로젝트를 Snowflake에 배포하기" 런북.
- 코드베이스 특유의 규칙(lint 명령, 테스트 명령, 명명 표준).
- 문서화하는 코드 옆에 있는 팀 온보딩 연습.
프로젝트 스킬은 워크스페이스가 열릴 때 자동 발견되고 Local Skills 섹션에 나타나요. 수동 등록이 필요 없어요.
로컬(사용자 생성) 스킬
로컬 스킬은 CoCo Desktop에 등록하는 내 머신의 아무 폴더에 저장돼요. 워크스페이스를 넘어 따라다니지만 Git 호스트나 스테이지에 게시되지 않는 개인 스킬을 원할 때 사용해요.
로컬 스킬 폴더를 추가하려면:
- Agent Settings 패널을 열고 Skills 카테고리를 선택해요.
- Local Skills 섹션 헤더에서 + 버튼(Add Local Skill)을 클릭해요.
- 하나 이상의 스킬을 포함한 디렉터리를 선택해요(각 스킬은
SKILL.md가 있는 하위 디렉터리).
CoCo는 폴더에서 SKILL.md 파일을(최대 10 디렉터리 깊이) 재귀적으로 스캔하고 발견한 모든 스킬을 등록해요. 폴더 경로는 ~/.snowflake/cortex/skills.json에 저장돼요.
플러그인 제공 스킬
플러그인은 하나의 패키지에 여러 스킬, 훅, 에이전트, MCP 서버를 담을 수 있는 번들이에요. 플러그인을 설치하면 그 플러그인이 제공하는 모든 스킬이 Skills 뷰에 자동으로 나타나요.
두 소스에서 플러그인을 설치할 수 있어요.
- GitHub — 플러그인 저장소를 복제해요(모든 Git URL 동작: GitHub, GitLab, Bitbucket, SSH, 자체 호스트).
- 로컬 폴더 —
.cortex-plugin/또는.claude-plugin/매니페스트를 포함한 디렉터리를 등록해요.
플러그인 제공 스킬은 다른 스킬과 함께 나열되며, 보통 플러그인 이름이 접두사로 붙어요(예: commit-commands:commit). 플러그인을 설치하거나 제거하려면 Agent Settings 패널을 열고 Plugins 카테고리를 선택해요. 플러그인을 제거하면 그 플러그인이 제공한 모든 스킬이 제거돼요.
GitHub 스킬
Git 저장소에서 단일 스킬이나 스킬 폴더를 직접 추가할 수 있어요. CoCo는 저장소를 ~/.snowflake/cortex/remote_cache/ 아래 캐시 디렉터리에 복제하고, 포함된 모든 SKILL.md를 발견해요.
GitHub 스킬을 추가하려면:
- Agent Settings 패널을 열고 Skills 카테고리를 선택해요.
- GitHub Skills 섹션 헤더에서 + 버튼(Add from GitHub)을 클릭해요.
- 다음 지원 형식 중 하나로 소스를 입력해요:
owner/repo— 예:anthropics/skillsowner/repo#branch— 특정 브랜치나 태그로 고정https://github.com/owner/repohttps://github.com/owner/repo/tree/branch/path— 하위 폴더로 발견 제한
- Add를 클릭해요.
GitHub 스킬에서 Update 동작(또는 섹션 상단의 Update all)을 사용해 최신 버전을 다시 다운로드해요. 저장소에 더 이상 SKILL.md가 없으면 CoCo는 오류를 표시하고 이전 버전을 그대로 둬요.
참고
비공개 저장소의 경우 CoCo는 내 시스템 Git 자격 증명을 사용해요. 복제가 인증 오류로 실패하면 먼저 터미널에서 git clone <url>을 실행해 자격 증명이 설정되어 있는지 확인해요.
Snowflake Stage 스킬
Stage 스킬은 팀이 Git 저장소 대신 Snowflake 스테이지를 통해 스킬을 공유하게 해줘요. Git 권한보다 Snowflake 역할과 승인을 통한 거버넌스를 원할 때 조직 내에서 스킬을 배포하기에 권장되는 방법이에요.
스테이지 스킬을 추가하려면:
- 스테이지에 대한 읽기 접근이 있는 Snowflake 계정에 연결되어 있는지 확인해요.
- Agent Settings 패널을 열고 Skills 카테고리를 선택해요.
- Shared Skills 섹션 헤더에서 + 버튼(Add from Snowflake)을 클릭해요.
@DATABASE.SCHEMA.STAGE또는@DATABASE.SCHEMA.STAGE/subfolder/형식으로 스테이지 경로를 입력해요.- Add를 클릭해요.
CoCo는 스테이지 경로의 콘텐츠를 ~/.snowflake/cortex/stage_cache/에 다운로드하고, SKILL.md 파일을 스캔하고, 발견한 모든 스킬을 등록해요. 스테이지 스킬에서 Update를 사용해 최신 콘텐츠를 다시 가져와요.
참고
스테이지 경로는 @DB.SCHEMA.STAGE 또는 @DB.SCHEMA.STAGE/path와 일치해야 해요. ;, ', --, /* */, $, 백틱 같은 SQL·셸 메타문자를 포함한 경로는 SQL 주입을 방지하기 위해 거부돼요. 따옴표로 묶인 식별자(예: @"My DB".PUBLIC.SKILLS)는 지원돼요.
채팅에서 스킬 사용하기
스킬이 등록되면 에이전트는 두 가지 방법으로 호출할 수 있어요.
- 자동으로, 각 스킬의 설명과 내 프롬프트를 매칭해요. 내 메시지가 스킬과 명확히 일치하면("create a new Cortex Agent"가
create-cortex-agent와 일치) 에이전트는 다른 무엇보다 먼저 그 스킬의 지침을 실행해요. - 명시적으로, 채팅에서 스킬을 언급해요. 채팅 입력에
/를 입력하고 선택기에서 스킬을 고르거나, 이름으로 참조해요(예: "commit 스킬로 내 변경을 커밋해줘").
에이전트가 스킬을 호출하면 대화록에 "Using skill name" 표시가 보여요. 스킬 이름을 클릭하면 SKILL.md를 열어 에이전트가 로드한 것을 검사할 수 있어요.
단일 메시지에서 여러 /skill 명령을 연결할 수 있고, CoCo가 각각 실행해요.
스킬 관리하기
모든 스킬 관리 동작은 Agent Settings 패널의 Skills 탭에서 사용할 수 있어요.
스킬 즐겨찾기
Skills 탭에서 스킬 옆의 별 아이콘을 클릭해 즐겨찾기에 추가해요. 즐겨찾기는 ~/.snowflake/cortex/skills.json에 저장되고 데스크톱 앱의 창들 간에 동기화돼요.
스킬 비활성화
스킬을 비활성화하면 Skills 탭에 계속 표시되지만 에이전트가 호출하거나 자동 선택하지 못해요. 에이전트가 사용하지 않길 원하는 내장 스킬을 조용히 무시하거나, 편집 중인 사용자 지정 스킬을 일시적으로 끌 때 이 기능을 사용해요.
비활성화된 스킬은 사용자 설정에 저장돼요.
"snowflake.skills.disabledSkills": [
"introduce-coco-desktop",
"my-team:legacy-runbook"
]
스킬 업데이트
GitHub와 Stage 스킬의 경우 Update 동작이 소스의 최신 콘텐츠를 다시 다운로드해요. 각 섹션 상단의 Update all 동작은 해당 섹션의 모든 스킬을 한 번에 새로고침해요. 프로젝트, 로컬, 패키지 스킬은 기본 파일을 편집할 때 자동으로 업데이트돼요.
스킬 제거
Remove 동작의 동작은 소스에 따라 달라져요.
| 소스 | "Remove"의 역할 |
|---|---|
| Packaged | 허용되지 않아요. 대신 비활성화해요. |
| Project | 워크스페이스에서 스킬 폴더를 삭제해요. |
| Local | 스킬 하나를 등록 해제하거나 로컬 폴더 전체를 등록 해제해요. 디스크의 파일은 그대로 둬요. |
| GitHub | skills.json에서 항목을 제거하고 remote_cache/ 아래 캐시된 복제본을 삭제해요. |
| Stage | skills.json에서 항목을 제거하고 stage_cache/ 아래 캐시된 다운로드를 삭제해요. 스테이지 자체의 파일은 건드리지 않아요. |
| Plugin | Plugins 뷰에서 플러그인을 제거해요. 그 플러그인의 모든 스킬이 함께 제거돼요. |
Snowflake 스테이지에 스킬 게시
로컬 또는 프로젝트 스킬을 Snowflake 스테이지에 게시해 조직의 다른 Snowflake 사용자가 자신의 CoCo Desktop 설치에서 등록할 수 있게 할 수 있어요.
스킬을 게시하려면:
- Agent Settings 패널을 열고 Skills 카테고리를 선택해요.
- 게시할 스킬을 선택해요.
- Publish to stage를 클릭해요.
- 대상 스테이지 경로를 입력해요(예:
@SHARED.SKILLS.TEAM_LIBRARY/release-notes/). - 기존 파일을 덮어쓸지 확인한 뒤 Publish를 클릭해요.
CoCo는 스킬 디렉터리 전체 — SKILL.md와 지원 스크립트·리소스 — 를 스테이지에 업로드해요. 팀원은 같은 스테이지 경로로 Skills 뷰에서 추가할 수 있어요.
팁
공유 스킬에는 적절한 역할 승인이 있는 전용 데이터베이스/스키마를 사용해요(예: SHARED.SKILLS는 PUBLIC이 읽고 스킬 관리자만 쓸 수 있게). 이렇게 하면 팀 전체에 Git 접근을 요구하지 않고 세밀한 접근 제어를 할 수 있어요.
Skills Catalog
Skills Catalog는 조직 전체에서 스킬을 공유하고 발견하기 위한 Snowflake의 내장 레지스트리예요. 카탈로그의 스킬은 버전 관리된 Cortex Extension 객체로 저장되므로, 접근은 Snowflake 역할과 승인으로 관리돼요. Git 자격 증명이나 파일 공유가 필요 없어요.
카탈로그 탐색
Skills 뷰의 Browse Skills Catalog 링크를 클릭하거나, 채팅에서 번들된 find-skill 스킬을 사용해 설명으로 검색해요. 탐색 링크는 Snowsight의 Skills & Plugins 페이지를 열어 게시된 스킬을 검색하고, 설명을 읽고, 가져오기 링크를 복사할 수 있게 해요.
카탈로그 출처 스킬은 Skills 탭의 Shared 섹션에 일반 STAGE 배지 대신 CATALOG 배지로 나타나요.
카탈로그에서 스킬 가져오기
- Snowsight에서 원하는 스킬을 찾아
snow://skill_catalog/로 시작하는 URI인 공유 링크를 복사해요. - CoCo Desktop에서 Agent Settings 패널을 열고 Skills 카테고리를 선택해요.
- Shared 섹션 헤더에서 + 버튼을 클릭하고 Add from Skills Catalog를 선택해요.
- Import link 필드에
snow://링크를 붙여넣고 Import를 클릭해요.
CoCo Desktop은 Snowflake에서 스킬 파일을 다운로드하고, SKILL.md를 발견하고, 스킬을 등록해요. Shared 섹션에 CATALOG 배지와 함께 나타나고 즉시 호출할 수 있어요.
참고
가져오기 링크는 snow://skill_catalog/ 또는 snow://cortex_extension/로 시작하고 특정 버전 번호를 포함해야 해요(예: .../versions/version$1/). SQL 메타문자(;, --, /* */, 백틱)를 포함한 URI는 거부돼요.
Skills Catalog에 스킬 게시
로컬 또는 프로젝트 스킬을 Skills Catalog에 게시해 조직의 다른 사람이 가져올 수 있게 할 수 있어요.
- Agent Settings 패널을 열고 Skills 카테고리를 선택해요.
- 게시할 스킬을 선택해요.
- Publish to Skills Catalog(구름 업로드 아이콘)를 클릭해요.
채팅 세션이 열리고 게시 워크플로가 실행돼요. 이 워크플로는:
- Snowflake 계정에 CORTEX EXTENSION 객체를 만들어요.
- 스킬 파일을 Snowflake의 버전 관리 저장소에 업로드해요.
- 버전을 커밋하고 읽기 접근을 부여해요(PUBLIC에, 또는 지정한 역할에).
- 팀과 공유할 수 있는
snow://skill_catalog/...URI를 반환해요.
참고
Publish to Skills Catalog 옵션은 로컬과 프로젝트 스킬에 사용할 수 있어요. 카탈로그에서 이미 가져온 스킬은 이 워크플로로 다시 게시할 수 없어요. 일반 명명된 스테이지로 푸시하려면 Publish to stage를 사용해요.
카탈로그 스킬 제거
카탈로그 스킬을 제거하려면 Skills 탭에서 Remove 동작을 사용해요. 스킬 등록이 해제되고 로컬 캐시가 삭제돼요. Snowflake 계정의 Cortex Extension 객체는 영향을 받지 않아요.
직접 스킬 만들기
스킬은 SKILL.md 파일을 가진 폴더예요. 최소 레이아웃은 다음과 같아요.
my-skill/
SKILL.md (required)
scripts/ (optional helper scripts)
reference.md (optional supplementary docs)
SKILL.md 구조
SKILL.md는 스킬에 이름과 설명을 주는 YAML front matter로 시작하고, 그다음 스킬이 호출될 때 에이전트가 읽는 markdown 본문이 따라와요.
---
name: release-notes
description: Generate a customer-facing release notes draft for a Cortex Code build
by reading the changelog and PR titles since the last release.
---
# Release notes generator
When the user invokes this skill, follow these steps:
1. Run `git log --oneline` to find commits since the last tag.
2. Group commits by component prefix (`[analyst]`, `[codingagent]`, etc.).
3. Draft a markdown release notes section grouped by feature, fix, and chore.
4. Show the draft to the user and ask for edits before saving.
name은 사용자가 스킬을 호출하기 위해 입력하고 에이전트가 매칭하는 값이에요. description이 중요해요. 에이전트가 언제 스킬을 자동 호출할지 결정하는 데 사용하므로, 스킬이 무엇을 하고 언제 사용하는지 명확히 말해야 해요.
plugin-creator 스킬 사용하기
새 스킬을 스캐폴딩하는 가장 빠른 방법은 에이전트에게 번들된 plugin-creator 스킬을 사용하라고 하는 것이에요. 대화형 마법사를 안내하고, 디렉터리 레이아웃을 생성하고, 시작용 SKILL.md를 만들어요.
채팅 패널에서 입력해요:
create a new plugin called my-team-skills with one skill
에이전트는 plugin-creator를 호출해 플러그인 이름, 포함할 스킬, 훅·MCP 서버를 묻고, 내가 고른 폴더에 파일을 써요.
로컬에서 스킬 테스트
- 스킬 폴더를 디스크 어딘가에 저장해요(예:
~/snowflake-skills/release-notes/). - Agent Settings 패널을 열고 Skills 카테고리를 선택하고, Local Skills 섹션의 Add Local Skill 버튼(+)으로 부모 디렉터리를 등록해요.
- 채팅을 열고 스킬이 설명하는 워크플로를 요청해요. 에이전트가 스킬을 호출하는지 확인해요(대화록에서 "Using skill"이 보여요).
- SKILL.md를 편집해 지침을 다듬고 다시 실행해요. 변경은 실시간으로 반영돼요.
- 만족하면 Git 저장소나 Snowflake 스테이지에 게시해 다른 사람이 사용할 수 있게 해요.
설정 참조
| 설정 / 경로 | 설명 |
|---|---|
snowflake.skills.disabledSkills |
에이전트가 호출하거나 자동 선택하지 않을 스킬 ID 배열. 워크스페이스별 또는 사용자별로 설정해요. |
snowflake.skills.recentStagePaths |
최근 사용한 Snowflake 스테이지 경로. Add-from-stage와 Publish-to-stage 대화상자의 자동 완성에 사용돼요. |
~/.snowflake/cortex/skills.json |
영구 스킬 구성: 등록된 로컬 폴더, GitHub 소스, 스테이지 항목, 마켓플레이스 항목, 즐겨찾기. cortex CLI와 공유돼요. |
~/.snowflake/cortex/remote_cache/ |
GitHub 스킬을 뒷받침하는 복제된 GitHub 저장소의 로컬 캐시. |
~/.snowflake/cortex/stage_cache/ |
Snowflake 스테이지에서 다운로드한 파일의 로컬 캐시. |
문제 해결
폴더나 저장소 추가 시 "No SKILL.md found"
CoCo는 SKILL.md 파일을 최대 10 디렉터리 깊이까지 재귀적으로 스캔해요. 이 오류가 보이면 내 스킬 폴더에 정확히 SKILL.md라는 이름의 파일(Linux와 macOS에서 대소문자 구분)이 있고, 제외된 숨김 폴더(이름이 .로 시작하는 디렉터리) 안에 중첩되어 있지 않은지 확인해요.
"Invalid stage path format"
스테이지 경로는 @로 시작하고 @DATABASE.SCHEMA.STAGE 또는 @DATABASE.SCHEMA.STAGE/path 패턴을 따라야 해요. 셸 메타문자, 세미콜론 등을 포함할 수 없어요.
GitHub 복제 실패
CoCo는 내 시스템 Git 자격 증명을 사용해요. 먼저 터미널에서 저장소를 복제해 보세요(git clone <url>). 실패하면 그곳에서 자격 증명을 고치고 Add Skill 흐름을 재시도해요. URL이 올바른데도 스킬이 발견되지 않으면 저장소에 SKILL.md가 없을 가능성이 높아요. 그 경우 캐시된 복제본이 자동으로 제거돼요.
스킬이 채팅 선택기에 나타나지 않음
- 스킬이 Agent Settings 패널의 Skills 탭에 나타나는지 확인해요.
snowflake.skills.disabledSkills에 나열되어 있지 않은지 확인해요.- 스킬 YAML front matter의 name을 확인해요 — 선택기가 매칭하는 값이에요.
"Cannot import skills from the packaged skills directory"
애플리케이션의 번들 resources/snowflake/skills/ 디렉터리를 로컬 스킬 소스로 등록하려고 했어요. 번들 스킬은 이미 CoCo가 로드하므로 허용되지 않아요. 사용자 지정 스킬을 위해 ~/snowflake-skills/ 같은 다른 폴더를 골라요.
더 알아보기
- Plugins in CoCo Desktop — 플러그인으로 스킬 묶기
- Skill and plugin sharing — 스킬 공유 방법
- Skills and plugins (Snowsight) — Skills & Plugins 페이지