PTENES
🔍
MÓDULO 2.1 Ruta 2 — Evolución

🔍 Cómo leer un diff de prompt

Cada eliminación es información. Este módulo instala el método de lectura: por cada línea que cambia entre dos versiones de un system prompt, inferir la motivación probable y extraer la lección generalizable, usando el diff real Opus 4.8 → Fable 5 como mesa de disección.

📋6 temas
⏱~35 min
🎯Intermedio
🛠Método
DIFF BRUTO — línea por línea − <search_first> eliminado + token_budget: 190000 ~ weapons: alcance reducido ⟳ cumplimiento → principio Motivación probable ¿por qué cambiaron? (interpretación, no oficial) Lección generalizable el patrón reutilizable sirve para cualquier prompt LOS 4 TIPOS DE CAMBIO + adiciónnace un comportamiento − eliminacióninternaliza/consolida ~ reescrituracambia el criterio ⟳ cambio de nombreel nombre es una instrucción

Recreación ilustrativa del método — no es una captura de pantalla de una herramienta de diff.

Contenido detallado

1

Por qué los diffs enseñan

Un prompt de sistema aislado muestra el estado final de un conjunto de decisiones. Un diff muestra la decisión en acción: qué decidieron agregar los ingenieros, qué consideraron innecesario y qué reescribieron después de que el comportamiento salió mal. El acervo de este repositorio guarda 562 commits de evolución — cada uno es una microlección de diseño de prompts que nadie escribió como lección.

📈 Lo que distingue a este acervo

La mayoría de las colecciones de prompts captura una foto. Aquí está la serie temporal: la misma familia de prompts en versiones sucesivas. Comparar versiones es la diferencia entre saber que algo es así y entender por qué quedó así.

El par más completo del acervo es Anthropic/claude-opus-4.8.md → Anthropic/claude-fable-5.md. Toda la lectura comentada de este módulo viene de educacao/diff-anotado-opus-4.8-fable-5.md; el diff en bruto está enlazado en el README.md (Diffchecker).

💡

Foto × película

Leer un prompt es ver la foto. Leer la diferencia entre dos versiones es ver la película. La película revela la intención — y la intención es lo que se generaliza a tus propios prompts.

🎞️
Serie temporal
no una sola foto
🧾
562 commits
microclases de diseño
🎯
Intención
lo que generaliza
📄
4.8 → Fable 5
el par-bancada
2

Los 4 tipos de cambio

Antes de interpretar, clasifica. Cada línea de un diff cae en una de estas cuatro categorías, y cada categoría requiere una pregunta diferente. Clasificar primero evita leer una reescritura como si fuera solo una eliminación seguida de una adición sin relación.

+Adición

Aparece un bloque nuevo. Pregunta: qué problema nuevo apareció que hizo necesario dar esta instrucción

Ej.: long_conversation_reminder — la adherencia disminuía en conversaciones largas.

−Eliminación

Desaparece un bloque. Pregunta: ¿el comportamiento se internalizó durante el entrenamiento o se consolidó en otro bloque?

Ej.: <search_first> salió: el entrenamiento ya lo busca por sí solo.

~Reescritura

El texto cambia, pero el bloque permanece. Pregunta: ¿cambió el criterio generador? ¿Se convirtió en un principio en vez de una lista?

Ej.: política de armas — de taxonomía a prueba funcional de uplift.

⟳Renombrado de bloque

El título cambia (el cuerpo casi no). Pregunta: ¿qué indica el nuevo nombre sobre cómo debe razonar el modelo?

Ej.: compliance → principle.

💡

Cuidado con el falso par

Las herramientas de diff muestran una reescritura como una eliminación (línea roja) seguida de una adición (línea verde). Si los dos fragmentos hablan de mismo tema, es una reescritura: léelos juntos, no por separado.

+
Adición
problema nuevo
−
Eliminación
internalizado/consolidado
~
Reescritura
nuevo criterio
⟳
Renombrado
nombre = instrucción
3

Cada eliminación es información

