Skip to content
Back to skills

Yd Skill Evolve

ASecurity

사용자 피드백이나 에이전트의 실패 사례를 이 저장소 스킬의 SKILL.md 규칙으로 반영하는 메타 스킬. "스킬 고쳐줘", "이 실수 스킬에 박아줘", "다음부터 안 그러게 스킬에 반영해", "/yd-skill-evolve <스킬명> <피드백>" 같은 요청이나, 같은 실수가 두 번 나와 스킬 문서를 고쳐야 할 때 사용한다. 이슈 등록 → batch 브랜치 → 테스트 → 사용자 승인 → 커밋 순서로 진행한다.

  • 12 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 4, 2026
developmentpythongonodegit

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add LeeYudok/doksam-skills --skill yd-skill-evolve --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Yd Skill Evolve?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Yd Skill Evolve
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/leeyudok-yd-skill-evolve/badge)](https://www.skillsdirectory.com/skills/leeyudok-yd-skill-evolve)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: yd-skill-evolve
description: 사용자 피드백이나 에이전트의 실패 사례를 이 저장소 스킬의 SKILL.md 규칙으로 반영하는 메타 스킬. "스킬 고쳐줘", "이 실수 스킬에 박아줘", "다음부터 안 그러게 스킬에 반영해", "/yd-skill-evolve <스킬명> <피드백>" 같은 요청이나, 같은 실수가 두 번 나와 스킬 문서를 고쳐야 할 때 사용한다. 이슈 등록 → batch 브랜치 → 테스트 → 사용자 승인 → 커밋 순서로 진행한다.
---

# Role

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

# 트리거

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

# Workflow

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

## Phase 1. 진단 및 격리

1. **상태 점검**: 현재 워킹 트리가 깨끗한지(`git status -s`가 비어 있는지) 확인한다. `python3 <스킬경로>/scripts/evolve_guard.py clean` 이 같은 일을 하며, 비어 있지 않으면 exit 1 로 변경 목록을 보여 준다.
2. **이슈 먼저**: 저장소 트래커에 이슈를 만든다. 본문에 피드백 원문, 고칠 스킬, 누가 판정하는지를 적는다. 이 번호를 브랜치·커밋·PR 에 쓴다.
3. **브랜치**: `main` 에 직접 커밋하지 않는다. 진행 중인 배치 브랜치(`batch/<에이전트>-<YYYYMMDD>-<8자리 hex>`)가 있으면 거기에 얹고, 없으면 `main` 에서 새로 만든다. hex 는 `openssl rand -hex 4` 로 배치마다 새로 만든다(yd-git-ship 과 같은 규칙 — 순번 `-2` 는 세션끼리 겹친다).
4. **대상 읽기**: `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` 등의 정확한 파일 편집 도구를 사용해 반영한다.

편집을 마치면 `python3 <스킬경로>/scripts/evolve_guard.py check <스킬명>` 으로 위 규칙을 기계적으로 확인한다.

- `Learned warnings` 줄은 `- (YYYY-MM-DD) ...` 형식이어야 하고, 달력에 없는 날짜는 위반이다.
- 기준(`--base`, 기본 `HEAD`)에 있던 경고가 사라졌으면 위반이다. 사용자가 명시적으로 무효화한 경고라면 `--allow-removal` 을 붙인다.
- 새 경고를 넣는 작업이면 `--require-section` 으로 섹션이 있는지도 본다.
- 위반이 있으면 exit 1 이다.
- 스킬 이름이 없거나 경로를 벗어나면 exit 2 이다.

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

문서 수정을 디스크에 반영한 직후, **반드시 `./scripts/run_tests.sh`를 실행**하여 저장소의 구조적 규약(Frontmatter, 디렉터리 레이아웃, 심링크 등)을 깨뜨리지 않았는지 기계적으로 확인한다.
- 테스트가 실패하면(exit code > 0), **이 스킬이 고친 파일만** 되돌린다(`git restore -- skills/<스킬명>/SKILL.md`). 경로 없는 `git restore .` 는 다른 변경까지 지운다. `python3 <스킬경로>/scripts/evolve_guard.py verify <스킬명>` 이 테스트 실행과 되돌리기를 한 번에 하고, 실패하면 exit 1 이다. 통과하면 편집을 그대로 둔다. 테스트 실행기를 찾지 못하면 exit 2 이고 편집도 그대로 둔다. 그다음 원인을 분석하고 다시 수정한다. 위반 상태로 다음 단계로 넘어가지 않는다.
- 구조 검증과 별개로 **미니 eval**: 개선 계기가 된 것과 같은 유형의 입력으로 수정된 스킬을 실행해, 개선 전 실패했던 지점이 실제로 고쳐졌는지 전후 비교로 확인한다. (claude-scaffold 동명 스킬에서 체리픽, 2026-08-16)

## Phase 5. 리뷰 및 커밋

1. 테스트 통과 후 사용자에게 **변경 사항(Diff 요약)**을 명확히 보고하고 커밋 승인을 얻는다.
2. 사용자가 승인(`Y`)하면 고친 파일만 명시해 `git add` 한다(`git add .`·`-A` 금지). 커밋 제목은 `[<모델명>] docs(<스킬명>): <개선 요약> (#N)` 이고, 작성자는 사람이 아니면 에이전트 계정(`-c user.name=claude-ai` 등)이다.
3. 푸시하고 PR(또는 MR)을 연다. 본문에 `Closes #N` 을 넣고, 머지는 merge commit 으로 한다(squash 금지). 저장소 규칙이 별도로 있으면 그것을 따른다.

# 출력 형식

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

```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`) 강제 의무화 등 메타 에이전트 워크플로우 적용.
- (2026-10-04) `yd-skill-evolve` 로 이름 변경. `evolve/` 브랜치와 `git add .` 를 버리고 이슈 먼저 → batch 브랜치 → 명시 파일 커밋 → `Closes #N` PR 로 전역 git 규칙에 맞췄다 (#169).
- (2026-10-05) 배치 브랜치 순번(`-2`) 대신 8자리 hex 를 쓴다. 같은 날 세션 둘이 같은 순번을 골라 충돌했다. yd-git-ship 과 같게 맞췄다 (#205).

Files in this skill

  • SKILL.md6.4 KB
  • agents/antigravity.md1.2 KB
  • agents/claude.md747 B
  • agents/codex.toml714 B
  • agents/openai.yaml695 B
  • scripts/evolve_guard.py7.8 KB
  • tests/claims.json2.7 KB
  • tests/test_evolve_guard.py7.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.