by ZeKaiNie
Last-night exam-cram coach as a Claude Agent Skill: turns your slides, notes and past papers into a chaptered knowledge base + quiz bank, teaches only what's in your materials, and never fabricates (measured 100% out-of-scope abstention). Bilingual EN/中文 — the 期末极速备考 skill.
# Add to your Claude Code skills
git clone https://github.com/ZeKaiNie/universal-examprep-skillGuides for using ai agents skills like universal-examprep-skill.
Last scanned: 7/12/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-07-12T06:31:46.328Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}universal-examprep-skill is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ZeKaiNie. Last-night exam-cram coach as a Claude Agent Skill: turns your slides, notes and past papers into a chaptered knowledge base + quiz bank, teaches only what's in your materials, and never fabricates (measured 100% out-of-scope abstention). Bilingual EN/中文 — the 期末极速备考 skill. It has 258 GitHub stars.
Yes. universal-examprep-skill passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/ZeKaiNie/universal-examprep-skill" and add it to your Claude Code skills directory (see the Installation section above). universal-examprep-skill ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
universal-examprep-skill is primarily written in Python. It is open-source under ZeKaiNie on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh universal-examprep-skill against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
This language-neutral router dispatches last-minute exam prep to the chapter-wiki, bank-only, persistent control layer and its wording packs; it is not a duplicate manual.
Read the canonical, language-neutral study_state.json.language code and load the matching compatibility entry plus its per-skill wording pack BEFORE emitting any student-visible output:
zh (display choice 中文) → locales/zh/SKILL.md plus the selected sub-skill's zh wording pack under locales/zh/skills/en (display choice English) → locales/en/SKILL.md plus the selected sub-skill's en wording pack under locales/en/skills/bilingual (display choice 双语) → compose the zh and en wording block by block, with zh first and a > EN: mirror for each block (composition rules in docs/language-policy.md)中文, English, and 双语 remain accepted user-facing input aliases. On first contact one combined ask sets mode, budget, and language, then show the independent material-processing choice 轻量按需(推荐) / 完整建库; exam_start.py confirm persists them with the exact workspace/materials receipt. Missing, urgent, accepted-default, and legacy processing choices mean lightweight; only explicit full opens complete ingestion. A later reconfirm with no processing flag preserves an existing canonical choice. Later update_progress.py set --language applies next turn. Default English unless the student opened in Chinese; bilingual is explicit-only.
Behavior lives in skills/exam-cram/SKILL.md and these subskills:
| Sub-skill | Role |
|---|---|
exam-ingest |
Build/validate workspace |
exam-tutor |
Lazy chapter teaching |
exam-study-guide |
Typed guide and visual artifact gate |
exam-quiz |
Bank-only selection/grading |
exam-review |
Replay mistakes/confusions |
exam-cheatsheet |
Final handout |
exam-audit |
Read-only workspace health check |
exam-help |
Quick reference |
confusion-tracker |
Concept-confusion tracking |
Generic-agent fallback: AGENTS.md.
scripts/, use exam_start.py status, then exam_start.py confirm --course <name> --materials <dir> --workspace <ws> --mode <mode> --time-budget <tier> --language <lang> --processing-mode <lightweight|full>. It writes the confirmation/state/runtime receipt. Default lightweight_session.py inventories names and processes only current-phase PDF pages or definitely single-frame PNG/JPEG/BMP sources through host-native vision: at most eight primary pages and one active batch. A single page uses no contact sheet; multi-page overview sheets partition primary pages in groups of at most four at roughly 768 px per tile. New schema-3 visual receipts require the generic component token strategy and enumerate stable teaching-item IDs plus generic text|figure|mixed prompt/answer components. A cross-page item repeats on each page that supplies one of its prompt components, with exact page↔component coverage. Detail calls may combine only same-target prompt components, solution calls only same-target answer components, and every component crop receives a separate semantic review that detects exactly its declared target/context IDs with no unrelated content or student attempt. Only prompt components may be context-only; every answer component contains its target. Page answer provenance prevents student attempts or unknown pages from masquerading as official solutions, and every registered official-solution page must contribute an answer component. Additive register-answer-dependency binds exact answer-locator pages; planned batches may auditably replace/narrow or remove a binding with set-answer-dependency / remove-answer-dependency. All canonical visible evidence is PNG under .lightweight/assets/, with exact model-input receipts and hash/magic/dimension checks. Schema-2 visual receipts and the legacy figure-only token strategy remain read-only history; any legacy-strategy active attempt is restricted to status or auditable abandon and cannot silently become schema 3. An unfinished planned/visual-ready batch may close only with receipt-backed abandon --reason; replace-taught --reason preserves a taught predecessor/event as superseded history, revalidates its dependency revisions, and plans an exact-slice successor with the same dependency pages. After an unabridged walkthrough, mark-taught --taught-item-ids <exact IDs> binds notebook/chNN.md#anchor, distinguishes inspected pages from taught items, and recoverably publishes phase_evidence.lightweight_batches; only current unsuperseded attempts enter the completion denominator. Routine status is generation-stable and read-only; validation checks metadata plus physical identity only. Exact hashes are reserved for state transitions, completion, or explicit status --verify-live. Lightweight verified additionally requires two revision-bound checkpoints, including one pass, from the immutable stat-only baseline of a quiz bank that pre-existed initialization. It runs no full ingestion, Study Guide, or PDF. Explicit full opens ingest_course.py; the orchestrator and lower-level workspace builder/compiler all enforce the same exact-pair/runtime/choices/full gate. Exit 10 routes to typed ingest_review.py. update_progress.py owns study_state.json; study_progress.md is generated. Official selectors are select_questions.py / select_hard_questions.py.docs/file-format.md.docs/language-policy.md.docs/agent-portability.md.docs/pdf-capability-adapters.md.artifact_mode is chat; explicit standing visual or a one-shot chapter artifact invokes exam-study-guide, while cheat-sheet PDF uses exam-cheatsheet. An ambiguous PDF request asks which once. Never infer subscription. Persist with update_progress.py set --artifact-mode chat|visual.processing_mode and artifact_mode are independent. Lightweight never generates a Study Guide; a saved visual preference remains dormant and effective output stays chat until explicit full. Full does not imply a PDF. MinerU, Docling, and LangGraph are explicit-named-request, remote/cloud-host-only capabilities and are never probed, downloaded, installed, imported, executed, or accepted as callable local runners.preferences.interaction_style stores only batch|step_by_step. A stored step-by-step choice is effective only in full with no_questions=false; otherwise it is retained but dormant and effective cadence is batch. In effective step mode, select the first pending teaching_examples.json item from one locked snapshot and persist it through the marker-bound record-taught-example path. Existing unbound teaching IDs are valid batch history; a bound ID carries exact notebook-block and manifest-item hashes that remain live-validated after cadence changes. Guide publication preserves valid bound blocks and rejects stale or unbound markers. Every teaching-baseline ID must still have a current teaching-manifest snapshot; a quiz-only copy is insufficient.answer_explanation_mode is independent from processing/artifact mode. Its stored-schema fallback is ordinary, but full-v2 Guide entry must first perform a native-child capability handshake. When the host can prove a fresh independent child context per item and can restrict its input and tools to that exact item, default to isolated unless the user opted out; persist the mode, notify once about extra host quota/time, and require no second API key or external-upload consent. Otherwise stay ordinary and explain the limitation. Both routes run study_guide_author.py prepare, fill fixed annotations, require one detailed beginner-first explanation per item, persist notebooks, compile, create/attach/verify claims, and import the canonical full Guide. In ordinary, the annotation contains the explanation with ai_supplement provenance and claims no isolation. In isolated, each fresh/stateless tool-disabled invocation sees only the fixed question, official answer when present, target language, and target-scoped assets; it returns answer_explanation plus non-rendered coverage and is imported with a separate host-owned receipt. A separately billed external Provider is an explicit-user-request fallback only and retains no-upload planning plus exact-plan pricing/privacy/upload consent. A model family, subscription, API key, full, or visual alone never proves native isolation. Target-scoped means target_item_only, or prompt-only target_with_required_context with exact sorted required_context_ids; answer assets remain target-only. Packet, annotations, notebook bindings, manifest, rendering and QA all bind the chosen mode. A language/mode/fact/asset change makes the chain stale; only isolated reruns the per-item receipt chain. New v2 Guides omit generic self-check panels. A hand-written complete v2 Guide draft is a no-Python-only, unverified fallback. Ingestion-v1 remains read-only and cannot claim current v2 gates.Turn your slides, homework, and past papers into a source-aware tutor that remembers your progress.
English · 中文
Teach from your materials · Show figures before solving · Explain key questions step by step · Keep progress across chats
Give the agent your course folder, then say how soon the exam is, where you want to start, and which reply language you want. It teaches each concept beside the matching examples from lectures, homework, quizzes, and practice exams. It explains which formula applies, how the values fit, and why the answer follows.
Its most important feature is visible provenance:
When the materials do not support a conclusion, the agent should say so instead of pretending to know.
Use Exam Cram Coach to review D:\Course Materials. I am starting from zero, my exam is tomorrow, reply in English, and begin with Chapter 1. Use lightweight on-demand mode.
You do not need to learn any commands first. Commands below are only for automation or troubleshooting.
The skill asks once. If you are unsure, choose lightweight on-demand.
| Mode | What it does | Best for | Limitations |
|---|---|---|---|
| Lightweight on-demand (default, recommended) | Processes only the pages you are studying now, inspects their visuals, teaches in chat, and saves progress and notes | An exam tomorrow, a large folder, or anyone who wants to start quickly | Does not organize the whole course in advance; one active batch has at most 8 primary pages; does not create a complete Study Guide or printable PDF; without an unchanged standard bank that existed before initialization, a chapter is capped at covered_unverified |
| Full knowledge-base build | Organizes the whole course into a chapter wiki, standard question bank, and review queue; can later produce chapter Study Guides | Large or messy courses, systematic review, and students willing to wait longer | Initial processing is slower and uses more disk; scans, complex layouts, and question-answer pairing can still need AI or human review; a completed build does not prove every detail was recognized correctly |
Lightweight mode saves the cost of processing the whole course up front. It does not shorten the explanation shown to the student.
Processing and output are separate choices:
Each chapter continues until its concepts and matching examples have been covered:
If a question or solution depends on an image, the image must be visibly rendered before it is used. Questions with missing required figures are not served. Tree, traversal, state-machine, and similar problems are computed deterministically before a diagram is drawn.
Quizzes come only from the workspace's standard question bank; temporary AI-written questions are never passed off as course quizzes. Wrong answers, skipped items, and “why/how” questions are saved for review.
Ordinary features are already on: lightweight page-by-page teaching, visual inspection, full walkthroughs, saved progress, and notes. Extensions are optional. The score below is a practical recommendation, not a quality claim: 5/5 = use whenever the host supports it; 4/5 = enable when the use case matches; 3/5 = only for a specific problem; 1/5 = usually leave off.
| Extension | Recommendation | Default | Copyable prompt | Inherent limitations |
|---|---|---|---|---|
| Full wiki, standard bank, and source-conflict review | 4/5 | Off | Copy prompt ① below | Slower first run; review items must be resolved or reported. Skip it when the exam is tomorrow and you only need a few pages |
| One key question per teaching turn | 4/5 | Off | Copy prompt ② below | Excellent for beginners, but slower; it changes teaching cadence rather than proving mastery |
| Web Study Guide and printable PDF | 4/5 | Off | Copy prompt ③ below | Requires complete content, clean item crops, source checks, and page-by-page visual QA; costs time and disk; unavailable in lightweight mode |
| Native isolated child agent for each answer explanation | 5/5 | On automatically only when the host proves the required capability | Copy prompt ④ below | Available only for full v2 Study Guides; hosts without verified clean-context and tool/input restrictions must use the ordinary explanation path |
| Remote MinerU or Docling parsing | 3/5 | Off | Copy prompt ⑤ below | Worth considering for difficult scans or complex layouts; never downloaded or run locally by this project; output still needs review |
| Remote LangGraph orchestration | 1/5 | Off | Copy prompt ⑥ below | Usually unnecessary because the skill already has a persistent state machine; it cannot replace course truth or source receipts |
| Dense + sparse retrieval, RRF, and reranking | 1/5 | Experimental, unavailable | Copy prompt ⑦ below | Current evidence is insufficient; extra latency, size, dependencies, and false retrievals may outweigh any benefit, so BM25 remains the default |
① Full knowledge-base build
Switch to full knowledge-base mode and organize the whole course into a chapter wiki and standard question bank. Before starting, tell me which files will be processed. Report every unresolved review item, missing figure, missing answer, and source conflict; do not silently skip them.
② One question per turn
From now on, teach exactly one example per turn. Show the prompt and every required figure, explain what is asked, why the formula applies, each substitution or reasoning step, and why the answer follows. Save the walkthrough to the notebook before waiting for me to continue.
③ Visual Study Guide and printable PDF
In full mode, create a visual Study Guide and printable version for the current chapter. Render formulas directly, crop question and answer images to the current item, and inspect every output page for missing figures, bad crops, mojibake, raw LaTeX, and unrelated content. Do not deliver an artifact that fails inspection.
④ Native isolated child-agent explanations
Check whether this host officially supports a fresh independent child context and can restrict its input and tools to one item. If it does, enable native isolated child-agent explanations by default for every Study Guide item, passing only the current question, any official answer, target-only crops, language, and fixed explanation instruction. Do not require a separate external API. If the capability cannot be verified, keep ordinary explanations and tell me.
⑤ Remote MinerU / Docling
These materials contain difficult scans or complex layouts. Check whether this host already has a remote MinerU or Docling integration; do not download, install, or run either locally. If available, disclose the service, exact files to upload, retention period, and privacy boundary, then wait for my separate consent.
⑥ Remote LangGraph
First explain the concrete problem that the existing study state machine cannot solve and how remote LangGraph would solve it. Enable it only if this host already provides the remote service, it will not replace local course truth, and I explicitly consent after seeing the privacy boundary. Do not install LangGraph locally.
⑦ Experimental retrieval check
Check whether a frozen real multi-course retrieval benchmark proves that dense plus sparse retrieval, fusion, and reranking pass recall, false-positive, stability, latency, and size gates. If complete evidence is missing, do not enable it and keep the default retriever.
Our recommendation: start with ordinary lightweight teaching. If you later build a full Study Guide, keep the native isolated child-agent explanation enabled when the host can actually enforce it. Add the full build and visual Guide only when you have enough time; use remote parsing only for genuinely difficult pages; normally leave LangGraph and experimental retrieval off.
If an extension is unavailable, the agent continues with ordinary features and names the limitation. It must