
읽기 도구를 켜고 영어로 물었을 때는 날짜 입력 코드가 중앙값 42줄에서 3.5줄로 줄었지만, 도구를 끄고 한국어로 비슷하게 물었을 때는 5줄이던 코드가 오히려 7줄로 늘었습니다.
- AI가 짠 코드가 늘 길다고 느껴서 ponytail 같은 스킬을 알아보는 분
- 벤치마크 숫자를 그대로 믿기 전에 측정 조건부터 의심하는 분
- ponytail 스킬이 코드를 쓰기 전에 무엇을 확인하는지 압니다
- 같은 스킬이라도 측정 조건에 따라 결과 방향이 달라질 수 있다는 걸 압니다
- 이번 측정만으로는 원인을 단정할 수 없는 이유를 압니다
2026-09-30 기준으로 공식 저장소와 두 차례 직접 실행 결과를 확인했습니다.
ponytail은 AI한테 뭘 시키는 스킬인가
Claude Code의 스킬은 "이런 일이 오면 이렇게 해라"를 적어 둔 지침 묶음입니다. 설치해 두면 해당 상황에서 AI가 그 지침을 불러와 따릅니다.
ponytail은 회사에 오래 다닌, 말 없고 코드를 줄여 쓰는 시니어 개발자처럼 행동하라고 시키는 스킬입니다. 묻지 않은 기능, 필요 없는 라이브러리, 나중을 위한 뼈대를 먼저 빼라는 게 핵심입니다.
공식 저장소는 실제 저장소를 수정하는 작업에서 코드량이 평균 54%, 많게는 94%까지 줄었다고 소개합니다. 숫자만 보고 넘어가기보다 조건을 바꿔서 두 번 재 봤습니다.
코드를 쓰기 전에 거치는 7단 사다리
ponytail은 코드를 쓰기 전에 위에서부터 차례로 묻고, 처음 "예"가 나오는 칸에서 멈추게 합니다.
- 이게 꼭 있어야 하나? — 필요 없으면 안 만든다 (YAGNI)
- 이 프로젝트에 이미 있나? — 있으면 재사용
- 표준 라이브러리로 되나?
- 플랫폼 기본 기능으로 되나? — 날짜 입력은 여기서 멈춥니다. 브라우저에 이미
<input type="date">가 있습니다 - 이미 설치된 패키지로 되나?
- 한 줄로 되나?
- 여기까지 다 아니면 그때 최소한으로 작성
검증, 보안, 데이터 손실 방지, 접근성은 이 사다리에서 줄일 대상이 아니라고 지침에 따로 적혀 있습니다.
직접 해 봤다
같은 스킬을 조건을 바꿔 두 번 측정했습니다. Claude Code CLI, 모델은 둘 다 claude-haiku-4-5입니다.
1차: 읽기 도구 켬, 영어 요청 (2026-09-29)
파일 읽기 도구는 켜고 쓰기·실행 도구만 끈 채, 빈 임시 폴더에서 스킬 켬/끔 조건별로 3회씩 물었습니다. 응답의 코드 줄 수(빈 줄 제외)를 셌습니다.
① 날짜 입력
“Add a date picker to my plain HTML signup form for the user's birth date.”
코드 없이 되물은 1회는 점에서 뺐습니다.
② 디바운스
“Add debounce to a search input in vanilla JavaScript. It currently fires an API call on every keystroke.”
| 요청 | 조건 | 줄 수 | 중앙값 | 호출당 비용 중앙값 |
|---|---|---|---|---|
| 날짜 입력 | 스킬 없음 | 7 · 42 · 79 | 42 | $0.059 |
| 날짜 입력 | ponytail | 2 · 5 | 3.5 | $0.050 |
| 디바운스 | 스킬 없음 | 13 · 19 · 28 | 19 | $0.067 |
| 디바운스 | ponytail | 18 · 19 · 30 | 19 | $0.061 |
스킬 없는 쪽 한 회차(79줄)는 회원가입 폼 전체를 새로 썼습니다. 스킬을 켠 쪽 2줄짜리 회차의 코드는 <input type="date"> 한 줄이었습니다. 스킬 켠 3회 중 1회는 코드 대신 "폼 파일이 어디 있나요"라고 되물어서 집계에서 뺐습니다.
스킬 없음과 ponytail 모두 중앙값이 19줄이었습니다.
2차: 도구 전부 끔, 한국어 요청 (2026-09-30)
이번엔 도구와 훅을 모두 끈 채, 1차와 성격이 비슷한 요청 두 개를 한국어로 물었습니다. 역시 조건별 3회입니다.
① 생년월일 입력칸
“HTML 회원가입 폼에 생년월일 날짜 입력 칸을 붙이는 코드를 보여 줘”
② 두 수 더하기
“두 수를 더하는 파이썬 함수 코드를 보여 줘”
| 요청 | 조건 | 줄 수 | 중앙값 | 호출당 비용 중앙값 |
|---|---|---|---|---|
| 생년월일 입력칸 | 스킬 없음 | 2 · 5 · 11 | 5 | $0.031 |
| 생년월일 입력칸 | ponytail | 2 · 7 · 10 | 7 | $0.034 |
| 두 수 더하기 | 스킬 없음 | 6 · 6 · 10 | 6 | $0.030 |
| 두 수 더하기 | ponytail | 4 · 6 · 8 | 6 | $0.034 |
1차의 날짜 입력과 성격이 같은 요청인데, 이번엔 스킬을 켠 쪽이 더 길었습니다.
스킬 없음과 ponytail 모두 중앙값이 6줄이었습니다.
조건별 3회는 표본이 매우 작아서 숫자 하나에 결과가 크게 흔들립니다. 1차와 2차는 도구 활성화 여부(읽기 도구 켬 vs 전체 끔)와 요청 언어(영어 vs 한국어)가 동시에 달라서, 결과가 갈린 이유를 어느 한 조건 탓으로 단정할 수 없습니다. 코드 대신 되물어서 줄 수가 애매했던 회차는 집계에서 뺐습니다.
왜 두 측정의 방향이 갈렸나
1차는 파일 읽기 도구를 켜 둔 상태였고, 요청은 영어였습니다. 2차는 도구를 아예 껐고, 요청은 한국어였습니다. 두 조건이 동시에 바뀌었기 때문에 방향이 갈린 원인이 도구인지 언어인지, 이번 측정만으로는 가려낼 수 없습니다.
둘 다 빈 임시 폴더에서 받은 단답형 응답이라는 점은 같습니다. 실제 저장소를 읽고 여러 파일을 고치는 작업과는 조건 자체가 다릅니다.
도구와 언어가 동시에 바뀐 두 측정을 비교했을 뿐, 어느 조건이 결정적이었는지는 별도로 나눠 재 봐야 알 수 있습니다.
공식 벤치마크와 비교하면
공식 저장소의 최신 수치는 실제 FastAPI+React 저장소를 고치는 기능 티켓 12개, Haiku 4.5, 조건별 4회 기준입니다. 코드량(LOC) 54%, 토큰 22%, 비용 20%, 시간 27% 줄었다고 밝힙니다. 안전성 100%는 이 수치들과 같은 측정이 아니라, 별도의 안전성 평가 티어에서 나온 결과입니다.
예전에 공개했던 "80~94% 감소"라는 단발성 수치에 대해서는, 저장소 자체가 "바로 답하는 모델의 기준 답변이 설명 문장과 여러 대안까지 덧붙여서 부풀려진 비교였다"는 지적(이슈 #126)을 받아들여, 그 격차의 일부는 대화체 기준선 때문이라고 정정해 두었습니다.
공식 벤치마크는 에이전트가 실제 저장소를 읽고 여러 파일을 고치는 조건입니다. 제 두 측정은 모두 빈 임시 폴더에서 받은 단답이라, 어느 쪽도 공식 벤치마크와 조건이 같지는 않습니다.
설치하기
Claude Code 프롬프트 창에 아래 두 줄을 한 줄씩 따로 보냅니다.
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
항상 켜지는 자동 활성화는 Node.js 훅으로 동작합니다. node가 PATH에 없으면 스킬 자체는 쓸 수 있지만 자동 활성화는 조용히 꺼집니다.
기본 레벨은 full입니다. 대화 중 /ponytail lite, /ponytail full, /ponytail ultra, /ponytail off로 바꿀 수 있습니다.
자주 묻는 질문
코드가 짧아지면 품질이 떨어지지 않나요?
스킬 지침에는 입력 검증, 보안, 데이터 손실 방지, 접근성은 줄이지 말라고 따로 적혀 있고, 공식 안전성 평가에서도 100%를 유지했다고 밝힙니다. 다만 저희는 조건별 3회만 재 봤으므로 품질까지 확인했다고 말할 수는 없습니다.
비용도 항상 줄어드나요?
1차 측정에서는 스킬을 켠 쪽 비용 중앙값이 조금 낮았지만, 2차 측정에서는 오히려 스킬을 켠 쪽이 더 비쌌습니다. 두 측정 모두 3회라 이 차이가 스킬 때문인지 우연인지는 가늠하기 어렵습니다.
왜 같은 스킬인데 결과가 반대로 나왔나요?
두 측정은 도구 활성화 여부와 요청 언어가 동시에 달랐습니다. 어느 조건이 결정적이었는지는 이번 측정만으로 가려낼 수 없습니다.
출처
- ponytail 공식 저장소(GitHub)
- 직접 측정: Claude Code CLI, claude-haiku-4-5, 2026-09-29, 조건별 3회 (읽기 도구 켬, 영어 요청)
- 직접 측정: Claude Code CLI, claude-haiku-4-5, 2026-09-30, 조건별 3회 (도구 전부 끔, 한국어 요청)