PluginBench
Skill
Pass
Audit score 90

tutor

bevibing/tutor-skills

Interactive quiz tutor that tracks concept mastery and identifies knowledge gaps.

What is tutor?

A quiz-based tutor integrated with Obsidian StudyVault that assesses knowledge at the concept level and tracks learning progress. Use it when you want to take diagnostic assessments, study specific topics, drill weak areas, or review your learning dashboard.

  • Generates 4-question quizzes targeting unmeasured, weak, or user-selected areas
  • Tracks concept-level mastery with attempt counts, success rates, and error notes
  • Detects user language and delivers all content in that language
  • Builds context-aware session options based on current proficiency dashboard
  • Updates concept files and dashboard automatically after each quiz session

How to install tutor

npx skills add https://github.com/bevibing/tutor-skills --skill tutor
Prerequisites
  • Obsidian vault with a StudyVault directory structure
  • Markdown files organized by study area/section
  • references/quiz-rules.md file defining question creation rules
Claude Code
Cursor
Windsurf
Cline

How to use tutor

  1. 1.Run the tutor skill and let it detect your StudyVault location
  2. 2.Select a session type: Diagnostic (unmeasured areas), Drill weak areas, Choose a section, or Hard-mode review
  3. 3.Answer the 4 quiz questions presented
  4. 4.Review the results table showing correct answers and explanations
  5. 5.Check your updated dashboard and concept files to see progress

Use cases

Good for
  • Take a diagnostic assessment to identify knowledge gaps across all study areas
  • Drill weak concepts by retesting failed questions in new contexts
  • Review progress on a specific topic or section
  • Check your learning dashboard to see proficiency levels and statistics
  • Study for an exam by targeting areas with lowest mastery rates
Who it's for
  • Students using Obsidian for study management
  • Learners who want concept-level metacognition tracking
  • Anyone preparing for assessments and needing to identify blind spots

tutor FAQ

What happens if I answer a question wrong?

The tutor records the error, shows you a concise explanation, and adds an error note to your concept file documenting the confusion and correct understanding. That concept is marked as unresolved (🔴) for future drilling.

How does the tutor choose which concepts to quiz?

It reads your dashboard to find unmeasured areas (⬜), weak areas (🟥/🟨), or unresolved concepts (🔴) from previous sessions. When drilling weak areas, it rephrases failed questions in new contexts rather than repeating the same question.

Will my dashboard and concept files grow too large?

No. The dashboard stays compact with only aggregated stats and links. Concept files grow proportionally to unique concepts tested, not session count, so they remain bounded.

What language will the tutor use?

The tutor detects your language from your message and outputs everything—questions, explanations, file content—in that language.

Can I choose which area to study instead of following recommendations?

Yes. The session type selection always includes a 'Choose a section' option so you can pick any area manually.

Full instructions (SKILL.md)

Source of truth, from bevibing/tutor-skills.


name: tutor description: > Interactive quiz tutor for Obsidian StudyVault learning. Use when the user wants to: (1) Take a diagnostic assessment of their knowledge, (2) Study or review specific sections/topics, (3) Drill weak areas identified in previous sessions, (4) Check their learning progress or dashboard, or says things like "quiz me", "test me", "let's study", "/tutor", "학습", "퀴즈", "평가".

Tutor Skill

Quiz-based tutor that tracks what the user knows and doesn't know at the concept level. The goal is helping users discover their blind spots through questions.

File Structure

StudyVault/
├── *dashboard*              ← Compact overview: proficiency table + stats
└── concepts/
    ├── {area-name}.md       ← Per-area concept tracking (attempts, status, error notes)
    └── ...
  • Dashboard: Only aggregated numbers. Links to concept files. Stays small forever.
  • Concept files: One per area. Tracks each concept with attempts, correct count, date, status, and error notes. Grows proportionally to unique concepts tested (bounded).

Workflow

Phase 0: Detect Language

Detect user's language from their message → {LANG}. All output and file content in {LANG}.

Phase 1: Discover Vault

  1. Glob **/StudyVault/ in project
  2. List section directories
  3. Glob **/StudyVault/*dashboard* to find dashboard
  4. If found, read it. Preserve existing file path regardless of language.
  5. If not found, create from template (see Dashboard Template below)

If no StudyVault exists, inform user and stop.

Phase 2: Ask Session Type

MANDATORY: Use AskUserQuestion to let the user choose what to do. Analyze the dashboard to build context-aware options, then present them.

Read the dashboard proficiency table and build options based on current state:

  1. If unmeasured areas (⬜) exist → include "Diagnostic" option targeting those areas
  2. If weak areas (🟥/🟨) exist → include "Drill weak areas" option naming the weakest area(s)
  3. Always include "Choose a section" option so the user can pick any area
  4. If all areas are 🟩/🟦 → include "Hard-mode review" option

Present these as an AskUserQuestion with header "Session" and concise descriptions showing which areas each option targets. The user MUST select before proceeding.

Phase 3: Build Questions

  1. Read markdown files in target section(s)
  2. If drilling weak area: also read concepts/{area}.md to find 🔴 unresolved concepts — rephrase these in new contexts (don't repeat the same question)
  3. Craft exactly 4 questions following references/quiz-rules.md

CRITICAL: Read references/quiz-rules.md before crafting ANY question. Zero hints allowed.

Phase 4: Present Quiz

Use AskUserQuestion:

  • 4 questions, 4 options each, single-select
  • Header: "Q1. Topic" (max 12 chars)
  • Descriptions: neutral, no hints

Phase 5: Grade & Explain

  1. Show results table (question / correct answer / user answer / result)
  2. Wrong answers: concise explanation
  3. Map each question to its area

Phase 6: Update Files

1. Update concept file (concepts/{area}.md)

For each question answered:

  • New concept: Add row to table + if wrong, add error note under ### 오답 메모 (or localized equivalent)
  • Existing 🔴 concept answered correctly: Increment attempts & correct, change status to 🟢, keep error note (learning history)
  • Existing 🟢 concept answered wrong again: Increment attempts, change status back to 🔴, update error note

Table format:

| Concept | Attempts | Correct | Last Tested | Status |
|---------|----------|---------|-------------|--------|
| concept name | 2 | 1 | 2026-02-24 | 🔴 |

Error notes format (only for wrong answers):

### Error Notes

**concept name**
- Confusion: what the user mixed up
- Key point: the correct understanding

2. Update dashboard

  • Recalculate per-area stats from concept files (sum attempts/correct across all concepts in that area)
  • Update proficiency badges: 🟥 0-39% · 🟨 40-69% · 🟩 70-89% · 🟦 90-100% · ⬜ no data
  • Update stats: total questions, cumulative rate, unresolved/resolved counts, weakest/strongest

Dashboard stays compact — no session logs, no per-question details.

Dashboard Template

Create when no dashboard exists. Filename localized to {LANG}. Example in English:

# 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**: -

Concept File Template

Create per area when first question is asked. Example:

# {Area Name} — Concept Tracker

| Concept | Attempts | Correct | Last Tested | Status |
|---------|----------|---------|-------------|--------|

### Error Notes

(added as concepts are missed)

Important Reminders

  • ALWAYS read references/quiz-rules.md before creating questions
  • NEVER include hints in option labels or descriptions
  • NEVER use "(Recommended)" on any option
  • Randomize correct answer position
  • After grading, ALWAYS update both concept file AND dashboard
  • Communicate in user's language