Informe integral de avance

Hermes para Factronics

Qué se construyó, cómo funciona, en qué estado está y cuáles son las etapas hasta la puesta en marcha operativa.

Corte de evidencia: 9 de septiembre de 2026 Entorno: hermes-fact.916.coordenadas.co VPS srv1666492
Resumen ejecutivo

La base técnica existe; el bloqueo es de propiedad

Hermes está desplegado y operativo. La base de conocimiento está conectada, el gateway de QuickBooks funciona en modo seguro, ambos servicios probados con datos reales, e infraestructura soporte (Coolify, Tailscale, Honcho, n8n) está activa.

El bloqueo inmediato es una acción de Factronics: comprar OpenCode Go para que Hermes corra bajo una cuenta, credenciales y facturación propias. Hoy usa una credencial temporal de Coordenadas.

Bloqueo externo inmediato

hermes-fact está conectado a opencode-go con modelo glm-5.3 vía un proxy que maneja la sesión requerida. La ruta técnica funciona (respuestas HTTP 200), pero usa una credencial temporal de Coordenadas. Factronics debe comprar OpenCode Go y entregar su propia credencial para lograr independencia operativa y titularidad de costos desde el día 1.

A partir de ahí, el trabajo restante está organizado en cuatro etapas: desbloqueo, traspaso técnico de IA, activación funcional y UAT + hipercare. Cada componente de este informe indica en qué etapa se resuelve. Ver «Plan de cierre recomendado».

Estado general

Estado por componente

Composición
4 operativos
5 en curso
4 en plan
ComponenteEstadoEvidencia principal
Infraestructura VPS y CoolifyOperativaServicios y contenedores activos en srv1666492
Hermes de FactronicsDesplegado · dependencia temporalContenedor hermes-factronics saludable, Hermes v0.20.0
Cuenta OpenCode Go de FactronicsEtapa 1 · FactronicsRequiere compra y entrega de la credencial propia
Base de conocimientoDesplegada y evaluadakb-mcp saludable; 5 herramientas registradas en Hermes
Gateway QuickBooksDesplegado · modo seguroGateway y sidecar Tailscale saludables; 130 herramientas registradas; GATEWAY_READ_ONLY=true
Fleet de agentes especializadosDiseñado · no provisionadoEl servidor solo muestra el perfil default
Automatizaciones n8nPlataforma activa · workflows en cursoWF-001, WF-006 y WF-007 definidos; WF-002 a WF-005 en la Etapa 3
Panel de controlInterfaz desplegada · datos en Etapa 3Aplicación accesible; opera sobre datos mock y kill switch local
Backup de QuickBooksPipeline implementado · por automatizarRequiere cron en hermes-fact, formato .QBB, copia offsite y restore drill
Doc ExtractorEtapa 3Requerido por WF-001 y por el caso escaneado de la Cláusula 1
Integración HubSpotEtapa 3Requiere conector, token y los workflows WF-002 y WF-004 (agente Onboarding completo)
Operations Supervisor / AsanaEtapa 3Requiere conector de Asana, WF-003 y el monitoreo de certificados de reventa
TelegramEtapa 3Requiere cargar el token del bot de Factronics
Nota metodológica

El estado se expresa por nivel de madurez —construido, validado, operativo— para distinguir con precisión en qué punto está cada componente.

Propuesta v2.0 + 3 cláusulas

Cobertura del contrato

Entregables
3 hechos
5 en curso
6 en plan
Entregable contratadoEstadoNota
Arquitectura completa + VPS / Coolify / n8nHechoDesplegado y saludable en srv1666492
QB Web Connector (endpoint SOAP)Hecho · solo lecturaGateway operativo, /qbwc activo, sidecar Tailscale hacia ADMINLIZETT
API de Hermes con 4 agentesParcialBundle del fleet construido; en el servidor solo el perfil default
5 workflows de n8n (WF-001 a WF-005)1 de 5 · validación estáticaWF-001 definido; WF-002 a WF-005 se construyen en la Etapa 3
Custom GPTs → conocimiento del agenteReemplazo de arquitecturaSe descartó OpenAI Assistants API; el contrato pide capas HCL curadas. Se construyó además una base de conocimiento MCP (más potente) que no sustituye la estructura HCL
Integración bidireccional y autónoma con HubSpotEtapa 3Requiere conector, token y WF-002 / WF-004
Control Panel para JovanInterfaz desplegada · datos en Etapa 3Opera sobre datos mock; la Etapa 3 aporta datos reales, kill switch con enforcement y autenticación por roles
PostgreSQL: esquemas, migraciones, auditoríaParcialhermes-db activo; el panel todavía no lee audit_log real
Documentación operativa completaEtapa 4Se entrega junto con la capacitación
Capacitación del equipo de FactronicsEtapa 4Programada con Jovan y el equipo contable
Doc Extractor (markitdown → Tesseract → visión)Etapa 3Requerido por WF-001 y por el caso escaneado de la Cláusula 1
Snapshot rotativo .QBW cada 60 días (3 copias)Parcialbackup_qb.py retiene 3 copias; requiere cron, formato .QBB y copia offsite
Operations Supervisor + Asana + certificados de reventaEtapa 3Agente 3 completo, se despliega con los conectores de Asana
Costos de API a cuenta de Factronics desde el día 1Etapa 1–2Hoy corre con crédito temporal de Coordenadas; se traslada a la cuenta de Factronics en el traspaso

