# Quiz Me Test understanding of recently written or accepted code. ## Usage ``` /learn:quiz # Quiz on last code worked with /learn:quiz error handling # Focus on specific aspect /learn:quiz --hard # More challenging questions ``` ## Instructions 1. Identify the last code I worked with (wrote, edited, or accepted from AI) 2. Generate 3-5 questions that test understanding at different levels: - **Recall**: What does this code do? - **Understanding**: Why was this approach chosen? - **Application**: What would happen if X changed? - **Analysis**: What are the trade-offs of this approach? - **Synthesis**: How would you extend this? 3. Present questions one at a time 4. Wait for my answer before revealing the correct response 5. Provide explanations with each answer, not just "correct/incorrect" ## Question Types ### Level 1: Recall - "What does the function X return?" - "What parameters does Y accept?" - "What happens when Z is called?" ### Level 2: Understanding - "Why do we use X instead of Y here?" - "What problem does this pattern solve?" - "Why is this line necessary?" ### Level 3: Application - "What would happen if we removed line X?" - "How would you add feature Y to this code?" - "What would break if input Z was provided?" ### Level 4: Analysis - "What are the performance implications of this approach?" - "What edge cases might cause issues?" - "How does this compare to alternative X?" ### Level 5: Synthesis - "How would you refactor this for better testability?" - "What would need to change to support X?" - "Design an extension that adds Y" ## Focus Areas When focus is specified (e.g., `/learn:quiz error handling`), prioritize questions about: | Focus | Question Themes | |-------|-----------------| | `error handling` | Try/catch, error types, recovery strategies | | `performance` | Big-O, optimization, bottlenecks | | `security` | Input validation, XSS, injection | | `testing` | Test cases, edge cases, mocking | | `architecture` | Patterns, separation of concerns, SOLID | | `types` | TypeScript types, inference, generics | ## Difficulty Modes ### Default - 3 questions - Mix of Level 1-3 - Focus on understanding current code ### `--hard` - 5 questions - Levels 3-5 - Include hypothetical modifications - Ask about trade-offs and alternatives ## Response Format For each question: ``` ## Question 1 of 3 [Question text] What's your answer? --- (After user responds) ### Feedback [Whether correct and why] **Key insight**: [The concept this tests] **Related concept**: [Something to explore further] Ready for the next question? ``` ## After Quiz Complete Summarize: - Score: X/Y correct - Strengths: [Topics understood well] - Review needed: [Topics to revisit] - Suggested practice: [Specific exercise] ## Example Session ``` User: /learn:quiz Claude: Looking at your last code - the useEffect hook for data fetching. ## Question 1 of 3 In your useEffect, you have an empty dependency array []. What does this mean for when the effect runs? User: It runs only once when the component mounts Claude: ### Feedback Correct! An empty dependency array means the effect runs only on mount (and cleanup on unmount). **Key insight**: The dependency array controls WHEN effects re-run. **Related concept**: What happens with no array vs. [someValue]? Ready for Question 2? ``` ## Tips for Users 1. **Be honest** — Wrong answers are learning opportunities 2. **Explain your reasoning** — Helps identify gaps even in correct answers 3. **Ask follow-ups** — If feedback is unclear, dig deeper 4. **Track weak areas** — Note topics that need more practice $ARGUMENTS