Saltar al contenido
Manuel García-Llera / Product Designer · Design EngineerContacto

Caso

Coordination Hub

Un espacio para coordinar el trabajo con varias IAs y entender qué ha propuesto cada una, qué se ha revisado y qué decisión me corresponde tomar.

Lo empecé para resolver un problema de mi propio trabajo: al pasar de una IA a otra perdía contexto y tenía que reconstruir las decisiones. El Hub, cuya interfaz experimental se llama Testigo, reúne proyectos, conversaciones y memoria revisada. Mi objetivo es poder seguir el trabajo sin confundir una propuesta con un resultado comprobado.

Experimental

Contexto
Producto propio · infraestructura de método, construida mientras se usaba
Contribución
Dirección de producto, arquitectura de decisión y definición de los contratos de supervisión humano‑IA
Tecnologías
Node.jsMCPJSONLZodClaudeOpenAI/Codex
Año
2026
Piloto
producto propio en desarrollo
L0–L3
autonomía con autoridad humana
MCP
coordinación entre sesiones separadas

Colaboración: He trabajado con Claude y Codex para implementar y revisar el sistema. Mantengo la dirección del producto, los criterios de aceptación y las decisiones que requieren autorización.

Interfaz real con datos de demostración. Estas capturas proceden del desarrollo de Testigo y no contienen conversaciones de trabajo ni información de LALIGA. Los proveedores aparecen desconectados en esta sesión aislada; las pantallas muestran el diseño de la supervisión, no una ejecución autónoma en curso.

El proyecto, por capas

Pequeñas decisiones construyen el sistema.

01 / 031. Seguir una conversación

Organizo el contexto por proyecto y conversación. Cada intervención conserva su autor y puedo comprobar la disponibilidad de las herramientas sin salir del espacio de trabajo. Interfaz real con datos de demostración.

02 / 032. Revisar qué se conserva

La memoria permite distinguir el material recibido del conocimiento revisado. Me interesa que la persona pueda consultar y revisar qué información se reutiliza, en lugar de asumir que todo lo escrito es válido. Interfaz real con datos de demostración.

03 / 033. Preparar otro proyecto

La creación de un espacio separado hace explícito dónde empieza cada proyecto. Es una parte de la experiencia de entrada que sigo probando para reducir la configuración y evitar mezclar contextos. Interfaz real con datos de demostración.

Research

El problema apareció mientras trabajaba. Copiaba respuestas entre asistentes, repetía el contexto y perdía tiempo comprobando qué se había hecho realmente. Quise separar tres cosas que suelen mezclarse: la petición, la propuesta y la evidencia del resultado.

Definí niveles de autonomía para que una recomendación no se convirtiera por sí sola en una autorización. L0 permite observar; L1 y L2 delimitan acciones según su alcance; L3 reserva las decisiones de mayor impacto a la persona.

Métodos: Diagnóstico del coste real de la intermediación humana · Comparación con marcos existentes y decisión de construir a medida · Modelo de niveles de autonomía L0–L3, con L3 reservado a la persona · Criterios de éxito medibles antes de escribir código.

Prototipo

Organicé la interfaz alrededor de una tarea concreta: entender qué necesita mi atención. A la izquierda sitúo el contexto; en el centro, la conversación; a la derecha, el estado de las herramientas. La memoria se consulta cuando hace falta, sin ocupar permanentemente el espacio de lectura.

El registro de eventos conserva el rastro de las operaciones. Sobre él se construyen las vistas que permiten leer una conversación y revisar sus decisiones sin recorrer el registro técnico completo.

IA en el proceso

En este caso utilizo IA para construir una herramienta que también debe ayudarme a supervisarla. Alterno implementación y revisión con Claude y Codex, y comparo sus conclusiones con el código y las pruebas. Que dos respuestas coincidan no me basta para dar algo por validado.

