RAILSHOT.
Torna alla sala

Railshot

AI deployment & operations platform

Distribuire una app web costruita in locale in ambienti cloud e on-premises predisposti, e poi gestirla.

Una piattaforma IA di deployment e operazioni che porta una app web costruita in locale in ambienti cloud o on-premises predisposti e continua a gestirla.

Dal 2026.09.28 al 2026.10.04 · Concluso

Progetto di squadra · il mio contributo: pianificazione e implementazione della CI, cluster CSP e interfaccia Ansible, operazioni, code review e integrazione del team

SoftBank Hackathon 2026 powered by KOREC & ProgatePartecipante alle preliminari · selezione per la finale annunciata il 2026.10.26 (al 2026.10.07)

  • WebImplementato · hackathon
  • Server MCPImplementato · remoto · locale

Un passaggio di consegne verificato in modo indipendente, due ripristini riconciliati

Due casi dal October 3, 2026 al October 4, 2026, nel periodo della competizione. La sessione Codex usata per lo sviluppo e Jev e la diagnosi CI interne al prodotto stanno in colonne diverse.

Legenda completa

Come leggere · una grammatica per ogni caso

  • Le colonne indicano chi ha agito; dall’alto in basso scorre il tempo
  • Continua: un passaggio di consegne registrato o un passo successivo
  • Linea lapislazzuli spessa ↩: un rilievo che ha rimandato indietro il lavoro
  • Tratteggiata: non un’esecuzione registrata (una regola scritta, un consiglio senza autorità, un confine non verificato)
  • Rettangolo: un’azione
  • Arrotondato: uno stato osservato o un rilievo
  • Angolo piegato: un artefatto o una prova
  • Colonna a righe oblique: parti del prodotto in sviluppo (non gli agenti usati per costruirlo)

Caso 1 / 2 · Il lavoro sull’osservabilità è stato affidato a una sessione Codex separata e verificato a parte con fixture di fallimento

October 3, 2026

Il lavoro sull’osservabilità è stato affidato a una sessione Codex separata e verificato a parte con fixture di fallimento

  1. Sessione di lavoroSessione originale

    AzioneConsegnare un worktree e smettere di modificarlo

    • consegnaWorktree · fallimenti noti→ Prima i difetti consegnati: presunzione di cinque gate fissi · prove not-run di Q/L4 · regressione draft (Sessione di implementazione Codex)
  2. Sessione di lavoroSessione originale

    AzioneContratto: errore osservato ≠ ipotesi del modello, solo il percorso di deploy esistente

    • consegnaCriteri di completamento→ Un errore JSON · contratto delle prove + emitter Python · Node (Sessione di implementazione Codex)
  3. Agente di programmazioneSessione di implementazione Codex

    AzionePrima i difetti consegnati: presunzione di cinque gate fissi · prove not-run di Q/L4 · regressione draft

    • consegna→ Un errore JSON · contratto delle prove + emitter Python · Node (Sessione di implementazione Codex)
  4. Agente di programmazioneSessione di implementazione Codex

    AzioneUn errore JSON · contratto delle prove + emitter Python · Node

    • non un’esecuzione registrataSolo prove, nessun accesso in scrittura→ Jev classifica soltanto, senza autorità di correggere (Diagnosi CI · Jev)
    • consegnaPR · prove di release restituite→ PR #131 · prove di release fissate (Artefatti)
  5. In sviluppoDiagnosi CI · Jev

    Osservazione · rilievoJev classifica soltanto, senza autorità di correggere

  6. ArtefattiArtefatti

    ArtefattoPR #131 · prove di release fissate

    • consegnaVerificato fuori dalla sessione di implementazione→ Verifica indipendente: fixture di fallimento · consultazione della diagnosi · proprietà (Sessione originale)
  7. Sessione di lavoroSessione originale

    AzioneVerifica indipendente: fixture di fallimento · consultazione della diagnosi · proprietà

    • consegnaFallimenti noti immessi→ L1: esclusione di .env mancante in .dockerignore · L2: errore di sintassi (Diagnosi CI · Jev)
  8. In sviluppoDiagnosi CI · Jev

    Osservazione · rilievoL1: esclusione di .env mancante in .dockerignore · L2: errore di sintassi

  9. Sessione di lavoroSessione originale

    AzioneErrore di sintassi corretto dallo script di verifica stesso · reinviato

    • consegnaStesso percorso del servizio→ CI → immagine → GitOps → Argo → Pod · HTTPS confermato (Artefatti)
  10. ArtefattiArtefatti

    ArtefattoCI → immagine → GitOps → Argo → Pod · HTTPS confermato

