El stack de agentes de IA que todos deben usar con GPT 5.6 + Fable 5 (Guía del desarrollador)

@Av1dlive
INGLÉShace 2 días · 13 jul 2026
183K
145
27
38
380

TL;DR

Esta guía integral detalla un proceso de 12 pasos para construir un stack de agentes de IA de alto rendimiento utilizando GPT-5.6 y Claude Fable 5, centrándose en la verificación, el enrutamiento y la gestión de costes.

Aquí está la traducción del texto al español, manteniendo todo el formato, los tags especiales y la terminología técnica especificada.


Fable 5 + GPT-5.6: La construcción de la A a la Z de un Stack de Agentes que Opera Mientras Duermes

Esta es la construcción completa, en orden, con un punto de control después de cada pieza.

Guarda estos 12 builds antes de que los olvides.

Introducción

Tienes los dos modelos más capaces jamás creados y disponibles de forma general, y todavía estás usando uno a la vez, manualmente.

Tres cosas cambiaron en el último mes.

  • Claude Fable 5 planifica a través de etapas, despliega sus propios subagentes y verifica su propia salida. $10 por millón de tokens de entrada, $50 de salida.
  • GPT-5.6 se lanzó el 9 de julio como tres niveles permanentes. Sol a $5 y $30, Terra a la mitad de Sol, Luna a $1 y $6. OpenAI ahora vende la decisión de enrutamiento como el producto.
  • Fable 5 pasó 19 días de junio suspendido bajo una orden de exportación. La disponibilidad ahora es algo que te sucede a ti.

Usados informalmente, estos modelos son una forma costosa de generar cosas impresionantes pero incorrectas.

Usados dentro de un sistema, son lo más parecido a un empleado que puedes alquilar. Las cifras empresariales de Anthropic sitúan a Claude Code en aproximadamente $13 por desarrollador por día activo. OpenAI sitúa a Codex entre $100 y $200 al mes.

Esta guía construye ese sistema en doce builds: los archivos reales, en orden, cada uno probado antes de publicar, con un punto de control después de cada uno para que sepas que una pieza funciona antes de apilar la siguiente.

Es para cualquiera que tenga un repositorio, una terminal y acceso a cualquiera de las CLI. Los ejemplos están orientados al código porque los bucles crecieron alrededor del código, pero el enrutador, el asesor y la puerta de enlace funcionan con facturas e informes de la misma manera.

Léelo en orden, realizando las comprobaciones. Cada build toma de 10 a 20 minutos, unas dos horas en total. Los 30 días al final son el cronograma durante el cual el sistema gana el derecho a funcionar sin ti.

Tres principios predicen cada decisión de diseño a continuación:

  1. Enrutar en los límites. Esfuerzo antes que modelo. Un cambio de modelo a mitad de sesión quema un descuento de caché del 90 por ciento. Aumentar el esfuerzo de razonamiento en el mismo modelo no cuesta nada extra en la plomería.
  2. Nada califica su propia tarea. El escritor, el enrutador, el asesor y el revisor son partes diferentes, de linajes diferentes cuando sea posible, y el voto final es un script de bash.
  3. "Hecho" es un hecho sobre el entorno. Un conjunto de pruebas exitoso, un archivo de tareas marcado, una línea de veredicto. Nunca la opinión del modelo sobre sí mismo.

El mapa, y por qué el habitual está mal

La ingeniería de bucles es un flujo de trabajo de agente con una condición de parada explícita y lógica de reintento. El arnés decide cuándo se termina el trabajo, en lugar de dejarle al modelo el "¿he terminado?".

La imagen estándar es el stack Loopcraft de swyx: cinco bucles anidados uno dentro del otro, ejecución dentro de tarea dentro de producto dentro de sistema dentro de supervisión, cada uno con su propia salida. Es el mejor que alguien ha dibujado.

Lo usé durante semanas. Luego intenté construir contra él, y se rompió en cuatro lugares.

1) Problema uno: los bucles no se anidan.

Anidar significa que una vuelta del bucle externo equivale a una ejecución completa del bucle interno. Eso no es lo que sucede. El bucle del sistema no espera a que el bucle del producto termine. Se ejecuta el domingo sin importar si se lanzó algo o no.

Puedes interrumpir un flujo de tokens manualmente sin desenrollar cuatro capas. Es una imagen de contención dibujada sobre un sistema que realiza traspasos.

2) Problema dos: un bucle dibujado como interminable es una factura.

El original dibuja el bucle del producto de esa manera. En la práctica, termina por un presupuesto, por un punto de control o porque alguien pierde la paciencia.

Llamar a eso "ninguno por diseño" oculta el lugar exacto por donde el dinero se fuga de un sistema de agente: un bucle al que nadie le dijo cómo salir.

3) Problema tres: no hay aborto.

Cada capa tiene un final feliz y ningún final infeliz. Los bucles reales necesitan ambos: cómo se cierra cuando funciona, y cómo se detiene cuando no puede.

Cada factura descontrolada que he visto era un bucle con una salida definida y un aborto indefinido.

4) Problema cuatro: la verificación falta, y es todo el juego.

La verificación es el contrato entre capas. Cuando un bucle inferior entrega un informe en lugar de un hecho a un bucle superior, el bucle superior se cierra sobre una mentira.

Esa única brecha es la razón por la que un bucle puede alcanzar su condición de parada y seguir estando equivocado.

Esta es la versión contra la que construyo.

La Escalera de la Evidencia

Seis peldaños, dos salidas cada uno, y una regla: el control fluye hacia abajo como objetivos, la evidencia fluye hacia arriba como hechos, y ningún peldaño puede cerrarse sobre un informe del peldaño inferior.

Avid - inline image

Cinco leyes se derivan de la forma.

Cada peldaño tiene un aborto, o es una factura. Si no puedes nombrar cómo termina mal un bucle, has construido una suscripción. Por eso ralph.sh tiene dos límites y el enjambre tiene un límite de ciclo.

La evidencia fluye hacia arriba y el control fluye hacia abajo. Un peldaño se cierra sobre un hecho producido debajo de él, nunca sobre un resumen escrito debajo de él.

La puerta de la fábrica es esta ley en SQL. Dos revisores dijeron verde. La puerta aún se negó, porque nadie había producido una fila de prueba exitosa.

Un veredicto es una opinión. Una fila es evidencia.

El costo por vuelta aumenta aproximadamente diez veces por peldaño.

Un error que escapa del peldaño 2 cuesta diez veces más atraparlo en el peldaño 3, y cien veces más en el peldaño 4.

Ese es el argumento completo para poner tu mejor verificación tan abajo en la escalera como sea posible, que es por qué la puerta es un script de bash y no una reunión.

La escala de tiempo pertenece al modelo, no al peldaño.

El peldaño 2 tomaba minutos en 2024, toma horas en 2026, y pronto tomará días. Diseña en función de la condición de salida, nunca en función del reloj. Aquí es donde la imagen antigua envejece más rápido.

Solo el peldaño 5 no tiene condición de salida, y eso es lo que significa humano.

Tú vives allí. La escalera existe para ganarse una frase: un bucle puede alcanzar su condición de parada y seguir estando equivocado.

Las pruebas pasan, la puerta se pone verde, ambos revisores firman, y el último commit sigue siendo un error. Cada peldaño debajo de ti existe para hacer esa comprobación más pequeña. Ninguno de ellos puede quitártela.

Requisitos Previos

bash
1claude CLI (Claude Code) con acceso a Fable 5
2codex CLI con acceso a GPT-5.6 # o el plugin oficial dentro de Claude Code
3python3, jq, git, gh, make, cron
4un repositorio con un comando de prueba que funcione hoy
5
6# opcional, para flotas mixtas (BUILD 7):
7openai/codex-plugin-cc # oficial: ejecutar Codex dentro de Claude Code
8claude-model-switch # proxy local: cualquier proveedor detrás de Claude Code
9CLIProxyAPI # envolver suscripciones CLI como endpoints API

Lo que estás construyendo

markdown
1tu-repositorio/
2 CLAUDE.md # BUILD 1: constitución del lado de Claude
3 AGENTS.md # BUILD 1: constitución del lado de Codex
4 .claude/
5 skills/model-bench/SKILL.md # BUILD 0: precios, IDs de API, respaldos. el único archivo con números
6 skills/model-router/SKILL.md # BUILD 4
7 skills/stuck-protocol/SKILL.md # BUILD 5
8 skills/ship-gate/SKILL.md # BUILD 2
9 agents/fable-expert.md # BUILD 5
10 agents/fresh-eyes-reviewer.md # BUILD 6
11 agents/sol-reviewer.md # BUILD 6
12 agents/scout.md # BUILD 7
13 loop/
14 ralph.sh # BUILD 3: el latido del corazón
15 two_lane.sh # BUILD 6: bucle de revisión cruzada entre proveedores
16 PROMPT.md TASKS.md # BUILD 3: el protocolo de trabajo
17 gate/
18 verify.sh # BUILD 2: voto final determinista
19 eval_gate.py eval/cases.jsonl # BUILD 2: puerta de cambio de enrutamiento
20 router/
21 router.py # BUILD 4
22 advisor_loop.py # BUILD 5
23 ~/.codex/
24 config.toml # BUILD 0: perfiles luna/terra/sol
25 prompts/effort.md # /effort puntuar la tarea, nombrar el asiento
26 prompts/plan-stop.md # /plan-stop planificar, poner precio, luego parar
27 prompts/fable-advice.md # /fable-advice consulta de experto entre proveedores
28 prompts/review-hostile.md # /review-hostile veredicto de contexto limpio
29 prompts/compost.md # /compost los fallos se convierten en leyes, semanalmente
30 factory/
31 factory_gate.py # BUILD 8: pizarra + puerta de finalización
32 factory.sh # BUILD 8: brief -> implementar -> revisar -> puerta
33 factory.db # BUILD 8: las filas que deciden
34 swarm/
35 swarm.sh # BUILD 9: planificar -> enviar -> puntuar -> replanificar
36 goals.jsonl # BUILD 9: un objetivo por línea, cada uno con su comprobación
37 system/
38 verify_goals.py # BUILD 10: re-verificación diaria, para siempre
39 goals/ # BUILD 10: un archivo por cosa terminada
40 ROUTING.md # BUILD 12: la política de enrutamiento completa, ambos arneses
41 progress.log # cada build añade aquí
42 # opcional (BUILD 7): proxy claude-model-switch en localhost:4000,
43 # CLIProxyAPI para envolver suscripciones CLI como endpoints API

BUILD 0: Configurar los Motores

Establece esto antes de escribir cualquier archivo propio. Cada número a continuación fue verificado contra las páginas de precios oficiales la semana de la publicación.

El banco: cada asiento, julio de 2026

La lista de la que el sistema contrata.

Los precios viven en un archivo de skill, .claude/skills/model-bench/SKILL.md, cargado bajo demanda antes de cualquier pregunta de enrutamiento o costo. Ningún otro archivo tiene un número fijo.

Los precios se movieron tres veces en las seis semanas anteriores a la redacción de esto. Un precio en un artículo es incorrecto en el momento de la publicación. Un precio en un archivo de skill es una edición.

Avid - inline image

La división que lo decide todo aguas abajo:

  • Fable 5 lidera el trabajo de software duro. 80 por ciento en SWE-Bench Pro contra el 64.6 de Sol, y supera a Sol en inteligencia general.
  • Sol lidera el trabajo de terminal y agente. 88.8 por ciento en Terminal-Bench 2.1, y encabeza el índice de agente de codificación a aproximadamente un tercio del costo de Fable por tarea.

Esa división es por qué este sistema es de dos proveedores. Fable juzga y planifica, Sol revisa y maneja terminales, y ninguno de los dos hace el trabajo mecánico pesado.

Avid - inline image

Dos asientos que la gente malinterpreta.

Opus 4.8 no es el antiguo buque insignia acumulando polvo. Es el respaldo automático bajo Fable y el valor predeterminado recomendado para la codificación de agentes compleja. Tu sistema lo hereda, ya sea que lo planifiques o no.

Sonnet 5 a precio de introducción es la mejor relación calidad-precio del mercado. Cerca de Opus 4.8 en capacidad a una fracción del precio de entrada de Fable, por lo que es el ejecutor predeterminado en todas partes en esta construcción. Esa tarifa vence el 31 de agosto, y el archivo de skill ya lo sabe.

Ese archivo de skill es el único archivo en el sistema que contiene un número:

markdown
1---
2name: model-bench
3description: La hoja de precios actual, los IDs de modelo de API y la cadena de respaldo para cada
4 modelo que este sistema puede contratar. Cargar antes de cualquier decisión de enrutamiento, estimación de costos,
5 pregunta de presupuesto, comparación de modelos, o cuando el usuario pregunte cuánto cuesta algo.
6---
7
8# Banco de modelos
9
10Única fuente de verdad para precios e identificadores de API. Nada más en este repositorio
11tiene un precio fijo, así que cuando los laboratorios cambien sus tarifas, editas este archivo y
12nada más. Verificado el 2026-07-13. Los precios se mueven. Vuelve a verificar antes de presupuestar.
13
14## Anthropic (API de Mensajes, /v1/messages)
15
16Esfuerzo: output_config {"effort": "low|medium|high|xhigh|max"}. El pensamiento adaptativo
17siempre está activo para Fable 5 y no se puede deshabilitar. max_tokens limita el pensamiento MÁS
18el texto de respuesta, así que establécela grande (comienza cerca de 64k) en alta y superior, o el modelo
19se queda sin espacio a mitad del pensamiento.
20
21| Modelo | Entrada/Salida por Mtok | Lectura de caché | Asiento |
22|---|---|---|---|
23| claude-fable-5 | $10/$50 | $1.00 | director, planificador, asesor, juez. Vuelve a opus-4-8 automáticamente |
24| claude-opus-4-8 | $5/$25 | $0.50 | director bajo reglas de retención |
25| claude-sonnet-5 | $2/$10 (hasta el 31 de agosto, luego $3/$15) | n/a | ejecutor de codificación predeterminado |
26| claude-haiku-4-5 | $1/$5 | $0.10 | exploradores, subagentes, trabajo mecánico |
27
281M de contexto en Fable, Opus 4.8, Sonnet 5, con PRECIO FIJO en contexto largo, que es
29por qué las lecturas largas se enrutan aquí. Salida máxima de 128K.
30
31## OpenAI (API de Respuestas, /v1/responses)
32
33| Modelo | Entrada/Salida por Mtok | En caché | Asiento |
34|---|---|---|---|
35| gpt-5.6-sol | $5/$30 | $0.50 | revisor entre proveedores, trabajo de terminal |
36| gpt-5.6-terra | $2.50/$15 | $0.25 | controlador diario de Codex (probar contra Luna primero) |
37| gpt-5.6-luna | $1/$6 | $0.10 | trabajo mecánico, ticks silenciosos |
38
39El contexto largo por encima del umbral aproximadamente DUPLICA el precio de entrada, a diferencia del
40nivel fijo de 1M de Anthropic. Primera familia con puntos de interrupción de caché explícitos; las escrituras cuestan 1.25x.
41
42## Pesos abiertos (trabajadores masivos)
43
44| Modelo | Entrada/Salida por Mtok | Acierto de caché |
45|---|---|---|
46| deepseek-v4-flash | $0.14/$0.28 | $0.0028 (aproximadamente 98 por ciento de descuento) |
47| deepseek-v4-pro | $0.435/$0.87 | n/a |
48| kimi-k2.7-code | $0.95/$4.00 | $0.19 |
49
50## Descuentos que se acumulan
51 - las lecturas de caché cuestan una décima parte de la entrada fresca en ambos laboratorios (alrededor del 90 por ciento de descuento)
52 - las escrituras de caché se amortizan después de una lectura (5 m) o dos (1 h)
53 - las API por lotes tienen un 50 por ciento de descuento en ambas direcciones
54 - lote + lectura de caché en un prefijo repetido se acerca al 95 por ciento de descuento
55 - el tokenizador más nuevo de Anthropic produce aproximadamente un 30 por ciento más de tokens para el mismo
56 texto, por lo que el costo efectivo está por encima del precio de lista. Presupuesta según el efectivo.
57
58## Cómo responder a una pregunta de costo
59 1. Estima la entrada y la salida por separado. Los agentes leen aproximadamente 100 tokens por cada
60 1 que escriben, por lo que la entrada domina y la tasa de aciertos de caché decide la factura.
61 2. Aplica la tasa de lectura de caché al prefijo repetido, no a la tasa base.
62 3. Multiplica las cifras de Anthropic por aproximadamente 1.3 para el tokenizador.
63 4. Cita un rango, nombra los supuestos, di qué línea de este archivo usaste.
64 5. Si el número excede el límite diario del repositorio, dilo ANTES de ejecutar cualquier cosa.
65
66Nunca presentes un precio que no hayas leído de este archivo. Un modelo no listado aquí no está
67en el banco, y añadir uno es un cambio de enrutamiento que pasa por la puerta.

Siete hechos que cambian cómo construyes:

  1. La entrada en caché tiene un 90 por ciento de descuento en ambos laboratorios. Una marca de tiempo en tu prompt del sistema lo quema en cada llamada. Prefijo estable, historial de solo añadidura, siempre. Los agentes leen aproximadamente 100 tokens por cada 1 que escriben, por lo que este descuento es la mayor parte de tu factura.
  2. Las escrituras de caché cuestan más pero se amortizan rápido. La escritura de 5 minutos de Anthropic factura 1.25x y se equilibra después de una sola lectura. GPT-5.6 es la primera familia de OpenAI con puntos de interrupción de caché explícitos y escrituras con precio. Arquitecta alrededor de la caché como un programador de sistemas arquitecta alrededor de una jerarquía de memoria.
  3. El tokenizador más nuevo de Anthropic hace aproximadamente un 30 por ciento más de tokens para el mismo texto. El precio efectivo está por encima del precio de lista. Presupuesta según el efectivo.
  4. Un rechazo por seguridad de Fable 5 no es un error. La llamada tiene éxito y el trabajo cae en Opus 4.8, por diseño, en menos del 5 por ciento de las sesiones. Lee lo que sucedió, no solo el código de salida, y configura la cadena de respaldo antes de que la necesites.
  5. No uses por defecto el nivel intermedio. Pruebas independientes encontraron que alguna configuración de Luna o Sol siempre supera a Terra en la frontera costo-calidad. Prueba Terra contra Luna en tu propio tráfico antes de pagar por ello.
  6. Las API por lotes reducen a la mitad cualquier cosa que pueda esperar hasta el día siguiente, y el descuento se acumula con el almacenamiento en caché: los prefijos repetidos en trabajo por lotes se ejecutan cerca del 95 por ciento de descuento. El quemador nocturno en BUILD 7 existe para explotarlo.
  7. La disponibilidad es un riesgo operativo, no una hipótesis. Fable 5 perdió 19 días en junio. Cada referencia de modelo aquí tiene un respaldo: fable-5 cae a opus, sol cae a terra, y cada respaldo se registra.

El segundo medidor: un asiento no es una clave API

Cada número anterior está valorado en dólares por millón de tokens. Esa es la moneda correcta si pagas por llamada.

Es la incorrecta si ejecutas esto en un asiento de Codex Pro de $200 o un asiento de Claude Max.

En un asiento, el medidor es una ventana de cinco horas y una ventana semanal, evaluadas juntas, y una solicitud cuenta contra ambas.

Puedes estar sobrado en la semana y aún así estar bloqueado durante cuatro horas, porque un solo mensaje consumió la ventana corta.

Misma doctrina. Diferente moneda. Tres configuraciones deciden cuánto de una ventana puede tomar un mensaje:

Avid - inline image

El modo rápido es el caro, porque multiplica un número que se acaba de hacer más grande.

GPT-5.6 se ejecuta mucho más tiempo por mensaje que 5.5. Principalmente un regalo. También hace que el consumo sea impredecible.

  • Theo informa haber quemado más de $200,000 de tokens en Sol
  • Ha visto un mensaje de 5.6 tomar el 15 por ciento de una ventana de cinco horas
  • Con el multiplicador, eso es el 40 por ciento de la ventana en un solo mensaje

La velocidad no es gratis. Lo que te cobra son los tokens que ibas a quemar de todos modos. Vuelve a leer el multiplicador en los documentos de velocidad antes de confiar en él: se publica por modelo y se mueve.

Ultra es la trampa más sutil, porque los archivos de interfaz donde viven los niveles de esfuerzo y no es uno de ellos.

  • Máximo es profundidad. Un modelo, un problema, más tiempo en una sola cadena de razonamiento.
  • Ultra es amplitud. El trabajo se bifurca a cuatro agentes, luego se sintetiza.
  • Ejes diferentes. Ultra no es "más que máximo".

Apuntado a una tarea que realmente no se divide, ultra compra cuatro agentes duplicando una investigación.

Vale aproximadamente 3.1 puntos en Terminal-Bench 2.1, 88.8 a 91.9, por el consumo de toda una flota. Apagado hasta que los límites entre los subproblemas sean reales.

Por qué Sol y Terra son ambos valores predeterminados correctos

Un informe de campo ejecuta Sol para casi todo. El banco anterior hace que Terra sea el controlador diario de Codex. Ambos tienen razón, y el medidor es la razón.

  • La tarjeta de tarifas dice que la salida de Sol cuesta el doble que la de Terra
  • El asiento dice que ya pagaste
  • Entonces, la única pregunta viva es cuántas vueltas se necesitan para llegar a verde
  • Un modelo más fuerte con un esfuerzo menor generalmente necesita menos

La tarifa no es el costo. El costo es la tarifa multiplicada por las vueltas hasta verde, y el segundo término es el que se mueve.

Que es la ley de BUILD 4 llegando desde la otra dirección: mejora el asiento antes de tocar el dial. En un asiento que se lee como Sol en alto en el nivel de $200, Sol en bajo debajo de él. Mide antes de creer en cualquiera de los dos.

Configura los niveles de Codex ahora:

text
1# ~/.codex/config.toml
2model = "gpt-5.6-terra" # controlador diario
3model_reasoning_effort = "medium"
4# service_tier = "fast" # DÉJALO COMENTADO. el modo rápido factura 2.5x
5 # créditos. ejecuta /fast status para confirmar que
6 # no estás ya en él.
7
8[profiles.fast] # trabajo mecánico. NO es "modo rápido": este
9model = "gpt-5.6-luna" # perfil es un modelo más barato, no un medidor 2.5x
10model_reasoning_effort = "low" # dos cosas diferentes, una palabra.
11
12[profiles.deep] # planificación, errores difíciles, revisiones
13model = "gpt-5.6-sol"
14model_reasoning_effort = "high"

CHECK 0: ambas CLI se autentican, y tu comando de prueba sale con 0 en el repositorio actual.

BUILD 1: Las Constituciones

Estos modelos siguen leyes y optimizan según las indicaciones, por lo que cada línea necesita un número, un "nunca" o un comando que la verifique.

Crea CLAUDE.md:

markdown
1# CLAUDE.md
2
3## NUNCA (las excepciones requieren preguntar primero)
4- Nunca cambies de modelo a mitad de sesión. El enrutamiento ocurre solo en los límites de sesión y
5 subagente. Los intercambios a mitad de tarea queman la caché.
6- Nunca revises tu propio diff. La revisión proviene de un contexto fresco o de un
7 linaje diferente. El revisor de Devin atrapa 2 errores por PR de agente
8 precisamente porque no comparte nada con el escritor.
9- Nunca edites, debilites o elimines una prueba para que pase. FALLO automático.
10- Nunca informes "hecho" desde la autoevaluación. Hecho = gate/verify.sh pasó.
11- Nunca tomes una cuarta consulta de asesor. Tres fallos = BLOQUEADO, turno del humano.
12- Nunca fusiones un cambio de enrutamiento o prompt que eval_gate.py haya BLOQUEADO.
13- Nunca ejecutes ningún bucle sin ambos límites establecidos: MAX_ITERS y BUDGET_USD.
14- Nunca asumas que un modelo de frontera está activo. Respaldos: fable-5 -> opus,
15 sol -> terra. Registra cada respaldo en progress.log.
16- Nunca generes un subagente que no te hayan pedido. Los hijos heredan el
17 modelo Y el esfuerzo del padre, por lo que una flota entusiasta hereda el asiento caro.
18
19## ENVÍO (la primera coincidencia gana)
20| # | Tarea | Asiento |
21|---|---|---|
22| 1 | planificar / arquitecturar / migrar | fable-5 planifica, sonnet ejecuta |
23| 2 | extraer / formatear / pruebas / docs | haiku o luna |
24| 3 | contexto de más de 60k tokens | nivel fijo de 1M de Anthropic |
25| 4 | revisión de código escrito por agente | sol vía codex, arnés nativo |
26| 5 | ambiguo | puntuación de dificultad: 0-1 barato, 2 sonnet, 3+ frontera |
27| 6 | aún inseguro | ejecuta barato una vez, verifica, escala una vez si falla |
28
29## HECHO
30- Cada tarea lleva un done_when comprobable por máquina antes de que comience el trabajo.
31- Un revisor de contexto fresco juzga la especificación contra el diff, nada más.
32- gate/verify.sh tiene el voto final. Dos desacuerdos
33 hacedor/verificador en un mismo elemento -> detente, pon en cola para un humano.

