RAILSHOT.
전시실로

Railshot

AI deployment & operations platform

로컬에서 만든 웹 앱을, 준비된 클라우드와 온프레미스에 배포하고 운영합니다.

로컬에서 만든 웹 앱을 클라우드나 온프레미스에 배포하고 운영까지 이어 주는 AI 배포 · 운영 플랫폼입니다.

2026.09.28 — 2026.10.04 · 종료

팀 프로젝트 · 맡은 일: CI 기획·구현, CSP 클러스터·Ansible 인터페이스, 운영, 팀 코드 리뷰·통합

SoftBank Hackathon 2026 powered by KOREC & Progate예선 참가 · 본선 선발 발표 예정 10.26 (10.07 기준)

  • 웹구현 · 해커톤
  • MCP 서버구현 · 원격 · 로컬

넘겨준 구현의 독립 확인, 겹친 복구의 정리

대회 중 October 3, 2026 to October 4, 2026에 있었던 두 사건입니다. 개발에 쓴 Codex 세션과 제품 안의 Jev · CI 진단은 다른 열에 두었습니다.

범례 전체

읽는 법 · 모든 사건에 같은 규칙

  • 세로 열은 누가 했는지, 위에서 아래로는 시간 순서
  • 실선: 기록된 전달 · 다음 단계
  • 굵은 남색 선 ↩: 작업을 되돌려 보낸 지적
  • 점선: 기록된 실행이 아님 (지침 · 권한 없는 가설 · 확인 안 한 경계)
  • 사각형: 행동
  • 둥근 칸: 관측된 상태 · 지적
  • 접힌 모서리: 산출물 · 증거
  • 빗금 열: 개발 대상 제품 안의 구성 요소 (개발에 쓴 에이전트가 아님)

사례 1 / 2 · 관측성 구현을 별도 Codex 세션에 넘기고, 실패 fixture로 따로 확인했습니다

October 3, 2026

관측성 구현을 별도 Codex 세션에 넘기고, 실패 fixture로 따로 확인했습니다

  1. 작업 세션원래 세션

    행동worktree 하나를 넘기고 그곳 편집 중단

    • 전달worktree · 알려진 실패→ 넘겨받은 결함부터: 5단계 고정 가정 · Q/L4 미실행 구분 · draft 회귀 (Codex 구현 세션)
  2. 작업 세션원래 세션

    행동계약: 관측된 오류 ≠ 모델 가설, 기존 배포 경로만

    • 전달완료 조건→ JSON 오류 · 증거 계약 하나 + Python · Node emitter (Codex 구현 세션)
  3. 코딩 에이전트Codex 구현 세션

    행동넘겨받은 결함부터: 5단계 고정 가정 · Q/L4 미실행 구분 · draft 회귀

    • 전달→ JSON 오류 · 증거 계약 하나 + Python · Node emitter (Codex 구현 세션)
  4. 코딩 에이전트Codex 구현 세션

    행동JSON 오류 · 증거 계약 하나 + Python · Node emitter

    • 기록된 실행 아님증거만, 쓰기 권한 없음→ Jev는 분류만, 수정 권한 없음 (CI 진단 · Jev)
    • 전달PR · release 증거 반환→ PR #131 · 고정 release 증거 (산출물)
  5. 개발 대상CI 진단 · Jev

    관측 · 지적Jev는 분류만, 수정 권한 없음

  6. 산출물산출물

    산출물PR #131 · 고정 release 증거

    • 전달구현 세션 밖에서 확인→ 독립 확인: 실패 fixture · 진단 조회 · 소유권 (원래 세션)
  7. 작업 세션원래 세션

    행동독립 확인: 실패 fixture · 진단 조회 · 소유권

    • 전달알려진 실패 투입→ L1: .dockerignore의 .env 제외 규칙 누락 · L2: 문법 오류 (CI 진단 · Jev)
  8. 개발 대상CI 진단 · Jev

    관측 · 지적L1: .dockerignore의 .env 제외 규칙 누락 · L2: 문법 오류

  9. 작업 세션원래 세션

    행동문법 오류는 검증 스크립트가 직접 수정 · 재제출

    • 전달같은 서비스 경로→ CI → 이미지 → GitOps → Argo → Pod · HTTPS 확인 (산출물)
  10. 산출물산출물

    산출물CI → 이미지 → GitOps → Argo → Pod · HTTPS 확인

