📚 my-arxiv
← Community

Ponytail 정리

@hizieun·1개월 전(수정됨)

스크린샷 2026-06-26 오전 8.51.23.png

Ponytail 정리

"He says nothing. He writes one line. It works." AI 코딩 에이전트를 "회사에서 제일 게으른 시니어 개발자" 처럼 생각하게 만드는 도구. 가장 좋은 코드는 애초에 쓰지 않은 코드라는 철학.


한 줄 요약

날짜 입력창 하나를 요청하면 보통의 에이전트는 라이브러리(flatpickr)를 설치하고, 래퍼 컴포넌트를 만들고, 스타일시트를 추가하고, 타임존 논쟁까지 시작한다. Ponytail을 적용하면:

<!-- ponytail: browser has one -->
<input type="date">

이게 끝이다. 즉, 불필요한 과잉 설계(over-engineering)를 막고 작업에 꼭 필요한 최소한의 코드만 작성하게 만든다.


동작 원리 (핵심 사다리)

코드를 작성하기 전에, 에이전트는 다음 단계 중 가장 먼저 성립하는 곳에서 멈춘다:

1. 이게 꼭 존재해야 하나?   → 아니면: 만들지 않음 (YAGNI)
2. 표준 라이브러리로 되나?   → 그걸 사용
3. 네이티브 플랫폼 기능인가? → 그걸 사용
4. 이미 설치된 의존성인가?   → 그걸 사용
5. 한 줄로 되나?            → 한 줄로
6. 그제서야: 동작하는 최소한의 코드

게으르지만 부주의하지는 않다 (Lazy, not negligent). 다음 4가지는 절대 잘라내지 않는다:

  • 신뢰 경계(trust-boundary) 검증
  • 데이터 손실 처리
  • 보안 (security)
  • 접근성 (accessibility)

규칙은 "토큰을 최소화"하는 게 아니다. 작업에 필요한 것만 쓰되, 검증·에러처리·보안·접근성은 절대 빼지 않는다. 코드가 작아지는 건 짧게 짜서가 아니라 그게 필요한 전부이기 때문이다.


측정된 효과 (벤치마크)

실제 오픈소스 레포(FastAPI + React, full-stack-fastapi-template)를 헤드리스 Claude Code 세션으로 편집하게 하고, 남긴 git diff 로 점수를 매긴 결과 (피처 티켓 12개, n=4, Haiku 4.5):

no-skill 기준 대비코드량(LOC)토큰비용시간안전성
ponytail-54%-22%-20%-27%100%
caveman (단순 간결 프롬프트)-20%+7%+3%+2%100%
"YAGNI + 한 줄" 프롬프트-33%-14%-21%-30%95%
  • ponytail은 모든 지표를 줄이면서도 안전성 100%를 유지하는 유일한 방식.
  • 과잉 설계 함정이 큰 곳에서 절감 효과 극대화 (날짜 선택기 404줄 → 23줄, 색상 선택기 287줄 → 23줄).
  • 이미 최소한인 코드에서는 절감 효과가 거의 0에 가까움.
  • 평균 ~54% 절감, 최대 94%까지.
  • 단, GPT-5.5처럼 사다리 단계를 길게 추론하는 모델에서는 오히려 비용/지연이 늘 수 있음.

Claude Code 설치

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

데스크톱 앱(UI)에는 /plugin 명령이 없으므로: Customize → 개인 플러그인 옆 + → Create plugin and add marketplace → Add from repository → 레포 URL 입력.

플러그인은 두 개의 작은 Node.js 라이프사이클 훅을 실행하므로 node가 PATH에 있어야 한다. (Nix/nvm 사용자는 비대화형 셸 PATH에도 있어야 함.) 없으면 스킬 자체는 동작하지만 always-on 활성화는 조용히 비활성된다.


명령어 (Commands)

명령어기능
/ponytail [lite | full | ultra | off]강도 설정 또는 끄기. 인자 없으면 현재 레벨 표시
/ponytail-review현재 diff를 과잉 설계 관점에서 리뷰하고 삭제 목록 제시
/ponytail-auditdiff뿐 아니라 레포 전체를 과잉 설계 관점에서 감사
/ponytail-debt미뤄둔 ponytail: 단축 처리들을 장부로 수집 ("나중에"가 "영영 안 함"이 되지 않게)
/ponytail-gain벤치마크 기준 측정된 효과(코드↓·비용↓·속도↑) 스코어보드 표시
/ponytail-help위 명령어 빠른 참조
  • 명령어는 스킬 지원 호스트(Claude Code, Codex, OpenCode, Gemini, pi)에서만 동작.
  • /ponytail ultra는 "코드베이스가 당신에게 개인적으로 잘못했을 때"를 위한 최강 모드.

강도 모드 (Levels)

  • lite / full / ultra / off 4단계.
  • 기본값은 full.
  • 새 세션 기본 레벨 설정 방법:
    • 환경변수 PONYTAIL_DEFAULT_MODE (lite/full/ultra/off)
    • 또는 설정 파일 ~/.config/ponytail/config.jsondefaultMode 필드 (Windows는 %APPDATA%\ponytail\config.json)
  • 별도 설정 파일은 필수가 아님.

기억해둘 핵심 포인트

  1. YAGNI 우선 — "이게 꼭 필요한가?"를 먼저 묻고, 아니면 안 만든다.
  2. 기존 것 재사용 순서 — 표준 라이브러리 → 네이티브 기능 → 설치된 의존성 → 한 줄 → 최소 구현.
  3. 안전장치는 예외 — 검증·데이터손실·보안·접근성은 절대 생략 금지.
  4. 항상 켜져 있음(always-on) — 매 세션 룰셋이 주입되며 /ponytail 명령으로 강도 조절.
  5. 효과는 과잉 설계가 심한 작업에서 극대화, 이미 간결한 코드에는 영향이 거의 없음.

FAQ 요약

  • 설정 파일 필요? 아니오. 선택사항.
  • 꼭 120줄짜리 캐시 클래스가 필요하면? 고집하면 만들어준다 — 느리게, 정확하게, 당신을 쳐다보면서.
  • 확장성은? 안 쓴 코드는 무한히 확장된다. 버그 0, CVE 0, 가동률 100%.
  • 왜 이름이 "ponytail"인가? "당신은 이유를 정확히 알고 있다."

댓글 1

로그인하고 댓글을 남겨보세요.