← 작업일지

2026-05-08 · v1.0.2

2026.05.08 작업일지 v1.0.2

loop-run 첫 실전 테스트 + 버그 발견 + loop-judge v2 (3-way 토론 + 다수결)

이전 버전 이후 추가 작업

v1.0.1까지: 3-way 프로토콜 버그 4개 수정 + loop-judge/loop-run 초기 구현 완료.

v1.0.2: loop-run을 실전에 처음 돌렸고, 버그 하나를 즉시 발견했다. 고치는 김에 loop-judge 자체도 한 단계 진화시켰다.

loop-run 첫 실전 테스트 — 버그 발굴

parking-lot 항목(“단어요 Android 파이프라인 재설계”)을 목표로 loop-run 첫 실행.

결과: PARTIAL (5개 task, 5개 FAIL)

버그 발견 — judge 판정값 오염:

loop-run.sh에서 judge 결과를 캡처할 때:

JUDGE_RESULT=$(cat "$OUTPUT_FILE" | "$SCRIPTS_DIR/loop-judge.sh" ...)

loop-judge.sh 내부에서 codex-directive.sh를 호출하면 “ok\n✅ directive sent to Codex”가 stdout으로 출력됐고, 이게 JUDGE_RESULT에 섞였다. 실제 판정은 SUCCESS였지만 비교 대상은 "ok\n✅ ...\nSUCCESS"== "SUCCESS" 조건 불통과.

수정: codex-directive.sh 호출에 >/dev/null 2>&1 추가.

2차 문제 — 목표 타입 미스매치: “설계/조사” 성격의 목표는 loop-run이 잘 처리 못 함. PLAN 단계에서 bash 명령으로는 쪼개지지만, macmini SSH 라이트백이 120초 내에 안 돌아오는 경우가 많아 타임아웃. loop-run은 “파일 확인해줘”, “빌드 돌려줘” 같은 명확한 실행형 목표에 맞다.

loop-judge v2 — 3-way 토론 + 다수결

v1은 2-way (맥북 + 맥미니). v2 변경:

1. WSL 자동 감지

if ssh -o ConnectTimeout=3 -o BatchMode=yes wsl true 2>/dev/null; then
  WSL_ONLINE=true  # 3-way 모드
else
  WSL_ONLINE=false # 2-way 모드 (맥북+맥미니)
fi

WSL이 꺼져있으면 자동으로 2-way로 폴백. 사람이 신경 쓸 필요 없음.

2. 토론 라운드

불일치 시 즉시 DIVERGE로 에스컬레이션하는 대신, 각 에이전트에게 다른 에이전트의 판정을 보여주고 재평가 요청:

[이전 라운드 판정 — 참고 후 재평가]
맥북: FAIL / 맥미니: SUCCESS / WSL: FAIL
다른 에이전트 의견을 보고 다시 판단하라. 설득되면 바꿔도 된다.

최대 --rounds N번 (기본 3).

3. 다수결

  • 3-way: 2/3 이상
  • 2-way: 2/2 일치
  • 최종 동점이면 DIVERGE → 에스컬레이션

관련 커밋

repoSHA메시지
claude-automations5ac2300fix(loop-judge): codex-directive stdout 오염 수정
claude-automationsb7afe93feat(loop-judge): v2 — 3-way WSL 자동감지 + 토론 라운드 + 다수결

남은 작업

  • loop-run 실전 테스트 (실행형 목표로)
  • 단어요 1.0.1 ASC 재제출 (China 배포 제외)
  • 로또 계산기 scaffold