콘텐츠로 이동

/clear와 /compact

문제

작업이 끝났습니다. 다음 작업으로 넘어가야 하는데, 지금 세션을 지울지 이어갈지 매번 망설입니다.

추천

다음 작업이 지금 대화의 결론만 필요로 하면 /clear하고, 과정까지 필요로 하면 핸드오프 문서를 씁니다. /compact는 둘 중 어느 쪽도 아닐 때만 씁니다.

이유

공식 가이드는 “관련 없는 작업 간에 /clear를 자주” 하라고 권합니다. 이 권고는 맞습니다. 다만 /clear, /compact, 핸드오프 문서 셋 중 무엇을 고를지는 기준이 더 필요합니다.

/clear는 컨텍스트를 지우지만 거기서 얻은 판단도 같이 지웁니다. /resume으로 이전 세션을 되살리면 컨텍스트는 돌아오지만 잡음까지 같이 되살아납니다. 핸드오프 문서는 그 사이에 있습니다. 결론만 남기고 잡음은 버립니다.

판단 기준은 무엇을 남길지입니다. 코드는 git이 보존합니다. 의도와 결정 근거, 이미 해 보고 접은 길은 손으로 남겨 두지 않으면 사라집니다. 이어받는 쪽이 되찾기 가장 어려운 정보이므로 핸드오프 문서는 여기에 공을 들입니다.

/compact가 이 둘 사이에서 밀리는 이유도 같습니다. 압축은 무엇을 남길지를 모델이 정합니다. 핸드오프 문서는 무엇을 남길지를 사람이 정합니다. “이미 해봤다 접은 길”은 압축이 가장 먼저 버리는 정보입니다. 이어받는 쪽에는 그 정보가 가장 비쌉니다. 남길 것이 무엇인지 스스로 알고 있다면 그 판단을 모델에게 넘기지 않는 편이 낫습니다.

예시

판단 순서는 세 갈래입니다.

지금 세션의 결론이 다음 작업에 필요한가?
├─ 아니오 → /clear
├─ 예, 결론만 → 핸드오프 문서 작성 후 /clear
└─ 예, 지금 디버깅 흐름 자체가 필요 → /compact

핸드오프 문서의 값은 무엇을 쓰는지에 달려 있습니다. 파일 목록과 변경 내역은 git이 이미 갖고 있으니 쓸 이유가 없습니다.

## 하려던 것
## 지금까지 확인한 사실 (근거와 함께)
## 시도했다가 접은 접근과 그 이유 ← 여기가 가장 비싸다
## 다음에 할 것

저장 위치도 설계 요소입니다. 레포 안이 아니라 홈 디렉터리 아래처럼 런타임 중립적인 위치에 둡니다. 그러면 여러 에이전트 도구가 같은 기본 위치를 공유해 서로 이어받을 수 있습니다. 레포 밖이므로 .gitignore에 손댈 필요도 없습니다.

하지 말 것

하나의 세션을 하루 종일 쓰기. 실패한 접근법이 컨텍스트에 남아 다음 판단을 오염시킵니다.

습관적으로 /compact 누르기. 압축은 무엇을 버릴지를 모델이 정합니다. 남길 것이 분명하면 핸드오프를 쓰는 편이 낫고, 남길 것이 없으면 /clear가 낫습니다. /compact는 그 사이의 좁은 경우입니다.

핸드오프 문서에 파일 목록 나열하기. git이 이미 갖고 있는 정보입니다. 지면은 “왜 그렇게 했는가”와 “무엇을 해보고 접었는가”에 씁니다.