문제와 배경
AI 코딩 에이전트와의 세션은 끝나는 순간 증발한다. 그날 내린 결정, 막혔던 지점, 해결 방법, "다음부터는 이렇게 하자"던 다짐까지 전부. 대화 로그가 남더라도 수만 토큰의 원문은 검색도, 재사용도 어렵다.
/agent-memory-log는 이 문제를 푸는 슬래시 커맨드다. 세션이 끝날 때(정확히는 사용자가 원할 때) 현재 세션을 구조화된 마크다운 노트로 요약해 Obsidian 기반 AgentMemory 볼트에 적재한다.
무엇을 남기는가
원문 로그가 아니라 에피스테믹 계층으로 정리한 요약을 남긴다. 노트는 고정된 섹션 구조를 가진다.
- 작업 요약 — 이 세션에서 무엇을 했는지 1~3문장
- 변경 파일 — 실제로 손댄 파일 목록
- 중요한 결정 — 왜 그 방식을 선택했는지
- 막힌 점 / 해결 — 디버깅 과정에서 얻은 것
- 배운 점 — 다음 세션에 전달할 지식
- 다음부터 적용할 규칙 후보 — 습관으로 승격할 만한 것
섹션을 고정한 이유는 단순하다. 나중에 여러 세션 노트를 기계적으로 훑을 때(digest, 승격 파이프라인) 어디에 무엇이 있는지 예측 가능해야 하기 때문이다.
설계에서 신경 쓴 것
같은 날 충돌 처리
노트 경로는 10-sessions/claude/{날짜}-claude-{프로젝트}.md다. 하루에 같은 프로젝트로 세션을 여러 번 저장하면 CLI가 기존 파일을 건드리지 않고 -2, -3, … 접미사로 새 파일을 만든다(uniqueFilePath). 이전 세션을 stash/mv/복원할 필요가 없다.
훅이 아니라 수동 실행
처음엔 세션 종료 훅으로 자동 저장했지만, 지금은 명시적 요청 시에만 실행한다. 모든 세션이 기록할 가치가 있는 건 아니고, 자동 저장은 노이즈 노트를 양산해 볼트의 신호 대비 잡음비를 떨어뜨렸다.
파이프라인에서의 위치
이 커맨드는 [기록 → 지식 → 글] 파이프라인의 첫 단계다. 여기서 쌓인 세션 노트와 일일 TIL이 다음 단계인 /til-to-knowledge의 입력이 되어, 프로젝트 특수 사정이 제거된 범용 지식 문서로 승격된다.
배운 점
기록 시스템의 가치는 "쓰는 비용"이 아니라 "다시 읽힐 확률"이 결정한다. 구조를 고정하고, 충돌을 방어하고, 쓰레기를 안 만드는 것 — 셋 다 다시 읽힐 확률을 올리기 위한 장치다.