fix(lesson-quiz): shuffle answer options and add per-round feedback (#76)

The lesson-quiz skill had two issues:
1. Correct answers were always placed as the first option, making quizzes
   trivially solvable
2. No feedback was given after each round — users had to wait until all
   5 rounds were complete to see any results

Add a CRITICAL shuffle instruction requiring randomized option order for
each question, and update round flow to show immediate per-question
feedback after each round.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sean Xue
2026-05-02 15:59:24 +08:00
committed by GitHub
parent d23da7f2dc
commit c78305971e
+5 -1
View File
@@ -79,7 +79,7 @@ Present 10 questions from the question bank in rounds of 2 questions each (5 rou
**IMPORTANT**: Use AskUserQuestion with max 4 options per question, 2 questions per round.
For each round, present 2 questions. After all 5 rounds, proceed to scoring.
For each round, present 2 questions. After the user answers each round, immediately show per-question feedback: whether each answer was correct or incorrect, and if incorrect, show the correct answer and a brief explanation. Then proceed to the next round. After all 5 rounds, proceed to final scoring.
**Question format per round:**
@@ -90,6 +90,10 @@ Each question from the question bank has:
- `explanation`: Why the answer is correct
- `category`: "conceptual" or "practical"
**CRITICAL — Shuffle answer options**: For each question, you MUST randomize the order of the answer options before presenting them via AskUserQuestion. Do NOT present them in the order they appear in the question bank (A, B, C, D), and do NOT place the correct answer first. Use a different random permutation for each question. Track which shuffled position contains the correct answer so you can score accurately.
Example: If the question bank lists options A (correct), B, C, D — you might present them as: C, A, D, B. The correct answer is now in position 2.
Present each question using AskUserQuestion. Record the user's answer for each.
### Step 5: Score and Present Results