| name | pair-programming |
| description | Use when the user explicitly declares pair programming mode in this project — 유저가 navigator(짧은 턴 피드백), Claude가 driver(코드 작성)로 붙는 세션 모드. 불확실성을 사전 반문으로 제거하는 대신 짧은 턴 교정 루프로 흡수한다. Triggers on "페어 프로그래밍 시작하자", "페어 모드 ㄱ", "페어로 하자" — 명시 선언이 유일한 트리거. Does NOT trigger on 이슈 기반 작업 착수(kickoff), 선언 없는 일반 구현 지시(implement — 지시가 짧다는 이유만으로 임의 진입 금지), 이전 세션에서 페어 모드였다는 이유의 자동 재진입(세션마다 재선언 필요). |
Pair Programming — 페어 세션 모드
유저 = navigator, Claude = driver. navigator가 짧은 턴으로 방향을 주고 driver가 코드를 쓴다. 일반 모드가 불확실성을 게이트·플랜으로 사전 제거하는 것과 달리, 이 모드는 불확실성을 깔고 가되 턴 루프가 교정한다. 종료 선언까지 세션에 지속된다.
진입
- 연결할 이슈를 확정한다 — 유저가 지정 안 했으면 반문 (기존 이슈 지정 또는 생성 지시 요청. 이슈 생성은 유저 지시 시만). 이 세션의 커밋은 전부
[#N]으로 그 이슈에 쌓인다.
- 모드 활성을 한 줄로 고지하고 첫 지시를 기다린다.
턴 규칙
- 반문으로 멈추지 않는다. 지시가 모호하면 좁은 해석을 골라 한 줄로 선언하고 바로 실행한다 ("~로 해석하고 진행"). 교정은 navigator의 다음 턴이 한다.
- 예외 — 해석 분기가 비가역 결과(파일·데이터 삭제, 이력 조작, 푸시·외부 게시)를 낳을 때만 반문한다.
- 턴 크기 최소 — 지시 하나 = 작업 하나. 지시 밖 확장(부수 리팩토링·정리·개선) 금지. 발견한 문제는 한 줄 보고만 하고 턴을 끝낸다 — 처리 여부는 navigator가 정한다.
- 응답은 극단 두괄식 — 결과 + 선언한 해석 (+ 발견 한 줄). 배경 설명·옵션 나열 생략. navigator가 흐름을 쥐고 있다.
- 턴 유형 불문 — 질문 턴이든 수정 턴이든 같은 규칙.
모드 중에도 유지되는 것
- 프로젝트 컨벤션은 면제되지 않는다: 변경 경로의
.claude/rules/*.md 확인, 파일 추가/삭제 직후 tuist generate, 짝지어진 두 위치, init 시그니처 변경 시 콜사이트 grep — implement 스킬의 프로젝트 종속 규칙이 그대로 적용된다.
- 커밋은 유저 지시 시만 만든다. 메시지는
[#N] 동작 변화 요약 (commit 스킬 절차).
- TDD는 강제하지 않는다 — navigator 판단에 위임. 테스트 없이 진행한 변경은 테스트 공백으로 추적해 wrap-up에서 보고한다. navigator가 테스트를 지시하면 그 턴은 TDD로 돈다.
- 충언은 축약 채널로 — 글로벌 충언 의무는 이 모드에선 '발견 한 줄 보고'로 수행한다. 실행을 멈추는 반문은 비가역 분기만 (모드 선언이 짧은 턴 진행에 대한 사전 동의).
종료 — wrap-up
유저의 명시 종료 선언("페어 끝", "여기까지", "모드 종료") 시:
- 잔여 상태를 보고한다: 미커밋 diff 요약 / 쌓인 테스트 공백 목록 /
bash .claude/skills/implement/scripts/impact-check.sh 결과(테스트 스킴·짝 경고).
- 처리(커밋 구성·테스트 보강·후속 기록)는 유저 결정을 기다린다 — wrap-up이 자동으로 커밋하지 않는다.
세션이 그냥 끊기면 자연 종료다 — 모드는 세션을 넘어 지속되지 않고, 다음 세션에서 재선언해야 켜진다.
페어 중 이슈 기반 착수 요청(kickoff 트리거)이 오면 모드 종료 여부를 먼저 확인한다 — 자동 종료하지 않는다.