Ponytail: 기존 코드를 재사용하고 필요한 만큼만 고치게 하는 스킬
AI 코딩 도구가 기존 코드를 재사용하고 필요한 만큼만 고치도록 돕는 지침·스킬 플러그인이에요.
주요 기능
- 기존 기능·표준 라이브러리·플랫폼 기능을 먼저 살핀 뒤 작은 변경을 택하도록 안내해요.
- 변경 diff 리뷰, 저장소 전체 감사, 미뤄 둔 shortcut 항목 정리 명령을 제공해요.
- lite/full/ultra/off 강도 설정과, 일부 호스트의 자동 문맥 주입을 지원해요.
- Claude Code의 band와 로컬 board는 비용·시간·토큰·재사용·테스트 상태를 보여줍니다. 다른 호스트에는 동일 기능이 보장되지 않습니다.
구조
핵심은 skills 아래의 프롬프트와 AGENTS.md 지침이에요. .claude-plugin·.codex-plugin 등 호스트별 어댑터와 Node.js lifecycle hook이 모드 상태·문맥 전달을 처리해요. package.json과 Claude 플러그인 매니페스트의 버전은 5.3.3이며 hooks/band/register.tsx에서 로컬 CSV·HTML 기록 및 선택적 webhook 전송 코드를 확인했어요. 독립 AI 모델이나 자체 IDE는 아니에요.
누구에게 쓸모 있나요
Claude Code·Codex·Cursor 등에서 AI의 과도한 코드 작성과 추상화를 줄이고 코드 리뷰 습관을 정리하려는 개발자에게 적합해요.
설치 전 준비
- 지원되는 AI 코딩 호스트와 해당 호스트의 인증·사용 권한이 필요해요.
- Claude/Codex 플러그인 및 Cursor hooks는 비대화형 셸에서도 node가 PATH에 있어야 해요. 문서에서 Node의 특정 최소 버전은 확정하지 않았어요.
- 규칙 파일만 복사하는 방식과 hooks 플러그인 방식은 기능 범위가 달라요. 기존 AGENTS.md나 팀 규칙을 덮어쓰지 말고 검토·통합해야 해요.
- Claude band는 문서상 Claude Code 2.1.290 이상 터미널 또는 Desktop Code 환경이 필요하며 VS Code chat·cloud·claude -p에는 표시되지 않습니다.
- 호스트가 지원하는 macOS·Windows·Linux 환경; 플러그인의 OS 독립 실행 보장은 아님
- Claude Code·Codex·Cursor·OpenCode 등 호스트별 지원 단계가 다름
- 명령·hooks·band 지원은 INSTALL.md에 명시된 호스트·버전 기준
설치 방법
- Claude Code 문서 절차는 /plugin marketplace add DietrichGebert/ponytail 을 보낸 뒤, 별도 메시지로 /plugin install ponytail@ponytail 을 실행하는 방식이에요. 이번 분석에서는 실행하지 않았어요.
- Codex 문서 절차는 codex plugin marketplace add DietrichGebert/ponytail 다음 codex plugin add ponytail@ponytail 예요. 그 뒤 /hooks에서 두 lifecycle hook을 직접 검토·신뢰하고 새 스레드를 여는 방식으로 설명되어 있어요.
- 다른 호스트는 INSTALL.md의 해당 항목을 따릅니다. 지침만 쓰려면 AGENTS.md를 기존 프로젝트 규칙과 통합하거나 skill을 등록해요. 플러그인 전체 설치와 동일한 명령·자동 활성화를 기대하면 안 돼요.
- 공식 안내 출처는 DietrichGebert/ponytail 또는 npm의 @dietrichgebert/ponytail예요. 이 프로젝트는 EXE·DLL 배포 프로그램이 아니라는 README의 구분을 확인했어요.
사용 방법
- 새 작업에서 활성 모드를 확인하고 필요하면 /ponytail lite·full·ultra·off로 조절해요. 호스트에 따라 상태 지속 여부가 달라요.
- /ponytail-review로 변경 내용을 검토하고 /ponytail-audit로 넓은 저장소 범위를 점검해요. Codex에서는 문서상 $ponytail:ponytail-review처럼 네임스페이스가 붙습니다.
- Claude band·board의 수치는 도구가 기록한 지표예요. 테스트가 실제로 무엇을 검증했는지는 별도 확인해요. 과거 세션 import는 과거 transcript를 읽어 로컬 기록에 추가해요.
- 처음에는 작은 변경에 적용하고 결과 diff와 기존 팀 규칙 충돌을 살핍니다. 간결함을 이유로 검증·오류 처리·접근성을 삭제하지 않는 것이 프로젝트의 명시된 취지예요.
비용과 API 키
Ponytail 자체의 API 키나 자체 추론 서버는 필요하지 않습니다. 설치한 AI 호스트의 구독·API 비용은 계속 적용돼요. 비용·시간 절감 수치는 제작자가 특정 모델·과제에서 측정한 벤치마크이며 일반적인 절감 보장이 아니에요.
라이선스
MIT. 실제 LICENSE와 package.json을 확인했어요. 플러그인 배포 시 고지 유지가 필요하며, 호스트 프로그램과 모델 서비스의 약관은 별도예요.
주의사항과 알려진 이슈
- hook은 로컬에서 코드로 실행되고 일부 상태를 플러그인 폴더 밖에 기록해요. 단순한 문서 추가와 권한 범위가 다르므로 신뢰 여부를 별도로 검토해야 해요.
- 기본 board는 로컬이지만 webhookUrl을 설정하면 외부로 기록이 전송돼요. 현재 매니페스트의 sendNames 기본값은 true이고 register.tsx도 기본 포함으로 처리해요. 작업명 또는 첫 프롬프트 일부가 전송될 수 있으므로 webhook을 켜기 전에 이름 전송 옵션을 확인하세요.
- Cursor 경로 문맥 주입과 band 성능에 관한 열린 이슈가 있어요. 공격 지시를 포함한 예제는 재현하거나 실행하지 않았어요.
- 규칙은 모델 판단을 안내할 뿐 코드 정확성·보안 검사를 대신하지 않습니다. 과한 단순화가 필요한 설계·테스트를 생략하게 만들지 않는지 사람이 diff를 확인해야 해요.
- 호스트·프로젝트·세션마다 모드 저장 범위가 달라요. 다른 세션의 모드와 충돌하거나 규칙 파일과 hooks가 중복될 수 있으므로 현재 활성 상태를 확인해요.
#1312: webhook의 작업명 기본 전송 문제 제기
열린 보고를 실제 플러그인 매니페스트와 register.tsx의 기본값 처리로 대조했어요. webhook을 설정하지 않으면 이 전송 경로는 동작하지 않습니다.
#1311: Cursor workspace 경로의 문맥 주입 위험 보고
특수하게 만든 경로명이 hook 문맥에 들어가는 위험을 제기해요. cursorRuleNotice에서 경로 문자열을 결합하는 코드를 확인했지만 공격 성공을 실험하지 않았어요.
#1310: band 숨김 후에도 탐색·기록이 계속되어 느려지는 보고
WSL2의 Windows 드라이브 저장소 사례예요. 사용자 측 시간 측정이며 이번 환경에서 성능을 검증하지 않았어요.
확인 범위
확인 날짜: 2026-10-29
확인 커밋: 96608e078b2d5ea607c5c3b8b5a54d1c1fba6846
확인한 범위: README·INSTALL·package.json·LICENSE·Claude 플러그인 매니페스트·runtime 및 band 소스·릴리스 v5.3.3·최근 이슈를 확인했어요.
확인 한계: 설치나 hook 실행, AI 벤치마크 재현, webhook 전송을 하지 않았어요. 호스트별 모든 설치 명령의 최신 동작은 직접 검증하지 않았어요.