2026-10-20 (화) 개발일지
오늘은 세 가지 이슈를 붙잡았다. OPIc 학습 콘텐츠의 자연스러움 검증, Riff 갭 분석에서 블라인드 유지, 그리고 자동 지원 파이프라인의 API 한도 교착 상태. 셋 다 원인을 찾기까지 가설이 한 번씩은 갈아졌다.
OPIc 콘텐츠 — 463문장 중 6건을 잡은 검증 체계
OPIc 유형 4종의 콘텐츠 파일(vocabulary.json, naturalness.json, shadowing.json) 파싱 검증은 통과했다. 문제는 검수에서 터졌다. 모델 문장 463개를 전수 읽다 보니 6건이 눈에 거슬렸다. "I'll send you a replacement straight away." — 영국식 표현. "I make it a point to fit in some physical activity" — 교과서체. 처음엔 이 6건만 고치면 끝일 거라 생각했다.
그런데 naturalness.json의 fix 필드에 why를 쓰면서 ‘왜 이게 어색한가’를 설명하다 보니, 이 기준이 코드로 못 박혀 있지 않으면 다음 배치에서 똑같은 실수가 반복될 게 뻔했다. 태그 유형(타동사-전치사, 관사, 과공손)을 정리하고, vocabulary.json의 관계절(which takes about 40 minutes → — it takes about 40 minutes)도 구어체로 정정했다.
해법: 수동 검수 기준을 검증 스크립트에 반영했다. test_review.py에 자연스러움 판정 규칙을 추가하고, CI 단계에서 같은 패턴이 재발하면 플래그되도록 했다. naturalness.json의 straight away → right away 수정도 여기에 포함됐다.
검증: 수정 후 120 checks 0 failed. 이제 같은 유형의 오류는 사람 눈에 띄기 전에 테스트가 잡는다.
Riff 갭 분석 — graphify가 기존 피드백을 섞어 온 문제
Riff의 자체 피드백 기능 위치를 경쟁사(Superpowers, OMC) 대비 평가해야 했다. 조건은 ‘기존 피드백 자료를 보지 않는다’는 블라인드였다. Exa 리서치(서브에이전트 5개, 출처 245, 8분 43초)로 신선한 정보만 수집하기로 했다.
그런데 graphify 결과를 보니 RESULTS-V3 같은 기존 피드백 문서 노드가 섞여 나왔다. 처음엔 ‘Exa 결과만 쓰면 되지’라고 생각했다. 하지만 graphify가 현재 상태를 그리기 위해 참조한 노드들 중에 과거 산출물이 포함된 걸 보고, 도구의 출력을 블라인드 상태로 맹신하면 안 된다는 걸 깨달았다.
graphify가 기존 피드백 노드를 섞어 내는 순간, 블라인드 조건이 깨질 뻔했다.
해법: graphify 조회 결과 중 기존 피드백 문서 노드는 명시적으로 제외했다. 신규성 판정은 sonnet 서브에이전트가 블라인드 상태에서 이전 자료와 키워드·본문을 대조하도록 분리했다.
검증: 최종 개선점(NEW 2, PARTIAL 10, KNOWN 1)이 기존 자료와 대조했을 때 오염되지 않았음을 확인했다. 리서치 한도 15분 중 8분 43초만 썼고, 출처 245개 중 중복은 없었다.
자동 지원 파이프라인 — Codex 한도 교착 상태
이노션과 위시켓 지원 제출이 Codex 사용 한도에 걸려 중간에 멈췄다. 지원 대행 에이전트와 codex 검증 에이전트가 같은 API 한도를 공유하고 있었기 때문이다.
처음에는 ‘18:43에 한도가 풀리니 기다렸다가 재시작하면 된다’고 생각했다. 실제로 한도가 풀린 후 재시작했지만, 같은 구조라면 언젠간 또 막힌다는 게 명확했다. **