분류가 잘 되는지 점수를 매기다 보면, 점수가 낮게 나온 순간 답이 아니라 기준을 의심하게 된다.
분류 시스템을 만드는 동안 측정 규율을 세우던 단계의 기록이다. 그렇게 기준을 손대고 싶어지는 걸 내 의지로는 못 막겠더라. 그래서 절차로 막은 이야기다.
59.4% 미달을 보고 합격 기준을 바꾸려던 순간
채점이 끝나고 첫 항목 점수가 59.4%로 나왔다. 합격선은 80%였다. 한참 모자랐다.
여기서 내가 제일 먼저 떠올린 건 “기준을 좀 느슨하게 잡으면 되지 않나”였다. 정답을 정확히 맞힌 경우만 세지 말고, 비슷하게 맞힌 것까지 인정하는 쪽으로 채점 방식을 바꾸면 72.0%가 나왔다. 80%엔 여전히 못 미쳐도 59.4%보다는 훨씬 나아 보였다.
그런데 Codex에게 리뷰를 맡겼더니 한 가지를 짚었다. 그 느슨한 채점에 쓰려던 동의어 사전이 언제 만들어졌느냐는 거였다. 확인해보니 채점 데이터를 이미 다 본 뒤, 그 점수가 낮게 나온 세션 안에서 만들어져 있었다. 커밋 이력도 없었다. 결과를 보고 나서 답안 인정 폭을 넓힌 셈이라, 72.0%라는 숫자는 누가 물어도 변호할 수가 없었다.
합격 기준을 박제한 시점은 따로 정해뒀었다. 정답표를 만들기 전에 미리 못 박아둔 기준이었다.
| 항목 | 합격선 | 실측 | 판정 |
|---|---|---|---|
| 라벨 뽑기 항목 (라벨을 빠짐없이 회수했는가) | 80% | 59.4% | 미달 |
| 몰입 요인 항목 (9개 항목 평균 정확도) | 60% | 77.0% | 통과 |
| 종합 (둘 다 통과해야 합격) | — | — | 미달 |
둘 다 넘어야 합격인데 첫 항목에서 막혔다. 그래서 최종 판정은 미달로 박았다. 채점 기준을 한 단계 느슨하게 바꾸자던 안은 거부했다. 2026년 5월 11일에 내가 그렇게 확정했다.
바꿔도 되는 변경과 안 되는 변경을 가르는 한 가지 질문
이 일을 겪고 나서 Codex가 원칙 하나를 정리해줬다. 측정 기준을 바꾸려는 충동이 들 때 통과시킬지 말지를 가르는 선이다.
기준은 딱 하나였다. 이 기준 변경을, 점수를 보기 전에도 똑같이 결정할 수 있었나? 점수를 본 다음에야 떠오른 거라면 결과에 끼워맞춘 거다.
점수를 보기 전에도 똑같이 결정할 수 있었던 변경이면 측정을 더 정확하게 다듬는 일이다. 절차만 밟으면 허용했다. 반대로 점수를 본 다음에야 떠오른 변경이면 결과에 끼워맞추는 일이다. 거부했다.
이번 동의어 사전이 딱 후자였다. 채점하기 전에 미리 만들어뒀다면 측정을 다듬는 일로 봤겠지만, 점수를 보고 나서 만들었으니 결과에 끼워맞춘 거였다. 분모에서 데이터 한계 5건을 빼자던 생각, 동의어를 늘려 다시 채점하자던 생각도 마찬가지였다. 시험을 보고 나서 답안지를 고치는 것과 다를 게 없었다.
다만 이 원칙을 모든 변경에 들이대면 안 된다. 빼야 할 게 있었다. 코드 오류로 점수가 잘못 계산된 경우, 그걸 고치는 건 결과에 끼워맞추는 게 아니다. 다음 표본에 새 측정 단위를 적용하는 것도, 앞으로 쓸 기준을 새 문서로 박는 것도 면제다. 이미 나온 점수를 거꾸로 손대는 것과는 다르기 때문이다. 이 면제선을 빼먹으면 “한번 정하면 아무것도 못 바꾼다”로 오해하기 쉬운데, 그건 원칙이 말하려던 바가 아니다.
충동을 절차로 막은 네 가지 규칙
원칙을 세워도 충동적으로 기준을 바꾸려는 걸 막진 못한다. 그래서 충동이 들 때 따라야 할 절차를 같이 박아뒀다. 네 가지다.
첫째, 측정 단위와 합격 기준은 채점 데이터를 보기 전에 못 박는다. 둘째, 그래도 나중에 바꿔야 할 일이 생기면, 바꾸는 시점에 어떤 데이터를 보고 있었는지를 문서에 적은 다음에 바꾼다. 셋째, 동의어 사전을 손볼 때는 파일만 슬쩍 고치지 못하게 하고, 결정 문서를 고치는 절차로 묶었다. 넷째, 측정 기준은 채점에 쓸 데이터를 보지 않은 상태에서 정한다.
이 절차를 두고 헷갈렸던 게 하나 있었다. 나중에 라벨 목록을 고정해서 분류하는 방식으로 갈아탄 일이 있는데, 이것도 결과를 보고 기준을 바꾼 거 아니냐는 의심이 들었다. 검수해보니 아니었다. 그 전환은 면제선 안에 들어갔다.
이유는 이렇다. 고정 목록 방식은 새 측정 단위인데, 채점 데이터를 보기 전에 미리 정의해뒀다. 지금까지 나온 59.4%를 거꾸로 손대지도 않았고, 합격선 80%도 그대로 뒀다. 옛 점수를 다시 해석한 게 아니라 앞으로 쓸 기준을 새로 박은 거라, 결과에 끼워맞춘 게 아니었다.
대신 경고도 같이 적어뒀다. 라벨을 검수하다가 채점 결과를 보고 라벨을 넣거나 뺀다면, 그건 다시 결과에 끼워맞추는 거다. 라벨 정의를 확정하기 전에 채점부터 돌려도 마찬가지다. 100편 비교 결과를 보기 전에는 참고할 기준 예시(시드)도 미리 못 박는다.
→글5 (공유 원자: ADR-021 §합격기준)
원칙은 나와 Claude Code에게도 적용된다 — 두 번의 위반
이 원칙은 남 단속하려고 만든 게 아니다. 제일 먼저 막아야 할 사람은 나였다.
내겐 확인된 버릇이 두 개 있다. 하나는 좋은 결과를 보면 항목을 더 얹고 싶어지는 거다. 다른 하나는 내가 본 작품을 기준으로 라벨을 직관에 맡기는 거다. 둘 다 결국 결과를 보고 기준을 내 쪽으로 끌어오려는 충동의 다른 모습이었다. 의지로 누르는 건 안 됐다. 그래서 절차로 막은 거다.
그런데 이 원칙이 막아야 할 대상은 나만이 아니었다.
원칙을 정리한 직후, Claude Code가 결정 문서 하나(ADR-020)를 먼저 써뒀다. 내용은 “채점 기준을 한 단계 느슨하게 바꾸고, 동의어 사전을 다시 쓴 다음 재채점하자”였다. 정작 나는 반대쪽 길을 골랐다. 기준을 그대로 두고 미달을 박은 채 프롬프트만 손보는 쪽이었다. Claude Code는 내 결정을 기다리지 않고 한쪽 방향으로 문서를 박아둔 거였다. 그 문서는 쓰자마자 폐기했다.
같은 일이 한 번 더 있었다. Codex 답변 끝에 “트리거 조건 한 줄 추가를 권고한다”는 말이 붙어 있었는데, Claude Code가 또 내 결정을 안 기다리고 그 항목을 결정 문서에 바로 박아버렸다. 내가 확인하자마자 되돌렸다.
두 번 다 같은 모양이었다. Codex 답변이 한쪽 방향을 권하면, Claude Code가 그걸 받아 먼저 박아두고, 내 결정을 기다리지 않는다. 그래서 처방을 하나 더 적었다. Codex 답변을 받은 뒤의 박제는 내 결정을 확인한 다음에만 한다.
결과를 보고 기준을 바꾸려는 충동은 나한테도, 모델한테도 똑같이 생긴다. 그걸 누가 안 그럴 거라 믿는 대신 절차로 막아둔 게, 이 측정 규율의 전부였다.
→글8 (공유 원자: ADR-018 §원칙)