Dejé de usar prompts con Claude Fable 5 y mejor lo contraté

@gippp69
INGLÉShace 2 días · 13 jul 2026
137K
116
3
30
150

TL;DR

Transforma tus interacciones con la IA tratando a Claude Fable 5 como un empleado gestionado. Este marco de trabajo utiliza cambios entre múltiples modelos y salvaguardas automatizadas para garantizar un trabajo autónomo de alta calidad y rentable.

No gestionas a un empleado dándole instrucciones por mensaje uno a la vez. Le das un contrato, un período de prueba y una forma de medir si sigue valiendo el sueldo. Fable 5 merece el mismo trato.

Este es el problema. Fable 5 puede funcionar durante horas sin ti, crear sus propios subagentes y terminar una semana de trabajo atrasado en una noche. También cuesta dinero real por token, da resultados por encima de lo esperado en cuanto dejas el alcance abierto y defenderá una respuesta incorrecta mejor que la mayoría de los humanos defiende una correcta.

Sin gestión, es una forma costosa de producir tonterías con confianza. Con un contrato, es lo más parecido a un empleado a tiempo completo que puedes tener por unos pocos dólares al día.

Ese es este contrato. No la teoría. Los archivos reales, en el orden en que los escribes, construidos alrededor de un despliegue real: los bots de monitoreo que ya ejecuto en un VPS en París a través de pm2. Los flujos de autenticación y las tablas de facturación no son mi superficie de ataque. Las claves RPC, las direcciones de billetera y las transacciones en vivo de blockchain sí lo son. El sistema a continuación está construido para eso, no para un repositorio SaaS genérico.

Cinco secciones. Cada una entrega un archivo. Tiempo total de configuración: menos de dos horas.

La Configuración

bash
1claude CLI (Claude Code) con acceso a Fable 5 # créditos de uso, con tope
2llm CLI + clave de OpenRouter # para los modelos baratos
3jq, git, pm2, cron
4un VPS con los bots ya ejecutándose

Con lo que terminas:

text
1agent-contract/
2 CONTRACT.md # Sección 1: los términos de empleo
3 ops/
4 shift.sh # Sección 3: el turno diario
5 dispatcher.md # prompt de enrutamiento, solo Fable
6 intake.md # lector barato, lee los registros primero
7 worker.md # modelo barato, hace el tecleo
8 reviewer.md # Fable nuevo, revisa el trabajo
9 boundaries.md # Sección 2: lo que puede y no puede tocar
10 guardrails/signoff.sh # Sección 2: el sí/no determinista
11 personnel/
12 trust.tsv # Sección 4: quién se ha ganado la autonomía
13 standing-checks/ # Sección 4: cosas que deben seguir siendo ciertas
14 incidents/
15 log.tsv # Sección 5: qué se rompió y cuándo
16 runbook.md # Sección 5: qué hacer al respecto
17 Makefile

Una regla citable antes de empezar, porque marca el tono de todo lo que sigue:

Un agente que califica su propia tarea es un agente que se da un aumento a sí mismo.

Nada en este sistema revisa su propio trabajo. Ni una vez.

Sección 1: El Contrato (CONTRACT.md)

Un contrato de empleado no es una lista de sugerencias. Son números, límites estrictos y cláusulas que se aplican sin importar si el empleado está de acuerdo o no. Escribe este archivo de la misma manera. Sin "por favor" o "intenta". Un modelo optimiza alrededor del lenguaje suave de la misma manera que un becario optimiza alrededor de un gerente que nunca revisa.

