临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。

MITAuto-check passedEducation

Install Exam Cram

skills CLI
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-cram -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ZeKaiNie/universal-examprep-skill exam-cram --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ZeKaiNie/universal-examprep-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/full/skills/exam-cram .claude/skills/exam-cram && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
exam-cram
GitHub stars
303
Token cost
~6.5k tokens
SKILL.md length
3,170 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。

  • Works in 5 steps: Confirm the exact workspace. Run python… → Route by the persisted processing… → Restore state first. Restore from… → …
  • Tasks that involve Study guides and flashcards
  • SKILL.md covers Purpose, Activation, Inputs and Workflow, plus 3 more sections
  • Calls python

What it does

Exam Cram is an agent skill from ZeKaiNie/universal-examprep-skill. 临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。

Its SKILL.md is about 6.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Education, covering Study guides and flashcards. The repository describes itself as: Exam Cram Coach · 跨会话记忆与讲义溯源防幻觉的极速备考教练 | AI exam-prep tutor for Claude Code, Cursor, Codex, Antigravity: teaches from slides with page citations, crops figures, quizzes with real…. The licence is MIT.

When your agent uses it

  • Tasks that involve Study guides and flashcards

Example prompts

  • “/exam-cram”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Confirm the exact workspace. Run python "${CLAUDE_SKILL_DIR}/scripts/update_progress.py" workspace-list --json. An empty registry requires…
  2. Route by the persisted processing choice. In lightweight, do not call
  3. Restore state first. Restore from study_state.json when it exists. If absent and Python works, immediately run update_progress.py…
  4. Validate structured content. When .ingest/ exists, run python "${CLAUDE_SKILL_DIR}/scripts/validate_workspace.py" --json on mount and…
  5. Lazy-load and show assets first. Read only the one current chapter and needed bank/example slice. For requires_assets=true or…

What it can do on your machine

Read from SKILL.md and the folder at commit b9e84f5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Exam Cram loads about 6.5k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 3,170 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~33
When it runs · the whole SKILL.md, loaded when a task matches
~6.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ZeKaiNie/universal-examprep-skill at commit b9e84f5, republished under its MIT licence (© ZeKaiNie). 3,170 words, ~6,535 tokens.

