skill
skill은 클로드에게 어떠한 리퀘스트를 주면 어떠한 절차에 따라서 그 해당하는일을 어떻게 처리를 하게 할 수 있는 기능입니다.
똑같은 일을 똑같이 처리를 하는 기능.
여러가지 조사를 하지않고 제시해주는 방향으로만 가게함.
워크 탬플릿처럼 동작하여 여러사람이 사용이 가능함.
오토메팅한 워크플로우대로 동작을 시키는 것도 가능함.
hook과의 차이점은
- skill : claude가 판단하여 해당하는 스킬을 사용하여야하겠다 라는 판단이 들어서고 해당하는 스킬을 가져와서 사용함 "이 작업을 어떻게 하는지"에 대한 지식/절차를 담는 용도에 가까움
- hook : claude의 판단이 개입되지않음 특정한 작업이 들어왔을때 무조건적으로 실행함 "무조건 이렇게 해야 한다/하면 안 된다"는 규칙을 강제하는 용도
SKILL.md의 구성
맨위는 YAML Frontmatter로 이루어짐
name : command name
description : when and how to use it
invocation controls : manual vs automatic
allowed tools
그리고 스킬에 대한 설명으로 이루어짐.
스킬 작성법
먼저 알아둬야 하는게 스킬은 학습하지 않습니다. 매번 같은 파일을 읽는 고정 지침서일 뿐입니다. 그래서 스킬에 무언가를 학습시키고 싶으면 두 조각으로 쪼개야 합니다. 명령어가 자료를 읽고 참고 파일을 갱신하는 추출 역할을 하고 스킬은 그 참고 파일을 읽어서 따르는 적용 역할만 합니다.
스킬은 Progressive Disclosure라고 해서 3단계로 나눠서 읽힙니다.
- frontmatter : 항상 컨텍스트에 들어감
SKILL.md본문 : 트리거될 때 읽힘references/,scripts/: 본문이 지시할 때만 읽힘
그래서 본문에 다 쓰면 안됩니다. 본문에는 워크플로우만 두고 상세 내용은 references/로 분리해야 합니다.
description이 트리거의 전부입니다. 본문에 "이럴 때 써라"를 아무리 써도 소용없는데, 본문은 트리거된 다음에야 읽히기 때문입니다. 단 클로드는 스킬을 과소 트리거하는 경향이 있어서 description을 약간 밀어붙이게 써야 합니다.
글쓰기 스타일을 정하는 스킬의 경우 "하지 마라" 목록이 "해라" 목록보다 중요합니다. AI 티는 대부분 특정 패턴 때문에 나기 때문에 그 패턴을 막는게 먼저입니다.