결제 버그를 고치던 세션에서 UI 문구, 배포 설정, 다른 장애까지 이어서 묻다 보면 대화는 길지만 현재 목표는 흐려집니다. 컨텍스트 관리는 토큰을 무조건 줄이는 기술이 아니라, 지금 판단에 필요한 증거와 이미 끝난 이야기를 분리하는 습관입니다.
핵심 99개 목록 대신 개인 개발자가 한 세션을 선명하게 유지하는 12가지 습관을 착수, 탐색, 전환, 종료 네 순간으로 묶었습니다. 팀 규칙과 승인 체계는 별도의 팀 플레이북에서 다룹니다.
세션 첫 줄에서 목표와 읽기 범위를 잠급니다. 다음은 예시입니다. 한 세션에는 한 질문만 둡니다.
git status -sb
claude --permission-mode plan
목표: 결제 재시도 409의 원인만 확인
읽기: CLAUDE.md, src/payment/**, tests/payment/**
허용: Read, Grep, 관련 테스트
금지: UI·배포·DB 스키마 수정, 외부 호출
반환: 관찰 / 기각한 가설 / 수정 후보 / 미검증 / 다음 명령
중단: 다른 목표나 범위 밖 파일이 필요해질 때
사람이 요약을 읽고 같은 목표인지 확인합니다. 목표가 유지되면 “승인한 후보만 수정하고 변경 파일·검증·미검증을 같은 형식으로 반환하세요”라고 이어갑니다. UI나 배포 문제가 새로 보이면 현재 세션을 압축해 억지로 계속하지 않고 인계 메모를 만든 뒤 새 세션을 엽니다.
관련 테스트와 `git diff --stat`, `git diff`, `git diff --check`를 확인합니다. 현재 브랜치나 변경 이유를 설명하지 못하면 중단합니다. 재개 시 목표, 읽은 파일, 마지막 검증 명령을 다시 확인합니다.
착수의 세 습관은 세션이 샛길로 빠지는 것을 막습니다. 첫째, 세션 목표를 “결제 재시도 409 원인 확인”처럼 하나로 씁니다. 둘째, 브랜치와 미커밋 변경을 확인합니다. 셋째, 성공을 보여 줄 테스트 명령을 먼저 찾습니다.
이 셋 없이 “결제 쪽을 전반적으로 개선해 달라”고 시작하면 에이전트는 넓은 파일을 읽고 완료 기준을 추측합니다.
탐색에서는 파일보다 위치를 먼저 찾습니다. 넷째, 검색으로 관련 위치를 좁힙니다. 다섯째, 발견한 파일의 필요한 구간만 읽습니다. 여섯째, 읽은 사실과 해석을 분리합니다.
rg -n 'idempotency|payment_status' src tests
sed -n '120,220p' src/payment/service.ts
# 관찰: 충돌 뒤 조회 호출이 없음
# 해석: 재시도 복구 경로가 빠졌을 가능성
전환의 세 습관은 틀린 이야기를 오래 끌지 않습니다. 일곱째, 관찰이 맞지 않으면 가설을 명시적으로 폐기합니다. 여덟째, 긴 로그는 오류 주변과 요청 ID만 남깁니다. 아홉째, 목표가 UI나 배포처럼 달라지는 순간 새 세션을 엽니다.
`/compact`는 같은 목표를 이어갈 때 유용하지만 잘못된 전제를 고쳐 주지는 않습니다. 서로 다른 문제를 압축해 보존하는 것보다 새 세션이 낫습니다.
종료의 세 습관은 다음 세션의 재조사를 줄입니다. 열째, 바뀐 파일과 이유를 적습니다. 열한째, 실행한 검증과 아직 하지 못한 검증을 구분합니다. 열두째, 다음 사람이 바로 실행할 명령과 중단 조건을 남깁니다.
세션 전문을 영구 문서로 복사하지 않습니다. 다음 작업에도 유효하고 코드에서 바로 알 수 없는 결정만 프로젝트 문서에 남깁니다. 비밀과 일회성 로그는 기록하지 않습니다.
개선 여부는 토큰보다 재탐색으로 판단합니다. 습관을 적용한 다음 세션에서 같은 파일을 다시 찾는 시간, 이미 기각한 가설의 반복, 목표 밖 수정 수를 비교합니다. 입력량이 줄어도 잘못된 파일을 고쳐 재작업이 늘었다면 실패입니다.
한 세션이 두 목표를 갖기 시작하거나 현재 브랜치를 설명할 수 없거나 요약에 미검증 영역이 빠지면 멈추고 인계 메모를 만든 뒤 새로 시작합니다.