언제 쓰나
- 사용자가 과거 대화·결정을 찾아달라고 할 때.
- 현재 대화만으로는 "이미 정한 것인지" 알 수 없고, 그 답이 다음 행동을 가르는 자리에서. 특히 "그 얘기는 한 적 없다"고 답하기 직전이 이 스킬을 열 자리다.
- 하네스 내장 대화 검색 도구를 이미 썼더라도 그것만으로 끝내지 않는다 — 내장 검색은 대개 자기 하네스 기록만 본다.
현재 대화가 언제나 1차 입력이다. 이 스킬은 현재 대화에 답이 없을 때의 보강 입력이다.
실행
현재 SKILL.md가 들어 있는 디렉터리의 scripts/search-sessions.py를 실행한다. 셸에 넘기기 전 절대 경로로 바꾼다.
python3 "<스킬 디렉터리>/scripts/search-sessions.py" "브랜치 전략" --days 30
검색어를 여러 개 주면 모두 포함된 발화만 나온다.
python3 "<스킬 디렉터리>/scripts/search-sessions.py" 워크트리 커밋 --role user
| 옵션 | 설명 |
|---|---|
--days N |
최근 N일로 제한 (기본: 전체 기간) |
--tool claude|codex |
한 하네스 기록만 (기본: 있는 것 전부) |
--role user|assistant |
사용자 발화만 / 에이전트 답변만 (기본: 둘 다) |
--project <경로조각> |
작업 디렉터리 경로에 그 문자열이 든 세션만 |
--context N |
발췌 길이(글자, 기본 200) |
--max-per-session N |
세션당 표시할 발화 수 (기본 3) |
--files-only |
세션 파일 경로만 나열 |
"무엇을 물었는지"를 찾을 땐 --role user가 결과를 크게 줄여준다. 반대로 "무엇을 답했는지·어떤 결론이었는지"가 필요하면 기본값 그대로 둔다.
결과 읽기
[codex] 2026-09-01 11:20 /home/me/work/some-project
/home/me/.codex/sessions/2026/09/01/rollout-....jsonl
09-01 11:20 user 브랜치 전략 이대로 갈까?
… 이 세션에 2건 더
세션 5개 · 발화 7건
훑은 곳: /home/me/.claude/projects, /home/me/.codex/sessions
- 대괄호 안이 그 기록을 남긴 하네스다. 같은 주제가 양쪽에 흩어져 있으면 양쪽을 다 읽고 시간순으로 이어 붙여야 결정의 최종 상태가 나온다.
- 세션 파일 경로가 함께 나오므로, 발췌만으로 부족하면 그 파일을 직접 열어 앞뒤 맥락을 본다.
- 마지막 줄의 "훑은 곳"이 실제로 검사한 폴더다. 한쪽이 "없어서 건너뜀"으로 찍혔으면 그 하네스 기록은 확인되지 않은 것이므로, 결론을 낼 때 그 사실을 함께 말한다.
한계
- 로그 형식에 의존한다. 하네스가 세션 로그 구조를 바꾸면 조용히 0건이 될 수 있다. 확실히 있었던 대화가 안 잡히면
--files-only로 후보 파일이 잡히는지부터 본다. 파일은 잡히는데 발화가 0건이면 형식이 바뀐 것이다. - 1차 필터가
grep이다. 첫 검색어는 로그 파일에 그대로 적힌 문자열이어야 한다. 로그가 유니코드 이스케이프로 저장하는 하네스라면 한글 검색어가 걸리지 않는다. - 삭제된 기록은 못 찾는다. 하네스가 오래된 세션 로그를 주기적으로 지우면 그 기간은 비어 있다. 기록을 오래 보관하려면 별도로 백업한다.