agentleFS
jellydnjellydn/my-ai-tools/skills/quiz-me/SKILL.md

quiz-me

Skill127 starsChanged 28 days agoMITView on GitHub

Verify understanding after implementation with targeted quizzes

18 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use reflect and handoff.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Microsoft AzureSkill

    reflect

    Learning capture system that extracts HIGH/MED/LOW confidence patterns from conversations to prevent repeating mistakes. Use after user corrections ("no", "wrong"), praise ("perfect", "exactly"), or when discovering edge cases. Complements .squad/agents/{agent}/history.md and .squad/decisions.md.

    Also in 3 projects that use this

  • MicrosoftSkill

    handoff

    Compact the current conversation into a handoff document for another agent to pick up.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. 0 are common, 11 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 18 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill after implementation when:

    line 14
  2. Distinctive:

    Write better PR descriptions

    line 26
  3. Distinctive:

    Create questions across difficulty levels:

    line 42
  4. Very specific:

    Use the ask_user_question tool for each quiz question.

    line 66
  5. Very specific:

    Write a clear question with context and any hint references

    line 78
  6. Distinctive:

    After the user answers, give the correct answer with explanation and code references

    line 80
  7. Distinctive:

    After each question response:

    line 84
  8. Distinctive:

    After all questions are answered:

    line 91
  9. Very specific:

    One question per call: Always use ask_user_question with a single-question array.

    line 252
  10. Distinctive:

    Give feedback immediately: After each answer, confirm or correct with code references.

    line 253
  11. Distinctive:

    Test reasoning: Don't just ask "what", ask "why" and "how".

    line 255
  12. Distinctive:

    After Implementation: Always follow complex work with quiz

    line 263
  13. Distinctive:

    Before PR: Use quiz results to write description

    line 264
  14. Distinctive:

    Too easy: Only testing recall ("what did we do?")

    line 283

“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Quiz Me

When to Use

Use this skill after implementation when:

  • You've completed a complex feature
  • Need to write a PR description
  • Want to verify understanding of changes
  • About to present work to team
  • Ensuring you stay "in the loop" with agent work

What It Does

The agent generates a quiz about the implementation to verify your understanding. This helps you:

  • Identify gaps in your knowledge
  • Prepare for code review discussions
  • Write better PR descriptions
  • Stay engaged with increasingly capable agents

How to Execute

Step 1: Scope the Quiz

Determine what to test:

  • Core architectural decisions
  • Key implementation details
  • Edge cases and error handling
  • Integration points
  • Trade-offs made

Step 2: Generate Questions

Create questions across difficulty levels:

Level 1 - Recall (What):

  • What did we implement?
  • What files were changed?
  • What are the main components?

Level 2 - Understanding (Why):

  • Why did we choose this approach?
  • Why not use [alternative]?
  • What problem does this solve?

Level 3 - Application (How):

  • How would you explain this to a reviewer?
  • How does this integrate with existing code?
  • How would you debug an issue here?

Level 4 - Analysis (Implications):

  • What are the trade-offs?
  • What could go wrong?
  • What would you change if requirements changed?

Step 3: Conduct Quiz (One Question at a Time)

Use the ask_user_question tool for each quiz question. Ask one question at a time — present it, wait for the answer, provide feedback, then move to the next. This makes the quiz feel like a conversation, not a test.

Flow for each question:

  1. Ask using ask_user_question with the question and options
  2. Read the answer the user selected or typed
  3. Provide feedback: tell them the correct answer, explain why, link to code
  4. Track correctness mentally (or note it)
  5. Proceed to the next question

Guidelines for using ask_user_question:

  • Set header to a short label (max 16 chars) like "Architecture", "Trade-offs", "Edge Cases"
  • Write a clear question with context and any hint references
  • Provide 2-4 concrete options — concise label (1-5 words) with descriptive description
  • After the user answers, give the correct answer with explanation and code references

Step 4: Review Answers

After each question response:

  • If correct: Confirm and reinforce with additional context
  • If incorrect: Gently correct, explain why, point to the relevant code/commit
  • If open-ended: Evaluate against expected key points, fill in gaps

Step 5: Summarise Results

After all questions are answered:

  • Report overall understanding level
  • Highlight strong areas
  • Flag areas to review with code references
  • Extract PR description material

Question Templates (Mapped to ask_user_question)

Multiple Choice — Architectural Decision

// Ask one at a time
ask_user_question(questions: [{
  header: "Architecture",
  question: "Why did we use GitHub App Installation flow instead of OAuth for this integration? (Hint: check auth/github/installation.ts for the decision)",
  options: [
    {
      label: "OAuth is deprecated",
      description: "GitHub still supports OAuth, so this isn't the reason"
    },
    {
      label: "Org-level access",
      description: "Installation flow provides org-level access — OAuth Apps can't access org repos"
    },
    {
      label: "Easier to implement",
      description: "Installation flow is actually more complex to set up than basic OAuth"
    }
  ]
}])

// After answer — provide feedback:
// "Correct! OAuth Apps can't access organization repositories, which is a GitHub limitation.
// Installation tokens authenticate as the app installation, giving org-level scope.
// See: auth/github/installation.ts:42-58"

Fill in the Blank (using open-ended)

