
깨운 횟수가 아니라, 실행이 시작됐는지
이슈를 배정받는 작업 에이전트는 Kiki가 다루는 개발 대상이고, 이를 고친 코딩 에이전트의 배정 · 모델은 기록에 없습니다.
April 28, 2026
문맥 없는 깨우기를, 이슈와 담당자를 담은 배정 요청으로 바꿨습니다
개발 대상작업 에이전트
관측 · 지적배정됨 · lastRunAt 비어 있음 · wakeup만 반복
- 전달실행 시작 여부 확인→ 깨우기 방식 비교: wakeup vs 이슈 + 담당자 PATCH (개발자)
사람개발자
행동깨우기 방식 비교: wakeup vs 이슈 + 담당자 PATCH
- 전달이슈 문맥을 담아 호출→ 수동 PATCH 뒤, 67시간 멈춘 이슈 1건이 5초 안에 대기열 등록 (작업 에이전트)
개발 대상작업 에이전트
관측 · 지적수동 PATCH 뒤, 67시간 멈춘 이슈 1건이 5초 안에 대기열 등록
- 기록된 실행 아님확인한 범위→ 대기열 등록 ≠ 작업 완료 · MTTR 측정 안 함 (산출물)
- 되돌린 지적문맥 없는 호출이 원인→ assignment PATCH로 복구 · 연속 무응답 상한 · cooldown (복구 코드 변경)
산출물산출물
지침 · 미확인대기열 등록 ≠ 작업 완료 · MTTR 측정 안 함
작업 세션복구 코드 변경
행동assignment PATCH로 복구 · 연속 무응답 상한 · cooldown
- 전달→ 회귀: 상한 · 새 활동 시 리셋 · legacy 경로 (산출물)
산출물산출물
산출물회귀: 상한 · 새 활동 시 리셋 · legacy 경로
- 전달→ 병합 · 플러그인에 연결 (산출물)
산출물산출물
산출물병합 · 플러그인에 연결
- 배경
- 이슈가 배정됐는데도 실행 기록(lastRunAt)이 비어 있었고, 문맥 없는 wakeup만 반복되고 있었습니다. 배정과 깨우기 활동이 곧 실행이라는 가정이 깨진 것이 관측의 핵심이었습니다.
- 결과
- 복구는 이슈와 담당자를 담은 배정 요청으로 바뀌었고, 연속 무응답이 상한에 닿으면 재호출을 멈춥니다. 플러그인 처리기는 실제로 이 배정 요청을 받습니다.
- 한계
- 67시간 · 5초는 수정 전 수동 PATCH 진단에서 나온 관측이며, 수정을 적용한 뒤 다시 잰 기록은 없습니다. 대기열 등록까지의 기록이며 작업 완료 · 평균 복구 시간 · 생산성 변화가 아닙니다. 같은 작업 패스의 교차 저장소 동기화에는 GitHub Actions 결제 한도 때문에 관리자 병합이 있었으므로, 전체 CI가 통과했다고 그리지 않았습니다.
근거와 남은 한계
- April 29, 2026 doctor 점검은 설치 smoke이며 일상 운영 E2E가 아닙니다.
- 플러그인 번들의 배포 · 컨테이너 · 자격 증명은 외부 담당자 소유입니다. Kiki가 서비스 전체를 배포했다는 뜻이 아닙니다.
- 구현 하위 에이전트에 대상 브랜치를 명시하고 반환된 commit을 확인하라는 지침은 있지만, 이 수정에 그 절차가 적용된 기록은 확인하지 않았습니다.