pairlisted
Install: claude install-skill SONGYEONGSIN/vibe-flow
# Pair Mode — 자동 오케스트레이션 스킬
커뮤니티 패턴([disler/claude-code-hooks-mastery](https://github.com/disler/claude-code-hooks-mastery)) 적용. 단일 에이전트 자가검증의 한계를 **Builder + Validator 구조적 역할 분리**로 해소하며, **L2 자동화**로 전체 루프를 `/pair` 한 번에 돌린다.
## 사용법
```
/pair "사용자 로그인 기능 구현"
/pair "checkout.ts의 totalAmount 계산 버그 수정"
/pair "Button 컴포넌트 props 인터페이스 리팩터링"
```
`$ARGUMENTS`에 작업 설명 전달. 설명이 비어 있으면 Claude가 사용자에게 명확화 질문.
## 역할 분리 (불변)
| 역할 | 에이전트 | 권한 | 책임 |
| --- | --- | --- | --- |
| **Builder** | `developer` | Read/Grep/Glob/Bash/Edit/Write | 구현 + 테스트 작성 + 자기 기준 통과까지 |
| **Validator** | `validator` | Read/Grep/Glob/Bash (Edit/Write 차단) | 실제 테스트 실행 + binary 판정 |
Validator는 수정 권한 없음. 제안만 하고 회신. Builder가 다시 수정.
## 오케스트레이션 절차 (Claude가 실행)
### 1. 작업 파싱
`$ARGUMENTS`에서 작업 설명 추출:
- 비어 있으면 사용자에게 "어떤 작업을 pair mode로 처리할까요?" 질문 후 대기
- 길이 너무 짧으면(10자 미만) acceptance criteria 도출이 어려우니 추가 설명 요청
획득한 후 아래 컨텍스트 초기화:
```
TASK_DESC = $ARGUMENTS
ITERATION = 0
MAX_ITERATIONS = 3
PREV_FEEDBACK = null
```
### 2. Builder 스폰 (Agent 도구)
`Agent` 도구로 developer 에이전트 위임. **agents/developer.md의 내용을 시스템 프롬프트 컨텍스트로 제공**:
```
subagent_type: "general-purpose"
description: "Pair mode Builder"
prompt: """
너는 `developer` 에이전트다. `.claude/agents/developer.md`의 역할·규칙을 그대로 따른다.
## 작업
{TASK_DESC}
## 이전 반려 피드백 (있으면)
{PREV_FEEDBACK or "없음 (최초 시도)"}
## 완료 기준 체크리스트
- [ ] 실패 테스트(RED) → 구현(GREEN) → 리팩터(IMPROVE) 순서 지킴 (커밋 이력에 반영)
- [ ] `npx vitest run`, `npx tsc --noEmit`, `npx eslint` 모두 종료 코드 0
- [ ] git commit 완료 (커밋 메시지에 스펙 명시)
#