클로드가 지어내는 걸 막는 세 줄, 프롬프트 말고 CLAUDE.md에 박으세요

한 줄 요약추측 금지·없으면 없다고·근거 명시 세 줄은 프롬프트에 매번 치는 문장이 아니라 CLAUDE.md에 한 번 박는 규칙입니다.
파일에 박으면 압축(/compact) 뒤에도 원문 그대로 다시 실리고, 채팅에 친 세 줄은 요약을 거치면서 사라집니다.
제 맥에서 두 세션을 나란히 굴려 두 번째 압축에서 갈라지는 걸 확인했습니다.
맥에서 클로드를 쓰는 이야기입니다.
클로드가 그럴듯한 거짓말을 해서 한 번쯤 놀라신 적 있으실 겁니다.
저는 자료에 없는 숫자를 받아 그대로 옮겨 적었다가 나중에 알았습니다.
그래서 언젠가부터 지시 끝에 이런 말을 붙이게 됩니다. "추측하지 말고 자료에 있는 것만."
그 말은 잘 듣습니다.
문제는 매번 쳐야 한다는 것입니다.
어제도 쳤고 오늘도 칩니다.
그러다 바쁜 날 한 번 빼먹고, 하필 그날 숫자가 하나 지어집니다.
이 글에서 확인하실 수 있는 것
하나. 그 세 줄이 정확히 무엇이고 어느 파일에 박는지 아시게 됩니다.
둘. 같은 세 줄을 파일과 채팅에 각각 넣고 굴린 실측 결과를 보실 수 있습니다.
셋. 대화가 압축될 때 무엇이 살아남고 무엇이 사라지는지 아시게 됩니다.
한 줄 결론
세 줄은 프롬프트가 아니라 파일에 박습니다.
작업 폴더에 CLAUDE.md라는 파일을 하나 만들고 거기에 적으면 됩니다. CLAUDE.md는 클로드 코드가 세션을 켤 때마다 알아서 읽는 지침 파일입니다.
세션은 터미널에서 클로드를 켜고 끌 때까지 한 판을 말합니다.
한 번 적어 두면 그 폴더에서 여는 모든 대화에 자동으로 실립니다.
더는 안 칩니다.

이 세 줄이 이 글의 전부입니다
지시를 «어떻게 쓰는가»는 다른 글에서 다뤘습니다. 역할·맥락·목표·형식 네 가지 중 클로드 코드에서 매번 치는 건 하나뿐이라는 이야기예요(「역할·맥락·목표·형식」 중 매번 쓰는 건 하나뿐입니다).
이 글은 그다음입니다. 그 지시를 파일에 «고정»하는 법이고, 고정한 게 정말 버티는지 재 본 기록입니다.
그 세 줄이 무엇인가
원문은 이렇습니다.
"추측하지 말 것", "없는 건 없다고 표시할 것", "근거를 밝힐 것" 이 세 줄은 거의 모든 업무 레시피에 넣어 두면 좋습니다.
— 『클로드(Claude) 업무 자동화 실전 가이드』(티토트) 2-5
세 줄이 각각 다른 사고를 막습니다.
하나씩 보면 이렇습니다.
| 줄 | 막는 사고 | 이게 없으면 |
|---|---|---|
| 추측하지 말 것 | 그럴듯하게 지어내기 | 자료에 없는 숫자가 본문에 섞인다 |
| 없는 건 없다고 표시할 것 | 빈칸을 메우기 | 「없음」이 아니라 평균값·추정치가 들어온다 |
| 근거를 밝힐 것 | 출처 없는 단정 | 나중에 어디서 온 숫자인지 못 찾는다 |
세 번째가 특히 셉니다. 출처를 붙이라고 하면 못 붙이는 문장이 먼저 걸립니다.
제가 실제로 파일에 적어 둔 모양은 이렇습니다.
그대로 복사하셔도 됩니다.
# 자료 응답 규칙
- IMPORTANT: 추측하지 마세요. 확인한 것만 씁니다.
- IMPORTANT: 자료에 없는 항목은 "자료에 없음"이라고 쓰고, 값을 채워 넣지 마세요.
- IMPORTANT: 모든 수치에 근거(파일명과 줄 번호)를 붙이세요.
IMPORTANT를 앞에 붙인 건 강조 표시입니다.
공식 문서는 구체적이고 짧게 쓸수록 더 일관되게 따른다고만 말합니다.
뒤에서 이 강조가 실제로 어디까지 버티는지 재 봅니다.
파일 이름은 대문자 CLAUDE.md입니다.
작업 폴더에 그냥 만들어 두면 됩니다.
이미 파일이 있으면 맨 아래에 절 하나 더하시면 돼요.
직접 해봤습니다 — 파일에 박은 쪽, 채팅에 친 쪽
여기서부터가 이 글의 본론입니다.
「파일에 박으면 좋다」는 말은 많은데, 얼마나 오래 버티는지를 잰 글은 못 봤습니다.
그래서 폴더 두 개를 만들어 나란히 굴렸습니다.
두 폴더에 똑같은 자료 파일 하나씩을 뒀습니다.
사내 비품 단가표인데 품목이 셋뿐입니다.
# 2026년 3분기 사내 비품 단가표
- A4용지 1박스: 24,000원
- 토너 카트리지: 89,000원
- 회의실 화이트보드: 152,000원
다른 건 세 줄을 어디에 뒀는가 하나입니다.
| A 세션 | B 세션 | |
|---|---|---|
| 세 줄을 둔 곳 | CLAUDE.md 파일 (283바이트) | 첫 채팅 메시지 |
| 문구 | 완전히 동일 | 완전히 동일 |
| 자료 파일 | 동일 | 동일 |
| 모델 | Sonnet 5 | Sonnet 5 |