ask_user_question(questions: [{
  header: "Implementation",
  question: "What are the token lifespans in our GitHub auth? Fill in:\n- User OAuth tokens last: ______\n- Installation tokens last: ______\n- We cache installation tokens for: ______\n(Hint: check auth/github/token-cache.ts)",
  options: [
    {
      label: "6mo / 1hr / 55min",
      description: "User OAuth=6 months, Installation tokens=1 hour, Cache TTL=55 minutes (5 min buffer)"
    },
    {
      label: "1yr / 8hr / 7hr",
      description: "Incorrect — installation tokens only last 1 hour, we need a 5-minute buffer before expiry"
    },
    {
      label: "Permanent / 24hr / 23hr",
      description: "Incorrect — GitHub installation tokens have a 1-hour expiry, not 24 hours"
    }
  ]
}])

Trade-off Analysis

ask_user_question(questions: [{
  header: "Trade-offs",
  question: "What's the main trade-off of our token caching strategy? We cache installation tokens with a 55-minute TTL.",
  options: [
    {
      label: "Speed vs staleness",
      description: "Correct — caching avoids rate limits (5000/hr) but a token could be stale for up to 5 minutes before natural expiry"
    },
    {
      label: "Memory vs latency",
      description: "The token cache is small (Redis, key pattern github:install:{id}:token) — memory isn't the constraint here"
    },
    {
      label: "Security vs simplicity",
      description: "Tokens are encrypted in Redis — security wasn't the trade-off driver for the TTL decision"
    }
  ]
}])

Edge Case Question

ask_user_question(questions: [{
  header: "Edge Cases",
  question: "What happens when a user uninstalls the GitHub App? How does our system respond?",
  options: [
    {
      label: "Hard delete record",
      description: "We soft delete instead to preserve audit trail and cascading session cleanup"
    },
    {
      label: "Soft delete + audit",
      description: "Correct — we soft delete the installation record and cascade to invalidate all user sessions, preserving the audit trail"
    },
    {
      label: "Nothing, tokens work",
      description: "Incorrect — when uninstalled, tokens immediately stop working. We must clean up sessions"
    }
  ]
}])

Code Reading Question

ask_user_question(questions: [{
  header: "Code Reading",
  question: "In the token refresh logic, why do we compare the cached token's expiry against a 55-minute threshold instead of the full 60 minutes?",
  options: [
    {
      label: "5-min safety buffer",
      description: "Correct! The 5-minute buffer prevents edge-case race conditions where a token expires between the cache check and the API call"
    },
    {
      label: "Rate limit overhead",
      description: "Rate limits are 5000/hr — the buffer isn't about rate limits, it's about preventing stale token usage"
    },
    {
      label: "Clock drift compensation",
      description: "While clock drift is a real concern, the primary reason is preventing token expiry during the request window"
    }
  ]
}])

Complete Quiz Interaction Flow

For a typical 4-6 question quiz, the flow looks like:

1. Agent: "Let me quiz you on the GitHub OAuth implementation.
   I'll ask one question at a time and give feedback after each."

2. ask_user_question → Q1 (Architecture question)
   User answers
   Agent feedback: "Correct! ... See auth/github/installation.ts:42"

3. ask_user_question → Q2 (Implementation question)
   User answers
   Agent feedback: "Almost — the cache TTL is 55 minutes, not 50..."

4. ask_user_question → Q3 (Edge case question)
   User answers
   Agent feedback: "Right!..."

5. ask_user_question → Q4 (Trade-off question)
   User answers
   Agent feedback: "Good analysis..."

6. Agent: "Here's your summary:
   - Strong on architecture decisions
   - Review token caching details (auth/github/token-cache.ts)
   - PR description material from Q1 and Q4..."

Best Practices

  1. One question per call: Always use ask_user_question with a single-question array. Never batch questions.
  2. Give feedback immediately: After each answer, confirm or correct with code references.
  3. Match complexity: Quiz difficulty should match implementation complexity.
  4. Test reasoning: Don't just ask "what", ask "why" and "how".
  5. Include context: Reference specific code/commits for verification.
  6. Provide hints: Include hints in the question text (not as tool hints, just inline).
  7. Wrong-answer options are educational: Each incorrect option's description should explain why it's wrong.
  8. Limit to 4-7 questions: Too many exhausts. Quality over quantity.

Integration with Other Skills

  • After Implementation: Always follow complex work with quiz
  • Before PR: Use quiz results to write description
  • With Implementation Log: Quiz questions based on logged decisions
  • For Documentation: Questions reveal what needs better docs

Success Criteria

A good quiz:

  • Tests understanding at multiple levels (recall → analysis)
  • Uses ask_user_question for focused, one-at-a-time questioning
  • Provides immediate feedback with code references after each answer
  • Reveals gaps in knowledge
  • Helps you articulate decisions
  • Prepares you for code review
  • Takes 5-15 minutes to complete
  • Results in better PR description
  • Identifies documentation needs

Common Pitfalls

  • Too easy: Only testing recall ("what did we do?")
  • Too hard: Testing minutiae not worth remembering
  • No feedback: User doesn't learn from wrong answers
  • No context: Questions without code references
  • Too long: Exhausting instead of enlightening
  • Batching questions: Asking multiple questions at once defeats the one-at-a-time flow

Output Format

Summary After Quiz

# Quiz Results: [Feature Name]

## Strong Areas
- [Area 1]: Solid understanding of X
- [Area 2]: Clear grasp of Y

## Areas to Review
- [Area 1]: Unclear on Z, review [file.ts:123]
- [Area 2]: Missing context on W, see [commit abc123]

## Recommended Actions
- [ ] Review [specific code section]
- [ ] Read [specific documentation]
- [ ] Discuss [specific decision] with team

## PR Description Material
Based on your answers, include in PR:
- [Key point 1 from quiz]
- [Key point 2 from quiz]
- [Trade-off explanation from Qx]

The quiz becomes your PR description outline.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.