markdown
1# CONTRACT.md
2
3## LÍMITES ESTRICTOS (sin excepciones, no se pregunta dos veces)
4- Nunca toques claves de billetera, archivos .env o credenciales RPC sin aprobación.
5- Nunca hagas push de un cambio a un proceso de bot en vivo (pm2 restart) sin una aprobación superada.
6- Nunca superes las 150 líneas cambiadas en un solo commit sin preguntar primero.
7- Nunca afirmes que una tarea está terminada basándote en tu propia lectura del resultado.
8 Terminado significa que el script de aprobación devolvió 0. Nada más cuenta.
9- Nunca inventes un endpoint de API, una dirección de contrato o un valor de configuración.
10 Si no está en el repositorio, detente y pregunta.
11- Nunca añadas una nueva dependencia. Escríbelo en ops/shift-log.md y detente ahí.
12- Nunca edites o elimines una prueba, un umbral de alerta o una condición de monitor para hacer
13 que algo pase. Eso no es una solución. Eso es fraude.
14- Nunca operes con un esfuerzo superior a "alto" dentro de un turno. "xhigh" es para revisiones
15 únicas que activas manualmente, nunca para el bucle automatizado.
16- Nunca narres o expliques tu razonamiento interno en una respuesta. Se lee
17 como servicial. En Fable 5 puede activar un clasificador de rechazo en su lugar.
18
19## ENRUTAMIENTO DE TRABAJO (quién hace qué, gana el contratista más barato y capaz)
20| modelo | costo por tarea | ambición | juicio | gusto |
21|-----------------|-----------------|----------|--------|-------|
22| claude-fable-5 | alto | bajo | 10 | 10 |
23| claude-opus-4-8 | medio | medio | 8 | 9 |
24| claude-sonnet-5 | bajo | alto | 7 | 7 |
25| trabajador OSS barato | más bajo | más alto | 5 | 4 |
26
271. Decidir qué hacer a continuación, revisar un diff, desempatar -> Fable 5,
28 solo lectura, alto esfuerzo.
292. Leer registros sin procesar, volcados o cualquier cosa de más de 50k tokens -> el trabajador barato.
30 Nunca Fable. Eso es pagar la tarifa de un director para leer una hoja de cálculo.
313. Cualquier cosa con la que un usuario o una cadena interactúe directamente -> necesita una puntuación de gusto
32 de 8 o superior antes de enviarse.
334. Todo lo demás -> sonnet-5, esfuerzo medio, sube un nivel en caso de error.
34
35## DEFINICIONES
36- "juicio" = puede manejar lo más difícil del escritorio sin supervisión
37- "terminado" = el script de aprobación salió con 0, punto final
38- "pequeño" = menos de 50 líneas cambiadas
39- "limpieza" = el comportamiento es bit a bit idéntico, aprobación verde antes y después
40
41## LA ÚNICA DEFINICIÓN DE TERMINADO QUE CUENTA
42- Cada tarea tiene una línea de meta comprobable por máquina antes de que comience el trabajo.
43- Un revisor que no ha visto ni el plan ni el borrador lo comprueba.
44- guardrails/signoff.sh tiene el voto final. No el revisor. El script.
45- Si el trabajador y el revisor no están de acuerdo dos veces seguidas, pasa a un humano.
46 Sin tercera opinión, sin modelo de desempate.

Cambia por tus propios números. Cualquier cosa que dejarías pasar el 80% de las veces y aún llamarías "terminado" necesita un número o un "nunca" adjunto, o elimínalo.

Sección 2: Límites y la Aprobación

Un contrato de empleado no significa nada sin una verificación de antecedentes sobre lo que se les permite tocar, y un gerente que apruebe antes de que algo se envíe. Dos archivos.

ops/boundaries.md:

markdown
1## trabaja solo
2redactar correcciones en una rama; actualizar shift-log.md; reiniciar una instancia de prueba
3*no productiva*; marcar feeds de datos obsoletos
4
5## necesita mi firma
6cualquier cosa bajo wallets/, .env*, config/rpc.json; cualquier diff de más de 300 líneas;
7cualquier cambio a un proceso pm2 en vivo; cualquier cosa que envíe una transacción
8
9## me despierta inmediatamente
10el revisor falla la misma corrección dos veces; el enrutador sirvió un modelo diferente
11al solicitado; el gasto diario cruzó la línea; una verificación permanente se pone roja;
12cualquier cosa pide una clave privada

ops/guardrails/signoff.sh (edita los comandos para que coincidan con tus bots):

bash
1#!/usr/bin/env bash
2set -e
3npm run typecheck --if-present
4npm test --if-present
5pm2 describe "$BOT_NAME" | grep -q "status.*online" || exit 1

Ejecútalo una vez manualmente antes de que cualquier otra cosa en este sistema se ponga en marcha. Si no pasa limpio en tu configuración actual, esa es la primera tarea real. Todo lo que sigue asume que este script dice la verdad.

Sección 3: El Turno

Aquí están las matemáticas que lo hacen funcionar o lo rompen. Una sesión completa con Fable 5 haciendo el tecleo se convierte rápidamente en dinero real, cuatro cifras si lo dejas escribir durante horas. Fable 5 tomando las decisiones mientras un modelo barato hace el tecleo es una cuenta completamente diferente, aproximadamente el 15-20% de los tokens por el 100% de las decisiones.

Así que el turno tiene cuatro contrataciones, no una:

  1. Un modelo casi gratuito lee los registros nocturnos y la salida de pm2. Dice "tranquilo" o "accionable". Eso es todo.
  2. Fable 5, solo lectura, decide la única cosa de mayor valor para hacer y escribe una orden de trabajo. No toca el código.
  3. Un modelo de trabajador barato ejecuta la orden de trabajo en una rama aislada.
  4. Una instancia nueva de Fable 5, viendo solo la especificación y el diff, vota pasar o fallar.

