SONUB 홈 KO English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

알림을 켜는 방법

이 브라우저 또는 주소에서는 알림을 사용할 수 없습니다. 지원되는 브라우저로 보안 연결된 SONUB 사이트에 접속해 주세요.

알림이 차단되어 있으면 브라우저 설정에서 허용해 주세요.

  1. 주소 표시줄 옆의 사이트 설정 또는 브라우저의 사이트 설정을 열고, 이 사이트의 알림을 허용으로 바꾸세요.
  2. 기기 설정에서 브라우저 알림을 허용하고 방해 금지 또는 집중 모드를 확인하세요.
  3. SONUB으로 돌아와 페이지를 새로고침한 뒤 벨을 눌러 알림을 켜세요.

iPhone 또는 iPad에서는 SONUB을 홈 화면에 추가하고 거기에서 연 뒤 알림을 허용하세요.

Agent Skills

AI 에이전트에게 새 기술을 가르치세요 — 1분이면 됩니다

SONUB 가 만든 무료 스킬로 Claude Code·Codex·Gemini CLI·GitHub Copilot CLI 같은 AI 에이전트에서 씁니다. 명령 한 줄로 설치하고, 그다음에는 평소 말로 부탁하면 됩니다.

기초 — 스킬이 무엇이고 어떻게 설치하나

이 처음이라면 여기서 시작하세요. 스킬이 무엇이고 어떻게 동작하는지 알아본 뒤, 명령 한 줄로 설치해 써 봅니다. 다 해 봤다면 위의 [중급] 탭에서 나만의 스킬을 만듭니다.

에이전트 스킬 알아보기

은 SKILL.md 파일이 든 폴더로, 에이전트에게 한 종류의 일을 하는 방법을 가르쳐요. 단계, 규칙, 확인 방법이 들어 있고, 원하면 스크립트와 참고 파일도 넣을 수 있어요. Claude Code, Codex 같은 에이전트는 공개된 Agent Skills 형식을 지원해요.

SKILL.md 맨 위에는 이름과 설명이 있어요. 에이전트는 처음에 이것만 읽고, 요청이 설명과 맞을 때 전체 지시를 불러와요. 그래서 스킬이 많아도 대화가 가득 차지 않아요.

쉽게 이해하기

이렇게 생각해 보세요
스킬은 선반에 꽂힌 업무 설명서 바인더와 같아요. 에이전트는 먼저 모든 바인더의 표지 — 이름과 한 줄 설명 — 만 읽어요. 요청이 표지와 맞으면 그 바인더를 꺼내 안의 단계를 따라요. 그래서 스킬이 많아도 대화가 가득 차지 않아요.
예시

“roll-dice” 스킬: SKILL.md가 든 폴더이고, 표지에는 “사용자가 무작위 숫자를 원하면 주사위를 굴린다”, 안에는 단계와 작은 스크립트가 있어요. “주사위 두 개 굴려 줘”라고 하면 에이전트가 그 바인더를 펼쳐요.

자주 하는 실수
“쓸모 있는 도우미”처럼 막연한 설명. 에이전트는 표지만 보고 고르니, 언제 써야 하는 스킬인지 정확히 적어요.
알록달록한 바인더가 꽂힌 선반. 하나가 펼쳐져 아이콘과 몇 줄이 있는 표지, 점으로 된 단계, 점검표, 끼워 둔 작은 공구 상자가 보인다. 로봇이 표지들을 읽고 말풍선 속 주사위 아이콘과 맞는 바인더를 꺼낸다.
에이전트는 표지(이름과 설명)만 읽고, 요청과 맞는 바인더 하나만 펼쳐요.

에이전트 스킬이란?

에이전트 스킬(Agent Skills)은 AI 에이전트에게 새 능력과 전문 지식을 더해 주는 가볍고 열린 형식이에요. 스킬 하나는 SKILL.md 파일이 든 폴더 하나예요. SKILL.md 에는 이름(name)과 설명(description), 그리고 한 종류의 일을 어떻게 하는지 알려 주는 지시가 들어 있어요. 폴더에는 스크립트, 참고 문서, 템플릿 같은 파일도 함께 넣을 수 있어요.

