CRUMB 로고의 식빵 캐릭터만 남긴 이미지: 오른쪽 위 모서리를 한 입 베어 문, 웃는 얼굴의 식빵
전시실로

CRUMB

Generative Game Studio · Demo

한 줄 게임 기획에서 플레이 가능한 초안까지, 에이전트의 작업을 보면서 개입합니다.

CRUMB는 캐주얼 게임 프로토타이핑을 위한 멀티 에이전트 스튜디오 하네스입니다.

설계·개발 · AI 코딩 에이전트 활용

  • CLI로컬 데모
  • 웹 Studio로컬 데모

조용히 끝난 실행의 관측, 통합에서 잡은 누락

공개 데모 저장소의 두 사건입니다. Planner · Builder · Verifier는 데모 안의 actor이며, 이 보기의 코딩 에이전트가 아닙니다.

범례 전체

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

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

사례 1 / 2 · exit 0으로 끝난 실행이 실제로 일했는지 보이게 만들었습니다

May 2, 2026

exit 0으로 끝난 실행이 실제로 일했는지 보이게 만들었습니다

  1. 개발 대상데모의 actor

    관측 · 지적transcript 이벤트 0 · exit 0

    • 전달0 이벤트인데 exit 0→ "끝났지만 일하지 않음"을 진행과 구분하기 (개발자)
  2. 사람개발자

    행동"끝났지만 일하지 않음"을 진행과 구분하기

    • 전달진단 기록부터→ spawn 전 · 후 진단: adapter · prompt 유무 · exit · 시간 · 출력 크기 (코드 변경)
  3. 작업 세션코드 변경

    행동spawn 전 · 후 진단: adapter · prompt 유무 · exit · 시간 · 출력 크기

    • 전달→ commit 6341898 (산출물)
    • 전달진단 출력→ planner가 입력을 기다리고 있었음 (데모의 actor)
  4. 산출물산출물

    산출물commit 6341898

  5. 개발 대상데모의 actor

    관측 · 지적planner가 입력을 기다리고 있었음

  6. 작업 세션코드 변경

    행동실제 goal과 시작 지시 전달 · reducer 검사로 prompt 형태 확인

    • 전달다음 실행→ stdout에 JSON만, event writer는 호출 안 됨 (데모의 actor)
  7. 개발 대상데모의 actor

    관측 · 지적stdout에 JSON만, event writer는 호출 안 됨

  8. 작업 세션코드 변경

    행동이벤트를 내는 actor에 event protocol 문서 주입

    • 전달→ commit 08ecb07 (산출물)
  9. 산출물산출물

    산출물commit 08ecb07

배경
실제 subprocess smoke 실행이 transcript 이벤트 없이 끝났습니다. exit 0만으로는 일을 했는지 알 수 없어서 실행 전후의 진단 기록부터 남겼고, 첫 수정 뒤에도 다른 실패가 나와 한 번 더 고쳤습니다.
결과
진단 기록으로 "성공 종료했지만 일하지 않은 실행"이 진행과 구분됐고, 첫 수정 뒤 남은 실패도 더 구체적인 관측으로 이어져 두 번째 수정이 됐습니다.
한계
당시 실행을 다시 돌리거나 원래 실행 기록을 가져오지 않았습니다. 진단 기록의 원문(출력 미리보기 등)은 싣지 않았습니다.
근거와 남은 한계

May 3, 2026

두 작업 흐름을 합치며 누락된 피드 formatter를 복원했습니다

  1. 작업 세션피드 · 레이아웃 흐름

    행동#140: 피드 formatter 추가

    • 전달→ 두 흐름을 4분할 레이아웃으로 조립 (통합)
  2. 작업 세션scorecard · event detail 흐름

    행동scorecard 작업 (오래된 base)

    • 전달→ 두 흐름을 4분할 레이아웃으로 조립 (통합)
  3. 코딩 에이전트통합

    행동두 흐름을 4분할 레이아웃으로 조립

    • 전달통합 회귀→ 오래된 base가 #140 formatter를 되돌림 (통합)
  4. 코딩 에이전트통합

    관측 · 지적오래된 base가 #140 formatter를 되돌림

  5. 코딩 에이전트통합

    행동#140 formatter 복원

    • 전달합친 diff→ #145 (56f6f1b) · 로컬 lint · typecheck · test · build · 화면 확인 (산출물)
  6. 산출물산출물

    산출물#145 (56f6f1b) · 로컬 lint · typecheck · test · build · 화면 확인

    • 전달후속 작업 인계→ 인계 기록: #142는 다른 흐름 소유 · #146 CI 진행 중 (산출물)
  7. 산출물산출물

    산출물인계 기록: #142는 다른 흐름 소유 · #146 CI 진행 중

배경
Studio 작업은 피드 · 레이아웃, scorecard · event detail, 테마 같은 흐름으로 나뉘어 있었습니다. #145가 병합된 뒤 다음 흐름을 위한 인계 기록에, 다른 흐름이 소유한 작업과 아직 남은 작업이 적혔습니다.
결과
#145는 scorecard · event detail 작업과 레이아웃 수정을 합치면서 되돌려진 피드 formatter를 복원했고, 로컬 lint · typecheck · format · test · build와 화면 확인 기록을 남겼습니다.
한계
로컬 검사는 다시 실행하지 않았습니다. 인계 기록 시점에 #146은 CI 진행 중이었고 이후 병합됐으므로(109da28), 그 스냅숏을 통과로 그리지 않았습니다. 흐름별 모델은 기록에 없습니다.
근거와 남은 한계