인계
완료된 변경 사항을 패키징하여 검토자가 diff만 보고 의도를 재구성하지 않도록 작성합니다. 계획 문서, 세션, 또는 그 존재 자체에 대한 사전 지식 없이 오직 diff만을 확인하는 검토자를 위해 작성합니다.
작업 해결
입력은 티켓 ID, 슬러그, 계획 산출물 경로 등 부분적인 참조이거나 아무것도 없을 수 있습니다. 아무것도 없으면 세션의 작업을 의미합니다. 새 세션의 경우 브랜치 이름과 최근 커밋에서 추론합니다. 이를 작업의 계획 홈: 프로젝트 계획 디렉토리 내 <id>-<slug>/ 디렉토리, 또는 공유 패밀리 디렉토리 내 플랫한 <id>-<slug>.* 파일로 해석합니다. 명확한 일치 → 계속 진행하며 홈과 발견된 산출물을 명시합니다. 추론되었거나 여러 후보(-vN, …)가 있는 경우 → 먼저 확인합니다. 로컬에 없는 명시적 참조는 멈추고 질문합니다. 절대 추측하지 않습니다.
수집
존재하지 않는 것은 건너뛰고 다음을 읽습니다:
- 작업 산출물 — 계획 홈의 모든
<id>-<slug>*.md: 티켓, 요구사항, 계획, 결정 로그, 이전 검토 및 인계 라운드, 기타 일치하는 모든 것. - 관련 티켓 — 한 단계만 이동: 상위(얇은 컨테이너를 지나 더 높이 올라가는 경우만), 직접 선행/후속, 명시적 관계, 패밀리 디렉토리 형제; 자신의 관계를 확장하지 않습니다. 로컬
.TICKET.md를 먼저; 관계에 로컬 파일이 없고 '왜'에 중요한 경우에만 트래커에서 가져옵니다. 가져올지 확실하지 않으면 질문합니다. - 세션 — 변경을 생성한 경우: 결정, 방향 전환, 제약 사항.
- diff — 대상에 대한 diff 및 커밋 제목.
각 소스는 한 번만, 산출물이 필요로 하는 것보다 깊게 읽지 않습니다: diff는 전체를 훑어보고, 검토 가이드에 이름을 붙일 파일만 깊이 읽으며, 어떤 커밋이 무엇을 변경했는지 커밋별로 재구축하지 않습니다 — 어떤 커밋이 무엇을 변경했는지는 diff의 역할입니다.
그런 다음 계획의 단계와 수용 기준을 diff에 양방향으로 매칭합니다 — 계획되었으나 없음, 존재하나 계획되지 않음. 모든 소스가 읽히거나 확인되어 부재하고 계획된 모든 항목이 매칭될 때 완료됩니다.
근거를 절대 발명하지 않음
'왜'는 소스가 제공하는 경우에만 기술합니다. 설명되지 않은 편차는 작성자에게 한 번 질문합니다. 답이 없거나 질문할 수 없는 경우, 일반 언어로 플래그를 지정하여 전달합니다('기록된 이유 없음 — 확인 필요'). 이는 결정이 아닌 의도치 않은 격차일 수 있기 때문입니다. 출처 추적은 검토자의 읽기가 아니라 당신의 게이트입니다: 무엇을 써야 할지 결정하며 텍스트에 절대 나타나지 않습니다. 확실하지 않으면 항상 질문합니다. 절대 추측하지 않습니다.
산출물
계획 홈의 <slug>.HANDOVER.md; 이미 존재하는 경우 → <slug>.HANDOVER-2.md, -3, … — 절대 덮어쓰지 않습니다. 계획 홈이 없는 경우 → 내용을 제시하고 저장 위치를 묻습니다. 본문은 PR 설명으로 바로 붙여넣을 수 있으며, 독립적으로 설계됩니다:
- 검토자가 열어볼 수 있는 것만 언급 — 트래커 URL 또는 브랜치에 커밋된 파일. 그 외 모든 것(계획 문서, 결정 로그, 세션, 커밋 해시)은 링크되거나 이름이 지정되지 않음: 내용을 씁니다('이것은 ~을 의미했습니다'), 위치는 쓰지 않습니다.
- 관련 티켓은 언급되지 않음 — '왜'가 티켓에 의존하지 않는 한('다음을 준비하기 위해 이렇게 구축됨') — 그런 경우 트래커 URL을 인용합니다.
- 한 화면 미만, 약 400단어; 아래 상한은 목표가 아닌 한도입니다.
- 검토자 친화적인 일반 언어, 이 스킬의 용어는 절대 사용하지 않습니다. 초안을 작성하기 전에 실제로 use-conversational-language를 호출합니다 — 규칙을 암기하는 것으로 충분하지 않습니다.
섹션은 실제로 비어 있는 경우에만 건너뜁니다:
- 무엇과 왜 — 2-3줄.
- 알아둘 결정 사항 — 최대 5줄, 각각: 선택된 것 또는 계획에서 벗어난 것, 그 이유 또는 이유 없음 플래그, 코드에서 볼 위치.
- 검토 가이드 — 판단이 중요한 파일과 그 이유; 나머지는 기계적으로 수행된 것으로 이름을 붙입니다.
- 알려진 격차 — 최대 3개: 단점, 가정, 미해결 질문.
모든 섹션이 채워지거나 의도적으로 건너뛰고, 확인되지 않은 것이 확인된 것으로 읽히지 않고, 텍스트가 검토자가 열 수 없는 것을 가리키지 않을 때 완료됩니다.
경계
- 소스 파일을 수정하지 않습니다. 인계 문서만 작성됩니다.
- 절대 푸시하거나 PR을 열거나 댓글을 달지 않습니다 — 게시는 사용자의 명시적 결정입니다.