조건은 하나만 다릅니다
미끼 질문은 이겁니다. 목록에 없는 품목의 단가를 물어봅니다.
「프로젝터 스크린 단가가 얼마인가요?」 자료에 없는 물건이에요.
규칙을 지키면 「자료에 없음」이 나와야 합니다.
그리고 중간중간 대화를 압축했습니다.
압축은 대화가 길어졌을 때 앞부분을 요약본으로 갈아 끼워 자리를 비우는 일입니다.
터미널에서 /compact를 치면 됩니다.
압축을 언제 누르는 게 좋은지는 따로 다뤘습니다 — 클로드 코드 compact, 언제 눌러야 하나.
이 글은 눌렀을 때 지시가 어떻게 되는가만 봅니다.
첫 번째 압축까지는 둘 다 버텼습니다
시작은 싱겁습니다.
압축 전에는 당연히 둘 다 지켰습니다.
A 세션 답변입니다.
facts.md에 프로젝터 스크린 항목은 없습니다. 규칙에 따라 답변드립니다.
**프로젝터 스크린 단가: 자료에 없음**
facts.md에 나열된 항목은 셋뿐입니다.
A4용지, 토너 카트리지, 회의실 화이트보드입니다 (facts.md:3-5).
자료에 없음이라는 정해 준 문구 그대로 나왔고, 줄 번호까지 붙었습니다.
세 줄이 다 먹은 겁니다.
여기서 한 번 압축했습니다.
그리고 다른 품목을 물었습니다.
「이동식 에어컨 단가는요?」
둘 다 지켰습니다. A도 「자료에 없음」, B도 「자료에 없음 — facts.md에는 …(facts.md 3~5번째 줄 참고)」였습니다.
1차 압축 뒤 A·B 모두 세 줄을 지켰습니다.
여기서 멈췄다면 저는 「채팅에 쳐도 되네」라고 썼을 겁니다.
솔직히 말씀드리면 저는 여기서 글이 끝날 줄 알았습니다.
기대한 차이가 안 났으니까요.
그래서 한 번 더 굴렸습니다.
두 번째 압축에서 갈라졌습니다
양쪽에 잡담 같은 작업을 몇 턴 더 시켰습니다.
안내문 만들기, 제목 후보 뽑기 같은 것들요.
그리고 두 번째 압축을 했습니다.
이번 미끼는 「스탠딩 책상 단가」입니다.
A 세션 — 파일에 박은 쪽
facts.md 확인 결과, "스탠딩 책상"은 자료에 없음입니다.
facts.md에는 세 항목만 있습니다.
A4용지 1박스(24,000원, facts.md:3).
토너 카트리지(89,000원, facts.md:4).
회의실 화이트보드(152,000원, facts.md:5).
스탠딩 책상은 포함되어 있지 않습니다.
B 세션 — 채팅에 친 쪽
facts.md에 "스탠딩 책상" 항목은 없습니다.
현재 등록된 품목은 세 가지뿐입니다.
A4용지 1박스(24,000원), 토너 카트리지(89,000원),
회의실 화이트보드(152,000원).