Crea AGENTS.md en la raíz del repositorio, las mismas leyes en el dialecto de Codex. Mantenlo cerca de 100 líneas, un índice de contenidos, no una enciclopedia:

markdown
1# AGENTS.md
2
3## Comandos
4| Propósito | Comando |
5|---|---|
6| Probar | make test (este comando es la definición de "hecho") |
7| Lint | make lint |
8
9## Protocolo de sesión
101. Lee progress.log y TASKS.md primero. 2. UNA tarea sin marcar.
113. Implementa, ejecuta la SUITE completa, haz commit solo en verde, mensaje descriptivo.
124. Marca la tarea, añade una línea a progress.log, para.
13Las pruebas definen "hecho". Nunca debilites, omitas o elimines una. Prueba incorrecta =
14marca la tarea como BLOQUEADA y di por qué.
15
16## Política de modelo
17Predeterminado: terra, esfuerzo medio. Mecánico: perfil fast (luna, bajo).
18Planificación y errores difíciles: perfil deep (sol, alto).
19Esfuerzo antes que modelo. Perfil elegido al inicio de la sesión, nunca a mitad de tarea.
20Modo rápido APAGADO (2.5x créditos). Ultra APAGADO. Ninguno es un nivel de esfuerzo.
21Solo genera un subagente cuando te lo pida. Los hijos heredan el modelo Y el nivel de razonamiento de esta sesión,
22por lo que una generación entusiasta con esfuerzo alto es toda una flota con esfuerzo alto.
23
24## Atascado
25Señales: el mismo error dos veces; dos pasos sin progreso; una prueba que sobrevive a dos
26correcciones distintas. Entonces /fable-advice. Máximo 3 consultas, luego BLOQUEADO.
27
28## Revisión
29/review-hostile en una sesión NUEVA antes de cualquier fusión, o el carril
30cruzado entre proveedores desde el lado de Claude. Nunca fusiones tu propio trabajo sin revisar.

Una doctrina debe vivir en ambos lados, o el arnés que tenga los hábitos más laxos ganará cada vez que cambies de herramienta.

CHECK 1: para cada línea, pregúntate si el modelo podría cumplir al 80 por ciento y reclamar éxito. Si es así, reescríbela con un número o un "nunca". wc -l CLAUDE.md por debajo de 60.

BUILD 2: La Puerta

Un script de bash debe tener el voto final antes de que exista cualquier otra cosa, porque cada build posterior lo asume.

Crea gate/verify.sh para tu stack:

bash
1#!/usr/bin/env bash
2set -e
3npm run typecheck --if-present
4npm test --if-present
5npm run lint --if-present

Crea gate/eval_gate.py, el cinturón de seguridad para cada cambio futuro de enrutamiento o prompt. Ejecuta de 50 a 500 casos reservados a través de la configuración actual y la propuesta, solo con comprobaciones deterministas:

python
1for case in cases: # {prompt, must_include, must_not_include, max_words}
2 hits += passes(case, run_config(case.prompt))
3verdict = "SHIP" if new_score >= old_score - 0.02 else "BLOCKED"

Luego, haz que la puerta sea imposible de saltar como una skill, .claude/skills/ship-gate/SKILL.md:

markdown
1---
2name: puerta-de-entrega
3description: Ejecuta la puerta de evaluación antes de que cualquier enrutamiento, cambio de modelo o prompt salga a producción. Úsalo cuando el usuario pida cambiar reglas de enrutamiento, intercambiar un nivel de modelo, editar un prompt de sistema, ajustar niveles de esfuerzo o fusionar cualquier cosa que afecte al enrutador, prompts o configuración del modelo.
4---
5
6# Puerta de entrega
7
8Cualquier cambio en el enrutamiento o los prompts es una apuesta a la calidad hasta que la puerta diga lo contrario. Esta skill existe para que esa apuesta nunca llegue en silencio.
9
10 1. Localiza eval/cases.jsonl. Si no existe, DETENTE y dile al usuario que primero construya entre 50 y 500 casos representativos a partir del tráfico real. No improvises casos tú mismo.
11 2. Ejecuta: python3 eval_gate.py eval/cases.jsonl, config actual vs propuesta.
12 3. BLOQUEADO: reporta ambas puntuaciones, enumera qué casos retrocedieron, no apliques el cambio, sugiere la reversión más pequeña que despeje la puerta.
13 4. ENTREGAR: aplica y añade una línea a progress.log con ambas puntuaciones.
14
15Reglas estrictas:
16 - Nunca anules un veredicto de BLOQUEADO, aunque te lo pidan amablemente. Escala al humano con los casos fallidos adjuntos.
17 - Nunca edites el archivo de casos en la misma sesión que un cambio de enrutamiento. La puerta y el cambio no deben compartir autor.
18 - Los números de costo no son una defensa contra una caída de calidad. La puerta gana.

La puerta usa solo comprobaciones deterministas, porque nunca debe heredar el problema de quién verifica al verificador. Un cambio de enrutamiento sin una puerta de evaluación es un experimento de costos que estás ejecutando con tus clientes.

COMPROBACIÓN 2: ./gate/verify.sh sale con 0 hoy, y eval_gate.py imprime ENTREGAR en su demo. Si verify.sh falla ahora, arréglalo antes de cualquier otra cosa. El sistema se sostiene sobre este script.

CONSTRUCCIÓN 3: El Latido

El modelo aporta inteligencia. El bucle aporta disciplina.

  • Contexto fresco por iteración elimina la podredumbre del contexto
  • El repositorio lleva toda la memoria
  • Dos límites convierten un agente desbocado en una lección de diez dólares

Esta es la forma exacta detrás de la ejecución de 16 iteraciones de Anthropic que construyó un compilador de C de 100,000 líneas por unos $20,000, sin ningún modelo orquestador en medio.

Crea loop/PROMPT.md:

markdown
1Lee progress.log y TASKS.md. Elige EXACTAMENTE UNA tarea sin marcar.
2Impleméntala. Ejecuta las pruebas. Si todo está verde: haz commit con un mensaje
3descriptivo, marca la tarea, añade una línea a progress.log, detente.
4Si la misma tarea falla dos veces, márcala como BLOQUEADA con el error y detente.
5Crea un archivo llamado DONE solo cuando cada tarea esté marcada Y todo el
6conjunto de pruebas pase. Nunca edites una prueba para que pase.

Crea loop/ralph.sh:

bash
1#!/usr/bin/env bash
2set -u
3MAX_ITERS="${MAX_ITERS:-25}" # límite uno: iteraciones
4BUDGET_USD="${BUDGET_USD:-10}" # límite dos: dólares
5MAX_FAILS=3; fails=0; spent=0; i=0
6
7while [ ! -f DONE ] && [ "$i" -lt "$MAX_ITERS" ]; do
8 i=$((i + 1))
9 # sesión nueva cada iteración: sin memoria excepto el propio repositorio
10 claude -p "$(cat PROMPT.md)" --max-turns 30 \
11 --output-format json > out.json 2> err.log \
12 && fails=0 || fails=$((fails + 1))
13 [ "$fails" -ge "$MAX_FAILS" ] && exit 2 # cortacircuitos
14 cost=$(jq -r '.total_cost_usd // 0' out.json)
15 spent=$(awk -v a="$spent" -v b="$cost" 'BEGIN{printf "%.4f", a+b}')
16 awk -v s="$spent" -v c="$BUDGET_USD" 'BEGIN{exit !(s>c)}' && exit 3 # límite
17 sleep 2
18done
19[ -f DONE ] && echo "done in $i ticks, \$$spent" || echo "cap hit, \$$spent"

Cambia la línea de claude por codex exec y el mismo bucle funciona con GPT-5.6.

El mapa de salidas es intencionado: 0 hecho o silencio, 2 cortacircuitos, 3 presupuesto. Cada alarma de la CONSTRUCCIÓN 12 se activa con estos.

La línea de costo lee el informe de costos JSON de la propia sesión, así que el límite lo impone el arnés contra el gasto real, no una estimación.

Cuenta las paradas en ese prompt. Cada rama termina en una, y eso es el diseño, no un tic.

Esta generación dura mucho más por mensaje que la anterior. En su mayoría es un regalo. Ocasionalmente una factura, porque un modelo que ya no necesita que lo animen a continuar llevará una tarea cuatro pasos más allá del punto donde querías revisarla.

El bucle lo resuelve estructuralmente: una tarea por ciclo, parada forzosa al final.

De forma interactiva tienes que decirlo en voz alta. Dos prompts hacen el trabajo:

  • "escribe el plan, luego detente y muéstramelo antes de construir nada"
  • una vez que el plan es bueno: "constrúyelo, pruébalo, abre el PR, gestiona la primera ronda de comentarios de revisión, luego detente"

Un modelo que funciona mucho tiempo solo es peligroso cuando nadie le dijo dónde estaba el borde.

Las tareas largas fallan como falla el contexto, así que las iteraciones se mantienen cortas y el entorno hace la memorización. Fable 5 y los modelos Codex ahora compactan su propio contexto durante la ejecución, así que resístete a añadir plomería de memoria ingeniosa; la cantidad correcta se reduce cada trimestre.

COMPROBACIÓN 3: dos tareas reales muy pequeñas en TASKS.md, un ciclo ejecutado manualmente con BUDGET_USD=2. Confirma un commit, una tarea marcada, una línea de log, y que el bucle sale en lugar de iniciar una segunda tarea.

CONSTRUCCIÓN 4: El Enrutador Que Se Gana Su Puesto (modelo, luego esfuerzo)

El benchmark de enrutamiento más riguroso de 2026, LLMRouterBench, descubrió que muchos enrutadores, incluidos los comerciales, no logran superar de forma fiable la elección del mejor modelo único. Por lo tanto, el enrutador es culpable hasta que se demuestre su inocencia con tu propio tráfico.

La regla de decisión, antes de cualquier código. Añade un enrutador solo cuando ambas condiciones sean ciertas:

  • Los niveles económico y frontier muestran una brecha de capacidad por dólar de aproximadamente cinco veces en tu tráfico
  • El conjunto de evaluación de la CONSTRUCCIÓN 2 existe para supervisarlo

Si un modelo bien elegido vence a tu enrutador en esas evaluaciones, elimina el enrutador y quédate con la simplicidad.

Una vez que supera el listón, router/router.py ejecuta tres capas, decisión más barata primero. Observa que los niveles nombran asientos, nunca precios: las tarifas provienen de la skill de benchmark en tiempo de ejecución, así que un cambio de precio nunca toca tu enrutador.

python
1TIERS = { # asientos, no números
2 "cheap": "gpt-5.6-luna", # o claude-haiku-4-5
3 "mid": "claude-sonnet-5",
4 "frontier": "claude-fable-5", # o gpt-5.6-sol
5}
6PRICES = load_bench(".claude/skills/model-bench/SKILL.md") # única fuente de verdad
7
8RULES = [
9 (kind in {"extract", "format", "summarize"}, "cheap"),
10 (kind in {"plan", "architect", "migrate"}, "frontier"),
11 (context_length > 60_000, "mid"),
12]
13tier = layer1_rules(task) or layer2_classifier(task)
14if tier: return call(TIERS[tier], task)
15return cascade(task) # cheap primero, verificar, escalar UNA VEZ si falla

La capa intermedia puntúa la dificultad mediante marcadores que puedes leer: por qué, depurar, condición de carrera, punto muerto, refactorizar, seguridad, más código en el prompt, un intento fallido anterior, y más de un subsistema afectado.

Cero o un punto va a cheap. Dos a mid. Tres o más a frontier. El verificador de la cascada es determinista y escala exactamente una vez.

Conecta las mismas decisiones en el arnés para que se activen sin ser invocadas, .claude/skills/model-router/SKILL.md. Observa que la skill no reafirma las reglas, las lee, el mismo truco de fuente única de verdad que usa el benchmark para los precios:

markdown
1---
2name: model-router
3description: Enruta cada tarea al asiento y esfuerzo adecuados antes de comenzar a trabajar. Úsalo al inicio de la sesión, antes de generar subagentes, cuando el usuario pregunte qué modelo usar, o cuando una tarea mezcle planificación y ejecución.
4---
5
6# Enrutador de modelos
7
8Lee ROUTING.md y aplícalo. No improvises una política, y no la reafirmes aquí: este archivo se pudriría, y el archivo de políticas es el que está bajo la puerta de evaluación.
9
10Tres cosas que esta skill impone además de ese archivo:
11
12 1. Enruta solo en los límites. Inicio de sesión y generación de subagentes. Un cambio a mitad de tarea invalida la caché y vuelve a facturar el contexto a diez veces la tasa en caché.
13 2. Al final de la sesión, añade la proporción del nivel económico a progress.log. Los ahorros se acumulan solo cuando la mayor parte del tráfico va a cheap, así que ese número es el que hay que vigilar.
14 3. Cualquier cambio en ROUTING.md se entrega a través de la skill de puerta de entrega. Sin excepciones.

