summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/ko/skills.mdx
blob: 03ec9c75a4a328a570d49af263cb5c0fc3ff0e9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
---
title: "에이전트 스킬"
description: "SKILL.md 정의를 통해 재사용 가능한 동작을 정의합니다."
---

Agent Skill let opencode discover reusable instruction from your repo 또는 홈 디렉토리.
Skills are loaded on-demand via native `skill` tool-agents see available skills and can loaded full content when needed.

---

## 파일 위치

기술 이름 당 하나의 폴더를 만들고 내부 `SKILL.md`를 넣어.
opencode 이 위치를 검색:

- 프로젝트 구성: `.opencode/skills/<name>/SKILL.md`
- 글로벌 구성: `~/.config/opencode/skills/<name>/SKILL.md`
- 프로젝트 클로드 호환 : `.claude/skills/<name>/SKILL.md`
- 글로벌 클로드 호환 : `~/.claude/skills/<name>/SKILL.md`
- 프로젝트 에이전트 호환 : `.agents/skills/<name>/SKILL.md`
- 글로벌 에이전트 호환 : `~/.agents/skills/<name>/SKILL.md`

---

## 검색 이해

Project-local paths의 경우, opencode는 git worktree에 도달 할 때까지 현재 작업 디렉토리에서 걷습니다.
그것은 `skills/*/SKILL.md`에 있는 어떤 어울리는 `.opencode/` 및 어떤 어울리는 `.claude/skills/*/SKILL.md` 또는 `.agents/skills/*/SKILL.md`를 방법 적재합니다.

세계적인 정의는 또한 `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` 및 `~/.agents/skills/*/SKILL.md`에서 적재됩니다.

---

## Frontmatter 작성

각 `SKILL.md`는 YAML frontmatter로 시작해야 합니다.
이 필드는 인식됩니다:

- `name` (필수)
- `description` (필수)
- (선택) `license`
- (선택) `compatibility`
- `metadata` (선택 사항, 문자열에 문자열 맵)

알려진 frontmatter 필드는 무시됩니다.

---

## 유효한 이름

`name`는 해야 합니다:

- 1–64자
- 단 하나 hyphen 분리기를 가진 더 낮은 케이스 alphanumeric가 있으십시오
- `-`로 시작 또는 끝 아닙니다
- 연속 `--` 포함하지
- `SKILL.md`를 포함하는 디렉토리 이름을 일치

동등한 regex:

```text
^[a-z0-9]+(-[a-z0-9]+)*$
```

---

## 길이 규칙 준수

`description`는 1-1024 특성이어야 합니다.
제대로 선택하기 위해 에이전트에 대해 충분히 유지하십시오.

---

## 사용 예제

이처럼 `.opencode/skills/git-release/SKILL.md` 만들기:

```markdown
---
name: git-release
description: Create consistent releases and changelogs
license: MIT
compatibility: opencode
metadata:
  audience: maintainers
  workflow: github
---

## What I do

- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command

## When to use me

Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.
```

---

## 도구 설명 인식

opencode는 `skill` 도구 설명에서 사용할 수있는 기술을 나열합니다.
각 항목에는 기술 이름 및 설명이 포함됩니다.

```xml
<available_skills>
  <skill>
    <name>git-release</name>
    <description>Create consistent releases and changelogs</description>
  </skill>
</available_skills>
```

에이전트는 도구를 호출하여 기술을로드 :

```
skill({ name: "git-release" })
```

---

## 권한 구성

기술 에이전트가 `opencode.json`의 패턴 기반 권한을 사용하여 액세스 할 수있는 제어 :

```json
{
  "permission": {
    "skill": {
      "*": "allow",
      "pr-review": "allow",
      "internal-*": "deny",
      "experimental-*": "ask"
    }
  }
}
```

| 권한    | 동작                              |
| ------- | --------------------------------- |
| `allow` | 기술이 즉시 로드됨                |
| `deny`  | 에이전트에서 기술 숨김, 접근 거부 |
| `ask`   | 로드 전에 사용자에게 승인 요청    |

패턴 지원 와일드 카드: `internal-*` 경기 `internal-docs`, `internal-tools`, 등.

---

## 에이전트별 재정의

글로벌 디폴트보다 특정 에이전트 다른 권한을 부여합니다.

**사용자 지정 에이전트 ** ( 에이전트 frontmatter):

```yaml
---
permission:
  skill:
    "documents-*": "allow"
---
```

** 내장 에이전트 ** (`opencode.json`에서):

```json
{
  "agent": {
    "plan": {
      "permission": {
        "skill": {
          "internal-*": "allow"
        }
      }
    }
  }
}
```

---

## 스킬 도구 비활성화

그들을 사용하지 않는 에이전트을위한 완전히 비활성화 된 기술 :

**사용자 지정 에이전트**:

```yaml
---
tools:
  skill: false
---
```

** 내장 에이전트 **:

```json
{
  "agent": {
    "plan": {
      "tools": {
        "skill": false
      }
    }
  }
}
```

비활성화 할 때, `<available_skills>` 섹션은 완전히 부유합니다.

---

## 로딩 문제 해결

기술이 나타나지 않는 경우:

1. `SKILL.md`는 모든 모자에서 spelled
2. `name`와 `description`를 포함하는 검사
3. 기술 이름은 모든 위치에서 독특합니다.
4. `deny`를 가진 허가를 검사하십시오 에이전트에서 숨겨집니다