배경
CI 실패 원인이 가려지던 문제(고정된 5단계 가정, 원인을 덮는 빌드 지문, 선택 검사 Q/L4의 미실행 구분 누락 등)를 고치는 작업이었습니다. 사용자의 요청으로 구현은 별도 Codex 세션이 맡았고, 원래 세션은 그 worktree의 편집을 멈춘 뒤 결과를 직접 실패를 넣어 확인했습니다.
결과
두 실패 모두 진단 기록으로 원인이 드러났고, 문법 오류는 검증 쪽이 직접 고쳐 같은 경로로 Pod와 HTTPS까지 다시 확인했습니다. 구현 수용과 테스트 자원 정리는 원래 세션이 따로 마무리했습니다.
한계
자동 수정의 성공 사례가 아닙니다(이 시점의 자동 수정 시도 상한은 0). 이 변경을 Claude가 만들었다는 기록은 없고, 같은 실행이 OpenStack 배포를 증명하지도 않습니다. 병합 상태는 공식 승인 수를 뜻하지 않습니다.
근거와 남은 한계
  • 인계와 독립 확인은 내부 작업 기록이라 링크하지 않았습니다. 다른 세션들은 통합 · provider · 배포 작업을 계속 소유했고, 사용자 변경이 남아 있던 기본 checkout은 쓰지 않도록 인계에 적혀 있었습니다.
  • 원본 오류와 모델 가설, 재시도 조언과 실제 재시도 결정을 다른 필드로 나누는 것이 계약의 핵심이었습니다.

October 4, 2026

GitHub 장애처럼 보인 오류를 재현해 나누고, 동시에 들어온 두 복구 변경을 하나로 맞췄습니다

  1. 개발 대상API · GitHub 호출

    관측 · 지적원격 commit 있음 · CI 실행 0 · liveness 재시작

    • 전달GitHub 장애로 단정하지 않음→ mock GitHub로 재현: 브랜치 갱신은 성공, 로컬 callback 실패 (복구 세션)
  2. 작업 세션복구 세션

    행동mock GitHub로 재현: 브랜치 갱신은 성공, 로컬 callback 실패

    • 전달→ 소스 등록 · 로컬 체크포인트 · dispatch를 따로 확인 (복구 세션)
  3. 작업 세션복구 세션

    행동소스 등록 · 로컬 체크포인트 · dispatch를 따로 확인

    • 전달→ #189: 수락된 run을 먼저 저장 · 응답 유실 시 기존 run 조회 (복구 세션)
  4. 산출물산출물

    산출물동시 변경: #185 종료 처리 · #186 소스 체크포인트

  5. 작업 세션복구 세션

    행동#189: 수락된 run을 먼저 저장 · 응답 유실 시 기존 run 조회

    • 전달세 경우 회귀→ 회귀: 수락 뒤 종료 · 체크포인트 오류 · 응답 유실 (산출물)
  6. 산출물산출물

    산출물회귀: 수락 뒤 종료 · 체크포인트 오류 · 응답 유실

    • 전달→ PR #189 병합 · 소스 해시 · 이미지 · Argo · health 확인 (산출물)
  7. 작업 세션다른 세션

    행동취소 · 동시성 범위는 이 세션 소유

    • 전달중복 재실행 막음→ 플랫폼 확인 ≠ 고객 결과 · 재실행 안 함 (산출물)
  8. 산출물산출물

    산출물PR #189 병합 · 소스 해시 · 이미지 · Argo · health 확인

    • 기록된 실행 아님→ 플랫폼 확인 ≠ 고객 결과 · 재실행 안 함 (산출물)
  9. 산출물산출물

    지침 · 미확인플랫폼 확인 ≠ 고객 결과 · 재실행 안 함

배경
소스 commit은 원격에 있는데 CI가 시작되지 않은 채 API가 liveness로 재시작됐습니다. 표시된 오류에는 GitHub 단계 이름이 붙어 있었지만, 실제로는 로컬 callback이 실패했을 수 있었습니다.
결과
관측을 멈추기 전에 수락된 소스와 run을 먼저 저장하고, 응답이 유실되면 두 번 dispatch하는 대신 이미 시작된 run을 찾습니다. 이전 이미지에서 실패한 단언은 별도 기록으로 남겼습니다.
한계
원래 예외 원문이 없어서 로컬 중단은 근거 있는 설명으로만 남겼습니다. CPU · 저장 병목을 해결했다거나 고객 터미널 배포까지 성공했다는 뜻이 아니며, 이름 붙인 경우 밖의 재dispatch 방지를 일반화하지 않았습니다.
근거와 남은 한계
  • 재현은 실제 쓰기나 재시도 없이 mock으로만 했습니다.
  • 두 복구 기록과 배포 확인은 내부 작업 기록이며, 고객 · 운영 식별자는 싣지 않았습니다.