PR 라이프사이클 자동화
CI 모니터링과 리뷰 해결을 포함한 PR 생성부터 머지까지의 자동화 워크플로우입니다.
개요
PR 라이프사이클 자동화는 전체 풀 리퀘스트 워크플로우를 처리합니다:
사전 검증 (빌드, 테스트, 린트)
↓
PR 생성 (gh pr create)
↓
CI 모니터링 루프 (최대 10분, 5회 재시도)
↓
리뷰 해결 루프 (최대 3회)
↓
머지 & 정리워크플로우 단계
1단계: 사전 검증
PR 생성 전 확인 사항:
- 커밋되지 않은 변경사항 없음
- 로컬 빌드 통과
- 로컬 테스트 통과
- 로컬 린트 통과
- 브랜치가 리모트에 푸시됨
2단계: PR 생성
구조화된 PR 설명 생성:
## Summary
- 이 PR이 하는 일 (1-3개 항목)
## Changes
- 주요 변경사항 목록
## Test Plan
- [ ] 단위 테스트 통과
- [ ] 통합 테스트 통과
- [ ] 수동 테스트 완료PR 제목은 컨벤셔널 커밋 형식: feat(scope): description
3단계: CI 모니터링 루프
┌──────────────────────────────────────────────────┐
│ CI 모니터링 루프 │
│ │
│ CI 상태 확인 ──▶ 전체 통과? ──▶ 완료 │
│ │ │ │
│ │ 아니오 (실패) │
│ │ │ │
│ │ ┌──────────▼──────────┐ │
│ │ │ 실패 진단 │ │
│ │ │ 이슈 수정 │ │
│ │ │ 수정 푸시 │ │
│ │ └──────────┬──────────┘ │
│ │ │ │
│ │ 재시도 < 5회? │
│ │ ├── 예 → 재확인 │
│ │ └── 아니오 → 중단 │
│ │ │
│ └── 대기중? 60초 후 재확인 (최대 10분) │
└──────────────────────────────────────────────────┘CI 실패 분류:
| 분류 | 자동 수정 | 예시 |
|---|---|---|
| 린트 에러 | 가능 | npm run lint --fix |
| 타입 에러 | 타입 수정 | 누락된 타입 어노테이션 |
| 테스트 실패 | 코드 수정 | 어서션 불일치 |
| 빌드 에러 | 빌드 수정 | 누락된 의존성 |
| 불안정 테스트 | 재실행 | gh run rerun <id> |
4단계: 리뷰 해결 루프
모든 리뷰 코멘트 읽기
↓
분류 (버그/스타일/제안/질문)
↓
모든 이슈를 단일 커밋으로 수정
↓
푸시 및 리뷰 재요청
↓
반복 (최대 3회)코멘트 우선순위:
| 유형 | 우선순위 | 조치 |
|---|---|---|
| 버그/로직 오류 | 크리티컬 | 즉시 수정 |
| 스타일/컨벤션 | 중간 | 제안 적용 |
| 제안/선택사항 | 낮음 | 평가 후 응답 |
| 질문 | 낮음 | 코멘트로 답변 |
5단계: 머지 & 정리
- 모든 CI 체크 통과 확인
- 리뷰 승인 확인
- Squash 머지 및 브랜치 삭제
- main 체크아웃 및 pull
타임아웃 보호
| 파라미터 | 기본값 | 설명 |
|---|---|---|
| CI 대기 타임아웃 | 10분 | CI 완료 대기 최대 시간 |
| CI 재시도 횟수 | 5회 | 수정-재확인 최대 시도 횟수 |
| 폴링 간격 | 60초 | CI 상태 확인 간격 |
| 리뷰 루프 | 3회 | 리뷰 해결 최대 횟수 |
사용법
슬래시 커맨드
bash
# 기본 PR 라이프사이클 (squash 머지, main 브랜치)
/jikime:pr-lifecycle
# 커스텀 베이스 브랜치
/jikime:pr-lifecycle --base develop
# Draft PR
/jikime:pr-lifecycle --draft
# 머지 커밋 (squash 대신)
/jikime:pr-lifecycle --merge
# 머지 후 브랜치 유지
/jikime:pr-lifecycle --no-delete-branch커맨드 옵션
| 옵션 | 설명 | 기본값 |
|---|---|---|
--base <branch> | PR의 베이스 브랜치 | main |
--squash | Squash 머지 | true |
--merge | 머지 커밋 | false |
--no-delete-branch | 머지 후 브랜치 유지 | false |
--draft | Draft PR로 생성 | false |
스킬로 사용
Skill("jikime-workflow-pr-lifecycle")관련 문서
- POC-First 워크플로우 — Phase 5에서 이 스킬 사용
- 구조화된 태스크 포맷 — PR 태스크의 5필드 포맷
- Ralph Loop — CI 수정 루프와 유사한 패턴
- TDD & DDD 워크플로우 — 대안 개발 방법론