¿Qué hace auto-improve?
Mejora autónoma y regulada por juez para cualquier artefacto de texto. Consulta README.md para la guía completa; esta es la referencia rápida para el agente.
Cuándo usarlo
El usuario quiere algo mediblemente mejor, no solo reescrito — y está dispuesto a expresar "mejor" como una rúbrica. Buenos ejemplos: correos fríos, textos de aterrizaje, prompts, definiciones de habilidades, publicaciones de blog, cartas de presentación, documentos, contratos, menús.
Ejecutarlo
export GEMINI_API_KEY=... # https://aistudio.google.com/apikey
python3 improve.py \
--artifact ruta/al/archivo.md \ # debe estar dentro de un repositorio git
--tag v1 \ # → rama improve/v1, results/v1.tsv
--max-iterations 8 \
--criteria ruta/a/rubrica.md # OPCIONAL — omite para inferir automáticamente una rúbrica; o añade
# --goal "cómo se ve lo bueno" para orientar la rúbrica inferida
Si no pasas --criteria, auto-improve escribe una rúbrica a partir del artefacto primero y la guarda en results/<tag>.rubric.md — léela para ver qué está optimizando. Verifica una ejecución terminada: python3 improve.py --status --tag v1. El resultado reside en la rama git improve/<tag> — git diff main improve/v1 -- <archivo>.
Cómo decide (la parte anti-slop)
- Mutación — las mejores N ediciones candidatas, aplicadas como diffs quirúrgicos (a prueba de fallos).
- Puntuación — cada candidato se califica según la rúbrica mediante una llamada a un modelo separado.
- Decisión — el mejor candidato se evalúa por pares contra el campeón (ambos órdenes, sin sesgos); se conserva solo si realmente gana, de lo contrario se revierte.
El mutador nunca califica su propio trabajo, y las reescrituras confiadas pero peores se descartan — por lo que la mejora es real y cada commit es una ganancia verificada.
Cómo escribir la rúbrica
Un archivo markdown con dimensiones ponderadas que suman 100 — ancladas (50/70/90), formuladas como recompensa, específicas. Consulta criteria/README.md y los ejemplos prácticos en criteria/.
Reglas clave
- El mutador y el evaluador nunca comparten contexto.
- Un artefacto, una rúbrica, una
--tagpor ejecución. - La rama git es la fuente de verdad;
results/<tag>.tsves el registro de la mejora (sin seguimiento). - Nunca editar fuera del artefacto; pequeños diffs quirúrgicos, no reescrituras completas.