6월 12일 공개된 파일 하나가 두 달 반 만에 GitHub 스타 11만 3,659개를 모았다. 파일 이름은 ponytail, 실체는 100줄 안팎의 마크다운 문서다. 새 모델도 새 편집기도 아니고 그냥 규칙 하나다. 그런데 이 규칙을 처음 퍼뜨린 숫자, “AI가 쓰는 코드를 80~94% 줄여준다”는 주장은 같은 두 달 반 사이 두 번 다시 쓰였다.
검증이 끝난 지금 통계적으로 견고하게 남은 숫자는 하나뿐이다. 비용 10% 절감. 나머지는 유의성이 약하거나 이미 철회됐다. ponytail이 뭐고 무엇이 진짜 확인됐는지, 도입 전에 뭘 봐야 하는지 정리했다.
결론부터 말하면 코드 감소 효과는 독립 재현에서 통계적 유의성을 확보하지 못했고(p=0.088), 검증을 통과한 지표는 비용 절감 10.3%뿐이다(p=0.004). 아래 30초 요약과 표에서 벤더 주장이 검증 단계마다 어떻게 낮아졌는지 확인할 수 있다.
- 초기 “코드 80~94% 감소” 주장은 철회됐다. 방법론 반박을 받고 README는 “평균 54%”로 낮췄다.
- 독립 재현에서는 그 54%마저 15.4%로 나타났다. 통계적으로는 우연일 가능성을 배제하기 어렵다(p=0.088).
- 통계적으로 견고하게 확인된 지표는 비용 절감 10.3% 하나다. 80개 쌍대 작업 재현에서 p=0.004로 나왔다.
- 광고된 설치법으로는 10세션 중 0회 자동 활성화됐다. 효과 이전에 규칙이 실제로 켜졌는지부터 확인해야 한다.
- 디자인 시스템을 쓰는 팀에서는 규칙이 오히려 역효과를 낼 수 있다. 네이티브 우선 순서가 팀 컨벤션과 충돌한다.
ponytail이 뭐길래 두 달 반 만에 스타 11만 개를 모았나
ponytail은 AI 코딩 에이전트가 코드를 과하게 쓰지 못하게 막는 규칙 문서다. Claude Code 같은 에이전트 세션이 열릴 때 자동으로 끼어들어 새 코드를 쓰기 전에 “꼭 필요한가”부터 차례로 묻게 만든다.
집에 못 하나 박으려는데 인턴이 전동 드릴 세트와 사다리, 작업대까지 새로 사 오는 장면을 떠올리면 된다. AI 코딩 에이전트가 딱 그렇게 일한다. 날짜 입력 칸 하나를 만들어 달라고 하면 브라우저가 이미 갖고 있는 기능 대신 달력 라이브러리를 새로 붙이고 400줄짜리 컴포넌트를 만들어 낸다. 모델이 부족해서가 아니라, 사용자에게 최대한 친절하게 답하도록 학습된 결과다.
ponytail이 하는 일은 그 인턴 앞에 사내 규칙 한 장을 붙여 두는 것과 비슷하다. “이게 꼭 있어야 하나 → 우리 코드에 이미 있나 → 표준 라이브러리로 되나 → 브라우저 기본 기능으로 되나 → 이미 깔린 도구로 되나 → 한 줄로 되나”를 순서대로 묻고 처음 걸리는 칸에서 멈추게 한다. Anthropic 직원이 사내에서 쓰던 ELI5 스킬도 그랬듯, 에이전트에게 강한 스킬일수록 실체는 짧은 문서인 경우가 많다. ponytail도 마찬가지다.
이 규칙이 두 달 반 만에 스타 11만 개를 모은 건 벤치마크 덕이 아니다. 날짜 선택기 하나에 400줄을 써낸 공통 경험과, 그걸 인격으로 압축한 카피가 확산을 만들었다. 문제는 화제성이 만든 초기 수치가 검증 없이 그대로 퍼졌다는 점이다.
코드 감소율이 왜 80%에서 15%까지 떨어졌나
ponytail의 코드 감소 주장은 공개 이후 두 단계에 걸쳐 낮아졌다. 처음 SNS로 퍼진 “80~94% 감소”는 방법론 반박을 받아 README에서 “평균 54%”로 수정됐고 그 54%조차 독립 재현에서는 15.4%로 나타났다.
시작은 Scott Logic CTO Colin Eberhardt였다. 그는 원 벤치마크가 6,232줄짜리 저장소를 평가한다고 표기했지만 실제 대상은 약 100줄짜리 마크다운 파일이었다는 걸 짚었다. 직접 promptfoo와 Haiku로 재현해 기준선 108줄을 6.9줄까지 줄이면서도 정확도 100%를 유지했다. 일곱 단어짜리 YAGNI 프롬프트가 ponytail보다 높은 점수를 냈다는 뜻이다. 유지보수자는 이 비판을 받아들여 FastAPI·React 실저장소 12개 기능 기준으로 벤치마크를 다시 짜고 이전 수치를 “작업별 상한”으로 재분류했다. 그다음 JetBrains가 SkillsBench 80개 쌍대 작업으로 다시 재현했다.
p값이 뭔지 짚고 가면, 이 차이가 순전히 우연으로 나왔을 확률을 뜻한다. 0.05보다 작으면 우연으로 보기 어렵다고 판단하고 0.05보다 크면 우연일 가능성을 배제할 수 없다고 본다.
| 지표 | 벤더 주장 | 독립 재현 | 판정 |
|---|---|---|---|
| 초기 코드 감소 (X 확산) | 80~94% | — | 철회 |
| 코드 감소 (현 README) | 평균 54% | 15.4% (p=0.088) | 유의성 약함 |
| 비용 절감 | 20% | 10.3% (p=0.004) | 검증됨 |
JetBrains가 이 수치를 재현한 조건은 이렇다. SkillsBench 80개 쌍대 작업을 Harbor 0.18 샌드박스에서 claude-sonnet-5로 251회 시도했고 총 비용은 246.09달러였다. 같은 조건에서 비용은 10.3% 줄었고 p값은 0.004로 나왔다. 코드 줄 수와 달리 비용 절감은 우연으로 보기 어렵다.