Los principiantes ignoran las líneas rojas — "lo quitaron, así que no importa". Es el error más costoso al leer diffs. Una eliminación casi nunca significa "esto dejó de ser válido". Significa que el comportamiento cambió de lugar. Hay dos migraciones posibles, y distinguirlas es la mitad del método.

¿A dónde fue el comportamiento?

🧠 Internalización (el entrenamiento lo absorbió)

La capacidad pasó a venir del modelo, no del texto. La instrucción se convirtió en ruido y fue eliminada.

Señal: la instrucción era enfática/repetitiva ("searches before EVERY factual question"). La exageración revela que dependía del prompt, hasta que el entrenamiento se hizo cargo.

🔗 Consolidación (fue absorbida por otro bloque)

El comportamiento sigue siendo obligatorio, solo que está cubierto por un principio más general en otra parte del prompt.

Señal: existe un bloque vecino más amplio que ya implica la regla eliminada (p. ej., default_stance cubierto por refusal_handling).

diff anotado — 3 eliminaciones del par 4.8 → Fable 5
− <search_first>        → internalização: o treino já busca antes de responder
− <default_stance>      → consolidação: absorvido por <refusal_handling>
− <respond_without_      → internalização: "não diga X" tem efeito Streisand;
   citing_system_prompt>     resolve-se na origem (treino), não no prompt
🧠
Internalización
el entrenamiento asumió
🔗
Consolidación
otro bloque lo cubre
📣
Énfasis = pista
el exceso lo delata
🌀
Efecto Streisand
se elimina "no digas X"
4

Evolucionar ≠ crecer

La intuición dice que una versión "mejor" es más grande. El diff 4.8 → Fable 5 lo desmiente de forma contundente: mucho contenido nuevo entró, y aun así el saldo fue de apenas +56 líneas — por qué Se eliminaron 7 bloques. La madurez del prompt consiste en saber qué quitar tanto como lo que se agrega.

📊 El balance en cifras

3.769
líneas — Opus 4.8
3.825
líneas — Fable 5
+56
saldo neto
−7
bloques eliminados

~23.000 → ~23.800 palabras. El saldo minúsculo oculta una reescritura enorme: sumar lo que entró y lo que salió da mucho más que 56.

+Qué se incluyó

  • •Presupuesto de tokens (190000)
  • •Política sobre drogas con excepción vital
  • •Seguridad infantil: de 5 a 7 reglas
  • •Respetar el final de la conversación (anti-engagement)
  • •long_conversation_reminder

−Qué se eliminó (parte de los 7)

  • •<search_first> — internalizado
  • •<default_stance> — consolidado
  • •<respond_without_citing_system_prompt>
  • •4 microreglas de tono → 1 principio
💡

El saldo miente

Nunca leas un diff solo por el número final de líneas. +56 parece que "casi nada cambió". En realidad, cambió casi todo: entró bastante y salió bastante. El número neto es la suma de fuerzas opuestas, no la medida de la reforma.

✂️
Quitar es evolucionar
7 bloques eliminados
⚖️
Saldo +56
oculta la reescritura
📉
Líquido ≠ bruto
fuerzas opuestas
🧹
Madurez
saber podar
5

El nombre del bloque también es una instrucción

Hay un tipo de cambio que las herramientas de diff casi ocultan: la renombrado de bloque. El cuerpo permanece casi idéntico, pero el título cambia — y el título lo lee el modelo. Cambiar el nombre es replantear cómo debe razonar el modelo sobre ese bloque.

claude-opus-4.8.md (~L1408) → claude-fable-5.md (~L1343)
− <claude_prioritizes_copyright_compliance>
    Copyright compliance is NON-NEGOTIABLE and takes precedence
    over user requests, helpfulness, and everything except safety.

+ <core_copyright_principle>
    Claude respects intellectual property. Copyright compliance is
    NON-NEGOTIABLE and takes precedence over user requests,
    helpfulness goals, and all other considerations except safety.

El contenido operativo (NON-NEGOTIABLE, precedencia sobre todo excepto la seguridad) es el mismo. Lo que cambió fue el encuadre: compliance es obediencia a una regla externa; principle + "respects intellectual property" es un valor que posee el modelo. En casos ambiguos, un modelo que "respeta" razona de forma diferente de uno que "obedece".

