react-quiz
npx skills add https://github.com/hsleedevelop/study-react --skill react-quiz
Agent 安装分布
Skill 文档
react-quiz – React/TypeScript Quiz
Adaptive quiz and coding exercises for React/TypeScript. (ì ìí í´ì¦ì ì½ë© ì°ìµì ìí ì¤í¬.)
Instructions
Give a React/TypeScript quiz. Difficulty adjusts automatically based on the learner’s level. (React/TypeScript í´ì¦ë¥¼ ì¶ì íë¤. ëì´ëë íìµì ìì¤ì ë§ê² ìë ì¡°ì íë¤.)
Step 0: Language Selection
Ask the user to choose a language at the start. Present the following choices: (ì¤í¬ ìì ì ì¬ì©ììê² ì¸ì´ ì íì§ë¥¼ ì ìíë¤)
- íêµì´ – íêµì´ë¡ í´ì¦ë¥¼ íëë¤
- English – Take the quiz in English
Use the selected language for all communication. Code and JavaScript/TypeScript keywords stay in English. (ì íí ì¸ì´ë¡ ì´í 모ë ìíµì ì§ííë¤. ì½ëì JavaScript/TypeScript í¤ìëë ìì´ ê·¸ëë¡ ì ì§íë¤.)
Step 1: Choose Quiz Topic
Ask in plain text: (í ì¤í¸ë¡ 물ì´ë³¸ë¤)
Korean: “ì´ë¤ 주ì ë¡ í´ì¦ë¥¼ íê¹ì? 주ì 를 ìë ¤ì£¼ì¸ì. ë í ì§ ëª¨ë¥´ê² ì¼ë©´ ‘ì¶ì²í´ì¤’ë¼ê³ í´ì£¼ì¸ì.”
English: “What topic should the quiz cover? Tell me a topic, or say ‘recommend’ if you’re not sure.”
- If the user enters a topic: start the quiz on that topic. (ì ì ê° ì£¼ì 를 ì ë ¥í ê²½ì°: í´ë¹ 주ì ë¡ ë°ë¡ í´ì¦ ìì)
- If the user says “recommend” / “ì¶ì²í´ì¤”: check learning history (ReactLearningProgress in memory, if available) and suggest 3-4 recently studied topics. Present choices for the user to pick from. (íìµ ì´ë ¥ì ì°¸ê³ íì¬ ìµê·¼ íìµí 주ì ì¤ì¬ì¼ë¡ 3-4ê° ì¶ì². ì íì§ë¥¼ ì ìíë¤.)
Step 2: Run the Quiz (5 questions)
5 questions total. Track difficulty internally from 1-5 (start at 3). (ì´ 5문ì . ë´ë¶ì ì¼ë¡ ëì´ë를 1~5ë¡ ì¶ì íë¤. ìì: 3.)
- Correct answer -> difficulty +1 (ì ëµ -> ëì´ë +1)
- Wrong answer -> difficulty -1 (ì¤ëµ -> ëì´ë -1)
Question Types
Each question uses one of the types below. Default to open-ended, mix in others as appropriate. (ìë ì í ì¤ íëë¡ ì¶ì . ìì íì 기본ì¼ë¡ íë, ì ì í ìëë¤.)
Type A: Predict Output (open-ended / ìì í)
What does this code print? Explain your answer.
(ë¤ì ì½ëì ì¶ë ¥ ê²°ê³¼ë? ëµê³¼ ì´ì 를 í¨ê» ì ì´ì£¼ì¸ì.)
const arr = [1, 2, 3];
const mapped = arr.map((n) => n * 2);
console.log(mapped[1]);
The user types their own answer. (ì ì ê° ì§ì ëµì íì´ííë¤.)
Type B: Find the Bug (open-ended / ìì í)
What's wrong with this code? Explain why it errors.
(ë¤ì ì½ëìì 문ì ê° ëë ë¶ë¶ì? ì ìë¬ê° ëëì§ ì¤ëª
í´ì£¼ì¸ì.)
type User = { id: number; name: string };
const u: User = { id: "1", name: "Lee" };
console.log(u);
The user types their own answer. (ì ì ê° ì§ì ëµì íì´ííë¤.)
Type C: Concept Question (multiple-choice allowed / ê°ê´ì íì©)
Why is a `key` prop needed when rendering a list in React?
(Reactìì 리ì¤í¸ ë ëë§ ì `key` propì´ ì íìí ê¹ì?)
Present 4 choices for the user to pick from. Multiple-choice is fine for concept checks. (4ì§ì ë¤ë¥¼ ì ìíë¤. ê°ë íì¸ì©ì ê°ê´ìë ê´ì°®ë¤.)
Type D: Write Code (difficulty 4+ only / ëì´ë 4 ì´ì)
Write a function that meets these requirements:
(ë¤ì ì¡°ê±´ì ë§ì¡±íë í¨ì를 ìì±íì¸ì:)
- Name: `isEven` (í¨ìëª
: `isEven`)
- Takes a `number`, returns `boolean` (`number`를 ë°ìì `boolean`ì ë°í)
- Returns true for even, false for odd (ì§ìë©´ true, íìë©´ false)
When the user writes code, verify by checking type correctness and logic. If runtime validation is needed, use Node.js; for type validation, use TypeScript (tsc --noEmit) when available.
(ì¬ì©ìê° ì½ë를 ìì±íë©´ íì
ì íì±ê³¼ ë¡ì§ì ê²ì¦íë¤. ì¤í ê²ì¦ì´ íìíë©´ Node.js를, íì
ê²ì¦ì ê°ë¥í ë TypeScript(tsc --noEmit)를 ì¬ì©íë¤.)
Feedback Rules
On correct answer / ì ëµì¼ ë:
Correct!
Key point: `map` returns a new array and keeps order.
So `mapped` is `[2, 4, 6]`, and `mapped[1]` is `4`.
(ì ëµì
ëë¤! íµì¬ í¬ì¸í¸: `map`ì ìì를 ì ì§í ì ë°°ì´ì ë°íí©ëë¤.)
On wrong answer / ì¤ëµì¼ ë: Give a short text explanation. Only use ASCII diagrams for things like memory layouts that are hard to explain in text alone. (ê°ê²°í í ì¤í¸ í´ì¤ì ì ê³µíë¤. ASCII ë¤ì´ì´ê·¸ë¨ì í ì¤í¸ë§ì¼ë¡ ì¤ëª í기 ì´ë ¤ì´ ê²½ì°ìë§ ì¬ì©.)
Not quite. The answer is "4".
`arr.map((n) => n * 2)` produces `[2, 4, 6]`.
So index `1` is `4`.
(ìì½ì§ë§ íë ¸ìµëë¤. ì ëµì "4"ì
ëë¤.
`map` ê²°ê³¼ë `[2, 4, 6]`ì´ê³ index `1`ì `4`ì
ëë¤.)
Step 3: Results Summary
After all 5 questions, show a summary: (5문ì ìë£ í ê²°ê³¼ ìì½)
Quiz Results / í´ì¦ ê²°ê³¼
- Topic / 주ì : Basic syntax
- Score / ì ëµ: 3/5
- Final difficulty / ìµì¢
ëì´ë: 4/5
- Strengths / ê°ì : Props typing, state updates
- Needs work / ë³´ì íì: Effect dependencies, union narrowing
- Suggestion / ì¶ì²: Review "state update and rendering flow" with /react-study
Rules
- Use the selected language – from Step 0. Only code and keywords in English. (ì íí ì¸ì´ë¡ ìíµ)
- One question at a time – next question only after the current one is answered (í ë²ì í 문ì ë§)
- Open-ended by default – the user must think and write answers. Multiple-choice OK for concept checks. (ìì í ì¤ì¬)
- ASCII diagrams only when needed – default to text explanations (ASCII ë¤ì´ì´ê·¸ë¨ì íìí ëë§)
- Adaptive difficulty – adjust to the learner’s level automatically (ëì´ë ì ì)
- Encouraging tone – wrong answers are learning opportunities (ê²©ë ¤íë í¤)
- No emojis – clean text only (ì´ëª¨ì§ ì¬ì© ê¸ì§)