에이전트는 점점 똑똑해지지만, 실제 일을 믿고 맡기려면 우리 회사·우리 팀·나만의 일하는 방법을 알아야 해요. 스킬은 그 방법을 폴더 하나에 담아, 에이전트가 필요할 때만 불러 쓰게 해요. 전문 지식은 다시 쓸 수 있는 지시가 되고, 여러 단계의 일은 매번 같은 절차가 돼요.

이 형식은 Anthropic 이 처음 만들어 열린 표준으로 공개했어요. 지금은 누구나 참여해 함께 키워 가요(agentskills.io).

어디에 좋은가 — 절차· 리뷰 기준·문서 양식처럼 팀이 되풀이하는 일에 좋습니다. 사람이 바뀌어도 일하는 방식이 남습니다.

한 번 배우면 여러 AI 도구에서

에이전트 스킬은 한 회사의 기능이 아니라 공개 표준이에요. 그래서 스킬 만드는 법을 한 번 배우면 어디서나 써요. 같은 SKILL.md 폴더가 Claude Code 와 Codex 는 물론, 이 형식을 지원하는 많은 AI 도구에서 그대로 작동해요.

설치도 어디서나 같아요. 도구가 스킬을 찾는 폴더에 스킬 폴더를 넣으면 끝이에요. 도구마다 그 폴더 위치만 조금 달라요(아래 상자).

  • Claude Code
  • Claude
  • ChatGPT & Codex
  • Gemini CLI
  • GitHub Copilot
  • VS Code
  • Cursor
  • OpenCode
  • Goose
  • Kiro
  • Junie
  • Roo Code
  • Amp
  • OpenHands
  • Factory
  • Laravel Boost

agentskills.io 에 소개된 도구 중 일부예요(2026-10-16 확인). 목록은 계속 늘어나요.

# where each tool looks for skills      all projects        this project
Claude Code                             ~/.claude/skills    .claude/skills
Codex · Gemini CLI · Copilot CLI        ~/.agents/skills    .agents/skills
VS Code (GitHub Copilot)                                    .agents/skills
# put the whole skill folder there:  .agents/skills/roll-dice/SKILL.md

어떻게 동작할까요 — 필요한 만큼만 읽는 세 단계

에이전트는 스킬을 점진적 공개(progressive disclosure) 방식으로 읽어요. 처음에는 조금만, 일이 필요로 할 때 더 읽어요.

  1. 찾기(Discovery): 시작할 때 모든 스킬의 이름과 설명만 읽어요. 스킬 하나에 100토큰 정도라 많이 설치해도 가벼워요.
  2. 켜기(Activation): 요청이 어떤 스킬의 설명과 맞으면 그 스킬의 SKILL.md 본문 전체를 읽어요. 본문은 5,000토큰, 500줄 아래로 쓰기를 권해요.
  3. 실행(Execution): 지시를 따라 일하고, 필요할 때만 scripts/ 의 코드를 실행하거나 references/ 의 문서를 읽어요.

폴더 구조와 SKILL.md 규칙

스킬에 꼭 있어야 하는 파일은 SKILL.md 하나예요. 맨 위에 --- 두 줄 사이의 YAML 머리말이 있고, 그 아래에 Markdown 으로 지시를 써요.

  • name (필수): 64자 이하, 영어 소문자·숫자·하이픈(-)만 써요. 하이픈으로 시작하거나 끝나면 안 되고 하이픈 두 개를 잇달아 쓸 수 없어요. 폴더 이름과 같아야 해요.
  • description (필수): 1,024자 이하. 무엇을 하는지와 언제 쓰는지를 사람들이 실제로 하는 말로 써요. 에이전트는 이 글을 보고 스킬을 쓸지 정해요.
  • license · compatibility · metadata · allowed-tools (선택): 라이선스, 필요한 환경(500자 이하), 작성자·버전 같은 추가 정보, 미리 허락한 도구(실험 기능)예요. 대부분의 스킬에는 필요 없어요.
  • scripts/ · references/ · assets/ (선택): 실행할 코드, 필요할 때 읽는 문서, 템플릿·이미지·데이터 같은 자료예요. 파일은 스킬 폴더 기준 상대 경로로 가리키고, SKILL.md 에서 한 단계 깊이까지만 연결해요.
