Railshot
AI deployment & operations platform
將本機建置的網頁應用程式,部署到備妥的雲端與地端環境並維運。
把在本機建置的網頁應用程式部署到備妥的雲端或地端環境,並持續維運的 AI 部署與維運平台。
交接後的獨立檢查,兩項重疊復原的整理
大賽期間 2026年10月3–4日的兩個案例。開發所用的 Codex 工作階段,與產品內的 Jev 及 CI 診斷,分列於不同欄。
October 3, 2026
可觀測性實作交給另一個 Codex 工作階段,再以失敗 fixture 另行檢查
工作階段原工作階段
行動交出一個 worktree,並停止在該處編輯
- 交接worktree · 已知失敗→ 先處理交接的缺陷:固定五關卡假設 · Q/L4 未執行證據 · draft 回歸 (Codex 實作工作階段)
工作階段原工作階段
行動契約:觀測到的錯誤 ≠ 模型假設,只用既有部署路徑
- 交接完成條件→ 單一 JSON 錯誤 · 證據契約 + Python · Node 發送端 (Codex 實作工作階段)
程式開發代理Codex 實作工作階段
行動先處理交接的缺陷:固定五關卡假設 · Q/L4 未執行證據 · draft 回歸
- 交接→ 單一 JSON 錯誤 · 證據契約 + Python · Node 發送端 (Codex 實作工作階段)
程式開發代理Codex 實作工作階段
行動單一 JSON 錯誤 · 證據契約 + Python · Node 發送端
- 不是有記錄的執行僅限證據,無寫入權限→ Jev 只分類,無修正權限 (CI 診斷 · Jev)
- 交接回傳 PR · 發布證據→ PR #131 · 固定的發布證據 (產出物)
開發對象CI 診斷 · Jev
觀測 · 審查意見Jev 只分類,無修正權限
產出物產出物
產出物PR #131 · 固定的發布證據
- 交接在實作工作階段之外檢查→ 獨立檢查:失敗 fixture · 診斷查詢 · 擁有權 (原工作階段)
工作階段原工作階段
行動獨立檢查:失敗 fixture · 診斷查詢 · 擁有權
- 交接注入已知失敗→ L1:.dockerignore 缺少 .env 排除規則 · L2:語法錯誤 (CI 診斷 · Jev)
開發對象CI 診斷 · Jev
觀測 · 審查意見L1:.dockerignore 缺少 .env 排除規則 · L2:語法錯誤
- 退回L2 語法失敗→ 語法錯誤由檢查腳本自行修正 · 重新提交 (原工作階段)
工作階段原工作階段
行動語法錯誤由檢查腳本自行修正 · 重新提交
- 交接同一服務路徑→ CI → 映像檔 → GitOps → Argo → Pod · HTTPS 已確認 (產出物)
產出物產出物
產出物CI → 映像檔 → GitOps → Argo → Pod · HTTPS 已確認
- 背景
- 這項工作修正原因被掩蓋的 CI 失敗(假設固定五個階段、掩蓋原因的建置指紋、停用的 Q/L4 缺少逐項 NOT_RUN 證據等)。應使用者要求,由另一個 Codex 工作階段實作;原工作階段停止編輯該 worktree,之後自行注入失敗來檢查結果。
- 結果
- 診斷記錄揭露了兩次失敗的原因;檢查方自行修正語法錯誤,並沿同一路徑再次確認到 Pod 與 HTTPS。實作的採納與測試資源的清理,由原工作階段另行完成。
- 限制
- 這不是自動修復的成功案例(此時自動修復嘗試上限為 0)。沒有記錄顯示此變更由 Claude 做出,同一次執行也不能證明 OpenStack 部署。已合併狀態不代表正式核准的次數。
依據與尚存的限制
- 交接與獨立檢查屬內部工作記錄,未附連結。整合、供應商與部署工作仍由其他工作階段擁有;交接時也註明不要使用仍留有使用者變更的預設 checkout。
- 契約的核心是把原始錯誤與模型假設、重試建議與實際重試決定,分別放在不同欄位。
October 4, 2026
重現並拆解看似 GitHub 故障的錯誤,並將兩項同時進行的復原變更整併為一
開發對象API · GitHub 呼叫
觀測 · 審查意見遠端有提交 · CI 執行 0 次 · liveness 重新啟動
- 交接不預設為 GitHub 故障→ 以 mock GitHub 重現:分支更新成功,本機 callback 失敗 (復原工作階段)
工作階段復原工作階段
行動以 mock GitHub 重現:分支更新成功,本機 callback 失敗
- 交接→ 分別檢查原始碼註冊 · 本機檢查點 · 分派 (復原工作階段)
工作階段復原工作階段
行動分別檢查原始碼註冊 · 本機檢查點 · 分派
- 交接→ #189:先儲存已受理的 run · 回應遺失時查詢既有 run (復原工作階段)
產出物產出物
產出物同時進行的變更:#185 終止處理 · #186 原始碼檢查點
- 退回重疊的復原行為→ #189:先儲存已受理的 run · 回應遺失時查詢既有 run (復原工作階段)
工作階段復原工作階段
行動#189:先儲存已受理的 run · 回應遺失時查詢既有 run
- 交接三個回歸情境→ 回歸測試:受理後結束 · 檢查點錯誤 · 回應遺失 (產出物)
產出物產出物
產出物回歸測試:受理後結束 · 檢查點錯誤 · 回應遺失
- 交接→ PR #189 已合併 · 原始碼雜湊 · 映像檔 · Argo · health 已確認 (產出物)
工作階段另一個工作階段
行動取消 · 並行範圍歸此工作階段所有
- 交接避免重複的重新執行→ 平台回讀 ≠ 客戶結果 · 未重新執行 (產出物)
產出物產出物
產出物PR #189 已合併 · 原始碼雜湊 · 映像檔 · Argo · health 已確認
- 不是有記錄的執行→ 平台回讀 ≠ 客戶結果 · 未重新執行 (產出物)
產出物產出物
規範 · 未確認平台回讀 ≠ 客戶結果 · 未重新執行
- 背景
- 原始碼提交已在遠端,但 CI 始終未啟動,API 也被 liveness 重新啟動。顯示的錯誤帶有 GitHub 步驟名稱,但實際失敗的可能是本機 callback。
- 結果
- 停止觀測前先儲存已受理的原始碼與 run;回應遺失時,查詢已啟動的 run,而不是分派兩次。在前一個映像檔上失敗的斷言另外留存記錄。
- 限制
- 由於沒有原始例外訊息,本機中斷只能作為有依據的解釋。這不代表已解決 CPU 或儲存瓶頸,也不代表部署到客戶終端已成功;防止重複分派也不推及所列情境之外。
依據與尚存的限制
- 重現只使用 mock,沒有實際寫入或重試。
- 兩份復原記錄與部署回讀屬內部工作記錄;未收錄客戶與維運識別碼。