flowlisted
Install: claude install-skill idean3885/claude-ops-agent
# Issue Flow Skill
이슈 플로우 단일 진입점. 상태를 감지하여 현재 단계에 맞는 작업을 실행한다.
## 트리거
- "flow", "플로우"
- 자연어 수정 요청 (CLAUDE.md에서 안내)
- "이슈", "issue", "커밋", "commit", "PR", "풀리퀘", "spec", "명세"
## 자연어 매칭
Git 상태와 무관하게 **명시적 요청**이 있으면 해당 가이드를 직접 로딩한다.
| 키워드 | 가이드 |
|--------|--------|
| "이슈 생성", "이슈 시작", "이슈 완료", "issue create/start/complete" | `guides/issue.md` |
| "커밋", "commit" | `guides/commit.md` |
| "PR", "풀리퀘", "pull request" | `guides/pr.md` |
| "spec", "명세", "설계" | `guides/spec.md` |
명시적 키워드 없이 `/flow`만 호출하면 아래 상태 감지로 진행한다.
## 환경 감지 (상태 감지 전 필수)
상태 감지에 앞서 **base 브랜치**와 **워크트리 여부**를 먼저 확인한다.
### Base Branch 감지
feature 브랜치의 분기 원점을 아래 순서로 결정한다. 첫 번째 성공한 결과를 사용한다.
1. **upstream 추적**: `git config branch.<current>.merge` → `refs/heads/` 제거
2. **merge-base 최근접**: upstream 없으면 리모트 브랜치 중 feature/fix/docs/refactor/chore 접두사를 제외한 후보에 대해 `git merge-base HEAD origin/<후보>` + `git rev-list --count <merge-base>..HEAD` → 커밋 수가 가장 적은 브랜치 선택
감지된 base 브랜치를 이후 모든 diff/commit 비교(`git log <base>..HEAD`, `git diff <base>..HEAD`)에 사용한다.
### 브랜치 고유 커밋 감지
base 대비 전체 커밋이 아니라 **이 브랜치에서만 작성된 커밋**을 세야 한다. linked worktree 환경에서 sibling 브랜치와 공유 커밋을 제외한다.
```bash
# main worktree의 HEAD (sibling 브랜치 공통 기준점)
main_head=$(git -C <main_worktree_path> rev-parse HEAD)
# 이 브랜치 고유 커밋 수
git rev-list --count $main_head..HEAD
```
- linked worktree: main worktree HEAD 이후 커밋만 고유 커밋으로 간주
- main worktree (또는 단일 worktree): base 대비 커밋 수를 그대로 사용
상태 감지의 "커밋 있음/없음" 판단은 이 **고유 커밋 수**를 기준으로 한다.
### Worktree 감지
```bash
git rev-