关于 tutor
tutor 是基于测验的学习 Skill,按概念追踪掌握程度和易错点,帮助用户发现知识盲区并持续复习。
主要功能
- 01按概念记录测验表现
- 02维护分区掌握度仪表板
- 03根据薄弱项选择练习
- 04更新错误说明与学习状态
适用场景
- 01检查尚未测量的学习领域
- 02针对反复答错的概念练习
- 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)
└── ...
- 仪表板:仅显示汇总数据。链接到概念文件。始终保持精简。
- 概念文件:每个领域一个文件。跟踪每个概念的作答次数、答对次数、日期、状态和错误备注。文件会随着已测概念数量的增加而按比例增长(有上限)。
工作流
阶段 0:检测语言
根据用户的消息检测其语言 → {LANG}。所有输出和文件内容都使用 {LANG}。
阶段 1:发现 Vault
- 在项目中 glob
**/StudyVault/ - 列出各分区目录
- glob
**/StudyVault/*dashboard*以查找仪表板 - 如果找到,则读取。无论语言如何,都保留现有文件路径。
- 如果未找到,则根据模板创建(见下方“仪表板模板”)
如果不存在 StudyVault,告知用户并停止。
阶段 2:询问会话类型
必须:使用 AskUserQuestion 让用户选择要做什么。分析仪表板以构建符合当前状态的选项,然后呈现这些选项。
读取仪表板中的熟练度表,并根据当前状态构建选项:
- 如果存在尚未测量的领域(⬜)→ 添加针对这些领域的“诊断”选项
- 如果存在薄弱领域(🟥/🟨)→ 添加“练习薄弱领域”选项,并注明最薄弱的领域
- 始终添加“选择一个分区”选项,让用户可以选择任意领域
- 如果所有领域均为 🟩/🟦 → 添加“高难度复习”选项
使用 AskUserQuestion 呈现这些选项,标题为 "Session",并用简洁描述说明每个选项针对哪些领域。用户必须先做出选择才能继续。
阶段 3:编写问题
- 读取目标分区中的 Markdown 文件
- 如果要练习薄弱领域:还要读取
concepts/{area}.md,查找 🔴 未解决的概念,并在新的情境中改写这些概念(不要重复同一个问题) - 按照
references/quiz-rules.md编写恰好 4 个问题
关键:编写任何问题之前,必须先读取 references/quiz-rules.md。不得提供任何提示。
阶段 4:呈现测验
使用 AskUserQuestion:
- 4 个问题,每个问题 4 个选项,单选
- 标题:"Q1. Topic"(最多 12 个字符)
- 描述:保持中立,不包含提示
阶段 5:评分与讲解
- 显示结果表(问题 / 正确答案 / 用户答案 / 结果)
- 对于答错的问题:给出简洁的解释
- 将每个问题映射到对应领域
阶段 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 - 选项标签或描述中不得包含提示
- 任何选项中都不得使用 "(Recommended)"
- 随机安排正确答案的位置
- 评分后,务必同时更新概念文件和仪表板
- 使用用户的语言交流
评论
支持 Markdown