skill-evolvelisted
Install: claude install-skill LeeYudok/doksam-skills
# 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`로 원상 복구한 뒤 원인을 분석하고 다시 수정한다. 위반 상태로 다음 단계로 넘어가지 않는다.
## Phase 5. 리뷰 및 커밋
1. 테스트 통과 후 사용자에게 **변경 사항(Diff 요약)**을 명확히 보고하고 커밋 승인을 얻는다.
2. 사용자가 승인(`Y`)하면, `git add .` 후