이 결과는 “코드를 얼마나 줄이느냐”보다 “토큰 비용을 얼마나 줄이느냐”가 더 재현 가능한 지표라는 걸 보여준다. Netflix Headroom이 입력 토큰을 60~95% 줄이는 방식이나 작은 모델로 에이전트 비용을 10~30배 줄이는 접근도 같은 지점을 가리킨다. 코드 라인 수는 눈에 보이지만 자주 흔들리고 비용은 청구서에 찍히는 만큼 흔들림이 적다.
비용 절감 10%는 왜 믿을 만한가, 그리고 조건은 뭔가
비용 절감 10.3%가 신뢰할 만한 이유는 표본 크기와 재현 절차 덕분이다. 다만 이 효과는 모든 작업에서 똑같이 나오지 않는다.
효과는 조건부다. 기저 에이전트가 크게 과잉 작성하는 작업에서는 코드가 31% 줄었지만 이미 최소한으로 짜는 작업에서는 거의 변화가 없었다. 이 도구는 평균값으로 팔렸지만 실제로는 에이전트가 유난히 오버하는 작업에서만 확실히 작동한다는 뜻이다.
JetBrains 재현에서는 규칙이 실제로 켜지지 않았다는 문제도 드러났다. 광고된 방식으로 설치했을 때 10세션 중 자동 활성화된 건 0회였다. 규칙은 플러그인의 세션 시작 훅으로만 실제로 주입됐다. 단축한 부분을 ponytail: 주석으로 표시하라는 규칙도 80회 시도 중 1회만 지켜졌다. 지시 준수는 보장이 아니라 확률이다.
Decision Ladder 7단계는 실제로 어떻게 작동하나
ponytail의 핵심은 새 코드를 쓰기 전 7개 질문을 순서대로 던지고 처음 걸리는 지점에서 멈추게 하는 규칙 하나다. 이 규칙은 에이전트 세션이 시작될 때 자동으로 컨텍스트에 주입된다.
- 존재해야 하나? → 아니면 스킵 (YAGNI)
- 이 코드베이스에 이미 있나? → 재사용
- 표준 라이브러리로 되나? → 사용
- 네이티브 플랫폼 기능으로 되나? → 사용 (충돌 지점)
- 이미 설치된 의존성으로 되나? → 사용, 새 의존성 금지
- 한 줄로 되나? → 한 줄로
- 그제야 작동하는 최소 코드
이 순서를 세션마다 사람이 다시 입력할 필요는 없다. 세션 시작 훅이 세션이 열릴 때 규칙을 자동으로 컨텍스트에 넣는다. Claude 에이전트 전체 속도를 끌어올린 규칙 하나도 같은 방식을 쓴다. 프롬프트 하나가 아니라 세션마다 자동으로 켜지는 시스템 규칙이 효과를 만든다는 공통점이 있다. ponytail은 여기에 강도 3단계(lite·full·ultra)와 감사 명령어를 더해 Claude Code·Codex·Copilot 등 20종 이상 에이전트에 동시 배포된다.
어떤 팀에서 이 규칙이 역효과를 내나
이미 디자인 시스템을 쓰는 팀에서는 4단계 “네이티브 우선” 규칙이 오답을 만든다. 팀 컨벤션과 규칙이 정면으로 충돌하기 때문이다.
<input type="date">를 설치된 UI 라이브러리보다 우선하는 4단계는, shadcn/ui 같은 디자인 시스템이 이미 깔린 프로젝트에서는 오히려 일관성을 깨뜨린다. 팀이 이미 투자한 컴포넌트 대신 브라우저 기본 기능을 쓰라고 하니, 규칙이 팀 표준과 부딪힌다.
규칙 플러그인은 기술 난이도가 낮다. 마크다운 100줄이면 비슷한 걸 만들 수 있다. AI 에이전트 도구의 경쟁력을 모델이 흡수하는 이유를 보면, 이런 얇은 레이어형 도구는 기저 모델이 좋아질수록 존재 이유가 옅어질 위험이 있다. ponytail이 지금 잡는 문제, 즉 모델이 불필요하게 장황해지는 습관은 다음 모델 세대에서 이미 줄어들 수도 있다.
그래서 지금 도입해도 될까
코드 라인 수가 아니라 비용을 기준으로 판단하면 답이 갈린다. 파일럿을 돌리되, 규칙이 실제로 켜졌는지부터 확인하는 게 먼저다.
- 팀 디자인 시스템이 없거나 가벼운 프로젝트에서 작업한다
- 에이전트가 자잘한 컴포넌트마다 불필요한 라이브러리를 자주 끌어온다
- 절감 KPI를 코드 줄 수가 아니라 토큰 청구 비용으로 잡을 수 있다
- shadcn/ui 같은 디자인 시스템에 이미 투자한 프로젝트다
- 단순 작업이 많아 에이전트가 애초에 과잉 작성을 별로 안 한다
- 설치만 하고 세션마다 실제 활성화 여부를 확인할 여력이 없다
이 사례가 보여주는 건 도구 하나의 성능이 아니라 검증의 속도다. 100줄짜리 마크다운을 복제하는 데는 하루가 걸리지 않지만 그 효과를 통계적으로 증명하는 데는 246달러와 251회의 에이전트 시도가 들었다. 화제성과 증명 사이의 이 격차는 ponytail만의 문제가 아니라 규칙·스킬 카테고리 전체가 안고 있는 문제다.
당장 할 수 있는 건 하나다. README 수치를 그대로 사내 자료에 옮기지 말고 “벤더 주장 54% vs 독립 재현 15.4%(p=0.088)” 식으로 병기하는 것. 도입을 검토한다면 코드 줄 수가 아니라 청구서에 찍히는 비용으로 파일럿을 설계한다.
참고 자료
- GitHub — DietrichGebert/ponytail
- Scott Logic — Ponytail? YAGNI!
- InfoQ — Ponytail Agent Skill Corrects its Own Benchmark after Contributor Challenge
- JetBrains AI Blog — Ponytail Skill for Claude Code: Does It Really Cut Tokens
함께 읽으면 좋은 글
Anthropic 직원이 사내에서 쓰던 ELI5 스킬, 열어보니 프롬프트 5줄이었다강한 스킬일수록 실체는 짧은 문서라는 걸 보여준 또 다른 사례