El orden de decisión refleja el costo: una comprobación gratuita primero, una suposición puntuada después, un experimento pagado al final.

El dinero está en la división del tráfico, no en la sofisticación.

  • Envía el 70 por ciento del trabajo a un nivel que cuesta la décima parte y la factura baja aproximadamente dos tercios
  • Los informes de producción se agrupan entre el 40 y el 85 por ciento de ahorro, y la dispersión se debe casi por completo a la división
  • Los ahorros se acumulan solo después de que la mayor parte del tráfico va a cheap

Por eso la proporción de cheap en progress.log es el único número que este sistema te obliga a vigilar.

El esfuerzo es el segundo dial

El esfuerzo es enrutamiento un nivel más abajo: la misma habilidad, aplicada a cuánto tiempo piensa el modelo en lugar de qué modelo se ejecuta.

Cada herramienta entierra el dial en un valor predeterminado diferente. Alto en Claude Code. Medio en Codex. Oculto en la mayoría de las aplicaciones. Así que la gente deja una configuración para todo, y o pagan de más o piensan de menos.

Avid - inline image

Por defecto, alto, y trata el máximo como último recurso, no como un alarde.

  • La propia documentación de esfuerzo de Anthropic sitúa el punto óptimo en alto, y advierte que el máximo puede derivar en pensar de más
  • Un benchmark público de 26 tareas de codificación encontró que alto aproximadamente triplicaba la calidad de bajo
  • El mismo benchmark encontró que xhigh costaba más del doble por una ganancia que rara vez se amortizaba

El modelo importa al menos tanto como el dial. Fable 5 con esfuerzo bajo a menudo supera a modelos antiguos ejecutándose en xhigh, así que busca el mejor modelo antes que la configuración más alta.

Dos configuraciones se confunden con peldaños superiores de esta escalera. Ninguna lo está.

  • Máximo es profundidad. Un modelo, un problema, más tiempo.
  • Ultra es amplitud. Una tarea dividida en cuatro agentes paralelos, luego sintetizada.

Ejes diferentes. Ultra no es "más que máximo", y apuntarlo a una tarea que realmente no se divide compra cuatro agentes duplicando una investigación.

La escalera no se traslada entre versiones. La misma palabra compra una cantidad diferente de pensamiento en un modelo nuevo que en el antiguo.

Al mover una tarea conocida a un nuevo asiento, comienza un peldaño por debajo de la configuración en la que confías. Sube solo si la salida lo pide.

Una trampa pertenece específicamente a los enjambres.

Los subagentes heredan el modelo del padre y el esfuerzo del padre. Una flota generada desde un conductor de máximo esfuerzo es una flota de máximo esfuerzo, y agota una ventana en un solo mensaje.

Fíjalos en su propio frontmatter, y sabe en qué arnés estás cuando lo haces, porque la fijación solo es tan buena como el generador que la lee.

  • Lado Claude. El frontmatter a continuación es el control.
  • Lado Codex. 5.6 genera hijos al mismo nivel de modelo y razonamiento del padre, y lo hace con entusiasmo. El dial del padre es el dial de la flota.

En el lado Codex, los únicos controles reales son la configuración con la que abriste la sesión y una línea en AGENTS.md que dice que no genere a menos que se lo pidas. Verifica cuál tienes antes de confiar en cualquiera:

yaml
1name: scout
2model: haiku
3effort: low # los subagentes heredan del padre. un enjambre de máximo esfuerzo
4 # vacía una ventana en un mensaje. fíjalos.

Ajústalo por herramienta: /effort en Claude Code y la TUI de Codex, un flag como codex -e high, una línea en la configuración, o el campo effort en la API.

El enrutamiento de modelos decide quién piensa. El enrutamiento de esfuerzo decide cuánto tiempo, y el segundo dial es más barato de girar porque nada más cambia en la configuración y la caché se mantiene caliente. Gasta esfuerzo donde el bucle se bifurca. En cualquier otro lugar es un impuesto.

Rastrea el único número semanalmente:

bash
1grep '^route' progress.log | awk -F'\t' \
2 '{r++; if($3!="frontier")c++} END{printf "cheap share: %.0f%%\n", c/r*100}'

ROUTING.md, la política que leen ambos arneses

Todo lo anterior se condensa en un archivo en la raíz del repositorio.

markdown
1# ROUTING.md
2
3El enrutamiento son cuatro decisiones, y el orden es el punto:
4 1. DÓNDE: qué arnés ejecuta el trabajo
5 2. CUÁNDO: en qué límite se toma la decisión
6 3. QUIÉN: qué modelo ocupa el asiento
7 4. CON QUÉ FUERZA: qué nivel de esfuerzo usa ese modelo
8La mayoría de los equipos solo discuten sobre 3. El dinero está en 2 y 4.
9
10## 1. DÓNDE: arnés antes que modelo
11Un modelo post-entrenado dentro de un arnés funciona fuera de distribución en cualquier otro lugar.
12Diferencia medida: 20.2 por ciento nativo vs 7.7 por ciento foráneo, mismos pesos.
13
14| Trabajo | Arnés | Por qué |
15|---|---|---|
16| escribir código | el arnés nativo del modelo | los escritores se degradan fuera de distribución |
17| revisar código | el arnés nativo del revisor | una revisión débil es peor que ninguna |
18| leer, explorar | cualquier lado | las lecturas son baratas y verificables |
19| transformaciones mecánicas | cualquier lado | si la comprobación es determinista, el arnés apenas importa |
20
21LEY: reasigna libremente los carriles de lector y revisor. El carril de escritor permanece en el arnés nativo hasta que tu propio conjunto de evaluación diga lo contrario. Esa anulación debe ser una medición, no una preferencia.
22
23## 2. CUÁNDO: enruta en los límites, nunca dentro de ellos
24Un cambio a mitad de sesión descarta la caché de prompts. La entrada en caché cuesta una décima parte de la entrada fresca, así que un cambio innecesario vuelve a facturar todo el contexto a diez veces el precio y no compra nada.
25
26Límites legales, los ÚNICOS lugares donde puede ocurrir una decisión de enrutamiento:
27 - inicio de sesión
28 - generación de subagente
29 - un nuevo objetivo en el enjambre
30 - una transferencia de revisión al otro linaje
31 - un respaldo activado por una interrupción o una salvaguarda
32
33Ilegal en cualquier otro lugar. Sin enrutamiento por turno. Sin intercambio adaptativo a mitad de tarea. La cascada obtiene EXACTAMENTE UNA escalada, y abre un nuevo límite.
34
35LEY: elige el asiento cuando se abre el límite, luego quédate hasta el siguiente.
36
37## 3. QUIÉN: el procedimiento de decisión (primera coincidencia gana, registra el resultado)
38
39Capa 1, reglas. Gratis. Siempre comprueba primero.
40
41| Señal | Asiento |
42|---|---|
43| extraer / formatear / resumir / clasificar / pruebas | Haiku o Luna, esfuerzo bajo |
44| planificar / arquitecturar / migrar / causa raíz | Fable planifica, Sonnet ejecuta |
45| contexto de más de 60k tokens | nivel Anthropic 1M (precio fijo) |
46| revisar código escrito por un agente | el otro linaje, arnés nativo |
47| el objetivo se divide en piezas independientes | enjambre: Fable escribe y puntúa |
48
49Capa 2, la puntuación. Un punto cada uno:
50 - contiene por qué / depurar / condición de carrera / punto muerto / refactorizar / seguridad / optimizar
51 - afecta a más de un subsistema
52 - un intento anterior ya falló
53 - el cambio es irreversible o visible para el usuario
54 0-1 -> nivel económico, esfuerzo bajo. 2 -> Sonnet, medio. 3+ -> frontier, alto.
55
56Capa 3, la cascada. Ejecuta en económico, verifica de forma determinista, escala EXACTAMENTE UNA VEZ. Nunca dos. Un segundo fallo es un problema de especificación, y un modelo más grande no arreglará tu especificación.
57
58Los asientos y los respaldos viven en .claude/skills/model-bench/SKILL.md. Sin precios aquí.
59
60## 4. CON QUÉ FUERZA: enrutamiento de esfuerzo
61El esfuerzo es enrutamiento un nivel más abajo. El dial más barato de este archivo: nada más cambia y la caché se mantiene caliente.
62
63| Esfuerzo | Úsalo para |
64|---|---|
65| bajo | erratas, renombres, ordenación, extracción, TODOS los subagentes por defecto |
66| medio | código rutinario a partir de una especificación clara, resúmenes, escritura estándar |
67| alto | desmontajes, migraciones, errores difíciles, todo el trabajo de conductor (POR DEFECTO) |
68| máximo | solo el problema que alto ya no logró resolver |
69| ultra | NO ESTÁ EN ESTA ESCALERA. amplitud, no profundidad: 4 agentes en paralelo. desactivado por defecto |
70
71 1. Por defecto, alto. El punto óptimo está ahí; el máximo deriva a pensar de más.
72 2. Mejor modelo supera a dial más alto. Mejora el asiento antes que la configuración.
73 3. Los subagentes HEREDAN el modelo del padre Y el esfuerzo. Una flota generada desde un conductor de máximo esfuerzo se ejecuta al máximo y vacía una ventana en un mensaje. Fija cada subagente en su propio frontmatter: effort: low. Cuando el generador ignora la fijación, el dial del padre ES el dial de la flota. Comprueba cuál tienes.
74 4. Máximo es profundidad. Ultra es amplitud. Ultra solo cuando los subproblemas son genuinamente independientes, nunca por defecto, y no en absoluto mientras el arnés genere en exceso.
75 5. La escalera no se traslada entre versiones. En un modelo nuevo, comienza un peldaño por debajo de la configuración en la que confiabas en el antiguo.
76 6. El modo rápido tampoco es un nivel de esfuerzo. Compra latencia a 2.5x créditos en tokens que ya estabas quemando de todas formas. Desactivado.
77
78El dial vive en cuatro lugares: /effort en Claude Code y la TUI de Codex, codex -e high, model_reasoning_effort en la configuración, el campo effort en la API. Claude Code tiene alto por defecto, Codex tiene medio, la mayoría de las aplicaciones lo ocultan por completo, que es por lo que los equipos accidentalmente ejecutan un nivel para todo.
79
80## 5. Respaldos: asume que el frontier está caído
81La disponibilidad de frontier no está garantizada, y una salvaguarda puede reenrutar una llamada a Opus 4.8 a mitad de ejecución, en menos del 5 por ciento de las sesiones, sin errores.
82 - Cada asiento tiene un respaldo designado. Sin excepciones.
83 - Cada respaldo se registra. Un reenrutamiento silencioso es un error, porque puedes estar leyendo la salida de un modelo que no elegiste.
84 - NUNCA iteres sobre la salida de un modelo que no elegiste.
85
86## 6. El número que decide si todo esto funcionó
87El costo combinado es tu división de tráfico, nada más. El 70 por ciento en económico reduce la factura aproximadamente dos tercios. El 10 por ciento ahorra calderilla. La precisión del enrutador vale mucho más que la sofisticación del enrutador.
88
89Rastréalo con el comando de una línea de la CONSTRUCCIÓN 4. Por debajo del 50 por ciento, los ahorros no han empezado a acumularse. Arregla la división antes de tocar cualquier otra cosa aquí.
90
91## 7. La puerta en este archivo
92LEY: ningún cambio en este archivo se entrega sin que eval_gate.py pase en 50 a 500 casos reservados. Un veredicto de BLOQUEADO es definitivo y no se puede anular durante la sesión. La puerta y el cambio no deben compartir autor.
93
94## 8. Cuándo eliminar este archivo
95Si un solo modelo bien elegido supera toda esta pila en tus evaluaciones, elimina el enrutador y quédate con la simplicidad. El benchmark de enrutamiento más riguroso de 2026 encontró que muchos enrutadores, incluidos los comerciales, no logran superar de forma fiable la elección del mejor modelo único.
96Mide primero. Enruta después. Elimina con gusto.

COMPROBACIÓN 4: router.py se ejecuta sin conexión e imprime una decisión, un motivo y la división. Tus notas contienen la medición de la brecha de 5x, o una nota con fecha que dice que el enrutador aún no está justificado.

CONSTRUCCIÓN 5: La Inversión del Asesor

El patrón clásico pone al modelo inteligente a cargo y quema tokens de frontier en ejecución masiva. Invértelo.

Los resultados del asesor de Anthropic: Haiku con un asesor de clase Opus más que duplicó su puntuación en un benchmark difícil de navegación, 41.2 frente a 19.7 solo, con un costo por tarea un 85 por ciento menor que el nivel medio.

