Logo de UNO by Yongchivo

UNO
EN DESARROLLO

Python · Claude Code · Git · Seguridad de aplicaciones · 2026

UNO es un orquestador local para repositorios git. Le describo una tarea, un planificador la divide en pasos con roles (desarrollador, revisor de código, tester, revisor de validación…) y yo apruebo el plan antes de que se ejecute nada. Cada agente trabaja aislado, sus cambios se revisan y se comprueban automáticamente, y nada llega a mi código sin mi aprobación final. Lo uso a diario en mis propios proyectos.

El reto

Dar autonomía a los agentes de IA sin perder el control. El principio de diseño: cada agente es un trabajador no confiable.

Cómo funciona

  • Plan con aprobación: el planificador propone pasos con rol, archivos permitidos, dependencias, modelo y esfuerzo, y justifica cada elección. Yo puedo cambiar cualquier cosa antes de aprobar.
  • Ejecución aislada: cada paso corre en su propio git worktree y rama; los pasos independientes van en paralelo.
  • Revisión y correcciones: los revisores devuelven hallazgos clasificados por severidad y tipo (defecto o evidencia). Los defectos medios o altos vuelven automáticamente al desarrollador, con un límite de rondas.
  • Comprobaciones deterministas: UNO ejecuta él mismo los comandos de verificación del proyecto (build, tests) tras cada paso y sobre la rama de integración; el resultado es la evidencia que ven los revisores.
  • Fusión humana: todo se integra en una rama aparte. Veo el diff consolidado, los hallazgos y las comprobaciones, y solo yo fusiono.

Controles de seguridad

  • Mínimo privilegio: los agentes solo leen y editan archivos; sin shell, sin red y sin servidores MCP.
  • Compuerta determinista: cada paso declara qué archivos puede tocar; los cambios fuera de su alcance, en rutas protegidas (CI, configuración, dependencias) o con posibles secretos esperan a mi revisión.
  • Comandos fuera del alcance del modelo: las comprobaciones las define el usuario y las ejecuta UNO como lista de argumentos, sin shell, con un entorno sin claves ni tokens, timeout por grupo de procesos y salida redactada.
  • Inyección de prompts: los artefactos entre agentes viajan como datos etiquetados como no fiables, y los roles que propone el planificador nunca pueden ampliar los permisos de los roles confirmados.
  • Confianza en la configuración: roles, contexto y comprobaciones se verifican por hash antes de cada ejecución (protección TOCTOU); cualquier cambio exige una nueva confirmación.
  • Interfaz solo local: token por arranque, validación de Origin/Host (CSRF y DNS rebinding) y una CSP estricta.

Funciones

  • Prompt Studio: convierte una idea corta en un prompt estructurado (objetivo, alcance, tareas, tests, criterios de aceptación) con un linter determinista y una biblioteca versionada.
  • Roles configurables: cada proyecto define sus roles, rutas protegidas y comprobaciones en una carpeta .uno/ revisada como código.
  • Interfaz en español e inglés: chat con el orquestador, agentes en directo, panel de revisión y registro de eventos.

Verificación

  • Tests: más de 200 tests unitarios y un smoke test que ataca el servidor en marcha.
  • Pruebas adversarias: con agentes reales: se bloqueó a un agente fuera de su alcance y un intento de inyección no tuvo efecto.
  • Uso real: pilotos en una aplicación Python/Next.js y en esta web, con cambios fusionados después de pasar las comprobaciones de UNO.
  • Modelo de amenazas: documentado, con los riesgos residuales.

Proceso

Diseñé la arquitectura, el modelo de amenazas y los controles, y lo construí dirigiendo a Claude Code mediante PRs revisadas una a una. Es un proyecto privado en desarrollo activo.