3.3 커맨드 샘플

커밋 메시지 자동 생성과 PR 설명 자동 작성, 개발자가 매일 반복하는 두 작업을 자동화하는 Claude Code 커스텀 커맨드 샘플이다. 업데이트: 2026-03-08


핵심 요약

구분내용
📖 정의.claude/commands/ 또는 ~/.claude/commands/에 파일을 저장하면 즉시 슬래시 커맨드로 사용 가능하다
💡 핵심/commit은 Conventional Commits 형식, /pr은 GitHub PR 설명 형식을 자동으로 생성한다
🎯 대상커밋 메시지와 PR 작성을 자동화하려는 개발자
⚠️ 주의출력된 내용을 그대로 사용하기 전에 반드시 검토한다

문서 탐색


목차

  1. 샘플 1: /commit — 커밋 메시지 자동 생성기
  2. 샘플 2: /pr — PR 설명 자동 작성기
  3. 두 커맨드 활용 흐름

개요

아래 두 샘플은 개발자가 매일 반복하는 작업을 자동화하는 Claude Code 커스텀 커맨드다. 파일을 .claude/commands/ (프로젝트) 또는 ~/.claude/commands/ (글로벌)에 저장하면 바로 사용할 수 있다.


샘플 1: /commit — 커밋 메시지 자동 생성기

어떤 문제를 해결하는가

커밋 메시지 작성이 번거롭고, 팀마다 형식이 달라서 혼란이 생기는 경우가 있다. 이 커맨드를 활용하면 변경된 코드를 Claude가 분석해서 Conventional Commits 형식의 커밋 메시지를 자동으로 만들어 준다.

Conventional Commits 형식이란?

feat: 로그인 기능 추가
fix: 회원가입 버튼 클릭 오류 수정
docs: README 설치 방법 업데이트
refactor: 인증 로직 리팩토링

타입: 무엇을 했는지 형식으로 작성하는 널리 쓰이는 커밋 컨벤션이다.

파일: .claude/commands/commit.md

---
description: 변경된 코드를 분석하여 Conventional Commits 형식의 커밋 메시지를 생성한다
---
 
현재 스테이징된 변경사항(git diff --staged)을 분석해서
Conventional Commits 형식의 커밋 메시지를 만들어줘.
 
## 분석 순서
 
1. `git diff --staged` 로 변경 내용 확인
2. 변경의 성격 파악 (새 기능? 버그 수정? 리팩토링?)
3. 아래 규칙에 따라 커밋 메시지 작성
 
## 커밋 메시지 규칙
 
**타입 선택 기준:**
- `feat` — 새로운 기능 추가
- `fix` — 버그 수정
- `docs` — 문서만 변경
- `style` — 코드 동작에 영향 없는 스타일 변경 (공백, 세미콜론 등)
- `refactor` — 기능 변경 없는 코드 구조 개선
- `test` — 테스트 코드 추가·수정
- `chore` — 빌드 설정, 패키지 업데이트 등 기타 작업
 
**제목 작성 규칙:**
- 50자 이내
- 현재 시제, 명령형으로 작성 ("추가함" X → "추가" O)
- 마침표 없음
 
**본문 (변경이 복잡한 경우):**
- 무엇을 왜 변경했는지 설명
- 한 줄에 72자 이내
 
## 출력 형식
 
아래 형식으로 출력해줘:
 
---
**추천 커밋 메시지:**
 

타입(범위): 제목

본문 (필요한 경우만)


**변경 요약:**
- 변경된 파일: N개
- 주요 변경사항: (간단히 설명)

**대안 메시지 (다른 표현이 필요하다면):**
1. ...
2. ...
---

스테이징된 변경사항이 없으면:
"스테이징된 변경사항이 없습니다. `git add` 로 파일을 먼저 스테이징해주세요." 라고 알려줘.

사용 방법

# 1. 변경사항 스테이징
git add src/auth.ts
 
# 2. 커맨드 실행
/commit

출력 예시:

추천 커밋 메시지:

feat(auth): JWT 토큰 만료 시간 설정 기능 추가

사용자별 토큰 만료 시간을 설정할 수 있도록
AuthService에 expiresIn 파라미터를 추가함

변경된 파일: 2개
주요 변경사항: src/auth/auth.service.ts, src/auth/dto/login.dto.ts

그대로 커밋하고 싶다면:

git commit -m "feat(auth): JWT 토큰 만료 시간 설정 기능 추가"

샘플 2: /pr — PR(풀 리퀘스트) 설명 자동 작성기

