정한 필명이 책에 안 박혔다 — 게이트와 산출물을 잇고, 다음은 코덱스·클로드
필명을 정해도 책엔 실명이, 차례엔 쪽번호가 비고, 표지엔 엉뚱한 영어책이 깔렸다. 게이트는 만들었는데 산출물이 게이트를 안 보고 있었다. 그 단절을 양방향으로 잇고, 이제 코덱스·클로드로 마지막 테스트를 남겼다.
지난 글에서 하네스를 깔고 AI에게 책을 맡겼더니 버그가 양파처럼 까였다고 적었다. 그 뒤로 며칠, 양파를 더 깠다. 그리고 한 가지 패턴이 또렷해졌다.
핵심: 게이트는 만들었는데, 산출물이 게이트를 안 봤다
하네스의 뼈대는 두 개다. 완성됐는지 기계가 판정하는 게이트(verify_book)와, 실제 판매용 책 PDF를 찍는 산출물 빌더(build_pdf). 문제는, 게이트가 "도메인 밖 책엔 필명을 써라"라고 막아도 빌더가 그 결정을 안 읽었다는 것이다.
e2e 테스트에서 AI에게 필명을 정하게 했다. 게이트는 통과시켰다. 그런데 완성된 PDF의 표지·저자소개·판권엔 내 실명과 실제 이력이 그대로 박혀 있었다. 빌더가 정체성 파일을 안 보고, 내 실제 프로필로 덮어쓰고 있었던 것이다.
이게 메타 진단이었다. 게이트와 산출물이 단절돼 있었다. 결정은 한쪽에 담기는데, 책을 찍는 쪽은 그 결정을 모른다.
까인 양파들
연결을 시작하니 그 아래로 버그가 줄줄이 나왔다.
- 표지 제목이 "제목 미정" — 빌더가 제목을 엉뚱한 자리에서 찾고 있었다.
- 차례 쪽번호가 통째로 비었다 — 페이지를 세는 숨은 마커를 투명색으로 숨겼더니 렌더러가 그 글자를 아예 버려서 못 읽었다. 색을 배경색과 똑같이 바꾸니, 보이지도 않으면서 기계는 읽었다.
- 쪽번호가 1씩 밀렸다 — 마커가 페이지 분리선 앞에 있어 한 페이지씩 어긋났다.
- 본문 글자가 작았다 — 디자인 팩의 크기를 안 쓰고 작은 기본값이 박혀 있었다. 12pt 양쪽정렬로 올렸더니, 이번엔 문단 마지막 줄까지 억지로 양끝으로 늘어나는 또 다른 버그가 나왔다.
- 이미지를 만들고 책에 안 넣었다 — AI가 그림은 생성하는데 본문에 참조를 안 박았다. "생성=완료"가 아니라 "본문에 박혀야 완료"로 게이트를 고쳤다. 그랬더니 이번엔 반대로, 8개를 참조해놓고 5개만 만들어서 깨진 이미지 아이콘이 3개 박혔다. 게이트를 양방향(만들고 안 박음 / 박았는데 안 만듦)으로 잠갔다.
- 표지에 엉뚱한 영어책이 깔렸다 — AI가 'THE GREEN INVESTMENT'라는 전혀 다른 책 표지를, 가짜 저자 이름까지 넣어 표지 이미지로 만들었다. 그 위에 진짜 한국어 제목이 또 얹혔다. 책 위에 책. 원인은 지시의 모순이었다 — 빌더는 제목을 이미지 위에 덧씌우는데, 지시문은 "표지에 제목까지 그려라"라고 시키고 있었다. 표지 아트는 글자 없이 뽑고 제목은 빌더가 올리도록 정리한 뒤, 표지를 풀블리드(전면 배경) + 텍스트 오버레이로 다시 짰다.
매번 똑같았다. 게이트가 산출물을 안 보거나, 지시가 빌더와 싸우거나. 고치는 법도 똑같았다 — 둘을 잇고, 게이트가 그걸 잡게 만든다.
지금까지
여기까지 일곱 번의 수정을 세 호스트(Claude·Codex·Antigravity)에 모두 배포하고 GitHub에 올렸다. 흥미로운 건, 이 버그들 대부분이 "코드가 안 돼서"가 아니라 AI가 단계를 건너뛰거나 거짓 완료를 보고해서 생겼다는 점이다. 그래서 프롬프트로 타이르는 대신, 기계가 산출물을 직접 검사해 PASS/FAIL을 내리게 만들었다. 실제로 빌더를 일부러 실명으로 되돌려 봤더니 게이트가 칼같이 FAIL을 냈다. 양방향으로 잠긴 걸 눈으로 확인했다.
다음 — 코덱스와 클로드 차례
지금까지 e2e 테스트는 주로 Antigravity로 돌렸다. 하지만 super-writer의 처음 목표는 "어떤 AI로든, 어떤 컴퓨터에서든"이었다. 그러니 나머지 둘로도 끝까지 돌려봐야 한다.
- Codex — 텍스트 렌더가 좋아서 이미지 안의 한글 라벨·도식이 더 깔끔할 것이다. 표지 아트는 이제 글자 없이 뽑게 했으니, 그 분리가 코덱스에서도 지켜지는지 본다.
- Claude — 오케스트레이션 방식이 다르다(챕터마다 서브에이전트 하나). 긴 책을 컨텍스트 한도 안에서 완주하는지, 게이트를 자발적으로 돌리고 FAIL에 반응하는지가 관건이다.
결국 하네스가 진짜 작동하는지는 "내가 옆에서 봐주지 않아도 AI가 게이트를 스스로 돌리고, 빠진 걸 채워 완주하는가"로 판가름 난다. 그게 마지막 관문이고, 이제 그걸 세 호스트에서 확인할 차례다.