Cláusulas contractuales — ruta de cumplimiento

Cláusula 1 — Precisión ≥98% (gate del pago final)

Etapa 4

UAT formal de 50 casos de negocio end-to-end, con al menos un caso escaneado/imagen, aprobado por escrito por Jovan Gutic. Se ejecuta en la Etapa 4, una vez que los cuatro agentes estén provisionados. Las evaluaciones ya realizadas —base de conocimiento 77–97%, campaña del gateway sobre QuickBooks real— cubren componentes aislados y sirven como línea base. Si el UAT no alcanza el 98%, el contrato concede 15 días hábiles de corrección sin costo.

Cláusula 2 — Draft-only, Kill Switch y Audit Log verificados desde la Fase 2

Etapa 3

El contrato exige que los tres controles estén probados con una prueba real, no solo construidos, antes de que cualquier agente pase a producción. Avance por control: draft-only ya está garantizado en el gateway por GATEWAY_READ_ONLY=true; el Audit Log existe como tabla y queda pendiente conectarlo al panel; el Kill Switch del panel es visual y se conecta a enforcement real en la Etapa 3, que cierra con la prueba end-to-end de los tres controles.

Cláusula 3 — Hipercare (gate del 15% retenido)

Etapa 4

30 días con revisión quincenal de KPIs de latencia y estabilidad del QBWC, más firma de aceptación de Jovan al día 30 para liberar el 15% retenido. Es el hito de cierre (Fase 7) y arranca con producción. Lo precede el requisito de la Fase 6: 5 días de monitoreo intensivo post-deploy.

01 · Hermes de Factronics

La capa de interacción y razonamiento

Qué es y qué hace

Hermes coordina cuatro áreas de negocio: Contabilidad (lectura de órdenes de compra, borradores en QuickBooks), Inbox (clasificación de correos, borradores), Operaciones (seguimiento en Asana), Onboarding (altas de clientes desde HubSpot). El diseño mantiene supervisión humana: prepara borradores y solicitudes de aprobación, no realiza cambios sensibles sin consentimiento.

OpenCode Go (IA · Etapa 1) Hermes Agent v0.20.0 · glm-5.3 Base de Conocimiento Gateway QB (solo lectura)

Estado comprobado en el servidor

El contenedor correcto es hermes-r6b1qln7l7f5tivsnl4idmn9, identificado en Coolify como proyecto factronics, recurso hermes-factronics y dominio hermes-fact.916.coordenadas.co. Está activo y saludable.

La instancia ejecuta Hermes Agent v0.20.0 y está configurada con:

  • Proveedor: opencode-go
  • Modelo principal: glm-5.3
  • Base de conocimiento MCP: conectada
  • Gateway QuickBooks MCP: conectado
  • Memoria Honcho: desplegada y con sesiones recuperadas correctamente en el arranque reciente

Hermes registró 135 herramientas MCP: 5 correspondientes a la base de conocimiento y 130 al gateway de QuickBooks.

Por provisionar

Etapa 3

La instancia corre hoy con el perfil default. Los seis perfiles preparados para Factronics —orchestrator, contable, inbox, operations, onboarding y gateway— se provisionan en la Etapa 3, junto con las tareas kanban y los jobs programados.

En esa misma etapa el archivo de identidad (SOUL.md) pasa del texto genérico de Hermes a la identidad, tono y reglas operativas de Factronics ya incluidas en el bundle del fleet.