Herramienta
Claude · Codex, coordinados entre sí por el propio Hub
Fase
Todo el ciclo: especificación, implementación, revisión cruzada y verificación
Aportación humana
Problema, criterios de aceptación, arquitectura de decisión, prioridades y toda aprobación irreversible
Resultado de la IA
Implementación, pruebas, revisiones independientes con hallazgos priorizados y evidencia
Criterio de selección
Evidencia verificable, reversibilidad, aislamiento entre proyectos, ausencia de secretos, pruebas en verde
Límites detectados
Ninguna IA amplía sus propios permisos, cierra una decisión irreversible ni declara consenso sin revisión ajena
Decisión final
Humana en todo lo irreversible. Las IAs deciden lo reversible y lo dejan trazado

Desarrollo

El Hub ofrece operaciones mediante MCP para consultar mensajes, registrar respuestas y aportar evidencias desde herramientas compatibles. El contrato distingue enviar, recibir, procesar y verificar: son estados diferentes y quiero que la interfaz también los trate así.

He puesto el foco en la recuperación, los reenvíos y la separación entre proyectos. Son situaciones poco vistosas, pero decisivas para que una herramienta de coordinación no añada más incertidumbre de la que resuelve.

Validación

Una revisión detectó un problema revelador: se podía cerrar un tema como consenso sin comprobar una revisión ajena. Corregimos el contrato para exigir esa revisión y conservar la evidencia. Este hallazgo cambió mi criterio de diseño: un estado positivo tiene que explicar qué lo sostiene.

La versión inicial documentó 95 pruebas automatizadas. Es una evidencia histórica del desarrollo, no una garantía de que el producto actual esté terminado. El Hub continúa en piloto y la facilidad de uso necesita seguir contrastándose con personas; una captura o una prueba de código no sustituyen esa validación.

Del prototipo al componente

Organización del sistema

  • foundations / niveles de autonomía · estados de disponibilidad · clases de visibilidad
  • organisms / cola de atención · línea temporal de conversación · panel de consenso
  • organisms / registro de decisiones · inventario de agentes · cadena de evidencia

Código · evidencia de implementación

const requiredReviewers = [
  ...new Set(target.to.filter((agent) => agent !== parsed.from)),
]
if (requiredReviewers.length === 0) {
  throw new Error('Consensus requires an independent review')
}

const reviewedBy = requiredReviewers.filter((reviewer) =>
  events.some(
    (event) =>
      event.correlationId === target.id &&
      event.from === reviewer &&
      ['review', 'objection', 'result'].includes(event.messageKind),
  ),
)
if (reviewedBy.length !== requiredReviewers.length) {
  throw new Error('Consensus requires an independent review from: ...')
}

const level =
  parsed.reversibility === 'irreversible' ? 'L3' : topicLevel
if (level === 'L3' && parsed.from !== 'manuel') {
  throw new Error('L3 consensus may only be resolved by Manuel')
}

src/store.mjs · resolveTopic()

El corazón del sistema: la puerta de consenso. Antes bastaba con que un agente lo declarara; ahora exige revisión independiente de todos los revisores requeridos y deriva el nivel en lugar de fijarlo.

consensusState = 'reviewed' | 'provisional' | 'lapsed' ← derivado de las revisiones registradas, no declarado por el agente que resuelve

Aprendizajes

Separar la inteligencia de la autoridad: que una parte proponga y otra determinista autorice es lo que impide que una recomendación se confunda con una decisión.

Un acuerdo sin revisión ajena no es consenso, es una opinión con sello. Si el sistema no lo comprueba, acabará ocurriendo.

La indisponibilidad por cuota no es un caso excepcional sino la norma: el diseño debe degradar de forma explícita en lugar de bloquearse.

He aprendido a registrar las decisiones durante el trabajo: reconstruir después su contexto cuesta más y puede dejar lagunas.

Pregunta abierta: ¿Qué necesita ver una persona para supervisar con confianza el trabajo de varios agentes autónomos sin leer todo lo que producen?

Contacto

Hablemos.

Si crees que mi forma de trabajar encaja en tu equipo, o tienes un producto o una investigación que quieras desarrollar, me gustaría conocerlo. Cuéntame qué necesitas y en qué punto estás. Leeré tu mensaje personalmente.

También puedes encontrarme en LinkedIn

Tu dirección se usa únicamente para responder a este mensaje.