mcpField
T
tutor

tutor

github.com/bevibing生产力1.4k2.4k 次安装35 周前更新
代码仓库

关于 tutor

tutor 是基于测验的学习 Skill,按概念追踪掌握程度和易错点,帮助用户发现知识盲区并持续复习。

主要功能

  1. 01按概念记录测验表现
  2. 02维护分区掌握度仪表板
  3. 03根据薄弱项选择练习
  4. 04更新错误说明与学习状态

适用场景

  1. 01检查尚未测量的学习领域
  2. 02针对反复答错的概念练习
  3. 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
  1. 在项目中 glob **/StudyVault/
  2. 列出各分区目录
  3. glob **/StudyVault/*dashboard* 以查找仪表板
  4. 如果找到,则读取。无论语言如何,都保留现有文件路径。
  5. 如果未找到,则根据模板创建(见下方“仪表板模板”)

如果不存在 StudyVault,告知用户并停止。

阶段 2:询问会话类型

必须:使用 AskUserQuestion 让用户选择要做什么。分析仪表板以构建符合当前状态的选项,然后呈现这些选项。

读取仪表板中的熟练度表,并根据当前状态构建选项:

  1. 如果存在尚未测量的领域(⬜)→ 添加针对这些领域的“诊断”选项
  2. 如果存在薄弱领域(🟥/🟨)→ 添加“练习薄弱领域”选项,并注明最薄弱的领域
  3. 始终添加“选择一个分区”选项,让用户可以选择任意领域
  4. 如果所有领域均为 🟩/🟦 → 添加“高难度复习”选项

使用 AskUserQuestion 呈现这些选项,标题为 "Session",并用简洁描述说明每个选项针对哪些领域。用户必须先做出选择才能继续。

阶段 3:编写问题
  1. 读取目标分区中的 Markdown 文件
  2. 如果要练习薄弱领域:还要读取 concepts/{area}.md,查找 🔴 未解决的概念,并在新的情境中改写这些概念(不要重复同一个问题)
  3. 按照 references/quiz-rules.md 编写恰好 4 个问题

关键:编写任何问题之前,必须先读取 references/quiz-rules.md。不得提供任何提示。

阶段 4:呈现测验

使用 AskUserQuestion:

  • 4 个问题,每个问题 4 个选项,单选
  • 标题:"Q1. Topic"(最多 12 个字符)
  • 描述:保持中立,不包含提示
阶段 5:评分与讲解
  1. 显示结果表(问题 / 正确答案 / 用户答案 / 结果)
  2. 对于答错的问题:给出简洁的解释
  3. 将每个问题映射到对应领域
阶段 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