/exam-tutor
按章节惰性加载授课:每次只读当前阶段的一个 wiki 章节,用生活隐喻讲概念、解剖公式;重点题固定走 题面图→问题→读图量→公式→演算→答案详解→溯源七步,画图题先运行算法。用于讲懂当前章或老师勾出的重点题。
$ npx -y skills add ZeKaiNie/universal-examprep-skill --skill exam-tutor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/exam-tutor
Context preview
The summary Claude sees to decide when to auto-load this skill.
按章节惰性加载授课:每次只读当前阶段的一个 wiki 章节,用生活隐喻讲概念、解剖公式;重点题固定走 题面图→问题→读图量→公式→演算→答案详解→溯源七步,画图题先运行算法。用于讲懂当前章或老师勾出的重点题。
SKILL.md
exam-tutor.SKILL.mdname: exam-tutor
description: >
按章节惰性加载授课:每次只读当前阶段的一个 wiki 章节,用生活隐喻讲概念、解剖公式;重点题固定走
题面图→问题→读图量→公式→演算→答案详解→溯源七步,画图题先运行算法。用于讲懂当前章或老师勾出的重点题。
license: MIT
exam-tutor — chapter teaching
Purpose
Teach exactly one current wiki chapter, using metaphors and formula dissection. In zero-basic mode, explain every linked key question with the fixed seven-step walkthrough. Run algorithms before rendering diagrams. This skill teaches; `exam-quiz` alone quizzes and scores.
Activation
Use when `exam-cram` routes the current phase to teaching, or the student asks to learn the current chapter, derive a formula, or explain a key question.
Inputs
- In `processing_mode=lightweight`: one schema-3 visually accepted current-page batch
from `.lightweight/session.json` plus its original pages and declared-scope prompt/answer component assets; no compiled wiki is required.
- `references/wiki/chN_*.md`: the one current chapter; never read the whole wiki.
- `references/teaching_examples.json`: optional examples, read only through the chapter-filtering CLI below; never an answer source.
- `study_state.json`: progress source of truth when present; otherwise the generated `study_progress.md` compatibility view.
Workflow
1. **Load one slice.** Read `study_state.json.processing_mode` first. In `lightweight`, call `lightweight_session.py status`, plan only the current source/page range if it is not already planned, visually inspect those pages, and import the generic item/component manifest with `record-visual`; teach only a schema-3 `visual_ready` batch. A schema-2 `visual_ready` receipt is quarantined read-only: auditably `abandon` it and plan a new attempt, never teach from or silently upgrade it. While still planned, keep `register-answer-dependency` additive; use `set-answer-dependency --reason` to replace/narrow exact answer pages and `remove-answer-dependency --reason` to remove them. Do not call ingestion/OCR, preload later pages, or require a wiki. In `full`, read exactly one current `references/wiki/chN_*.md`. A missing full-mode file means abstain, name it, and never improvise. If full-mode teaching examples exist, run `python "${CLAUDE_SKILL_DIR}/scripts/list_teaching_examples.py" --workspace <ws> --chapter <N> --json` and use only its returned slice. When the full-mode effective cadence below is `step_by_step`, use `--next-pending` instead of loading the whole chapter example slice. A nonzero exit is an invalid/unreadable inventory, not “no examples”; report it.
2. **Teach reproducibly.** Give each concept one concrete metaphor. For STEM, state every formula symbol and unit, then one small hand-computable example. Persist math as `$...$` or `$$...$$`; never leave raw `\frac`, `\sum`, or other TeX as the final reading view.
3. **Use every walkthrough block in order** for every stored/teacher-flagged question and every linked question in zero-basic mode.
**Full-mode pacing:** read the stored preference plus its reported effective and dormant state. `study_state.json.preferences.interaction_style` stores only `batch|step_by_step`; missing legacy state means `batch`. This optional preference is independent from `processing_mode`, `artifact_mode`, and `answer_explanation_mode`, and is not a fourth required startup choice. Persist an explicit change only with `update_progress.py --workspace <ws> set --interaction-style <batch|step_by_step>` (or the strictly validated canonical `--pref interaction_style=...`). It never changes the lightweight page-batch route.
This option applies only to full-mode `teaching_examples.json` items. It does not claim coverage of the chapter bank, typed question units, or the lightweight page-batch route.
- Effective `batch`: use the normal full-mode flow. A true
`preferences.no_questions=true` or any non-full processing mode makes a stored `step_by_step` choice dormant without overwriting it. A stored `batch` choice remains ordinary batch cadence.
- Effective `step_by_step`: call `list_teaching_examples.py --workspace <ws>
--chapter <N> --next-pending --json`. It requires `processing_mode=full`, `no_questions=false`, exact `current_phase`, and valid scoped manifest/state data. It reads the manifest, state, notebook bindings, and baseline within one consistent workspace lock, then returns the first manifest-ordered pending item. A missing manifest, malformed state, or nonzero selector exit blocks the pacing decision; report it and do not guess another item. Two bindings may not share one `notebook_ref`. Only a missing notebook entry or anchor/marker/hash/revision drift may return to pending with bounded stable diagnostics. Link/reparse topology, non-directory/non-regular targets, path escape, invalid UTF-8, an unterminated fence, parse/block corruption, schema/scope/baseline damage, duplicate evidence, and `unexpected_evidence` are fatal. Unbound IDs already present in `phase_evidence[N].teaching_examples` are legal batch/legacy history rather than corrupt step evidence; any ID with a `teaching_example_bindings` record must pass its live notebook-block and manifest-item hash checks regardless of the currently selected cadence. Teach exactly that one item this turn, but complete all seven blocks below; never split one walkthrough across turns. Do not infer progress from notebook presence, language-specific prose, or “I understand” / `Continue`. If `next=null`, `teaching_example_roster_exhausted=true` means only that this full teaching roster has no pending item, including an empty roster; it never completes the chapter or bypasses Guide, bank, typed-unit, asset, checkpoint, or phase gates. A structurally sound current roster with either a stale manifest/notebook binding or an append-only newly added item is a named `usable_with_gaps`
Read more
name: exam-tutor description: > 按章节惰性加载授课:每次只读当前阶段的一个 wiki 章节,用生活隐喻讲概念、解剖公式;重点题固定走 题面图→问题→读图量→公式→演算→答案详解→溯源七步,画图题先运行算法。用于讲懂当前章或老师勾出的重点题。 license: MIT
exam-tutor — chapter teaching
Purpose
Teach exactly one current wiki chapter, using metaphors and formula dissection. In zero-basic mode, explain every linked key question with the fixed seven-step walkthrough. Run algorithms before rendering diagrams. This skill teaches; `exam-quiz` alone quizzes and scores.
Activation
Use when `exam-cram` routes the current phase to teaching, or the student asks to learn the current chapter, derive a formula, or explain a key question.
Inputs
- In `processing_mode=lightweight`: one schema-3 visually accepted current-page batch
from `.lightweight/session.json` plus its original pages and declared-scope prompt/answer component assets; no compiled wiki is required.
- `references/wiki/chN_*.md`: the one current chapter; never read the whole wiki.
- `references/teaching_examples.json`: optional examples, read only through the chapter-filtering CLI below; never an answer source.
- `study_state.json`: progress source of truth when present; otherwise the generated `study_progress.md` compatibility view.
Workflow
1. **Load one slice.** Read `study_state.json.processing_mode` first. In `lightweight`, call `lightweight_session.py status`, plan only the current source/page range if it is not already planned, visually inspect those pages, and import the generic item/component manifest with `record-visual`; teach only a schema-3 `visual_ready` batch. A schema-2 `visual_ready` receipt is quarantined read-only: auditably `abandon` it and plan a new attempt, never teach from or silently upgrade it. While still planned, keep `register-answer-dependency` additive; use `set-answer-dependency --reason` to replace/narrow exact answer pages and `remove-answer-dependency --reason` to remove them. Do not call ingestion/OCR, preload later pages, or require a wiki. In `full`, read exactly one current `references/wiki/chN_*.md`. A missing full-mode file means abstain, name it, and never improvise. If full-mode teaching examples exist, run `python "${CLAUDE_SKILL_DIR}/scripts/list_teaching_examples.py" --workspace <ws> --chapter <N> --json` and use only its returned slice. When the full-mode effective cadence below is `step_by_step`, use `--next-pending` instead of loading the whole chapter example slice. A nonzero exit is an invalid/unreadable inventory, not “no examples”; report it.
2. **Teach reproducibly.** Give each concept one concrete metaphor. For STEM, state every formula symbol and unit, then one small hand-computable example. Persist math as `$...$` or `$$...$$`; never leave raw `\frac`, `\sum`, or other TeX as the final reading view.
3. **Use every walkthrough block in order** for every stored/teacher-flagged question and every linked question in zero-basic mode.
**Full-mode pacing:** read the stored preference plus its reported effective and dormant state. `study_state.json.preferences.interaction_style` stores only `batch|step_by_step`; missing legacy state means `batch`. This optional preference is independent from `processing_mode`, `artifact_mode`, and `answer_explanation_mode`, and is not a fourth required startup choice. Persist an explicit change only with `update_progress.py --workspace <ws> set --interaction-style <batch|step_by_step>` (or the strictly validated canonical `--pref interaction_style=...`). It never changes the lightweight page-batch route.
This option applies only to full-mode `teaching_examples.json` items. It does not claim coverage of the chapter bank, typed question units, or the lightweight page-batch route.
- Effective `batch`: use the normal full-mode flow. A true
`preferences.no_questions=true` or any non-full processing mode makes a stored `step_by_step` choice dormant without overwriting it. A stored `batch` choice remains ordinary batch cadence.
- Effective `step_by_step`: call `list_teaching_examples.py --workspace <ws>
--chapter <N> --next-pending --json`. It requires `processing_mode=full`, `no_questions=false`, exact `current_phase`, and valid scoped manifest/state data. It reads the manifest, state, notebook bindings, and baseline within one consistent workspace lock, then returns the first manifest-ordered pending item. A missing manifest, malformed state, or nonzero selector exit blocks the pacing decision; report it and do not guess another item. Two bindings may not share one `notebook_ref`. Only a missing notebook entry or anchor/marker/hash/revision drift may return to pending with bounded stable diagnostics. Link/reparse topology, non-directory/non-regular targets, path escape, invalid UTF-8, an unterminated fence, parse/block corruption, schema/scope/baseline damage, duplicate evidence, and `unexpected_evidence` are fatal. Unbound IDs already present in `phase_evidence[N].teaching_examples` are legal batch/legacy history rather than corrupt step evidence; any ID with a `teaching_example_bindings` record must pass its live notebook-block and manifest-item hash checks regardless of the currently selected cadence. Teach exactly that one item this turn, but complete all seven blocks below; never split one walkthrough across turns. Do not infer progress from notebook presence, language-specific prose, or “I understand” / `Continue`. If `next=null`, `teaching_example_roster_exhausted=true` means only that this full teaching roster has no pending item, including an empty roster; it never completes the chapter or bypasses Guide, bank, typed-unit, asset, checkpoint, or phase gates. A structurally sound current roster with either a stale manifest/notebook binding or an append-only newly added item is a named `usable_with_gaps`
Turn your slides, homework, and past papers into a source-aware tutor that remembers your progress.
Other skills on universal-examprep-skill.
- /confusion-tracker
教学过程中自动捕获和记录学习者的概念疑难点("为什么/是什么/怎么推/什么意思"类型的问题),保存到进度文件的"概念疑难点记录"区,形成考前回顾清单。
Open skill - /exam-audit
只读检查一个已生成的备考工作区是否健康并报告问题,默认不做任何修改。核对 .ingest 原材料版本、 内容单元、接管队列与派生产物完整性,以及 wiki、题库、视觉证据、计划和进度的一致性。当用户怀疑 工作区有问题、建库 readiness 被阻断、或想在开始复习前体检时使用。
Open skill - /exam-cheatsheet
全员通关后把 错题本+笔记本+知识点窗口+wiki 编译成考前速记小抄 cheatsheet.md(每条要点带可溯源 锚点),并在视觉产物模式或用户明确要求 PDF/打印版时按指定页数渲染成打印级 PDF:按「必背结论/公式 → 有难度例题(必要时含题面图)→ 例题解答(代入公式、保留基础过程)→ 要点解释(同类题怎么办)」 四段组织。当复习收尾、用户要「考前小抄/速记/总结/打印版」时使用。
Open skill - /exam-cram
临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。
Open skill - /exam-help
备考教练的一屏速查卡:工作流、3×4 学习选择、产物偏好、工作区文件、6 大题型、来源规则与子技能路由。 用户问怎么用、有哪些模式、文件用途或支持题型时使用。
Open skill - /exam-ingest
从学生上传的课件/大纲/老师勾的重点/真题,一键初始化并验证备考工作区:解析 PDF、DOCX、PPTX、 XLSX、常见独立图片与 txt/md,建立分章节 LLM Wiki、标准题库、结构化接管队列与进度状态;仅在 Python 确实无法运行时 明确降级为手动写盘。当工作区尚未建立、资料发生变化、或建库 readiness 被阻断时使用。
Open skill

