tutor
roundtable02/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 chosen study areas
- Tracks concept mastery with attempt counts, success rates, and error notes
- Detects user language and delivers all content in that language
- Maintains a compact dashboard showing proficiency by area and cumulative stats
- Identifies and rephrase weak concepts in new contexts for targeted drilling
- Updates concept files and dashboard automatically after each session
How to install tutor
npx skills add https://github.com/roundtable02/tutor-skills --skill tutor- Obsidian vault with a StudyVault directory containing section folders and markdown files
- Section markdown files containing study material to generate questions from
- A references/quiz-rules.md file defining question generation standards
How to use tutor
- 1.Run the tutor skill or say 'quiz me' / 'test me' / 'let's study'
- 2.Select a session type from the options presented (Diagnostic, Drill weak areas, Choose a section, or Hard-mode review)
- 3.Answer the 4 quiz questions presented with single-select multiple choice
- 4.Review the graded results with explanations for incorrect answers
- 5.Check your updated dashboard and concept files to see progress and error notes
Use cases
- Take a diagnostic assessment to discover knowledge blind spots in a new subject area
- Drill weak concepts identified in previous sessions with rephrased questions
- Review your learning dashboard to see proficiency levels across all study areas
- Study a specific section by choosing it from context-aware session options
- Track error patterns and learning history through concept-level metadata
- Students using Obsidian StudyVault for self-directed learning
- Learners who want concept-level metacognition and progress tracking
- Anyone preparing for assessments and needing to identify knowledge gaps
tutor FAQ
The skill will inform you and stop. You need to create a StudyVault directory in your Obsidian vault with section folders and markdown files containing study material.
The skill reads your dashboard proficiency table and identifies areas with 🟥 (0-39%) or 🟨 (40-69%) ratings based on your previous quiz performance.
Yes. When drilling weak areas, the skill rereads your concept file to find unresolved (🔴) concepts and rephrases them in new contexts rather than repeating the same question.
Each concept file tracks: concept name, number of attempts, correct count, last tested date, status badge (🔴/🟢), and error notes explaining what was confused and the correct understanding.
The dashboard stays compact with only aggregated stats and links to concept files. Concept files grow proportionally to unique concepts tested, but the dashboard itself remains small.
Full instructions (SKILL.md)
Source of truth, from roundtable02/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
- Glob
**/StudyVault/in project - List section directories
- Glob
**/StudyVault/*dashboard*to find dashboard - If found, read it. Preserve existing file path regardless of language.
- 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:
- If unmeasured areas (⬜) exist → include "Diagnostic" option targeting those areas
- If weak areas (🟥/🟨) exist → include "Drill weak areas" option naming the weakest area(s)
- Always include "Choose a section" option so the user can pick any area
- 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
- Read markdown files in target section(s)
- If drilling weak area: also read
concepts/{area}.mdto find 🔴 unresolved concepts — rephrase these in new contexts (don't repeat the same question) - 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
- Show results table (question / correct answer / user answer / result)
- Wrong answers: concise explanation
- 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.mdbefore 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
Related skills
More from roundtable02/tutor-skills and the wider catalog.

tutor-setup
Transform PDFs, code, or web sources into an interactive Obsidian StudyVault with practice questions and architecture guides.

app-planner
Plans new macOS apps or analyzes existing projects. Creates comprehensive planning documents covering architecture, features, UI/UX, and tech stack. Use when planning a new macOS app or auditing an existing one.

rsbuild-best-practices
Rsbuild configuration, optimization, and debugging best practices for production projects.

rslib-best-practices
Rslib best practices for config, CLI workflow, output, declaration files, dependency handling, build optimization and toolchain integration. Use when writing, reviewing, or troubleshooting Rslib projects.

file-manager
Agent skill from rtgs2017/nagaagent.
code-simplifier
Review RTK Rust code for idiomatic simplification. Detects over-engineering, unnecessary allocations, verbose patterns. Applies Rust idioms without changing behavior.