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왜 그 설계인지 유실결정·대안 거절 이유 한두 줄
재현실패 로그가 잘림명령·증상 한 줄 + 경로
핵심 경로읽은 파일이 많으면 일부만 재읽힘바로 이을 파일 경로를 지시문·파일에

실무 순서:

  1. /context 로 무엇이 창을 채우는지 본다(카테고리·최적화 제안). 창이 넘치면 문서상 경고와 공간 확보 명령 안내가 나올 수 있다.
  2. 무관한 작업이면 /clear, 같은 작업을 이어갈 거면 /compact. /clear 는 빈 대화, /compact 는 같은 대화를 요약으로 이어 간다(문서: Commands).
  3. compact 전에 지시문을 붙인다. 예:
/compact Keep: Goal=<…>; Done=<…>; Next=<one step>; Decisions=<…>;
Repro=<cmd + symptom>; Key paths=<…>. Drop: stale debug tangents, abandoned approaches.
  1. 디스크에 이미 있는 것은 다시 주입된다(다음 절·표). 채팅에만 있는 계약은 지시문 또는 파일로 옮긴다.
  2. 큰 읽기는 서브에이전트에 맡기면 본 세션 창을 덜 채운다(문서: 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 지시문이번 턴만의 초점지시문이 요약 품질을 좌우
채팅만실패한 긴 로그 덤프재현 한 줄로 줄여 파일·지시문에

실무 기준 한 줄:

  1. 다음 세션·다음 compact에도 필요할까? → 파일이면 산다.
  2. 경로 scoped rule / nested CLAUDE.md 만 믿으면, compact 직후 그 트리거 파일을 다시 읽기 전에는 비어 있을 수 있다. 항상 필요하면 루트·unscoped 로 올린다(문서 권고).
  3. compact 직후 최근 파일 재읽기는 상한이 있다. 바로 이을 파일은 체크포인트·지시문에 경로를 명시한다.
  4. 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)