finishlisted
Install: claude install-skill gagip/gagip-dev
# finish
작업 끝의 반복 체인 `정리 → 리뷰 → 커밋 → push → PR`을 한 호출로 묶는다.
세션 로그 분석 결과 이 체인(특히 `commit → create-pr`, `simplify → code-review`)이 가장 빈번한
수동 반복이었다 — 단계마다 다음 스킬을 손으로 부르던 것을 한 번에 잇는다.
> **핵심 원칙: 커밋·PR 스킬을 하드코딩하지 않는다.**
> `syai-commit`·`syai-pr`은 회사 환경 전용이라 개인/다른 환경엔 없다. 커밋 단계와 PR 단계는 항상
> **그 프로젝트에 적용되는 스킬을 감지해서** 호출한다(아래 Step 3·Step 5).
---
## 실행 절차
`$ARGUMENTS`에서 스킵 옵션을 먼저 파싱한다(`no-simplify`/`no-review`/`no-pr`).
### Step 0: 변경 확인
```bash
git status --short && git diff --stat
```
변경이 없으면 즉시 중단하고 사용자에게 알린다(커밋할 것 없음).
현재 브랜치가 `main`/`master`/`develop`이면 **경고**한다 — 전역 브랜치 원칙상 작업 브랜치에서
진행해야 하므로, 계속할지 사용자에게 확인한다.
> 이 빈 변경 체크는 "정리·리뷰 전" 기준이다 — Step 1·2(simplify·code-review `--fix`)가 새 변경을
> 만들 수 있으므로, 그 단계 후 변경이 생기면 정상 진행한다.
### Step 1: 코드 정리 (`no-simplify`면 생략)
`simplify` 스킬을 호출해 reuse·중복·불필요 코드를 정리한다.
### Step 2: 코드 리뷰 (`no-review`면 생략)
`code-review` 스킬을 **effort `medium`**, **위험 지적만 수정**(`--fix`)으로 호출한다.
> **effort 정규화:** code-review에 넘기는 effort는 항상 유효값(`low`/`medium`/`high`/`max`/`ultra`)
> 중 하나로 **명시 전달**한다. 오타(`meduim`)나 미지정이면 기본값 `medium`으로 교정해서 넘긴다 —
> 인식 못 한 값을 넘기면 의도와 다른 강도로 실행될 수 있으므로 추측에 맡기지 않는다.
리뷰가 🔴 위험(버그·보안·데이터 손상)을 지적하면 그것만 반영하고, 스타일/취향은 건너뛴다.
### Step 3: 커밋 — **프로젝트 규칙 자동 감지**
커밋 스킬을 다음 우선순위로 **감지**해서 호출한다(하드코딩 금지):
1. 현재 위치에서 가장 가까운 `CLAUDE.md`/`CLAUDE.local.md`에 커밋 스킬이 명시돼 있으면 그것
(예: `gagip-dev` → `plugin-commit`)
2. 없으면 전역 `~/.claude/CLAUDE.md`에 명시된 커밋 스킬 (회사 환경 → `syai-commit`)
3. 둘 다 없으면 폴백 `common:commit`
> **호출 전 가용성 확인(사전조건):** 감지한 커밋 스