02 · Dependencia de OpenCode Go

El suministro de IA del sistema

Por qué es necesaria la compra

Hermes orquesta el flujo pero no ejecuta el razonamiento: cada solicitud se envía a OpenCode Go. Es el suministro IA y no es opcional. La cuenta propia de Factronics permite:

  • Que el consumo y la facturación pertenezcan al cliente.
  • Evitar dependencia de credenciales o límites de la cuenta de Coordenadas.
  • Definir presupuesto, límites de uso y continuidad del servicio.
  • Ejecutar la aceptación productiva con el mismo proveedor que quedará en operación.
  • Separar técnica y contractualmente los datos y consumos de Factronics de otros proyectos.

Qué ya se resolvió técnicamente

OpenCode Go exige cabecera de sesión x-opencode-session. Se desplegó el proxy hermes-ocgo-proxy que inyecta hermes-fact-916 y mantiene la interfaz esperada. Tras el cambio:

  • El catálogo de modelos responde correctamente.
  • Las solicitudes de chat llegaron a OpenCode Go con la sesión identificada.
  • El proxy registró respuestas HTTP 200.
  • Hermes quedó configurado para usar glm-5.3 a través de ese proxy.

La ruta técnica está resuelta. Solo queda reemplazar la credencial temporal por la de la cuenta pagada de Factronics.

Acción requerida de Factronics

  1. Comprar o activar el plan de OpenCode Go bajo una cuenta controlada por Factronics.
  2. Designar quién administrará la cuenta, el método de pago y los límites de consumo.
  3. Entregar la credencial por un canal seguro o cargarla directamente en Coolify; no debe enviarse por correo, Telegram ni almacenarse en Git.
  4. Autorizar una prueba controlada de consumo y confirmar que la facturación aparece en la cuenta correcta.

Trabajo técnico posterior a la compra

  1. Sustituir en Coolify el secreto OPENCODE_GO_API_KEY por el de Factronics.
  2. Reiniciar hermes-fact y verificar catálogo/modelo.
  3. Ejecutar una consulta general, una consulta con la base de conocimiento y una lectura de QuickBooks.
  4. Confirmar en logs que no existen errores de autenticación, crédito, sesión o cuota.
  5. Retirar la credencial temporal de Coordenadas y registrar el traspaso operativo.
03 · Base de conocimiento

Los manuales reales, citables y en producción

Qué hace

Permite que Hermes responda con los manuales reales de Factronics, citables y verificables. Convierte PDFs, divide contenido, indexa híbrido (keyword + vector) y publica como servicio MCP.

Búsqueda combina:

  • FTS5/BM25 para códigos, términos exactos y números de parte.
  • Vectores multilingües para preguntas formuladas con otras palabras.
  • Reranking por manual, conceptos y contexto.
  • Un máximo de ocho fragmentos por consulta.
  • Referencia al manual y la página de origen.

Avance comprobado

  • Corpus de 94 PDFs provenientes de siete Custom GPTs de Factronics.
  • 14.379 notas enriquecidas y 33.233 chunks en la última construcción documentada.
  • Servicio kb-mcp desplegado y saludable en la red privada.
  • Hermes registra correctamente sus cinco herramientas.
  • Evaluación Linx 9900: 233 aciertos de 302 preguntas (77,2%), 15/15 procedimientos correctos, cero manuales equivocados y cero rechazos del gate.
  • Evaluación complementaria sobre ocho manuales: 97% de hallazgo en español, 94% en inglés y cero alucinaciones observadas.
  • Prueba end-to-end con Hermes: 20/20 respuestas con contenido real; 15/20 con cita exacta, tres respuestas generales válidas y dos solicitudes de aclaración apropiadas.

Próximos pasos

Próximos pasos
  • Confirmar una nueva prueba end-to-end después de instalar la cuenta OpenCode Go de Factronics.
  • Verificar de forma explícita la no regresión de Honcho junto con la base de conocimiento.
  • Incorporar tres documentos de Brand Voice que el diseño del fleet identifica como no indexados.
  • Como mejoras posteriores: indexado incremental, recuperación citable de imágenes/diagramas, corpus multilingüe y feedback loop de correcciones.
04 · Gateway de QuickBooks

Conexión segura con QuickBooks Desktop

Qué hace

