mattpocock/skills의 handoff 스킬 해부 — "쓰면 이렇게 됩니다"가 아니라 "이런 프롬프트·지시문·저장 위치라서 그 결과가 나옵니다"를 실제 소스로 확인
npx skills@latest add mattpocock/skills로 설치)
출처: github.com/mattpocock/skills — skills/productivity/handoff/SKILL.md
긴 세션 끝에 새 창을 열면
"아까 하던 거 다시 설명해줄 수 있어요?"
에이전트는 이전 세션을 기억하지 못한다. 우리는 매번 배경을 다시 설명하고, 결정 맥락을 복붙하고, "아 그거 지난번에…"를 반복한다.
출처: mattpocock/skills — skills/productivity/handoff/SKILL.md
🚫 막는 추측: 이전 세션의 원문 그대로가 곧 최선의 컨텍스트다
원문 붙여넣기는 세 가지를 무시한다:
출처: mattpocock/skills — handoff SKILL.md (중복 배제·민감정보 제거 지시 근거)
| 문제 | 원인 | 결과 |
|---|---|---|
| 토큰 폭발 | 대화 원문은 탐색·실수·반복을 포함한 미가공 데이터 | 새 에이전트 컨텍스트 창의 상당 부분 소비, 새 작업 여유 감소 |
| 중복 아티팩트 | PRD·ADR·이슈·커밋 diff에 이미 기록된 결정을 대화에서 또 설명 | 같은 정보가 두 곳에 — 나중에 어느 쪽이 최신인지 혼란 |
| 민감 정보 | 개발 대화엔 API 키·DB 자격·PII가 섞이기 쉬움 | 핸드오프 문서가 민감 데이터 유출 경로가 됨 |
/compact)도 도움이 되지만 — 같은 세션 내부에서만 작동한다. 다른 에이전트·도구·팀원에게 넘길 수 없고, 민감 정보를 능동적으로 걷어내지 않는다.
handoff에는 바이너리도 API도 없다. 구현체는 SKILL.md 한 파일 — YAML frontmatter + 마크다운 지시문이다. "압축(compaction)"의 실체는 LLM이 대화를 다시 읽고 구조화된 요약 파일을 쓰는 것이다.
--- description: "Compact the current conversation into a handoff document for another agent to pick up." args: - name: focus description: "What will the next session be used for?" required: false --- # handoff Write a handoff document summarising the current conversation so a fresh agent can continue. Save it to the temporary directory of the user's OS — NOT the current workspace. Do NOT duplicate content already in other artifacts (PRDs, plans, ADRs, issues, commits, diffs) — reference them by path or URL instead. Redact sensitive info (API keys, passwords, PII). The document MUST include a "suggested skills" section recommending skills the next agent should invoke.
각 지시문이 하는 일: LLM에게 무엇을, 어디에, 어떻게 쓸지를 명령한다 — 이것이 "스킬"의 전부다.
출처: mattpocock/skills — skills/productivity/handoff/SKILL.md (frontmatter 및 지시문 원문)
Claude Code 내장 /compact | mattpocock/skills handoff | |
|---|---|---|
| 범위 | 현재 세션 내부 — in-context 요약 | 외부 파일 생성 — 세션 밖으로 이동 가능 |
| 저장 위치 | 메모리(세션 종료 시 소멸) | OS 임시 디렉토리(/tmp 등) — 영속 |
| 대상 | 같은 에이전트·같은 세션 | 다른 에이전트·다른 세션·다른 도구 |
| 민감 정보 | 별도 처리 없음 | 능동적 redact 지시 |
| 중복 배제 | 별도 처리 없음 | 기존 아티팩트는 경로 참조로 대체 |
| suggested skills | 없음 | 필수 포함 — 다음 에이전트가 할 일 제안 |
/compact는 포스트잇 메모(책상 위에서만 유효), handoff는 인수인계 보고서(누가 읽어도 이해 가능, 어디에나 전달 가능).handoff는 선택적 인자 "What will the next session be used for?"를 받는다. 이 값이 있으면 LLM이 다음 세션 목적에 맞게 문서 구조를 조정한다:
/handoff "다음 세션은 PR 리뷰에 집중"
→ 생성 문서: 리뷰 관련 컨텍스트 강조, 무관한 탐색 과정 생략
/handoff "다음 에이전트가 배포를 이어받음"
→ 생성 문서: 배포 상태·환경 변수·미완 단계 앞에 배치
출처: mattpocock/skills — handoff SKILL.md (args·저장 위치·suggested skills 지시 원문)
| 요소 | 내용 |
|---|---|
| 스킬 정체 | SKILL.md 한 파일 — YAML frontmatter + 마크다운 지시문. 바이너리 없음 |
| 동작 방식 | LLM이 대화를 읽고 구조화된 요약을 OS 임시 디렉토리에 저장 |
| 핵심 규칙 | 중복 배제(경로 참조) · 민감 정보 redact · suggested skills 포함 |
| /compact 차이 | in-context(소멸) vs 외부 파일(이동 가능·영속) |
컨텍스트는 대화 안에 갇혀 있을 필요가 없다.
잘 만든 핸드오프 문서 하나가 맥락을 어디든 이식한다
/handoff 한 번 호출해보기.
생성된 /tmp 문서를 열어 — "이게 내가 오늘 한 일의 요약인가?" 확인. 부족한 부분이 보이면 그게 다음 세션의 시작점.
질문 / "세션 컨텍스트 단절" 경험 공유