mcpField
T
tutor

tutor

github.com/bevibing生産性1.4k2.4k 回インストール35 週間前に更新
リポジトリ

tutor について

tutorは、概念ごとの理解度と誤答を記録するクイズ型の学習スキルです。学習者が弱点を見つけ、継続的に復習できるよう支援します。

主な機能

  1. 01概念ごとのクイズ結果の記録
  2. 02分野別の習熟度ダッシュボード
  3. 03弱点に応じた練習の選択
  4. 04誤答メモと学習状況の更新

活用シーン

  1. 01未測定の学習分野の確認
  2. 02誤答した概念の練習
  3. 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 を見つける
  1. プロジェクト内で **/StudyVault/ を Glob します
  2. セクションのディレクトリを一覧表示します
  3. **/StudyVault/*dashboard* を Glob してダッシュボードを探します
  4. 見つかった場合は読み込みます。言語にかかわらず、既存ファイルのパスを維持します。
  5. 見つからない場合は、テンプレートから作成します(下記の「ダッシュボードテンプレート」を参照)

StudyVault が存在しない場合は、ユーザーに伝えて終了します。

フェーズ 2:セッションの種類を尋ねる

必須:AskUserQuestion を使用して、ユーザーが何をするか選べるようにします。ダッシュボードを分析して、状況に合わせた選択肢を作成し、提示してください。

ダッシュボードの習熟度テーブルを読み、現在の状態に基づいて選択肢を作成します。

  1. 未測定の分野(⬜)がある場合 → その分野を対象とする「診断」オプションを含めます
  2. 苦手な分野(🟥/🟨)がある場合 → 最も苦手な分野を示す「苦手分野を練習」オプションを含めます
  3. ユーザーが任意の分野を選べるよう、「セクションを選択」オプションを必ず含めます
  4. すべての分野が 🟩/🟦 の場合 → 「ハードモードで復習」オプションを含めます

ヘッダーを「Session」とし、各オプションが対象とする分野を簡潔に説明した AskUserQuestion を提示します。続行する前に、ユーザーが必ず選択する必要があります。

フェーズ 3:質問を作成する
  1. 対象セクション内の Markdown ファイルを読み込みます
  2. 苦手な分野を練習する場合:concepts/{area}.md も読み込み、未解決の 🔴 概念を確認します。これらを新しい文脈で言い換えます(同じ質問を繰り返さないでください)
  3. references/quiz-rules.md に従って、ちょうど 4 問作成します

非常に重要:質問を作成する前に、必ず references/quiz-rules.md を読み込んでください。ヒントは一切認められません。

フェーズ 4:クイズを提示する

AskUserQuestion を使用します。

  • 質問は 4 問、選択肢は各 4 つで、単一選択
  • ヘッダー:「Q1. トピック」(最大 12 文字)
  • 説明:中立的な表現とし、ヒントを含めません
フェーズ 5:採点して解説する
  1. 結果の表を表示します(質問/正解/ユーザーの回答/結果)
  2. 不正解の場合:簡潔に説明します
  3. 各質問を該当する分野に対応付けます
フェーズ 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 を読むこと
  • 選択肢のラベルや説明にヒントを絶対に含めないこと
  • いずれの選択肢にも「(推奨)」を絶対に付けないこと
  • 正解の位置をランダムにすること
  • 採点後は、概念ファイルとダッシュボードの両方を必ず更新すること
  • ユーザーの言語でやり取りすること

コメント