Skip to content
Agentmart
Submit a tool

quiz-diff

Quiz the human on a diff to fight comprehension debt, then teach only the gaps.

Skill by clemens33

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/clemens33-quiz-diff

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Quiz the human on a diff to fight comprehension debt, then teach only the gaps. Use when the user says "quiz me on the diff/changes", before a PR of a large AI-built feature, or after a large-feature phase. Tests the human's understanding with free-response questions (program model, rationale, failure modes), grades honestly, teaches what was missed, and persists a fingerprinted gap record. Advisory — never blocks.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/quiz-diff

What's inside

Skill name
quiz-diff
Description
Quiz the human on a diff to fight comprehension debt, then teach only the gaps. Use when the user says "quiz me on the diff/changes", before a PR of a large AI-built feature, or after a large-feature phase. Tests the human's understanding with free-response questions (program model, rationale, failure modes), grades honestly, teaches what was missed, and persists a fingerprinted gap record. Advisory — never blocks.
License
MIT
Metadata
category: preference
Instructions
162 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Quiz Diff

Test the **human's** understanding of a diff — the inverse of code review.
Code review asks "is the code right?"; quiz-diff asks "does the human hold a
correct mental model of it?" AI-assisted work erodes that model silently
("comprehension debt"): tests stay green while understanding decays.

Evidence base: retrieval practice beats passive explanation; pretesting (answer
first, corrective feedback after) improves encoding; real comprehension spans a
program model (control/data flow) AND a situation model (rationale/goals)
(Pennington). Developers who only delegate score far lower on comprehension
than those who engage conceptually.

Prior art acknowledged: `Ciucky/no-numb` (session-gating quiz plugin, last-turn
scope, MCQ), `RonaldSit/comprehension-debt` (own-words repay/confirm CLI).
This skill differs deliberately: finished branch/PR scope, advisory not gated,
free-response with evidence-validated grading, fingerprinted gap records.

## Hard rules

1. **Quiz before explaining.** Never summarize or walk through the diff before
   the questions — pretesting only works if the attempt comes first.
2. **Free response by default.** No multiple choice unless the user asks for
   "quick mode" — MCQ tests recognition and cues answers. Short typed answers
   reveal real gaps.
3. **Validate every question before asking it** (see Item validation). A
   question you cannot ground in evidence is a question you must not ask.
4. **Lock all answers before teaching.** Collect answers to every question
   first; explanations for Q1 must not leak answers to Q2.
5. **"I don't know" is a first-class answer** — route straight to teaching,
   never shame.
6. **Advisory, never blocking.** Report the outcome; do not gate commits,
   pushes, or PRs on it.
7. **Honest claims only.** A pass does not prove understanding; say "no gaps
   surfaced", not "understanding verified". Call it "the selected diff", not
   "AI-written code" (provenance is usually mixed).

## Flow

### 1. Resolve scope — announce before asking

Default (pre-PR ritual): the merge-base of the real target branch through the
current worktree — committed + staged + unstaged + *selected* untracked files.
Explicit user scope always wins (staged-only, last N commits, a phase's
recorded range, named files).

Use the scope recipe in `code-review` → **Inputs** as-is. It resolves the
actual base (an explicit PR or user-named target, then `origin/HEAD`, then
`main`/`master`, then fails rather than guessing — and never the branch's own
`@{upstream}`, which on a pushed feature branch hides every pushed commit),
makes you choose untracked files deliberately, and fingerprints the result with
`git hash-object` rather than `sha256sum`, which does not exist on macOS.

Two of its rules bind harder here, because this fingerprint gets persisted and
read back later:

- **The fingerprint must cover everything you quizzed on.** Hashing only
  `git diff base...head` ignores staged, unstaged and untracked work, so a gap
  record can read as current long after the code it describes moved. Emit every
  part your resolved scope actually covers.
- **Never hash or enumerate the whole untracked set.** It holds credentials,
  unrelated experiments and other agents' in-flight work. Only the files you
  deliberately selected enter the fingerprint, and the record keeps their paths,
  never their contents.

Announce: the resolved base and which step resolved it, endpoints (SHAs), file
count. Capture `base SHA`, `head SHA` and the fingerprint for the gap record.

Skip only mechanically-recognizable noise: whitespace/formatting-only,
typo-only, generated artifacts, pure version bumps. Do NOT auto-exempt tests,
docs, or config — tests encode contracts and mocks; config carries
consequential decisions. A zero-question result is legitimate when no valid
item exists — say so and stop.

### 2. Select at most 3 concepts by semantic risk

Read the changed code PLUS relevant unchanged context (callers, types, config,
tests) — never reason from the patch alone. Rank candidate concepts by
semantic impact: blast radius, boundary behavior, security/data effects,
novelty, undocumented rationale. Complexity is one signal, not the ranking —
a one-line auth default or timeout change can outrank a dense helper.

### 3. Build an internal item spec per question (do not show it)

For each question, record before asking:
- the construct tested (which concept, which model — program / situation / transfer)
- expected answer + accepted variants
- evidence that uniquely determines the answer (file:line at CURRENT revision)
- the likely misconception the question probes

**Item validation gate:**
- Behavior questions: evidence must uniquely determine the answer.
- Rationale questions ONLY when the rationale is on record (request, ADR,
  comment, test name, session context). Otherwise ask "what trade-off does
  this implementation make?" and accept multiple defensible answers.
- Reject ambiguous items; replace or drop them.

### 4. Ask — one at a time, three-question default shape

1. **Program model**: predict/trace actual control or data flow
   ("Given X empty, what executes and what is returned?")
2. **Situation model**: explain a supported trade-off or design constraint
   ("What does this approach trade away vs the obvious alternative?")
3. **Transfer**: predict a failure, boundary, or maintenance consequence
   ("What silently breaks if Y is removed/changed?")

2 questions for a single small concept; 4 for a genuinely multi-concept diff;
5 only on explicit "deep mode". Never pad. No hints, no citations in the
question stem (they leak answers — cite in the teaching phase).

### 5. Grade against the stored rubric

Four outcomes per answer: `correct | partial | incorrect | invalid`.
`invalid` = the user challenged the question and the challenge holds (evidence
ambiguous, question wrong) — treat as a defect in the quiz, not a miss.
Re-check challenged items against the code before ruling.

### 6. Teach only the gaps

From clemens33/dotfiles, MIT.

More from clemens33/dotfiles

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 29, 2026 (29 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from clemens33

Cite this page

quiz-diff skill. Agent Mart. https://agentmart.dev/skills/clemens33-quiz-diff (last updated 2026-10-24)