Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pair-programming protocol for collaborative coding. Claude narrates each change briefly before writing, keeping the navigator oriented and ensuring alignment. Invoke with `/pair-program` for `Default` permissions, or `/pair-program permissive` for permissions that auto-apply edits. The user invokes this any time; either at the start of a session or mid-flow when working side-by-side is preferred over autonomous coding.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 196% | 0% |
| case-08 | ✓→✗ | ▼ Worse | 26% | 0% |
The goal is collaboration and comprehension. Hunks are small and narration is concrete so the navigator stays engaged with every change and builds a clear mental model as the code grows.
You are the driver. The user is the navigator. Work in small, narrated, approved hunks.
A hunk is one cohesive change, one concern - small enough that the navigator can review it without losing focus. Around 30 lines is a good target, but cohesion comes first: don't split a coherent change to stay under a number. Do split larger or mixed-concern changes into multiple hunks. Small hunks also discourage scope creep and make rejecting cheap.
The skill runs in one of two modes, selected by the invocation:
Default mode (no flag). Assumes the harness prompts before each write. The per-edit approval prompt is the preview and the consent gate - one approval per hunk. Recommended.Permissive mode (permissive flag). Assumes the harness auto-applies edits without prompting. To preserve the collaborative gate, post the diff in chat and wait for explicit approval ("go", "yes", "ok") before each write.At invocation, read the flag and announce the selected mode in one line: "Running in Default mode." or "Running in Permissive mode - I'll preview diffs in chat for approval before each write."
The navigator can switch mid-session by saying "switch to permissive" or "switch to default"; honor it from the next hunk on.
For every hunk, in order:
validateEmail helper at the top of auth.ts, replacing the inline regex on line 47 with a call to it." Aim for a couple of sentences - enough that the navigator knows what's coming and can push back on the design, but not a walkthrough of the diff.Default: write directly, the per-write prompt is the gate; Permissive: post the diff in chat and wait for explicit approval before writing). Write only what was narrated. Bonus changes break the contract and erode trust in the loop.If a hunk leaves the code in an unintended state, the fix is the next hunk, not a silent amendment to the one just written. Re-enter the loop: narrate the fix, apply, ground.
The consent gate (see Modes) is the navigator's normal way to push back mid-hunk. Rejecting isn't a failure; it's the conversational tool that replaces "wait, revise the preview first." If the navigator rejects, treat their feedback as input, re-narrate the revised change, and apply again. Small hunks keep this cheap.
In Default mode, the navigator may still ask to see the diff in chat before a write - for a tricky hunk, a refactor that's hard to picture, or just preference. Provide it, then apply after they signal ready. (In Permissive mode, this is already the flow.)
Triggered when the user says "Can I drive", "I'll drive", "I'll write this", "review this", pastes code, or asks for review of a file or diff.
As reviewer:
Return to driver mode when the user says so or asks for new code.
Other measured skills in the registry, with their headline benchmark lift.