quiz-generator について
quiz-generatorは、暗記ではなく応用を重視した大学レベルの概念クイズを作成するスキルです。設問設計、正解位置の配分、即時フィードバック、解説、検証項目を定めています。
主な機能
- 01各章50問のクイズ構成
- 02応用レベル重視の概念問題
- 03解説付きの即時フィードバック
- 04正解位置の均等な再配置
- 05選択肢の長さと出典の検証
活用シーン
- 01章全体を扱うクイズの作成
- 02暗記問題への偏りの確認
- 03正解位置の均等化
- 04誤答選択肢と解説の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ panaversity/ agentfactory --skill quiz-generatorインストール後、Claude Code で/quiz-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/answer-distribution.mdbias-detection-checklist.mdexample-quiz.mdfile-naming.mdgeneration-process.mdoption-length-validation.mdpitfalls-and-solutions.mdquality-checklist.mdscripts/redistribute_answers.pyredistribute_answers_v2.py詳細
クイズジェネレーター
クイックスタート
# 1. Generate 50 questions for chapter
# Focus on conceptual (75%+ Apply level), not recall
# 2. Redistribute answers evenly
python scripts/redistribute_answers_v2.py quiz.md A
# 3. Validate option lengths (±3 words per question)
# Manually count words for ALL 50 questions
ペルソナ
暗記ではなく理解度を確かめる、大学レベルの概念クイズを作成します。目標は、章のすべての概念を網羅する包括的な問題を50問用意し、各回答の直後にフィードバックを提供することです。
固定制約
question_count: 50 # Comprehensive bank
questions_per_batch: 15-20 # Displayed per session
options_per_question: 4 # Always exactly 4
correct_answer_distribution: ~12-13 per index (0-3)
feedback_timing: immediate # After each answer
passing_score: NONE # No threshold
file_naming: ##_chapter_##_quiz.md
分析用の質問
1. これは概念を問う問題ですか(単なる想起ではありませんか)?
| 種類 | 例 | 有効? |
|---|---|---|
| 想起 | 「Python のリストとは何ですか?」 | ❌ |
| 概念 | 「どの操作で可変性の問題が明らかになりますか?」 | ✅ |
目標:75%以上を「適用」レベル以上にする
2. 選択肢の長さは同程度ですか(±3語)?
| 選択肢 | 語数 | 有効? |
|---|---|---|
| A:「はい」/B:「非同期で処理します」 | 2 対 4 | ✅ |
| A:「はい」/B:「フレームワークがリクエストを非同期で処理します」 | 2 対 6 | ❌ |
ルール:パターンから答えを推測されないよう、すべての選択肢の語数を±3語以内にします
3. 正解は均等に分散されていますか?
| インデックス | 件数 | 有効? |
|---|---|---|
| 0 | 12~13 | ✅ |
| 1 | 12~13 | ✅ |
| 2 | 12~13 | ✅ |
| 3 | 12~13 | ✅ |
ルール:同じインデックスが3問以上連続しないようにし、明らかなパターンを避けます
原則
原則 1:問題は50問必須
- 包括的な網羅(章のすべての概念)
- 間隔反復(再受験のたびに異なる問題を出題)
- コンポーネントが問題をシャッフルし、1回のセッションにつき15~20問を表示
原則 2:即時フィードバック
各回答の後に(最後ではなく)表示します:
- ✅ 正解の選択肢を強調表示(緑)
- ❌ 不正解の理由(不正解の場合)
- 解説(100~150語)
原則 3:すべての選択肢に言及
各解説では、次のすべてを説明する必要があります:
- 正解が正しい理由(2~3文)
- 各誤答選択肢が誤りである理由(各1~2文 × 3)
- 現実世界との関連性(1~2文)
原則 4:出典の明記
source: "Lesson 1: Understanding Mutability"
各問題を復習用の特定のレッスンに関連付けます。
クイズコンポーネントの形式
---
sidebar_position: 5
title: "Chapter X: [Topic] Quiz"
---
# Chapter X Quiz
Brief intro (1-2 sentences).
<Quiz
title="Chapter X Assessment"
questions={[
{
question: "Conceptual question here?",
options: [
"Option A (4-6 words)",
"Option B (4-6 words)",
"Option C (4-6 words) ← CORRECT",
"Option D (4-6 words)"
],
correctOption: 2, // Index 0-3, NOT 1-4!
explanation: "Why C is correct (2-3 sentences). Why A is wrong (1-2 sentences). Why B is wrong. Why D is wrong. Real-world connection.",
source: "Lesson 1: Topic Title"
},
// ... 49 more questions (total: 50)
]}
questionsPerBatch={18}
/>
正解の再分配
LLM は正解を均等に分散させるのが苦手です。生成後に次のスクリプトを使用してください:
python scripts/redistribute_answers_v2.py quiz.md A
シーケンス A~Hでは、異なる分布(各インデックスがおよそ12~13回)を指定します。
実行内容:
- クイズの問題を解析します
- シーケンスに合わせて選択肢の位置を入れ替えます
- 新しい位置を参照するように解説を更新します
- すべての解説が正解と一致することを検証します
選択肢の長さの検証(重要)
問題:選択肢の長さが不揃いだと、学生は最長または最短の選択肢を選んで推測できます。
解決策:すべての問題において、すべての選択肢の語数を手作業で数えます。
✅ PASS: 4, 5, 4, 5 words (all within ±3)
❌ FAIL: 2, 4, 11, 3 words (2 to 11 = 9-word spread)
次の点も確認してください:
- 最長の選択肢が正解となる割合がおよそ25%である(偏りがない)
- 最短の選択肢が正解となる割合がおよそ25%である(偏りがない)
よくある落とし穴
| 落とし穴 | 誤り | 正しい例 |
|---|---|---|
| 問題数 | 50問未満 | ちょうど50問 |
| インデックス値 | correctOption: 4 | correctOption: 3(0~3) |
| 出典の欠落 | source フィールドなし | source: "Lesson N: Title" |
| 合格点 | passingScore={70} | プロパティなし(削除済み) |
| 想起問題 | 「Xとは何ですか?」 | 「どれがXの問題を明らかにしますか?」 |
| 不十分な解説 | 正解だけを説明する | 4つの選択肢すべてに言及する |
| 正解のパターン | 0,1,2,3,0,1,2,3... | ランダムにし、各インデックスがおよそ12~13回 |
| 選択肢の長さ | 2語対11語 | すべて±3語以内 |
ファイル名
パターン:##_chapter_##_quiz.md
| 章 | レッスン数 | ファイル名 |
|---|---|---|
| 2 | 4 | 05_chapter_02_quiz.md |
| 5 | 6 | 07_chapter_05_quiz.md |
| 14 | 5 | 06_chapter_14_quiz.md |
引き継ぎチェックリスト
内容:
- 質問は50問(50問未満にしない)
- 75%以上が「適用」レベル以上
- 主要なトピックをすべて網羅
- 想起を問う質問がない
配分:
- correctOption の値は0~3(1~4ではない)
- 各インデックスにつき約12~13問
- 同じインデックスが3問以上連続しない
選択肢の長さ:
- 50問すべての選択肢を数える
- すべて±3語以内
- 最も長い選択肢が正解に偏っていない
- 最も短い選択肢が正解に偏っていない
解説:
- それぞれ100~150語
- 正解である理由を説明
- 各誤答選択肢について説明
- 現実世界との関連がある
形式:
- JSX の構文が有効
- 各質問の選択肢は正確に4つ
- 50問すべてに
sourceフィールドがある -
passingScoreプロパティを含めない - ファイル名が正しい
検証に失敗した場合
- 再配分スクリプトを実行します:
python scripts/redistribute_answers_v2.py quiz.md A - 選択肢の長さを手動で数え直します
- 解説内の参照が correctOption と一致していることを確認します
- 2回試しても問題が解決しない場合は、作業を中止して報告してください
コメント
Markdown 対応