‹ 首页

tutor

@bevibing · 收录于 1 周前 · 上游提交 4 个月前

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", "학습", "퀴즈", "평가".

适合你,如果你用Obsidian做学习笔记并想通过测验检验掌握程度

/ 下载安装
tutor.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add bevibing/tutor-skills/tutor
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- bevibing/tutor-skills/tutor
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify bevibing/tutor-skills/tutor
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
1021GitHub stars
~1.2K最小装载
~1.7K含声明引用
~1.7K文本包总量
镜像托管

怎么用

商店整理自技能原文 · 版本 397110c · 表述以原文为准
它做什么

装上后,Claude 会变成一个交互式测验导师。它会先检测你的语言,然后读取 Obsidian 笔记库中的 StudyVault 文件夹,根据你的学习进度生成 4 道选择题,并记录每个概念的掌握情况。

什么时候触发

当你在 Obsidian 中说出“考考我”、“测试我”、“学习”等关键词,或要求诊断、复习特定章节、强化薄弱环节时触发。

装好后可以这样说
Claude 会检查仪表盘,针对未测量或弱项区域出题。
Claude 会针对指定章节生成测验。
技能原文 SKILL.md作者撰写 · MIT · 397110c

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
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。