어떤 문제를 해결하는가

코드는 완성됐는데 PR 설명 작성이 막막한 경우가 있다. 무엇을 바꿨는지, 왜 바꿨는지, 어떻게 테스트하는지 — 매번 작성하기 번거롭다. 이 커맨드를 활용하면 현재 브랜치의 변경사항을 분석해서 팀원이 이해하기 쉬운 PR 설명을 자동으로 만들어 준다.

파일: .claude/commands/pr.md

---
description: 현재 브랜치의 변경사항을 분석하여 GitHub PR 설명을 자동으로 작성한다
---
 
현재 브랜치와 main 브랜치의 차이를 분석해서
GitHub Pull Request 설명을 작성해줘.
 
## 분석 순서
 
1. `git log main..HEAD --oneline` 으로 커밋 목록 확인
2. `git diff main...HEAD --stat` 으로 변경된 파일 목록 확인
3. 주요 변경 파일을 `Read` 로 읽어 내용 파악
4. 아래 형식으로 PR 설명 작성
 
## PR 설명 작성 규칙
 
- 기술적 전문 용어는 간단히 설명 추가
- 팀원이 리뷰하기 쉽도록 변경 이유를 명확히 서술
- 테스트 방법은 구체적이고 실행 가능하게 작성
- 관련 이슈가 있다면 연결 (없으면 해당 항목 제거)
 
## 출력 형식
 
아래 마크다운을 그대로 GitHub PR 설명란에 붙여넣을 수 있도록 작성해줘:
 
---
 
## 개요
 
(이 PR이 무엇을 하는지 2~3문장으로 설명)
 
## 변경 사항
 
- (주요 변경사항 1)
- (주요 변경사항 2)
- (주요 변경사항 3)
 
## 변경 이유
 
(왜 이 변경이 필요했는지 설명)
 
## 테스트 방법
 
1. (테스트 단계 1)
2. (테스트 단계 2)
3. (예상 결과)
 
## 스크린샷 (UI 변경이 있는 경우)
 
<!-- 스크린샷이 있으면 여기에 추가 -->
 
## 체크리스트
 
- [ ] 로컬에서 테스트 완료
- [ ] 기존 테스트 통과 확인
- [ ] 문서 업데이트 (필요한 경우)
 
---
 
main 브랜치와 차이가 없으면:
"현재 브랜치에 main 대비 변경사항이 없습니다." 라고 알려줘.

사용 방법

# 기능 브랜치에서 작업 완료 후
/pr

출력 예시:

## 개요
 
사용자 인증 시스템에 JWT 토큰 갱신 기능을 추가했습니다.
기존에는 토큰이 만료되면 다시 로그인해야 했지만,
이제 Refresh Token을 통해 자동으로 토큰이 갱신됩니다.
 
## 변경 사항
 
- `AuthService``refreshToken()` 메서드 추가
- Refresh Token을 HTTP-only 쿠키에 저장하도록 변경
- 토큰 만료 시 자동 갱신 인터셉터 추가
 
## 변경 이유
 
사용자가 1시간마다 재로그인해야 하는 불편함이 지속적으로
보고되어, 자동 토큰 갱신 기능을 구현했습니다.
 
## 테스트 방법
 
1. 로그인 후 1시간 대기 (또는 토큰 만료 시간을 1분으로 임시 설정)
2. API 요청 시 자동으로 토큰이 갱신되는지 확인
3. 네트워크 탭에서 `/auth/refresh` 요청이 자동 발생하는지 확인
 
## 체크리스트
 
- [x] 로컬에서 테스트 완료
- [x] 기존 테스트 통과 확인
- [ ] 문서 업데이트 (필요한 경우)

GitHub PR 설명란에 그대로 붙여넣으면 된다.


두 커맨드 활용 흐름

실제 개발 작업에서 두 커맨드를 이렇게 활용한다:

flowchart TD
    A["기능 개발 완료"]
    A --> B["git add . — 변경사항 스테이징"]
    B --> C["/commit — 커밋 메시지 자동 생성"]
    C --> D["git commit -m '...' — 생성된 메시지로 커밋"]
    D --> E["git push origin feature/ — 브랜치 푸시"]
    E --> F["/pr — PR 설명 자동 작성"]
    F --> G["GitHub에 붙여넣기 — PR 생성 완료"]

반복 작업이 크게 줄어든다.


문서 탐색


더 많은 커맨드 샘플 참고

커뮤니티에서 만든 커맨드들을 참고하면 다양한 아이디어를 얻을 수 있다.