La ejecución es a granel. El consejo es en gramos.

El arnés decide cuándo el conductor está atascado, nunca el conductor, .claude/skills/stuck-protocol/SKILL.md:

markdown
1---
2name: stuck-protocol
3description: Escalar al asesor experto fable cuando el progreso se estanca. Úsalo cuando el mismo error aparezca dos veces, cuando dos pasos consecutivos no cambien ningún archivo mientras persisten los errores, cuando una prueba falle después de dos intentos de corrección distintos, o cuando el usuario diga que el agente está dando vueltas.
4---
5
6# Protocolo de atasco (la inversión del asesor)
7
8Eres el conductor económico y eso es una característica: la ejecución es a granel, el consejo es en gramos. Pero los modelos pequeños son demasiado confiados, así que no puedes decidir que estás bien. Comprueba las señales deterministas en su lugar.
9
10Señales de atasco (cualquiera activa el protocolo):
11 1. La misma cadena de error en dos pasos consecutivos.
12 2. Dos pasos consecutivos con cero archivos cambiados mientras persisten los errores.
13 3. La misma prueba fallando después de dos intentos de corrección genuinamente diferentes.
14
15Procedimiento:
16 1. Cuenta las consultas de esta sesión. En 3, DETENTE: marca la tarea como BLOQUEADA con el error adjunto, resume para el humano, continúa. Nunca una cuarta consulta.
17 2. Construye el resumen, no va nada más:
18 OBJETIVO: una línea
19 INTENTO x2: los últimos dos intentos, 200 caracteres cada uno
20 ERROR: el error exacto, 300 caracteres
21 3. Genera fable-expert con el resumen. Devuelve orientación, no código.
22 4. Aplica la orientación en el siguiente paso, antes de cualquier cosa propia.
23 5. Añade una línea a progress.log: consulta #N, qué dijo, si funcionó.
24
25Reglas estrictas:
26 - Nunca le pidas al experto que haga el trabajo. Si la respuesta contiene una implementación completa, toma la idea y descarta el código.
27 - Nunca llenes el resumen con tu historial de razonamiento. El valor del experto es el contexto limpio; un resumen largo lo envenena.
28 - Si la orientación falla, eso cuenta como uno de tus dos intentos hacia la siguiente consulta. Tres consultas fallidas significan que la tarea está por encima del nivel de esta sesión, y decirlo es la salida correcta.

El asiento del experto, .claude/agents/fable-expert.md:

markdown
1---
2name: fable-expert
3description: Asesor de frontier para momentos de atasco. Recibe un resumen compacto de stuck-protocol, devuelve orientación en menos de 600 tokens, nunca hace el trabajo él mismo.
4model: claude-fable-5 # cambia a opus si las reglas de retención afectan
5effort: high
6tools: Read, Grep, Glob # puede leer, nunca puede editar
7---
8
9Eres el consultor experto, no el contratista. Un modelo más barato está conduciendo y ha chocado contra un muro. Tu valor es el juicio en gramos, y el contexto limpio: no sabes nada sobre cómo llegó el conductor hasta aquí, que es exactamente por qué tu lectura es más precisa.
10
11Recibes un resumen: OBJETIVO, los últimos dos INTENTOS, y el ERROR. Si el resumen nombra archivos específicos, puedes leerlos. No puedes editar nada.
12
13 1. Si al resumen le falta algo que necesitas, responde con UNA línea nombrando lo que falta. No adivines alrededor de un agujero.
14 2. Diagnostica antes de recetar: una o dos frases sobre lo que realmente está mal.
15 3. Luego responde en este formato y nada después:
16 ORIENTACIÓN:
17 1. (la corrección más probable: qué probar, y por qué debería funcionar)
18 2. (plan B si 1 falla)
19 3. (solo si hay un tercer camino genuinamente distinto)
20 CONFIANZA: alta | media | baja
21 4. Menos de 600 tokens. Sin bloques de código de más de 10 líneas. Da la idea, no la implementación. Si tu respuesta contiene una solución completa, has fallado en el rol.
22 5. Si la tarea en sí misma está mal concebida, dilo en el punto 1 y recomienda qué decirle al humano.
23
24Nota del operador: si tu organización no puede aceptar la retención de clase Mythos, cambia la línea del modelo a opus. El rol funciona igual; el resultado del asesor se demostró por primera vez con asesores de clase Opus.

Y el mismo carril en reversa para sesiones de Codex, ~/.codex/prompts/fable-advice.md:

bash
1claude --model claude-fable-5 -p "Eres un asesor experto.
2 Un modelo más barato está conduciendo y está atascado. RESUMEN: <objetivo, dos
3 intentos, error>. Responde ORIENTACIÓN: hasta 3 elementos numerados,
4 en menos de 600 tokens. No hagas el trabajo."

Los modelos pequeños son demasiado confiados, así que el arnés observa el comportamiento en lugar de preguntar.

El resumen se mantiene pequeño, porque el valor del experto es el contexto limpio y un resumen largo lo envenena.

Cada consulta consume unos pocos cientos de tokens de orientación. Por eso la economía se desploma: la ejecución de millones viaja en el nivel de $1, y el juicio llega por gramos a $50 por millón.

Cognition publicó el fallo primero. El techo lo pone el conductor, no el asesor, y el patrón solo dio frutos después de que su conductor mejorara una generación.

El problema abierto es que un conductor note que está atascado. Por eso las señales anteriores son conductuales, y por eso viven en el arnés.

COMPROBACIÓN 5: advisor_loop.py pasa sus aserciones: el conductor falla dos veces de la misma manera, se activa una consulta, la tarea se completa, las consultas se mantienen por debajo del límite.

CONSTRUCCIÓN 6: El Benchmark de Dos Carriles

Nada califica su propia tarea es una ley, y esta construcción la impone entre proveedores.

Los mismos pesos en un arnés foráneo caen con fuerza. Una medición de 2026 mostró un 20.2 por ciento nativo frente a un 7.7 por ciento de terceros.

Así que cada revisor se ejecuta en su propio hogar. Claude revisa en Claude Code. Sol revisa a través de la CLI de Codex.

El juez interno, .claude/agents/fresh-eyes-reviewer.md:

markdown
1---
2name: fresh-eyes-reviewer
3description: Revisor de código con contexto limpio. Invocar después de cualquier cambio realizado por un agente.
4 No comparte historial con el autor, lee el diff por sí mismo, no puede editar.
5model: haiku # cambiar a opus cuando el diff tenga carga crítica
6effort: medium
7tools: Read, Grep, Glob, Bash
8---
9
10No tienes memoria de cómo se escribió este cambio, y ese es el punto. No preguntes
11por el razonamiento del autor. No confíes en ningún resumen. Solo evidencia.
12
13 1. git diff HEAD~1 (o el rango indicado) y lee cada hunk.
14 2. Lee el contenido COMPLETO de cada archivo modificado, no solo los hunks. Los errores se esconden en
15 las líneas sin cambios alrededor de un cambio.
16 3. Ejecuta el conjunto de pruebas que se menciona en el README o CLAUDE.md.
17 4. Busca las tres fallas clásicas de los agentes:
18 pereza: implementaciones parciales, TODOs, manejado solo para un caso
19 autoevaluación: pruebas debilitadas, aserciones eliminadas, suites omitidas
20 desviación: cambios fuera del alcance de la tarea indicada
21 5. Veredicto, exactamente en este formato:
22 VEREDICTO: APROBADO o RECHAZADO
23 ERRORES: numerados, cada uno con archivo:línea y una razón de una oración
24 RIESGO: una oración sobre lo más riesgoso que toca este cambio
25
26Reglas estrictas: no puedes editar archivos, no puedes re-ejecutar la tarea del autor, y una
27lista de ERRORES vacía con VEREDICTO: RECHAZADO es inválida. Si las pruebas no se pueden ejecutar, eso es un
28RECHAZADO automático con la razón.

El juez entre proveedores, .claude/agents/sol-reviewer.md, es una tubería que ejecuta un comando y transmite el veredicto textualmente. Sol es el revisor; este archivo lo pone en su propio arnés:

markdown
1---
2name: sol-reviewer
3description: Revisor entre proveedores. Envía el último commit a GPT-5.6 Sol a través
4 de Codex CLI, en el arnés nativo de Sol, y transmite el veredicto sin cambios.
5model: haiku # solo tubería. Sol es el revisor.
6effort: low
7tools: Bash, Read
8---
9
10Eres la tubería, no el revisor. Los modelos de una misma familia comparten puntos ciegos; este
11carril existe porque Sol no comparte los de Claude.
12
13 1. Verifica la CLI: codex --version. Si falta, genera VEREDICTO: RECHAZADO con la razón
14 "codex CLI no instalado" más la ruta de instalación (o el plugin oficial:
15 /plugin marketplace add openai/codex-plugin-cc, /plugin install, /codex:review).
16 2. Ejecuta la revisión con alto esfuerzo, en el arnés propio de Sol:
17
18 codex --profile deep exec "Revisa el último commit (git show HEAD) como un
19 ingeniero senior hostil que nunca ha conocido al autor. Lee cada archivo modificado
20 EN SU TOTALIDAD, no solo los hunks. Busca: implementaciones parciales, pruebas
21 debilitadas o eliminadas, cambios fuera del alcance de la tarea. Termina exactamente con
22 'VEREDICTO: APROBADO' o 'VEREDICTO: RECHAZADO' seguido de hallazgos numerados, cada uno con
23 archivo:línea y una razón de una oración."
24
25 3. Guarda la salida completa en .review_sol_<hash_corto>.md.
26 4. Transmite hacia arriba: primero la línea de VEREDICTO, luego los hallazgos TEXTUALMENTE. No
27 resumas hallazgos, no añadas tranquilidad, no discutas con Sol.
28 Si el veredicto es RECHAZADO, el padre decide qué arreglar. Tú no decides nada.
29
30Reglas estrictas: nunca edites archivos, nunca re-ejecutes la tarea del autor, nunca sustituyas
31tu propia revisión. Si codex falla a mitad de ejecución, repórtalo como RECHAZADO con stderr adjunto
32en lugar de reintentar silenciosamente más de una vez.

Para CI, loop/two_lane.sh maneja todo el intercambio, máximo tres rondas:

bash
1claude -p "Implementa: $TASK. Ejecuta las pruebas. Haz commit cuando esté en verde."
2review=$(codex exec "Revisa HEAD ... VEREDICTO: APROBADO o RECHAZADO más hallazgos.")
3grep -q "VEREDICTO: APROBADO" <<< "$review" && exit 0
4claude -p "Un revisor de otra familia de modelos encontró estos problemas.
5 Arregla cada uno, vuelve a ejecutar las pruebas, haz commit: $review"

Dentro de Claude Code puedes omitir el script por completo.

OpenAI lanza un plugin oficial de Codex para Claude Code, activo desde marzo de 2026 y con aproximadamente veinte mil estrellas en GitHub en nueve semanas. Eso es el mercado diciendo que la revisión entre proveedores se volvió mainstream. Instálalo una vez:

text
1/plugin marketplace add openai/codex-plugin-cc
2/plugin install codex@openai-codex
3/codex:setup

Tres movimientos dentro de cualquier sesión de Claude:

  • /codex:review para una pasada estándar
  • modo adversarial, que ataca tus decisiones de diseño a propósito
  • traspaso en segundo plano a Codex

Usa el modo adversarial en cualquier cosa con carga crítica. Usa el traspaso cuando el trabajo sea pesado en terminal, donde Sol es más fuerte.

Un número creciente de desarrolladores ahora ejecuta GPT-5.6 Sol dentro de Claude Code, a través del proxy de BUILD 7, y lo prefieren a Codex para el trabajo diario.

Demuestra la tesis: alquila los pesos, posee el arnés.

La trampa es la ley del arnés nativo, ya que Sol en Claude Code se ejecuta fuera de su hogar. Confírmalo en tu propio conjunto de evaluación. Si tus evaluaciones dicen que el arnés extranjero gana, tus evaluaciones están por encima del benchmark.

Tres propiedades hacen que el revisor valga la pena:

  • Contexto limpio. Llega sin ningún historial del escritor.
  • Linaje diferente. No comparte los puntos ciegos del escritor.
  • Arnés nativo. Juzga con toda su fuerza.

Un veredicto suavizado es un verificador roto, por lo que la transmisión es textual. Un tercer RECHAZADO envía un humano en lugar de dar un cuarto intento.

CHECK 6: ejecuta two_lane.sh, o /codex:review en tu último commit. Un VEREDICTO aterriza en un archivo .review, y un RECHAZADO se redirige de vuelta al carril del escritor.

BUILD 7: Expansiones Opcionales (instalar cuando aparezca la condición)

