Use when the user explicitly declares pair programming mode in this project — 유저가 navigator(짧은 턴 피드백), Claude가 driver(코드 작성)로 붙는 세션 모드. 불확실성을 사전 반문으로 제거하는 대신 짧은 턴 교정 루프로 흡수한다. Triggers on "페어 프로그래밍 시작하자", "페어 모드 ㄱ", "페어로 하자" — 명시 선언이 유일한 트리거. Does NOT trigger on 이슈 기반 작업 착수(kickoff), 선언 없는 일반 구현 지시(implement — 지시가 짧다는 이유만으로 임의 진입 금지), 이전 세션에서 페어 모드였다는 이유의 자동 재진입(세션마다 재선언 필요).
Scanned 9/22/2026
Install to Claude Code
npx -y skills add sudopark/TodoCalendar --skill pair-programming --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pair Programming?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sudopark-pair-programming)More formats (shields.io, HTML) on the badges page.
---
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가 코드를 쓴다. 일반 모드가 불확실성을 게이트·플랜으로 사전 제거하는 것과 달리, 이 모드는 불확실성을 깔고 가되 턴 루프가 교정한다. 종료 선언까지 세션에 지속된다.
## 진입
1. **연결할 이슈를 확정한다** — 유저가 지정 안 했으면 반문 (기존 이슈 지정 또는 생성 지시 요청. 이슈 생성은 유저 지시 시만). 이 세션의 커밋은 전부 `[#N]`으로 그 이슈에 쌓인다.
2. 모드 활성을 한 줄로 고지하고 첫 지시를 기다린다.
## 턴 규칙
- **반문으로 멈추지 않는다.** 지시가 모호하면 좁은 해석을 골라 **한 줄로 선언하고 바로 실행한다** ("~로 해석하고 진행"). 교정은 navigator의 다음 턴이 한다.
- 예외 — 해석 분기가 **비가역 결과**(파일·데이터 삭제, 이력 조작, 푸시·외부 게시)를 낳을 때만 반문한다.
- **턴 크기 최소** — 지시 하나 = 작업 하나. 지시 밖 확장(부수 리팩토링·정리·개선) 금지. 발견한 문제는 한 줄 보고만 하고 턴을 끝낸다 — 처리 여부는 navigator가 정한다.
- **응답은 극단 두괄식** — 결과 + 선언한 해석 (+ 발견 한 줄). 배경 설명·옵션 나열 생략. navigator가 흐름을 쥐고 있다.
- 턴 유형 불문 — 질문 턴이든 수정 턴이든 같은 규칙.
## 모드 중에도 유지되는 것
- **프로젝트 컨벤션은 면제되지 않는다**: 변경 경로의 `.claude/rules/*.md` 확인, 파일 추가/삭제 직후 tuist generate, 짝지어진 두 위치, init 시그니처 변경 시 콜사이트 grep — implement 스킬의 프로젝트 종속 규칙이 그대로 적용된다.
- **커밋은 유저 지시 시만** 만든다. 메시지는 `[#N] 동작 변화 요약` (commit 스킬 절차).
- **TDD는 강제하지 않는다** — navigator 판단에 위임. 테스트 없이 진행한 변경은 **테스트 공백으로 추적**해 wrap-up에서 보고한다. navigator가 테스트를 지시하면 그 턴은 TDD로 돈다.
- **충언은 축약 채널로** — 글로벌 충언 의무는 이 모드에선 '발견 한 줄 보고'로 수행한다. 실행을 멈추는 반문은 비가역 분기만 (모드 선언이 짧은 턴 진행에 대한 사전 동의).
## 종료 — wrap-up
유저의 명시 종료 선언("페어 끝", "여기까지", "모드 종료") 시:
1. 잔여 상태를 보고한다: **미커밋 diff 요약 / 쌓인 테스트 공백 목록 / `bash .claude/skills/implement/scripts/impact-check.sh` 결과**(테스트 스킴·짝 경고).
2. 처리(커밋 구성·테스트 보강·후속 기록)는 유저 결정을 기다린다 — wrap-up이 자동으로 커밋하지 않는다.
3. 잔여 상태 보고 직후 `log-record.py skill_end --name pair-programming` (명령·compliance 규칙은 CLAUDE.md §1). 유저의 후속 결정을 기다리지 않고 여기서 남긴다 — 결정이 커밋이면 그때부턴 commit 스킬 소관이다.
세션이 그냥 끊기면 자연 종료다 — 모드는 세션을 넘어 지속되지 않고, 다음 세션에서 재선언해야 켜진다. 이 경로엔 기록을 남길 주체가 없어 종료 레코드가 구조적으로 안 남는다. 그래서 이 스킬은 누락률 임계에서 면제돼 있다 (`.claude/scripts/usage-thresholds.json`의 `missing_rate_exempt_skills`) — 준수 신호는 위 명시 종료의 skill_end로만 잡는다.
페어 중 이슈 기반 착수 요청(kickoff 트리거)이 오면 **모드 종료 여부를 먼저 확인한다** — 자동 종료하지 않는다.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!