my-skill/            # folder name = the skill's name
├── SKILL.md         # required: name + description + instructions
├── scripts/         # optional: code the agent can run
├── references/      # optional: documents read only when needed
└── assets/          # optional: templates, images, data

만들어 보기 — 파일 하나로 5분

가장 간단한 스킬은 SKILL.md 파일 하나예요. agentskills.io 첫걸음(Quickstart)의 주사위 굴리기 스킬을 만들어 봐요.

  1. 폴더 만들기: 프로젝트에 .agents/skills/roll-dice/ 폴더를 만들어요(Claude Code 는 .claude/skills/roll-dice/). 폴더 이름이 곧 스킬 이름이에요.
  2. SKILL.md 쓰기: 아래 상자처럼 name 과 description 을 쓰고, 본문에 할 일을 몇 줄로 적어요.
  3. 확인하기: 에이전트를 다시 열고 /skills 를 입력해 목록에 roll-dice 가 보이는지 봐요.
  4. 시험하기: "d20 굴려 줘"라고 부탁해 스킬이 켜지는지 보고, 관계없는 질문에는 켜지지 않는지도 봐요. 잘 켜지지 않으면 description 을 고쳐요.
---
name: roll-dice
description: Roll dice using a random number generator. Use when asked to roll a die (d6, d20, etc.), roll dice, or generate a random dice roll.
---

To roll a die, use the following command that generates a random number from 1
to the given number of sides:

```bash
echo $((RANDOM % <sides> + 1))
```

Replace `<sides>` with the number of sides on the die (e.g., 6 for a standard
die, 20 for a d20).

잘 만드는 요령

  • description 이 가장 중요해요. 무엇을 하는지, 언제 쓰는지, 무엇에는 쓰지 않는지 적어요. "PDF 를 도와줌"처럼 막연하면 거의 쓰이지 않아요.
  • 스킬 하나에는 한 종류의 일만 담아요. 본문은 짧은 단계, 입력과 출력의 예, 흔한 예외로 채워요.
  • 긴 설명은 references/ 로, 반복되는 명령이나 계산은 scripts/ 로 옮겨요. 스크립트는 무엇이 필요한지 밝히고 알아보기 쉬운 오류 메시지를 내게 해요.
  • skills-ref validate ./my-skill 로 머리말 규칙을 검사하고, git 으로 버전을 관리해 팀과 나눠요.
  • 남이 만든 스킬은 스크립트를 실행할 수 있으니 설치하기 전에 꼭 읽어 보세요.
  • 쓰기 전에 — 남이 만든 스킬은 지시와 스크립트를 먼저 읽고, 되돌릴 수 있는 작은 일로 시험하세요. Agent Skills 사이트는 형식만 정할 뿐, 스킬이 안전한지는 보증하지 않습니다.
조금 더 알아보기

스킬이 언제 쓰일지는 설명이 정하니, 사람들이 실제로 하는 말로 쓰고 무엇에는 쓰지 않는지도 밝히세요. 지시는 짧고 구체적으로 쓰고, 긴 세부 내용은 따로 참고 파일로 옮기고, 써야 하는 요청과 쓰지 말아야 하는 요청으로 스킬을 시험하세요. 스킬은 스크립트를 실행할 수 있으니 믿을 수 있는 곳의 스킬만 설치하고, 먼저 읽어 보세요. SONUB 도 여러 스킬로 만들어졌어요. 그중 하나는 이 사이트에서 보는 용어의 초보자용 팝업을 써요.

명령 한 줄로 설치

프로젝트 폴더의 터미널에서 실행하세요. sonub.com 에서 스킬 목록을 읽고, 어떤 스킬을 어느 에이전트에 넣을지 물은 뒤, 에이전트마다 스킬을 찾는 폴더에 복사합니다.