Enjambre de exploradores. Instálalo cuando la investigación o la arqueología del código base consuma más de 30 minutos de tu día. Genera tres en paralelo en porciones separadas:

markdown
1---
2name: scout
3description: Lector paralelo económico para expansiones de investigación. Genera varios a la vez
4 para inspecciones del código base, auditorías de dependencias, arqueología de logs, investigación de documentación.
5 Solo lectura por doctrina; las lecturas se expanden, las escrituras permanecen en un solo hilo.
6model: haiku
7effort: low # guardia de herencia (BUILD 4): un enjambre que hereda
8 # el esfuerzo máximo vacía una ventana en un mensaje
9tools: Read, Grep, Glob, Bash
10---
11
12Eres uno de los muchos lectores que se ejecutan en paralelo. Inspecciona tu porción y
13reporta de manera pequeña y precisa. Solo tu mensaje final regresa al padre, así que
14mantenlo por debajo de 400 palabras y haz que cada palabra gane su lugar.
15
16 1. Reduce tu asignación a una porción tú mismo (un directorio, un subsistema,
17 una pregunta), y di a qué te redujiste.
18 2. Solo lecturas: Read, Grep, Glob y shell de solo lectura (ls, git log, git show, rg).
19 Nunca edites, instales ni elimines. Si la tarea necesita una escritura, repórtalo, no lo
20 hagas.
21 3. Primero amplitud, luego profundidad en los dos o tres puntos más calientes.
22
23Formato de reporte, nada más:
24 HALLAZGOS: hasta 10 viñetas, cada una un hecho con su evidencia (archivo:línea, hash de commit
25 o URL)
26 VACÍOS: lo que no pudiste determinar y por qué, para que el padre sepa qué sigue oscuro
27 PUNTO CALIENTE: el único archivo o función que más merece una mirada más profunda, una línea
28 sobre por qué
29
30No editorialices, no propongas implementaciones, no rellenes. Un explorador que
31devuelve 300 palabras útiles vence a uno que devuelve 3,000 mezcladas, porque
32todo lo que emites aterriza en la ventana de contexto del padre y el padre lo está pagando.

Las lecturas se expanden porque los lectores paralelos se multiplican. El límite de palabras existe porque cada reporte aterriza en una ventana de contexto que el padre paga.

Las escrituras nunca se expanden. Un estudio de presupuesto igualitario de 2026 encontró que los agentes individuales igualan a las configuraciones multi-agente en razonamiento cuando los tokens se mantienen constantes. Este carril es solo para lectura.

Quemador nocturno. Instálalo cuando TASKS.md tenga diez o más ítems pequeños verificables. La habilidad del quemador nocturno configura los archivos, confirma ambos límites, verifica que el comando de prueba se ejecute, luego lanza ralph.sh. Interfaz matutina: git log, progress.log, marcas de verificación.

División de plan. Instálalo cuando los tokens de planificación dominen la factura de una sesión. Una configuración en Claude Code ejecuta un modelo de clase Opus para el plan y Sonnet para la ejecución. Planifica en la frontera por gramo, ejecuta a granel.

Banco de tres. Instálalo cuando un cambio complicado merezca tres perspectivas. Dos roles leen y uno escribe, y el cuarto panel es una trampa. La tubería está debajo.

La tubería para flotas mixtas

Dos piezas de código abierto convierten una configuración de dos proveedores en una de cualquier proveedor. Instálalas solo cuando una condición requiera un tercer proveedor.

claude-model-switch (código abierto, Rust, se ejecuta en localhost:4000). Un proxy local entre Claude Code y cualquier endpoint compatible con Anthropic u OpenAI.

  • Reasigna los tres niveles internos de Claude Code (haiku, sonnet, opus) a los modelos que ofrezca tu proveedor
  • Cambia de proveedor sin reiniciar, mediante recarga de configuración
  • Se envía como un plugin de Claude Code con comandos de barra
bash
1claude-model-switch init # apunta Claude Code al proxy
2claude-model-switch add openrouter sk-or-xxx
3claude-model-switch add glm \
4 --haiku glm-4.5-air --sonnet glm-4.7 --opus glm-5
5claude-model-switch use glm # por sesión, nunca a mitad de tarea
6claude-model-switch orchestrate start --preset trio # planificador/codificador/revisor

El preset trio es el banco de BUILD 7 hecho físico: tres paneles de tmux, cada rol en un proveedor diferente, cada uno direccionable (orchestrate send coder "implementa el hito 1"), con reasignación de roles a mitad de sesión si un proveedor se degrada.

CLIProxyAPI (código abierto). El mismo truco, apuntando en la dirección opuesta.

Envuelve los inicios de sesión OAuth de ChatGPT Codex, Claude Code, Gemini y Grok como endpoints API compatibles con OpenAI, Claude y Gemini.

Traducción: los asientos de suscripción que ya pagas se convierten en objetivos de API enrutables para scripts como ralph.sh y two_lane.sh, sin claves API separadas. Las bifurcaciones de la comunidad lo extienden a Factory y Amp, y envoltorios como ccs añaden cambio entre múltiples cuentas.

La ley que gobierna a ambos, de los datos de BUILD 6: un modelo reasignado se ejecuta en un arnés extranjero.

Reasigna los carriles de lector y revisor libremente. Son baratos y verificables.

Mantén el carril que escribe código en un modelo nativo de su arnés, hasta que tu propio conjunto de evaluación demuestre lo contrario.

CHECK 7: cada expansión instalada tiene su condición de activación escrita junto a ella. Instalar cualquiera de esto de forma especulativa es cómo se inflan las pilas.

BUILD 8: La Fábrica (la finalización se convierte en un hecho de base de datos)

Todo lo anterior demuestra el trabajo en el momento. La puerta, el veredicto y el conjunto de evaluación se activan durante la ejecución.

Una vez que más de un agente toca un proyecto en más de una sesión, necesitas una prueba que sobreviva a la ejecución: quién trabajó qué, en qué orden, y si el último ciclo de revisión fue aprobado.

Avid - inline image

El patrón proviene de la demo pi-factory (github.com/xpriment626/pi-factory). La idea principal es una oración

Un hilo es una traza. Una fila es evidencia. La puerta lee filas.

progress.log es un diario. La pizarra es un libro de contabilidad. SQLite es el libro de contabilidad porque se puede consultar después de que todos dejen de hablar.

Crea factory/factory_gate.py. Contiene cuatro tablas (tickets, briefs, evidence, verdicts), un comando de registro que cada agente llama mientras trabaja, y la puerta de finalización. Las condiciones de fallo de la puerta se asignan al trabajo mismo:

python
1checks = [
2 (tickets == 0, "No se registraron tickets."),
3 (done != tickets, "No todos los tickets están hechos."),
4 (first_brief is None, "No se registró ningún brief de arquitectura."),
5 (first_brief > first_code, "La evidencia de implementación es anterior al brief."),
6 (code_ev == 0, "No se registró evidencia de código del implementador."),
7 (build_ok == 0, "No se registró evidencia de comando de compilación exitoso."),
8 (test_ok == 0, "No se registró evidencia de comando de prueba exitoso."),
9 (latest("architect") != "green", "El último veredicto del arquitecto no es verde."),
10 (latest("reviewer") != "green", "El último veredicto del revisor no es verde."),
11]

Esa lista codifica toda la doctrina.

  • El orden se aplica. Un brief que es posterior a la primera evidencia de código es una violación, lo que convierte planificar-antes-de-construir en un hecho verificable en lugar de un hábito.
  • Ambos asientos de jueces deben estar en verde en el mismo ciclo más reciente. Una aprobación desactualizada no puede cubrir un diff más nuevo.
  • La finalización sin filas de prueba exitosas es imposible, sin importar lo seguro que suene el transcripto.

Crea factory/factory.sh, que conecta los asientos que ya construiste en el orden de ejecución y registra filas entre cada paso:

bash
1G ticket "tablero kanban" "las columnas se renderizan, el arrastre persiste" # filas del planificador
2G brief "$BRIEF" # ANTES de cualquier código
3../loop/ralph.sh && G evidence code pass "bucle completado" # BUILD 3 funciona
4npm test && G evidence test pass "npm test en verde"
5G verdict 1 architect green "el diseño coincide con el brief" # Asiento de Claude
6G verdict 1 reviewer green "pruebas pasan, alcance limpio" # Asiento de Sol, vía codex
7python3 factory_gate.py gate factory.db # las filas deciden

No se contrata nada nuevo.

Fable corta tickets y escribe el brief, solo lectura. El bucle de BUILD 3 implementa. Claude y Sol devuelven cada uno un veredicto desde su propio arnés. El ciclo se repite hasta tres veces hasta que ambos se pongan verdes.

La fábrica es el organigrama para empleados que ya tienes.

Una ejecución real, no una maqueta. La segunda llamada a la puerta es todo el argumento para esta construcción:

text
1$ factory_gate.py record demo.db ticket "tablero-kanban" "columnas se renderizan, arrastre persiste"
2
3$ factory_gate.py gate demo.db
4PUERTA: RECHAZADA
5 - No todos los tickets están hechos.
6 - No se registró ningún brief de arquitectura.
7 - No se registró evidencia de código del implementador.
8 - No se registró evidencia de comando de compilación exitoso.
9 - No se registró evidencia de comando de prueba exitoso.
10 - No se registró ningún ciclo de revisión.
11 exit: 1
12
13... los agentes trabajan. cada paso escribe una fila ...
14
15$ factory_gate.py record demo.db brief "Stack: node+sqlite. CRUD de /tasks."
16$ factory_gate.py record demo.db evidence code pass "src/board.js escrito"
17$ factory_gate.py record demo.db evidence build pass "npm run build exit 0"
18$ factory_gate.py record demo.db done "tablero-kanban"
19$ factory_gate.py record demo.db verdict 1 architect green "diseño coincide con brief"
20$ factory_gate.py record demo.db verdict 1 reviewer green "alcance limpio"
21
22$ factory_gate.py gate demo.db
23PUERTA: RECHAZADA
24 - No se registró evidencia de comando de prueba exitoso.
25 exit: 1
26
27$ factory_gate.py record demo.db evidence test pass "npm test 33/33"
28
29$ factory_gate.py gate demo.db
30PUERTA: COMPLETA (1/1 tickets, ciclo 1 verde x2)
31 exit: 0

Ambos revisores dijeron verde. El arquitecto confirmó que el diseño coincidía con el brief. El revisor confirmó que el alcance estaba limpio.

Y la puerta aún rechazó, con una línea: no se registró evidencia de comando de prueba exitoso. Nadie había ejecutado las pruebas.

Un veredicto es una opinión. Dos opiniones todavía no son un hecho. Una fila de evidencia de prueba exitosa después, la misma puerta devuelve COMPLETA y sale 0.

Los modelos argumentan convincentemente por su trabajo, y un transcripto captura el argumento en lugar de la verdad. Las filas no se pueden discutir.

Cuando la puerta rechaza, nombra el artefacto exacto que falta. Eso convierte "la ejecución falló" en "produce una fila de prueba exitosa." Una tarea, no un misterio.

Condición de instalación: más de una sesión de escritor por día, ciclos de revisión que abarcan días, o la necesidad de probar después del hecho lo que sucedió. Para un repositorio en solitario con un bucle nocturno, BUILD 3 es suficiente y esto es inflación.

CHECK 8: reproduce la captura de pantalla. Registra todo excepto una fila de prueba, y la puerta debe rechazar con exactamente una razón. Añade la fila y devuelve COMPLETA. Una puerta que pasa sin ella es un lector de transcriptos.

BUILD 9: El Enjambre (Fable planifica, la flota ejecuta, Fable puntúa)

Un conductor con un asesor cubre una tarea. Un objetivo que se divide en cuatro piezas independientes quiere cuatro trabajadores.

Pero una flota solo mantiene su dirección si un modelo planifica cada objetivo y puntúa cada resultado. Esa es toda la razón por la que existe esta construcción, y la razón por la que los enjambres suelen fallar sin ella.

El Rung 3 se hace literal. Fable escribe los objetivos, la flota los ejecuta, Fable puntúa cada resultado contra su propia verificación, y el siguiente ciclo replanifica solo los fallos.

Su aborto es el límite de ciclos. Cuando el límite se dispara con fallos pendientes, eso es un problema de especificación que va a un humano, no una razón para ejecutar un cuarto ciclo.

Crea swarm/swarm.sh. Tres configuraciones llevan la doctrina:

bash
1FLEET=4 # las escrituras nunca chocan: un árbol de trabajo cada uno
2WORKER_MODEL=claude-sonnet-5 # o haiku / luna / kimi para ejecución pura
3WORKER_EFFORT=low # NUNCA heredar el esfuerzo del conductor
4CONDUCTOR=claude-fable-5 # o opus-4-8 si las reglas de retención muerden

