Railshot
AI deployment & operations platform
Desplegar en entornos en la nube y on-premises preparados una aplicación web creada en local, y luego operarla.
Una plataforma de IA de despliegue y operación que lleva una aplicación web creada en local a entornos en la nube u on-premises preparados y la mantiene en funcionamiento.
Un traspaso verificado de forma independiente, dos recuperaciones conciliadas
Dos casos del periodo October 3, 2026 to October 4, 2026, durante el concurso. La sesión de Codex usada para el desarrollo y el diagnóstico de Jev y de la CI dentro del producto ocupan columnas distintas.
October 3, 2026
El trabajo de observabilidad se entregó a una sesión de Codex aparte y se comprobó por separado con fixtures de fallo
Sesión de trabajoSesión original
AcciónEntregar un worktree y dejar de editarlo
- traspasoWorktree · fallos conocidos→ Primero los defectos traspasados: supuesto de cinco puertas fijas · evidencia de no ejecución de Q/L4 · regresión de draft (Sesión de implementación de Codex)
Sesión de trabajoSesión original
AcciónContrato: error observado ≠ hipótesis del modelo, solo la ruta de despliegue existente
- traspasoCriterios de terminado→ Un contrato único de error JSON · evidencia + emisores Python · Node (Sesión de implementación de Codex)
Agente de programaciónSesión de implementación de Codex
AcciónPrimero los defectos traspasados: supuesto de cinco puertas fijas · evidencia de no ejecución de Q/L4 · regresión de draft
- traspaso→ Un contrato único de error JSON · evidencia + emisores Python · Node (Sesión de implementación de Codex)
Agente de programaciónSesión de implementación de Codex
AcciónUn contrato único de error JSON · evidencia + emisores Python · Node
- no es una ejecución registradaSolo evidencia, sin acceso de escritura→ Jev solo clasifica, sin autoridad para corregir (Diagnóstico de CI · Jev)
- traspasoPR · evidencia de versión devuelta→ PR #131 · evidencia de versión fijada (Artefactos)
En desarrolloDiagnóstico de CI · Jev
Observación · hallazgoJev solo clasifica, sin autoridad para corregir
ArtefactosArtefactos
ArtefactoPR #131 · evidencia de versión fijada
- traspasoComprobado fuera de la sesión de implementación→ Comprobación independiente: fixtures de fallo · consulta del diagnóstico · propiedad (Sesión original)
Sesión de trabajoSesión original
AcciónComprobación independiente: fixtures de fallo · consulta del diagnóstico · propiedad
- traspasoFallos conocidos introducidos→ L1: falta la exclusión de .env en .dockerignore · L2: error de sintaxis (Diagnóstico de CI · Jev)
En desarrolloDiagnóstico de CI · Jev
Observación · hallazgoL1: falta la exclusión de .env en .dockerignore · L2: error de sintaxis
- devueltoFallo de sintaxis L2→ Error de sintaxis corregido por el propio script de comprobación · reenviado (Sesión original)
Sesión de trabajoSesión original
AcciónError de sintaxis corregido por el propio script de comprobación · reenviado
- traspasoMisma ruta de servicio→ CI → imagen → GitOps → Argo → Pod · HTTPS confirmado (Artefactos)
ArtefactosArtefactos
ArtefactoCI → imagen → GitOps → Argo → Pod · HTTPS confirmado
- Contexto
- El trabajo corregía fallos de CI cuyas causas quedaban ocultas (cinco etapas supuestamente fijas, una huella de build que tapaba la causa, la falta de evidencia NOT_RUN por comprobación para Q/L4 desactivados, entre otras). A petición del usuario, una sesión de Codex aparte lo implementó; la sesión original dejó de editar ese worktree y luego comprobó el resultado introduciendo fallos ella misma.
- Resultado
- Los registros de diagnóstico revelaron la causa de ambos fallos, y el lado de comprobación corrigió él mismo el error de sintaxis y volvió a confirmar la misma ruta hasta el Pod y el HTTPS. La aceptación de la implementación y la limpieza de los recursos de prueba las terminó aparte la sesión original.
- Límite
- No es un caso de éxito de reparación automática (el tope de intentos de reparación automática era 0 en ese momento). No hay registro de que Claude hiciera este cambio, y la misma ejecución no prueba el despliegue en OpenStack. El estado fusionado no significa un número de aprobaciones formales.
Fuentes y límites restantes
- El traspaso y la comprobación independiente son registros de trabajo internos y no se enlazan. Otras sesiones conservaron la propiedad del trabajo de integración, proveedores y despliegue, y el traspaso indicaba no usar el checkout por defecto que aún tenía cambios del usuario.
- El núcleo del contrato era separar en campos distintos el error en bruto de la hipótesis del modelo, y el consejo de reintento de la decisión real de reintentar.
October 4, 2026
Lo que parecía una caída de GitHub se reprodujo y se separó, y dos cambios de recuperación concurrentes se conciliaron en uno
En desarrolloAPI · llamadas a GitHub
Observación · hallazgoCommit remoto presente · 0 ejecuciones de CI · reinicio por liveness
- traspasoNo se da por hecho que sea una caída de GitHub→ Reproducido con un GitHub simulado: la actualización de la rama tiene éxito, el callback local falla (Sesión de recuperación)
Sesión de trabajoSesión de recuperación
AcciónReproducido con un GitHub simulado: la actualización de la rama tiene éxito, el callback local falla
- traspaso→ Comprobar por separado el registro de la fuente · el checkpoint local · el dispatch (Sesión de recuperación)
Sesión de trabajoSesión de recuperación
AcciónComprobar por separado el registro de la fuente · el checkpoint local · el dispatch
- traspaso→ #189: guardar primero el run aceptado · buscar el run existente si se pierde la respuesta (Sesión de recuperación)
ArtefactosArtefactos
ArtefactoCambios concurrentes: #185 terminación · #186 checkpoint de la fuente
- devueltoComportamientos de recuperación superpuestos→ #189: guardar primero el run aceptado · buscar el run existente si se pierde la respuesta (Sesión de recuperación)
Sesión de trabajoSesión de recuperación
Acción#189: guardar primero el run aceptado · buscar el run existente si se pierde la respuesta
- traspasoTres casos de regresión→ Regresiones: salida tras aceptar · error de checkpoint · respuesta perdida (Artefactos)
ArtefactosArtefactos
ArtefactoRegresiones: salida tras aceptar · error de checkpoint · respuesta perdida
- traspaso→ PR #189 fusionado · hash de origen · imagen · Argo · health confirmados (Artefactos)
Sesión de trabajoOtra sesión
AcciónAlcance de cancelación · concurrencia propiedad de esta sesión
- traspasoEvita una reejecución duplicada→ Relectura de la plataforma ≠ resultado del cliente · no se volvió a ejecutar (Artefactos)
ArtefactosArtefactos
ArtefactoPR #189 fusionado · hash de origen · imagen · Argo · health confirmados
- no es una ejecución registrada→ Relectura de la plataforma ≠ resultado del cliente · no se volvió a ejecutar (Artefactos)
ArtefactosArtefactos
Regla · sin verificarRelectura de la plataforma ≠ resultado del cliente · no se volvió a ejecutar
- Contexto
- El commit de origen estaba en el remoto, pero la CI nunca empezó y la API fue reiniciada por la liveness. El error mostrado llevaba un nombre de paso de GitHub, pero quizá había fallado en realidad el callback local.
- Resultado
- La fuente y el run aceptados se guardan antes de que se detenga la observación, y si se pierde la respuesta se busca el run ya iniciado en lugar de hacer dispatch dos veces. Una aserción que fallaba en la imagen anterior se conservó como registro aparte.
- Límite
- Sin el texto original de la excepción, la interrupción local queda solo como una explicación fundada. No significa que se resolviera el cuello de botella de CPU o almacenamiento ni que el despliegue en el terminal del cliente tuviera éxito, y la prevención del redispatch no se generaliza más allá de los casos nombrados.
Fuentes y límites restantes
- La reproducción solo usó mocks, sin escrituras ni reintentos reales.
- Los dos registros de recuperación y la relectura del despliegue son registros de trabajo internos; no se incluyen identificadores de clientes ni operativos.