Agent Skills (에이전트 스킬)
스킬(Skills)은 에이전트 기능을 확장하기 위한 오픈 표준입니다. 스킬은 에이전트가 특정 작업을 수행할 때 따를 수 있는 지시사항이 담긴 SKILL.md 파일을 포함하는 폴더입니다. 이 튜토리얼에서는 공식 문서를 기반으로 Skills의 모든 것을 설명하고, 데이터 수집/분석 사례를 통해 실전 활용법을 안내합니다.
Agent Skills란? 공식 문서 #
SKILL.md 파일을 포함하는 폴더입니다.
스킬은 에이전트가 할 수 있는 것을 확장하는 재사용 가능한 지식 패키지입니다. 각 스킬은 다음을 포함합니다: 공식 문서
- 지시사항 — 특정 유형의 작업에 어떻게 접근할지에 대한 안내
- 모범 사례와 규칙 — 따라야 할 베스트 프랙티스와 컨벤션
- 스크립트와 리소스 (선택) — 에이전트가 사용할 수 있는 스크립트와 리소스
대화를 시작하면, 에이전트는 사용 가능한 스킬 목록(이름과 설명)을 확인합니다. 스킬이 현재 작업과 관련 있어 보이면, 에이전트는 전체 지시사항을 읽고 그에 따라 작업을 수행합니다. 공식 문서
Skills는 "EDA를 할 때 이런 순서로 분석하고 이런 차트를 그려라"처럼 전문 지식을 제공합니다.
즉, Rules는 "어떻게(How)" Skills는 "무엇을(What)" 알려주는 것입니다.
Skills vs Rules 차이 Rules & Workflows
| 구분 | Rules (규칙) | Skills (스킬) |
|---|---|---|
| 적용 시점 | 설정에 따라 항상 또는 조건부 적용 (4가지 모드) | 관련 작업이 감지될 때만 활성화 |
| 성격 | 지속적인 제약, 전역 규칙 | 재사용 가능한 지식 패키지 |
| 데이터 분석 예시 | "항상 UTF-8 인코딩을 사용해" "CSV 저장 시 BOM 없이 저장해" | "크롤링할 때 이 단계를 따라" "EDA 수행 시 이 체크리스트를 적용해" |
| 비유 | 회사의 사규 (항상 지켜야 할 것) | 업무 매뉴얼 (특정 작업 시 참고) |
스킬 저장 위치 공식 문서 #
공식 문서에 따르면, 스킬은 두 가지 위치에 저장할 수 있습니다: 공식 문서
| 위치 | 범위 |
|---|---|
<workspace-root>/.agents/skills/<skill-folder>/ | 워크스페이스 전용 |
~/.gemini/antigravity/skills/<skill-folder>/ | 글로벌 (모든 워크스페이스) |
워크스페이스 스킬
프로젝트별 워크플로에 적합합니다. 예를 들어 팀의 배포 프로세스, 테스트 컨벤션, 또는 "이커머스 고객 데이터 전처리"나 "센서 데이터 정제" 같은 프로젝트별 데이터 처리 절차를 정의하기 좋습니다. Git으로 팀원과 공유됩니다.
<workspace-root>/.agents/skills/<스킬폴더>/
글로벌 스킬
모든 프로젝트에서 사용 가능합니다. 개인 유틸리티나 어디서든 사용하고 싶은 범용 도구에 적합합니다. "EDA 분석", "기본 시각화", "통계 검정" 같은 공통 분석 스킬이 여기에 해당됩니다.
~/.gemini/antigravity/skills/<스킬폴더>/
.agents/skills를 기본으로 사용하지만, .agent/skills (단수형)에 대한 하위 호환성도 유지하고 있습니다. 새 프로젝트에서는 .agents/skills/ (복수형)을 사용하세요.
공식 문서
~/.gemini/antigravity/skills/)과 워크스페이스(.agents/skills/) 양쪽에 존재하면 워크스페이스 스킬이 우선합니다. 이를 이용하여 팀 프로젝트에서 전사 공통 글로벌 스킬을 프로젝트별로 오버라이드할 수 있습니다. 단, 의도치 않게 같은 이름을 쓰면 글로벌 스킬이 무시될 수 있으니 이름 중복을 주의하세요.
스킬 만들기 공식 문서 #
공식 문서에 따른 스킬 생성 절차입니다. 모든 스킬에는 상단에 YAML frontmatter가 있는 SKILL.md 파일이 필요합니다. 공식 문서
- 스킬 디렉토리 중 하나에 폴더를 생성합니다. (예:
.agents/skills/eda-analysis/) - 해당 폴더 안에
SKILL.md파일을 추가합니다. - YAML frontmatter를 파일 최상단에 작성합니다 — 모든 스킬에는 frontmatter가 필요합니다.
.agents/skills/data-summary/SKILL.md에 저장하면 바로 사용할 수 있는 스킬이 됩니다. 공식 포맷은 name과 description 필드를 사용합니다. description이 에이전트가 이 스킬을 자동으로 선택하는 조건입니다.
---
name: data-summary
description: Performs data summary and descriptive statistics on DataFrames. Use when asked to summarize data, show statistics, or describe a dataset.
---
# 데이터 요약 스킬
데이터프레임 요약 요청 시 아래 순서로 분석합니다:
1. `df.shape`로 행/열 수 확인
2. `df.dtypes`로 데이터 타입 확인
3. `df.describe()`로 기술통계 출력
4. 결측치 비율을 백분율로 표시
5. 결과를 한국어 표로 정리
trigger: 필드를 사용하는 예시를 볼 수 있으나, 공식 SKILL.md 포맷에는 trigger 필드가 없습니다. 에이전트가 스킬을 선택하는 조건은 description 필드로 지정합니다.
스킬 생성 검증 체크리스트
| 확인 항목 | 체크 방법 | 흔한 실수 |
|---|---|---|
| 파일 위치 | .agents/skills/이름/SKILL.md 경로 확인 | 폴더 없이 루트에 SKILL.md 생성 |
| Frontmatter | --- 구분선이 파일 맨 위에 2개 있는지 확인 | 구분선 누락 또는 공백 포함 |
| description 필드 | 필수 필드! 3인칭 + 핵심 키워드 포함 | description 필드 자체를 누락 |
| 폴더명 | 소문자, 하이픈 구분 (예: eda-analysis) | 공백이나 대문자 사용 |
| 새 대화 시작 | 스킬 생성/수정 후 새 대화에서 테스트 | 기존 대화에서 테스트하여 반영 안 됨 |
스킬 활성화 매커니즘
사용자의 요청이 어떻게 스킬 활성화로 이어지는지 시각적으로 살펴봅니다. 공식 문서
SKILL.md 기본 구조 공식 문서
---
name: my-data-skill
description: CSV/Excel 데이터에 대해 탐색적 데이터 분석(EDA)을 수행합니다.
결측치 확인, 기술통계, 분포 시각화를 포함합니다.
---
에이전트를 위한 상세 지시사항을 여기에 작성합니다.
## 이 스킬을 사용할 때
- CSV/Excel 데이터를 탐색적으로 분석할 때
- 결측치 처리 방법을 결정해야 할 때
## 사용 방법
단계별 분석 가이드, 코드 예시, 패턴 등을 작성합니다.
## 주의사항
- 원본 데이터를 직접 수정하지 마세요 (복사본 사용)
- 인코딩 문제가 있을 수 있는 한국어 데이터 주의
Frontmatter 필드 공식 문서 #
SKILL.md 맨 위에 위치하는 YAML frontmatter는 에이전트가 스킬을 언제, 어떻게 활성화할지 결정하는 핵심 메타데이터입니다. frontmatter가 없거나 description이 비어 있으면 에이전트가 스킬을 인식하지 못해 자동 활성화가 전혀 이루어지지 않습니다. 스킬 파일을 만든 뒤 가장 먼저 채워야 할 항목입니다. 공식 문서
description은 필수 필드입니다: description이 없으면 에이전트가 스킬 목록을 스캔할 때 해당 스킬을 건너뜁니다. SKILL.md를 만든 직후 description을 작성하는 것을 습관화하세요. 나중에 추가하려다 잊어버리는 경우가 많습니다.
| 필드 | 필수 여부 | 설명 | 예시 |
|---|---|---|---|
name |
선택 | 스킬의 고유 식별자 (소문자, 공백 대신 하이픈 사용). 제공하지 않으면 폴더 이름이 기본값으로 사용됩니다. | name: eda-analysis |
description |
필수 | 스킬이 무엇을 하고 언제 사용해야 하는지에 대한 명확한 설명. 에이전트가 스킬 적용 여부를 결정할 때 보는 텍스트. 3인칭으로, 키워드 중심으로 작성하세요. | description: CSV/Excel 데이터에 대해 EDA를 수행합니다. 결측치, 기술통계, 분포 시각화를 포함합니다. |
version |
선택 | 스킬 버전. 팀에서 스킬을 공유하거나 업데이트를 추적할 때 유용합니다. | version: 1.2.0 |
tags |
선택 | 스킬 분류를 위한 태그 목록. 검색 및 정리에 도움이 됩니다. | tags: [data, analysis, eda] |
author |
선택 | 스킬 작성자. 팀 환경에서 책임자 파악 용도. | author: data-team |
---
name: eda-analysis
description: CSV/Excel 데이터에 대해 탐색적 데이터 분석(EDA)을 수행합니다.
결측치 확인, 기술통계, 분포 시각화, 상관관계 분석을 포함합니다.
데이터 분석, EDA, 탐색, 통계 요약, 데이터 프로파일링 요청 시 활성화됩니다.
version: 2.0.0
tags: [data, eda, statistics, visualization]
author: data-team
---
## 스킬 지시사항
(여기서부터 에이전트를 위한 실제 지시사항 작성)
|로 연결합니다. 예: "시각화|차트|그래프|plot|visualization". 한국어와 영어를 모두 포함하면 더 넓은 범위에서 자동 매칭됩니다.
좋은 description vs 나쁜 description
description은 에이전트가 "이 스킬을 활성화할지 말지"를 판단하는 핵심 기준입니다. 공식 문서
좋은 description
CSV 파일에서 데이터를 로드하고 기본 탐색적 데이터 분석(EDA)을 수행합니다. 결측치 확인, 기술통계, 분포 시각화를 포함합니다.
3인칭으로 작성되었고, 핵심 키워드(CSV, EDA, 결측치, 기술통계, 시각화)가 포함되어 에이전트가 관련 요청을 정확히 매칭합니다.
나쁜 description
데이터 관련 작업
너무 모호합니다. "데이터"라는 단어가 포함된 모든 대화에서 활성화될 수 있고, 정작 필요한 순간에 다른 스킬과 충돌할 수 있습니다.
스킬 폴더 구조 공식 문서 #
공식 문서에 따르면, SKILL.md가 유일한 필수 파일이지만, 추가 리소스를 포함할 수 있습니다. 에이전트는 스킬의 지시사항을 따를 때 이 파일들을 읽을 수 있습니다. 공식 문서
my-skill/
├── SKILL.md # 필수: 메타데이터와 지시사항
├── scripts/ # 선택: Python 또는 Bash 스크립트
├── references/ # 선택: 텍스트, 문서, 템플릿
└── assets/ # 선택: 이미지 또는 로고
.agents/skills/eda-analysis/
├── SKILL.md # 필수: 분석 절차와 지시사항
├── scripts/
│ ├── validate_data.py # 데이터 검증 스크립트
│ └── generate_profile.py # 데이터 프로파일링 자동화
├── references/
│ ├── sample_eda.ipynb # 참고용 EDA 노트북
│ └── data-schema.md # 데이터 스키마 문서
└── assets/
└── report_template.md # 분석 리포트 양식
scripts/, references/, assets/입니다. examples/나 templates/ 같은 이름도 동작하지만, 공식 컨벤션을 따르면 다른 사람이 만든 스킬과 일관성을 유지할 수 있습니다.
에이전트가 스킬을 사용하는 방법 (Progressive Disclosure) 공식 문서 #
공식 문서에 따르면, 에이전트는 3단계의 Progressive Disclosure(점진적 공개) 패턴으로 스킬을 사용합니다: 공식 문서
- 발견 (Discovery) — 대화가 시작되면, 에이전트는 사용 가능한 스킬의 이름과 설명(description) 목록을 확인합니다.
- 활성화 (Activation) — 스킬이 현재 작업과 관련 있어 보이면, 에이전트는 SKILL.md의 전체 내용을 읽습니다.
- 실행 (Execution) — 에이전트는 스킬의 지시사항을 따라 작업을 수행합니다.
Progressive Disclosure 단계별 세부 동작
| 단계 | 트리거 | 에이전트가 읽는 것 | 토큰 소비 | SKILL.md 작성 팁 |
|---|---|---|---|---|
| 1. 발견 | 모든 대화 시작 시 자동 | name + description 필드만 |
매우 적음 | description을 키워드 중심으로 간결하게 작성 (3인칭, 1~2문장) |
| 2. 활성화 | 대화 내용이 스킬과 관련성 있다고 판단될 때 | SKILL.md 전체 내용 | 중간 | SKILL.md를 간결하게 유지. 긴 스크립트는 별도 파일로 분리 |
| 3. 실행 | 스킬 지시사항에 따라 작업 시작 | 외부 파일, 스크립트, 데이터 등 필요한 것 모두 | 높음 (작업량) | 단계별 명확한 지시, 의사결정 트리 포함으로 불필요한 반복 줄이기 |
description은 에이전트가 "이 스킬을 쓸까?"를 결정하는 유일한 기준입니다. 스킬이 제대로 활성화되지 않는다면 description을 먼저 점검하세요. "Python 코드에 대해 pytest를 사용하여 단위 테스트를 생성합니다" 같이 구체적인 키워드를 포함해야 합니다.
모범 사례 (공식) 공식 문서 #
공식 문서에서 권장하는 스킬 작성 모범 사례입니다. 이 원칙들을 따르면 에이전트가 스킬을 더 정확하게 감지하고, 일관성 있게 작업을 수행합니다. 공식 문서
1. 스킬을 집중적으로 유지하세요
공식 권장: "각 스킬은 하나의 일을 잘 수행해야 합니다." "EDA + 크롤링 + 시각화 + 통계"를 하나에 넣지 마세요. EDA 스킬, 크롤링 스킬, 시각화 스킬, 통계 분석 스킬로 분리하면 각각 더 정확하게 활성화됩니다. 공식 문서
2. 명확한 설명을 작성하세요
공식 권장: "description은 에이전트가 스킬 사용 여부를 결정하는 기준입니다." 3인칭으로 작성하고, 에이전트가 관련성을 인식하는 데 도움이 되는 키워드를 포함하세요. 예: "Python 코드에 대해 pytest 규칙을 사용하여 유닛 테스트를 생성합니다." 공식 문서
3. 스크립트를 블랙박스로 사용하세요
공식 권장: "에이전트가 소스를 읽기보다 --help를 먼저 실행하도록 권장하세요." 에이전트가 스크립트의 소스 코드를 읽으면 컨텍스트 윈도우를 불필요하게 소모합니다. --help 출력을 기반으로 사용하도록 안내하세요.
공식 문서
4. 의사결정 트리를 포함하세요
공식 권장: "복잡한 스킬에는 에이전트가 올바른 접근 방식을 선택하도록 돕는 섹션을 추가하세요." 데이터 유형별 분석 방법 선택, 차트 유형 선택 등의 분기 로직을 제공하면 에이전트가 상황에 맞게 판단합니다. 공식 문서
데이터 분석에 적용한 공식 모범 사례
| 공식 원칙 | 데이터 분석 적용 예시 |
|---|---|
| 스킬을 집중적으로 | EDA 스킬, 크롤링 스킬, 시각화 스킬, 통계 분석 스킬을 별도로 분리 |
| 명확한 설명 | "CSV/Excel 데이터에 대해 탐색적 데이터 분석(EDA)을 수행합니다. 결측치 확인, 기술통계, 분포 시각화를 포함합니다." |
| 스크립트를 블랙박스로 | validate_data.py, generate_profile.py 등은 --help로 사용법 확인 후 실행 |
| 의사결정 트리 | "숫자형 → 히스토그램, 범주형 → 막대 그래프" 분기 로직 제공 |
실전 예시: EDA(탐색적 데이터 분석) 스킬 공식 문서 #
공식 모범 사례를 적용한 EDA 스킬 예시입니다. CSV나 Excel 파일을 받았을 때 에이전트가 자동으로 체계적인 탐색적 데이터 분석을 수행합니다.
EDA 스킬 SKILL.md 전체 예시
---
name: eda-analysis
description: CSV/Excel 데이터에 대해 탐색적 데이터 분석(EDA)을 수행합니다.
데이터 로딩, 결측치 확인, 기술통계, 분포 시각화, 상관관계 분석을 포함합니다.
---
# EDA (탐색적 데이터 분석) 스킬
CSV 또는 Excel 파일을 받으면 아래 단계를 순서대로 수행하세요.
각 단계의 결과를 사용자에게 설명하고, 발견한 특이사항을 강조하세요.
## 1단계: 데이터 로드
```python
import pandas as pd
df = pd.read_csv('data.csv', encoding='utf-8')
```
## 2단계: 기본 정보 확인
```python
print(f"데이터 크기: {df.shape[0]}행 x {df.shape[1]}열")
print(df.dtypes)
df.head()
```
## 3단계: 결측치 분석
```python
missing = df.isnull().sum()
missing_pct = (missing / len(df) * 100).round(2)
```
## 4단계: 기술통계
```python
print(df.describe())
```
## 5단계: 분포 시각화
```python
import matplotlib.pyplot as plt
import seaborn as sns
sns.histplot(df[col].dropna(), kde=True)
```
## 6단계: 상관관계 분석
```python
corr = df.select_dtypes(include='number').corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
```
## 체크리스트
- [ ] 모든 컬럼의 데이터 타입이 적절한가
- [ ] 결측치 현황을 파악했는가
- [ ] 이상치(outlier)가 있다면 확인했는가
- [ ] 주요 변수의 분포를 시각화했는가
- [ ] 변수 간 상관관계를 확인했는가
실행 시나리오
1단계: 데이터를 로드했습니다. 총 15,240행 x 12열입니다.
2단계: 컬럼 정보 - product_name(object), category(object), price(float64), quantity(int64)...
3단계: 결측치 - category 컬럼에 2.3% (351건)의 결측치가 있습니다.
4단계: 평균 주문 금액 45,200원, 최대 주문 890,000원 (이상치 가능성)...
5단계: [히스토그램] price 분포가 오른쪽으로 치우쳐 있습니다.
6단계: price와 quantity 간 약한 음의 상관관계(r=-0.32) 발견.
EDA 스킬에 오류 처리 추가하기
실제 데이터는 인코딩 오류, 잘못된 파일 경로, 예상치 못한 컬럼 구조 등 다양한 예외 상황이 발생할 수 있습니다. SKILL.md에 오류 처리 지침을 명시하면 에이전트가 이런 상황에서도 올바르게 대응합니다.
## 오류 처리 가이드
### 파일 로드 실패 시
- UnicodeDecodeError: encoding 파라미터를 순서대로 시도 (utf-8 → cp949 → latin1)
```python
for enc in ['utf-8', 'cp949', 'latin1']:
try:
df = pd.read_csv(path, encoding=enc)
break
except UnicodeDecodeError:
continue
```
- FileNotFoundError: 정확한 파일 경로를 사용자에게 확인 요청
- ParserError: sep 파라미터를 확인 (콤마/탭/세미콜론)
### 분석 중 예외 상황
- 숫자 컬럼에 문자열 혼재: pd.to_numeric(errors='coerce')로 변환 후 사용자에게 알림
- 빈 데이터프레임: "파일에 데이터가 없습니다" 메시지 출력 후 중단
- 결측치 100%: "이 컬럼은 모두 비어 있습니다. 분석에서 제외합니다" 안내
### 시각화 실패 시
- 폰트 오류(한글 깨짐): matplotlib 폰트를 NanumGothic 또는 AppleGothic으로 설정
- 메모리 부족: 1,000개 샘플로 시각화 후 전체 데이터는 통계로 보고
실전 예시: 크롤링 스킬 공식 문서 #
공식 모범 사례 "스킬을 집중적으로 유지하세요"와 "의사결정 트리를 포함하세요"를 적용한 웹 크롤링 스킬입니다.
---
name: web-crawling
description: 웹사이트에서 데이터를 수집(크롤링/스크래핑)합니다.
requests와 BeautifulSoup을 사용하며, robots.txt 확인과
rate limiting을 포함한 안전한 크롤링 절차를 따릅니다.
---
# 웹 크롤링/스크래핑 스킬
## 크롤링 전 필수 확인사항
1. **robots.txt 확인** (반드시 먼저 수행)
2. **이용약관 확인**: 크롤링이 금지되어 있는지 사용자에게 알립니다
3. **Rate limiting**: 요청 사이에 최소 1초 대기
## 안티패턴
- robots.txt를 확인하지 않고 크롤링하지 마세요
- 1초 미만 간격으로 요청하지 마세요
- 에러 처리 없이 크롤링하지 마세요 (try/except 필수)
1. robots.txt 확인 완료: /articles/ 경로 크롤링 허용, Crawl-delay: 2초
2. 크롤링 시작: tech-news.com/articles?category=ai 페이지 순회
3. 총 5페이지, 47개 기사 수집 완료 (2초 간격 준수)
4. 결과 저장: ai_articles.csv (컬럼: title, date, url, summary)
- HTTP 오류 처리 — 403 Forbidden은 크롤링 차단 신호입니다. 재시도하지 말고 사용자에게 알리세요.
try/except requests.exceptions.HTTPError를 코드 예시에 포함하세요. - 타임아웃 설정 —
requests.get(url, timeout=10)처럼 타임아웃을 명시하지 않으면 응답 없는 서버에서 에이전트가 무한 대기할 수 있습니다. - 인코딩 자동 감지 — 한국어 사이트는 EUC-KR을 사용하는 경우가 있습니다.
response.encoding = response.apparent_encoding으로 자동 감지하도록 SKILL.md에 명시하세요.
실전 예시: 시각화 스킬 공식 문서 #
공식 모범 사례 "의사결정 트리를 포함하세요"를 적용한 데이터 시각화 스킬입니다. 데이터 유형에 따라 적절한 차트를 선택하는 분기 로직이 핵심입니다.
사용자: "지역별 매출 비교 그래프 그려줘. 지역이 12개야."
에이전트: 파이 차트 생성 → 12개 조각이 겹쳐 판독 불가, 한글 레이블이 □□□로 깨짐
→ 매번 "가로 막대 그래프로, AppleGothic 폰트 설정해서" 라고 지정해야 함
사용자: "지역별 매출 비교 그래프 그려줘. 지역이 12개야."
에이전트: 의사결정 트리 적용 → 범주 12개(>5개) → 가로 막대 그래프 자동 선택, 한글 폰트 자동 설정
→ 차트 유형 선택 + 폰트 설정이 자동화되어 즉시 올바른 결과 출력
---
name: data-visualization
description: 데이터를 matplotlib과 seaborn으로 시각화합니다.
차트 유형 선택 가이드, 스타일 컨벤션, 한글 폰트 설정을 포함합니다.
---
# 데이터 시각화 스킬
## 차트 유형 선택 가이드 (의사결정 트리)
### 변수 1개를 보여주고 싶다면:
- **숫자형** → 히스토그램 또는 박스플롯
- **범주형** → 막대 그래프 (가로 막대 권장 if 범주 > 5)
### 변수 2개의 관계를 보여주고 싶다면:
- **숫자 vs 숫자** → 산점도 (scatter plot)
- **범주 vs 숫자** → 박스플롯 또는 바이올린플롯
### 시간에 따른 변화를 보여주고 싶다면:
- **단일 계열** → 라인 차트
- **여러 계열 비교** → 멀티라인 차트 (최대 5개)
차트 선택 의사결정 트리
의사결정 트리 적용: 범주형(지역) vs 숫자형(매출) → 범주 12개(>5개) → 가로 막대 그래프 선택
한글 폰트 설정 완료 (AppleGothic)
[가로 막대 그래프 생성] 서울 지역이 가장 높은 매출(2.3억), 제주가 최저(4,200만)입니다.
실전 예시: 통계 분석 스킬 공식 문서 #
가설 검정이 필요한 상황에서 적절한 통계 방법을 선택하고, 결과를 올바르게 해석하도록 안내하는 스킬입니다. 공식 모범 사례의 "의사결정 트리"가 핵심입니다.
---
name: stat-analysis
description: 통계적 가설 검정을 수행합니다. t-test, chi-square test,
ANOVA 등의 선택 기준과 p-value 해석, 결과 보고 형식을 포함합니다.
---
# 통계 분석 스킬
## 검정 방법 선택 가이드 (의사결정 트리)
### 두 그룹의 평균 비교
- 정규분포 + 등분산 → **독립 t-test**
- 비정규분포 → **Mann-Whitney U**
- 같은 대상 전후 비교 → **대응 t-test**
### 세 그룹 이상의 비교
- 정규분포 → **일원배치 ANOVA**
- 비정규분포 → **Kruskal-Wallis**
### 범주형 변수 간 관계
- **카이제곱 검정**
## p-value 해석 가이드
p < 0.001 : 매우 강한 증거 (***)
p < 0.01 : 강한 증거 (**)
p < 0.05 : 유의한 증거 (*)
p >= 0.05 : 증거 불충분
주의: p-value만으로 결론을 내리지 마세요.
효과 크기(effect size)와 실질적 의미도 함께 보고하세요.
데이터 확인: 그룹A(n=1,024) 전환율 12.3%, 그룹B(n=1,031) 전환율 15.1%
검정 방법: 전환 여부(범주형) vs 그룹(범주형) → 카이제곱 검정 선택
결과: chi2=3.42, p=0.0321 (*), Cramer's V=0.041
해석: 그룹B의 전환율이 통계적으로 유의하게 높습니다(p<0.05). 다만 효과 크기(V=0.041)가 작으므로, 실제 비즈니스 임팩트는 제한적일 수 있습니다.
- 표본 크기가 너무 작을 때 — n<10인 그룹에 t-test를 적용하면 결과를 신뢰할 수 없습니다. 스킬의 의사결정 트리에 "n<30이면 비모수 검정 우선 고려" 조건을 명시하세요.
- 탐색적 분석(EDA) 단계 — 아직 변수 간 관계를 파악 중이라면 가설 검정보다 EDA 스킬이 적합합니다. 통계 검정은 사전에 명확한 가설이 있을 때 사용하세요.
- 다중 비교 보정 없이 여러 검정 반복 — 20개 변수에 각각 t-test를 돌리면 Type I 오류(거짓 양성)가 급증합니다. 스킬에 "다중 비교 시 Bonferroni 또는 FDR 보정 적용" 규칙을 명시하세요.
스킬 디버깅 가이드 공식 문서 #
스킬이 기대대로 동작하지 않을 때 참고하세요. 공식 문서
문제 1: 스킬이 활성화되지 않음
- description 키워드 확인 — 공식 팁: "description은 에이전트가 스킬 사용 여부를 결정하는 기준입니다." 사용자가 요청에 쓸 법한 키워드가 포함되어 있는지 확인하세요.
- SKILL.md 파일 위치 확인 —
.agents/skills/<skill-folder>/SKILL.md경로가 정확한지 확인하세요. - frontmatter 문법 확인 — YAML frontmatter의
---구분선이 올바른지,description필드가 존재하는지 확인하세요 (필수 필드).
description: 데이터 작업 도구
너무 모호하여 "CSV 분석해줘"와 매칭되지 않음
description: CSV/Excel 데이터에 대해 탐색적 데이터 분석(EDA)을 수행합니다. 결측치 확인, 기술통계, 분포 시각화를 포함합니다.
3인칭 + 핵심 키워드로 정확히 매칭됨
문제 2: 스킬이 너무 자주 활성화됨
- description 범위 좁히기 — 공식 모범 사례 "각 스킬은 하나의 일을 잘 수행해야 합니다"를 따라, 넓은 표현 대신 구체적으로 작성하세요.
- 스킬 분리 — 하나의 스킬이 너무 많은 키워드를 커버하고 있다면 여러 스킬로 분리하세요.
문제 3: 스크립트 실행 오류
- --help 패턴 적용 — 공식 모범 사례 "스크립트를 블랙박스로 사용하세요"에 따라, SKILL.md에 "스크립트 실행 전
--help를 먼저 실행하세요"를 추가하세요. - 의존성 명시 — 필요한 패키지를 SKILL.md에 명시하세요.
진단 플로차트
→ SKILL.md 파일이 존재하는가?
→ 아니오: 올바른 경로에 SKILL.md를 생성하세요
→ 예: frontmatter에 description이 있는가? (필수 필드)
→ 아니오: description 필드를 추가하세요
→ 예: description에 관련 키워드가 있는가?
→ 아니오: 사용자 요청에 맞는 키워드를 추가하세요
→ 예: 다른 스킬과 description이 겹치는가?
→ 예: description을 더 구체적으로 차별화하세요
→ 아니오: SKILL.md 본문의 지시사항을 점검하세요
실전 예시: Karpathy 코딩 가이드라인 스킬 #
AI 분야의 저명한 연구자 Andrej Karpathy가 공유한 LLM 코딩 가이드라인을 스킬로 만든 실제 사례입니다. LLM이 코드를 작성할 때 흔히 범하는 실수를 방지하기 위한 행동 규칙(Behavioral Guidelines)을 정의합니다.
배경: Karpathy의 LLM 코딩 관찰
Karpathy는 에이전트 코딩 비중이 80%로 전환된 후, LLM이 반복적으로 범하는 실수 패턴을 발견했습니다.
4가지 핵심 원칙
이 스킬은 LLM의 코딩 품질을 높이기 위한 4가지 행동 원칙을 정의합니다.
1. Think Before Coding
가정하지 말고, 혼동을 숨기지 말고, 트레이드오프를 드러내라
- 가정을 명시적으로 진술할 것
- 여러 해석이 가능하면 제시하고, 조용히 하나를 선택하지 말 것
- 불확실하면 멈추고 질문할 것
2. Simplicity First
문제를 해결하는 최소한의 코드. 추측성 기능 금지.
- 요청받지 않은 기능 추가 금지
- 단일 사용 코드에 추상화 금지
- 200줄이 50줄로 가능하면 다시 작성
3. Surgical Changes
필요한 부분만 수정하고, 자기가 만든 불필요한 코드만 정리하라
- 인접 코드를 "개선"하지 말 것
- 깨지지 않은 것을 리팩토링하지 말 것
- 기존 스타일에 맞출 것
4. Goal-Driven Execution
성공 기준을 정의하고, 검증될 때까지 반복하라
- "버그 수정" → "재현 테스트 작성 후 통과시키기"
- 멀티스텝 작업에 검증 포인트 명시
- 약한 기준("동작하게")은 지속적 확인 필요
SKILL.md 파일 전체 코드
아래가 실제 스킬 파일입니다. 이 내용을 .agents/skills/karpathy-guidelines/SKILL.md에 저장하면 바로 사용할 수 있습니다.
---
name: karpathy-guidelines
description: Behavioral guidelines to reduce common LLM
coding mistakes. Use when writing, reviewing,
or refactoring code to avoid overcomplication,
make surgical changes, surface assumptions,
and define verifiable success criteria.
license: MIT
---
# Karpathy Guidelines
Behavioral guidelines to reduce common LLM coding
mistakes, derived from Andrej Karpathy's observations
on LLM coding pitfalls.
**Tradeoff:** These guidelines bias toward caution
over speed. For trivial tasks, use judgment.
## 1. Think Before Coding
**Don't assume. Don't hide confusion. Surface tradeoffs.**
Before implementing:
- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them
- don't pick silently.
- If a simpler approach exists, say so.
Push back when warranted.
- If something is unclear, stop. Name what's confusing.
Ask.
## 2. Simplicity First
**Minimum code that solves the problem.
Nothing speculative.**
- No features beyond what was asked.
- No abstractions for single-use code.
- No "flexibility" or "configurability" that wasn't
requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.
Ask yourself: "Would a senior engineer say this is
overcomplicated?" If yes, simplify.
## 3. Surgical Changes
**Touch only what you must.
Clean up only your own mess.**
When editing existing code:
- Don't "improve" adjacent code, comments,
or formatting.
- Don't refactor things that aren't broken.
- Match existing style, even if you'd do it
differently.
- If you notice unrelated dead code,
mention it - don't delete it.
When your changes create orphans:
- Remove imports/variables/functions that YOUR
changes made unused.
- Don't remove pre-existing dead code unless asked.
The test: Every changed line should trace directly
to the user's request.
## 4. Goal-Driven Execution
**Define success criteria. Loop until verified.**
Transform tasks into verifiable goals:
- "Add validation"
→ "Write tests for invalid inputs, then make
them pass"
- "Fix the bug"
→ "Write a test that reproduces it, then make
it pass"
- "Refactor X"
→ "Ensure tests pass before and after"
For multi-step tasks, state a brief plan:
1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]
Strong success criteria let you loop independently.
Weak criteria ("make it work") require constant
clarification.
설치 및 사용 방법
| 방법 | 절차 | 적용 범위 |
|---|---|---|
| 방법 A: 직접 생성 권장 |
.agents/skills/karpathy-guidelines/ 폴더를 만들고위 SKILL.md 파일을 저장 |
해당 프로젝트에서만 적용 |
| 방법 B: 글로벌 설치 |
홈 디렉토리의 ~/.agents/skills/karpathy-guidelines/에 저장
|
모든 프로젝트에 적용 |
| 방법 C: GitHub에서 클론 |
git clone으로 저장소를 받아 스킬 폴더에 복사
|
최신 업데이트 추적 가능 |
방법 A: 직접 생성 (단계별)
# 1. 스킬 디렉토리 생성
mkdir -p .agents/skills/karpathy-guidelines
# 2. SKILL.md 파일 생성 (위 내용을 붙여넣기)
nano .agents/skills/karpathy-guidelines/SKILL.md
# 3. 새 대화를 시작하면 스킬 자동 인식!
방법 C: GitHub에서 클론
# 저장소 클론
git clone https://github.com/forrestchang/andrej-karpathy-skills.git
# 스킬 폴더로 복사
cp -r andrej-karpathy-skills/skills/karpathy-guidelines \
.agents/skills/karpathy-guidelines
# 복사 확인
cat .agents/skills/karpathy-guidelines/SKILL.md
적용 전 vs 적용 후 비교
같은 요청에 대해 스킬 적용 여부에 따라 에이전트의 행동이 어떻게 달라지는지 비교합니다.
| 상황 | ❌ 스킬 없이 (기본 행동) | ✅ Karpathy 스킬 적용 후 |
|---|---|---|
| 요청이 모호할 때 | 자의적으로 해석하고 바로 코딩 시작 | 가정을 명시하고, 불확실한 부분을 질문 |
| "로그인 기능 추가" | OAuth, 세션 관리, 비밀번호 복구까지 200줄+ 구현 | 요청된 핵심 기능만 50줄 이내로 구현 |
| "이 버그 수정해줘" | 버그 수정 + 주변 코드 리팩토링 + 스타일 변경 | 버그 재현 테스트 → 수정 → 테스트 통과 확인 |
| 멀티스텝 작업 | 한 번에 모든 것을 구현하려 시도 | 각 단계별 검증 포인트를 명시하고 순차 실행 |
이 스킬에서 배우는 작성 기법
Karpathy 가이드라인 스킬은 잘 만들어진 스킬의 모범 사례를 보여줍니다. 자신만의 스킬을 만들 때 참고하세요.
| 기법 | 이 스킬에서의 적용 | 왜 효과적인가 |
|---|---|---|
| 명확한 description | "Behavioral guidelines to reduce common LLM coding mistakes" | 에이전트가 코딩/리뷰/리팩토링 상황에서 정확히 매칭 |
| 트레이드오프 명시 | "These guidelines bias toward caution over speed" | 사소한 작업에서는 유연하게 판단하도록 여지를 줌 |
| 금지 목록 (Don't) | "No features beyond what was asked", "Don't refactor things that aren't broken" | 모호한 "잘 해라"보다 명확한 "하지 마라"가 LLM에 효과적 |
| 자기 점검 질문 | "Would a senior engineer say this is overcomplicated?" | LLM에게 자체 검증 메커니즘을 제공 |
| 구체적 변환 예시 | "Fix the bug" → "Write a test that reproduces it, then make it pass" | 추상적 지시를 검증 가능한 목표로 바꾸는 패턴 학습 |
"우리 팀은 TypeScript strict 모드 사용", "모든 API 응답에 에러 핸들링 포함" 같은 팀 컨벤션을 스킬로 정의하면, 에이전트가 매번 일관된 코드를 생성합니다.
실전 예시: 전역 코드 리뷰 스킬 (code-review) #
공식 문서의 주요 예시입니다. 글로벌 스킬로 설치하면 모든 워크스페이스에서 사용할 수 있습니다. PR 검토나 코드 품질 확인 시 자동으로 활성화됩니다.
스킬 디렉토리 생성
mkdir -p ~/.gemini/antigravity/skills/code-review
SKILL.md 작성
---
name: code-review
description: Reviews code changes for bugs, style issues, and best practices. Use when reviewing PRs or checking code quality.
---
# Code Review Skill
When reviewing code, follow these steps:
## Review checklist
1. **Correctness**: Does the code do what it's supposed to?
2. **Edge cases**: Are error conditions handled?
3. **Style**: Does it follow project conventions?
4. **Performance**: Are there obvious inefficiencies?
## How to provide feedback
- Be specific about what needs to change
- Explain why, not just what
- Suggest alternatives when possible
사용 방법
@demo_bad_code.py 파일을 리뷰해줘
에이전트가 code-review 스킬을 자동으로 감지하고 체크리스트에 따라 검토합니다.
demo_bad_code.py를 만들어 테스트하세요. 들여쓰기 오류, 누락된 null 체크, 성능 문제, 에러 처리 누락 등을 의도적으로 포함시키면 스킬이 어떻게 작동하는지 확인할 수 있습니다.
"이 파일 검토해줘" → 에이전트가 자체 판단으로 검토. 매번 다른 기준 적용
"이 파일 검토해줘" → Correctness → Edge cases → Style → Performance 체크리스트를 항상 일관되게 적용
실전 예시: 라이선스 헤더 추가 스킬 (license-header-adder) #
공식 문서에서 소개하는 license-header-adder 스킬입니다. 소스 파일에 자동으로 라이선스 헤더를 추가하는 실용적인 예시로, resources/ 폴더를 활용한 파일 참조 패턴을 보여줍니다.
스킬 구조
.agents/skills/license-header-adder/
├── SKILL.md # 스킬 정의 파일
└── resources/
└── HEADER.txt # 실제 라이선스 헤더 텍스트
resources/HEADER.txt
공식 예시는 C스타일 /* */ 블록을 사용합니다. SKILL.md가 언어별 주석 변환을 지시하므로 C스타일로 작성합니다.
/*
* Copyright (c) 2026 YOUR_COMPANY_NAME LLC.
* All rights reserved.
* This code is proprietary and confidential.
*/
SKILL.md
---
name: license-header-adder
description: Adds the standard corporate license header to new source files.
---
# License Header Adder
This skill ensures that all new source files have the correct copyright header.
## Instructions
1. **Read the Template**: Read the content of `resources/HEADER.txt`.
2. **Apply to File**: When creating a new file, prepend this exact content.
3. **Adapt Syntax**:
- For C-style languages (Java, TypeScript, JavaScript): keep the `/* */` block comment.
- For Python/Shell: convert to `#` comments.
## Example
- New TypeScript file → prepend `/* ... */` block as-is
- New Python file → convert each line to `# Copyright (c) 2026 ...` format
resources/ 폴더를 참조하면 텍스트 템플릿, 설정 파일, 샘플 데이터 등 스킬이 사용하는 추가 파일을 함께 관리할 수 있습니다. 에이전트는 resources/HEADER.txt 경로를 인식하고 스킬 실행 시 자동으로 읽어옵니다.
"모든 파이썬 파일에 라이선스 헤더 추가해줘" → 에이전트가 헤더 형식을 추측하거나, 매번 다른 형식으로 추가할 수 있음
"license-header-adder 실행해줘" → HEADER.txt의 정확한 형식이 일관되게 적용됨. 이미 헤더가 있는 파일은 자동으로 건너뜀
외부 스킬 설치 — Anthropic 공식 스킬 라이브러리 활용 #
스킬을 처음부터 작성하기 전에, Anthropic이 공개한 공식 스킬 모음을 먼저 들여다보세요. 실무에서 검증된 PDF·DOCX·PPTX·XLSX 변환, 캔버스 디자인, 알고리즘 아트, MCP 빌더, skill-creator 등이 그대로 포함되어 있어, 좋은 스킬의 작성 패턴을 학습하고 즉시 사용할 수도 있습니다.
skills/ 디렉터리. 각 폴더가 독립적인 스킬이며 그대로 복사해 쓸 수 있는 구조입니다.
설치 방법 1: 저장소 전체 클론
여러 스킬을 한꺼번에 가져오고 업데이트도 추적하고 싶다면 통째로 클론합니다.
# 1) 임시 위치에 클론
git clone https://github.com/anthropics/skills.git ~/anthropic-skills
# 2) 사용할 스킬만 골라 복사 (예: skill-creator, pdf, pptx, xlsx)
mkdir -p ~/.agents/skills
cp -r ~/anthropic-skills/skills/skill-creator ~/.agents/skills/
cp -r ~/anthropic-skills/skills/pdf ~/.agents/skills/
cp -r ~/anthropic-skills/skills/pptx ~/.agents/skills/
cp -r ~/anthropic-skills/skills/xlsx ~/.agents/skills/
# 3) Antigravity 재시작 후 활성화 확인
ls ~/.agents/skills/
설치 방법 2: 단일 스킬만 가져오기 (sparse-checkout)
저장소 전체를 받고 싶지 않다면 git의 sparse-checkout으로 필요한 폴더만 받을 수 있습니다.
git clone --filter=blob:none --no-checkout https://github.com/anthropics/skills.git tmp-skills
cd tmp-skills
git sparse-checkout init --cone
git sparse-checkout set skills/skill-creator
git checkout main
# 추출된 스킬을 워크스페이스에 복사
cp -r skills/skill-creator ~/.agents/skills/
cd .. && rm -rf tmp-skills
주요 공식 스킬 한눈에 보기
| 스킬 | 용도 | 데이터 분석에서 활용 시점 |
|---|---|---|
| skill-creator | 새 스킬을 대화로 생성·검증 | EDA·시각화·리포트 등 도메인 스킬을 직접 만들 때 |
| PDF 텍스트·표 추출, 폼 채우기 | 논문·리포트에서 데이터 추출 | |
| pptx | PowerPoint 슬라이드 자동 생성 | 분석 결과를 발표 자료로 변환 |
| xlsx | Excel 읽기·쓰기·차트 작성 | 대시보드·리포트 산출물 생성 |
| docx | Word 문서 작성·수정 | 분석 보고서 자동화 |
| canvas-design | PNG·PDF 시각 콘텐츠 제작 | 차트 외 인포그래픽·포스터 |
| mcp-builder | MCP 서버를 가이드대로 생성 | 사내 API와 에이전트 연결 |
SKILL.md를 먼저 열어보세요. 공식 스킬은 "좋은 description 예시"·"Progressive Disclosure 패턴"·"리소스 구성"의 모범 답안이라, 본인 스킬을 만들기 전 학습 자료로도 훌륭합니다.
skill-creator로 데이터 분석 스킬 만들기 (실습) #
skill-creator는 "스킬을 만드는 스킬"입니다. 활성화하면 에이전트가 스킬 생성 워크플로(이름 정하기 → description 작성 → SKILL.md 골격 → 검증)를 단계별로 진행합니다. 직접 SKILL.md를 처음부터 쓰는 것보다 훨씬 빠르고 실수가 적습니다.
Step 1 — skill-creator 설치 확인
ls ~/.agents/skills/skill-creator/SKILL.md
# 파일이 있어야 합니다. 없다면 위 "외부 스킬 설치" 섹션 참고
Step 2 — 에이전트에게 데이터 분석 스킬 생성 요청
skill-creator로 새 스킬을 만들어줘. 이름은 "korean-eda"이고,
한국어 컬럼명을 가진 CSV·Excel을 받아 다음을 자동 수행하는 스킬이야:
1) 인코딩 자동 감지 (utf-8 → cp949 폴백)
2) 컬럼명 정규화 (공백·특수문자 제거, snake_case 변환)
3) 결측치 리포트 (열별 비율, 시각화)
4) 자료형 추론 결과 표
5) koreanize_matplotlib import한 한글 차트 5종 자동 생성
위치는 ~/.agents/skills/korean-eda/ 로 만들어 주고,
SKILL.md와 함께 scripts/ 폴더에 검증용 코드를 넣어줘.
skill-creator는 위 요청을 받으면 다음을 자동으로 진행합니다.
- 이름 검증 —
korean-eda가 다른 스킬과 충돌하지 않는지 확인 - description 초안 작성 — "한국어 컬럼/한글 데이터 EDA, 인코딩 자동 감지, 결측치 리포트…" 같은 자연어 트리거 문구 생성
- frontmatter + 본문 골격 생성 — Progressive Disclosure 원칙에 맞춰 description은 짧고, 본문은 단계별 절차로
- scripts/ 폴더 생성 —
encoding_detect.py,missing_report.py,korean_charts.py등 보조 스크립트 자동 작성 - 검증 —
SKILL.md길이·필드·예시 사용 여부를 자체 체크리스트로 점검
Step 3 — 결과물 구조 확인
~/.agents/skills/korean-eda/
├── SKILL.md # frontmatter + 단계별 지침
├── scripts/
│ ├── encoding_detect.py # utf-8 → cp949 폴백 로직
│ ├── normalize_columns.py # 컬럼명 정규화
│ ├── missing_report.py # 결측치 표·차트
│ └── korean_charts.py # 한글 폰트 차트 5종
└── examples/
└── sample_korean.csv # 검증용 샘플
Step 4 — 실전 사용
판매_2024.xlsx 데이터를 korean-eda 스킬로 분석해줘.
에이전트가 korean-eda description을 보고 자동으로 스킬을 활성화합니다. 인코딩 감지부터 한글 차트 5종 생성까지 일관된 절차를 매번 동일하게 수행합니다.
외부 스킬 적용 사례: pptx-design-styles로 슬라이드 디자인 자동화 #
커뮤니티에서 공개된 외부 스킬을 가져와 즉시 적용하는 흐름을 보여줍니다. 예시 스킬은 오늘코드가 직접 제작·공개한 corazzon/pptx-design-styles로, 한국어 PPTX 슬라이드 작성에 30여 종의 모던 디자인 스타일을 적용해주는 스킬입니다. 분석 결과를 발표 자료로 만들 때 디자인 일관성을 한 번에 확보할 수 있고, 본 튜토리얼과 같은 저자가 만든 만큼 한국어 환경(폰트·줄바꿈·문장 부호)에서의 동작도 검증되어 있습니다.
Step 1 — 저장소 클론 및 설치
# 사용자 전역 스킬 폴더에 직접 클론
mkdir -p ~/.agents/skills
git clone https://github.com/corazzon/pptx-design-styles.git \
~/.agents/skills/pptx-design-styles
# 또는 워크스페이스 단위로 설치 (팀 공유용)
cd ~/projects/my-analysis
mkdir -p .agents/skills
git clone https://github.com/corazzon/pptx-design-styles.git \
.agents/skills/pptx-design-styles
# 설치 확인
cat ~/.agents/skills/pptx-design-styles/SKILL.md | head -20
Step 2 — Antigravity 재시작 & 활성화 확인
스킬은 Antigravity 시작 시점에 스캔됩니다. 설치 후 한 번 재시작한 뒤 새 대화에서 다음을 입력해 활성화 여부를 확인하세요.
지금 활성화 가능한 스킬 목록 보여줘. pptx-design-styles가 보이는지 알려줘.
Step 3 — 분석 결과 PPTX에 적용
EDA 결과나 시각화 산출물을 슬라이드로 변환할 때 스킬을 호출합니다. 스킬은 자동으로 "제품 출시·데이터 리포트·기술 발표·임원 보고" 등 시나리오에 어울리는 디자인 스타일을 적용합니다.
판매_2024.xlsx EDA 결과를 발표용 PPTX로 만들어줘.
조건:
- pptx-design-styles 스킬을 사용해 "임원 보고용 미니멀" 스타일 적용
- 표지 / 매출 추이 차트 / 지역별 비교 / 결론 4장 구성
- 차트 이미지는 reports/ 폴더에 이미 저장되어 있음
- 한글 폰트 깨짐 방지 처리 포함
파일은 reports/판매_2024_보고.pptx 로 저장해줘.
Step 4 — 결과 확인 & 스타일 변경
생성된 PPTX가 마음에 들지 않으면 다른 스타일로 즉시 재생성할 수 있습니다.
방금 만든 reports/판매_2024_보고.pptx를
"제품 출시 키노트(big-typo)" 스타일로 다시 만들어줘.
구조와 데이터는 동일하게 유지.
Antigravity 워크플로 안에서의 시너지
이 스킬은 단독으로 쓰기보다 다른 데이터 분석 스킬과 체인을 이룰 때 진가를 발휘합니다.
- EDA 스킬 → 시각화 스킬 → pptx-design-styles — 분석 결과를 발표 자료까지 한 번의 흐름으로
- 크롤링 스킬 → 시각화 스킬 → pptx-design-styles — 외부 데이터 수집부터 임원 보고까지
- Karpathy 코딩 가이드라인 + pptx-design-styles — 코드 품질과 산출물 디자인을 동시에 표준화
~/.agents/skills/는 본인의 "에이전트 라이브러리"라고 생각하세요.
- SKILL.md와 scripts/ 안의 코드를 한 번 훑어보세요. 의도하지 않은 외부 호출이 있는지 확인.
- 네트워크 접근이 필요한 스킬은 Permissions의
WebFetch허용 도메인과 충돌하지 않는지 점검. - 저장소 owner가 신뢰할 수 있는지(stars·last commit·owner 평판)를 확인.
자주 묻는 질문 (FAQ) #
name 필드는 필수가 아닙니다. 제공하지 않으면 폴더 이름이 기본값으로 사용됩니다. 반면 description 필드는 필수입니다.
| 필드 | 필수 여부 | 기본값 | 작성 규칙 |
|---|---|---|---|
name | 선택 | 폴더 이름 | 소문자, 하이픈 구분 (예: eda-analysis) |
description | 필수 | 없음 | 3인칭, 키워드 포함. 에이전트가 스킬 선택 여부를 이 필드로 판단 |
eda-analysis처럼 의미 있게 지으면 name 필드를 별도로 작성하지 않아도 됩니다.
명시적으로 말할 필요가 없습니다. 에이전트는 컨텍스트를 기반으로 자동 판단합니다. 하지만 특정 스킬을 확실히 사용하고 싶다면 이름을 언급할 수도 있습니다.
| 활성화 방식 | 사용자 입력 예시 | 결과 |
|---|---|---|
| 자동 감지 (권장) | "이 CSV를 분석해줘" | eda-analysis 스킬 자동 활성화 |
| 이름 직접 언급 | "stat-analysis 스킬로 가설 검정해줘" | 지정한 스킬 확실히 활성화 |
| @ 멘션 | "@eda-analysis 이 데이터 봐줘" | 해당 스킬 강제 활성화 |
Antigravity는 현재 .agents/skills를 기본으로 사용하지만, .agent/skills에 대한 하위 호환성도 유지합니다.
| 경로 | 상태 | 사용 권장 |
|---|---|---|
.agents/skills/ 복수형 | 현재 기본 경로 | 새 프로젝트에 권장 |
.agent/skills/ 단수형 | 하위 호환성 유지 | 기존 프로젝트 계속 사용 가능 |
.agents/skills가 우선합니다. 혼동을 피하려면 하나의 경로만 사용하세요.
Rules은 항상 적용되는 전역 규칙이고, Skills은 특정 작업에만 활성화되는 지식 패키지입니다.
| 구분 | Rules (규칙) | Skills (스킬) |
|---|---|---|
| 적용 시점 | 설정에 따라 항상 또는 조건부 적용 | 관련 작업이 감지될 때만 로드 |
| 역할 | "어떻게" 행동할지 지시 | "무엇을" 할지 절차 제공 |
| 비유 | 회사 사규 (항상 준수) | 업무 매뉴얼 (필요할 때 참조) |
| 예시 | "UTF-8 인코딩으로 저장" | "EDA 수행 시 체크리스트" |
| 파일 위치 | .agents/rules/ | .agents/skills/스킬명/ |
| 컨텍스트 비용 | 항상 소비 (간결하게 작성) | 필요 시에만 소비 (상세 가능) |
네, 가능합니다. 에이전트는 대화 컨텍스트를 분석하여 관련된 모든 스킬을 활성화합니다.
- 자동 복합 활성화: "이 웹사이트에서 데이터를 크롤링해서 분석해줘" →
web-crawling+eda-analysis동시 활성화 - 순차 활성화: 대화가 진행되면서 새로운 작업이 감지되면 추가 스킬이 활성화될 수 있음
- 우선순위: description이 더 구체적으로 매칭되는 스킬이 우선 적용
SKILL.md 파일을 수정하고 저장하면 다음 대화부터 즉시 반영됩니다.
- 스킬 파일 수정: SKILL.md 내용을 편집하고 저장
- 새 대화 시작: 에이전트는 대화 시작 시 스킬 목록을 새로 스캔
- 변경 내용 적용: 수정된 description, 절차, 체크리스트가 반영됨
공식 문서: "description을 3인칭으로 작성하고, 에이전트가 스킬의 관련성을 인식하는 데 도움이 되는 키워드를 포함하세요."
- 3인칭으로 작성: "분석합니다", "생성합니다", "수행합니다" 형태로 작성
- 핵심 키워드 포함: 사용자가 요청할 때 쓸 법한 단어를 반드시 포함
- 구체적 범위 명시: 어떤 파일 형식, 어떤 작업인지 명확히
- 간결하게 유지: 1~2문장으로 핵심만 전달
| 스킬 유형 | 좋은 description 예시 |
|---|---|
| EDA | "CSV/Excel 데이터에 대해 탐색적 데이터 분석(EDA)을 수행합니다. 결측치 확인, 기술통계, 분포 시각화를 포함합니다." |
| 테스트 | "Python 코드에 대해 pytest 규칙을 사용하여 유닛 테스트를 생성합니다." |
| 크롤링 | "웹 페이지에서 구조화된 데이터를 추출합니다. BeautifulSoup과 Selenium을 활용하여 테이블, 리스트 등을 수집합니다." |
| 시각화 | "데이터를 matplotlib/seaborn 차트로 시각화합니다. 한글 폰트 설정과 스타일 가이드를 포함합니다." |