10 KiB
Ponytail
No dice nada. Escribe una línea. Funciona.
80-94% menos código · 3-6× más rápido · 47-77% más barato
Mediana de 10 ejecuciones con Haiku, Sonnet y Opus. Reprodúcelo tú mismo.
Lo conoces. Cola de caballo larga. Lentes ovalados. Lleva más tiempo en la empresa que el control de versiones. Le muestras cincuenta líneas; las mira, no dice nada, y las reemplaza por una.
Ponytail lo pone dentro de tu agente de IA.
Antes / después
Le pides un selector de fechas. Tu agente instala flatpickr, escribe un componente wrapper, agrega un stylesheet, y empieza una discusión sobre zonas horarias.
Con ponytail:
<!-- ponytail: el browser ya tiene uno -->
<input type="date">
Más sobrevivientes en examples/.
Números
Cinco tareas del día a día (validador de email, debounce, suma de CSV, temporizador, rate limiter), tres modelos, tres variantes: sin skill, el skill caveman, y ponytail. Diez ejecuciones por celda, mediana reportada.
80-94% menos código, 47-77% menos costo, y 3-6× más rápido que un agente sin skill, en todos los modelos. Cada atajo que toma ponytail queda marcado en el código con un comentario ponytail: que nombra la ruta de actualización. Reprodúcelo: npx promptfoo eval -c benchmarks/promptfooconfig.yaml. Método y números completos: benchmarks/. Tareas de nivel producción, donde un agente sin restricciones se infla mucho más, están documentadas en benchmarks/results/.
Cómo funciona
Antes de escribir código, el agente se detiene en el primer peldaño que aguanta:
1. ¿Necesita existir esto? → no: omitirlo (YAGNI)
2. ¿Lo hace la stdlib? → úsala
3. ¿Es una feature nativa? → úsala
4. ¿Una dependencia ya instalada? → úsala
5. ¿Cabe en una línea? → una línea
6. Solo entonces: el mínimo que funciona
Flojo, no negligente: la validación en límites de confianza, el manejo de pérdida de datos, la seguridad y la accesibilidad nunca están en riesgo.
Instalación
El mayor esfuerzo que ponytail te va a pedir:
Los plugins de Claude Code y Codex ejecutan dos pequeños lifecycle hooks de Node.js, así que node debe estar en tu PATH (nota para usuarios de Nix/nvm: debe estar en el PATH del shell no-interactivo). Si no lo está, los skills igualmente funcionan — la activación automática simplemente queda en silencio en vez de lanzar un error en cada prompt.
Claude Code
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
Codex
codex plugin marketplace add DietrichGebert/ponytail
codex
Abre /plugins, selecciona el marketplace de Ponytail e instala Ponytail. Luego abre /hooks, revisa y autoriza sus dos lifecycle hooks, y empieza un nuevo hilo.
Esta misma instalación cubre también la app de escritorio de Codex: reinicia la app después de instalar y detecta el plugin automáticamente.
GitHub Copilot CLI
copilot plugin marketplace add DietrichGebert/ponytail
copilot plugin install ponytail@ponytail
En una sesión interactiva de Copilot CLI, usa los equivalentes con slash:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
Copilot CLI agrupa los comandos del plugin bajo el nombre del plugin. Por ejemplo:
/ponytail:ponytail ultra
/ponytail:ponytail-review
Pi agent harness
pi install git:github.com/DietrichGebert/ponytail
OpenCode
Ejecuta OpenCode desde un checkout de este repo (el plugin reutiliza sus hooks/ y skills/), y agrega esto a opencode.json:
{ "plugin": ["./.opencode/plugins/ponytail.mjs"] }
Inyecta el ruleset en cada turno con el nivel activo; agrega los comandos /ponytail (ver Comandos). OpenCode también carga automáticamente el AGENTS.md de este repo, así que las reglas aplican incluso sin el plugin. El plugin agrega los niveles lite/full/ultra/off.
El path ./ se resuelve contra el opencode.json de tu proyecto; para compartir un único checkout entre proyectos, apunta al path absoluto del .mjs (encuentra sus hooks/ y skills/ relativo a su propio archivo).
Gemini CLI
gemini extensions install https://github.com/DietrichGebert/ponytail
Carga el ruleset como contexto permanente en cada sesión y registra los comandos /ponytail; los skills/ también se incluyen, activados cuando una tarea los necesita.
Antigravity CLI
Google está renombrando Gemini CLI a Antigravity CLI (el binario agy); la misma extensión se instala ahí:
agy plugin install https://github.com/DietrichGebert/ponytail
Reutiliza el gemini-extension.json de este repo. Una diferencia: Antigravity convierte los comandos /ponytail en skills, así que los escribes en el chat (por ejemplo /ponytail-review como mensaje) en vez de seleccionarlos de un menú slash. Hasta que la migración se complete (alrededor del 18 de junio de 2026), gemini extensions install también funciona. Para usarlo como regla permanente, coloca el ruleset en .agents/rules/.
OpenClaw
clawhub install ponytail
Instala ponytail como skill de OpenClaw desde ClawHub; los skills de review, audit, debt y help se instalan igual (clawhub install ponytail-review, etc.). OpenClaw lo aplica en tareas de código y también lo expone como comando /ponytail. Sin ClawHub, copia .openclaw/skills/ponytail a ~/.openclaw/skills/.
Eso fue todo. Él estaría orgulloso. No lo va a decir.
Activo en cada sesión, con un puñado de comandos (ver Comandos). /ponytail ultra existe para cuando el codebase te hizo algo personal. El texto de inicio y de cambio de modo muestra el nivel activo.
Configura el nivel para cada nueva sesión con la variable de entorno PONYTAIL_DEFAULT_MODE (lite/full/ultra/off), o con un campo defaultMode en ~/.config/ponytail/config.json (%APPDATA%\ponytail\config.json en Windows). El default es full.
Cursor, Windsurf, Cline, GitHub Copilot (editor), Aider, Kiro: copia el archivo de reglas correspondiente de este repo (.cursor/rules/, .windsurf/rules/, .clinerules/, .github/copilot-instructions.md, AGENTS.md, .kiro/steering/).
Kiro: copia .kiro/steering/ponytail.md a ~/.kiro/steering/ (global) o .kiro/steering/ en tu proyecto.
Fallback de GitHub Copilot CLI (modo solo instrucciones): lee AGENTS.md y .github/copilot-instructions.md en un proyecto, o copia las reglas a ~/.copilot/copilot-instructions.md para ejecutar ponytail en todos tus proyectos. Esta vía mantiene la guía permanente, pero no agrega switches de modo ni hooks.
VS Code con la extensión Codex lee AGENTS.md, que este repo incluye, así que funciona desde la raíz del repo sin configuración adicional (~/.codex/AGENTS.md hace a Codex global).
Qué archivos corresponden a qué agente: Portabilidad de agentes.
Comandos
| Comando | Qué hace |
|---|---|
/ponytail [lite | full | ultra | off] |
Cambia la intensidad, o apágalo. Sin argumento, reporta el nivel actual. |
/ponytail-review |
Revisa el diff actual en busca de sobre-ingeniería y devuelve una lista de qué eliminar. |
/ponytail-audit |
Audita el repo completo en busca de sobre-ingeniería, no solo el diff. |
/ponytail-debt |
Recolecta los atajos marcados con ponytail: que dejaste pendientes en un registro, para que "después" no se convierta en "nunca". |
/ponytail-help |
Referencia rápida de los comandos anteriores. |
Los comandos requieren un host compatible con skills (Claude Code, Codex, OpenCode, Gemini, pi). En Codex son skills; se invocan con @ (@ponytail-review). Los adaptadores de solo instrucciones (Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) cargan el ruleset permanente sin los comandos.
Desarrollo
Al cambiar el texto compacto de las reglas, mantén alineadas las copias en los adaptadores:
node scripts/check-rule-copies.js
npm test
El paquete de skills de OpenClaw (.openclaw/skills/) se genera desde skills/; ejecuta node scripts/build-openclaw-skills.js después de cambiar un skill — la suite de tests falla si está desactualizado.
El benchmark de correctness lanza Python para las verificaciones de email y CSV; se prueba python3 antes que python. Las verificaciones de CSV requieren pandas instalado localmente.
FAQ
¿Necesita un archivo de configuración?
No. Un opcional ~/.config/ponytail/config.json o la variable PONYTAIL_DEFAULT_MODE pueden fijar el nivel default, pero nada es obligatorio.
¿Y si realmente necesito la clase de caché de 120 líneas? No la necesitas. Insiste de todas formas y él la va a construir. Despacio. Correctamente. Mirándote.
¿Escala? El código que nunca escribiste escala infinitamente. Cero bugs, cero CVEs, 100% uptime desde siempre.
¿Por qué "ponytail"? Ya sabes exactamente por qué.
Licencia
MIT. La licencia más corta que funciona.
