Claude Code /compact, 컨텍스트 줄일 때 무엇을 남기나
긴 Claude Code 세션에서 창이 차면 /compact 가 대화 이력을 구조화 요약으로 바꿔 공간을 비웁니다. 자동 compact도 같은 축입니다. 요약을 믿기만 하면 결정·재현·Next 가 흐려집니다. compact 전에 채팅 밖(또는 지시문에) 최소 상태를 고정하는 편이 안전합니다.
이 글은 compact 전 최소 정보 · 다시 시작할 프롬프트 · 파일로 남기는 기준만 다룹니다. 근거는 Commands의 /compact·/context·/clear와 Explore the context window의 What survives compaction 표입니다. 요금·플랜가·한도 숫자는 적지 않습니다. 제휴·C++ 예제도 없습니다.
compact 전 남길 최소 정보는?
한 줄 답: 채팅에만 있는 Goal · Done · Next(하나) · Decisions · 재현 한 줄 · 핵심 경로를 compact 직전에 고정합니다. 고정 수단은 /compact 지시문과 디스크의 CLAUDE.md·메모·플랜·체크포인트 파일입니다.
/compact [instructions] 는 대화 요약을 만들며, 선택 인자로 요약 초점을 줄 수 있습니다. 문서 예: /compact focus on the auth bug fix. 자동 요약이 “중요하다고 짐작한 것”보다 당신이 명시한 축이 남기 쉽습니다.
compact 직전 최소 체크리스트:
| 항목 | 채팅만이면 | compact 전에 |
|---|---|---|
| Goal | 요약에 희석될 수 있음 | /compact 지시문에 한 줄, 또는 파일에 고정 |
| Done / Do-not-redo | 긴 디버그 궤적과 섞임 | “이미 검증·폐기한 접근”을 명시 |
| Next (하나) | 여러 후보가 요약에 섞임 | 다음 한 스텝만 남김 |
| Decisions | 왜 그 설계인지 유실 | 결정·대안 거절 이유 한두 줄 |
| 재현 | 실패 로그가 잘림 | 명령·증상 한 줄 + 경로 |
| 핵심 경로 | 읽은 파일이 많으면 일부만 재읽힘 | 바로 이을 파일 경로를 지시문·파일에 |
실무 순서:
/context로 무엇이 창을 채우는지 본다(카테고리·최적화 제안). 창이 넘치면 문서상 경고와 공간 확보 명령 안내가 나올 수 있다.- 무관한 작업이면
/clear, 같은 작업을 이어갈 거면/compact./clear는 빈 대화,/compact는 같은 대화를 요약으로 이어 간다(문서: Commands). - compact 전에 지시문을 붙인다. 예:
/compact Keep: Goal=<…>; Done=<…>; Next=<one step>; Decisions=<…>;
Repro=<cmd + symptom>; Key paths=<…>. Drop: stale debug tangents, abandoned approaches.
- 디스크에 이미 있는 것은 다시 주입된다(다음 절·표). 채팅에만 있는 계약은 지시문 또는 파일로 옮긴다.
- 큰 읽기는 서브에이전트에 맡기면 본 세션 창을 덜 채운다(문서: delegate large reads). compact 대체가 아니라 채움 속도를 줄이는 수단이다.
자동 compact도 /compact 와 같은 요약 축입니다. 긴 새 작업 전에 초점을 준 수동 /compact 가 “자동이 짐작한 중요도”보다 예측 가능합니다. /autocompact 로 자동 compact가 언제 돌지 창 크기를 맞출 수 있으나, 이 글은 임계값·플랜별 숫자를 창작하지 않습니다. UI·문서의 현재 값을 따릅니다.
다시 시작할 프롬프트는?
한 줄 답: compact 직후에는 “처음부터”가 아니라 요약 + 재주입된 디스크 상태 위에서 Next 한 스텝만 실행하게 합니다. /clear 로 비운 뒤에는 체크포인트·CLAUDE.md 경로를 먼저 읽게 합니다.
compact 직후 이어가기(같은 세션):
After compact: treat the summary as lossy. Re-state Goal and the single Next.
Do not re-explore Done/Do-not-redo. Open only the Key paths listed.
First action: <one concrete Next step>. Report blockers in one line.
/clear 또는 새 대화로 다시 시작할 때:
Read `PATH/TO/CHECKPOINT.md` (and project CLAUDE.md) first.
Do not reconstruct the old chat. Goal / Done / Next / Blocked only.
Execute exactly one Next step. Do not expand scope.
비교(문서 기준):
| 상황 | 명령 | 프롬프트 초점 |
|---|---|---|
| 같은 작업, 창만 비우기 | /compact [instructions] | 요약 검증 → Next 하나 |
| 작업이 무관해짐 | /clear | 체크포인트·CLAUDE.md부터 |
| 요약 전 구간만 줄이기 | /rewind → Summarize … | 선택 메시지부터/까지 요약(문서) |
| 창 구성 확인 | /context | 무엇을 줄일지 판단 |
하지 말 것: “이어서 알아서”, compact 직후 새 대규모 탐색, Done에 이미 있는 실험을 다시 돌리기. 요약은 손실 압축입니다. 검증은 Goal/Next/경로를 한 번 복창하는 것으로 충분합니다.
파일로 남기는 기준은?
한 줄 답: compact 후에도 디스크에서 다시 실리는 것과 요약에만 남는 것을 구분합니다. 오래 쓸 계약·플랜·메모는 파일에 두고, 일회성 잡음은 채팅에 둡니다.
문서 What survives compaction 요지(제품 동작 요약 · 버전표는 공식 문서 기준):
| 메커니즘 | compact 후 |
|---|---|
| 시스템 프롬프트·output style | 계속 적용 |
프로젝트 루트 CLAUDE.md, unscoped rules | 디스크에서 재주입 |
| Auto memory | 디스크에서 재주입 |
| plan mode에서 쓴 플랜 | 디스크에서 재주입 |
paths: 가 있는 rules | 매칭 파일을 다시 읽을 때 로드 |
하위 디렉터리 nested CLAUDE.md | 그 경로 파일을 다시 읽을 때 로드 |
| 읽거나 편집한 파일 | 최근 수정 순으로 최대 다섯 재읽기. 큰 파일은 경로 참조만 될 수 있음 |
| 호출한 skill 본문 | 재주입(스킬·총량 상한 있음 · 오래된 것부터 탈락) |
| 백그라운드 명령·서브에이전트 | 계속 실행 · 중복 시작 방지 알림 |
| 훅이 예전에 넣은 컨텍스트 | 대화와 함께 요약됨 |
compact 소스의 SessionStart 훅 | 실행되어 출력 추가 |
파일로 남길 것 / 채팅에만 둘 것:
| 남길 곳 | 무엇을 | 이유 |
|---|---|---|
루트 CLAUDE.md / unscoped rules | 팀 불변 규칙·권한·금지 경로 | compact 후 재주입 |
| 플랜 파일(plan mode) | 합의된 구현 계획 | 재주입 |
Auto memory / /memory | 반복 학습·선호 | 재주입 · /memory로 편집 |
| 체크포인트 md (레포 합의 경로) | Goal·Done·Next·Blocked·경로 | 채팅 요약에만 맡기지 않음 |
채팅 + /compact 지시문 | 이번 턴만의 초점 | 지시문이 요약 품질을 좌우 |
| 채팅만 | 실패한 긴 로그 덤프 | 재현 한 줄로 줄여 파일·지시문에 |
실무 기준 한 줄:
- 다음 세션·다음 compact에도 필요할까? → 파일이면 산다.
- 경로 scoped rule / nested CLAUDE.md 만 믿으면, compact 직후 그 트리거 파일을 다시 읽기 전에는 비어 있을 수 있다. 항상 필요하면 루트·unscoped 로 올린다(문서 권고).
- compact 직후 최근 파일 재읽기는 상한이 있다. 바로 이을 파일은 체크포인트·지시문에 경로를 명시한다.
- skill은 재주입되지만 상한·잘림이 있다. 중요한 지시는 skill 앞쪽에 둔다(문서).
한 줄 정리: Claude Code compact = /compact로 초점 요약 · 직후 Next 한 스텝 · 재주입되는 것은 디스크(CLAUDE.md·memory·plan) · 채팅 전용 계약은 파일 또는 지시문으로. /clear 와 섞지 않습니다.
FAQ
/compact 와 /clear 차이는?
/compact 는 같은 대화를 요약으로 이어 공간을 확보합니다. /clear(/reset, /new)는 빈 대화로 시작합니다. 무관한 작업 전환은 /clear, 같은 작업 유지·창 비우기는 /compact 입니다.
자동 compact만 믿어도 되나요?
자동도 같은 요약 축입니다. 긴 새 작업 전에 지시문 있는 /compact 가 초점을 고정하기 쉽습니다. 시점은 /context·/autocompact(지원 빌드)로 관찰·조정하고, 창작한 한도 숫자는 쓰지 않습니다.
compact 후에 파일이 “안 읽힌” 것처럼 보이면?
최근 수정분 최대 다섯만 자동 재읽기이고, 큰 파일은 경로 참조만 남을 수 있습니다. 필요 파일을 프롬프트에서 다시 열게 하거나, 체크포인트에 경로를 적습니다.
path-scoped rule은 왜 사라지나요?
트리거 파일 읽기 때 히스토리에 실린 뒤, compact 때 대화와 함께 요약됩니다. compact를 건너뛰어야 하면 paths: 를 빼거나 루트 CLAUDE.md 로 옮깁니다(문서).
출처 (Sources)
- Commands —
/compact [instructions],/context,/clear,/autocompact,/rewind,/memory - Explore the context window — What survives compaction, When your context fills up
- Using Claude Code: session management and 1M context —
/compactvs/clear실무 대비(가격·플랜 숫자 제외)