Conecta Hermes a QuickBooks Desktop vía QBWC en capas:

  1. Endpoint SOAP que atiende el ciclo de QBWC.
  2. Traductor entre JSON y qbXML.
  3. Cola SQLite para solicitudes y respuestas asíncronas.
  4. Interfaces MCP y REST para que Hermes y el panel puedan consultar jobs y aprobaciones.

Avance comprobado

  • Gateway desplegado y saludable en el VPS.
  • Sidecar Tailscale saludable y conectado con adminlizett, el servidor Windows de QuickBooks.
  • 28 entidades modeladas y aproximadamente 130 herramientas.
  • 180 tests automatizados documentados.
  • Campaña real sobre Factronics USA: 28 lecturas de entidades y cuatro tipos de reporte.
  • 13/13 transacciones de prueba creadas y eliminadas correctamente.
  • 12/15 listas de prueba creadas y revertidas.
  • Correcciones hechas con evidencia real para reportes, orden de campos, estructuras anidadas y diferencias del SDK de QuickBooks.

Seguridad actual

Modo seguro

GATEWAY_READ_ONLY=true impide toda escritura automática. API pública deshabilitada. Aprobación requerida para cambios. Hermes ve herramientas de escritura pero no puede ejecutarlas.

Próximos pasos

  • Revertir tres listas de prueba (ItemService, ItemOtherCharge e ItemNonInventory) cuando se disponga del password de fecha de cierre de QuickBooks.
  • Corregir el filtro no bloqueante modifiedSince.
  • Mantener el gateway en solo lectura hasta cerrar limpieza, revisión de seguridad y UAT.
  • Aplicar en los perfiles definitivos listas reducidas de herramientas: contabilidad y onboarding no deben recibir acceso general a las 130 herramientas.
05 · Fleet de agentes

Seis perfiles construidos, listos para provisionar

Qué se construyó

Bundle desplegable con seis perfiles:

PerfilFunción
orchestratorRecibe solicitudes y las divide en tareas
contablePO a borrador de QuickBooks y control de discrepancias
inboxClasificación y borradores de correo con Brand Voice
operationsAuditoría de Asana y resúmenes operativos
onboardingClosed Won a validación y alta de cliente
gatewayMantenimiento controlado del código del gateway

Incluye reglas por perfil, límites de herramientas, auditoría, kill switch y kanban/Asana. El código está listo; provision.sh se ejecuta en la Etapa 3, una vez que Factronics tenga su cuenta OpenCode Go, para que los seis perfiles se validen con la cuenta que queda en producción.

Ajuste previo al despliegue

Ajuste previo al despliegue

En el working tree local del fleet hay un cambio sin commit que pone allow_all_users: true en el Telegram del orquestador, mientras que el comentario y la política indican acceso exclusivo para Jovan y Pablo. Se restaura la allowlist explícita antes de provisionar.

06 · Automatizaciones n8n

Plataforma activa, workflows en construcción

n8n desplegado y saludable. Se prepararon tres workflows como código:

  • WF-001: ingreso de órdenes de compra desde Gmail hacia Hermes/kanban.
  • WF-006: espejo de tareas kanban hacia Asana.
  • WF-007: reconciliación de cambios de Asana hacia Operations.

Validados estáticamente; se importan y activan en la instancia real durante la Etapa 3, junto con:

En Etapa 3
  • WF-002: Inbox Copilot.
  • WF-003: Operations Supervisor programado.
  • WF-004: Onboarding desde HubSpot.
  • WF-005: Kill Switch conectado al panel.
  • Credenciales reales de Gmail, HubSpot, Asana y Telegram.
  • Confirmar NODE_FUNCTION_ALLOW_BUILTIN=crypto.
  • Seleccionar workspace/proyecto/secciones reales de Asana.
  • Ejecutar un ciclo completo por cada dominio.
07 · Panel de control

Interfaz desplegada, conexión a datos en Etapa 3

Interfaz desplegada en fact-control.916.coordenadas.co con navegación, estados, feed, detalle de acciones y kill switch visual. Hoy opera sobre datos mock. En la Etapa 3 se conecta a datos reales:

  • Leer audit_log real.
  • Mostrar estados y resultados reales de los agentes.
  • Conectar las aprobaciones del gateway.
  • Conectar el kill switch a la tabla y al script de enforcement.
  • Integrar los estados de n8n, Gmail, HubSpot y QuickBooks.
  • Incorporar autenticación y roles para Jovan, contabilidad y administración.

Con esas conexiones, el panel pasa de interfaz desplegada a herramienta operativa.

08 · Backup y recuperación

