
tutor
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", "학습", "퀴즈", "평가".
- Installs
- 2.4K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/bevibing/tutor-skills --skill tutor- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads tutor automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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
FAQ
What does the tutor skill do?
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", "학습", "퀴즈", "평가".
How do I install tutor?
Run npx skills add https://github.com/bevibing/tutor-skills --skill tutor in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tutor/ (personal) or .claude/skills/tutor/ (project).
Which AI agents can use tutor?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is tutor safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains tutor?
It is published by bevibing in bevibing/tutor-skills. It has 2,373 recorded installs.
More from bevibing/tutor-skills
tutor-setup
bevibing/tutor-skills
Transforms knowledge sources into an Obsidian StudyVault. Two modes: (1) Document Mode — PDF/text/web sources → study notes with practice questions. (2) Codebase Mode — source code project → onboarding vault for new developers. Mode is auto-detected based on project markers in CWD.
Popular education & science skills
teach
mattpocock/skills
Teach the user a new skill or concept, within this workspace.
scaffold-exercises
mattpocock/skills
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
paper-context-resolver
lllllllama/rigorpilot-skills
Rigor Paper Context helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacing README guidance by default.
caveman-learn
juliusbrussee/caveman
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.
gsap-plugins
greensock/gsap-skills
Official GSAP skill for GSAP plugins — registration, ScrollToPlugin, ScrollSmoother, Flip, Draggable, Inertia, Observer, SplitText, ScrambleText, SVG and physics plugins, CustomEase, EasePack, CustomWiggle, CustomBounce, GSDevTools. Use when the user asks about a GSAP plugin, scroll-to, flip animations, draggable, SVG drawing, or plugin registration.
teach-impeccable
pbakaus/impeccable
DEPRECATED: Use /impeccable teach instead. This command has been folded into the impeccable skill.