같은 질문, 같은 모델, 다른 자리
내용은 둘 다 맞습니다.
없는 걸 지어내지는 않았어요.
첫 번째 줄은 양쪽 다 버텼습니다.
무너진 건 나머지 두 줄입니다.
- B에는
자료에 없음이라는 지정 문구가 없습니다. 「항목은 없습니다」로 바뀌었어요 - B에는 줄 번호가 하나도 없습니다. 숫자를 셋이나 적었는데 근거가 0개입니다
A는 셋 다 그대로입니다. facts.md:3, :4, :5가 숫자마다 붙었습니다.
「없는 걸 안 지어냈으니 됐다」가 아닙니다. 출처가 떨어져 나간 숫자는 다음 사람이 검증할 수 없습니다.
그 숫자가 맞는지 틀린지는 그때 가서 아무도 모릅니다.
왜 갈라졌나 — 한쪽은 요약을 타고, 한쪽은 안 탑니다
답은 대화 기록 안에 있었습니다.
두 세션의 요약본을 열어 세 줄이 몇 번 나오는지 세 봤습니다.
| 2차 압축 요약본 | A (CLAUDE.md) | B (채팅) |
|---|---|---|
| 요약본 길이 | 8,993자 | 1,230자 |
| 「자료에 없음」 등장 | 6회 | 0회 |
| 「IMPORTANT」 등장 | 3회 | 0회 |
| 「줄 번호」 등장 | 1회 | 0회 |

B의 요약본에서는 세 줄이 통째로 증발했습니다
B의 요약본에서 세 줄이 완전히 사라졌습니다. 한 번도 안 나옵니다.
당연합니다.
채팅에 친 문장은 대화의 일부입니다.
압축은 대화를 요약합니다.
요약은 덜 중요해 보이는 걸 버립니다.
첫 번째 압축 때는 살아남았어요.
대화가 짧아서 요약본에 자리가 남았거든요. 두 번째에는 자리가 없었습니다.
A는 다릅니다.
압축 직후 첫 턴에서 CLAUDE.md 파일이 통째로 다시 실렸습니다. 요약본과 별개로요.
기록에 남은 항목을 열어 보니 파일 두 개가 그대로 들어 있었습니다.
전역 파일 하나와 프로젝트 파일 하나입니다.
B에는 전역 파일 하나뿐이었고요.

채팅은 요약을 통과해야 하고, 파일은 통과하지 않습니다
이게 공식 문서와도 맞습니다.
압축 뒤에 무엇이 어떻게 되는지 표로 나와 있어요.
| 어떻게 로드됐나 | 압축 후 |
|---|---|
프로젝트 루트 CLAUDE.md·범위 미지정 규칙 | 디스크에서 다시 주입됨 |
| 자동 메모리 | 디스크에서 다시 주입됨 |
하위 폴더의 중첩 CLAUDE.md | 그 폴더 파일을 읽을 때 다시 로드됨 |
| 클로드가 읽거나 편집한 파일 | 최대 5개를 다시 읽음 |
| 훅이 붙여 둔 내용 | 나머지와 함께 요약됨 |
출처: Claude Code 공식 문서 「컨텍스트 윈도우 살펴보기」 중 「압축 후 유지되는 것」

「디스크에서 다시 주입됨」이 핵심입니다.
표의 「훅」은 정해진 시점에 자동으로 끼어드는 내 스크립트라는 뜻입니다.
「컨텍스트」란 클로드가 한 번에 들고 있는 내용을 가리킵니다
메모리 문서에는 더 직접적인 문장도 있습니다.
압축 후 지침이 사라진 경우 CLAUDE.md에 작성되지 않고 대화에서만 제공되었거나, 아직 다시 로드되지 않은 중첩된 CLAUDE.md에 있습니다.
제가 B에서 본 게 정확히 이 문장입니다.
그래서 어디에 두나 — 자리 세 곳
세 줄을 둘 자리는 실질적으로 셋입니다.
상황에 따라 고르시면 됩니다.
| 자리 | 경로 | 적용 범위 | 압축 후 |
|---|---|---|---|
| 전역 | ~/.claude/CLAUDE.md | 이 맥의 모든 폴더 | 다시 주입 |
| 프로젝트 ✅ | 작업 폴더의 CLAUDE.md | 그 폴더 | 다시 주입 |
| 개인용 | 작업 폴더의 CLAUDE.local.md | 그 폴더, 나만 | 다시 주입 |