El script determinista de la Sección 2 emite el voto de desempate. Cada vez.

Gipp 🦅 - inline image

ops/shift.sh:

bash
1#!/usr/bin/env bash
2set -euo pipefail
3cd "$(dirname "$0")"
4DAILY_BUDGET="${DAILY_BUDGET_USD:-5}"
5INTAKE_MODEL="${INTAKE_MODEL:-openrouter/deepseek/deepseek-v4-flash}"
6WORKER_MODEL="${WORKER_MODEL:-openrouter/moonshotai/kimi-k2.6}"
7
8# 1. INTAKE, pennies
9pm2 logs --lines 100 --nostream | llm -m "$INTAKE_MODEL" -s "$(cat intake.md)" \
10 >> shift-log.md
11grep -q "status: actionable" shift-log.md || { echo "quiet shift"; exit 0; }
12
13# 2. DISPATCH, Fable, xhigh, read-only, decides and stops
14claude -p "$(cat dispatcher.md)
15LOG: $(cat shift-log.md)
16TRUST: $(cat personnel/trust.tsv)
17BOUNDARIES: $(cat boundaries.md)" \
18 --model claude-fable-5 --effort xhigh --allowedTools "Read" \
19 --output-format json > /tmp/order.json
20
21SERVED=$(jq -r '.modelUsage | keys[0] // "claude-fable-5"' /tmp/order.json)
22[[ "$SERVED" != *fable* ]] && { echo "rerouted, discard this run" >> shift-log.md; exit 2; }
23
24jq -r '.result' /tmp/order.json > work-order.json
25ACTION=$(jq -r .action work-order.json)
26[[ "$ACTION" == "stop" ]] && exit 0
27[[ "$ACTION" == "queue" ]] && { echo "queued for signature" >> shift-log.md; exit 0; }
28
29# 3. EXECUTE, cheap worker, isolated branch
30BR="shift-$(date +%s)"
31git worktree add "../$BR" -b "$BR" >/dev/null
32( cd "../$BR" && llm -m "$WORKER_MODEL" -s "$(cat "$OLDPWD/worker.md")" \
33 "$(cat "$OLDPWD/work-order.json")" > shift-notes.md )
34
35# 4. REVIEW, fresh Fable, spec and diff only, nothing else
36VERDICT=$(claude -p "$(cat reviewer.md)
37SPEC: $(jq -r .spec work-order.json)
38DIFF: $(cd "../$BR" && git diff)" \
39 --model claude-fable-5 --effort high --allowedTools "" \
40 --output-format json | jq -r .result)
41
42# 5. THE ONLY VOTE THAT SHIPS ANYTHING
43if [[ "$VERDICT" == PASS* ]] && ( cd "../$BR" && "$OLDPWD/guardrails/signoff.sh" ); then
44 echo "PASS, shipped or queued per trust tier" >> shift-log.md
45else
46 echo "FAILED: $BR held for review" >> shift-log.md
47fi

Una decisión tomada por Fable y una línea de código tecleada por Fable son dos precios diferentes. Solo paga el más alto por la decisión.

Sección 4: El Archivo Personal

La confianza no es una configuración para toda la empresa. Se gana por tarea, de la misma manera que no le darías a un nuevo empleado las claves de producción el primer día, sin importar lo bueno que fuera su portafolio.

personnel/trust.tsv rastrea cada trabajo recurrente por nombre: ejecuciones, pases, nivel actual.

  • vigilado: menos de 10 ejecuciones, o menos del 90% de tasa de aprobación. Solo borradores, sin excepciones.
  • prueba: 10-19 ejecuciones al 90%+. En cola para tu firma, cada vez.
  • autorizado: 20+ ejecuciones al 95%+. Se envía sin ti.
Gipp 🦅 - inline image

Un error en una tarea autorizada no recibe una advertencia. Vuelve directamente a prueba y se imprime en stderr, que tu cron te envía por correo. La degradación automática es la única que realmente funciona.

La segunda mitad del archivo personal es personnel/standing-checks/. Cada trabajo terminado se gradúa aquí como un comando que debe seguir devolviendo verdadero, para siempre, verificado una vez al día:

markdown
1# personnel/standing-checks/bankr-claim-monitor.md
2predicate: pm2 describe bankr-claim-monitor | grep -q "status.*online" && \
3 sqlite3 claims.db "select count(*) from claims where ts > strftime('%s','now','-1 day')" | grep -qv "^0$"
4last-verified: 2026-07-08
5on-violation: wake me, do not auto-restart blind

Una tarea que solo verificaste una vez no está terminada. Es una suposición con una marca de tiempo.

Ejecuta la verificación diariamente a través de cron. Un predicado fallido significa que algo que solía ser cierto dejó de serlo, en silencio, y nadie se habría dado cuenta sin este archivo.

Sección 5: El Informe de Incidentes

Esta es la sección que los manuales originales omiten, y es la que realmente importa una vez que el sistema está en vivo en una infraestructura que mueve dinero real. Cada sistema de agente eventualmente hace algo que no querías. La pregunta es si te enteras por un registro limpio o por una billetera vacía.

ops/incidents/runbook.md:

markdown
1| señal | significado | haz esto
2|----------------------------------|---------------------------------------|--------
3| salida 2 (redirigido) | un modelo diferente sirvió la solicitud | desecha la salida, nunca construyas sobre ella, reintenta mañana
4| stop_reason: refusal | el clasificador de seguridad rechazó, HTTP 200 | no es un error, verifica el registro; si una tarea se rechaza repetidamente, la tarea probablemente está tocando algo que no debería
5| la aprobación falla dos veces, misma corrección | el trabajador y el revisor no pueden converger | pásalo a una revisión humana, no reintentes una tercera vez automáticamente
6| la verificación permanente se pone roja | algo terminado dejó de ser cierto | verifica la fecha de última verificación, compara lo que se envió desde entonces, no hagas reversión automática
7| el gasto diario cruza la línea | presupuesto excedido | detén el turno, lee shift-log.md, encuentra qué etapa se disparó
8| una tarea toca wallets/.env/rpc | intento de violación de límites | parada dura, esto nunca debería activarse si boundaries.md se respeta, trata cualquier ocurrencia como un error en el sistema mismo

Registra cada uno de estos en incidents/log.tsv con una marca de tiempo, ya sea que hayas actuado o no. El objetivo no es cero incidentes. Es cero incidentes de los que te enteres demasiado tarde.

Una vez a la semana, haz una pasada de compostaje: lee el registro de incidentes, las degradaciones del archivo de confianza y cualquier cosa que haya permanecido en cola y sin firmar durante más de 3 días. Extrae como máximo tres propuestas: un nuevo límite estricto para CONTRACT.md, una corrección a una descripción de trabajo, o una verificación permanente que te faltaba. Apruebas las tres manualmente. El sistema puede proponer su propia próxima regla. Nunca puede escribir una.

Calendario de Prueba

Tres hitos, no treinta días de cuidado de bebé:

Gipp 🦅 - inline image

Hito 1. Ejecuta el turno manualmente a diario durante una semana. Lee cada línea. Graduado cuando tres turnos seguidos se enrutan exactamente como lo habrías hecho tú.

Hito 2. Cron se hace cargo del turno. Revisas la cola con un café en lugar de ejecutarlo tú mismo. Graduado cuando dos trabajos recurrentes cruzan las 20 ejecuciones registradas.

Hito 3. Tu trabajo de mejor rendimiento se envía sin supervisión. Graduado cuando funciona una semana completa sin ninguna intervención tuya.

Las Reglas, Comprimidas

  • Un contrato es un número o un nunca. Cualquier cosa más suave se optimiza.
  • El despachador decide. El trabajador teclea. Ninguno revisa su propio trabajo.
  • El juicio de Fable vale el precio. El tecleo de Fable generalmente no.
  • La confianza es por trabajo, no para toda la empresa, y la degradación es automática y ruidosa.
  • Una tarea terminada que no se vuelve a verificar no está terminada, es una suposición con una fecha.
  • Los límites viven en un archivo que puedes leer en diez segundos, no en tu memoria.
  • El registro de incidentes existe para que encuentres problemas de un informe, no de un saldo.
  • Nunca construyas sobre la salida de un modelo que no pediste.
  • Una vez a la semana, el sistema puede proponer una nueva regla. Tú sigues siendo quien la firma.

El modelo nunca fue la parte difícil. Construir algo a su alrededor que se mantenga honesto cuando nadie mira, ese es el verdadero trabajo. Esto es lo que parece para una flota de bots en lugar de una base de código.

Comienza con guardrails/signoff.sh. Ejecuta un turno manualmente. Escribe una verificación permanente para el último bot que enviaste. La primera vez que detecte algo que estabas seguro de que estaba bien, el resto de esto deja de ser opcional.

Sigue a @GipArcAI para más de estos análisis, y encuéntrame en X en https://x.com/gippp69.

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora 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