npx skills add https://sonub.com

Node.js 18 이상이 필요합니다(npx 가 함께 들어 있습니다). 설치한 뒤 에이전트의 새 세션을 시작해야 새 스킬을 읽습니다.

명령을 몰라도 — 인공지능에게 설치해 달라고 말하기

스킬을 설치할 때는 인공지능에게 원하는 스킬을 설치해 달라고 말하면 됩니다. 인공지능이 똑똑해서 “https://sonub.com 에 있는 gp 스킬을 설치해 줘”처럼 어디에 있는 스킬인지 알려 주면 설치를 해 줍니다. 스킬 설치 명령어를 몰라도 인공지능이 설치하고 사용합니다. 아래 문장을 복사해 에이전트에게 보내 보세요.

SONUB 스킬을 설치해 줘: npx skills add https://sonub.com -y 를 실행하고, 어떤 스킬이 설치됐는지와 쓰기 시작하려면 뭐라고 말하면 되는지 알려 줘.

다만, 정말 아무것도 모른 채로 인공지능에게 시키기만 하면 결국은 인공지능이 일을 한 것이지 여러분이 일을 한 것이 아닌 것이 됩니다.

그래서 인공지능에 대해서 먼저 알고 있어야 인공지능에게 더 잘 일을 시킬 수가 있고, 인공지능이 일을 잘못했을 때 무엇이 잘못되었는지 인공지능이 한 작업을 분석해서 다시 요청을 할 수 있는 것입니다.

자주 쓰는 옵션

이 컴퓨터의 모든 프로젝트에(없으면 지금 프로젝트에만)
npx skills add https://sonub.com -g

스킬 하나만
npx skills add https://sonub.com -s gp

에이전트 하나에만
npx skills add https://sonub.com -a claude-code

스킬 목록만 보고 설치하지 않기
npx skills add https://sonub.com -l

묻지 않고 — 모든 스킬을 이 컴퓨터에서 찾은 에이전트에
npx skills add https://sonub.com -y

설치한 스킬 관리 — 확인·버전·업데이트·삭제

skills CLI(npx skills)로 설치한 스킬을 확인하고, 버전을 보고, 업데이트하고, 지울 수 있습니다. 아래 명령에서 -g 는 글로벌(이 컴퓨터의 모든 프로젝트)이고, -g 가 없으면 지금 프로젝트(로컬)가 대상입니다.

글로벌과 로컬(프로젝트)

글로벌 (-g) 로컬 (-g 없음)
쓰는 곳 이 컴퓨터의 모든 프로젝트 그 프로젝트 폴더 안에서만
실제 파일 ~/.agents/skills/<name> .agents/skills/<name>
Claude Code 가 읽는 곳 ~/.claude/skills/<name> .claude/skills/<name>
버전·날짜 기록 ~/.agents/.skill-lock.json skills-lock.json 날짜는 없고 버전(digest)만

로컬 명령은 그 프로젝트 폴더 안에서 실행합니다. 같은 스킬이 글로벌과 로컬에 둘 다 있으면 Claude Code 는 글로벌(개인) 스킬을 씁니다.

Claude Code 는 ~/.agents/skills 를 읽지 않습니다

Claude Code 는 .claude/skills 폴더(~/.claude/skills 와 프로젝트의 .claude/skills)만 읽고, ~/.agents/skills 와 프로젝트의 .agents/skills 는 읽지 않습니다. Codex·Gemini CLI·Copilot CLI 는 .agents/skills 를 읽습니다. skills CLI 는 실제 파일을 .agents/skills 에 두고 Claude Code 용 바로가기를 .claude/skills 에 만들어 줍니다. 스킬 폴더를 손으로 ~/.agents/skills 에만 넣으면 Claude Code 에는 보이지 않으니 ~/.claude/skills 에 넣거나 바로가기를 만들고, 새 세션을 열어 Claude Code 에서 /skills 로 확인하세요.

설치된 스킬 목록

글로벌 스킬 — 이름·경로·쓰는 에이전트·Source
npx skills ls -g

