---
name: sweeper
description: 로컬에 깔린 AI 스킬을 훑어 노이즈·중복·깨진 파일을 찾고, 확인받은 뒤 지운다. 사용자가 "스킬 청소", "스킬 정리", "쓸데없는 스킬 삭제", "skill cleaner", "설치된 스킬 감사"라고 하면 이 스킬을 쓴다. Use when the user runs /sweeper.
---

# sweeper — 스킬 청소기

실험은 마음껏 해도 된다. 문제는 AI가 **노이즈 스킬을 스스로 골라 일을 그걸로 해버리는 것**이다.
이 스킬은 깔아둔 목록을 검사하고, 지울 후보를 보여준 다음, **한 번 확인받고** 지운다.

묻지 않고 지우지 않는다. sweeper 자신과 워킹 레퍼런스 원작(pix, find-verified)은 기본 보호다.

## 언제

- 스킬을 이것저것 깔아본 뒤
- 결과물이 이상해져서 어떤 스킬이 끼어들었는지 모를 때
- "청소", "정리", "junk skill", "설치된 스킬 목록"

## 하지 말 것

- 확인 없이 삭제
- 검증 풀에 없다고 무조건 삭제 (후보는 보여준다)
- 홈 디렉터리 전체 `rm -rf`
- `.git` 안, `node_modules` 안을 스킬로 오인하고 지우기
- 이 스킬 파일(sweeper) 삭제

## 절차

### 1. 스킬 폴더 찾기

존재하는 것만 스캔한다. 없으면 건너뛴다.

사용자 홈:

- `~/.claude/skills`
- `~/.claude/commands`
- `~/.codex/skills`
- `~/.Codex/skills`
- `~/.agents/skills`
- `~/.grok/skills`
- `~/.cursor/skills`
- `~/.gemini/skills`

현재 프로젝트 (git 루트 또는 cwd):

- `.claude/skills`
- `.claude/commands`
- `.agents/skills`
- `.grok/skills`
- `.codex/skills`
- `skills/`

한 폴더 안에 `SKILL.md`가 있으면 그 폴더가 스킬 하나다.
`~/.Codex/skills/*.md`처럼 파일이 바로 있으면 파일 하나가 스킬이다.

### 2. 검증 풀 가져오기

`https://www.working-ref.com/api/skills/verified` GET.
실패하면 find-verified와 같은 기준을 쓴다: 설치 1만 이상 목록을 모를 때는 **파일 상태 + 중복**만으로 분류하고, 설치 수 컷은 적용하지 않았다고 명시한다.

### 3. 각 스킬 채점

각 항목에서 읽는다: name, description, 파일 크기, 경로.

| 판정 | 조건 |
|---|---|
| KEEP | 검증 풀에 있음, 또는 pix / find-verified / sweeper |
| BROKEN | SKILL.md 없음, 본문 비었음, description 없음 |
| DUP | KEEP 스킬과 같은 일 (이름·description 토큰이 많이 겹침). 예: frontend-design과 또 다른 UI 스킬 3개 |
| UNVERIFIED | 파일은 멀쩡한데 검증 풀 밖 |
| JUNK | BROKEN이거나, 설명이 한 줄도 없고 풀 밖 |

한 스킬이 DUP이면서 UNVERIFIED이면 DUP를 우선 표기하고, 지울 후보에는 넣는다.

### 4. 보고서

반드시 이 형식으로 보여준다. 경로를 숨기지 않는다.

```
스킬 청소기

KEEP        8
BROKEN      2
DUP         3
UNVERIFIED  6

지울 후보 (확인 전에 안 지움)

[ ] broken-thing
    ~/.claude/skills/broken-thing · SKILL.md 없음

[ ] random-ui-kit
    ~/.agents/skills/random-ui-kit · 검증 풀 밖 · frontend-design과 중복

남길 것
  pix · find-verified · sweeper · copywriting · ...
```

지울 후보는 기본으로 체크된 것처럼 제안하되, **실제 삭제는 사용자 대답 후**다.
"이 후보 다 지워" / "2번만 지워" / "취소"를 받는다.

### 5. 삭제

확인받은 항목만 지운다.

- 스킬이 폴더면 그 폴더만 삭제
- 스킬이 파일이면 그 파일만 삭제
- 상위 `skills/` 폴더 자체는 남긴다
- 삭제 후 지운 경로 목록을 다시 보여준다

실패하면 그 항목만 보고하고 나머진 계속한다.

## 중복 판정

느슨하게 한다. 같은 토큰이 핵심 일에 겹치면 DUP.

예:

- `frontend-design`, `ui-ux-pro-max`, `web-design-guidelines` → 디자인 화면. 전부 KEEP 풀이면 중복으로만 알리고 기본 삭제는 아니다 (검증된 것끼리의 중복은 사용자 선택).
- 검증된 디자인 스킬 옆에 설치 수 없는 `my-cool-ui` → DUP + UNVERIFIED, 지울 후보.

## 안 되는 것

- 다른 프로젝트 폴더를 추측해서 훑기 (cwd/git 루트와 홈만)
- "안 쓴 스킬"을 대화 로그 파싱으로 단정하기. 1차는 파일·검증 풀·중복이다
- 휴지통 없이 복구 안내도 없이 지우기. 지운 경로를 남겨서 사용자가 백업에서 되돌릴 수 있게 한다
