tutor

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Tutor Skill

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).
StudyVault/
├── *dashboard*              ← 紧凑概览:熟练度表格 + 统计
└── concepts/
    ├── {area-name}.md       ← 各区域概念跟踪(尝试次数、状态、错误笔记)
    └── ...
  • 仪表板(dashboard):仅包含汇总数据。链接到概念文件。始终保持小巧。
  • 概念文件:每个区域一个。跟踪每个概念的尝试次数、正确次数、日期、状态和错误笔记。随着测试过的唯一概念数量成比例增长(有界)。

Workflow

工作流程

Phase 0: Detect Language

阶段 0:检测语言

Detect user's language from their message →
{LANG}
. All output and file content in
{LANG}
.
从用户的消息中检测用户语言 →
{LANG}
。所有输出和文件内容均使用
{LANG}
。

Phase 1: Discover Vault

阶段 1:发现学习库(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.
  1. 在项目中用 Glob 查找
    **/StudyVault/
  2. 列出区域目录
  3. 用 Glob 查找
    **/StudyVault/*dashboard*
    以找到仪表板
  4. 如果找到,则读取它。无论语言如何,保留现有文件路径。
  5. 如果未找到,则根据模板创建(见下文仪表板模板)
如果不存在 StudyVault,则告知用户并停止。

Phase 2: Ask Session Type

阶段 2:询问会话类型

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.
必选:使用 AskUserQuestion 让用户选择要做什么。分析仪表板以构建上下文相关的选项,然后呈现给用户。
读取仪表板熟练度表格,根据当前状态构建选项:
  1. 如果存在未测量区域(⬜)→ 包含针对这些区域的“诊断”选项
  2. 如果存在薄弱区域(🟥/🟨)→ 包含“强化薄弱环节”选项,并指明最薄弱的区域
  3. 始终包含“选择区域”选项,以便用户可以选择任何区域
  4. 如果所有区域均为 🟩/🟦 → 包含“困难模式复习”选项
以 AskUserQuestion 形式呈现,标题为“会话”,并附上简明描述,说明每个选项针对哪些区域。用户必须先选择才能继续。

Phase 3: Build Questions

阶段 3:构建问题

  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.
  1. 读取目标区域的 markdown 文件
  2. 如果是在强化薄弱环节:还要读取
    concepts/{area}.md
    以查找 🔴 未解决的概念——在新情境中重新表述这些问题(不要重复相同的问题)
  3. 按照
    references/quiz-rules.md
    精确设计 4 个问题
关键:在构思任何问题之前,必须阅读
references/quiz-rules.md
。不允许提供任何提示。

Phase 4: Present Quiz

阶段 4:呈现测验

Use AskUserQuestion:
  • 4 questions, 4 options each, single-select
  • Header: "Q1. Topic" (max 12 chars)
  • Descriptions: neutral, no hints
使用 AskUserQuestion:
  • 4 个问题,每个 4 个选项,单选
  • 标题:“Q1. 主题”(最多 12 个字符)
  • 描述:中性,无提示

Phase 5: Grade & Explain

阶段 5:评分与讲解

  1. Show results table (question / correct answer / user answer / result)
  2. Wrong answers: concise explanation
  3. Map each question to its area
  1. 显示结果表格(问题 / 正确答案 / 用户答案 / 结果)
  2. 错误答案:简明扼要的解释
  3. 将每个问题映射到其所属区域

Phase 6: Update Files

阶段 6:更新文件

1. Update concept file (
concepts/{area}.md
)

1. 更新概念文件(
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:
markdown
| Concept | Attempts | Correct | Last Tested | Status |
|---------|----------|---------|-------------|--------|
| concept name | 2 | 1 | 2026-02-24 | 🔴 |
Error notes format (only for wrong answers):
markdown
undefined
对于每个已回答的问题:
  • 新概念:在表格中添加一行;如果答错,在
    ### 오답 메모
    (或本地化等效标题)下添加错误笔记
  • 已有的 🔴 概念答对:增加尝试次数和正确次数,将状态改为 🟢,保留错误笔记(学习历史)
  • 已有的 🟢 概念再次答错:增加尝试次数,将状态改回 🔴,更新错误笔记
表格格式:
markdown
| Concept | Attempts | Correct | Last Tested | Status |
|---------|----------|---------|-------------|--------|
| concept name | 2 | 1 | 2026-02-24 | 🔴 |
错误笔记格式(仅针对错误答案):
markdown
undefined

Error Notes

Error Notes

concept name
  • Confusion: what the user mixed up
  • Key point: the correct understanding
undefined
concept name
  • Confusion: what the user mixed up
  • Key point: the correct understanding
undefined

2. Update dashboard

2. 更新仪表板

  • 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.
  • 根据概念文件重新计算各区域统计(汇总该区域所有概念的尝试/正确次数)
  • 更新熟练度徽章:🟥 0-39% · 🟨 40-69% · 🟩 70-89% · 🟦 90-100% · ⬜ 无数据
  • 更新统计:总问题数、累计正确率、未解决/已解决概念数、最薄弱/最强区域
仪表板保持紧凑——不包含会话日志,不包含每题详情。

Dashboard Template

仪表板模板

Create when no dashboard exists. Filename localized to
{LANG}
. Example in English:
markdown
undefined
在不存在仪表板时创建。文件名本地化为
{LANG}
。英文示例:
markdown
undefined

Learning Dashboard

Learning Dashboard

Concept-based metacognition tracking. See linked files for details.

Concept-based metacognition tracking. See linked files for details.

Proficiency by Area

Proficiency by Area

AreaCorrectWrongRateLevelDetails
(one row per section, last column = [[concepts/{area}]] link)
Total00-⬜ Unmeasured
🟥 Weak (0-39%) · 🟨 Fair (40-69%) · 🟩 Good (70-89%) · 🟦 Mastered (90-100%) · ⬜ Unmeasured

AreaCorrectWrongRateLevelDetails
(one row per section, last column = [[concepts/{area}]] link)
Total00-⬜ Unmeasured
🟥 Weak (0-39%) · 🟨 Fair (40-69%) · 🟩 Good (70-89%) · 🟦 Mastered (90-100%) · ⬜ Unmeasured

Stats

Stats

  • Total Questions: 0
  • Cumulative Rate: -
  • Unresolved Concepts: 0
  • Resolved Concepts: 0
  • Weakest Area: -
  • Strongest Area: -
undefined
  • Total Questions: 0
  • Cumulative Rate: -
  • Unresolved Concepts: 0
  • Resolved Concepts: 0
  • Weakest Area: -
  • Strongest Area: -
undefined

Concept File Template

概念文件模板

Create per area when first question is asked. Example:
markdown
undefined
在首次提问时为每个区域创建。示例:
markdown
undefined

{Area Name} — Concept Tracker

{Area Name} — Concept Tracker

ConceptAttemptsCorrectLast TestedStatus
ConceptAttemptsCorrectLast TestedStatus

Error Notes

Error Notes

(added as concepts are missed)
undefined
(added as concepts are missed)
undefined

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
  • 在创建问题之前,始终阅读
    references/quiz-rules.md
  • 绝不在选项标签或描述中包含提示
  • 绝不在任何选项上使用“(推荐)”
  • 随机化正确答案的位置
  • 评分后,始终同时更新概念文件和仪表板
  • 使用用户的语言进行交流