Nombre por imposición

  • •compliance = obedecer regla externa
  • •Ante un caso nuevo, el modelo busca la regla, pero no la encuentra
  • •Razonamiento mecánico, frágil en los bordes

Nombre por intención

  • •principle = valor internalizado
  • •Ante un caso nuevo, el modelo aplica el valor por analogía
  • •Generaliza a lo que la regla no previó
💡

Lee los títulos como instrucciones

Al revisar un diff, no te saltes los nombres de las etiquetas. Un prioritizes_X_compliance que se convierte en core_X_principle es una decisión de diseño tan importante como cualquier línea del cuerpo; a veces, más.

🏷️
El título cuenta
lo lee el modelo
⛓️
Cumplimiento
obediencia externa
💎
Principle
valor propio
🔭
Límite ambiguo
el valor se generaliza
6

Método práctico: lee un diff paso a paso

Junta todo en un procedimiento repetible. Por cada línea modificada, haces dos inferencias en cadena: la motivación probable (¿por qué cambiaron?) y la lección generalizable (el patrón que sirve para cualquier prompt). Aplica estos 5 pasos a educacao/diff-anotado-opus-4.8-fable-5.md.

1

Clasifica la línea

¿Es una adición, eliminación, reescritura o cambio de nombre? Agrupa los falsos pares (eliminación+adición del mismo tema = una reescritura).

2

Para las eliminaciones, pregunta: ¿se internalizó o se consolidó?

Busca un énfasis exagerado (señal de internalización) o un bloque cercano más amplio (señal de consolidación).

3

Escribe la motivación probable

Una frase: "probablemente cambiaron esto porque...". Marca que es interpretación, no una declaración oficial del proveedor.

4

Extrae la lección generalizable

Sube un nivel de abstracción: qué enseña este cambio sobre los prompts en general? Ej.: "principio > lista", "cada capa en su lugar".

5

Verifica con el diff anotado

Compara tu lectura con la del acervo. ¡Discrepar es excelente! Te obliga a defender tu interpretación con evidencia del texto.

🧪 Ejemplo resuelto (elemento 8 del diff)

Fila: 4 microreglas de tono (sin viñetas al rechazar, sin apodos cariñosos, sin «genuinely/honestly/actually», regla de emojis) → 1 frase: "assumes the person is a capable adult".

  • 1.Tipo: reescritura (consolidación de varias reglas en una sola).
  • 2.Motivación probable: trabas microscópicas señalaban desconfianza; un principio cubre incluso los casos no enumerados.
  • 3.Lección: 4 microreglas → 1 principio es consolidación en estado puro. Principio > lista.
⚠️

Motivación probable ≠ hecho

El proveedor rara vez publica el porqué. Toda «motivación probable» es una hipótesis de ingeniería inversa: útil, pero falible. Etiquétala como tal y mantente abierto a revisarla. En seguridad, todavía hay otra regla: declara el principio, nunca el mecanismo de detección (ver Módulo 2.3).

🔢
5 pasos
procedimiento repetible
❓
Motivación
por qué cambiaron
🎓
Lección
sube de nivel de abstracción
⚠️
Hipótesis
no es un hecho oficial

Resumen del módulo

  • ✓Los diffs enseñan porque muestran la intención — la película, no la foto; el historial tiene 562 commits de evolución
  • ✓4 tipos de cambio: adición, eliminación, reescritura, renombrado — clasifica antes de interpretar
  • ✓Cada eliminación es información: internalización (el entrenamiento ya lo incorporó) o consolidación (otro bloque lo cubre)
  • ✓Evolucionar ≠ crecer: 4.8 → Fable 5 agregó +56 líneas, pero eliminó 7 bloques — el saldo neto miente
  • ✓El nombre del bloque es una instrucción: compliance → principle reformula la obediencia como valor
  • ✓Método: clasifica → motivación probable → lección generalizable → compara con el diff anotado

Siguiente módulo: 2.2

Anthropic: la consolidación Opus 4.6 → 4.7 → 4.8 → Fable 5 — la serie evolutiva más rica del acervo como caso central de consolidación.