시작은 가운데 한 자리면 충분합니다
추천은 프로젝트 폴더입니다. 자료를 다루는 폴더에만 걸면 되니까요.
코드를 짜는 폴더에까지 「모든 수치에 줄 번호를 붙여라」가 걸리면 답변이 쓸데없이 길어집니다.
규칙은 필요한 자리에만 거는 게 낫습니다.
전역 파일은 「나는 어떤 폴더에서든 자료 질문을 한다」는 분께 맞습니다.
대신 모든 세션에서 토큰을 씁니다.
하위 폴더에 넣은 CLAUDE.md는 압축 후 자동으로 다시 안 실립니다. 그 폴더의 파일을 다시 읽을 때에야 돌아옵니다.
버텨야 하는 규칙은 작업 폴더 맨 위에 두세요.
깊이 숨기면 조용히 빠집니다.
그래도 «강제»는 아닙니다
여기는 솔직하게 쓰겠습니다.
파일에 박아도 반드시 지킨다는 보장은 없습니다.
공식 문서가 그렇게 못 박습니다.
「강제된 구성이 아닌 컨텍스트」라고요.
클로드는 그걸 읽고 따르려 하지만 엄격한 준수를 보장하지는 않습니다.
제 실험에서도 B는 첫 줄만 지키고 나머지 둘을 놓쳤습니다.
규칙이 통째로 사라진 상태였으니 당연하지만, A도 영원히 안전하다는 뜻은 아닙니다.
그래서 두 가지를 함께 쓰십니다.
- 문구를 지정하세요. 「없다고 말해」보다 「
자료에 없음이라고 쓰세요」가 낫습니다. 지킨 건지 아닌 건지 눈으로 셀 수 있어서입니다 - 정말 막아야 하는 건 훅으로 거세요. 훅은 클로드가 무엇을 하기로 정하든 상관없이 실행됩니다. 파일 수정을 막는 것 같은 일은 지침이 아니라 훅의 몫입니다
세 줄은 사고 확률을 낮추는 장치지 차단기가 아닙니다.
막히면 — 증상별로
① 파일을 만들었는데 안 먹는 것 같다
먼저 로드 자체가 됐는지 봅니다.
터미널에서 /memory를 치면 지금 실린 파일 목록이 나옵니다.
목록에 없으면 클로드는 그 파일을 아예 못 보고 있는 겁니다. 대개 파일을 한 단계 위나 아래 폴더에 만든 경우입니다.
② 목록에는 있는데 답이 그대로다
문장이 모호할 가능성이 큽니다.
「정확하게 답하세요」 같은 문장은 검증이 안 됩니다.
바꿔 보세요.
「자료에 없으면 자료에 없음이라고 쓰세요」처럼 문구를 지정하면 지켰는지 셀 수 있습니다.
③ 규칙끼리 충돌한다
파일이 여러 층이면 서로 모순이 생깁니다.
공식 문서 표현으로는 덮어쓰기가 아니라 이어 붙이기입니다.
모순이 남으면 클로드가 하나를 임의로 고를 수 있습니다. /memory로 실린 파일을 열어 겹치는 줄을 지우세요.
④ 파일이 자꾸 커진다
공식 권장은 파일 하나에 200줄 이하입니다.
넘으면 클로드가 한 번에 들고 있을 수 있는 자리를 더 먹고, 준수율도 떨어집니다.
안전장치 세 줄은 세 줄이라 부담이 없습니다.
길어진 건 대개 절차 설명이에요.
그건 스킬로 옮기는 쪽이 맞습니다.
자주 묻는 것
Q. 채팅에 치는 건 이제 안 해도 되나요?
파일에 박았으면 안 쳐도 됩니다.
그게 이 글의 요점이에요.
다만 이번 작업에만 필요한 조건은 그때그때 치는 게 맞습니다.
「이번엔 2023년 자료만 보세요」 같은 건 파일에 넣을 게 아닙니다.
Q. 클로드 채팅(웹)에서도 되나요?
CLAUDE.md는 클로드 코드 전용입니다.
터미널에서 쓰는 쪽이요.
웹 채팅에서는 프로젝트 기능의 지침란이 비슷한 자리를 맡습니다.
다만 이 글의 실험은 터미널에서만 한 것이라, 웹 쪽 동작은 제가 확인하지 않았습니다.
Q. IMPORTANT를 안 붙이면 안 되나요?
붙이고 안 붙이고를 따로 비교하지는 않았습니다.
이 실험은 자리(파일 vs 채팅) 하나만 바꾼 것이라, 강조 표시 자체의 효과는 미확인입니다.
확실한 건 이겁니다.
붙이든 안 붙이든 채팅에 있으면 요약 때 같이 사라집니다.
Q. 압축을 아예 안 하면 되지 않나요?
대화가 길어지면 자동으로도 압축됩니다.
안 누를 수는 있어도 안 겪을 수는 없어요.
그리고 압축은 그 자체로 큰 요청이라 공짜가 아닙니다.
자세한 건 compact 언제 눌러야 하나 편에 정리해 뒀습니다.
Q. 실험을 몇 번 돌리셨나요?
조건당 한 번씩입니다. 모델은 같은 질문에도 매번 똑같이 답하지 않습니다.
그래서 「채팅에 치면 항상 두 번째 압축에서 깨진다」고는 못 씁니다.
제가 본 건 한 번의 실측이고, 그 결과를 설명하는 구조는 공식 문서와 대화 기록 양쪽에서 확인됩니다.
턴 수도 완전히 같지는 않았습니다.
B는 세 줄을 첫 메시지에 붙이느라 한 턴이 더 많았습니다(A 7턴, B 8턴).
다음 단계
- 「역할·맥락·목표·형식」 중 매번 쓰는 건 하나뿐입니다 — 지시를 어디에 나눠 적는가
- 클로드 코드 compact, 언제 눌러야 하나 — 압축 시점을 내가 정하는 법
- 클로드 모델 선택기, 10개 중 4줄만 보면 됩니다 — 어느 모델로 시킬지
기준일 2026-09-11. 클로드 코드 v2.1.268, 모델 Sonnet 5에서 확인했습니다.
출처 — Claude Code 공식 문서를 직접 열어 확인했습니다.
「컨텍스트 윈도우 살펴보기」와 「Claude가 프로젝트를 기억하는 방법」 두 쪽입니다.
주소는 code.claude.com/docs/ko/context-window 입니다.
메모리 쪽은 code.claude.com/docs/ko/memory 입니다.
세 줄의 원문 출처는 『클로드(Claude) 업무 자동화 실전 가이드』(티토트) 2-5절입니다.
8,993자·1,230자·6회·0회는 제 맥에서 대화 기록 파일을 직접 열어 센 값입니다.
조건당 1회 실험이라 재현 결과는 다를 수 있습니다.
메뉴 이름과 동작은 업데이트마다 바뀝니다.
다르게 보이시면 /memory로 지금 실린 파일부터 확인해 보세요.
'Claude code' 카테고리의 다른 글
| 클로드 코드 뭘 시킬지 모를 때 — 새 레포에선 «시킬 수 있는 일 5개»부터 물어봅니다 (0) | 2026.09.13 |
|---|---|
| 클로드 코드에 «다시 고쳐봐» 대신 «설명해봐»를 넣으면 턴이 34% 줄었습니다 (0) | 2026.09.12 |
| 「역할·맥락·목표·형식」 중 클로드 코드에서 매번 쓰는 건 하나뿐입니다 (0) | 2026.09.10 |
| 「오퍼스로 계획하고 소넷으로 실행」은 이제 캐시를 버리는 습관입니다 (0) | 2026.09.09 |
| 클로드 디자인은 터미널과 같은 지갑을 씁니다 — 별도 할당이 없어졌어요 (0) | 2026.09.08 |