using-user-skills

star 0

유저 개인 스킬을 만들고 사용하는 법. MANAGE_SKILL 모델 커맨드로 create/update/delete/list 하고 $user:name 으로 호출. 저장은 DATA_DIR/{userId}/skills/{name}/SKILL.md 로 멀티테넌트 격리.

2lab-ai By 2lab-ai schedule Updated 6/11/2026

name: using-user-skills description: 유저 개인 스킬을 만들고 사용하는 법. MANAGE_SKILL 모델 커맨드로 create/update/delete/list 하고 $user:name 으로 호출. 저장은 DATA_DIR/{userId}/skills/{name}/SKILL.md 로 멀티테넌트 격리.

using-user-skills

만들기 (한 번)

mcp__model-command__runMANAGE_SKILL 로 호출.

{
  "commandId": "MANAGE_SKILL",
  "params": {
    "action": "create",
    "name": "<kebab-case>",
    "content": "<SKILL.md 전체 본문 — frontmatter 포함>"
  }
}

content 에 들어갈 SKILL.md 전체 형식:

---
name: <kebab-case>
description: 한 줄. 트리거 조건 + 행동을 한 문장으로.
---

<본문 — 모델이 따라야 할 지시>

호출

Slack 에서 $user:<name> 로 트리거. 호스트가 해당 스킬 본문을 다음 턴 프롬프트에 주입한다.

다른 액션

action params
list 없음 — 본인의 스킬 목록 반환
update name, content (전체 본문 교체)
delete name

함정

  • description 값에 작은따옴표 / 큰따옴표 / 줄바꿈 금지. 호스트의 extractDescription 정규식이 첫 따옴표·줄바꿈에서 끊긴다. 끊기면 list 결과에 description 이 빈 문자열로 뜬다 — 발견 즉시 update 로 교체.
  • 이름은 kebab-case. ^[a-z0-9][a-z0-9-]*$ 만 통과. 대문자·언더스코어·점 불가.
  • 유저 격리. 다른 유저의 스킬은 보이지 않고, 그쪽에서도 내 스킬을 못 부른다.

예: "a 라고만 답하는 스킬"

{
  "commandId": "MANAGE_SKILL",
  "params": {
    "action": "create",
    "name": "a",
    "content": "---\nname: a\ndescription: Triggered by $user:a. Reply must be exactly the lowercase letter a and nothing else.\n---\n\nOutput exactly one character: a\n\nNo formatting. No quoting. One letter. Then stop."
  }
}

호출: $user:a → 응답: a

Install via CLI
npx skills add https://github.com/2lab-ai/soma-work --skill using-user-skills
Repository Details
star Stars 0
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator