Delegación · Verify · RDD

Delegar no es
un reflejo.
Es una decisión.

Cuándo delegar y cuándo no, cuándo verificar y con qué rigor, cuándo pedir una revisión externa (RDD) y qué modelo poner en cada rol. Todo con números de nuestro propio bench.

El problema

Delegar por costumbre sale caro

  • Un subagente pasa uno a dos minutos leyendo antes de escribir una sola línea.
  • Delegar trabajo pequeño cuesta más que hacerlo directamente.
  • Tamaño, complejidad o cantidad de archivos no son razones para delegar.

Bench: delegar por razón, no por hábito

por hábito
10.9 min
por razón
3.2–3.6
La regla central

Inline por defecto, delegar solo con razón

El orquestador trabaja inline

  • La sesión principal hace el trabajo ella misma.
  • Delega solo cuando se dispara un motivo con nombre.
  • Nunca por tamaño, complejidad, número de archivos, etiqueta de "tarea grande" o relación de precios.

El test mental

¿Esto infla el contexto del padre sin necesidad?

  • Sí → un solo worker acotado.
  • No → inline.
Razón 1 de 3 · Mapeo

Un explorer de solo lectura

  • Se dispara cuando entender requiere más de un lote de lectura (máx. 3 llamadas, ~10k tokens) o más de ~5 búsquedas secuenciales.
  • Nunca explores archivos que vas a leer igual antes de escribir inline.
1 · ExplorerUno solo, read-onlyLee, comprime y no edita nada.
2 · Handoff≤ ~2k tokensCon evidencia path:line.
3 · PadreUN spot checkComprueba una afirmación. Nunca relee todo.
Razón 2 de 3 · Escritores en paralelo

Unidades independientes, lanzadas juntas

🧩

Cuándo

Dos o más unidades con superficies de edición disjuntas, cada una claramente más pesada que arrancar un subagente (varios archivos o ~100+ líneas).

🔗

Qué es una unidad

Tests, docs y código del mismo comportamiento son UNA unidad. Una entrega que depende de otra anterior no es independiente.

🧭

El padre manda

Deriva las "Allowed edit surfaces" (paths/globs exactos) antes de lanzar. Es dueño de git. Un seam check al final: la suite completa, una vez.

Razón 3 de 3 · Verificación · y un respaldo
🔍

Verificador independiente

Se dispara solo para un cambio de alto riesgo.

En cualquier otro caso, el test enfocado del cambio y la suite corren inline.

🛟

Respaldo de contexto

Alrededor de 150k tokens de contexto en el padre: pausa y delega la siguiente unidad acotada.

No es una cuarta razón para delegar por tamaño: es una red de seguridad del contexto.

Mapear, escritores paralelos, verificación de alto riesgo o respaldo de contexto. Nada más.

Pequeña vs grande

El tamaño decide el seguimiento, no la delegación

Pequeña

  • Entendida + riesgo contenido + retomable solo con git diff.
  • Queda inline, sin documento de feature.

Grande

  • Falla el test de retomar: varias sesiones, esperas externas, entregables separados, requisitos que no sobreviven a una compactación.
  • Recibe SEGUIMIENTO: documento con specs S# literales, tareas y log; espejo en Engram; commits por unidad de trabajo.
  • No recibe un writer automáticamente.

Entrega por referencia, nunca por paráfrasis: Spec: odd/tasks/feature.md, T2, S3-S4. Las specs citan las palabras exactas del usuario.

Qué es alto riesgo

Seis ítems y una línea de Risk

1 · Datos

Efectos irreversibles: migraciones, reescribir o borrar datos guardados, cambios de formato.

2 · Seguridad

Auth, permisos, credenciales, secretos, guards, sandbox.

3 · Contratos

Cambiar o quitar lo que otros ya consumen: API pública, flags, formatos de config, exports. Agregar una flag no es alto riesgo.

4 · Concurrencia

Locks, carreras, orden asíncrono.

5 · Entrega

Instaladores, release, CI, deploy, dependencias.

6 · Sin red

Ningún test detectaría una regresión.

Todo cambio cierra con Risk: item N (motivo) o Risk: none. Antes de "none": si el diff toca código compartido (opciones, parsers, helpers), es el ítem 3.

Verify proporcional al riesgo

Tres niveles de verificación

PasivoDocs, imágenes, comentariosSolo relectura estructural.
MedioCambio de comportamiento con tests enfocadosEl writer corre los comandos exactos y reporta comando: resultado observado.
AltoCualquier ítem de alto riesgoAutochequeo del writer + un verificador INDEPENDIENTE (contexto fresco, solo lectura).

En todos los niveles, el padre vuelve a correr un comando reportado antes de entregar.

Sesgo de modelo chico: si el writer corrió en un modelo chico (low effort o mini), sube el nivel uno.

Cómo se verifica

Handoff, sondas y blockers

