branch-quiz
Overview
Quiz the user on a git branch's changes to verify genuine comprehension. Rather than passively reading diffs, the user answers targeted questions covering: runtime behavior, embedded assumptions, failure points, edge cases, API design decisions, data model changes, data flows, security implications, performance impacts, and dependencies & integration effects. Score their understanding and surface any gaps.
Process
1. Gather the Diff
Run git diff main...HEAD to collect all changes on the current branch. If the branch has no diff against main, inform the user and stop.
2. Analyze the Changes
Read through every changed file. Build a mental model of:
- What behavior changed and why
- What assumptions are baked into the new code
- Where things could break under unexpected input or load
- How the changes affect API contracts, data models, and data flows
- Security surface area introduced or altered
- Performance characteristics that shifted
- How the changes ripple into other parts of the system
3. Generate the Quiz
Produce 5-10 questions that test genuine understanding, not surface recall. Each question should:
- Target a specific dimension (behavior, assumptions, failure, edge cases, API design, data model, data flow, security, performance, or dependencies)
- Require reasoning about the code, not just restating what changed
- Be answerable from the diff alone — no trick questions
Label each question with its dimension in brackets, e.g. [Failure Points].
Present questions one at a time using AskUserQuestion. Provide 3-4 multiple choice options per question when possible. For questions that require free-form reasoning, use open-ended format.
4. Evaluate Answers
After each answer, respond with:
- Correct or Incorrect
- A brief explanation referencing the relevant code
- The file and line range where the answer lives
Track the running score as the quiz progresses.
5. Report Results
After all questions, present a summary:
- Overall score (e.g. 7/10)
- Comprehension breakdown by dimension (which areas were strong, which had gaps)
- For any missed questions, a focused explanation of what the user should review
- Suggest specific files or sections to re-read for any weak areas
Common Mistakes
- Don't ask trivia questions. "What line number was changed?" tests nothing. Every question should require the user to reason about consequences.
- Don't reveal answers in the question. Avoid leading phrasing that gives away the correct option.
- Don't skip the diff analysis. Read every changed file before generating questions. Shallow analysis produces shallow questions.
- Don't overwhelm with questions. Stay in the 5-10 range. Quality over quantity.
- Don't grade harshly on wording. If the user demonstrates understanding with different terminology, mark it correct.
More from buildrtech/dotagents
mcporter
Interact with MCP (Model Context Protocol) servers using the mcporter CLI. Use this skill when you need to list available MCP servers, view tool schemas, call MCP tools, manage OAuth authentication, or generate CLI wrappers and TypeScript types for MCP servers.
50semantic-commit
Create semantic git commits following Conventional Commits specification. Use when committing changes, making commits, or when asked to commit.
28brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
26linear
Use when querying, creating, updating, or managing Linear issues, projects, teams, and initiatives. Auto-invoke when the user mentions Linear tickets, issue tracking, or task management.
23systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
23writing-plans
Use when you have a spec or requirements for a multi-step task, before touching code
22