Esas tres líneas son explícitas porque el valor predeterminado no lo es.

Una flota que hereda toma el modelo del conductor y el esfuerzo del conductor. Un Fable-alto que genera cuatro Fable-altos para hacer trabajo mecánico es la forma más cara posible de hacer la cosa más barata posible.

Establécelos. Nunca los dejes por defecto.

La expansión entre arneses es legal, y no es la excepción a la primera ley de ROUTING.md que parece.

  • Un conductor Fable que lanza codex exec ejecuta Sol dentro de Codex, de forma nativa. Eso es la ley obedecida, no doblada.
  • Lo que rompe la ley es un subagente del lado de Claude que lleva una cadena de modelo GPT, o viceversa.

El arnés viaja con el trabajador, no con el conductor.

El conductor escribe objetivos, nunca código, y cada objetivo lleva su propio comando de verificación, por lo que "hecho" sigue siendo un hecho:

json
1{"id":"eliminar-auth-legado","spec":"eliminar la ruta de autenticación v1 de routes/","check":"npm test -- tests/auth"}
2{"id":"migrar-sesiones","spec":"mover el almacén de sesiones al nuevo adaptador","check":"npm test -- tests/session"}

Luego despacha, puntúa y replanifica:

bash
1# despacho: un árbol de trabajo de git por objetivo, limitado a FLEET en paralelo
2claude --model "$WORKER_MODEL" --effort "$WORKER_EFFORT" -p "Ejecuta esta especificación
3 exactamente. No expandas el alcance. Ejecuta las pruebas. Haz commit solo cuando esté en verde."
4
5# puntuación: el conductor califica cada objetivo contra su PROPIO comando de verificación.
6# la confianza del trabajador no es evidencia. el código de salida lo es.
7bash -c "$chk" && echo "$id" >> passed.txt || misses=$((misses+1))
8
9# replanificación: el siguiente ciclo ve passed.txt y replanifica solo lo que falló

Asiento por asiento:

  • Sonnet 5 para ejecución de codificación
  • Haiku o Luna para trabajo mecánico puro
  • Un trabajador de pesos abiertos como Kimi cuando el trabajo es repetitivo y los pesos son gratuitos
  • Sol cuando el trabajo es pesado en terminal
  • Opus 4.8 en el asiento de trabajador, solo cuando un subagente necesita razonar

Reserva Fable para los dos trabajos que ningún modelo barato puede hacer: escribir los objetivos y calificarlos.

Una flota es una estrategia de costos, nunca una estrategia de inteligencia.

Las ejecuciones multi-agente queman de 3 a 10 veces los tokens para un trabajo equivalente, y un estudio de presupuesto igualitario de 2026 encontró que los agentes individuales los igualan en razonamiento cuando los tokens se mantienen constantes.

Un enjambre se justifica solo cuando los objetivos son independientes y en su mayoría mecánicos. Las escrituras permanecen en un solo hilo por árbol de trabajo, las fusiones ocurren en serie, y un humano toma el último commit.

CHECK 9: ejecuta el enjambre en un objetivo que se divide en tres direcciones. Un objetivo roto debe volver como RECHAZADO en results.tsv y ser replanificado en el ciclo 2, nunca declarado como hecho.

BUILD 10: Rung 4 (nada que haya pasado una vez queda sin vigilancia)

Todo lo anterior verifica el trabajo mientras se está haciendo. Nada de lo anterior nota cuando el trabajo terminado deja de ser cierto seis semanas después. Un objetivo que verificas una vez es una suposición con una marca de tiempo.

Rung 4 tiene dos mitades, y su aborto importa tanto como su salida: si ninguna propuesta supera la puerta esta semana, el sistema no cambia, y eso es un éxito.

Mitad uno, objetivos permanentes. Cada cosa terminada se gradúa en un invariante con un predicado, re-verificado diariamente, para siempre. Crea un archivo por cada cosa terminada en goals/:

text
1predicate: npm test -- tests/auth 2>&1 | tail -1 | grep -q passing
2born: 2026-07-13
3status: satisfied
4last-pass: 2026-07-13
5on-violation: despiértame. no arregles automáticamente.

Luego system/verify_goals.py ejecuta todo y sale 1 si algún invariante se rompió, nombrando el objetivo, la fecha en que se mantuvo por última vez y la política que estableciste:

python
1held = subprocess.run(["bash","-c",predicate], timeout=60).returncode == 0
2g["status"] = "satisfied" if held else "VIOLATED"
3# un timeout es una violación, no un pase: un predicado caro es uno roto

Las reglas de predicado son estrictas a propósito: un comando de shell, salida 0 significa que el invariante se mantiene, barato y de solo lectura.

Los adjetivos están prohibidos. Si un shell no puede verificarlo, un modelo tampoco.

Los objetivos que no son de código funcionan de la misma manera. test -s reports/$(date +%Y-%m)-review.md es un buen objetivo permanente para un informe mensual.

Mitad dos, compostaje. Una vez a la semana, lee el desecho que el sistema ya produjo: tareas BLOQUEADAS, ejecuciones de puerta fallidas, puertas de fábrica rechazadas, PRs revertidos, objetivos violados.

Luego propone como máximo tres cambios. Una nueva ley para la constitución. Una corrección a una habilidad que sigue fallando de la misma manera. O un objetivo permanente que te faltaba.

Solo propón. Tú firmas.

bash
1claude --model claude-fable-5 --effort high --allowedTools "Read,Grep,Glob" \
2 -p "Lee el desecho de esta semana: líneas BLOQUEADAS en progress.log, entradas de PUERTA RECHAZADA,
3 objetivos VIOLADOS, PRs cerrados sin fusionar. Extrae COMO MÁXIMO 3 propuestas:
4 una nueva ley (cita los incidentes), una corrección de habilidad (misma falla que se repite), o un
5 objetivo permanente que nos faltaba. Solo propón, no edites nada. Una semana limpia es una
6 respuesta válida, dilo y detente."

Este rung se cierra solo cuando las evaluaciones y los jueces dicen que el sistema mejoró. Lo que significa que el sistema necesita una memoria de sus propios fallos para mejorar.

La ejecución de compostaje es lo que convierte un script en una institución.

Los objetivos permanentes son lo que hace seguro terminar. El centinela detecta, el pipeline normal arregla, y nada se pudre en silencio.

CHECK 10: verify_goals.py demo nombra el invariante roto con su fecha de último pase y deja intacto el sano. Luego escribe un objetivo permanente real para lo último que terminaste.

BUILD 11: Rung 5 (tu asiento, y por qué nunca se vacía)

Rung 5 lleva tu nombre por una razón mecánica, no sentimental.

Un bucle puede alcanzar su condición de parada y aún así estar equivocado. Las pruebas pasan, la puerta se pone verde, ambos revisores firman, y el último commit sigue siendo un error.

Cada construcción debajo de esta existe para reducir ese riesgo. Ninguna de ellas lo elimina.

Tus deberes permanentes, todos baratos:

  • Lee la cola con café: tareas BLOQUEADAS, líneas de PUERTA RECHAZADA, objetivos VIOLADOS, la parte de bajo costo. Diez minutos.
  • Revisa el último commit antes de que se fusione. No cada diff, el último, aquel del que el sistema estaba más seguro.
  • Firma o rechaza las tres propuestas de compostaje. Esa es la única forma en que las leyes entran en la constitución.

Tres jugadas se ejecutan en una cadencia en lugar de bajo demanda, porque cuestan dinero real y pagan en dirección en lugar de diffs:

Jugada uno, el bucle de retroalimentación del proyecto, mensual.

Apunta Fable a lo que ya enviaste, solo lectura, y haz que escriba un plan de mejora detallado. Luego entrega la ejecución de ese plan a Opus 4.8 o Sol.

El modelo caro hace la parte que se compone, el juicio sobre qué cambiar, y nunca la parte que no, escribir.

bash
1claude --model claude-fable-5 --effort high --allowedTools "Read,Grep,Glob" \
2 -p "Revisa este proyecto de principio a fin. Escribe un plan de mejora clasificado por
3 apalancamiento: qué es frágil, qué está sobreconstruido, qué falta, qué debería
4 eliminarse. No escribas código. Genera tareas con criterios de aceptación." \
5 > plans/$(date +%F)-improvement.md

Juego dos, el análisis de comportamiento, mensual.

Aliméntalo con tu propio historial de sesiones y proyectos en ambos arneses, y pídele que trace un mapa de cómo construyes y dónde te estancas.

Este es el único informe del sistema cuyo sujeto eres tú. Suele ser el que más cambia.

Juego tres, la auditoría del segundo cerebro, trimestral. Apúntalo a tus notas, documentos y backlog, y pregúntale qué dice tu propio pensamiento que vale la pena construir a continuación y qué vale la pena eliminar. Trata el resultado como una propuesta, exactamente como el compost.

Los peldaños inferiores optimizan la ejecución, y la ejecución es la parte barata ahora. La dirección es el insumo escaso, y la dirección es por lo que vale la pena pagar por un modelo de frontera. Compra criterio por gramos, ejecución por toneladas, y guarda la última firma.

CHECK 11: ejecuta el juego uno en tu propio repositorio. Si el plan no nombra nada que ya supieras que era frágil, tus archivos de contexto son demasiado escasos, lo cual es un problema de BUILD 1.

BUILD 12: Operaciones

Los agentes consumen de 10 a 100 veces los tokens de una llamada de chat, y la entrada domina aproximadamente 100 a 1.

Apila las cuatro palancas de BUILD 0 (dividir, cachear, lotificar, compactar) y los equipos reportan aterrizar entre un 70 y un 90 por ciento por debajo de su línea base no optimizada.

Para que te hagas una idea: $13 por desarrollador por día activo es el promedio empresarial de Claude Code, y el 90 por ciento de los usuarios se mantiene por debajo de los $30.

Una línea de disciplina en lugar de un nuevo subsistema: una clase de tarea puede auto-fusionarse solo después de 20 ejecuciones registradas con una tasa de aprobación del 95 por ciento, y una sola caída por debajo del 90 por ciento la revoca de forma audible.

bash
1awk -F'\t' '$2=="fix-lint"{r++; if($3=="pass")p++}
2 END{printf "%d runs, %.0f%%\n", r, (r?p/r*100:0)}' progress.log

Gasto semanal, a partir de los costos por tick que ralph.sh ya registra:

bash
1grep '^cost' progress.log | awk -F'\t' \
2 -v d="$(date -d '7 days ago' +%F)" \
3 '$2>=d{s+=$3} END{printf "week: $%.2f\n", s}'

Calcula el metabolismo antes de programar el cron. El costo diario es los ticks multiplicados por el costo promedio del tick.

El asiento que maneja el tick silencioso de "no hay trabajo" decide la factura. Centavos en el nivel barato, dólares en un modelo de frontera con alto esfuerzo, para la idéntica respuesta de "nada que hacer".

Operando dentro de tus límites

Estos modelos queman tokens rápidamente, y la forma en que los ejecutes decide cuánto trabajo de un día logras antes de toparte con un muro.

Primero, conoce cuál muro.

  • Con una clave de API, el muro es la factura. progress.log ya la vigila.
  • Con un asiento de suscripción, el muro es una ventana de cinco horas y una ventana semanal juzgadas juntas. Ninguna de las dos aparece en ningún lugar del registro anterior.

Vigila el medidor en el que realmente estás: el panel de uso en la configuración de Codex, /usage en el lado de Claude, o un monitor como ccusage o codexbar aparcado en la esquina de la pantalla.

Un límite que nunca lees es un límite que descubres al chocar contra él, con cuatro horas restantes en el reloj y nada que ejecutar.

Seis palancas, de la más barata a la más cara. La mayoría actúan en los peldaños 0 a 2, donde los tokens se queman:

  1. Reduce CLAUDE.md y AGENTS.md a lo esencial. Cada mensaje los lee, además de cada habilidad y herramienta que tengas activadas. Apaga lo que no estés usando; un servidor MCP no utilizado es un impuesto en cada mensaje.
  2. Baja el esfuerzo cuando no necesites lo más alto de la escalera. Por defecto, medio o alto. Reserva "máximo" para problemas que lo necesiten. Y confirma que el modo rápido está desactivado mientras estés ahí, porque multiplica lo que sea que tengas configurado.
  3. Dale al modelo puntos de parada claros. Estos modelos funcionan durante mucho tiempo por diseño. Haz que terminen el plan y consulten antes de ejecutar, que es el trabajo real del modo plan.
  4. Mantén a los subagentes con un esfuerzo más bajo. Heredan el modelo del padre y también su dial, y un enjambre al máximo vacía una ventana en un solo mensaje. La solución barata es una ley en ambas constituciones: no generar a menos que se solicite.
  5. Mantén el modelo caro fuera del trabajo masivo. Ya sea que Fable se siente encima como un conductor de bajo consumo de tokens o como asesor a demanda, gana su precio en los puntos de decisión, nunca mientras escribe la milésima línea.
  6. Lee lo que cuesta un mensaje, luego ajusta las cinco anteriores en función de ese número. Esta es la única palanca que te dice cuál de las otras cinco es tu problema.