Qué recibe el verificador

  • El documento de feature COMPLETO (cada S#).
  • El commit base.
  • Las formas de los comandos de sondeo.
  • Las sondas corren en una copia limpia (mktemp -d), nunca en el workspace.
  • Invariantes: hash de datos igual tras un comando rechazado; salida previa idéntica a la base.

Qué es un blocker

  • Defecto causado por el cambio, que se reproduce con input realista y no se reproducía en la base.
  • Los defectos previos son advisories.
  • Siempre blocker: ignorar en silencio una opción explícita, o cambiar una salida que nadie pidió cambiar.
Correcciones acotadas

Nada de "loop hasta que quede limpio"

1Un lote de correcciónArregla todos los blockers juntos.
2Un rechequeoLimitado a esos blockers.
3Segunda correcciónSolo si el MISMO blocker sigue fallando.
4"Needs your decision"Un único resultado para el humano.

Si después de eso sigue fallando, la decisión vuelve al humano.

Por qué cambiamos verify

De ciego a casi todo

0/ 9

Defectos conocidos que encontraba el verify viejo, dentro de la misma corrida.

8/ 9

Los que encuentra el verify nuevo, con cero falsas alarmas altas en 4 controles limpios.

19–34min

El loop de corrección, que antes tardaba 97 min.

La diferencia: un checklist adversarial derivado de las specs más invariantes.

RDD · Receipt-driven development

La mirada externa

  • Es un interruptor que controla el HUMANO.
  • Revisión extra solo para trabajo de alto riesgo, nunca un ritual por cambio.
  • Consentimiento por candidato: un rechazo vale solo para ese candidato.
  • Máximo una corrección acotada. Un resultado de review nunca autoriza commit, push, PR ni release.
# el humano decide
$ gentle-ai review mode status|enable|disable

# el flujo
assess
  → solo si reviewDue (alto riesgo)
    o el usuario lo pide
inspect
  → START
Lentes de revisión

El agente elige las lentes, no el usuario

risk

Algo podría quedar expuesto, perderse o cambiar de forma irreversible.

resilience

Comportamiento ante fallos: errores, reintentos, timeouts, concurrencia.

readability

Lo que otros leen o de lo que dependen: APIs, mensajes, docs.

reliability

Lógica que los tests deberían fijar.

Elige solo las lentes pertinentes a lo que tocaste.

Cumplir requisitos es trabajo de verify. Nunca elijas lentes para rechequear specs.

Por qué cambiamos RDD

4 lentes = 1 lente, a 4x el costo

4x

En nuestra base de revisión, 4 lentes encontraron lo mismo que 1 lente.

update

Un token de path hacía que cambios ordinarios pagaran 4 lentes.

1,751

Líneas de un capítulo de docs que recibió una revisión completa de 4 lentes.

Verify primero, review después: verify prueba las specs; review mira desde afuera lo que nadie pidió.

Modelos por rol

Paga razonamiento donde el error es caro

RolRecomendadoPor qué
OrquestadorFrontera (Opus, GPT top), effort medioDecide, dimensiona tareas, es dueño del riesgo.
ExplorerGama media (Sonnet), effort por defectoLee y comprime; el padre hace un spot check.
WriterGama media (Sonnet), effort medioImplementa contra specs literales y corre sus checks.
VerificadorModelo fuerte, effort altoSu trabajo es encontrar lo que el writer no vio. Nunca un modelo chico.
Copia/formatoEvita modelos chicosPara trabajo byte-exacto: cp + diff.

Pasa el modelo explícitamente por rol. Si lo omites, el subagente hereda el del padre (normalmente el más caro).

Incidentes reales

Anti-patrones que ya nos pasaron

Verificador chico

Un verificador en modelo chico emitió un resultado aprobado sin correr los tests.

"Byte-perfect"

Un modelo chico truncó un reporte de 637 a 209 líneas y aun así reportó "byte-perfect". Dos veces.

Modelo heredado

Sin modelo explícito, el subagente usa el del padre: normalmente el más caro.

Revisión por ritual

Cambios ordinarios pagando 4 lentes por un token de path.

No confíes en autorreportes: verifica con comandos.

Números honestos

Frente a Codex vanilla

🏆

Calidad

Por encima de Codex en tareas medianas (3 de 3) y grandes. En tareas chicas, empate.

⏱️

Velocidad y costo

Codex es más rápido y más barato en todo: alrededor de 3x en tareas grandes.

📈

Nuestro bench

La calidad pasó del 3.º al 1.º lugar tras estos cambios.

Ganamos calidad, no velocidad. Decirlo así es parte del método.

Para llevarse

Diez reglas

  • 1. Inline por defecto.
  • 2. Delega por una razón con nombre: mapear, writers paralelos, verificación de alto riesgo o respaldo de contexto.
  • 3. Nunca delegues por tamaño o número de archivos.
  • 4. Nunca explores lo que vas a leer igual.
  • 5. Grande significa seguimiento, no un writer.
  • 6. Entrega por referencia, con specs literales.
  • 7. Verifica en proporción al riesgo; verificador independiente solo para alto riesgo.
  • 8. Correcciones acotadas: un lote, un rechequeo, luego decide el humano.
  • 9. Review (RDD) solo para alto riesgo, con lentes elegidas por el agente.
  • 10. Pasa el modelo por rol; modelos fuertes donde el error es caro de detectar.
Cierre

Menos subagentes.
Mejor verificados.

Trabaja inline, delega con una razón, verifica en proporción al riesgo y reserva la mirada externa para lo que realmente puede romper algo.

github.com/Gentleman-Programming/gentle-ai · github.com/Gentleman-Programming/gentle-shell

gentle-ai · delegación
← → navegar · F pantalla completa · P exportar PDF