Skip to content

Commit 552acd5

Browse files
DietrichGebertDietrich Gebert
andauthored
chore: move translations, CONTRIBUTING and .env.example out of the repo root (#1044)
Co-authored-by: Dietrich Gebert <dietrichgebert@gmail.com>
1 parent b9a1051 commit 552acd5

8 files changed

Lines changed: 72 additions & 72 deletions

File tree

CONTRIBUTING.md renamed to .github/CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ The PR should show:
2828

2929
Without that, the PR gets closed, however good the idea is.
3030

31-
[`benchmarks/agentic/run.py`](benchmarks/agentic/run.py) does the work (setup in
32-
[its README](benchmarks/agentic/README.md#reproduce)). The `ponytail` arm loads the plugin from
31+
[`benchmarks/agentic/run.py`](../benchmarks/agentic/run.py) does the work (setup in
32+
[its README](../benchmarks/agentic/README.md#reproduce)). The `ponytail` arm loads the plugin from
3333
`PONYTAIL_PLUGIN_DIR`, so run it once against a checkout of `main` and once against your branch:
3434

3535
```bash

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
</p>
3636

3737
<p align="center">
38-
<sub><a href="README.es.md">Español</a> &middot; <a href="README.ko.md">한국어</a> &middot; <a href="README.zh-CN.md">简体中文</a> &middot; <a href="README.ja.md">日本語</a></sub>
38+
<sub><a href="i18n/README.es.md">Español</a> &middot; <a href="i18n/README.ko.md">한국어</a> &middot; <a href="i18n/README.zh-CN.md">简体中文</a> &middot; <a href="i18n/README.ja.md">日本語</a></sub>
3939
</p>
4040

4141
---
File renamed without changes.

‎benchmarks/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Requires an Anthropic API key and **Node.js ≥ 22.22.0** (promptfoo's engine co
1010
check with `node --version` and upgrade if needed):
1111

1212
```bash
13-
cp ../.env.example .env # add your ANTHROPIC_API_KEY
13+
cp .env.example ../.env # add your ANTHROPIC_API_KEY
1414
npx promptfoo@latest eval -c promptfooconfig.yaml --env-file ../.env --repeat 10
1515
npx promptfoo@latest view
1616
```

README.es.md renamed to i18n/README.es.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<p align="center">
22
<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 perezoso">
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 perezoso">
55
</picture>
66
</p>
77

@@ -35,22 +35,22 @@
3535
</p>
3636

3737
<p align="center">
38-
<sub><a href="README.md">English</a> &middot; Español &middot; <a href="README.ko.md">한국어</a> &middot; <a href="README.zh-CN.md">简体中文</a> &middot; <a href="README.ja.md">日本語</a></sub><br>
39-
<sub>Traducción del README en inglés. Si algo no coincide, vale la <a href="README.md">versión en inglés</a>.</sub>
38+
<sub><a href="../README.md">English</a> &middot; Español &middot; <a href="README.ko.md">한국어</a> &middot; <a href="README.zh-CN.md">简体中文</a> &middot; <a href="README.ja.md">日本語</a></sub><br>
39+
<sub>Traducción del README en inglés. Si algo no coincide, vale la <a href="../README.md">versión en inglés</a>.</sub>
4040
</p>
4141

4242
---
4343

4444
<p align="center">
45-
<a href="https://ponytail.dev/soon"><img src="assets/waitlist-banner-es.png" alt="Algo se acerca, únete a la lista de espera" width="760"></a>
45+
<a href="https://ponytail.dev/soon"><img src="../assets/waitlist-banner-es.png" alt="Algo se acerca, únete a la lista de espera" width="760"></a>
4646
</p>
4747

4848
## Ya construido con Ponytail
4949

5050
<a href="https://theretriever.app">
5151
<picture>
52-
<source media="(prefers-color-scheme: dark)" srcset="assets/retriever-logo-dark.svg">
53-
<img src="assets/retriever-logo-light.svg" height="128" alt="Retriever">
52+
<source media="(prefers-color-scheme: dark)" srcset="../assets/retriever-logo-dark.svg">
53+
<img src="../assets/retriever-logo-light.svg" height="128" alt="Retriever">
5454
</picture>
5555
</a>
5656

@@ -62,7 +62,7 @@ Ponytail lo mete dentro de tu agente de IA.
6262

6363
## El prompt
6464

65-
Ponytail es un solo prompt: [`skills/ponytail/SKILL.md`](skills/ponytail/SKILL.md). La versión compacta, para agentes que leen un archivo de reglas, es [`AGENTS.md`](AGENTS.md). Todo lo demás en este repo sirve para cargar ese prompt en distintos agentes.
65+
Ponytail es un solo prompt: [`skills/ponytail/SKILL.md`](../skills/ponytail/SKILL.md). La versión compacta, para agentes que leen un archivo de reglas, es [`AGENTS.md`](../AGENTS.md). Todo lo demás en este repo sirve para cargar ese prompt en distintos agentes.
6666

6767
## Instalación
6868

@@ -84,7 +84,7 @@ codex plugin add ponytail@ponytail
8484

8585
Después abre `/hooks` en Codex, confía en sus dos hooks de ciclo de vida y empieza un hilo nuevo.
8686

87-
**Cualquier otro agente:** copia [`AGENTS.md`](AGENTS.md) en tu proyecto, o pídele a tu agente que instale [`skills/ponytail/SKILL.md`](skills/ponytail/SKILL.md) como skill. Paso a paso para Copilot, Cursor, OpenCode, Gemini y el resto (en inglés): **[INSTALL.md](INSTALL.md)**.
87+
**Cualquier otro agente:** copia [`AGENTS.md`](../AGENTS.md) en tu proyecto, o pídele a tu agente que instale [`skills/ponytail/SKILL.md`](../skills/ponytail/SKILL.md) como skill. Paso a paso para Copilot, Cursor, OpenCode, Gemini y el resto (en inglés): **[INSTALL.md](../INSTALL.md)**.
8888

8989
Eso era todo. Estaría orgulloso. No lo va a decir.
9090

@@ -103,7 +103,7 @@ Con ponytail:
103103
<input type="date">
104104
```
105105

106-
Más supervivientes en [examples/](examples/).
106+
Más supervivientes en [examples/](../examples/).
107107

108108
## Cómo funciona
109109

@@ -135,15 +135,15 @@ Perezoso, no negligente: la validación en los límites de confianza, el manejo
135135
| `/ponytail-gain` | Muestra el marcador de impacto medido (menos código, menos coste, más velocidad) del benchmark. |
136136
| `/ponytail-help` | Referencia rápida de los comandos anteriores. |
137137

138-
Los comandos necesitan un host con soporte de skills (Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Hermes Agent, Qoder, Grok Build). En Codex CLI y en la extensión del IDE son skills dentro del espacio de nombres del plugin; se invocan con `$ponytail:ponytail-review`. Cursor con los [hooks](INSTALL.md#cursor) solo tiene el cambio de nivel con `/ponytail`, escrito como mensaje normal. Los adaptadores de solo instrucciones (el archivo de reglas de Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) cargan las reglas siempre activas, sin los comandos.
138+
Los comandos necesitan un host con soporte de skills (Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Hermes Agent, Qoder, Grok Build). En Codex CLI y en la extensión del IDE son skills dentro del espacio de nombres del plugin; se invocan con `$ponytail:ponytail-review`. Cursor con los [hooks](../INSTALL.md#cursor) solo tiene el cambio de nivel con `/ponytail`, escrito como mensaje normal. Los adaptadores de solo instrucciones (el archivo de reglas de Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) cargan las reglas siempre activas, sin los comandos.
139139

140140
<a id="numbers"></a>
141141
## Números
142142

143143
La medición honesta es un agente real haciendo trabajo real: una sesión de Claude Code sin interfaz editando [la full-stack-fastapi-template de tiangolo](https://github.com/fastapi/full-stack-fastapi-template) (un repo real de FastAPI + React), puntuada por el `git diff` que deja. Doce tickets de funcionalidad, el mismo agente con y sin el skill, n=4, Haiku 4.5.
144144

145145
<p align="center">
146-
<img src="assets/benchmark-agentic.svg" width="860" alt="Cada variante como porcentaje del baseline sin skill en líneas, tokens, coste y tiempo (Haiku 4.5). ponytail es el más bajo en todas las métricas (líneas 46%, tokens 78%, coste 80%, tiempo 73%); caveman supera el 100% en tokens, coste y tiempo; yagni-oneliner líneas 67%. Seguridad, prueba adversarial aparte: baseline, caveman y ponytail 100%, yagni-oneliner 95%.">
146+
<img src="../assets/benchmark-agentic.svg" width="860" alt="Cada variante como porcentaje del baseline sin skill en líneas, tokens, coste y tiempo (Haiku 4.5). ponytail es el más bajo en todas las métricas (líneas 46%, tokens 78%, coste 80%, tiempo 73%); caveman supera el 100% en tokens, coste y tiempo; yagni-oneliner líneas 67%. Seguridad, prueba adversarial aparte: baseline, caveman y ponytail 100%, yagni-oneliner 95%.">
147147
</p>
148148

149149
| frente al baseline sin skill | líneas | tokens | coste | tiempo | seguro |
@@ -152,15 +152,15 @@ La medición honesta es un agente real haciendo trabajo real: una sesión de Cla
152152
| caveman (control de prosa escueta) | -20% | +7% | +3% | +2% | 100% |
153153
| prompt "YAGNI + one-liners" | -33% | -14% | -21% | -30% | 95% |
154154

155-
ponytail es la única variante que recorta todas las métricas, y la única que sigue siendo totalmente segura mientras lo hace. El recorte es mayor donde hay una trampa real de sobreconstrucción (selector de fechas de 404 a 23 líneas, selector de color de 287 a 23, porque usa un `<input>` nativo en vez de un componente) y casi cero en código que ya es mínimo. Método completo, tablas por tarea y limitaciones: [benchmarks/results/2026-06-18-agentic.md](benchmarks/results/2026-06-18-agentic.md).
155+
ponytail es la única variante que recorta todas las métricas, y la única que sigue siendo totalmente segura mientras lo hace. El recorte es mayor donde hay una trampa real de sobreconstrucción (selector de fechas de 404 a 23 líneas, selector de color de 287 a 23, porque usa un `<input>` nativo en vez de un componente) y casi cero en código que ya es mínimo. Método completo, tablas por tarea y limitaciones: [benchmarks/results/2026-06-18-agentic.md](../benchmarks/results/2026-06-18-agentic.md).
156156

157157
<details>
158158
<summary><strong>Números anteriores de un solo disparo (generación aislada)</strong></summary>
159159

160160
Cinco tareas cotidianas, tres modelos, tres variantes (sin skill, [caveman](https://github.com/JuliusBrussee/caveman), ponytail), diez ejecuciones, se reporta la mediana. Un prompt, una respuesta, contando las líneas de la respuesta:
161161

162162
<p align="center">
163-
<img src="assets/benchmark-3model.svg" width="860" alt="Mediana de líneas de código por variante en Haiku, Sonnet y Opus">
163+
<img src="../assets/benchmark-3model.svg" width="860" alt="Mediana de líneas de código por variante en Haiku, Sonnet y Opus">
164164
</p>
165165

166166
Esto mostraba **80-94% menos código**. [#126](https://github.com/DietrichGebert/ponytail/issues/126) señaló con razón que el baseline del modelo sin nada rellena su respuesta con prosa y opciones, así que esa diferencia es en parte un artefacto del baseline conversacional. Los números agénticos de arriba son la versión corregida y defendible. Reproduce la ejecución de un solo disparo con `npx promptfoo eval -c benchmarks/promptfooconfig.yaml`.
@@ -191,15 +191,15 @@ Sabes perfectamente por qué.
191191
<p align="center">
192192
<a href="https://greenpt.com/">
193193
<picture>
194-
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-greenpt-dark.svg">
195-
<img src="assets/logo-greenpt.svg" width="260" alt="GreenPT">
194+
<source media="(prefers-color-scheme: dark)" srcset="../assets/logo-greenpt-dark.svg">
195+
<img src="../assets/logo-greenpt.svg" width="260" alt="GreenPT">
196196
</picture>
197197
</a>
198198
</p>
199199

200200
## Licencia
201201

202-
[MIT](LICENSE). La licencia más corta que funciona.
202+
[MIT](../LICENSE). La licencia más corta que funciona.
203203

204204
## Historial de estrellas
205205

0 commit comments

Comments
 (0)