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 가 없을 때. 추측하지 말고 물어본다.