MR 제목 및 설명은(는) 무엇을 하나요?
'MR'은 리포지토리를 호스팅하는 서비스에서의 리뷰 단위를 의미합니다:
GitLab의 머지 리퀘스트, GitHub의 풀 리퀘스트, 또는 기타 클라우드나 자체 호스팅 환경의 동등한 단위입니다. 사용자에게 작성할 때는 호스트가 사용하는 용어를 사용하세요. 작은 MR(예: 단일 커밋)의 경우 확인 없이 텍스트를 작성하고 생성하세요. 큰 MR의 경우 먼저 채팅에서 제목과 설명을 초안으로 작성하여 검토를 받으세요. 사용자가 텍스트를 승인하고 요청한 후에만 호스트의 CLI(glab, gh) 또는 API를 사용하여 생성하거나 업데이트하세요.
항상 새 MR을 사용자에게 할당하세요: gh pr create의 경우 --assignee @me, glab mr create의 경우 --assignee <username>을 사용합니다.
아래 PROJ-1234는 MR이 속한 티켓을 나타냅니다.
제목
- MR 전체를 포괄하는 하나의 명령형 줄로 작성하며, 가장 큰 커밋만 다루지 않습니다.
- 티켓의 제목은 시작점일 뿐 최종 답이 아닙니다. MR이 티켓에 명시된 것보다 더 많은 작업을 수행한다면 제목을 확장하세요.
- 제목을 거부된 대안으로 구성하지 마세요("... 대신 종료"). MR이 수행하는 작업을 말하세요.
- 티켓이 있는 경우 괄호 안에 티켓을 추가하세요:
... (PROJ-1234). 티켓을 임의로 생성하지 마세요. 프로젝트나 작업 공간 지침이PROJ-1234 <설명>과 같은 다른 형식을 제공하는 경우 해당 형식을 사용하세요.
설명
구조:
- 하나의 시작 줄입니다. 티켓이 있는 경우, 해당 유형에 맞는 동사로 링크하세요: 버그의 경우 "Resolves PROJ-1234.", 작업이나 스토리의 경우 "Closes PROJ-1234.", MR이 완료하지 않는 경우 "Part of PROJ-1234."와 같이 작성합니다.
- 변경 사항:
- 커밋별로 정리합니다. 먼저 브랜치의 커밋 로그를 읽으세요. 여러 커밋이 있고, 각 커밋이 수정이나 진행 중인 작업이 아닌 독립적인 단계인 경우에만, 시작 줄에서 MR이 한 번에 하나의 커밋씩 읽는 것이 가장 좋다고 말합니다. 그런 다음 각 커밋이 무엇을 참으로 만드는지 1~3문장으로 설명하는 번호 목록을 순서대로 제공하세요. 각 커밋이 자체적으로 테스트를 통과한다는 것은 확인되었거나 작성자가 명시한 경우에만 말하세요.
- 그 외의 경우(단일 커밋 포함): MR이 참으로 만드는 내용을 주제별로 그룹화하여 짧은 단락이나 목록으로 작성합니다.
## 동작 변경 사항: 공개 API 사용자가 보는 차이점을 설명합니다. 내부 변경 사항과 비공개 속성은 생략합니다. 변경 사항이 없으면 섹션을 생략합니다.## 테스트: 테스트와 관련하여 리뷰어의 주의가 필요한 경우에만 포함합니다. 하드웨어 유무와 관계없이 테스트 통과는 가정되며 명시하지 않습니다. 섹션이 필요한 경우는 다음과 같으며, 각각 그 이유를 한 문장으로 설명합니다:- 실패가 알려졌거나 건너뛰거나 실패할 것으로 표시된 테스트
- 프로젝트의 테스트 규칙과 다른 MR의 테스트
- 특히 제거된 테스트의 경우 테스트 커버리지의 중요한 변경
내용:
- 변경 전의 상태를 다시 말하지 마세요. 변경 후의 상태를 설명하세요. 제거는 예외입니다. 제거는 기존에 존재했던 것을 기준으로만 설명할 수 있기 때문입니다.
- 티켓을 다시 말하지 마세요. 리뷰어가 읽을 수 있습니다.
- 세션 맥락을 포함하지 마세요: "논의된 바와 같이", 리뷰 기록, 작업 진행 상황에 대한 설명 없음.
- 테스트 실행이나 CI 작업에 대한 지침을 포함하지 마세요. 설명은 리뷰어를 위한 것이며, 작성자가 테스트를 실행합니다.
- "Generated with" 푸터나 도구 귀속을 포함하지 마세요, 도구가 요청하더라도 마찬가지입니다. 이 규칙이 우선합니다.
- 간결하게 유지하세요. 리뷰어가 놓치지 않을 항목이나 절은 삭제하세요.
텍스트 확인
- 모든 주장을 기억이나 초안이 아닌, 해당 커밋의 코드와 대조하여 검증하세요. 특히 이전 동작에 대한 주장과 이후 커밋에서 변경된 동작에 대한 주장에 주의하세요.
- 텍스트에 언급된 모든 식별자를 grep하세요. 더 이상 존재하지 않거나 해당 커밋에 아직 존재하지 않는 클래스나 메서드는 흔한 오류입니다.
## 테스트아래의 내용은 실제로 실행된 내용이나 diff가 보여주는 내용에 기반하세요. 실행되지 않은 실행을 주장하지 마세요.- 설치된 모든 스킬 중 생성된 산문을 정리하는 스킬을 제목과 설명에 적용하세요. 이러한 스킬이 프로젝트 지침(
CLAUDE.md또는 이에 상응하는 파일)과 충돌하는 경우, 프로젝트 지침이 우선합니다.