Pipeline construido, restauración por validar

backup_qb.py genera snapshot VSS, copia .QBW/.TLG y carpetas, comprime y retiene 3 versiones (artefacto real ~2GB). En la Etapa 3 se completa con:

  • Incluir el backup nativo .QBB, que es el formato restaurable soportado por QuickBooks.
  • Verificar tamaño e integridad del ZIP después de la transferencia.
  • Copiar una segunda versión offsite a Google Drive de Factronics.
  • Configurar alerta si un mes no produce backup.
  • Registrar y probar el cron en el VPS, considerando que el servidor usa UTC.
  • Ejecutar un restore drill en una instancia no productiva de QuickBooks.
Por validar

El backup se declara operativo cuando el restore drill confirme que una copia es efectivamente restaurable.

09 · Configuración operativa

Puesta a punto

  • Cargar el token de Telegram de Factronics en el gateway de Hermes.
  • Crear los cuatro grupos acordados: Contable, Inbox, Operations y Onboarding, además del canal de control si se mantiene.
  • Confirmar la taxonomía A/B/C/D/X con Jovan.
  • Confirmar proyecto y secciones de Asana.
  • Definir usuarios, roles y responsables de aprobación.
  • Completar pruebas con órdenes de compra, correos y casos de onboarding reales.
  • Capacitar a Jovan y al equipo contable.
  • Ejecutar monitoreo intensivo durante los primeros cinco días de producción.
  • Medir ahorro, precisión y ROI sobre una ventana suficiente de uso real.
10 · Doc Extractor

El habilitador de WF-001

Microservicio Python/FastAPI, endpoint POST /extract, tres niveles: markitdown (PDF nativo), Tesseract OCR español/inglés (escaneos), visión pagada (fallback). Convierte órdenes de compra nativas o escaneadas en texto limpio para el agente contable.

Etapa 3

Habilita dos cosas: que WF-001 procese POs escaneadas y que el UAT de la Cláusula 1 pueda cubrir su caso de imagen. Con un modelo texto-only —el DeepSeek V4 Flash contractual— es la única vía para leer un documento sin capa de texto.

11 · Integración HubSpot

Bidireccional y autónoma: dos frentes en Etapa 3

Contrato exige integración bidireccional y autónoma en dos frentes:

WF-002 · Etapa 3

Inbox Copilot (WF-002)

Además de clasificar y redactar borradores, crea contactos y avanza etapas de deal en HubSpot cuando la confianza supera 0.85. Es la excepción explícita al principio de human-in-the-loop, acotada porque las notificaciones que dispara el cambio de etapa son texto fijo.

WF-004 · Etapa 3

Onboarding (WF-004)

El webhook de HubSpot “Closed Won” dispara el envío de formularios al cliente, la extracción del PDF de respuesta, la verificación de EIN y certificado de reventa en fuentes públicas y el alta del cliente en QuickBooks vía QBWC, con vuelta a HubSpot.

Ambos frentes requieren el conector de HubSpot y su Private App token. Cubren el agente Onboarding completo y la mitad de escritura del Inbox Copilot.

12 · Operations Supervisor / Asana

Auditoría de Asana y certificados de reventa

Operations Supervisor audita Asana, vigila fechas límite y responsables, envía resúmenes a Telegram (WF-003, schedule lun-vie 8:00). Incluye monitoreo recurrente de certificados de reventa (proceso nuevo del descubrimiento).

Etapa 3

Requiere conector de Asana con su API key, WF-003 y la tarea programada de certificados. El bundle del fleet aporta además WF-006 y WF-007 (espejo kanban ↔ Asana), que se activan en la misma etapa. Del set contratado WF-001 a WF-005, hoy existe WF-001.

13 · Estructura HCL de los cuatro agentes

Curación a mano, no RAG

Contrato define base curada a mano, no RAG: CONTRACT.md + prompt.md + reference/ por agente, más IDENTITY.md, ROUTING.md y shared/ con known_customers.yaml (34+ clientes), qb_config.md, security_policy.md, topic_routing.yaml, voice_jovan.md.

kb-mcp (FTS5 + vectores, 94 PDFs) es un componente adicional y más potente, pero no sustituye la HCL: es la HCL la que fija reglas operativas, umbrales de confianza (85% → alerta) y listas reducidas de herramientas por perfil. Vive en el bundle del fleet y se instala en la Etapa 3.

14 · Desvío de arquitectura

