<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Ponytail on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/ponytail/</link>
        <description>Recent content in Ponytail on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Wed, 24 Jun 2026 21:02:49 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/ponytail/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Guía de instalación de Ponytail: cómo usarlo con Codex, Claude Code y Gemini CLI</title>
        <link>https://knightli.com/es/2026/06/24/ponytail-ai-agent-coding-plugin-guide/</link>
        <pubDate>Wed, 24 Jun 2026 21:02:49 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/06/24/ponytail-ai-agent-coding-plugin-guide/</guid>
        <description>&lt;p&gt;Ponytail es un plugin interesante para agentes de programación con IA.&lt;/p&gt;
&lt;p&gt;No intenta hacer que la IA sea más llamativa. Hace lo contrario: le recuerda al agente que se detenga antes de escribir código y revise si la tarea puede resolverse sin código nuevo, reutilizando algo existente, usando una biblioteca estándar o aprovechando una capacidad nativa del navegador o de la plataforma.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/DietrichGebert/ponytail&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DietrichGebert/ponytail&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si te pasa esto a menudo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Solo querías un selector de fecha, pero la IA instaló una librería de componentes, escribió un wrapper, añadió estilos y empezó a hablar de zonas horarias.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Solo querías cambiar una pequeña lógica, pero la IA extrajo tres capas de helpers.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Solo querías corregir un bug, pero la IA refactorizó medio archivo.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La idea de Ponytail encaja muy bien: hacer que la IA se comporte como un desarrollador senior perezoso pero fiable, buscando primero el cambio mínimo.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-ponytail&#34;&gt;Qué es Ponytail
&lt;/h2&gt;&lt;p&gt;Ponytail puede entenderse como un conjunto de reglas de trabajo para agentes de programación con IA.&lt;/p&gt;
&lt;p&gt;Antes de escribir código, le pide al agente seguir una escalera:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. ¿Esto realmente necesita existir?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. ¿Ya existe en el código del proyecto?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. ¿Puede hacerlo la biblioteca estándar?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. ¿Puede hacerlo la plataforma de forma nativa?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5. ¿Puede hacerlo una dependencia ya instalada?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6. ¿Puede resolverse con una línea?
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7. Solo al final, escribir el código nuevo justo necesario.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;No es code golf ni búsqueda ciega de brevedad. Es una forma de evitar trabajo innecesario: borrar cuando se puede, reutilizar cuando se puede y usar capacidades nativas antes de reinventar la rueda.&lt;/p&gt;
&lt;p&gt;El README incluye un ejemplo típico: un selector de fecha.&lt;/p&gt;
&lt;p&gt;Una IA normal podría instalar &lt;code&gt;flatpickr&lt;/code&gt;, escribir un wrapper, añadir estilos y explicar un montón de casos límite.&lt;/p&gt;
&lt;p&gt;El estilo Ponytail primero piensa en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;input&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ese es el tipo de juicio que intenta entrenar.&lt;/p&gt;
&lt;h2 id=&#34;no-resuelve-código-corto-sino-menos-sobrediseño&#34;&gt;No resuelve &amp;ldquo;código corto&amp;rdquo;, sino &amp;ldquo;menos sobrediseño&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Ponytail se malinterpreta fácilmente como &amp;ldquo;hacer que la IA escriba una sola línea&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Una descripción más precisa sería: hacer que la IA evite diseño innecesario.&lt;/p&gt;
&lt;p&gt;Mantiene los límites de seguridad. No anima a eliminar validación, manejo de errores, seguridad o accesibilidad necesarios. Lo necesario se sigue haciendo; simplemente evita traer complejidad extra para una petición pequeña.&lt;/p&gt;
&lt;p&gt;Encaja bien con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pequeñas funciones frontend;&lt;/li&gt;
&lt;li&gt;Controles de formulario;&lt;/li&gt;
&lt;li&gt;Funciones auxiliares simples;&lt;/li&gt;
&lt;li&gt;Cambios de configuración;&lt;/li&gt;
&lt;li&gt;Corrección de bugs pequeños;&lt;/li&gt;
&lt;li&gt;Revisión de código para detectar sobreimplementación;&lt;/li&gt;
&lt;li&gt;Restricciones antes de que la IA edite código;&lt;/li&gt;
&lt;li&gt;Pedir al agente que busque implementaciones existentes primero.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No debe entenderse como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escribir siempre una sola línea;&lt;/li&gt;
&lt;li&gt;No añadir nunca dependencias;&lt;/li&gt;
&lt;li&gt;No refactorizar nunca;&lt;/li&gt;
&lt;li&gt;Sacrificar mantenibilidad por reducir código;&lt;/li&gt;
&lt;li&gt;Saltarse la lectura del código por velocidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ponytail es perezoso para implementar, no para leer.&lt;/p&gt;
&lt;h2 id=&#34;herramientas-compatibles&#34;&gt;Herramientas compatibles
&lt;/h2&gt;&lt;p&gt;Según el README, Ponytail cubre muchas herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code;&lt;/li&gt;
&lt;li&gt;Codex;&lt;/li&gt;
&lt;li&gt;GitHub Copilot CLI;&lt;/li&gt;
&lt;li&gt;Pi agent harness;&lt;/li&gt;
&lt;li&gt;OpenCode;&lt;/li&gt;
&lt;li&gt;Gemini CLI;&lt;/li&gt;
&lt;li&gt;Antigravity CLI;&lt;/li&gt;
&lt;li&gt;CodeWhale;&lt;/li&gt;
&lt;li&gt;Swival;&lt;/li&gt;
&lt;li&gt;OpenClaw;&lt;/li&gt;
&lt;li&gt;Cursor, Windsurf, Cline, Aider, Kiro, Zed y otras herramientas basadas en archivos de reglas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja es que no necesariamente tienes que cambiar tu herramienta principal.&lt;/p&gt;
&lt;p&gt;Si usas Codex, instálalo como plugin de Codex. Si usas Claude Code, usa su marketplace de plugins. Si solo quieres las reglas en tu editor, puedes copiar los archivos correspondientes.&lt;/p&gt;
&lt;h2 id=&#34;cómo-instalar-ponytail-en-codex&#34;&gt;Cómo instalar Ponytail en Codex
&lt;/h2&gt;&lt;p&gt;Para Codex CLI, el README da este punto de entrada:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego, dentro de Codex:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre &lt;code&gt;/plugins&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Selecciona el marketplace de Ponytail;&lt;/li&gt;
&lt;li&gt;Instala Ponytail;&lt;/li&gt;
&lt;li&gt;Abre &lt;code&gt;/hooks&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Revisa y confía en sus dos lifecycle hooks;&lt;/li&gt;
&lt;li&gt;Inicia una conversación nueva.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para la app de escritorio de Codex, el README indica que reinicies la aplicación después de instalarlo para que el plugin sea detectado.&lt;/p&gt;
&lt;p&gt;Un detalle importante: los plugins de Ponytail para Claude Code y Codex ejecutan dos pequeños lifecycle hooks en Node.js, así que &lt;code&gt;node&lt;/code&gt; debe estar en PATH. El README también dice que, si falta &lt;code&gt;node&lt;/code&gt;, las skills aún pueden funcionar, pero la activación always-on no será automática.&lt;/p&gt;
&lt;p&gt;Comprueba primero:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node -v
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no se encuentra el comando, instala Node.js o asegúrate de que el PATH del shell no interactivo pueda encontrar &lt;code&gt;node&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-instalarlo-en-claude-code&#34;&gt;Cómo instalarlo en Claude Code
&lt;/h2&gt;&lt;p&gt;En Claude Code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego envía:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install ponytail@ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README recuerda que deben enviarse como dos mensajes separados.&lt;/p&gt;
&lt;p&gt;Si usas la app de escritorio de Claude y no tienes &lt;code&gt;/plugin&lt;/code&gt;, añade un marketplace personal desde la interfaz:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abre Customize;&lt;/li&gt;
&lt;li&gt;Haz clic en el signo más junto a personal plugins;&lt;/li&gt;
&lt;li&gt;Crea un plugin y añade el marketplace;&lt;/li&gt;
&lt;li&gt;Elige Add from repository;&lt;/li&gt;
&lt;li&gt;Introduce la URL del repositorio GitHub de Ponytail.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cómo-instalarlo-en-github-copilot-cli&#34;&gt;Cómo instalarlo en GitHub Copilot CLI
&lt;/h2&gt;&lt;p&gt;Copilot CLI puede usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;copilot plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;copilot plugin install ponytail@ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En una sesión interactiva de Copilot CLI también puedes usar comandos slash:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install ponytail@ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de instalarlo, Copilot CLI puede usar comandos Ponytail mencionados en el README, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/ponytail:ponytail ultra
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/ponytail:ponytail-review
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;gemini-cli-y-antigravity-cli&#34;&gt;Gemini CLI y Antigravity CLI
&lt;/h2&gt;&lt;p&gt;Para Gemini CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemini extensions install https://github.com/DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto carga el conjunto de reglas como contexto de cada sesión y registra comandos &lt;code&gt;/ponytail&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para Antigravity CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agy plugin install https://github.com/DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El README también menciona que Google está renombrando Gemini CLI como Antigravity CLI, así que ambas rutas pueden coexistir durante un tiempo. Usa el nombre de CLI que tengas instalado.&lt;/p&gt;
&lt;h2 id=&#34;cómo-usarlo-con-opencode&#34;&gt;Cómo usarlo con OpenCode
&lt;/h2&gt;&lt;p&gt;En OpenCode puedes añadir esto a &lt;code&gt;opencode.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;plugin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;@dietrichgebert/ponytail&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si lo ejecutas desde un checkout local, puedes apuntar al archivo local del plugin:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;plugin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;./.opencode/plugins/ponytail.mjs&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Es una buena opción si ya gestionas la configuración del proyecto con OpenCode.&lt;/p&gt;
&lt;h2 id=&#34;si-solo-quieres-usar-las-reglas&#34;&gt;Si solo quieres usar las reglas
&lt;/h2&gt;&lt;p&gt;El repositorio de Ponytail también incluye archivos de reglas para distintas herramientas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.cursor/rules/&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.windsurf/rules/&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.clinerules&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.kiro/steering/&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tu herramienta puede leer reglas a nivel de proyecto, puedes copiar el archivo correspondiente.&lt;/p&gt;
&lt;p&gt;Por ejemplo, la extensión Codex para VS Code lee &lt;code&gt;AGENTS.md&lt;/code&gt;. Si pones el &lt;code&gt;AGENTS.md&lt;/code&gt; de Ponytail en la raíz del proyecto, o en una ubicación global de configuración de Codex, Codex podrá seguir ese estilo mediante reglas.&lt;/p&gt;
&lt;p&gt;El plugin es más completo. El archivo de reglas es más ligero.&lt;/p&gt;
&lt;h2 id=&#34;prompts-útiles-con-ponytail&#34;&gt;Prompts útiles con Ponytail
&lt;/h2&gt;&lt;p&gt;Después de instalarlo, no conviene esperar que todo mejore solo. También puedes escribir prompts que acompañen la dirección de Ponytail.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Please check whether similar code already exists first. Reuse existing code where possible, and only add the smallest new implementation if it does not exist.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not overengineer this request. First check whether the standard library, native HTML controls, or installed dependencies can solve it.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para code review:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Review this change in the Ponytail style. Focus on over-abstraction, duplicate implementation, unnecessary dependencies, and places where native features can replace custom code.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estos prompts van en la misma dirección que Ponytail y suelen dar resultados más estables.&lt;/p&gt;
&lt;h2 id=&#34;tareas-típicas-para-ponytail&#34;&gt;Tareas típicas para Ponytail
&lt;/h2&gt;&lt;h3 id=&#34;1-controles-frontend&#34;&gt;1. Controles frontend
&lt;/h3&gt;&lt;p&gt;Fechas, colores, subida de archivos, entradas numéricas, switches y selects.&lt;/p&gt;
&lt;p&gt;La IA suele instalar una librería de componentes, pero muchas veces HTML nativo basta.&lt;/p&gt;
&lt;h3 id=&#34;2-funciones-auxiliares&#34;&gt;2. Funciones auxiliares
&lt;/h3&gt;&lt;p&gt;Eliminar duplicados, ordenar, formatear, manejar rutas o fechas.&lt;/p&gt;
&lt;p&gt;Primero mira la biblioteca estándar y los helpers existentes antes de escribir una función nueva.&lt;/p&gt;
&lt;h3 id=&#34;3-cambios-de-configuración&#34;&gt;3. Cambios de configuración
&lt;/h3&gt;&lt;p&gt;ESLint, TypeScript, Hugo, Vite, Docker y CI.&lt;/p&gt;
&lt;p&gt;Muchos problemas de configuración se resuelven con una línea, no con un script nuevo ni una toolchain nueva.&lt;/p&gt;
&lt;h3 id=&#34;4-bugs-pequeños&#34;&gt;4. Bugs pequeños
&lt;/h3&gt;&lt;p&gt;Ponytail ayuda a encontrar el punto mínimo de corrección y evita que un bug termine en una gran refactorización.&lt;/p&gt;
&lt;h3 id=&#34;5-code-review&#34;&gt;5. Code review
&lt;/h3&gt;&lt;p&gt;Funciona bien como detector de sobrediseño.&lt;/p&gt;
&lt;p&gt;Puedes pedirle a la IA que revise un diff y responda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si hay reinvención de algo existente;&lt;/li&gt;
&lt;li&gt;Si hay dependencias nuevas innecesarias;&lt;/li&gt;
&lt;li&gt;Si hay código que se puede borrar;&lt;/li&gt;
&lt;li&gt;Si la implementación es más compleja que el requisito;&lt;/li&gt;
&lt;li&gt;Si se pueden reutilizar módulos existentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-tener-en-cuenta&#34;&gt;Qué tener en cuenta
&lt;/h2&gt;&lt;p&gt;Ponytail tiene una buena dirección, pero no debería convertirse en un nuevo dogma.&lt;/p&gt;
&lt;p&gt;No reduzcas código a costa de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Validación de entrada;&lt;/li&gt;
&lt;li&gt;Comprobación de permisos;&lt;/li&gt;
&lt;li&gt;Protección contra pérdida de datos;&lt;/li&gt;
&lt;li&gt;Seguridad de concurrencia y transacciones;&lt;/li&gt;
&lt;li&gt;Privacidad del usuario;&lt;/li&gt;
&lt;li&gt;Accesibilidad;&lt;/li&gt;
&lt;li&gt;Manejo de errores;&lt;/li&gt;
&lt;li&gt;Logs importantes;&lt;/li&gt;
&lt;li&gt;Cobertura de pruebas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simple no significa descuidado.&lt;/p&gt;
&lt;p&gt;Si una función toca seguridad, dinero, datos de usuarios u operaciones de producción, incluso la implementación mínima debe dejar claros los límites.&lt;/p&gt;
&lt;h2 id=&#34;mi-forma-recomendada-de-probarlo&#34;&gt;Mi forma recomendada de probarlo
&lt;/h2&gt;&lt;p&gt;Para una primera prueba:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instálalo en un proyecto pequeño;&lt;/li&gt;
&lt;li&gt;Prueba una solicitud que la IA suele sobrediseñar, como un selector de fecha o color;&lt;/li&gt;
&lt;li&gt;Compara qué escribiría la IA sin Ponytail;&lt;/li&gt;
&lt;li&gt;Pídele que revise un diff existente;&lt;/li&gt;
&lt;li&gt;Luego llévalo a proyectos diarios.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No empieces con una gran refactorización.&lt;/p&gt;
&lt;p&gt;Ponytail muestra más valor en tareas que son pequeñas en realidad, pero que la IA suele inflar.&lt;/p&gt;
&lt;h2 id=&#34;resumen-en-una-frase&#34;&gt;Resumen en una frase
&lt;/h2&gt;&lt;p&gt;Ponytail no convierte la IA en una herramienta que solo escribe código corto. Hace que la IA se pregunte una cosa más antes de actuar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Does this code really need to be written?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usas Codex, Claude Code, Copilot CLI, Gemini CLI u otros agentes de programación con IA y te molestan sus sobreimplementaciones, Ponytail merece una prueba. No decidirá toda la arquitectura por ti, pero añade una restricción útil: reutilizar primero, evitar desvíos y no reinventar la rueda.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
