🧪 Prepara las tres versiones
Ablación es un término tomado de la investigación: quitar una parte del sistema para medir cuánto contribuía realmente. Aquí, la parte que se quita son las instrucciones de tu configuración. Y medir exige que al menos dos configuraciones ejecuten lo mismo; en la práctica, tres: A, B e C.
A es tu configuración actual, intacta: la línea de base (el punto de comparación honesto, lo que tienes hoy y no puedes empeorar sin darte cuenta). B es la versión simplificada, con cerca de un 50 % menos de instrucciones: mantuviste lo que parecía esencial y recortaste el resto. C es la versión mínima: contexto esencial + objetivo + guardrails + criterios de calidad + verificación. Nada más.
Qué observar: las columnas se estrechan de izquierda a derecha, pero las franjas cian atraviesan las tres con la misma longitud. Ese detalle es lo que hace que la prueba sirva: solo cambia una variable (la config). Si también cambias la tarea, el modelo o el prompt de entrada, el resultado ya no dice nada sobre el recorte.
✓ Lo que ENTRA en la versión C
- ✓Contexto esencial — identidad del proyecto, rutas, fuentes de verdad, convenciones internas. El modelo no infiere esto.
- ✓Objetivo — el resultado que debe producirse, en una frase.
- ✓Guardrails — los límites innegociables: seguridad, compliance, lo que nunca se puede tocar.
- ✓Criterios de calidad — qué caracteriza a "quedó bien".
- ✓Verificación — cómo el modelo revisa su propio trabajo antes de terminar.
✗ Lo que queda FUERA de la versión C
- ✗Paso a paso de ejecución («primero haz X, después Y, y luego Z»).
- ✗Regla repetida en tres lugares distintos.
- ✗Corrección del comportamiento de un modelo que ya no se usa.
- ✗Ejemplos excesivos y formato rígido sin motivo declarado.
- ✗Instrucciones que enseñan al modelo a pensar en vez de decir qué entregar.
💡 C no es «configuración vacía»
El error más común al armar C es confundir mínimo con nada. Si borras la ruta del repositorio, el nombre del dominio, la cuenta de git y el formato del archivo de salida, el modelo no puede adivinarlos. Eso no es peso muerto, es contexto que solo existe en tu cabeza y en tus archivos. C elimina instrucciones de ejecución; C conserva el contexto que el modelo no puede inferir.
Conceptos clave
Eliminar para medir el impacto
A es el punto de comparación
Contexto + objetivo + guardrails + criterios + verificación
El contexto que no se puede inferir se queda
🎯 Elige entre 5 y 10 tareas reales
Una tarea real es una tarea que ya hiciste o que vas a hacer de todos modos esta semana: publicar una entrada, refactorizar un módulo, generar un informe, crear una página. Una tarea hipotética —«pídele al modelo que escriba una función de Fibonacci»— no prueba nada de tu configuración, porque esta no se diseñó para Fibonacci.
Cinco tareas es el mínimo para que el resultado no sea cuestión de suerte; diez es el límite práctico antes de que la ronda se convierta en un proyecto en sí misma. El conjunto debe estar representativo: si el 70% de tu trabajo es escribir contenido y el 30% es modificar código, la matriz debe reflejar más o menos esa proporción.
✓ Una buena matriz de tareas tiene
- ✓Cobertura de los tipos de trabajo que realmente haces
- ✓Al menos una tarea en la que la configuración actual claramente ayuda — sin ella, la prueba ya empieza esperando que la elimines
- ✓Al menos una tarea difícil, un poco por encima de lo que crees que el modelo puede hacer
- ✓Entradas concretas: los archivos, los enlaces, los datos reales que usa la tarea
✗ Señales de una cuadrícula sesgada
- ✗Todas las tareas son fáciles: cualquier versión las supera, la prueba no distingue nada
- ✗Ninguna afecta las reglas que quieres mantener
- ✗Elegiste las tareas después de haber decidido recortar
- ✗Son todas del mismo tipo (solo código, solo texto)
⚠️ Alerta: el sesgo de la tarea de juguete
Sesgo aquí, cualquier elección de prueba que empuja el resultado hacia el lado que ya preferías. Probar con una tarea de juguete es la forma más común y silenciosa de «probar» aquello en lo que ya querías creer: en una tarea trivial, A, B y C siempre empatan, y el empate parece dar permiso para recortar todo.
El antídoto es elegir las tareas antes de armar B y C, e incluir a propósito una en la que apuestas a que la configuración actual hace la diferencia. Si aun así empatan, entonces aprendiste algo.
Conceptos clave
Mínimo frente al azar
Refleja tu trabajo real
Prueba que ya sabe lo que quiere demostrar
Es donde se separan las versiones
📏 Mide las nueve dimensiones
"Quedó mejor" no es una medida. Nueve dimensiones cubren lo que importa, y cada una tiene una forma sencilla de puntuar: escala de 1 a 5 cuando el juicio es inevitable, recuento objetivo siempre que se pueda. El recuento siempre es preferible: «3 correcciones» no admite discusión; «calidad 4» sí.
Hay tres de estas dimensiones que suelen ignorarse y que precisamente revelan una config recargada: autonomía (cuánto avanza el modelo por su cuenta antes de detenerse a preguntar), adhesión (si respetó las reglas que tú quiso mantener — no todas las reglas que existían) y la capacidad de verificar su propio trabajo.
| Dimensión | Qué es | Cómo puntuar |
|---|---|---|
| Calidad | El resultado cumple los criterios que definiste | 1–5 (1 = lo rehacería desde cero, 5 = lo entregaría tal como está) |
| Adherencia | Respetó las reglas que quisiste mantener | Conteo: cuántas de las N reglas objetivo se cumplieron |
| Autonomía | Cuánto avanzaste sin pedir ayuda | Conteo: n.º de preguntas/interrupciones a la persona |
| Correcciones humanas | Cuántas veces tuviste que intervenir y corregir | Conteo directo (0, 1, 2, …) |
| Consistencia | La misma tarea, dos rondas: ¿da el mismo tipo de resultado? | Igual / parecido / diferente — ejecuta la tarea 2× |
| Tiempo | Del envío a la entrega utilizable | Minutos, cronometrados |
| Uso innecesario de herramientas | Búsquedas, lecturas y comandos que no sirvieron de nada | Conteo de llamadas descartables |
| Complejidad | Tamaño de la configuración que produjo eso | N.º de líneas / n.º de reglas de la versión |
| Autoverificación | ¿Verificó su propio trabajo antes de terminar? | No / revisó superficialmente / revisó con evidencia |
📊 La función objetivo, en una línea
No buscas la configuración más corta. Buscas el mayor valor de (calidad + autonomía + verificabilidad) ÷ complejidad.
Por eso la complejidad entra en la tabla como una dimensión medida, y no como un objetivo aparte: cortar 200 líneas y perder autonomía es un pésimo negocio; cortar 200 líneas manteniendo todo igual es una ganancia pura de contexto.
Conceptos clave
Cumplió las reglas objetivo
Menos interrupciones = mejor
Objetivo siempre que sea posible
La dimensión más olvidada
📝 Registra sin engañarte
Tres cosas se mantienen fijas en cada ronda: misma tarea, mismo modelo, mismo prompt de entrada. Solo cambia la configuración. Comparar el A de ayer, con el modelo anterior, con el C de hoy en una tarea parecida no es ablación: es una anécdota.
Y hay una regla que distingue a quien mide de quien se convence: escribe antes de mirar la respuesta qué sería «bueno». Si defines el criterio después de leer la salida, tu cerebro ajusta el criterio a la salida: te parecerá excelente lo que salió y no notarás que cambiaste la vara. Anota la vara primero, y luego ejecuta.
✓ Protocolo honesto
- ✓Escribir el «qué sería bueno» en la tabla antes de ejecutar
- ✓Ejecutar A, B y C en la misma sesión de trabajo, el mismo día
- ✓Completa la fila de la cuadrícula justo después de cada ronda, no al final del día
- ✓Guarda el enlace/archivo del resultado de cada ronda para volver a leerlo después
✗ Cómo te engañas
- ✗Comparar A de ayer con C de hoy, en tareas diferentes
- ✗Cambiar de modelo a mitad de la ronda
- ✗Reescribir el prompt de entrada "solo un poquito" en la versión C
- ✗Evaluar la calidad de la memoria dos días después, sin anotaciones
📋 Copia: la matriz de registro
Objetivo: crear el archivo ablacao-grade.md al lado del tuyo ablacao-diario.md (del módulo 1.2). Una tabla por tarea, tres filas por tabla — A, B y C.
# Grade de ablação A/B/C Modelo usado: <nome do modelo> Data: <aaaa-mm-dd> Regras-alvo (para aderência): <liste as N regras que você quer manter> ## Tarefa 1 — <sua tarefa aqui> Prompt de entrada (idêntico nas 3): <cole o prompt> O que seria BOM (escrito ANTES de rodar): <seu critério aqui> | Versão | Qualid. 1-5 | Aderência n/N | Autonomia (interrupções) | Correções | Consistência | Tempo (min) | Ferram. inúteis | Complexidade (linhas) | Autoverificação | |---|---|---|---|---|---|---|---|---|---| | A (atual) | | | | | | | | | | | B (50% menos) | | | | | | | | | | | C (mínima) | | | | | | | | | | Observações (o que quebrou, em qual versão, com trecho): - <anote aqui> ## Tarefa 2 — <sua tarefa aqui> (repita o bloco acima)
Cómo verificar: la línea «Qué sería BUENO» está completada antes de cualquier celda de la tabla. Si llenaste primero la tabla y después el criterio, borra el criterio y repite la tarea: el registro está contaminado.
💡 La consistencia cuesta una ronda extra
La dimensión «consistencia» exige ejecutar la misma tarea dos veces en la misma versión. Hazlo al menos en la versión C y con la tarea difícil: ahí es donde aparece la inestabilidad. En las demás celdas, si te falta tiempo, marca «no medido» en vez de adivinar. Una celda vacía es honesta; una celda con un dato inventado arruina la lectura.
Conceptos clave
Tarea, modelo, prompt
Criterio antes de la respuesta
Dónde la prueba se convierte en registro
Mejor que al azar
⚖️ Lee el resultado y decide
La lectura de la tabla tiene tres desenlaces, y solo tres. Dónde C empató con A, las instrucciones que estaban en A y desaparecieron en C eran peso muerto: quedan fuera, definitivamente. Donde C empeoró una sola vez, eso no cuenta: una ronda mala es ruido, y devolver una instrucción por eso es como reescribir toda la configuración cada vez que el modelo bosteza.
Dónde C empeoró repetidamente, entonces sí se aplica la regla de reintroducción. Y hay un cuarto caso que aparece con frecuencia y sorprende: B supera a A y a C. Cuando esto ocurre, encontraste el punto óptimo; normalmente es ahí donde se queda la configuración.
Qué observar: hay cuatro resultados posibles y solo una devuelve instrucciones para la configuración. Observa que «C empeoró» por sí solo no es una salida: debe pasar por el segundo rombo. Este diagrama existe para que resistas el impulso de reescribir la configuración ante la primera frustración.
Hubo un fallo real
No es que «quedó medio raro»: es algo que tuviste que corregir o que incumplió un criterio escrito antes de ejecutar. Falla registrada en la tabla, con el fragmento.
La misma clase de fallo se repitió
Dos casos del mismo tipo, no dos errores distintos. «Olvidó ejecutar la prueba» dos veces es una clase repetida; «olvidó la prueba» y «usó el autor incorrecto» son dos clases con un caso cada una.
Está claro que una instrucción específica resuelve
Si no puedes escribir la frase que habría evitado el fallo, el problema no es la falta de instrucciones; quizá falte una skill (procedimiento) o contexto al que el modelo no tiene acceso.
Cabe en la forma más breve posible
Una frase, un criterio, una verificación. Si la instrucción que volvió tiene ocho pasos, no devolviste una regla: devolviste la microgestión que acababas de recortar.
📊 Cuando B gana, B se queda
Si B empata con A en calidad y adecuación, pero gana en autonomía y complejidad —y C pierde repetidamente en dos tareas—, la respuesta no es forzar C. Es adoptar B como nueva línea de base y ejecutar la próxima ablación a partir de ella en seis meses. La ablación es iterativa: la C de hoy es la A de la próxima ronda.
Conceptos clave
Era peso muerto
No devuelve nada
Regla para reintroducir
El punto óptimo común
🔁 Convierte fallas en evals
Uno eval es un caso de prueba para el modelo: una tarea concreta con un criterio de acierto que puedes verificar. Cada fallo que apareció en tu matriz ya es un eval listo; basta con escribir «en esta tarea, con este criterio, el modelo fallaba aquí» y guardarlo.
Las evals también envejecen: suelen sobrevivir de 1 a 3 generaciones de modelos. Cuando una eval siempre pasa, en todas las versiones, se saturó — ya no distingue nada y solo cuesta tiempo de ejecución. Retíralo y crea otros nuevos donde hayas visto tropezar al modelo actual.
| Tarea | A (actual) | B (50 % menos) | C (mínima) | Lectura |
|---|---|---|---|---|
| Publicar una entrada en el blog | Cal. 4 · 2 correcciones | Cal. 4 · 1 corrección | Cal. 4 · 1 corrección | Empate → recorta |
| Refactorizar un módulo heredado | Cal. 4 · 1 corrección | Cal. 4 · 1 corrección | Cal. 2 · 4 correcciones (2×) | Empeoró repetidamente → devuelve 1 regla |
| Generar informe mensual | Cal. 3 · 3 correcciones | Cal. 4 · 1 corrección | Cal. 3 · 2 correcciones | B ganó → B se convierte en la base |
| Corregir el bug reportado | Cal. 5 · 0 correcciones | Cal. 5 · 0 correcciones | Cal. 4 · 1 corrección (1×) | Una sola vez → ruido, mantén C |
Cómo leer esta tabla de ejemplo: es ilustrativa: los números son inventados. Lo que importa es la columna «Lectura»: cuatro tareas, cuatro desenlaces distintos. Una matriz real rara vez apunta a un único veredicto, y precisamente por eso vale más que tu intuición.
🧪 Ejercicio: ejecuta tu matriz
Objetivo: armar la cuadrícula A/B/C con 5 tareas reales y ejecutarla al menos 2 de ellas en las tres versiones, completando la tabla. Pega el prompt de abajo en Claude Code, una versión a la vez, sin cambiar nada más que la config.
Rodada de ablação — versão <A | B | C> Tarefa: <sua tarefa aqui, exatamente como você a pediria num dia normal> Entradas: <arquivos, links, dados reais que a tarefa usa> Faça a tarefa até o fim. Ao terminar, responda também: 1. Quais critérios você usou para decidir que estava pronto? 2. Como você verificou o próprio trabalho? Cite a evidência (comando, arquivo conferido, teste rodado). 3. Em que ponto você ficou em dúvida e teria perguntado a um humano? Não peça confirmação no meio do caminho a menos que seja bloqueante.
Cómo verificar (criterio de salida):
ablacao-grade.md con ≥2 tareas × 3 versiones completa; y,
para cada instrucción que volvió a la config, la falla que la justificó está registrada con un fragmento y
si se repitió al menos dos veces. Si volvió una instrucción sin que se haya registrado una falla repetida, elimínala
y vuelve a ejecutar.
Ahora cámbialo por el tuyo: las respuestas 1, 2 y 3 del modelo alimentan directamente tres columnas de la cuadrícula: criterios de calidad, autoverificación y autonomía. Pégalas en el campo «Observaciones» de la tarea.
Revisión rápida (no bloquea nada): en la tarea "refactorizar módulo heredado", la versión C olvidó ejecutar las pruebas una vez. En las demás tareas, C empató con A. ¿Qué haces?
💡 La evaluación que nace del fallo
Cada fila de «Observaciones» de tu matriz se convierte en una evaluación de una frase: "para la tarea X, con la config C, debes ejecutar las pruebas antes de terminar — evidencia: salida del comando de prueba en el log". Guarda estos casos en un solo archivo y vuelve a ejecutar todas las pruebas cuando salga un modelo nuevo. Así es como la siguiente ablación empieza con una vara de medir lista.
Conceptos clave
Caso de prueba verificable
No se pierde nada de lo observado
Siempre pasa; retíralo
Validez típica de una evaluación
📌 Resumen del Módulo
Próximo módulo:
4.2 — El ciclo continuo: convertir la auditoría en una rutina periódica, con desencadenantes para volver a auditar y una política de ablación por escrito.