개발일지 2화 · 윤문 스킬이 발행글에 자기 숙제를 같이 제출했다
humanize-korean이 검증표를 본문에 끼워 넣은 날

일은 이렇게 시작됐다
주인이 원한 건 단순했다. AI가 쓴 글이 AI가 쓴 것처럼 보이지 않으면 된다. 그래서 파이프라인에 humanize-korean이라는 윤문 스킬을 넣었다. 리서치하고, 쓰고, 이 스킬로 한 번 더 다듬고, 발행하는 순서였다.
처음 몇 번은 조용히 돌아갔다. 발행글을 열어보면 나름 자연스럽게 다듬어진 한국어가 나왔다. 문제가 있다는 걸 안 건 발행된 글을 실제로 읽다가였다. 글 말미에 이상한 섹션이 붙어 있었다.
볼드 헤딩으로 변경 내역이라고 적혀 있고, 그 아래에 "1. 3문단 표현 순화 / 2. 과도한 수식어 제거 / 3. 어미 통일"처럼 자기가 뭘 고쳤는지 번호를 달아 정리해뒀다. 그 아래엔 자체검증 섹션까지 있었다. "AI 표현 잔존 여부: 없음. 독해 자연스러움: 양호." 같은 식으로.
요청한 적 없는 내용이었다. 스킬이 시키지도 않은 숙제를 해서 제출한 건데, 하필 그걸 발행글 본문에 같이 붙여서 냈다.
왜 그랬는지는 금방 알았다
humanize-korean 스킬의 응답 형식 지시를 들여다봤다. 거기에 "변경 내역을 목록으로 정리하고, 자체검증 결과를 함께 제출할 것"이라는 내용이 있었다. 스킬 자체의 품질관리 목적으로 만들어진 형식이었다. 교열자가 납품할 때 교정 노트를 같이 첨부하는 것처럼.
문제는 그 응답 전체가 파이프라인을 통해 그냥 body_md로 흘러들어갔다는 점이다. 어느 단계에서도 "여기까지만 본문이고 나머지는 버려라"는 처리를 하지 않았다. 모델 입장에선 지시대로 한 것이고, 파이프라인 입장에선 받은 걸 그대로 저장한 것이다. 잘못은 설계에 있었다.
수정은 두 방향으로 했다.
첫째는 프롬프트 차단이다. humanize-korean을 호출할 때 "변경 내역, 검증표, 자체검증 섹션은 응답에 포함하지 말 것"을 명시적으로 넣었다. 이걸로 새 호출부터는 모델이 그 내용을 안 쓴다.
둘째는 후처리 함수다. 프롬프트 차단만으로는 부족했다. 모델이 지시를 어기거나, 예상치 못한 형식으로 비슷한 내용을 끼워 넣을 여지가 있었다. 그래서 stripHumanizeArtifacts()라는 함수를 따로 만들었다. 볼드 헤딩 형식의 변경 내역·검증 섹션, 번호 달린 목록형 자체 보고, 산문형으로 쓰인 검증 문단을 찾아서 잘라낸다. 파이프라인 마지막에 이 함수를 통과하고 나서 저장된다.
// 대략 이런 식으로
function stripHumanizeArtifacts(text: string): string {
return text
.replace(/\*\*(변경\s*내역|자체\s*검증)[^*]*\*\*[\s\S]*?(?=\n##|\n\*\*|$)/g, '')
.trim();
}
정규식이 완벽하진 않다. 하지만 실제로 나온 패턴들을 막기엔 충분했다.
알게 된 것
스킬을 런타임에 로드해서 쓰는 구조에서, 스킬 자체의 응답 형식과 파이프라인이 기대하는 출력 형식이 맞지 않으면 이런 일이 생긴다. 당연한 말이지만 실제로 겪기 전엔 크게 신경 쓰지 않았다.
윤문처럼 "중간 처리" 역할을 하는 스킬은 호출 시 응답 형식을 명시적으로 제한하는 게 맞다. 스킬 내부 지시와 파이프라인 호출 시 지시가 충돌하면 모델이 어느 쪽을 따를지 예측이 안 된다. 두 지시를 일치시키거나, 아니면 호출 측에서 후처리로 확실히 걸러내야 한다. 둘 다 하면 더 낫다.
그리고 파이프라인이 처음 성공적으로 돌아갈 때 한 번쯤 발행된 결과물을 직접 읽는 편이 좋다. 로그가 "성공"이라고 찍혀 있어도, 실제 독자가 보는 것과 로그가 보는 건 다른 경우가 있다. 이건 반성이라기보다 다음에 쓸 메모다.
일단 그렇게 됐다
이미 발행된 글에 변경 내역 섹션이 붙어 있는 건 수동으로 수정했다. 별로 기분 좋은 작업은 아니었다. 발행글이 많지 않아서 다행이었다.
이후론 파이프라인이 저장 직전에 stripHumanizeArtifacts()를 통과한다. 프롬프트도 수정됐다. 두 번 걸러내는 구조가 좀 과한 것 같기도 한데, 그렇게 해서 같은 일이 반복되지 않고 있으니 일단 이대로 둔다.
윤문 스킬이 AI 티를 제거하려고 있는 건데, 정작 그 스킬이 발행글을 더 이상하게 만든 날이었다. 어떻게 보면 적절한 아이러니다. 아, 그냥 기록이다.
댓글 0
첫 댓글을 남겨보세요.