DeepSeek V4 Flash → OpenCode Go

Roadmap v1.1 fijó DeepSeek V4 Flash. Contrato: costos de API corren por Factronics desde día 1. Instancia desplegada usa OpenCode Go + glm-5.3 vía proxy, con credencial temporal de Coordenadas. Implicaciones:

  • Es un cambio respecto de la decisión de arquitectura registrada; conviene confirmarlo por escrito con Jovan.
  • El estimado de costos del contrato (~$20–40/mes OpenAI) se reemplaza por la suscripción a OpenCode Go: eso es lo que Factronics compra.
  • El traspaso de titularidad de la facturación de IA se completa en las Etapas 1–2.
Ruta a producción

Plan de cierre recomendado

1
Desbloqueo
2
Traspaso IA
3
Activación
4
UAT + Hipercare
01
Responsable: Factronics

Etapa 1 — Desbloqueo externo

  1. Comprar OpenCode Go.
  2. Nombrar administrador y definir presupuesto/límites.
  3. Entregar o cargar de forma segura la credencial.
Criterio de salidaLa cuenta, el consumo y la facturación pertenecen a Factronics.
02
Responsable: Coordenadas

Etapa 2 — Traspaso técnico de IA

  1. Sustituir OPENCODE_GO_API_KEY.
  2. Reiniciar y validar hermes-fact con glm-5.3.
  3. Probar respuesta general, conocimiento y QuickBooks de lectura.
  4. Verificar logs y retirar el acceso temporal.
Criterio de salidaHermes responde exclusivamente con la cuenta de Factronics.
03

Etapa 3 — Activación funcional

  1. Corregir la allowlist de Telegram y provisionar los seis perfiles con identidad y reglas de Factronics.
  2. Instalar la estructura HCL de los cuatro agentes: known_customers.yaml, qb_config.md, topic_routing.yaml, voice_jovan.md, umbrales de confianza y listas reducidas de herramientas por perfil.
  3. Desplegar el Doc Extractor (markitdown → Tesseract → visión) y probarlo con un PDF nativo y uno escaneado.
  4. Cargar credenciales reales: Telegram, dos cuentas de Gmail (accounting@ y jovan@), Asana, HubSpot.
  5. Construir e importar los workflows restantes: WF-002 (Inbox + HubSpot), WF-003 (Operations/Asana), WF-004 (Onboarding “Closed Won”), WF-005 (Kill Switch), más el monitoreo de certificados de reventa.
  6. Conectar el panel a datos reales: audit_log, estados de agentes, aprobaciones del gateway, y el Kill Switch a un enforcement real; agregar autenticación y roles.
  7. Cerrar el backup: .QBB restaurable, copia offsite, cron en el VPS y restore drill en una instancia no productiva.
Criterio de salida — Cláusula 2Kill Switch, Audit Log y draft-only verificados con una prueba real end-to-end; un flujo de prueba por dominio termina con evidencia en audit_log y sin acciones autónomas no autorizadas.
04

Etapa 4 — UAT, producción e hipercare

  1. Definir y ejecutar el UAT formal de 50 casos (Cláusula 1), con mezcla representativa y al menos un caso escaneado/imagen.
  2. Documentar el resultado: si ≥98%, se libera el pago final; si no, 15 días hábiles de corrección sin costo.
  3. Capacitación con Jovan y el equipo contable, y entrega de la documentación operativa final.
  4. Go-live con el gateway en solo lectura / draft-only, más 5 días de monitoreo intensivo.
  5. Habilitación gradual de escrituras aprobadas.
  6. Hipercare (Cláusula 3): 30 días con revisión quincenal de KPIs del QBWC; firma de aceptación de Jovan al día 30 → libera el 15% retenido.
Criterio de salidaUAT ≥98% aprobado por Jovan, operación estable durante el hipercare y firma de aceptación, con el sistema bajo cuentas propiedad de Factronics.
Conclusión

La ruta desde el estado actual hasta producción

Hermes, la base de conocimiento y la conexión con QuickBooks ya existen, están desplegados y probados con datos reales. El siguiente paso es de propiedad: Factronics compra OpenCode Go y el sistema pasa a operar con cuenta, credenciales y facturación propias.

Desde ahí, el camino está trazado en cuatro etapas y cada componente de este informe indica en cuál se resuelve. Queda una decisión que conviene formalizar con Jovan: el desvío de DeepSeek V4 Flash a OpenCode Go.