← Log

AI 초안이 '구구절절'했던 이유 — 문체를 데이터로 교정하기

백로그 16편의 초안을 소넷 부대에 맡겼다. 검수하며 남긴 체감은 두 줄이었다 — “말이 너무 많다”, “코드가 너무 많다”. 이 두 문장을 그대로 규칙으로 옮기면 “산문을 줄여라”, “코드블록을 빼라”가 된다. 그런데 그 초안은 이미 WRITING_STYLE.md(과거 수제 61편을 분석해 만든 문체 기준)를 통과한 결과물이었다. 기준을 통과했는데도 어색하다면, 체감이 가리키는 원인과 실제 원인이 다를 가능성부터 의심해야 했다.

체감을 바로 규칙화하지 않은 이유

체온계 없이 “열이 있는 것 같다”고만 진단하면 해열제를 먹일지 항생제를 쓸지 알 수 없다. 체감 피드백도 마찬가지였다 — “말이 많다”가 산문을 줄이라는 뜻인지, 구조화가 빠졌다는 뜻인지 체감만으로는 갈리지 않는다. 기준 문서를 통과했는데도 어색하다면 체감이 가리키는 원인과 실제 원인이 다를 가능성부터 의심해야 했다. 그래서 체감을 곧장 규칙에 옮기는 대신, 분석 에이전트 5기를 붙여 과거 61편 코퍼스와 초안 16편을 정량으로 교차 대조했다.

반전 — “코드가 많다”의 진짜 정체

대조 결과는 예상과 어긋났다. 코드블록 자체는 과거보다 오히려 줄어 있었다. 늘어난 건 설명 없이 나열된 내부 식별자였다.

지표(편당 평균)과거 61편1차 초안 16편
리스트 항목9.6개2.1개
인라인 식별자10.8개29.6개

즉, “코드가 많다”는 체감의 실체는 코드블록 삭제가 아니라 인라인 식별자 절제였다. 교정 지점이 완전히 달라진 셈이다.

“구구절절”의 처방으로 나온 가운데점(·) 구조화도 검증이 필요했다. 과거 61편 전수를 다시 훑었더니 이 표기는 0회 등장했다. 과거 스타일을 복원하는 게 아니라 새로 얹는 규칙이라는 뜻이다 — 계승과 신설을 구분해야 다음에 같은 착오를 반복하지 않는다.

규칙 개정 — 절제와 구조화를 조항으로

대조 결과를 WRITING_STYLE.md에 두 조항으로 박았다.

  • §2.5 구조화 우선: 병렬 정보 3개 이상은 산문 대신 불릿·채번으로, 동급 개념 2~3개는 가운데점(·)으로 압축한다. 비교·대비 정보는 표로 뽑는다.
  • §2.6 코드·식별자 절제: 내부 함수·필드·변수명은 나열하지 않고 현상·의도로 푼다. 코드블록은 대표 예시 하나만 남기고 반복 로직은 생략한다.

길이 기준도 함께 손봤다. 고정 5,000자를 목표로 두니 산문을 억지로 늘리는 역효과가 났다. WRITING_RULE.md §8을 산문을 채우는 목표치가 아니라 구조화가 끝난 뒤 남는 결과값으로 바꾸고, 트랙별 실측 범위(notes 1,0002,000자·log 8002,500자)로 교체했다.

재작성 효과

새 조항으로 16편을 전량 다시 썼다. 두 편의 전후 대비가 규칙의 효과를 가장 뚜렷하게 보여준다.

지표재작성 전재작성 후
five-reconnect-bugs인라인 코드73개7개
five-reconnect-bugs리스트 항목9개44개
the-hollow-flagship코드블록4개(55줄)0(표로 대체)

자가채점

원래 지시는 이랬다.

“구구절절 말이 너무 많아 … 가운데 점을 이용해서 분류한다거나 채번을 이용해서 순서를 표시한다거나”

이 기준으로 보면 90점 정도는 줄 만하다. 인라인 코드가 73개에서 7개로 줄고 코드블록 55줄이 표 하나로 정리된 건 지시를 정확히 맞춘 결과다. 다만 가운데점 표기는 아직 신규 규칙이라 실제 발행 글 여러 편에 자연스럽게 녹아드는지는 더 지켜봐야 한다 — 남은 10점은 거기 걸어둔다.

회고

이번 루프에서 남는 건 규칙 두 조항보다 그 과정이다. 체감은 증상만 가리킬 뿐 원인은 못 짚는다. 코퍼스 대조 없이 “말이 많다”를 곧장 “산문을 줄여라”로 옮겼다면, 정작 늘어난 건 인라인 식별자인데 애먼 산문만 깎아냈을 것이다. 문체 가이드도 한 번 쓰고 끝나는 문서가 아니라, 쓰고 검수받고 다시 벼리는 루프 자체가 본체라는 걸 이번에 다시 확인했다.

목차