Fleet Ladder
Effort: light — un solo sondeo vivo, cacheado, del peldaño antes de cualquier despacho. Elimina: despachos a proveedores muertos, y nombres de modelo clavados en los puntos de llamada que se rompen el día que el modelo se retira.
Nunca armes a mano una llamada a un proveedor, y nunca claves un nombre de modelo
en un punto de llamada. Un solo resolutor es dueño de la pregunta "¿qué modelo
hace este trabajo ahora mismo?" — y responde desde la verdad viva, no desde la
opinión de un archivo de config.
Cuándo ejecutarla
- Antes de CUALQUIER despacho a un modelo: construir, calificar, revisar o un trabajo acotado de worker.
- Cuando un proveedor está caído y necesitas saber qué cae hacia qué.
- En el momento en que te sorprendas tecleando un nombre de modelo en código o en una plantilla de prompt.
Los pasos
- Declara el rol, no el modelo. Cada trabajo pide un rol —
builder,
grader o worker. La escalera mapea roles a candidatos ordenados.
builder: implementa y repara.
grader: revisión independiente — estructuralmente nunca el mismo modelo que construyó.
worker: trabajos acotados y bien especificados. Aquí los peldaños baratos están bien.
- Lee la escalera desde la config. Un archivo lista, por rol, los candidatos
en orden de fallback explícito: el más fuerte primero, bajando hasta tu cola
local de supervivencia (lo que puedas correr en tu propio hardware cuando todos
los proveedores de nube están a oscuras). Para cambiar o agregar un modelo,
edita ese archivo — nunca el código. Forma inicial:
ladder.example.yaml — cópialo y cambia los marcadores.
- Sondea en vivo antes de confiar. Un listado en la config es una afirmación,
no la verdad. Una entrada vieja lista modelos que están muertos; también omite
modelos que están vivos. Sondea al proveedor antes de despachar a un peldaño —
una llamada al endpoint de modelos o una petición de un token, p. ej.:
curl -s "$PROVIDER_BASE_URL/v1/models" -H "Authorization: Bearer $API_KEY"
(o la misma forma contra el endpoint de chat con "max_tokens": 1).
Cachea el resultado del sondeo por una ventana sensata — no martilles a los
proveedores re-sondeando en cada llamada. Refresca la caché solo cuando de
verdad necesites verdad fresca.
- Baja la escalera, con ruido. Despacha al mejor peldaño DISPONIBLE. Ante una
falla de transporte, reporta la falla con ruido, y luego prueba el siguiente
peldaño. Nunca saltes en silencio — el registro debe mostrar qué peldaños
fallaron y por qué.
- El agotamiento falla con ruido. Si todos los peldaños están caídos, levanta
un error claro nombrando lo que se intentó. Un trabajo que no puede despacharse
nunca triunfa en silencio, ni espera para siempre, ni degrada a una respuesta
inventada.
- Registra la procedencia. Añade cada despacho a un log: rol, modelo elegido,
peldaños saltados y por qué. Después tienes que poder responder "¿quién hizo
este trabajo en realidad?"
Reglas duras — rompe una y la skill fracasó
- Ningún nombre de modelo en un punto de llamada. El código pide un rol; la
escalera responde con un modelo. Haz grep de tu código buscando literales de
nombres de modelo — cada uno es un bug.
- El sondeo vivo le gana a la config. Si el humano dice que un modelo existe y
la config lo niega, sondéalo. Comprobado-y-responde queda zanjado; una lista
vieja no.
- Builder y grader nunca se resuelven al mismo modelo para el mismo cambio.
Si la escalera los colapsaría en un solo modelo, el grader toma el siguiente
peldaño independiente — o el trabajo falla con ruido.
- Sondeo acotado. Los sondeos son baratos, van a caché y respetan el backoff.
Un loop apretado de reintentos contra un proveedor muerto está prohibido.
- Sin fallback silencioso. Cada paso hacia abajo en la escalera es visible en
el log y en el reporte. Degradar calladito es como una ruta rota muere sin que
nadie lo note.
Combina bien con
- model-fusion — el panel y el juez resuelven sus modelos a través de esta escalera.
- blind-tribunal — los jurados vienen de familias distintas; la escalera elige los que están vivos.
- bounded-loops — cadencia de sondeo, backoff y kill-switches.
1---2name: fleet-ladder-33description: Úsala antes de entregarle trabajo a un modelo — construir, calificar o un trabajo acotado de worker — o cuando un proveedor está caído y necesitas el orden de fallback. Resuelve la escalera VIVA de modelos: sondea lo que de verdad está arriba, elige el mejor disponible según un orden de fallback explícito, y falla con ruido cuando la escalera se agota. Trigger words: fleet, ladder, dispatch, fallback, model down, provider down, which model, availability. Disparadores: flota, escalera, despacho, respaldo, modelo caído, proveedor caído, qué modelo, disponibilidad.4license: MIT5---67# Fleet Ladder8**Effort:** light — un solo sondeo vivo, cacheado, del peldaño antes de cualquier despacho. Elimina: despachos a proveedores muertos, y nombres de modelo clavados en los puntos de llamada que se rompen el día que el modelo se retira.910Nunca armes a mano una llamada a un proveedor, y nunca claves un nombre de modelo11en un punto de llamada. Un solo resolutor es dueño de la pregunta "¿qué modelo12hace este trabajo ahora mismo?" — y responde desde la verdad viva, no desde la13opinión de un archivo de config.1415## Cuándo ejecutarla1617- Antes de CUALQUIER despacho a un modelo: construir, calificar, revisar o un trabajo acotado de worker.18- Cuando un proveedor está caído y necesitas saber qué cae hacia qué.19- En el momento en que te sorprendas tecleando un nombre de modelo en código o en una plantilla de prompt.2021## Los pasos22231. **Declara el rol, no el modelo.** Cada trabajo pide un rol — `builder`,24 `grader` o `worker`. La escalera mapea roles a candidatos ordenados.25 - `builder`: implementa y repara.26 - `grader`: revisión independiente — estructuralmente nunca el mismo modelo que construyó.27 - `worker`: trabajos acotados y bien especificados. Aquí los peldaños baratos están bien.282. **Lee la escalera desde la config.** Un archivo lista, por rol, los candidatos29 en orden de fallback explícito: el más fuerte primero, bajando hasta tu cola30 local de supervivencia (lo que puedas correr en tu propio hardware cuando todos31 los proveedores de nube están a oscuras). Para cambiar o agregar un modelo,32 edita ese archivo — nunca el código. Forma inicial:33 [ladder.example.yaml](ladder.example.yaml) — cópialo y cambia los marcadores.343. **Sondea en vivo antes de confiar.** Un listado en la config es una afirmación,35 no la verdad. Una entrada vieja lista modelos que están muertos; también omite36 modelos que están vivos. Sondea al proveedor antes de despachar a un peldaño —37 una llamada al endpoint de modelos o una petición de un token, p. ej.:38 `curl -s "$PROVIDER_BASE_URL/v1/models" -H "Authorization: Bearer $API_KEY"`39 (o la misma forma contra el endpoint de chat con `"max_tokens": 1`).40 Cachea el resultado del sondeo por una ventana sensata — no martilles a los41 proveedores re-sondeando en cada llamada. Refresca la caché solo cuando de42 verdad necesites verdad fresca.434. **Baja la escalera, con ruido.** Despacha al mejor peldaño DISPONIBLE. Ante una44 falla de transporte, reporta la falla con ruido, y luego prueba el siguiente45 peldaño. Nunca saltes en silencio — el registro debe mostrar qué peldaños46 fallaron y por qué.475. **El agotamiento falla con ruido.** Si todos los peldaños están caídos, levanta48 un error claro nombrando lo que se intentó. Un trabajo que no puede despacharse49 nunca triunfa en silencio, ni espera para siempre, ni degrada a una respuesta50 inventada.516. **Registra la procedencia.** Añade cada despacho a un log: rol, modelo elegido,52 peldaños saltados y por qué. Después tienes que poder responder "¿quién hizo53 este trabajo en realidad?"5455## Reglas duras — rompe una y la skill fracasó5657- **Ningún nombre de modelo en un punto de llamada.** El código pide un rol; la58 escalera responde con un modelo. Haz grep de tu código buscando literales de59 nombres de modelo — cada uno es un bug.60- **El sondeo vivo le gana a la config.** Si el humano dice que un modelo existe y61 la config lo niega, sondéalo. Comprobado-y-responde queda zanjado; una lista62 vieja no.63- **Builder y grader nunca se resuelven al mismo modelo** para el mismo cambio.64 Si la escalera los colapsaría en un solo modelo, el grader toma el siguiente65 peldaño independiente — o el trabajo falla con ruido.66- **Sondeo acotado.** Los sondeos son baratos, van a caché y respetan el backoff.67 Un loop apretado de reintentos contra un proveedor muerto está prohibido.68- **Sin fallback silencioso.** Cada paso hacia abajo en la escalera es visible en69 el log y en el reporte. Degradar calladito es como una ruta rota muere sin que70 nadie lo note.7172## Combina bien con7374- [model-fusion](../model-fusion/SKILL.md) — el panel y el juez resuelven sus modelos a través de esta escalera.75- [blind-tribunal](../blind-tribunal/SKILL.md) — los jurados vienen de familias distintas; la escalera elige los que están vivos.76- [bounded-loops](../bounded-loops/SKILL.md) — cadencia de sondeo, backoff y kill-switches.