지금 프로젝트(로컬)의 스킬
npx skills ls

Claude Code 에 연결된 것만
npx skills ls -g -a claude-code

JSON 으로 — 범위·받아 온 주소까지
npx skills ls -g --json

Source 가 sonub.com 이나 GitHub 저장소면 skills CLI 로 설치한 것이라 업데이트·삭제가 됩니다. local 이면 누군가 손으로 넣은 폴더라 skills CLI 가 업데이트하지 않습니다.

버전과 설치 날짜 확인

스킬에는 버전 번호가 없습니다. 스킬을 내준 곳이 알려 주는 digest(스킬 압축 파일의 sha256) 앞 12자리가 버전입니다. skills CLI 는 설치할 때 이 값과 설치일·업데이트일을 기록 파일에 적어 둡니다(로컬 기록에는 날짜가 없습니다). 이것을 sh 스크립트 skill-versions.sh 로 만들어 두었습니다 — 한 번 내려받아 두고 어느 프로젝트에서나 다시 쓰세요. 글로벌과 로컬 스킬을 한 표로 보여 주고, 받아 온 곳의 최신 버전과 비교합니다.

스크립트를 한 번 내려받아 두기
curl -fsSL https://sonub.com/.well-known/skills/claude-skill/scripts/skill-versions.sh -o ~/skill-versions.sh

글로벌과 지금 프로젝트의 스킬 모두
sh ~/skill-versions.sh

글로벌만
sh ~/skill-versions.sh -g

지금 프로젝트(로컬)만 — 그 폴더에서
sh ~/skill-versions.sh -p

claude-skill 을 글로벌로 설치했다면 내려받지 않고 바로
sh ~/.claude/skills/claude-skill/scripts/skill-versions.sh

SKILL   SCOPE    VERSION       INSTALLED (UTC)    UPDATED (UTC)      SOURCE     NEWEST
gp      global   8188561e0e0f  2026-10-18 03:47   2026-10-19 01:32   sonub.com  update → 2c1de455707c
popup   global   de0138a39fa1  2026-10-18 03:47   2026-10-19 01:32   sonub.com  latest
popup   project  de0138a39fa1  2026-10-19 01:36*  2026-10-19 01:36*  sonub.com  latest

NEWEST 칸이 latest 면 최신이고, update → … 이면 새 버전이 나왔으니 업데이트하세요. ? 는 받아 온 곳이 답하지 않은 것입니다. 로컬 스킬의 날짜는 SKILL.md 를 쓴 때이고 * 가 붙습니다. 스크립트는 읽기만 하고 아무것도 바꾸지 않으며, Node.js(skills CLI 에도 필요)로 돕니다.

skill-versions.sh 내용 보기
#!/bin/sh
# skill-versions.sh — the version, install date and update date of every agent skill installed with
# the skills CLI (npx skills), and whether a newer version is out. Skills have no version number:
# the version is the first 12 characters of the digest (sha256) the source published.
#
#   sh skill-versions.sh            # global (~/.agents/.skill-lock.json) and this project (./skills-lock.json)
#   sh skill-versions.sh -g         # global only
#   sh skill-versions.sh -p         # this project only — run it in the project folder
#   sh skill-versions.sh --offline  # do not ask the sources for the newest version
#
# Reads only the lock files and the sources' /.well-known/agent-skills/index.json; changes nothing.
# Needs Node.js, which the skills CLI needs anyway. Newer version → npx skills update <name> [-g].

scope=all
online=1
for arg in "$@"; do
  case "$arg" in
    -g|--global) scope=global ;;
    -p|--project) scope=project ;;
    --offline) online=0 ;;
    -h|--help) sed -n '2,12p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;;
    *) echo "unknown option: $arg (try -h)" >&2; exit 2 ;;
  esac
done

command -v node >/dev/null 2>&1 || { echo "Node.js is needed (the skills CLI needs it too)" >&2; exit 1; }

SCOPE="$scope" ONLINE="$online" node - <<'JS'
const fs = require('fs'), os = require('os'), path = require('path');
const { SCOPE, ONLINE } = process.env;

const lists = [];
if (SCOPE !== 'project') lists.push(['global', path.join(os.homedir(), '.agents', '.skill-lock.json'), os.homedir()]);
if (SCOPE !== 'global') lists.push(['project', path.resolve('skills-lock.json'), process.cwd()]);

const short = (d) => (d || '').replace(/^sha256:/, '').slice(0, 12);
const day = (t) => (t ? t.slice(0, 16).replace('T', ' ') : '');

// The project lock file has no dates — fall back to when SKILL.md was written (marked with *).
function fileDate(base, name) {
  for (const dir of ['.agents/skills', '.claude/skills']) {
    try { return fs.statSync(path.join(base, dir, name, 'SKILL.md')).mtime.toISOString(); } catch {}
  }
  return '';
}

async function newest(base, cache) {
  if (!(base in cache)) {
    cache[base] = fetch(new URL('/.well-known/agent-skills/index.json', base), { signal: AbortSignal.timeout(10000) })
      .then((r) => (r.ok ? r.json() : null))
      .then((j) => Object.fromEntries((j?.skills || []).map((s) => [s.name, short(s.digest)])))
      .catch(() => null);
  }
  return cache[base];
}

(async () => {
  const rows = [], cache = {};
  for (const [scope, file, base] of lists) {
    let skills;
    try { skills = JSON.parse(fs.readFileSync(file, 'utf8')).skills || {}; } catch { continue; }
    for (const [name, s] of Object.entries(skills)) {
      const version = short(s.wellKnownDigest || s.computedHash || s.skillFolderHash) || '-';
      let installed = day(s.installedAt), updated = day(s.updatedAt);
      if (!installed) installed = updated = day(fileDate(base, name)) + '*';
      let status = '';
      if (ONLINE === '1') {
        const site = s.sourceType === 'well-known' && (s.sourceBaseUrl || s.sourceUrl);
        const index = site ? await newest(site, cache) : null;
        const latest = index?.[name];
        status = !site ? '-' : !latest ? '?' : latest === short(s.wellKnownDigest) ? 'latest' : `update → ${latest}`;
      }
      rows.push([name, scope, version, installed, updated, s.source || '-', status]);
    }
  }
  if (!rows.length) { console.log('No skills installed with the skills CLI here (no lock file).'); return; }
  const head = ['SKILL', 'SCOPE', 'VERSION', 'INSTALLED (UTC)', 'UPDATED (UTC)', 'SOURCE', ONLINE === '1' ? 'NEWEST' : ''];
  const all = [head, ...rows];
  const width = head.map((_, i) => Math.max(...all.map((r) => r[i].length)));
  for (const r of all) console.log(r.map((c, i) => c.padEnd(width[i])).join('  ').trimEnd());
  if (rows.some((r) => r[3].endsWith('*'))) console.log('* the project lock file keeps no dates — this is when SKILL.md was written');
  if (rows.some((r) => r[6].startsWith('update'))) console.log('Newer version out → npx skills update <skill> (-g for global)');
})();
JS

경로 — 설치된 곳·받아 온 곳·원본

  • 설치된 곳 — npx skills ls 에 나오는 경로(예: ~/.agents/skills/gp)
  • 받아 온 곳 — 기록 파일의 sourceUrl(예: https://sonub.com/.well-known/agent-skills/gp.tar.gz)
  • 원본 — 스킬을 만든 곳(SONUB 스킬은 sonub.com 이 내주는 원본). 설치된 폴더를 고치면 다음 업데이트 때 덮어써지니, 바꿀 것은 원본에서 고칩니다.

업데이트와 삭제

gp 한 스킬만 최신으로(글로벌)
npx skills update gp -g

글로벌 스킬 모두 최신으로
npx skills update -g

지금 프로젝트의 스킬 모두 최신으로
npx skills update -p

gp 지우기(글로벌 — 먼저 묻습니다. -y 를 붙이면 묻지 않음)
npx skills rm gp -g

지금 프로젝트의 gp 지우기
npx skills rm gp

Claude Code 연결만 끊기(다른 에이전트는 그대로)
npx skills rm gp -g -a claude-code

업데이트는 digest 가 바뀐 스킬만 다시 받습니다. 끝나면 에이전트의 새 세션을 열고 skill-versions.sh 를 다시 돌려 VERSION 이 NEWEST 와 같은지 봅니다. 지운 스킬은 npx skills add https://sonub.com -s gp -g 로 다시 설치합니다.

스킬

스킬은 에이전트가 읽는 지침 SKILL.md 와 작은 도구가 든 표준 폴더입니다. 가입할 것이 없고 MIT 라이선스입니다.

gp

나의 모든 일감을 GitHub Project 보드에서

평소 말로 부탁하면 에이전트가 gh CLI 로 GitHub Project 보드를 관리하고, 결과를 다시 읽어 확인합니다.

  • 이슈: 만들기·고치기·칸 옮기기·닫기·다시 열기·댓글
  • 칸반 컬럼: 더하기·이름 바꾸기(카드는 그대로)·순서·색
  • 이슈에 스크린샷·동영상 첨부
  • 이슈 안의 TODO 체크리스트와 진행률
  • 담당자 지정, 보드 멤버 초대·목록·내보내기
  • /gp init <보드 주소> 로 프로젝트마다 보드 하나

이렇게 말해 보세요

  • “내 일 보여 줘”
  • “12번을 Review 로 옮겨”
  • “TODO 에 ‘문서 고치기’ 추가해”
  • “맨 앞에 Urgent 칸 만들어”

따라 해 보기: gp 스킬로 일감 관리하기

gp 는 SONUB 가 만든 로, 나의 모든 일감을 Project 보드에서 관리해요. 이런 일을 평소 말로 부탁하면 가 GitHub (gh)로 처리하고, 결과를 다시 읽어 확인해요.

  • 이슈 만들기·고치기·닫기, 이미지 첨부
  • TODO 체크리스트
  • 칸반 칸 만들기·이름 바꾸기
  • 담당자 지정

스킬 폴더에는 위에서 본 부분이 그대로 들어 있어요. SKILL.md, 실제 일을 하는 스크립트(scripts/gp.py), 필요할 때만 읽는 참고 파일이에요.

  1. 준비: github.com/signup 에서 무료 GitHub 계정을 만들고 gh 를 설치하세요. 로그인은 에이전트가 gh auth login 으로 도와줘요.
  2. 설치: 아래 한 줄을 터미널에 입력하세요(Node.js 가 필요해요). 내 컴퓨터의 에이전트 — Claude Code·Codex·Gemini CLI 등 — 에 gp 가 설치돼요.
  3. 처음 한 번: "gp 설정해 줘"라고 말하세요. 에이전트가 gp 의 doctor 명령으로 점검하고, 내 보드 하나를 고르거나 새로 만들어요.
  4. 평소 말로 부탁하세요: "이슈 만들어: 로그인 버튼이 안 눌려, 이 스크린샷 첨부해", "Done 으로 옮겨", "Review 칸 만들어", "내 일 보여 줘".
# 1) install the gp skill — Claude Code, Codex, Gemini CLI, Copilot CLI ...
npx skills add https://sonub.com -s gp -g
#   -g: for every project (leave it out for this project only)

# 2) once: log in to GitHub with the board permissions
gh auth login
gh auth refresh -s project,repo

# 3) then just ask the agent:
# "Set up gp and show my GitHub projects."
# "Make an issue: the login button does nothing. Attach shot.png. TODO: reproduce, fix, test."
# "Move it to In Progress."   "Add a Review column."   "Done!"   "What's on my plate?"

무료 GitHub 계정, gh CLI, Python 3.8 이상이 필요합니다.

이 스킬만 설치

npx skills add https://sonub.com -s gp

claude-skill

Claude Code 를 배우고 더 잘 쓰기

Claude Code 는 거의 날마다 새 버전이 나옵니다. 이 스킬은 순서대로 가르치고, 지금의 공식 문서로 답하고, 내 설정을 점검하고, 새 기능을 모두 요약합니다.

  • 내 프로젝트에서 하는 실습과 확인 질문이 있는 14개 레슨
  • 퀴즈와 저장되는 진도
  • 공식 문서로 확인한 답과 그 링크
  • CHANGELOG 의 모든 새 기능을 주제별로 요약
  • 설정·CLAUDE.md·스킬·플러그인·MCP 를 보는 설정 점검(doctor)
  • /claude-skill update 가 새로 나온 기능을 스킬에 더합니다

이렇게 말해 보세요

  • “다음 레슨”
  • “파일을 고칠 때마다 prettier 를 돌리는 훅은 어떻게 만들어?”
  • “내 설정 점검해 줘”
  • “퀴즈 내 줘”

Python 3.8 이상과 인터넷 연결이 필요합니다(공식 문서를 읽습니다).

이 스킬만 설치

npx skills add https://sonub.com -s claude-skill

popup

어려운 낱말을 읽는 그 자리에서 설명

프로젝트의 어느 페이지·문서든 전문 용어에 마우스를 올리면(휴대폰은 탭) 작은 카드가 뜻·쉬운 설명·예시·소스 코드·“더 알아보기” 링크로 설명합니다.

  • 용어 사전 JSON 하나가 모든 설명의 원본 — 내놓는 모든 언어로
  • 그대로 넣는 popup.js 와 popup.css — 프레임워크도 빌드 단계도 없음
  • 본문의 용어는 스스로 찾고, 구절·“?” 단추·링크 미리 보기는 직접 표시
  • 키보드, 휴대폰(아래에서 올라오는 시트), 오른쪽에서 왼쪽 언어, 다크 모드
  • 아직 설명이 없는 전문 용어를 문서에서 찾아 주는 점검
  • GitHub 의 README 에는 GLOSSARY.md 와 마우스를 올리면 뜻이 보이는 링크

이렇게 말해 보세요

  • “시작하기 페이지에 용어 팝업 달아 줘”
  • “토큰·샘플링·온도를 마우스를 올리면 설명해 줘”
  • “README 를 처음 배우는 사람도 읽기 쉽게”
  • “문서에서 아직 설명이 필요한 낱말은?”

도구는 Python 3.8 이상이 필요합니다. 팝업은 최신 브라우저 어디서나 돌아갑니다.

이 스킬만 설치

npx skills add https://sonub.com -s popup

자주 묻는 질문

에이전트 스킬이 뭔가요?

AI 에이전트에게 어떤 일을 언제·어떻게 할지 알려 주는 SKILL.md 파일과, 그 일에 필요한 스크립트·메모가 든 폴더입니다. 열린 표준(agentskills.io)이라 같은 폴더를 여러 에이전트에서 씁니다.

모든 프로젝트에, 아니면 이 프로젝트에만?

-g 가 없으면 지금 있는 프로젝트 안(예: .claude/skills/·.agents/skills/)에 설치되고, 커밋하면 팀도 같이 씁니다. -g 를 붙이면 홈 폴더에 한 번 설치해 모든 프로젝트에서 씁니다.

어떤 에이전트에서 되나요?

Claude Code·Codex·Gemini CLI·GitHub Copilot CLI·Cursor 와 skills 도구가 아는 다른 에이전트에서 됩니다. 어느 에이전트에 넣을지 묻고, -a 로 하나를 지정할 수도 있습니다.

무료인가요? 내 데이터는 어디로 가나요?

무료이고 MIT 라이선스입니다. 스킬은 내 컴퓨터에서 내 도구로 돌아갑니다 — gp 는 내 gh 로그인으로 GitHub 와만 이야기하고, claude-skill 은 공개된 Claude Code 문서를 읽고, popup 은 내 파일에서 일합니다. sonub.com 은 스킬 파일을 내줄 뿐입니다.

설치했는데 보이지 않아요.

에이전트의 새 세션을 시작하세요 — 시작할 때 스킬 폴더를 읽습니다. Claude Code 에서는 /gp 처럼 빗금과 스킬 이름을 입력해도 됩니다.

수업으로 배우기 — AI 과정 Agent Skills 챕터