RAILSHOT.
Volver a la sala

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.

2026.09.28 — 2026.10.04 · Finalizado

Proyecto en equipo · mi parte: planificación e implementación de la CI, clústeres CSP e interfaz de Ansible, operación, revisión de código del equipo e integración

SoftBank Hackathon 2026 powered by KOREC & ProgateParticipante en la fase preliminar · selección para la final que se anunciará el 2026.10.26 (a fecha de 2026.10.07)

  • WebImplementado · hackatón
  • Servidor MCPImplementado · remoto · local

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.

Leyenda completa

Cómo leer · una misma gramática para cada caso

  • Las columnas indican quién actuó; de arriba abajo, el tiempo
  • Continua: un traspaso registrado o un paso siguiente
  • ↩ lapislázuli grueso: un hallazgo que devolvió el trabajo
  • Discontinua: no es una ejecución registrada (una regla escrita, un consejo sin autoridad, una frontera sin verificar)
  • Rectángulo: una acción
  • Redondeado: un estado observado o un hallazgo
  • Esquina doblada: un artefacto o una evidencia
  • Columna rayada: partes del producto en desarrollo (no los agentes usados para construirlo)

Caso 1 / 2 · El trabajo de observabilidad se entregó a una sesión de Codex aparte y se comprobó por separado con fixtures de fallo

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

  1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. En desarrolloDiagnóstico de CI · Jev

    Observación · hallazgoJev solo clasifica, sin autoridad para corregir

  6. 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)
  7. 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)
  8. En desarrolloDiagnóstico de CI · Jev

    Observación · hallazgoL1: falta la exclusión de .env en .dockerignore · L2: error de sintaxis

  9. 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)
  10. 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

  1. 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)
  2. 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)
  3. 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)
  4. ArtefactosArtefactos

    ArtefactoCambios concurrentes: #185 terminación · #186 checkpoint de la fuente

  5. 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)
  6. ArtefactosArtefactos

    ArtefactoRegresiones: salida tras aceptar · error de checkpoint · respuesta perdida

    • traspaso→ PR #189 fusionado · hash de origen · imagen · Argo · health confirmados (Artefactos)
  7. 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)
  8. 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)
  9. 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.