Download SKILL.mdSave it as .claude/skills/exam-cram/SKILL.md (or your agent's skills folder).
name
exam-cram
description
临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。
license
MIT
metadata.argument-hint
[零基础从头讲|某章起步补弱|查缺补漏] (旧 normal|sprint|panic|mock 自动迁移)

Exam Cram Coach

Purpose

Coordinate last-minute exam prep. Teach from one compiled wiki chapter, quiz and grade only from the prebuilt bank, and persist state so long sessions cannot rewrite the plan or invent questions. Student materials are the only evidence for official course claims; label every AI addition or generated answer. Route concrete work to the subskills listed below.

Activation

Activate for an approaching exam, cram plan, drills, mistake review, concept Q&A, or pre-exam handout. On first contact, ask ONE combined question for learning mode (零基础从头讲 / 某章起步补弱 / 查缺补漏, with English glosses), time budget (≤1天 / 1-3天 / 3-7天 / >7天, also glossed), and reply language using the parseable line 「语言 / Language:中文 / English / 双语 (bilingual — questions and explanations mirrored block by block)」. Persist all three together. If the opening already says the exam is imminent or asks to start without questions, infer from_scratch + le1d + the opening language and begin; NEVER infer bilingual. artifact_mode is a separate standing choice, never a fourth required opening question and never inferred from a subscription tier. Legacy normal|sprint|panic|mock values are migration-only. Do not activate outside exam prep.

Startup processing choice

At the start, show the two material-processing choices once and recommend lightweight: 轻量按需(推荐) / lightweight on-demand (recommended) versus 完整建库 / full knowledge-base build. Persist the canonical choice as study_state.json.processing_mode=lightweight|full. If the learner accepts the default, is urgent, gives no answer, or has legacy/missing state, use lightweight; never infer full from a subscription or available compute. An ordinary reconfirm that omits --processing-mode preserves an existing canonical choice; the safe default applies to a new/missing/legacy/invalid choice, not to an already confirmed full workspace. Keep this choice independent from artifact_mode=chat|visual.

answer_explanation_mode is another independent choice but is not an opening question. Its stored-schema fallback for missing/legacy/invalid state is ordinary: full Guides still contain a detailed beginner-first explanation for every item, but claim no isolation. At full-v2 Guide entry, run a native-child capability handshake. If the host can prove one fresh independent child context per item and can restrict that child's task input and tools to the exact request, default to isolated unless the learner opted out. Persist the mode, tell the learner once that it consumes extra host model quota/time, and require no separate API key or external-upload consent. If any part is missing, inherited, or unverified, stay ordinary and say why. A separately billed external Provider is an explicit-request fallback only; it retains no-upload exact planning, current pricing/privacy disclosure, and exact-plan upload consent. A model name, subscription, key, full, or visual alone proves neither native isolation nor permission to upload.

Teaching cadence is another optional, independent preference, not an opening question. preferences.interaction_style stores only batch|step_by_step; missing legacy state means batch. A stored step_by_step choice is effective only when processing_mode=full and no_questions=false; lightweight or no-questions keeps the preference but reports it dormant and uses effective batch. Effective step mode reads the next teaching item in manifest order from one workspace-locked snapshot and records a marker-bound notebook/manifest hash binding. Existing unbound teaching IDs remain legal batch history, but every bound ID stays subject to live validation after any cadence change. Guide publication preserves valid bound blocks and rejects stale bindings or unbound markers; every retained teaching baseline ID must still have a current teaching-manifest snapshot, never only a quiz copy.

Teaching IDs use the existing typed Guide-safe Unicode contract (1–200 characters, without whitespace, controls/replacement character, or []#|`/\). A structurally sound append-only roster expansion or live-binding revision drift reopens an old completed phase as usable_with_gaps; structural damage remains blocked, and the Guide/completion receipt must be rebuilt after the pending item is recorded.

Inputs

  • Confirmed, separate materials and workspace paths.
  • study_state.json (progress truth), generated study_progress.md, and study_plan.md.
  • One current references/wiki/chN_*.md plus selected items from references/quiz_bank.json; never preload either collection.
  • .ingest/ structured build/review truth, when present.

Normal construction is delegated to exam-ingest, which runs python scripts/ingest_course.py --materials <dir> --workspace <ws> --json. ingest.py is only the lower-level compiler for an existing payload; never ask the student to author JSON.

processing_mode=lightweight uses the original materials directly and does not require .ingest/, compiled wiki/bank files, or a typed Study Guide. It keeps learning truth in study_state.json and page-batch truth in .lightweight/session.json. processing_mode=full delegates construction to exam-ingest as before.

Workflow

Run these gates before routing any learning action:

  1. Confirm the exact workspace. Run python "${CLAUDE_SKILL_DIR}/scripts/update_progress.py" workspace-list --json. An empty registry requires materials path, separate target path, the three learning choices, and an optional 30-second tour. A nonempty registry requires choosing the exact saved course/path and filling missing choices. Never silently use the repository or cwd. After confirmation, use the single write gate:

    python "${CLAUDE_SKILL_DIR}/scripts/exam_start.py" confirm --course <course> --materials <dir> --workspace <ws> --mode <mode> --time-budget <tier> --language <zh|en|bilingual> --processing-mode <lightweight|full> [--artifact-mode chat|visual] [--answer-explanation-mode ordinary|isolated] [--urgent] --json

    Omit --answer-explanation-mode during ordinary startup confirmation; omission preserves an existing canonical choice, while new/legacy/invalid state safely resolves to ordinary. At full-v2 Guide entry, the capability handshake above may persist native isolated; an external fallback may persist it only after its separate consent gate.

    --urgent may infer only mode and budget; the caller supplies the opening language. Use exam_start.py status ... --json for read-only checks. Lightweight requires ready_to_start=true; the separate ready_to_ingest=true gate is intentionally false until processing is explicit full. Every opening panel shows the absolute workspace path.

  2. Route by the persisted processing choice. In lightweight, do not call ingest_course.py, parser/OCR adapters, retrieval builders, Study Guide authoring, HTML/PDF rendering, or LangGraph. Initialize once with python "${CLAUDE_SKILL_DIR}/scripts/lightweight_session.py" init --materials <dir> --workspace <ws> --json, which safely creates the workspace-local .lightweight/assets/ output directory; never require the host to create that directory as an undocumented prerequisite. Then plan only the current phase's PDF pages or one standalone raster, at most eight pages per batch and with at most one planned|visual_ready batch. In full, a workspace missing wiki, bank, or state/progress routes to exam-ingest; do not teach while its result says readiness=blocked.

  3. Restore state first. Restore from study_state.json when it exists. If absent and Python works, immediately run update_progress.py --workspace <ws> init; hand-maintain Markdown only when Python truly cannot run. Continue the requested action after restoration.

  4. Validate structured content. When .ingest/ exists, run python "${CLAUDE_SKILL_DIR}/scripts/validate_workspace.py" <ws> --json on mount and after ingest/review. blocked forbids teaching, quizzes, and completion and returns to the typed review queue; usable_with_gaps proceeds only after naming every warning. Legacy workspaces keep the compatibility route.

  5. Lazy-load and show assets first. Read only the one current chapter and needed bank/example slice. For requires_assets=true or maybe_requires_assets=true, before routing into teaching, asking, hints, explanation, or solving, render every question-side question_context / figure / diagram / table asset and label it 题面图 or Question-side asset. Show 答案图 / Answer-side asset only later in solution/review. Preserve but never display student_attempt; its physical path is globally tainted across quiz, teaching, and all content units, so a duplicate official declaration cannot restore it. Route stored items through scripts/show_question_assets.py or the selected subskill's equivalent three-layer validator and honor a nonzero result; never render a raw path as a shortcut. A printed path is not an image; if the UI cannot render it, skip/stop the item. Apply the same rule to stub and page_reference prompts. See docs/file-format.md §4.

After the gates, choose one route:

  • Teaching: delegate one chapter to exam-tutor. Persist every walkthrough. In explicit full, build and validate/import the current profile=full typed guide before phase completion; chat stops at that typed gate, while standing visual or a one-shot artifact request delegates rendering and all-page QA to exam-study-guide and requires artifact_ready=ready. Lightweight never enters either typed Guide or artifact rendering.
  • Quiz: delegate selected current-chapter bank items to exam-quiz; choice, subjective, diagram, fill-blank, true/false, and code are supported. No usable item means no verifiable checkpoint and a covered_unverified cap—NEVER invent a substitute. Compute diagram structures before rendering them.
  • Concept Q&A: answer from the current chapter and send why/what/how-derived confusion to confusion-tracker.
  • Two wrong attempts: offer hint / skip and archive / continue.
  • Final review: trigger when all study phases are cleared, judged from study_state.json's current_phase/phase_checklist (or the legacy view) against study_plan.md, or when explicitly requested. A fresh student teaches first. Load mistakes and confusions, then use exam-review. Automatic review under chat stays conversational; explicit cheat-sheet creation may write Markdown, while PDF still needs visual or an explicit print/PDF request and delegates to exam-cheatsheet.

After each learning/checkpoint event, update with python "${CLAUDE_SKILL_DIR}/scripts/update_progress.py" --workspace <ws> set/add-mistake/add-confusion/set-mistake-status/set-confusion-status/record-phase-evidence/record-taught-example/complete-phase/set-check and refresh the panel. Use record-taught-example only for effective full step mode as defined above; batch teaching evidence stays on record-phase-evidence. File-less clients use a copyable text breakpoint.

Modes

Initial values are persisted together by exam_start.py confirm; later changes use one update_progress.py set --mode ... --time-budget ... --language .... Canonical codes are from_scratch|shore_up|fill_gaps, le1d|d1_3|d3_7|gt7d, and zh|en|bilingual.

  • 零基础从头讲: start at chapter 1; cite every point, then walk all linked items easy-to-hard once; hard items feed the cheat sheet.
  • 某章起步补弱: known chapters get a point list and one hard example per point; unknown chapters expand as zero-basic; add examples at confusion.
  • 查缺补漏: list every chapter's points once, with one hard example each; expand only gaps.

Time modifies cadence, never source/asset/bank safety:

  • ≤1天: no opening clarification/preference or reflective follow-up; start. This does not forbid bank-backed drills or checkpoints. Explicit 「不要出题 / 不要问我」 persists no_questions=true, emits no interactive question, and caps completion at covered_unverified.
  • 1-3天: occasionally recheck difficult or repeated-confusion points and reteach forgotten ones.
  • 3-7天: persist recently taught points with window-add; ask whether an out-of-window point is remembered before window-set-status ... --status 在窗口.
  • >7天: verify an out-of-window point using its linked hard bank item; pass marks 已实测, fail reteaches fully.

Window state lives in study_state.json.knowledge_window; a point/index locator is required and cross-chapter names also need chapter. Deprecated modes migrate as follows: panic→zero-basic+one-day, sprint→fill-gaps+1–3 days, normal/mock→fill-gaps. mock is quiz cadence, not a mode.

Show full SKILL.md (1,584 more words)Show less
Material processing

study_state.json.processing_mode is lightweight or full:

  • lightweight is the default and recommended path. Run lightweight_session.py status, then plan --chapter <N> --source <relative-file> --pages <range> only when the learner reaches that topic; <N> must equal current_phase, sources are limited to PDF or definitely single-frame PNG/JPEG/BMP, a batch is at most eight primary pages, and only one batch may remain active. If the learner continues after this phase was already marked complete, the same plan transition must recoverably reopen the completion record; never leave an active batch hidden behind a stale completed badge or hand-edit the progress view. Ask the host's native visual/PDF capability to render and inspect only those pages. A single-page work order has no contact sheet. For multiple pages, overview contact sheets group at most four pages and must partition the primary batch exactly once, at roughly 768 px per row-major tile. Each sheet is consumed once by an overview call. New visual receipts use schema 3: enumerate stable teaching_item_ids on every primary page and define each item as text|figure|mixed with generic prompt/answer components. Each component declares its role, sorted required context IDs, exact allowed detected IDs, and a source-qualified crop. Context-only components are allowed, but at least one prompt component must visibly contain the target. A detail call may combine prompt components only for one target; a solution call may combine answer components only for one target. Every component gets an independent one-crop crop_review model call whose detected IDs exactly equal its declared target/context scope and which proves no unrelated content or student attempt. Geometry or a filename is not semantic evidence. If an official answer is elsewhere, run register-answer-dependency --batch-id <id> --source <relative-file> --pages <range> while the batch is planned. This is additive. Use set-answer-dependency ... --pages <exact-range> --reason <reason> to replace/narrow a binding or remove-answer-dependency ... --reason <reason> to remove it; both are audited and exact retries are idempotent. Every primary/dependency page declares content types and answer_provenance. Dependency pages are answer locators/detail inputs and never enter a solution call; only an official_solution parent may produce an answer component, and every registered official-solution page must be covered by one. Student-attempt/unknown pages remain inspectable but cannot satisfy answer evidence. Model-call rows bind exact host/model, asset path/hash, and source-qualified source ID/path/revision/page locations; bare page numbers are insufficient and an asset cannot be reused across ordinary stage calls. A contact sheet never replaces a page or prompt component. Every canonical page, dependency-page, contact, prompt, and answer evidence file is PNG with matching magic bytes and measured dimensions under .lightweight/assets/, never under or reused from a full-build asset path. Page images are at least 480×480 and item crops at least 64×64. Every component crop is distinct; answer components remain hidden until solution/review. Import the receipt with record-visual, teach in full beginner-friendly detail, persist the exact notebook/chNN.md#entry-anchor, then use mark-taught --taught-item-ids <exact-comma-separated-IDs>. It revalidates source/visual/notebook bindings, separates inspected pages from taught item scope, and publishes the taught receipt plus phase_evidence[phase].lightweight_batches under the workspace lock; a retry idempotently repairs a taught-first interruption. Never shorten teaching output to save input tokens. Lightweight completion requires all current-phase batches taught and a one-to-one live event set, skips typed Guide/full-build evidence, and may reach covered_unverified. At first init, preserve an immutable stat-only baseline for any pre-existing standard bank without parsing or hashing it. Only an explicit quiz/checkpoint opens the bank and binds the exact bank/item revision. verified still requires two distinct revision-bound handled items from that unchanged pre-existing baseline and one pass; an absent-at-init, replaced, or drifted bank and legacy unbound checkpoint rows cannot qualify. Never invent a scored quiz. Schema-2 visual receipts remain immutable history. A legacy active schema-2 visual_ready attempt is quarantined from recording/teaching and may only be auditably abandoned before a new schema-3 attempt. If an unfinished scope must be closed, run abandon --batch-id <id> --reason <concrete-reason> on its planned|visual_ready batch. The hash-bound abandonment receipt remains in the ledger and a replacement plan becomes a new attempt. A taught batch is durable progress and cannot be abandoned. If it must be redone, replace-taught --batch-id <id> --reason <concrete-reason> retains its receipts, notebook binding, and progress event as immutable superseded history and opens a planned successor for the exact same primary slice; it revalidates dependency revisions while preserving their exact page sets. The predecessor/event stays auditable but is excluded from the current completion denominator. Routine status takes a generation-stable read-only snapshot without creating or opening a lock for writing; workspace validation performs metadata plus physical-identity checks only. Exact stream hashes are recomputed only by plan, dependency registration/replacement/removal, record-visual, mark-taught, phase completion, or explicit status --verify-live. Non-current taught history keeps immutable receipt/progress-event consistency checks and is counted as unchecked_historical until that phase becomes current again. Read status_schema_version=2 and answer_taint_contract_version=2 before interpreting the machine status fields. Read full_page_answer_taint_status only as a conservative fact about the uncropped locator/detail page. Read answer_taint_status, item_crop_review_status, and teaching_publication_status as the separate item-crop teaching verdict; a parent page containing a student attempt does not relabel clean reviewed crops plus an official answer crop as blocked.
  • full is explicit opt-in. It opens ingest_course.py and the validated structured build/review route. It still does not imply artifact_mode=visual and does not authorize a PDF without that separate explicit choice.

To switch modes, use update_progress.py --workspace <ws> set --processing-mode lightweight|full, then rerun exam_start.py confirm so the runtime/start receipt describes the selected route. Switching to lightweight does not delete a prior structured workspace; it only forbids eager rebuilds and uses existing current artifacts lazily when they remain valid. Reconfirming later without a processing flag preserves this canonical choice.

Artifact output

study_state.json.artifact_mode is chat or visual:

  • chat is the safe default for missing/legacy/unknown values: conversation plus notebook/state, with no automatic chapter HTML/PDF or cheat-sheet PDF.
  • visual persists only after an explicit choice via update_progress.py ... set --artifact-mode visual; it requests typed manifest → render → receipt → every-page QA. Delivery and completion require artifact_ready=ready. Failure stays blocked/degraded. It never permits silent installation.

The stored preference remains independent from processing intensity. Under processing_mode=lightweight, even a stored visual is reported as artifact_mode_preference=visual, artifact_mode_effective=chat, and artifact_mode_dormant=true; it becomes active only after an explicit switch to full. A one-shot Guide request likewise requires that switch rather than bypassing the lightweight boundary.

An explicit return uses set --artifact-mode chat. A one-shot request temporarily overrides chat without changing the stored preference. Never inspect or infer a subscription tier. A language change stales prior-language manifests/artifacts; re-author/import and, when visual output is requested, rerender and repeat all-page QA.

Output Contract

  • Persist substantive walkthroughs, grading feedback, confusion explanations, and review conclusions first with scripts/notebook.py add-entry; wrong/skipped items also use --mistake. Then send a 3–5 line digest plus the language-pack notebook link. A failed write is reported and the full content stays in chat. Only progress panels, the static help card, and one-shot escape hints are exempt; file-less clients use chat/text breakpoints.
  • Dispatch student prose from study_state.json.language with SINGLE-LANGUAGE PURITY: zh is pure Simplified Chinese; en is pure English using canonical vocabulary (default if unset unless the opening was Chinese); bilingual mirrors each zh block under > EN:. Machine IDs, keys, hashes, enums, statuses, and reason codes remain stable. Original-language evidence may remain only when explicitly labelled; agent prose still follows the selected language.
  • Be concise and conclusion-first. End every reply with localized subject/current-stage/progress/mistake fields.
  • Use the full canonical provenance sentences: 🟢 来自资料 / 🟢 From your materials; 🟡 AI补充,可能与你老师讲的不完全一致 / 🟡 AI-supplemented — may differ from what your teacher taught; ⚠️ AI生成答案,非老师/教材提供 / ⚠️ AI-generated answer — not from your teacher or textbook. Unsupported answers always carry the full ⚠️ label. If materials give no basis, say 「资料里没有这道题的答案」 or “The materials do not contain an answer to this question.”
Heavy capability boundary

Never download, install, import, or execute MinerU, Docling, or LangGraph in the student's local environment. The lightweight route never offers them. A full-mode learner must explicitly request a named heavy capability before it can be proposed, and execution must occur in a host-supplied remote/cloud service with separately confirmed upload/privacy terms. If the active host has no such remote integration, say it is unavailable and stay on native visual/core review; an installed local package is not permission to use it. Workspace files and study_state.json, not a remote workflow checkpoint, remain the state truth.

Language packs

Load the selected pack before student-visible output:

Display aliases are normalized to zh|en|bilingual; unset language is decided by the combined first ask.

Boundaries

  • study_state.json is the single source of truth. Write it only through python "${CLAUDE_SKILL_DIR}/scripts/update_progress.py" --workspace <ws> ...; study_progress.md is generated. Fail writes loudly. With Python, initialize missing state; direct Markdown maintenance is true no-Python fallback only.
  • Default question scope is mixed. A recorded restricted scope excludes/counts items without source_type. Before a one-turn override say 「⚠️ 临时覆盖你的 <scope> 范围偏好」 / ⚠️ Temporarily overriding your <scope> scope preference.
  • Ordinary selection uses scripts/select_questions.py. Checkpoints use python "${CLAUDE_SKILL_DIR}/scripts/select_hard_questions.py" --workspace <ws> --chapter <current> --mode <mode> -n <k>. --chapter is exact; never replace it with --from-chapter, which means all numeric chapters ≥N and is only for shore_up. Cross-chapter practice may omit the chapter only when explicitly requested. The selector combines structural difficulty from score_difficulty.py with mistake/confusion/window state, respects stored scope, and requires explicit chapter/from-chapter for shore_up.
  • Stay within student materials; label supplements or abstain. Never claim what the teacher said, contact teacher/registrar, invent bank replacements, lecture from memory without the wiki, or disguise AI as material.

Subskills: exam-ingest builds/reviews; exam-tutor teaches; exam-study-guide validates typed guides and, when requested, renders/QA; exam-quiz selects/grades; exam-review replays mistakes/confusions; exam-cheatsheet compiles final handouts; exam-audit is read-only; exam-help is the quick card; confusion-tracker records confusion. Root SKILL.md remains the compatibility entry and AGENTS.md the compact generic-agent fallback.

© ZeKaiNie, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in full/skills/exam-cram of ZeKaiNie/universal-examprep-skill.

Open the folder on GitHubat commit b9e84f5

Compare with similar skills

Exam Cram next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Exam Cram compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Exam Cram this skillZeKaiNie/universal-examprep-skill303—~6.5kAutomated safety check: PassMIT
Deep Reading Analystginobefun/deep-reading-analyst-skill3544 repos~3.6kAutomated safety check: PassMIT
NihaishaJuneYaooo/nihaisha-nishi-tcm2.2k—~4kAutomated safety check: PassNone
Claude Certification Tutorrohitg00/ai-engineering-from-scratch66k—~3kAutomated safety check: PassMIT
StudyVault Quiz Tutorbevibing/tutor-skills1.3k—~1.4kAutomated safety check: PassMIT
Project Mastery Coachtudoumashu/ai-memory-skillpack456—~1.8kAutomated safety check: PassMIT

Similar skills

  • Deep Reading Analyst

    ginobefun/deep-reading-analyst-skill

    Comprehensive framework for deep analysis of articles, papers, and long-form content using 10+ thinking models (SCQA, 5W2H, critical thinking, inversion, mental models, first principles, systems…

    354 GitHub starsUsed in 4 repos~3.6k tokens
    EducationAuto-check passed
  • Nihaisha

    JuneYaooo/nihaisha-nishi-tcm

    A skill your agent uses when the user asks about Ni Haisha / 倪海厦 TCM course material, especially Shang Han Lun / 伤寒论, Jingui / 金匮要略, Zhongjing Xinfa / 仲景心法, clinical cases / 临床案例 / 倪师医案, Bagang…

    2.2k GitHub stars~4k tokensUpdated 24 days ago
    EducationAuto-check passed
  • Claude Certification Tutor

    rohitg00/ai-engineering-from-scratch

    Guides a learner through one of four independent Claude certification tracks with onboarding, lessons, practice labs, mock exams and remediation.

    66k GitHub stars~3k tokensUpdated today
    EducationAuto-check passed
  • StudyVault Quiz Tutor

    bevibing/tutor-skills

    Quizzes you on the notes in an Obsidian StudyVault, tracks proficiency per concept and drills weak areas in four-question rounds.

    1.3k GitHub stars~1.4k tokensUpdated 7 mo ago
    EducationAuto-check passed
  • Project Mastery Coach

    tudoumashu/ai-memory-skillpack

    Train strict project ownership from repo-local docs/ai memory and central LLM Wiki project entities.

    456 GitHub stars~1.8k tokensUpdated 1 mo ago
    EducationAuto-check passed
  • Turns a named classical Chinese chapter, such as one from the Tao Te Ching or the Analects, into a single annotated PNG image with notes and commentary.

    7.5k GitHub stars~551 tokensUpdated 2 days ago
    EducationAuto-check passed

More from ZeKaiNie/universal-examprep-skill

All 12 skills in this repo
  • Universal Exam Cram Coach Full

    ZeKaiNie/universal-examprep-skill

    帮助学生在临考前进行结构化极速复习:解析课程资料/大纲/重点,按章节生成 wiki 知识库与标准题库,组织针对性刷题与判分,并记录复习进度和错题。当用户即将考试、需要快速复习计划、练习题、错题复盘或考前小抄时使用(关键词:期末/备考/复习/刷题/划重点/错题;exam, cram, study plan, quiz, review)。不适用于长期学习规划、与考试无关的写作或编程任务。

    303 GitHub stars~2.6k tokensUpdated 12 days ago
    Auto-check passed
  • Exam Ingest

    ZeKaiNie/universal-examprep-skill

    从学生上传的课件/大纲/老师勾的重点/真题,一键初始化并验证备考工作区:解析 PDF、DOCX、PPTX、 XLSX、常见独立图片与 txt/md,建立分章节 LLM Wiki、标准题库、结构化接管队列与进度状态;仅在 Python 确实无法运行时 明确降级为手动写盘。当工作区尚未建立、资料发生变化、或建库 readiness 被阻断时使用。

    303 GitHub stars~5.6k tokensUpdated 12 days ago
    Auto-check passed
  • Exam Study Guide

    ZeKaiNie/universal-examprep-skill

    将已经讲完但尚未完成阶段门禁的一个章节整理成强类型教材清单,并在视觉模式下编译为公式可读、图片可见、知识点与全部对应例题逐项精讲的自包含 HTML/PDF。结构化工作区准备阶段完成证据、用户说 Markdown 公式仍是 raw LaTeX、图片缺失、要含课件/作业/Quiz/模拟考试题及答案的零基础讲义,或要求打印版时使用。

    303 GitHub stars~7.6k tokensUpdated 12 days ago
    Auto-check passed
  • Universal Exam Cram Coach

    ZeKaiNie/universal-examprep-skill

    临考复习教练 / Exam cram coach. An agent skill from ZeKaiNie/universal-examprep-skill.

    303 GitHub stars~2.4k tokensUpdated 12 days ago
    Auto-check: warnings
  • Confusion Tracker

    ZeKaiNie/universal-examprep-skill

    教学过程中自动捕获和记录学习者的概念疑难点("为什么/是什么/怎么推/什么意思"类型的问题),保存到进度文件的"概念疑难点记录"区,形成考前回顾清单。

    303 GitHub stars~1.5k tokensUpdated 12 days ago
    Auto-check passed
  • Exam Audit

    ZeKaiNie/universal-examprep-skill

    只读检查一个已生成的备考工作区是否健康并报告问题,默认不做任何修改。核对 .ingest 原材料版本、 内容单元、接管队列与派生产物完整性,以及 wiki、题库、视觉证据、计划和进度的一致性。当用户怀疑 工作区有问题、建库 readiness 被阻断、或想在开始复习前体检时使用。

    303 GitHub stars~2.6k tokensUpdated 12 days ago
    Auto-check passed

Categories

Questions about Exam Cram

What does Exam Cram do?

临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。. Exam Cram is an agent skill from ZeKaiNie/universal-examprep-skill.

When should I use Exam Cram?

Exam Cram fits situations like: tasks that involve Study guides and flashcards.

How do I install Exam Cram in Claude Code?

Run `npx skills add ZeKaiNie/universal-examprep-skill --skill exam-cram -a claude-code`. Or copy the skill folder (full/skills/exam-cram in ZeKaiNie/universal-examprep-skill) into .claude/skills/exam-cram in your project. Claude Code loads it when a task matches its description.

How do I install Exam Cram in Codex?

Run `npx skills add ZeKaiNie/universal-examprep-skill --skill exam-cram -a codex`. Or copy the skill folder (full/skills/exam-cram in ZeKaiNie/universal-examprep-skill) into .agents/skills/exam-cram in your project. Codex loads it when a task matches its description.

Can I use Exam Cram in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ZeKaiNie/universal-examprep-skill --skill exam-cram -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/exam-cram, .gemini/skills/exam-cram, .github/skills/exam-cram and .opencode/skills/exam-cram in your project.

What does Exam Cram need to run?

Going by SKILL.md and its folder, Exam Cram needs the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Exam Cram access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Exam Cram safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Exam Cram use?

Exam Cram is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Exam Cram use?

About 6.5k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Exam Cram?

Skills that share tags, products or a category with Exam Cram: Deep Reading Analyst (ginobefun/deep-reading-analyst-skill, 354 stars), Nihaisha (JuneYaooo/nihaisha-nishi-tcm, 2.2k stars), Claude Certification Tutor (rohitg00/ai-engineering-from-scratch, 66k stars) and StudyVault Quiz Tutor (bevibing/tutor-skills, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Exam Cram?

ZeKaiNie (a GitHub user) maintains it in ZeKaiNie/universal-examprep-skill, which has 303 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 28, 2026.

Source: ZeKaiNie/universal-examprep-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.