
핵심 요약
- 4편의 목표는 세션 수명을 작업 수명과 맞추고, 대화 전문 없이도 다른 구독으로 이어지는 인계 규칙을 만드는 것임
- 새 작업은 새 세션, 같은 작업의 긴 대화는 압축, 공급자 전환은 증거 중심 handoff가 기본 원칙임
- 세션을 계속 재사용하면 과거 대화와 읽은 파일이 새 질문에 반복 포함되어 품질과 사용량을 함께 악화시킬 수 있음
- 좋은 handoff는 바꾼 파일·검증 결과·확정 사실·미해결 질문·다음 행동만 포함함
- 이 편의 산출물인
handoff.md와 전환 체크리스트는 5편의 도구 출력 예산에 연결됨
세션 전환은 상태 기계로 다룸
-
모든 세션은
fresh → active → compact 또는 handoff → closed흐름으로 관리함fresh에서는 3편의 지침과 현재 작업 계약만 읽음active에서는 작업에 필요한 증거만 누적함compact는 같은 목표를 계속할 때만 사용함handoff는 작업자나 공급자가 바뀌거나 현재 세션을 닫을 때 사용함
-
새 목표가 생기면 기존 세션의 편리함보다 경계가 우선임
- 버그 수정 중 unrelated 리뷰를 부탁하는 순간은 새 작업으로 봄
- 같은 이슈의 테스트 실패를 분석하는 일은 기존 목표의 하위 단계로 볼 수 있음
-
Anthropic은 이전 대화·프로젝트 지침·읽은 파일·새 프롬프트가 매 턴 전송된다고 설명함1
- 공식 안내는 새 작업에
/clear, 같은 긴 작업에/compact를 권장함 - 이 구조는 Claude Code의 명시된 동작이며 다른 제품의 내부 과금 방식까지 같다고 단정하면 안 됨
- 공식 안내는 새 작업에
새로 시작할지 압축할지 판정함
-
다음 질문 세 개 중 하나라도 아니면 새 세션을 선택함
- 완료 조건이 이전과 같은지 확인함
- 수정 허용 경로가 이전과 겹치는지 확인함
- 현재 대화의 증거가 다음 판단에 직접 필요한지 확인함
-
압축은 대화를 줄이는 기능이지 작업 경계를 만드는 기능이 아님
- 같은 버그의 원인 조사에서 구현으로 넘어갈 때는 압축이 적절할 수 있음
- 버그 수정이 끝난 뒤 새 기능으로 넘어갈 때는 압축된 과거도 잡음이므로 새 세션이 적절함
-
Gemini CLI는 최대 세션 턴과 압축 임계값을 설정할 수 있음2
model.maxSessionTurns는 유지할 사용자·모델·도구 턴을 제한함model.chatCompression.contextPercentageThreshold는 자동·수동 압축 시점을 정함- 임계값을 낮추면 정보 손실이 빨라질 수 있으므로 기준선 작업으로 검증해야 함
handoff는 대화가 아니라 증거를 전송함
- 공급자가 달라도 읽을 수 있는 Markdown 여섯 항목을 표준으로 사용함
- 목표와 완료 조건
- 현재 커밋과 바꾼 파일
- 실행한 명령과 결과
- 확정된 사실
- 폐기한 가설과 이유
- 다음 한 가지 행동 또는 미해결 질문
# WEB-41 handoff
- Goal: 동점 검색 결과를 안정적으로 정렬함
- State: commit abc123, modified apps/web/lib/tech/search.ts
- Verified: focused test 14/14 passed, typecheck not run
- Facts: score calculation is stable; final sort lacks an ID tie-breaker
- Rejected: locale collation is not involved because IDs differ before localization
- Next: add the ID tie-breaker test, then run the web typecheck-
전문 복사와 장문의 요약은 둘 다 피해야 함
- 채팅 전문은 실패한 시도와 도구 출력을 모두 다시 읽게 함
- 장문의 서술 요약은 사실·추론·다음 행동의 경계를 흐림
-
추론은 확정 사실과 구분해야 함
- 실행 결과로 확인한 내용은
Facts에 기록함 - 가능성만 있는 내용은
Open questions에 기록해 다음 에이전트가 재검증하게 함
- 실행 결과로 확인한 내용은
인계가 실제로 복구되는지 시험함
-
원래 대화를 볼 수 없는 새 세션이 handoff만으로 다음 검증을 끝내야 함
- 새 세션이 같은 질문을 세 번 이상 다시 하면 필수 증거가 빠진 것으로 봄
- 무관한 파일을 다시 넓게 탐색하면 경로나 확정 사실이 부족한 것으로 봄
-
성공 지표는 짧은 handoff 자체가 아니라 복구 비용임
- 첫 유효 변경까지 걸린 턴 수를 기록함
- 이미 실행한 명령의 중복 횟수를 기록함
- handoff 오류로 되돌린 변경과 사람 힌트 수를 기록함
-
세션 전환이 잦아도 항상 절약되는 것은 아님
- 몇 분짜리 단일 파일 변경은 handoff 작성 비용이 더 클 수 있음
- 설계 근거가 대화 속 상호작용에 의존하는 작업은 먼저 결정 기록을 보강해야 함
다음 편으로 출력 경계를 넘김
-
5편에서는 handoff에 들어가는 도구 증거의 최대 크기를 정함
- 통과한 테스트 전체 로그 대신 명령·결과 수·소요 시간만 남김
- 실패 로그는 첫 오류와 앞뒤 문맥만 남김
- Git diff는 파일 목록과 핵심 hunk만 넘김
-
4편의 완료 조건은 새 공급자 세션이 전문 없이 작업을 재개하는 것임
Codex에서 조사하고Claude Code에서 검토하거나 그 반대의 경로로 한 번 시험함- API 키 없이 각 공식 클라이언트 로그인만 사용한다는 1편의 경계를 유지함
실행 제안
- 오늘부터 새 목표가 등장할 때 기존 세션에 바로 묻지 말고
handoff.md를 갱신한 뒤 새 세션을 시작해야 함 - 같은 작업에서는 컨텍스트 지표가 커지거나 응답이 과거 가설에 고착될 때 압축을 사용해야 함
- 다섯 번의 전환에서 중복 명령과 첫 유효 변경까지의 턴이 줄었을 때만 이 프로토콜을 표준으로 채택함
Footnotes
-
Anthropic, Claude Code의 모델·사용량·한도 — 매 턴 포함되는 컨텍스트와
/clear,/compact의 사용 시점을 설명함 ↩ -
Google, Gemini CLI 설정 — 최대 세션 턴과 컨텍스트 압축 임계값을 설명함 ↩


