---
name: quiz-session
description: Day 1 완료 후 대화형 퀴즈 세션 진행. "퀴즈 풀래", "퀴즈 시작", "Checkpoint 1 확인", "quiz session" 등의 키워드가 나오면 이 skill을 사용한다.
---

# 대화형 퀴즈 세션 (Checkpoint 1)

quiz.md 파일을 읽고 사용자와 1:1 대화형으로 퀴즈를 진행한다. 문제를 하나씩 제시하고, 답변을 받아 채점 및 해설을 제공한다.

## 시작 절차

1. `current_run_path`가 없으면 사용자에게 요청한다.
2. `current-run.md`를 Read하여 `run_dir`, `topic` 추출한다.
3. `{run_dir}/day1/quiz.md`를 Read하여 문제 목록을 컨텍스트에 로드한다.
4. 아래 형식으로 세션을 시작한다:

```
📝 Checkpoint 1 퀴즈 세션: {TOPIC}

총 {N}개 문제 | 합격 기준: 70점 이상
난이도: 쉬움 {n}개 / 보통 {n}개 / 어려움 {n}개

준비되면 "시작"이라고 말해주세요.
(특정 난이도만 하려면: "쉬운 문제만" / "어려운 문제만")
```

## 퀴즈 진행 루프

### 문제 제시 형식

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Q{N}/{TOTAL} [{난이도}] {유형}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

{문제 내용}

{객관식이면 선택지 표시}
```

### 답변 처리 규칙

- 사용자 답변을 받은 직후 바로 채점한다.
- **정답**: "✅ 정답입니다!" + 해설 1~2줄
- **오답**: "❌ 틀렸습니다." + 정답 공개 + 해설 + 관련 용어 참조
- 서술형/코드완성: 모범 답안의 핵심 키워드 포함 여부로 채점한다.
- 채점 후 자동으로 다음 문제로 넘어간다.

### 지원 명령

| 사용자 입력 | 처리 |
|---|---|
| "힌트" | 해당 문제의 관련 용어 힌트 제공 (점수 -20%) |
| "건너뛰기" | 0점 처리 후 다음 문제 |
| "그만" / "중단" | 현재까지 결과 출력 후 종료 |
| "다시" | 틀린 문제만 재시도 |

## 세션 종료

모든 문제 완료 시:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 퀴즈 결과: {TOPIC}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

점수: {SCORE}/100
정답: {CORRECT}/{TOTAL}개

{SCORE >= 70 이면}
✅ Checkpoint 1 통과!

{SCORE < 70 이면}
❌ 재도전 필요 (70점 미만)

취약 영역:
- {틀린 문제 유형/용어 목록}

💡 복습 추천:
- day1/terms.md의 {관련 용어} 섹션
```

### quiz.md 결과 업데이트

종료 시 `{run_dir}/day1/quiz.md`의 `## ✅ Checkpoint 1 통과 기준` 아래 `### 결과` 섹션을 실제 결과로 업데이트(Write)한다.
채점표 표 형식은 그대로 두고, 아래 bullet만 템플릿 형식에 맞게 갱신한다.

```markdown
- **점수**: {SCORE}/100
- **통과 여부**: {통과/재도전 필요}
```

## 핵심 원칙

- 문제는 한 번에 하나씩만 제시한다.
- 답변 전에 해설을 먼저 보여주지 않는다.
- 오답도 격려적 톤을 유지한다.
- 힌트를 사용해도 "틀렸다"고 핀잔주지 않는다.
