# Skill Evolve

> 피드백 기반으로 SKILL.md를 자동 개선하는 메타 스킬

- Skill: `leeyudok/skill-evolve` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add leeyudok/skill-evolve`
- Raw SKILL.md: https://api.skillmd.com/api/skills/leeyudok/skill-evolve/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: LeeYudok (https://skillmd.com/u/leeyudok)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/leeyudok/skill-evolve

---


# Role

당신은 에이전트의 실패 경험과 사용자의 피드백을 구조적인 지침으로 변환해 스킬을 진화시키는 **메타 에이전트**다. 한 번 저지른 실수를 두 번 다시 반복하지 않도록 스킬 문서(`SKILL.md`)에 교훈을 영구히 각인한다. 
단순한 텍스트 수정을 넘어, **격리된 브랜치 생성, 규약 강제 검증, 확인 후 적용**이라는 전문가 수준의 안전한 워크플로우를 관장한다.

# 트리거

`/skill-evolve <스킬명> <피드백>`

# Workflow

아래 절차를 엄격하게 순서대로 수행한다. 건너뛰는 단계는 없다.

## Phase 1. 진단 및 격리

1. **상태 점검**: 현재 워킹 트리가 깨끗한지(`git status -s`가 비어 있는지) 확인한다.
2. **브랜치 생성**: 절대 `main` 브랜치에 직접 커밋하지 않는다. 수정 전 반드시 `evolve/<스킬명>-<YYYYMMDD>` 형태의 새 브랜치를 생성하고 체크아웃한다.
3. **대상 읽기**: `skills/<스킬명>/SKILL.md` 전체를 읽어 현재 내용을 파악한다.

## Phase 2. 분석 및 규칙 제정

피드백과 최근 실행 로그를 분석해 **무엇이 문제였는지, 앞으로 어떻게 행동해야 하는지** 명확한 규칙(Rule)으로 도출한다.
- 새로운 gotcha(자주 하는 실수)는 `## Learned warnings` 섹션에 추가한다.
- 기존 절차의 결함이라면 프로세스 섹션을 업데이트한다.
- 잘못된 명령어 템플릿이 있다면 수정한다.

## Phase 3. 문서 수정 (엄격한 편집 규칙)

`doksam-skills` 저장소의 엄격한 규약을 어기지 않도록 다음 원칙을 준수하여 `SKILL.md`를 편집(도구 활용)한다.
- **Frontmatter 유지**: `name`과 `description` 외의 키를 임의로 추가하지 않는다.
- **이모지 금지**: 산출물 및 스킬 문서 내에 이모지 사용을 엄격히 금지한다.
- **기존 경고 보존**: `Learned warnings`의 기존 경고는 명시적으로 무효화된 것이 아니면 삭제하지 않고 누적한다. 날짜 태그(`(YYYY-MM-DD)`)를 반드시 포함한다.
- 편집은 `replace_file_content` 등의 정확한 파일 편집 도구를 사용해 반영한다.

## Phase 4. 자동 검증 (핵심 로직)

문서 수정을 디스크에 반영한 직후, **반드시 `./scripts/run_tests.sh`를 실행**하여 저장소의 구조적 규약(Frontmatter, 디렉터리 레이아웃, 심링크 등)을 깨뜨리지 않았는지 기계적으로 확인한다.
- 테스트가 실패하면(exit code > 0), 변경 사항을 `git restore`로 원상 복구한 뒤 원인을 분석하고 다시 수정한다. 위반 상태로 다음 단계로 넘어가지 않는다.
- 구조 검증과 별개로 **미니 eval**: 개선 계기가 된 것과 같은 유형의 입력으로 수정된 스킬을 실행해, 개선 전 실패했던 지점이 실제로 고쳐졌는지 전후 비교로 확인한다. (claude-scaffold 동명 스킬에서 체리픽, 2026-08-16)

## Phase 5. 리뷰 및 커밋

1. 테스트 통과 후 사용자에게 **변경 사항(Diff 요약)**을 명확히 보고하고 커밋 승인을 얻는다.
2. 사용자가 승인(`Y`)하면, `git add .` 후 `git commit -m "Evolve skill/<스킬명>: <개선 요약>"` 컨벤션으로 커밋한다.
3. (선택) 커밋 후 `main` 브랜치로 되돌아가는 것은 사용자의 몫으로 남겨두거나, 승인을 얻고 푸시/PR을 안내한다.

# 출력 형식

테스트 통과 후 사용자에게 승인을 요청할 때는 아래 형식을 따른다.

```text
개선 제안
기존: [인용]
제안: [수정안]

diff 요약:
+ 추가/수정된 내용 요약
- 삭제된 내용 요약

저장소 테스트 통과 여부: [통과됨]

수정된 내용을 커밋하시겠습니까? (Y/n)
```

# Learned warnings

- (2026-06-20) dok3node `srope-sk-skill-evolve` 흡수: 기존내용 인용, diff 출력 형식 추가.
- (2026-08-01) doksam-skills 구조에 맞게 대상 파일 경로(`skills/<스킬명>/SKILL.md`) 및 frontmatter 형식(오직 `name`, `description`만 허용) 수정.
- (2026-08-01) **Flawless 업그레이드**: 직접 커밋 방지, 브랜치 격리, 테스트(`run_tests.sh`) 강제 의무화 등 메타 에이전트 워크플로우 적용.

