Skip to content

Commit 7f4dc90

Browse files
docs: add Spanish (LATAM) translation of README (#110)
1 parent e7e09f8 commit 7f4dc90

1 file changed

Lines changed: 216 additions & 0 deletions

File tree

‎README.es.md‎

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
<p align="center">
2+
<picture>
3+
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.png">
4+
<img src="assets/logo.png" width="220" alt="Ponytail, el senior dev flojo">
5+
</picture>
6+
</p>
7+
8+
<h1 align="center">Ponytail</h1>
9+
10+
<p align="center">
11+
<em>No dice nada. Escribe una línea. Funciona.</em>
12+
</p>
13+
14+
<p align="center">
15+
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
16+
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
17+
<img src="https://img.shields.io/badge/funciona%20con-13%20agentes-111111?style=flat-square" alt="Works with 13 agents">
18+
<img src="https://img.shields.io/badge/licencia-MIT-111111?style=flat-square" alt="MIT license">
19+
</p>
20+
21+
<p align="center">
22+
<strong>80-94% menos código &middot; 3-6&times; más rápido &middot; 47-77% más barato</strong><br>
23+
<sub>Mediana de 10 ejecuciones con Haiku, Sonnet y Opus. <a href="benchmarks/">Reprodúcelo tú mismo.</a></sub>
24+
</p>
25+
26+
---
27+
28+
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.
29+
30+
Ponytail lo pone dentro de tu agente de IA.
31+
32+
## Antes / después
33+
34+
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.
35+
36+
Con ponytail:
37+
38+
```html
39+
<!-- ponytail: el browser ya tiene uno -->
40+
<input type="date">
41+
```
42+
43+
Más sobrevivientes en [examples/](examples/).
44+
45+
## Números
46+
47+
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](https://github.com/JuliusBrussee/caveman), y ponytail. Diez ejecuciones por celda, mediana reportada.
48+
49+
<p align="center">
50+
<img src="assets/benchmark-3model.svg" width="860" alt="Mediana de líneas de código por variante en Haiku, Sonnet y Opus; ponytail escribe 80-94% menos código que el baseline sin skill">
51+
</p>
52+
53+
**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/](benchmarks/). Tareas de nivel producción, donde un agente sin restricciones se infla mucho más, están documentadas en [benchmarks/results/](benchmarks/results/).
54+
55+
## Cómo funciona
56+
57+
Antes de escribir código, el agente se detiene en el primer peldaño que aguanta:
58+
59+
```
60+
1. ¿Necesita existir esto? → no: omitirlo (YAGNI)
61+
2. ¿Lo hace la stdlib? → úsala
62+
3. ¿Es una feature nativa? → úsala
63+
4. ¿Una dependencia ya instalada? → úsala
64+
5. ¿Cabe en una línea? → una línea
65+
6. Solo entonces: el mínimo que funciona
66+
```
67+
68+
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.
69+
70+
## Instalación
71+
72+
El mayor esfuerzo que ponytail te va a pedir:
73+
74+
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.
75+
76+
### Claude Code
77+
78+
```
79+
/plugin marketplace add DietrichGebert/ponytail
80+
/plugin install ponytail@ponytail
81+
```
82+
83+
### Codex
84+
85+
```bash
86+
codex plugin marketplace add DietrichGebert/ponytail
87+
codex
88+
```
89+
90+
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.
91+
92+
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.
93+
94+
### GitHub Copilot CLI
95+
96+
```bash
97+
copilot plugin marketplace add DietrichGebert/ponytail
98+
copilot plugin install ponytail@ponytail
99+
```
100+
101+
En una sesión interactiva de Copilot CLI, usa los equivalentes con slash:
102+
103+
```
104+
/plugin marketplace add DietrichGebert/ponytail
105+
/plugin install ponytail@ponytail
106+
```
107+
108+
Copilot CLI agrupa los comandos del plugin bajo el nombre del plugin. Por ejemplo:
109+
110+
```text
111+
/ponytail:ponytail ultra
112+
/ponytail:ponytail-review
113+
```
114+
115+
### Pi agent harness
116+
117+
```
118+
pi install git:github.com/DietrichGebert/ponytail
119+
```
120+
121+
### OpenCode
122+
123+
Ejecuta OpenCode desde un checkout de este repo (el plugin reutiliza sus `hooks/` y `skills/`), y agrega esto a `opencode.json`:
124+
125+
```json
126+
{ "plugin": ["./.opencode/plugins/ponytail.mjs"] }
127+
```
128+
129+
Inyecta el ruleset en cada turno con el nivel activo; agrega los comandos `/ponytail` (ver [Comandos](#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`.
130+
131+
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).
132+
133+
### Gemini CLI
134+
135+
```bash
136+
gemini extensions install https://github.com/DietrichGebert/ponytail
137+
```
138+
139+
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.
140+
141+
### Antigravity CLI
142+
143+
Google está renombrando Gemini CLI a Antigravity CLI (el binario `agy`); la misma extensión se instala ahí:
144+
145+
```bash
146+
agy plugin install https://github.com/DietrichGebert/ponytail
147+
```
148+
149+
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/`.
150+
151+
### OpenClaw
152+
153+
```bash
154+
clawhub install ponytail
155+
```
156+
157+
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`](.openclaw/skills/) a `~/.openclaw/skills/`.
158+
159+
Eso fue todo. Él estaría orgulloso. No lo va a decir.
160+
161+
Activo en cada sesión, con un puñado de comandos (ver [Comandos](#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.
162+
163+
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`.
164+
165+
Cursor, Windsurf, Cline, GitHub Copilot (editor), Aider, Kiro: copia el archivo de reglas correspondiente de este repo ([`.cursor/rules/`](.cursor/rules/), [`.windsurf/rules/`](.windsurf/rules/), [`.clinerules/`](.clinerules/), [`.github/copilot-instructions.md`](.github/copilot-instructions.md), [`AGENTS.md`](AGENTS.md), [`.kiro/steering/`](.kiro/steering/)).
166+
167+
Kiro: copia `.kiro/steering/ponytail.md` a `~/.kiro/steering/` (global) o `.kiro/steering/` en tu proyecto.
168+
169+
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.
170+
171+
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).
172+
173+
Qué archivos corresponden a qué agente: [Portabilidad de agentes](docs/agent-portability.md).
174+
175+
## Comandos
176+
177+
| Comando | Qué hace |
178+
|---------|----------|
179+
| `/ponytail [lite \| full \| ultra \| off]` | Cambia la intensidad, o apágalo. Sin argumento, reporta el nivel actual. |
180+
| `/ponytail-review` | Revisa el diff actual en busca de sobre-ingeniería y devuelve una lista de qué eliminar. |
181+
| `/ponytail-audit` | Audita el repo completo en busca de sobre-ingeniería, no solo el diff. |
182+
| `/ponytail-debt` | Recolecta los atajos marcados con `ponytail:` que dejaste pendientes en un registro, para que "después" no se convierta en "nunca". |
183+
| `/ponytail-help` | Referencia rápida de los comandos anteriores. |
184+
185+
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.
186+
187+
## Desarrollo
188+
189+
Al cambiar el texto compacto de las reglas, mantén alineadas las copias en los adaptadores:
190+
191+
```bash
192+
node scripts/check-rule-copies.js
193+
npm test
194+
```
195+
196+
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.
197+
198+
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.
199+
200+
## FAQ
201+
202+
**¿Necesita un archivo de configuración?**
203+
No. Un opcional `~/.config/ponytail/config.json` o la variable `PONYTAIL_DEFAULT_MODE` pueden fijar el nivel default, pero nada es obligatorio.
204+
205+
**¿Y si realmente necesito la clase de caché de 120 líneas?**
206+
No la necesitas. Insiste de todas formas y él la va a construir. Despacio. Correctamente. Mirándote.
207+
208+
**¿Escala?**
209+
El código que nunca escribiste escala infinitamente. Cero bugs, cero CVEs, 100% uptime desde siempre.
210+
211+
**¿Por qué "ponytail"?**
212+
Ya sabes exactamente por qué.
213+
214+
## Licencia
215+
216+
[MIT](LICENSE). La licencia más corta que funciona.

0 commit comments

Comments
 (0)