skills/session-recap/SKILL.md
직전 세션 요약 추출 — 세션 JSONL에서 핵심 텍스트만 뽑아 빠르게 맥락 복원. '직전에 뭐했지', '이전 세션', '무슨 작업', 'what did I do', 'last session'. raw JSONL read 대신 사용 — 100KB → 4KB로 85% 토큰 절감.
npx skillsauth add junghan0611/agent-config session-recapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
세션 JSONL에서 user/assistant 텍스트만 추출한다.
raw JSONL을 read하면 50KB JSON 노이즈가 컨텍스트에 들어가므로 절대 하지 않는다.
멀티 하네스 지원: pi와 Claude Code 세션 모두 처리. --source로 필터링 가능.
이 스킬은 /recall의 저수준 extractor다. 단일 repo/session 복원은 여기서 처리하고, cross-project 회신·day-query·journal §/llmlog까지 엮는 multi-axis recall은 commands/recall.md를 따른다. (이전 슬래시명 /recap은 Claude Code 내장과 충돌해 2026-05-12 rename.)
python3 {baseDir}/scripts/session-recap.py -p <PROJECT> -m 15
| Flag | Default | Description |
|------|---------|-------------|
| -p, --project NAME | all | Project filter (exact match). Always specify. |
| -m, --messages N | 20 | Last N messages per session |
| -s, --sessions N | 1 | Last N sessions |
| -c, --chars N | 300 | Max chars per message |
| -a, --all-projects | - | Include all projects |
| --commits | off | Include git commit commands |
| --cost | off | Session cost summary |
| --skip N | 1 | Skip latest N sessions (current) |
| -f, --format | text | text or json |
| --source | all | pi, claude, or all. 하네스 필터 |
# 직전 세션
python3 {baseDir}/scripts/session-recap.py -p agent-config -m 15
# 이전 세션 요약 + 비용
python3 {baseDir}/scripts/session-recap.py -p dictcli -m 20 --cost
# 전체 최근 세션
python3 {baseDir}/scripts/session-recap.py -a -m 10
# 최근 3개 세션
python3 {baseDir}/scripts/session-recap.py -p notes -s 3 -m 10
# 커밋 목록
python3 {baseDir}/scripts/session-recap.py -p nixos-config --commits
# pi 세션만
python3 {baseDir}/scripts/session-recap.py -p agent-config -m 15 --source pi
# Claude Code 세션만
python3 {baseDir}/scripts/session-recap.py -p agent-config -m 15 --source claude
# 양쪽 통합 (기본값)
python3 {baseDir}/scripts/session-recap.py -p agent-config -m 15 --source all
기본 규칙은 CWD의 마지막 디렉토리명이다.
프로젝트명 = 리포 디렉토리명 (~/repos/gh/agent-config → agent-config).
| CWD | -p value |
|-----|-----------|
| ~/repos/gh/agent-config | agent-config |
| ~/repos/work/some-proj | some-proj |
| /home/junghan (홈) | home |
다음 경우는 CWD basename을 기계적으로 쓰지 말고, 사용자가 가리킨 맥락의 프로젝트명을 넣는다.
-p home-p cosandenken, notes, pi-shell-acp 등)확실하지 않으면:
ls -lt ~/.pi/agent/sessions/ | head
로 최근 세션 디렉토리를 보고, 사용자가 말한 작업명과 최근 세션명이 일치하는지 확인한다.
-p 없으면 전체 프로젝트에서 최신 1개 — 다른 리포 세션이 나올 수 있다.
Step 0: 사용자가 말한 맥락이 home/Entwurf/COS/특정 repo 담당자인지 먼저 판별
Step 1: python3 {baseDir}/scripts/session-recap.py -p <PROJECT> -m 15 --source pi
Step 2: 출력 헤더(`═══ project [source] (file...) ═══`)와 첫 1~3개 메시지로 대상 세션이 맞는지 검증
Step 3: 결과가 비었거나 짧으면 → --source all 또는 -s 3 --skip 0
Step 4: 검증된 출력만 요약 답변
다음 경우는 session-recap만으로 끝내지 말고 /recall 프로토콜로 확장한다.
§repo 마커나 llmlog가 작업의 본류일 가능성이 있다.확장 순서: session-recap → 결과에서 proper noun 추출 → session_search 2단계 → 필요 시 day-query (gitcli --summary, denotecli day, lifetract, calendar) → 본 축/안 본 축을 함께 보고.
왜 --source pi 먼저? Claude Code는 재시작마다 새 JSONL을 만들어서,
--source all(기본)이면 메시지 1~2개짜리 짧은 세션으로 결과가 도배된다.
pi 세션이 실질적인 작업 기록이므로 먼저 시도.
요약 답변에는 최소한 다음 두 줄을 포함한다.
조회 프로젝트: <PROJECT>대상 세션: ═══ ... ═══ 의 헤더 정보그리고 요약 내용은 반드시 실제 출력 텍스트에만 근거해야 한다. 기억, 다른 세션, 비슷한 작업을 섞어 추론 요약하지 말 것.
조회 프로젝트: home
대상 세션: ═══ home [pi] (2026-04-19T23-53-12-415Z_...) ═══
요약:
- ...
- ...
- ...
헤더를 먼저 적으면, 지금 무엇을 보고 말하는지가 답변에 고정된다.
사용자가 기대한 주제(예: denote wrapper)가 출력에 없으면, 억지로 이어붙여 요약하지 말고 먼저 이렇게 말한다.
현재 조회된 세션에는 denote wrapper 맥락이 없습니다.지금 출력은 모델 확인/인사 세션입니다.원하면 -p home 또는 -s 3으로 다시 확인하겠습니다.즉, 불일치는 실패가 아니라 신호다. 먼저 보고하고, 그 다음 범위를 넓힌다.
하지 말 것:
read로 세션 JSONL 직접 읽기 (50KB JSON 노이즈)session_search 후 원본 JSONL 확인 (불필요한 중복)| Method | Context | Cost | |--------|---------|------| | raw JSONL read | ~100KB | ~$0.63 | | session-recap | ~4KB | ~$0.09 |
testing
Cut an OpenClaw-style CalVer snapshot tag. Tag loop = collect commits + closed NEXT.md items, move them to CHANGELOG.md, remove only those closed items from NEXT.md, then pre-flight/tag/push/stamp when explicitly requested. Not SemVer/deploy; doc/ops repos tag too. ROADMAP.md is optional/manual. Triggers: 태그 박자, 릴리즈 컷, changelog 정리, NEXT 비우자/갈무리, cut a release/tag, vYYYY.M.D[-suffix].
development
멀티하네스용 /recall 래퍼. native custom command surface가 없는 하네스(예: Antigravity, Codex)에서도 /recall에 해당하는 다축 맥락 복원을 skill로 호출한다. session-recap, NEXT.md·ROADMAP.md, git status/log, semantic-memory를 조합해 어제/오늘의 작업축을 되살린다.
tools
포지(forge) — 셀프호스팅 Forgejo 이슈/PR/라벨/코멘트 작업면. 힣 에이전트가 코드 면에서 일하는 공유 손. botment의 자식 패턴(가든 댓글면 → 코드 댓글면 endpoint swap). 'forge', 'forgejo', '포지', 'issue', 'pull request', '이슈', '풀리퀘', '코드 댓글', '라벨'.
tools
sync entwurf 자식을 들여다보는 손. 호출자가 'Mattering...'에 묶여있을 때 자식 분신이 무엇을 하는지 확인. entwurf_peers는 control socket 있는 세션만 보여주는데, 이 스킬은 자식 entwurf 세션(이름 태그 entwurf)까지 합쳐서 본다. 트리거: 'entwurf-peek', '분신 들여다보기', '진행 중 세션', 'sync entwurf 안에서', 'peek session', 'live session map', '분신 추적'.