Handoff
Use when a feature or code change made by Claude is complete and the developer wants to confirm they actually understood it before shipping. Triggers on "handoff", "quiz me", "comprehension check", "did I understand this", "verify I read the code", "test my understanding", or after finishing a feature when the developer wants to take ownership of AI-written code. Quizzes the developer on WHERE the logic lives (file/function) and WHY decisions were made (trade-offs, behavior, debugging), with the number of questions scaled to the size of the change. Points to file:line on wrong answers, allows one retry, then reveals the answer, and ends with a score plus the weak areas to re-read. Conducts the quiz in the developer's language.From its SKILL.md
npx -y skills add arimet/handoff --skill handoffAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- runs commandsInstructs the agent to run 3 commands, including `git rev-parse --git-dir` and 2 more.
SKILL.md
4.3 KB, 838 tokens by cl100k_base, as published. Nobody here has run it
Handoff — verify you understood Claude's code
When Claude builds a feature, it is easy to merge the result without truly
reading or understanding it. handoff turns passive review into an active
check: it interviews the developer to confirm they read the code (where the
logic lives) and understood it (why decisions were made, how it behaves),
then reports a score and the spots to revisit.
This skill conducts an interactive quiz. Ask questions one at a time and wait for an answer before continuing. Conduct the entire quiz in the developer's language (match the language they are writing in).
Step 1 — Gather the material (hybrid source)
Build the quiz from two complementary sources:
-
Conversation context — what was built this session: the files touched, the key decisions and trade-offs, what was deliberately NOT done, and what could plausibly break. This is the source for the "why".
-
Git diff (when available) — to objectively anchor "where" and check that nothing important is missed. Run:
git rev-parse --git-dirto confirm a repo exists.git diff --statthengit diff(covers unstaged + staged) to enumerate changed files and lines. Use realfile:linelocations from this diff.
If there is no git repo, degrade gracefully and rely on conversation context alone — still produce a useful quiz.
Step 2 — Calibrate the number of questions
Scale to the size of the change (use the diff stat, or your best estimate from context if there is no git):
| Change size | Questions |
|---|---|
| Small (< ~50 lines, or 1–2 files) | 3 |
| Medium | 5 |
| Large (> ~300 lines, or ≥ 5 files) | 8–10 |
Step 3 — Generate a mixed question set
Cover both reading and understanding. Mix these types:
- Where (multiple choice). "Which file/function contains X?" Provide plausible distractors drawn from other real files in the change.
- Why (open-ended). "Why was approach X chosen over Y?", "What trade-off does this make?", "What would have broken if we hadn't done Z?"
- Behavior (multiple choice or open). "If input X arrives, what happens?", "How would you debug it if X fails?"
Favor the parts of the change that matter most (core logic, tricky edge cases, non-obvious decisions) over trivial boilerplate.
Step 4 — Ask one question at a time
Present a single question, wait for the answer, then evaluate it before moving on. Never dump the whole quiz at once.
Step 5 — Evaluate each answer
- Correct → confirm briefly and move to the next question.
- Wrong or incomplete → point to the relevant
file:lineas a hint without revealing the answer, and invite a second attempt.- If the second attempt is still wrong → reveal the correct answer with a short explanation, then continue.
Track the result of each question (correct / correct-on-retry / missed) to build the final score.
Step 6 — Final score and weak areas
End with:
- A score, e.g.
Score: 4/6. - The weak areas: the topics missed, each with a
file:linepointer to re-read. Keep the tone encouraging, not punitive — the goal is to know what to revisit, not to grade harshly.
Optional: automatic suggestion (Stop hook)
This skill ships an optional, non-blocking Stop hook that suggests running
/handoff when a session produced a large diff. It never forces the quiz. See
references/install.md for setup and thresholds.
What ships with it: 3 files
8.1 KB alongside SKILL.md, 1 of them executable
evals/
- evals.json2.4 KB
references/
- install.md2.5 KB
scripts/
- suggest-quiz.shruns3.2 KB