# Skill

현재 대화 내에서 명명된 스킬을 호출합니다. 스킬은 사전 패키지된 기능 번들 — 도메인 지식, 워크플로, 때로는 도구 접근 — 이며 하니스가 시스템 알림을 통해 어시스턴트에게 노출합니다.

## 사용 시점

- 사용자가 `/review`나 `/init`과 같은 슬래시 명령을 입력합니다 — 슬래시 명령은 스킬이며 이 도구를 통해 실행되어야 합니다.
- 사용자가 광고된 스킬의 트리거 조건과 일치하는 작업을 설명합니다 (예: 반복적인 권한 프롬프트에 대한 기록을 스캔하도록 요청하는 것은 `fewer-permission-prompts`와 일치).
- 스킬의 명시된 목적이 현재 파일, 요청, 또는 대화 컨텍스트와 직접 일치합니다.
- 전문화되고 반복 가능한 워크플로가 스킬로 제공되며, 임시 접근 방식보다 표준 절차가 선호됩니다.
- 사용자가 "어떤 스킬을 사용할 수 있나요"라고 묻습니다 — 광고된 이름을 나열하고 확인할 때만 호출하십시오.

## 매개변수

- `skill` (string, 필수): 현재 available-skills 시스템 알림에 나열된 스킬의 정확한 이름. 플러그인 네임스페이스 스킬의 경우 정규화된 `plugin:skill` 형식을 사용하십시오 (예: `skill-creator:skill-creator`). 앞에 슬래시를 포함하지 마십시오.
- `args` (string, 선택): 스킬에 전달되는 자유 형식 인수. 형식과 의미는 각 스킬의 자체 문서에 의해 정의됩니다.

## 예시

### 예시 1: 현재 브랜치에서 리뷰 스킬 실행

```
Skill(skill="review")
```

`review` 스킬은 현재 기본 브랜치에 대해 풀 리퀘스트를 리뷰하는 단계를 패키지화합니다. 호출하면 하니스 정의 리뷰 절차가 턴에 로드됩니다.

### 예시 2: 인수가 있는 플러그인 네임스페이스 스킬 호출

```
Skill(
  skill="skill-creator:skill-creator",
  args="create a skill that summarizes git log for a given date range"
)
```

오쳐링 워크플로가 시작되도록 `skill-creator` 플러그인의 진입점을 통해 요청을 라우팅합니다.

## 참고사항

- 이름이 available-skills 시스템 알림에 그대로 나타나거나 사용자가 메시지에서 직접 `/name`으로 입력한 스킬만 호출하십시오. 메모리나 학습 데이터에서 스킬 이름을 추측하거나 발명하지 마십시오 — 스킬이 광고되지 않으면 이 도구를 호출하지 마십시오.
- 사용자의 요청이 광고된 스킬과 일치하면 `Skill` 호출은 차단 전제 조건입니다: 작업에 대한 다른 응답을 생성하기 전에 호출하십시오. 스킬이 무엇을 할지 설명하지 마십시오 — 실행하십시오.
- 실제로 호출하지 않고 스킬을 이름으로 언급하지 마십시오. 도구를 호출하지 않고 스킬을 발표하는 것은 오해의 소지가 있습니다.
- `/help`, `/clear`, `/model`, `/exit`와 같은 내장 CLI 명령에 `Skill`을 사용하지 마십시오. 이들은 하니스에 의해 직접 처리됩니다.
- 현재 턴에서 이미 실행 중인 스킬을 다시 호출하지 마십시오. 현재 턴에서 `<command-name>` 태그를 보면 스킬이 이미 로드되었습니다 — 도구를 다시 호출하는 대신 지시사항을 그대로 따르십시오.
- 여러 스킬이 적용될 수 있다면 가장 구체적인 것을 선택하십시오. 권한이나 후크 추가와 같은 구성 변경의 경우 일반 설정 접근 방식보다 `update-config`를 선호하십시오.
- 스킬 실행은 턴의 나머지 동안 새로운 시스템 알림, 도구, 또는 제약 조건을 도입할 수 있습니다. 스킬이 완료된 후 진행하기 전에 대화 상태를 다시 읽으십시오.
