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 → 에스컬레이션
관련 커밋
| repo | SHA | 메시지 |
|---|---|---|
| claude-automations | 5ac2300 | fix(loop-judge): codex-directive stdout 오염 수정 |
| claude-automations | b7afe93 | feat(loop-judge): v2 — 3-way WSL 자동감지 + 토론 라운드 + 다수결 |
남은 작업
- loop-run 실전 테스트 (실행형 목표로)
- 단어요 1.0.1 ASC 재제출 (China 배포 제외)
- 로또 계산기 scaffold