tutor について
tutorは、概念ごとの理解度と誤答を記録するクイズ型の学習スキルです。学習者が弱点を見つけ、継続的に復習できるよう支援します。
主な機能
- 01概念ごとのクイズ結果の記録
- 02分野別の習熟度ダッシュボード
- 03弱点に応じた練習の選択
- 04誤答メモと学習状況の更新
活用シーン
- 01未測定の学習分野の確認
- 02誤答した概念の練習
- 03習得済み分野の復習と変化の追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bevibing/ tutor-skills --skill tutorインストール後、Claude Code で/tutorを入力して読み込まれたか確認します。
同梱ファイルreferences/quiz-rules.md
詳細
Tutor Skill
ユーザーが把握していること、把握していないことを概念レベルで追跡する、クイズ形式のチューターです。質問を通じて、ユーザーが自分の盲点を見つけられるようにすることを目指します。
ファイル構成
StudyVault/
├── *dashboard* ← Compact overview: proficiency table + stats
└── concepts/
├── {area-name}.md ← Per-area concept tracking (attempts, status, error notes)
└── ...
- ダッシュボード:集計した数値のみを記載します。概念ファイルへのリンクを含みます。いつまでも小さいままです。
- 概念ファイル:分野ごとに1つ作成します。各概念について、試行回数、正解数、日付、ステータス、誤答メモを記録します。テストした固有の概念数に比例して増加します(上限あり)。
ワークフロー
フェーズ 0:言語を検出する
ユーザーのメッセージから言語を検出し、{LANG} に設定します。出力とファイルの内容はすべて {LANG} にします。
フェーズ 1:Vault を見つける
- プロジェクト内で
**/StudyVault/を Glob します - セクションのディレクトリを一覧表示します
**/StudyVault/*dashboard*を Glob してダッシュボードを探します- 見つかった場合は読み込みます。言語にかかわらず、既存ファイルのパスを維持します。
- 見つからない場合は、テンプレートから作成します(下記の「ダッシュボードテンプレート」を参照)
StudyVault が存在しない場合は、ユーザーに伝えて終了します。
フェーズ 2:セッションの種類を尋ねる
必須:AskUserQuestion を使用して、ユーザーが何をするか選べるようにします。ダッシュボードを分析して、状況に合わせた選択肢を作成し、提示してください。
ダッシュボードの習熟度テーブルを読み、現在の状態に基づいて選択肢を作成します。
- 未測定の分野(⬜)がある場合 → その分野を対象とする「診断」オプションを含めます
- 苦手な分野(🟥/🟨)がある場合 → 最も苦手な分野を示す「苦手分野を練習」オプションを含めます
- ユーザーが任意の分野を選べるよう、「セクションを選択」オプションを必ず含めます
- すべての分野が 🟩/🟦 の場合 → 「ハードモードで復習」オプションを含めます
ヘッダーを「Session」とし、各オプションが対象とする分野を簡潔に説明した AskUserQuestion を提示します。続行する前に、ユーザーが必ず選択する必要があります。
フェーズ 3:質問を作成する
- 対象セクション内の Markdown ファイルを読み込みます
- 苦手な分野を練習する場合:
concepts/{area}.mdも読み込み、未解決の 🔴 概念を確認します。これらを新しい文脈で言い換えます(同じ質問を繰り返さないでください) references/quiz-rules.mdに従って、ちょうど 4 問作成します
非常に重要:質問を作成する前に、必ず references/quiz-rules.md を読み込んでください。ヒントは一切認められません。
フェーズ 4:クイズを提示する
AskUserQuestion を使用します。
- 質問は 4 問、選択肢は各 4 つで、単一選択
- ヘッダー:「Q1. トピック」(最大 12 文字)
- 説明:中立的な表現とし、ヒントを含めません
フェーズ 5:採点して解説する
- 結果の表を表示します(質問/正解/ユーザーの回答/結果)
- 不正解の場合:簡潔に説明します
- 各質問を該当する分野に対応付けます
フェーズ 6:ファイルを更新する
1. 概念ファイルを更新する(concepts/{area}.md)
回答された質問ごとに、次の処理を行います。
- 新しい概念:テーブルに行を追加します。不正解の場合は、
### 오답 메모(またはローカライズした同等の見出し)の下に誤答メモを追加します - 既存の 🔴 概念に正解した場合:試行回数と正解数を加算し、ステータスを 🟢 に変更します。学習履歴として誤答メモは残します
- 既存の 🟢 概念に再び不正解した場合:試行回数を加算し、ステータスを 🔴 に戻し、誤答メモを更新します
テーブル形式:
| Concept | Attempts | Correct | Last Tested | Status |
|---------|----------|---------|-------------|--------|
| concept name | 2 | 1 | 2026-02-24 | 🔴 |
誤答メモの形式(不正解の場合のみ):
### Error Notes
**concept name**
- Confusion: what the user mixed up
- Key point: the correct understanding
2. ダッシュボードを更新する
- 概念ファイルから分野ごとの統計を再計算します(各分野のすべての概念について、試行回数と正解数を合計)
- 習熟度バッジを更新します:🟥 0~39% · 🟨 40~69% · 🟩 70~89% · 🟦 90~100% · ⬜ データなし
- 統計を更新します:質問の合計数、累積正解率、未解決/解決済みの数、最も苦手/得意な分野
ダッシュボードはコンパクトに保ちます。セッションログや質問ごとの詳細は含めません。
ダッシュボードテンプレート
ダッシュボードが存在しない場合に作成します。ファイル名は {LANG} に合わせてローカライズします。英語の例:
# Learning Dashboard
> Concept-based metacognition tracking. See linked files for details.
---
## Proficiency by Area
| Area | Correct | Wrong | Rate | Level | Details |
|------|---------|-------|------|-------|---------|
(one row per section, last column = [[concepts/{area}]] link)
| **Total** | **0** | **0** | **-** | ⬜ Unmeasured | |
> 🟥 Weak (0-39%) · 🟨 Fair (40-69%) · 🟩 Good (70-89%) · 🟦 Mastered (90-100%) · ⬜ Unmeasured
---
## Stats
- **Total Questions**: 0
- **Cumulative Rate**: -
- **Unresolved Concepts**: 0
- **Resolved Concepts**: 0
- **Weakest Area**: -
- **Strongest Area**: -
概念ファイルのテンプレート
各分野について、最初の質問をするときに作成します。例:
# {Area Name} — Concept Tracker
| Concept | Attempts | Correct | Last Tested | Status |
|---------|----------|---------|-------------|--------|
### Error Notes
(added as concepts are missed)
重要な注意事項
- 質問を作成する前に、必ず
references/quiz-rules.mdを読むこと - 選択肢のラベルや説明にヒントを絶対に含めないこと
- いずれの選択肢にも「(推奨)」を絶対に付けないこと
- 正解の位置をランダムにすること
- 採点後は、概念ファイルとダッシュボードの両方を必ず更新すること
- ユーザーの言語でやり取りすること