Juntas, estas palancas establecen cuánto tiempo puedes ejecutar los mejores modelos antes de que el límite te detenga.

Cron, cuando comience la Semana 2:

bash
1# task loop: the daily tick, both caps set
20 7 * * 1-5 cd /path/to/repo/loop && BUDGET_USD=5 ./ralph.sh >> ../progress.log 2>&1
3
4# system loop: nothing that passed once goes unwatched
530 7 * * * cd /path/to/repo && python3 system/verify_goals.py goals/ >> progress.log 2>&1
6
7# system loop: failures become laws, once a week, proposals only
80 9 * * 1 cd /path/to/repo && codex --profile deep exec \
9 "$(cat ~/.codex/prompts/compost.md)" >> proposals/$(date +\%F).md 2>&1

El manual de operaciones. Cada alarma, y qué hacer al respecto:

Avid - inline image

El cronograma de 30 días. No te saltes las graduaciones; cada una desbloquea la siguiente.

Avid - inline image

La Consola de Mando

Cada bucle aquí es accesible desde una pulsación de tecla. Los comandos de barra inclinada viven en ~/.codex/prompts/ en el lado de Codex, donde el nombre del archivo se convierte en el comando, y en .claude/skills/ en el lado de Claude. Los fragmentos de CLI son las versiones sin cabeza que ejecutan cron y CI.

Comandos de barra inclinada de Codex

Avid - inline image

/plan-stop y /effort se pagan solos más rápido. Ambos gastan unos pocos cientos de tokens para evitar que gastes unos pocos cientos de miles.

Estos modelos funcionan durante mucho tiempo, por lo que el punto de control que necesitas llega antes del gasto. /plan-stop devuelve el plan, los comandos de "listo-cuando", el radio de explosión, el costo y la única pregunta que le haría a un humano. Luego se detiene.

Coloca ambos archivos en ~/.codex/prompts/, donde el nombre del archivo se convierte en el comando.

effort.md se convierte en /effort, el dial de enrutamiento hecho explícito:

markdown
1# /effort - pick the effort level before you spend it
2
3Do not answer the task yet. Route it first.
4
5Score it. One point each:
6 - contains a why, a debug, a race, a deadlock, a refactor, a security concern,
7 or an optimize
8 - touches more than one subsystem
9 - a previous attempt already failed
10 - the change is irreversible or lands in front of users
11
12Then map:
13
14| Score | Effort | Seat |
15|---|---|---|
16| 0-1 | low | codex -e low, or profile fast (Luna). Never put a frontier seat on it. |
17| 2 | medium | Terra at medium is the seat. |
18| 3+ | high | the default for real work, and where the sweet spot sits. |
19
20Only if high has ALREADY been tried and failed: recommend max, and say plainly
21what the extra thinking is expected to buy. The base rate you are arguing
22against is roughly double the cost for a gain that usually does not repay.
23
24Two reminders before recommending an upgrade:
25 1. A better model at lower effort usually beats a weaker model at max. Change
26 the seat before the dial.
27 2. If this task spawns subagents, state their effort explicitly (low unless
28 proven otherwise). Subagents inherit the parent, and a fleet at max empties a
29 context window in one message.
30
31Output exactly:
32 EFFORT: low | medium | high | max
33 SEAT: <model>
34 WHY: <one line, naming the points that scored>
35 SUBAGENTS: <effort to pin, or none>
36Then stop. The human runs the task at the level you named.

Una respuesta en vivo se ve así, y cuesta unos pocos cientos de tokens evitar unos pocos cientos de miles:

text
1EFFORT: high
2SEAT: gpt-5.6-sol
3WHY: contains "why", touches auth and sessions, prior attempt failed
4SUBAGENTS: low

plan-stop.md se convierte en /plan-stop, el punto de control antes del gasto:

markdown
1# /plan-stop - plan the work, then stop
2
3These models run long. That is a feature when the plan is right and an expensive
4way to be wrong when it is not. This command buys the checkpoint before the spend.
5
6Plan the task. Do not edit a single file. Do not run a build. Do not start.
7
8Produce:
9 GOAL: <one line>
10 ASSUMPTIONS: <what you take for granted; if these are wrong, so is the plan>
11 STEPS: <numbered, each one commit's worth of work>
12 DONE_WHEN: <the exact shell command that proves each step landed>
13 BLAST RADIUS: <files and systems touched; name auth, payments, migrations, prod
14 config explicitly>
15 COST: <rough tokens or dollars, and which seat runs each step>
16 UNKNOWNS: <what you would ask a human if you could ask exactly one question>
17
18Then stop and wait.
19
20Rules while planning:
21 - Ambiguity goes in UNKNOWNS. Do not resolve it by guessing and proceeding. A
22 guess that survives into execution costs a hundred times more than a question.
23 - If the plan needs a credential, endpoint, or convention that is not written
24 down in this repo, stop and say so. Never invent one.
25 - If any DONE_WHEN is not a shell command, rewrite that step until it is. If a
26 shell cannot check it, neither can a reviewer.
27 - If the blast radius touches the never-list in AGENTS.md, say so at the top and
28 recommend queueing for a human.
29
30You are paid for the plan here, not the diff. A short honest plan with real
31unknowns beats a confident plan that quietly assumed the wrong thing.

fable-advice.md y review-hostile.md se convierten en /fable-advice y /review-hostile. Ambos son los espejos del lado de Codex de los archivos que ya escribiste: el resumen del asesor de BUILD 5, y el contrato del revisor hostil de BUILD 6. Mismas reglas, mismos límites, apuntando en la dirección opuesta a través de la línea del proveedor.

compost.md se convierte en /compost, el constructor de instituciones semanal del peldaño 4:

markdown
1# /compost - turn this week's failures into next week's laws
2
3Read this week's exhaust, all of it, and nothing else:
4 - BLOCKED lines in progress.log (tasks that beat three advisor consults)
5 - GATE: REFUSED entries (a run that could not prove it was done)
6 - VIOLATED standing goals (something finished stopped being true)
7 - circuit-breaker and budget exits (codes 2 and 3)
8 - PRs opened by the loop and closed unmerged (the human silently disagreed)
9 - any task class whose pass rate dropped below 90 percent
10
11Extract AT MOST three proposals. Three is a hard cap, not a target. A clean week is
12a valid finding, and saying so is more useful than manufacturing work.
13
14Each proposal is exactly one of:
15 1. A NEW LAW for CLAUDE.md or AGENTS.md. Quote the incidents it would have
16 prevented. A law with one incident behind it is a coincidence; wait for the
17 second.
18 2. A SKILL FIX, when the same failure repeats in the same place. Name the skill,
19 the pattern, and the smallest edit that breaks it.
20 3. A STANDING GOAL you were missing, when something rotted silently. Write the
21 predicate as a shell command, or do not propose it.
22
23Output:
24 WEEK: <dates>
25 EXHAUST: <counts: blocked, refused, violated, reverted>
26 PROPOSAL n: <law | skill fix | standing goal>
27 EVIDENCE: <the incidents, quoted>
28 CHANGE: <the exact text or predicate to add>
29 COST OF NOT DOING IT: <one line>
30 VERDICT: <what you would do first if you could only do one>
31
32Hard rules:
33 - Propose ONLY. Do not edit CLAUDE.md, AGENTS.md, any skill, or any goal file.
34 The human signs, or it does not happen.
35 - Do not propose a law that softens a gate, raises a budget, or relaxes a never.
36 Those are the system asking to be allowed to fail more comfortably.
37 - Empty exhaust: say "clean week" and stop. Do not go looking for work to justify
38 the run.

Fragmentos de CLI

Mantenlos en un archivo temporal. Son todo el sistema accesible desde una terminal:

bash
1# the daily tick, capped in both dimensions
2BUDGET_USD=5 MAX_ITERS=20 ./loop/ralph.sh
3
4# plan first, spend later (the single highest-leverage habit here)
5codex -e high exec "$(cat ~/.codex/prompts/plan-stop.md)
6
7TASK: migrate the session store off the legacy adapter"
8
9# cross-vendor review of the last commit, in Sol's native harness
10codex --profile deep exec "$(cat ~/.codex/prompts/review-hostile.md)"
11
12# the mirrored lane: Codex stuck, Claude advises
13claude --model claude-fable-5 --effort high -p "$(cat ~/.codex/prompts/fable-advice.md)"
14
15# the goal loop: Fable plans, the fleet runs, Fable scores
16CYCLES=3 FLEET=4 WORKER_EFFORT=low ./swarm/swarm.sh "split the auth migration"
17
18# the system loop: nothing that passed once goes unwatched
19python3 system/verify_goals.py goals/ # exit 1 names what rotted
20python3 gate/eval_gate.py eval/cases.jsonl # exit 1 blocks the routing change
21
22# rung 3, the factory: rows decide, not transcripts
23./factory/factory.sh "build the kanban and notes app per PRD.md"
24python3 factory/factory_gate.py gate factory.db
25
26# the weekly institution-building run
27codex --profile deep exec "$(cat ~/.codex/prompts/compost.md)"
28
29# the one number that says whether any of this worked
30grep '^route' progress.log | awk -F'\t' \
31 '{n++; if($3!="frontier") c++} END{printf "cheap share: %.0f%%\n", c/n*100}'

La política completa vive en ROUTING.md de BUILD 4, que ambos arneses leen.

Las Reglas (imprime esto)

  1. Leyes, no consejos: un número, un "nunca", o un comando que lo verifique.
  2. El modelo se alquila. El bucle es tuyo. Vives en el peldaño 5.
  3. Un bucle sin aborto es una factura. Dos límites en cada uno: iteraciones y dólares.
  4. La evidencia fluye hacia arriba, el control fluye hacia abajo. Ningún peldaño se cierra con un informe de un nivel inferior.
  5. Un bucle puede detenerse y seguir estando equivocado. Verifica el último commit antes de que se fusione.
  6. Enruta en los límites. Esfuerzo antes que modelo. El caché vota en contra de cambiar.
  7. Por defecto, alto. Máximo es profundidad, ultra es anchura, el modo rápido es un impuesto de 2.5x, y los subagentes heredan tanto el asiento como el dial del padre.
  8. El enrutador es culpable hasta que supere al mejor modelo único en tus evaluaciones.
  9. Los ahorros son la división del tráfico. Vigila la participación barata, no la tarifa.
  10. La ejecución es a granel, el consejo es en gramos. Limita las consultas a tres.
  11. Nadie califica su propia tarea. Contexto nuevo, otro linaje, arnés nativo.
  12. Un hilo es un rastro. Una fila es evidencia. La puerta lee filas.
  13. Nunca edites una prueba para que pase. Nunca fusiones más allá de una puerta BLOQUEADA.
  14. Un objetivo que verificas una vez es una suposición con una marca de tiempo.
  15. Una graduación a la vez. Cada mes, elimina algo.

Cierre

Treinta días a partir de ahora, si hiciste las comprobaciones:

  • Un bucle envía trabajo aburrido sin supervisión, detrás de una puerta determinista
  • Un controlador barato llama a un experto de frontera solo cuando se estanca
  • Cada diferencia significativa es juzgada por un modelo que no la escribió
  • Un número en progress.log te dice si la economía se está acumulando

Los modelos nunca fueron la parte difícil. Un sistema que se mantiene honesto cuando dejas de mirar es la parte difícil, y es por eso que el peldaño 5 todavía tiene tu nombre.

Empieza esta noche con los veinte minutos que lo demuestran. verify.sh de BUILD 2. Un tick ejecutado a mano de BUILD 3. Una revisión del otro linaje en tu último commit.

La primera vez que un revisor que no comparte ningún contexto con el escritor encuentre un error real en un trabajo que estabas seguro de que estaba terminado, no necesitarás que te convenzan sobre el resto.

Construye la puerta esta noche. Responde con lo que atrapó en la primera ejecución.

Aviso Legal

Escrito a partir de las notas de investigación del autor y fuentes verificadas, con asistencia de redacción y verificación de datos de Claude. Todos los precios y comportamientos de los modelos se verificaron contra las páginas oficiales de precios y documentación en la semana de publicación; cambian, así que verifica antes de presupuestar.

Este artículo fue escrito a partir de las notas del autor como se menciona en el párrafo anterior y editado con Claude Opus 4.7.

Si deseas agregar alguna otra corrección, por favor, añádela en los comentarios.

Recrear en YouMind

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales