9월 9일에 첫 마일스톤 리뷰 글을 썼고, 오늘 마지막 기준선 PR을 올렸다. 열흘. PR 38개 중 30개가 병합됐고 글은 이것까지 24편이다. 구현은 Claude Code가, 리뷰는 Codex가, 병합과 결정은 내가 했다. 이 글은 시리즈 전체의 회고다. 무엇을 증명하려 했고, 숫자가 무엇을 증명했고, 무엇을 재지 않았고, 왜 여기서 멈추는지를 적는다.

증명하려던 것

M5 계획서의 첫 줄은 이 저장소가 “근거 기반 GenAI 앱을 설계하고 평가하고 운영할 수 있다”는 증거가 되는 것이었다. 모델 훈련도, 프로덕션 RAG도 아니다. 이력서와 공고를 받아 REALISTIC, STRETCH, PASS를 판정하는 앱 하나를, 판정이 근거에 묶여 있고, 실패가 결과로 세어지고, 실행이 단계별로 설명되는 상태로 만드는 것이었다. 그 뒤에는 더 개인적인 동기가 있었다. 이런 것을 만들 수 있다는 것을 보여 주고 싶었다.

숫자가 증명한 것

마지막 PR은 모델 모드 기준선이다. 합성 골든셋 33건을 실제 무료 모델로 끝까지 돌린 첫 보고서. 무료 티어의 하루 50회 한도와 엔드포인트 타임아웃 때문에 나흘에 걸쳐 네 라운드, 125회 호출을 이어 붙였다. 채점은 32건이고, 나머지 1건은 같은 공고의 추출이 세 번 연속 타임아웃이라 그대로 두었다.

채점된 32건에서 요건 텍스트 대응 43/44, 결격 재현율 10/10, 허용 집합 안의 판정 21/32. 스키마 실패, 거절, 잘림, 지어낸 고용주, 금지된 주장은 전부 0. 정책이 판정을 바꾼 사례는 16/32였고 전부 결격 승격으로 PASS였다. 모델이 낸 인용 190개 중 70개가 이 실행의 검색 조각으로 풀렸다.

이 숫자들이 증명하는 것은 좁고 구체적이다. 근거 없는 매칭을 지우고 미충족 핵심 요건을 결격으로 승격하는 결정적 정책이 실제 모델 위에서 동작한다. 인용은 그 실행의 입력과 검색 흔적에만 해석되고, 풀리지 않는 인용은 버려지되 표시된다. 실패는 어떤 종류든 판정이 되지 않는다. 보고서는 실행 간에 비교되고, 잘린 실행은 이어 붙여진다. 그리고 실제 모델은 인용을 하되 대부분은 풀리지 않는다는 것, 초안은 관대하고 PASS는 대부분 정책이 만든다는 것을 알았다. M5-B에서 열어 둔 질문에 답이 붙었다.

재지 않은 것

허용 집합 밖 11건이 모델 탓인지 골드 탓인지는 모른다. 골든셋 33건 중 사람이 검토한 것은 0건이다. 일반 채팅에 같은 자료를 붙였을 때보다 이 앱이 나은지는 사용 확인 1차에서 “아직 그렇다고 말할 수 없다”고 쓴 뒤로 나란히 재지 않았다. ChatGPT 호스트에서는 M0의 상태 카드만 봤고, 위젯은 v7까지 파서에서만 검증됐다. 다른 모델에 대해서는 아무것도 말하지 못한다. 숫자는 전부 무료 모델 하나, 엔드포인트 하나의 것이다.

반복된 것

M5 정리에 실패와 그로 인한 변경을 열여덟 줄로 적었다. 열흘을 통틀어 반복된 것은 넷이다.

경계가 실패시킬 범위를 정하지 않으면 항목 하나가 전체를 실패시킨다. 인용 하나가 판정을, 마스킹 검사 하나가 66번 호출한 실행을 통째로 버렸다. 같은 교훈은 새 진입점마다 다시 놓친다. SDK 타임아웃이 본문을 막지 못한다는 것을 러너 셋 중 둘에서 놓쳤다. 문장이나 코드가 있다는 것과 그 일이 일어났다는 것은 다르다. 검증 코드가 있어도 멈추지 않았고, 고정 문장은 모델도 쓸 수 있었고, 문서는 코드보다 더 많이 약속했다. 관측은 결과를 바꾸면 안 되고 관측에도 마감이 필요하다.

넷 다 내가 먼저 찾은 것이 아니다. 리뷰가 실행으로 재현해서 가져왔고, 나는 그 전제를 다시 실행으로 확인한 뒤 고쳤다. 코드 PR마다 두세 건, 문서 PR에서도 네 건이었다. 이 시리즈에서 배운 것 중 가장 오래 남을 것은 그 절차다. 지적은 재현한 뒤 받고, 고친 뒤에는 같은 재현이 테스트가 된다.

여기서 멈춘다

다음 후보는 있었다. 무료 크레딧을 주는 다른 제공자로 하루에 전체를 돌릴 공통 어댑터, 골든셋 사람 검토, 호스트 라운드. 만들지 않기로 했다. 남은 후보로 앞 절의 “재지 않은 것”을 바꾸려면 시간보다 판단이 필요한데, 그 판단을 내릴 만큼 이 앱이 일반 채팅보다 낫다는 확신이 없다는 것이 M5의 결론이었다.

솔직하게 적자면 힘도 빠졌다. 보여 주고 싶었는데 봐주는 사람이 없었다. 그래도 저장소는 그대로 서 있다. 기준선 보고서는 커밋돼 있고, 골든셋과 프롬프트와 정책이 바뀌면 테스트가 알려 주고, 어떤 결정을 왜 했는지는 ADR 열네 개에 있고, 실패 열여덟 건은 각각 무엇을 바꿨는지와 함께 적혀 있다. 증명하려던 것의 일부는 증명됐고 나머지는 어디까지 재지 않았는지가 명시돼 있다. 아무도 읽지 않아도 기록은 그 자리에 있다. 그게 이 열흘의 산출물이다.

저장소는 changbaebang/career-radar에, 마지막 PR은 #45에 있다.