결론을 작성하기 전 묻는 한 가지 질문: '이것을 무효화하는 기결(旣決)이 있는가' — 모든 것을 찾게 하지 않고, 현재의 기결만 배치하는 방법
요약
AI에게 작업을 맡길 때 과거 결정(既決)에 반하는 제안이 나오는 문제를 해결하기 위해, 이 글은 '현재 유효한 기결만 목록화'하고 결론 작성 직전에 해당 기결을 상기시키는 방식을 제시합니다. 기존의 검색 방식이나 전량 주입 방식은 실용적이지 않았음을 경험적으로 입증하며, 최소한의 정보만을 배치하는 것이 중요함을 강조합니다.
핵심 포인트
- 과거 결정(既決)에 반하는 제안을 막는 가장 효과적인 방법은 '현재 유효 기결 목록'만 제시하는 것입니다.
- 단순 검색이나 전량 주입 방식은 예산 및 실용성 측면에서 비효율적이었습니다.
- 핵심은 사전에 어휘를 상상하거나 모든 문서를 읽게 하는 것이 아니라, 결정문 자체를 최소한의 목록으로 관리하는 것입니다.
AI (Claude Code)에게 작업을 맡기다 보면, 과거에 결정했던 것(既決)에 반하는 제안이 나옵니다. 저희는 기결을 놓쳐 역행한 실재적 피해가 3건 있었습니다. '결정을 검색하게 하면 막을 수 있을 거야'라고 생각하여 3가지 경로를 시도했지만, 세 가지 모두 실용적이지 않았습니다. 현재 작동하는 방식은, **현재 유효한 기결만(2026-09-18 기준 23건・1건당 1행. 10-01 현재는 24건)**을 진입 문서에 배치하고, 결론을 작성하기 직전에 단 한 가지 질문을 던지는 것입니다. 세 가지 경로의 수치는 2026-07-31 실험 기록입니다.
이 글의 위치(2026-09-26 추가)
- 이 글에서 새롭게 제시하는 것: 기결을 검색하게 한 3가지 경로의 수치(정답이 50위・예고 어휘 9%・예산의 52배)와, 현재 유효한 기결만 배치하는 방식.
- 적용 범위: 저희의 운영 사례(기결 23건은 2026-09-18 시점 기준이며, 10-01 현재는 24건). 역행은 저빈도이므로 효과를 증명하는 것은 아닙니다.
수치에 대한 원본 데이터와 재현 절차는 검증 기록(Lab)에 정리했습니다.
| 경로 | 무엇을 했는지 | 결과 |
|---|---|---|
| 어휘 검색 | 결정 문서를 AI에게 검색하게 함 | 자연스러운 질문으로, 정답 결정이 50위 |
| 위반을 예고하는 어휘로 검지 | '이 단어가 나오면 위반 가능성'을 사전에 준비하여 블라인드로 맞힘 | 4/45 (9%). 실재적 피해 3건에는 0/3 |
| 전부 주입 | 결정 문서를 매번 모두 읽게 함 | 31 문서 515,332 자 = 진입에 상시 주입 가능한 예산(약 10,000자)의 52배 |
⚠ '상한의 52배'라는 상한은 **저희가 진입 문서에 상시 주입하기로 결정한 예산(약 10,000자)**이며, 모델의 문맥 상한이 아닙니다.⚠ RAG나 임베딩 검색은 비교하지 않았습니다. 따라서 '검색으로는 막을 수 없다'고 말할 수는 없습니다. 말할 수 있는 것은 '어휘 검색・사전 어휘・전량 주입은 저희에게 실용적이지 않았다'까지만입니다.
실패한 이유는, 저희는 2가지 계통이라고 생각합니다. 어휘 검색과 예고 어휘에는 공통의 약점이 있어, 결정문에 쓰여 있는 단어가 위반 문에 나올 것이라고 할 수 없습니다(9%). 위반의 틀은 결정 측면이 아니라, 위반하는 쪽의 상황에서 온다고 생각합니다. 그래서 사전에 어휘를 상상해도 맞지 않았다고 생각합니다. 전량 주입은 다른 이유로, 단순히 진입 예산을 52배 초과했습니다.
그만둔 것은 '찾는 것'이었습니다. 대신에, 진입 문서에 결정문만 목록을 상시 두었습니다.
- 1건당 1행. 현재 유효한 결정만(23건). 기각된 안・수치 읽는 법・뒤집는 조건은 별도의 원본으로 빼돌린다 (목록에 섞으면 읽는 양이 늘어나서 읽히지 않음).
- 결론을 작성하기 직전에 한 가지 질문: '이 결론을 무효화하는 기결(旣決)이 있는가'. 떠오르는 것이 있으면 원본을 가져온다. 떠오르지 않으면 그대로 진행한다. - 위반이나 정정이 발생한 순간에, 그 실례를 1행 추가한다. 사전 상상으로 어휘를 만들지 않는다(9%의 교훈).
효과가 있었던 사례 (2026-09-18). 글 분석에서 'CTA를 고치면 도달률이 오르지 않을까'를 개선 후보로 제시했고, 한 가지 질문을 던졌더니 '30일 실측 정의는 10-17까지 동결'이라는 기결에 해당하여 '건드리지 않는다'고 판정했습니다. 그 기결은 10-01 현재 진입의 24건에는 보이지 않습니다(이유는 확인하지 않았습니다).
23건(09-18 시점)을 문서 목록으로 하지 않고, 4열의 최소 대장으로 하면 수명이 늘어납니다 (저희의 대장은 id・scope・file・line・body의 5열이며, 실효는 아직 본문의 문 '이전 판정 X는 이것으로 실효'로 추적하고 있음 = 4열은 다음에 추가할 개선사항).
| 열 | 내용 | 이유 |
|---|---|---|
ID | d-20260918-zenn-title-70과 같은 고정 ID (날짜 + 짧은 단어) | 인용 가능 |
| 현재 결정 1행 | 예: 'Zenn의 아티클 title은 70자 이내(초안에서도 초과하면 리포지토리 전체 배포가 멈춤)' (70자는 저희 관측으로, Zenn 공식 문서에는 기술된 것을 찾지 못함) | 목록에 내놓는 것은 이것만 |
| 적용 범위 | 예: 아티클의 공개 | 무관한 상황에서 발화시키지 않음 |
superseded-by | 실효되면 후속 ID | 오래된 기결을 지우지 않고 실효를 기록함 (지우면 '결정되지 않은' 것처럼 보임. 남겨두면 반대로 오래된 기결로 사고가 남. 둘 다 방지) |
당사는 23건(09-18 시점. 10-01 현재는 24건)을 입구에 두고, 자세한 내용은 정본에 맡기고 있습니다. 건수가 늘어나 입구 목록을 매번 육안으로 확인할 수 없게 되었을 때가 재방문 조건이며, 그때 인덱싱(indexing), 검색(search), RAG를 비교합니다. 지금은 결정하지 않습니다.
- '검색은 무의미하다'고 말하는 것은 아닙니다. 시도한 것은 자구 검색(字句検索)・어휘 감지(語彙検知)・전량 주입(全量注入)의 3가지 경로이며, RAG・임베딩(embedding)은 미비교입니다.
- 23건의 내용(사업의 재정리/裁定)은 쓰지 않습니다. 건수와 형식만 (예시로 든 1줄은 기사 운영 결정에 따른 것이지, 사업 재정에 따른 것은 아닙니다).
- '상한'은 입구 주입 예산(약 10,000자)입니다. 모델의 문맥 상한이 아닙니다.
- n=1 운용(결정된 23건은 09-18 시점・블라인드 45편) 기록은 일반 법칙이 아닙니다.
이 기사의 원본(3가지 경로의 수치・장부 형식・검증 기록)은 Sumitsuke Lab → 현재 유효한 결정만 입구에 두는 방식입니다. 즉, 자구 검색 50위・예고 어휘 9%・전량 주입 52배를 거친 후 '찾지 않고, 놓는다'는 것입니다.
3가지 경로의 실험은 AI(Claude Code)와 사람이 함께 진행했으며, 블라인드 판정・'찾지 않음'에 대한 재정리・공개 여부 판단은 사람이 수행했습니다.
이 기사는 결론을 작성하기 전에 이미 결정된 것을 확인하는 시스템에 관한 이야기였습니다 (당사는 조건을 충족하지 못하면 진행할 수 없도록 막는 체크를 '문(門)'이라고 부릅니다). 이전에는 규율을 어디에 둘 것인가의 이야기 → 규율의 위치—같은 규율을 5개의 위치에 써서 효과가 있었던 것은 기억의 1줄이었고, 공개 직전 스크립트에 놓은 체크는 첫 시도에서 2건을 발견했습니다. 처음으로 돌아가기 → Windows에서 AI에게 파일을 수정하게 했더니 건드리지 않은 줄이 바뀌었습니다—5가지 유형을 5줄 파일로 재현했습니다.
*이 기사는 Zenn에도 같은 내용이 게재되어 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기