session-skills / guide
/session:handoff
컨텍스트가 차기 직전, 미완 작업을 트래킹 이슈 코멘트 1개와 메모리 파일 1개로 적어 남기고, 복사해 붙일 재개 문장 한 줄을 산출한다.
쓰기 정확히 2건모든 하네스gh 필요커밋/푸시 없음
경계
언제 쓰고, 언제 안 쓰나
이럴 때 쓴다
- 컨텍스트 임계에 가까워졌는데 작업이 안 끝났을 때
- 다음 세션이 고고학 없이 한 문장으로 이어받게 하고 싶을 때
session:close가 미완 작업 때문에[BLOCKED]를 냈을 때 — close 의Next:가 여기를 가리킨다
이럴 땐 다른 스킬
- 세션이 깨끗하게 끝났고 감사만 →
session:close - 완료 작업을 일회성 기록으로 →
gh-issue:create,gh-issue:discussion-create - 같은 세션에서 끊긴 턴 재개 →
session:restart - 토큰 리밋 리셋 후 크론 재개 →
session:resume-after-limit
인터페이스
호출 형식
/session:handoff [issue-number] [remote] [--memory-only] [--new-issue]
/session:handoff -h| 인자 | 설명 | 기본값 |
|---|---|---|
[issue-number] | 트래킹 이슈 번호 (양의 정수) | 자동 해석 (Step 2) |
[remote] | git remote 이름 | origin |
--memory-only | 이슈 코멘트 생략, 메모리에만 기록 | off |
--new-issue | 기존 후보 무시하고 신규 트래킹 이슈 생성 | off |
동작
6단계
1
인자 파싱
remote URL 에서 TARGET_REPO=<owner>/<repo> 해석. 모르는 remote 면 git remote -v 를 보여주고 정지.
2
트래킹 이슈 해석
명시 인자 → 대화의 #N 언급 → 브랜치 wt/issue-N-* → 최근 gh 활동. 첫 히트가 이긴다.
3
인계 본문 작성
references/handoff-template.md 의 섹션 골격 그대로. 남은 작업은 TodoList 에서 끌어온다.
4
코멘트 게시
gh issue comment. --memory-only 면 통째로 건너뛴다. API 실패는 [WARN] 한 줄 후 계속.
5
auto-memory 갱신 (항상)
project 타입 메모리 파일 1개에 이슈 번호, 브랜치, 워크트리, 다음 단계, 재개 문장을 기록하고 인덱스를 갱신.
6
재개 문장 + 리포트
#<N> <next-step> 진행 을 찍고 구조화 리포트로 마감.
후보가 0건일 때
작업 성격으로 판단한다. 여러 세션에 걸칠 실질적 작업이면 gh-issue:create 로 새 트래킹 이슈를 만들고, 사소하거나 거의 끝난 작업이면 memory-only 로 degrade 한다. 아무도 다시 열지 않을 이슈를 만드는 것은 소음이다.
--memory-only 가 명시되면 그것이 항상 이슈 생성보다 우선한다.
계약
주의사항과 제약
- 쓰기는 정확히 2개 — 이슈 코멘트 1개, 메모리 파일 1개. 커밋·푸시·코드 수정·이슈 상태 변경을 하지 않는다.
- 정직성 규칙은 협상 대상이 아니다. “완료 (검증됨)” 에는 머지된 PR 과 이번 세션에서 실제로 그린이었던 테스트만 들어간다. 나머지는 전부 “미검증” 이다.
- 작성한 코드를 ‘완료’ 로 반올림하지 않는다. 부풀린 인계는 다음 세션의 첫 시간을 재검증에 쓰게 만든다.
- 재개 문장을 지어내지 않는다. 실제 트래킹 이슈와 그 실제 다음 단계에 대응해야 한다 — 없는 재개 문장은 없느니만 못하다. 다음 세션이 그대로 실행하기 때문이다.
- 중복 인계 가드. 같은 세션이 남긴
<!-- session-handoff -->코멘트가 있으면 새로 붙이지 않고 그 코멘트를 갱신한다. - HARD-stop 은 하나뿐 — 트래킹 이슈를 못 정하고 GitHub 도 닿지 않는데
--memory-only가 없을 때. 추측하지 말고 물어본다.