Contesto
Il lavoro correggeva fallimenti della CI con cause nascoste (cinque fasi fisse presunte, un’impronta di build che mascherava la causa, prove NOT_RUN mancanti per controllo per Q/L4 disattivati e altro). Su richiesta dell’utente lo ha implementato una sessione Codex separata; la sessione originale ha smesso di modificare quel worktree e poi ha verificato il risultato immettendo essa stessa dei fallimenti.
Esito
I registri diagnostici hanno mostrato la causa di entrambi i fallimenti, e la parte di verifica ha corretto da sé l’errore di sintassi e confermato di nuovo lo stesso percorso fino a Pod e HTTPS. L’accettazione dell’implementazione e la pulizia delle risorse di test sono state completate a parte dalla sessione originale.
Limite
Non è un caso di successo della riparazione automatica (il tetto di tentativi di riparazione automatica era 0 in quel momento). Non c’è registro che Claude abbia fatto questa modifica, e la stessa esecuzione non prova un deployment su OpenStack. Lo stato di merge non indica un numero di approvazioni formali.
Fonti e limiti residui
  • Il passaggio di consegne e la verifica indipendente sono registri di lavoro interni e non sono collegati. Altre sessioni hanno mantenuto la titolarità del lavoro di integrazione, provider e deployment, e il passaggio di consegne indicava di non usare il checkout predefinito che conteneva ancora le modifiche dell’utente.
  • Il nucleo del contratto era tenere l’errore grezzo separato dall’ipotesi del modello, e il consiglio di retry dalla decisione effettiva di retry, in campi distinti.

October 4, 2026

Ciò che sembrava un’interruzione di GitHub è stato riprodotto e scomposto, e due modifiche di ripristino concorrenti sono state riconciliate in una

  1. In sviluppoAPI · chiamate a GitHub

    Osservazione · rilievoCommit remoto presente · 0 esecuzioni CI · riavvio per liveness

    • consegnaNon dato per scontato come interruzione di GitHub→ Riprodotto con GitHub mock: l’aggiornamento del branch riesce, la callback locale fallisce (Sessione di ripristino)
  2. Sessione di lavoroSessione di ripristino

    AzioneRiprodotto con GitHub mock: l’aggiornamento del branch riesce, la callback locale fallisce

    • consegna→ Verificare separatamente registrazione della sorgente · checkpoint locale · dispatch (Sessione di ripristino)
  3. Sessione di lavoroSessione di ripristino

    AzioneVerificare separatamente registrazione della sorgente · checkpoint locale · dispatch

    • consegna→ #189: salvare prima la run accettata · cercare la run esistente se la risposta va persa (Sessione di ripristino)
  4. ArtefattiArtefatti

    ArtefattoModifiche concorrenti: #185 terminazione · #186 checkpoint della sorgente

  5. Sessione di lavoroSessione di ripristino

    Azione#189: salvare prima la run accettata · cercare la run esistente se la risposta va persa

    • consegnaTre casi di regressione→ Regressioni: uscita dopo l’accettazione · errore di checkpoint · risposta persa (Artefatti)
  6. ArtefattiArtefatti

    ArtefattoRegressioni: uscita dopo l’accettazione · errore di checkpoint · risposta persa

    • consegna→ PR #189 unita · hash della sorgente · immagine · Argo · health confermati (Artefatti)
  7. Sessione di lavoroAltra sessione

    AzioneAnnullamento · concorrenza nel perimetro di questa sessione

    • consegnaEvita una doppia riesecuzione→ Rilettura della piattaforma ≠ risultato del cliente · non rieseguito (Artefatti)
  8. ArtefattiArtefatti

    ArtefattoPR #189 unita · hash della sorgente · immagine · Argo · health confermati

    • non un’esecuzione registrata→ Rilettura della piattaforma ≠ risultato del cliente · non rieseguito (Artefatti)
  9. ArtefattiArtefatti

    Regola · non verificataRilettura della piattaforma ≠ risultato del cliente · non rieseguito

Contesto
Il commit sorgente era sul remote, eppure la CI non è mai partita e l’API è stata riavviata dalla liveness. L’errore mostrato portava il nome di uno step di GitHub, ma in realtà poteva essere fallita la callback locale.
Esito
La sorgente e la run accettate vengono salvate prima che l’osservazione si fermi, e se la risposta va persa si cerca la run già avviata invece di fare un doppio dispatch. Un’asserzione fallita sull’immagine precedente è stata conservata come registro separato.
Limite
Senza il testo originale dell’eccezione, l’interruzione locale resta solo una spiegazione fondata. Ciò non significa che il collo di bottiglia di CPU o archiviazione sia stato risolto o che il deployment sul terminale del cliente sia riuscito, e la prevenzione di un nuovo dispatch non è generalizzata oltre i casi indicati.
Fonti e limiti residui
  • La riproduzione ha usato solo mock, senza scritture o retry reali.
  • I due registri di ripristino e la rilettura del deployment sono registri di lavoro interni; identificativi di clienti e operativi non sono inclusi.