Lecture Slides Summarizer
Li-Baichuan-James/summarize-slides-skill
Condenses a lecture PDF into an exam-focused LaTeX cheat sheet and compiled PDF with page citations, bilingual terms, formulas and only the diagrams that help.
将已经讲完但尚未完成阶段门禁的一个章节整理成强类型教材清单,并在视觉模式下编译为公式可读、图片可见、知识点与全部对应例题逐项精讲的自包含 HTML/PDF。结构化工作区准备阶段完成证据、用户说 Markdown 公式仍是 raw LaTeX、图片缺失、要含课件/作业/Quiz/模拟考试题及答案的零基础讲义,或要求打印版时使用。
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ZeKaiNie/universal-examprep-skill exam-study-guide --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-study-guide .claude/skills/exam-study-guide && rm -rf skills-srcUse ~/.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/
Install the "exam-study-guide" agent skill from https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guide into .claude/skills/exam-study-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exam-study-guide", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guideType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ZeKaiNie/universal-examprep-skill exam-study-guide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZeKaiNie/universal-examprep-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/full/skills/exam-study-guide .agents/skills/exam-study-guide && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "exam-study-guide" agent skill from https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guide into .agents/skills/exam-study-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exam-study-guide", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ZeKaiNie/universal-examprep-skill exam-study-guide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZeKaiNie/universal-examprep-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/full/skills/exam-study-guide .cursor/skills/exam-study-guide && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "exam-study-guide" agent skill from https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guide into .cursor/skills/exam-study-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exam-study-guide", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ZeKaiNie/universal-examprep-skill.git --path full/skills/exam-study-guide--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ZeKaiNie/universal-examprep-skill exam-study-guide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZeKaiNie/universal-examprep-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/full/skills/exam-study-guide .gemini/skills/exam-study-guide && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "exam-study-guide" agent skill from https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guide into .gemini/skills/exam-study-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exam-study-guide", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ZeKaiNie/universal-examprep-skill exam-study-guideInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ZeKaiNie/universal-examprep-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/full/skills/exam-study-guide .github/skills/exam-study-guide && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "exam-study-guide" agent skill from https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guide into .github/skills/exam-study-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exam-study-guide", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ZeKaiNie/universal-examprep-skill exam-study-guide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ZeKaiNie/universal-examprep-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/full/skills/exam-study-guide .opencode/skills/exam-study-guide && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "exam-study-guide" agent skill from https://github.com/ZeKaiNie/universal-examprep-skill/tree/main/full/skills/exam-study-guide into .opencode/skills/exam-study-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exam-study-guide", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
exam-study-guide将已经讲完但尚未完成阶段门禁的一个章节整理成强类型教材清单,并在视觉模式下编译为公式可读、图片可见、知识点与全部对应例题逐项精讲的自包含 HTML/PDF。结构化工作区准备阶段完成证据、用户说 Markdown 公式仍是 raw LaTeX、图片缺失、要含课件/作业/Quiz/模拟考试题及答案的零基础讲义,或要求打印版时使用。
Exam Study Guide is an agent skill from ZeKaiNie/universal-examprep-skill. 将已经讲完但尚未完成阶段门禁的一个章节整理成强类型教材清单,并在视觉模式下编译为公式可读、图片可见、知识点与全部对应例题逐项精讲的自包含 HTML/PDF。结构化工作区准备阶段完成证据、用户说 Markdown 公式仍是 raw LaTeX、图片缺失、要含课件/作业/Quiz/模拟考试题及答案的零基础讲义,或要求打印版时使用。
Its SKILL.md is about 7.6k 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 and LaTeX. It works with LaTeX. 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.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b9e84f5. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Exam Study Guide loads about 7.6k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 3,428 words of instructions outside code blocks.
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.
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.
The full file from ZeKaiNie/universal-examprep-skill at commit b9e84f5, republished under its MIT licence (© ZeKaiNie). 3,428 words, ~7,592 tokens.
.claude/skills/exam-study-guide/SKILL.md (or your agent's skills folder).After teaching the current chapter, build its validated typed Study Guide manifest; in visual mode, compile that manifest into a readable, self-contained HTML Study Guide and printable PDF before phase completion. A Study Guide is a teaching artifact, not a dump of the wiki and bank: it groups knowledge points with every mapped lecture, homework, Quiz, mock-exam, past-exam, or textbook example and explains each one through formula selection, variable mapping, substitution, solution, a beginner-first explanation of why the answer follows, and source trace. Keep Markdown/JSON as auditable sources and never overwrite them with a derived artifact.
Require explicit study_state.json.processing_mode=full. Lightweight mode never
invokes this module, even for a one-shot handout request; explain that Study Guide
generation requires switching to full processing and reconfirming the start gate.
Use this module after the exam workspace/current chapter are confirmed and its substantive teaching is persisted, but before complete-phase in a structured workspace. Restore the current phase and effective artifact_mode from study_state.json before selecting <N>. chat still builds and imports the mandatory typed profile=full manifest, then stops without HTML/PDF; a recognized standing visual preference continues through rendering, receipt binding, and all-page QA. A direct one-shot handout request follows its explicit output scope without rewriting the stored preference. Never inspect or infer the student's subscription. Preserve the parent exam-coach language and provenance contracts in all chat summaries.
references/wiki/chNN*.md file, used as source evidence rather than pasted wholesale.study_state.json; its canonical language-neutral language code (zh / en / bilingual; legacy/display aliases 中文 / English / 双语 migrate on read) controls all agent-generated headings, notices, explanations, labels, and summaries. Missing state follows the session default (English unless the student opened in Chinese); the script's Chinese empty-value fallback exists only for legacy workspaces and is not a new-session language decision.references/teaching_examples.json, every current-chapter entry in references/quiz_bank.json, and every typed current-chapter question unit, de-duplicated by item ID. A legacy gradable=false record remains a teaching example in the guide but is never served or graded as a quiz.notebook/chNN.md plus the validated typed teaching manifest notebook/chNN.guide.json.references/assets/ referenced by the typed manifest..ingest/canonical_groups.jsonl and .ingest/source_conflicts.jsonl facts. These are revision-bound derived facts, not replacements for source occurrences or item/unit IDs. Do not preload unrelated chapters or hand-fold near matches..ingest/claim_records.jsonl and the matching .ingest/claim_verification_receipts/chNN.json are mandatory typed-guide inputs. The validator recomputes them against the current manifest and live source/content/group/conflict facts. The receipt's fact_snapshot_sha256 also binds current build/parser/page-quality/review facts into its ID, so a parser identity revision requires re-verification even when content units are unchanged. Legacy/v1 compatibility is read-only for an existing canonical manifest and must not be described as having this v2 evidence. The receipt scope is location_only, never semantic proof.Use only $...$ and $$...$$ as formula delimiters in source Markdown. Forms such as (A\cup B), [P=\frac{...}], \(...\), and \[...\] are not valid framework input. Confirm and migrate the source explicitly; never guess-rewrite a formula.
Restore study_state.json, resolve output intent, and run validate_workspace.py <ws> --json. Read the explicit .ingest/build_manifest.json.pipeline_version; never infer or delete it. Only ingestion-v2 follows the author/compiler/claim path in steps 2-6. An explicit ingestion-v1 workspace may only read its existing canonical manifest through the legacy compatibility path below; it cannot import, relocalize, or render a new Study Guide and must never claim the v2 claim/receipt gate. A failed v2 command does not authorize downgrading to v1. chat stops after the canonical profile=full manifest import; visual continues through rendering and all-page QA. Persist a standing choice only through update_progress.py set --artifact-mode chat|visual. Separately resolve answer_explanation_mode=ordinary|isolated. Missing, legacy, or invalid state has stored-schema fallback ordinary, which still requires a detailed beginner-first explanation for every item without an isolation claim. Before authoring a full-v2 Guide, perform a native-child capability handshake: require one fresh independent child context per item plus enforceable restriction of that child's task input and tools to the exact request. When verified, default to isolated unless the user opted out, persist it, and disclose once that it consumes extra host quota/time; no separate API key or external-upload consent is needed. Any missing, inherited, or unverified boundary keeps ordinary and must be named. A separately billed external Provider is available only when the user explicitly requests it; before persisting that fallback, retain the two-stage no-upload exact plan and exact-plan pricing/privacy/upload consent. Never infer either capability or upload permission from a model family, subscription, API key, full, or visual.
For ingestion-v2, prepare the revision-bound current-chapter packet and annotation template; do not hand-copy source facts or reverse-engineer the compiler source:
python scripts/study_guide_author.py --workspace <ws> prepare --chapter <N> --jsonThis fixed command atomically writes notebook/chNN.authoring-packet.json and the deliberately incomplete notebook/chNN.authoring-annotations.template.json; its JSON result reports both paths plus the template hash. Exit 10/status=blocked forbids authoring until every reported review, conflict, source, asset, and denominator blocker is resolved. The packet binds source/fact/asset revisions and contains the exact semantic units, formulas, items, prompt/answer assets, and source locations the agent may use.
Read the generated template instead of guessing the annotation schema. Copy only its annotations object to notebook/chNN.authoring-annotations.json, then replace every empty value and __...__ sentinel. The template already contains the exact ID and field shape for every formula group and walkthrough item, plus an explicit knowledge-point schema placeholder and the full inventories to partition. The wrapper says template_status=incomplete and valid_annotations=false; the template itself and its untouched inner object are intentionally invalid and cannot satisfy persistence, compilation, or completion. Author only explanations in the target file, bound to the packet's packet_sha256. Do not change packet IDs, source text, exact LaTeX, assets, locations, or source roles. Use the canonical zh|en|bilingual language shape and explicit provenance for every authored field. A translation must be ai_translation and remain visibly AI-labelled; unsupported reasoning uses visibly labelled ai_supplement, never fake material provenance. In ordinary, the template also requires each item's detailed zero-prerequisite answer_explanation and exact per-language ai_supplement provenance; it must explain symbols, formula/rule choice, substitutions or reasoning, every subpart, and final meaning without merely repeating the answer. In isolated, do not author that field in annotations; step 4 supplies it through the receipt-bound extension. Each item must map to at least one knowledge point. A knowledge point may have example_ids=[] when the materials truly provide no matching item; the compiler emits the active-language “materials do not provide a corresponding example” notice. Knowledge points still exactly partition semantic units/formula groups, and all items remain globally covered. If a crop-receipt-only upgrade changes the packet after a large canonical annotations file was already authored, run study_guide_author.py rebase-annotations --chapter <N> instead of hand-editing or regenerating it. That command may change only packet_sha256, add a missing mode binding on the compatible path, and remove paired legacy self_check fields; it atomically publishes only after the entire current annotation validator passes against the new packet. Any item/formula/knowledge-point drift is refused.
Only when answer_explanation_mode=isolated, generate exactly one isolated answer explanation per item before persistence. In ordinary, skip this entire step: study_guide_explain.py status reports disabled/not_applicable, and every mutating explainer command must fail. The protocol script never calls a provider itself: it emits one hash-bound request at a time. The preferred host-native route must create a fresh independent, tool-disabled child context containing only that request's fixed instruction, exact question, exact answer when present, target language, and listed item-scoped assets; it uses the current host allowance and no separate API key. Do not batch multiple items into one context, add the parent conversation, course history/wiki/retrieval, expose a whole page containing unrelated questions or answers, or let the child browse the workspace/network. If the host cannot enforce these boundaries, use ordinary. A bundled external-Provider adapter is only an explicit-user-request fallback: it may prepare a non-uploading exact plan after the first consent, and its run requires the second exact-plan consent. Adapter completion finalizes only the isolated explanation receipt, not notebooks, compiled Guide, claims, import, rendering, QA, or phase completion.
python scripts/study_guide_explain.py --workspace <ws> prepare --chapter <N> --json
python scripts/study_guide_explain.py --workspace <ws> status --chapter <N> --json
python scripts/study_guide_explain.py --workspace <ws> show --chapter <N> --request-id <request_id> --json
# Call one fresh/stateless tool-disabled model with exactly that request. The model result contains only answer_explanation plus non-rendered coverage.
python scripts/study_guide_explain.py --workspace <ws> make-host-receipt --chapter <N> --request-id <request_id> --invocation-id <unique_id> --isolation-mode <fresh_context|stateless_api> --provider <provider> --model <model> --json
python scripts/study_guide_explain.py --workspace <ws> import-result --chapter <N> --request-id <request_id> --input <one-model-result.json> --host-receipt <one-host-receipt.json> --json
python scripts/study_guide_explain.py --workspace <ws> finalize --chapter <N> --jsonRepeat show → one native-child or explicitly consented external invocation → make-host-receipt → import-result for every pending item. The untrusted model result contains only answer_explanation plus the required non-rendered coverage object; the separate host receipt records the exact request/instruction/model-input/attachment hashes plus provider/model/invocation/isolation/tool declaration. It is a host declaration, not a sandbox or model-supplied attestation. Every invocation ID must be unique; changed packet, annotations, language, source revision, asset, crop, prompt, or response invalidates the receipt. A page-shaped image is allowed only as a revision-bound target-scoped crop: target_item_only, or prompt-only target_with_required_context with exact sorted required_context_ids; every answer image remains target-only. Preserve the compact semantic schema/context/isolation controls into the model attachment binding. Ordinary item-specific diagrams may remain as their native asset. The fixed prompt requires a detailed zero-prerequisite explanation, all symbols and substitutions/reasoning, every subpart, honest ambiguity handling, and no answer-self-check panel. coverage must use the exact target-language keys, enumerate addressed parts and at least two reasoning steps, and attest formula/rule plus final-meaning coverage; it is hash-bound through the response ledger and final receipt but never copied into the typed Guide or rendered. When upgrading an existing response ledger, schema-1 events remain immutable historical chain entries; they cannot satisfy any schema-2 request, which still requires a fresh response with coverage.
For answer_origin=inline_material, authoring must close the answer to its explicit inline_material_source_unit_id: one same-source-revision/page native material text unit with identical text/title and an explicit zh|en source language. Missing, ambiguous, zxx, or mismatched evidence blocks authoring. The prompt must use its current item-scoped semantic-v2 crop; a full_prompt crop suppresses duplicate printed prompt text. In a monolingual isolated request, when the exact material answer already equals ANSWER.text, material_evidence.text_ref points to that field instead of copying the full material passage a second time. Bilingual or genuinely distinct translation/teaching-copy evidence keeps a separate packet-bound material payload. Its model-transport copy may remove only leading/trailing whitespace such as a parser's page-final newline; internal source text is not rewritten, and the unchanged author packet/source revision remains hash-bound.
Persist all validated walkthroughs, then compile the typed full manifest. In ordinary, the detailed explanations come from validated annotations and an isolated receipt/contract is forbidden. In isolated, persistence and compilation additionally require the finalized canonical explanation receipt from step 4:
python scripts/study_guide_author.py --workspace <ws> persist-notebooks --chapter <N> --json
python scripts/study_guide_author.py --workspace <ws> compile --chapter <N> --jsonThese commands use only the fixed packet, annotations, bindings, claim draft/proposals, and—only for isolated—canonical answer-explanation request/ledger/receipt files. Notebook publication is one rollback-protected batch. Packet, annotations, bindings, manifest, renderer and QA receipts bind the exact selected mode; switching modes makes the unfinished chain stale. The compiler rechecks all bound facts/assets and either the ordinary authored explanations or the complete isolated per-item receipt, applies the full_prompt image rule, excludes every student_attempt, keeps target-only answer crops after the solution, places the detailed explanation after that answer/asset, omits the deprecated self-check panel, localizes all human headings/labels/AI markers, and renders source anchors honestly as PDF page, PPTX slide, XLSX worksheet, or DOCX logical segment; only PDF links receive #page=.
Import compiler claims, attach their canonical IDs, and sign the exact attached manifest. The normal proposal route is create: it compiles the ergonomic proposals and atomically imports/merges the resulting strict ClaimRecords. Use import instead only when a complete reviewed ClaimRecord JSONL already exists; never run both routes for one update.
python scripts/verify_claims.py create --workspace <ws> --input-proposals notebook/chNN.claim-proposals.json --json
# Complete-sidecar alternative only:
python scripts/verify_claims.py import --workspace <ws> --input-claims <complete-claims.jsonl> --json
python scripts/study_guide_author.py --workspace <ws> attach-claims --chapter <N> --json
python scripts/verify_claims.py verify --workspace <ws> --manifest notebook/chNN.guide.claims.json --chapter <N> --jsonattach-claims writes only notebook/chNN.guide.claims.json and fails on missing, ambiguous, stale, wrong-unit, or wrong-role claims. The receipt is location_only: it proves exact authored-field text membership and source unit/location/revision binding, not entailment or correctness. Finish every intended global claim-sidecar mutation before signing all chapter receipts that must remain current.
Validate and atomically import that exact attached manifest:
python scripts/study_guide_content.py --workspace <ws> validate --chapter <N> --input <ws>/notebook/chNN.guide.claims.json --json
python scripts/study_guide_content.py --workspace <ws> import --chapter <N> --input <ws>/notebook/chNN.guide.claims.json --jsonImport publishes canonical notebook/chNN.guide.json plus its bounded notebook block and invalidates stale derived artifacts. profile=full must cover the exact de-duplicated current-chapter union of teaching examples, all bank items (including teaching-only gradable=false), and typed question-unit external IDs; a ≤1天 budget never shrinks that denominator. In chat, return to exam-tutor after this import and do not render. After a language change, rerun authoring from target-language annotations; ordinary rewrites and revalidates those explanations, while isolated also reruns the complete per-item request/receipt chain. Ingestion-v2 relocalize fails early because explanations, crops, notebook blocks, claims, modes, and receipts are language-bound. Do not relabel or reuse a stale-language manifest.
Only when Python truly cannot start may an ingestion-v2 host use the older hand-written complete-draft fallback. Label it unverified, preserve all provenance/source limitations in chat, and never claim structured phase completion, claim verification, HTML/PDF readiness, or successful local persistence from that fallback. A failed command, invalid annotation, or missing dependency is not “no Python.”
An already-existing canonical protocol-v2 notebook/chNN.guide.json that lacks answer_explanation_mode but has a complete, currently verifiable isolated contract may be inspected only with study_guide_content.py --workspace <ws> validate --chapter <N> --json, omitting --input. This narrow seam cannot import, render, run QA, satisfy completion, or accept another input; library validators and every new publication require an explicit canonical mode. Any revision requires rebuilding the full authoring chain under ordinary or isolated.
An explicit pipeline_version=ingestion-v1 workspace may inspect only an already existing canonical notebook/chNN.guide.json:
python scripts/study_guide_content.py --workspace <ws> validate --chapter <N> --jsonThe machine report identifies ingestion_pipeline_version=ingestion-v1, legacy_compatibility=read_only, and claim_verification.status=not_applicable with required=false. Do not pass another --input, import, relocalize, or render this manifest into a new visual Guide. Existing historical JSON/HTML/PDF files remain readable as historical artifacts, but they satisfy no new completion or QA claim. To revise content, language, crops, explanations, HTML, or PDF, migrate/re-ingest the workspace as ingestion-v2 and run the complete authoring chain. If a workspace says v2, missing claims or a failed author command is a blocker rather than permission to use this branch.
8. For visual, read docs/pdf-capability-adapters.md, probe docs/pdf-capability-adapters.json, and select exactly one backend:
native: an already installed host PDF capability can print/convert the exact validated study_guide/chNN.html to study_guide/chNN.pdf and can render the result for QA;browser: use the repository fallback with a detected local Edge/Chrome;html: HTML-only request, so no PDF backend is required.Run the content/backend-aware preflight after the typed manifest exists but before invoking the renderer:
python scripts/check_deps.py --workspace <ws> --chapter <N> --artifact-mode visual --pdf-backend <native|browser|html>chapter_math_status=needs_recovery is a content blocker, not “no math.” Formula conversion becomes required when typed formulas/substitutions exist. Edge/Chrome is required only for the browser route. Explain only the exact missing dependency and obtain consent before installation.
Render the selected chapter. The default artifact type is the real typed Study Guide; backend/profile are explicit assertions:
python scripts/study_guide_render.py --workspace <ws> --chapter <N> --profile <full|abridged> --pdf-backend <html|browser|native>python scripts/study_guide_render.py --workspace <ws> --chapter <N> --profile <full|abridged> --pdf-backend browser --pdf For native, the first render leaves a deliberately non-deliverable awaiting_native_pdf receipt. Before conversion, the host adapter must record that receipt's exact html_sha256 and conversion_start_gate_sha256, its declared registry adapter_id and exact loaded version, and a UTC start timestamp. It must consume those exact HTML bytes and write only the canonical study_guide/chNN.pdf; after it records the UTC completion timestamp, atomically bind the result:
python scripts/study_guide_render.py --workspace <ws> --chapter <N> --pdf-backend native --bind-native --native-pdf-path <ws>/study_guide/chNN.pdf --native-adapter-id <declared-id> --native-adapter-version <exact-version> --conversion-input-html-sha256 <receipt-html-sha256> --conversion-start-gate-sha256 <receipt-gate-sha256> --conversion-started-at <UTC-Z> --conversion-completed-at <UTC-Z> --json The binding command invokes no adapter, network, installer, or renderer. It revalidates the current typed manifest, HTML, full-processing/runtime gate, allow-listed adapter identity, canonical PDF path/signature/hash, and timestamps under the workspace publication lock, then atomically changes the receipt to qa_pending. Any mismatch leaves the old receipt unbound, so merely dropping a PDF beside the HTML never makes it acceptable. --pdf is browser-only. The adapter/version fields are host declarations bound into the conversion hash, not an attestation that the host process was sandboxed. If the host cannot report the exact loaded adapter version, native binding is unavailable; explicitly fall back to browser or HTML rather than guessing latest.
12. Render and lint every PDF page, then inspect every PNG visually:
```text
python scripts/study_guide_qa.py --workspace <ws> --chapter <N> --json render
python scripts/study_guide_qa.py --workspace <ws> --chapter <N> accept --inspected-pages all --reviewer <name> --reviewer-kind agent --page-verdict 1=pass
```
Repeat `--page-verdict N=pass:<notes>` once for every rendered page; the one-page command above is only the minimal shape. Check formulas, glyphs, prompt/answer order, image clarity, clipping, tables, margins, page numbers, page breaks, orphan headings, and abnormal blank space. Any defect requires a source/renderer fix, regeneration, and a fresh inspection from page 1. `artifact_ready` remains false until the receipt has matching hashes, `visual_qa.status=ready`, every page is recorded, and unresolved defects are empty. Only after `artifact_ready=ready` return to `exam-tutor` to call `complete-phase`.study_guide/chNN.html as an offline document with inline CSS, native MathML, and data-URI images. It must require no network, CDN, script, or browser extension.zh|en|bilingual. Bilingual content is complete blockwise zh+en—not merely bilingual UI chrome. Source quotations/images stay original-language evidence and use the translation rule above.mock_exam/past_exam “not provided in the current workspace/material set.” Scoped zeroes change neither coverage nor global claims.details, answer toggle, form control, or screen-only answer.isolation=target_item_only, while a dependent prompt contains only the target plus exact sorted required_context_ids and uses the distinct isolation=target_with_required_context; detected IDs, crop hash, every composite region/bbox, and output pixels must close exactly. Preserve those semantic schema/context/isolation controls into the author packet and isolated-explanation input. Historical receipt schema v1 and historical semantic-review v1 (including semantic v1 inside an otherwise readable receipt-v2 record) are read-only and cannot satisfy current Study Guide authoring; layout-only crops, stale/missing review evidence, unrelated content, undeclared detected IDs, or student-attempt output evidence also block authoring. A tainted parent page is not itself rendered and may supply a verified clean prompt region; answer-side evidence remains official-only.source_file, the adapter's honest location anchors (for example PDF page, PPTX slide, XLSX worksheet, or DOCX logical segment), and the canonical provenance labels from the workspace.study_guide/chNN.receipt.json with manifest/HTML/PDF hashes, exact coverage of the current chapter's de-duplicated teaching-example + all-bank-item + typed-question-unit ID denominator, selected backend/converter, and QA state. This does not prove semantic recall of every source claim. Never claim completion from file existence alone..ingest/claim_verification_receipts/chNN.json and the validator's claim_verification report. Describe them only as required material-claim coverage plus explicitly referenced authored-field membership/text identity, same-ref unit/role binding, source location/revision, and canonical strict-JSON guide/fact hash binding. They are not answer-correctness or semantic-entailment receipts and are never inferred from quote_span presence. Legacy/v1 output must not claim this gate.--artifact-type source_packet. It writes chNN.source-packet.html; it is never called a Study Guide and never satisfies artifact readiness.artifact_mode=chat|visual; missing and unknown values fail safe to chat.check_deps.py --materials <dir> --artifact-mode visual) cannot know the final chapter content or host PDF backend and therefore must not trigger speculative MathML/browser installation. Before visual generation, rerun it with --workspace <ws> --chapter <N> --pdf-backend <native|browser|html>. If that chapter contains formula content without the audited latex2mathml==3.60.0, the preflight/renderer prints the exact pinned command. Explain the dependency and obtain consent before installation; never install silently. Never present an older chNN.html as the result of a failed render.../assets/<safe-relative-tail> inside a selected references/wiki/*.md, because build_visual_index --apply-wiki emits that shape. Resolve it only to <ws>/references/assets/<safe-relative-tail>, reject every additional .. and every symlink component, and never extend this exception to teaching examples, quiz items, or notebook content.browser backend. It does not block a successfully probed native adapter. Any failed PDF route is an HTML-only degradation, not a PDF success.© ZeKaiNie, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in full/skills/exam-study-guide of ZeKaiNie/universal-examprep-skill.
Open the folder on GitHubat commit b9e84f5
Exam Study Guide 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Exam Study Guide this skillZeKaiNie/universal-examprep-skill | 303 | — | ~7.6k | Automated safety check: Pass | MIT | |
| Lecture Slides SummarizerLi-Baichuan-James/summarize-slides-skill | 312 | — | ~6.7k | Automated safety check: Pass | MIT | |
| Fill In NotesPolaris-Aeterna/loom-notes | 166 | — | ~975 | Automated safety check: Pass | Custom licence | |
| Thesis Figure Skill0xE1337/thesis-figure-skill | 143 | — | ~9.1k | Automated safety check: Pass | MIT | |
| Repo Maintenancewengan-li/ncku-thesis-template-latex | 151 | — | ~4.3k | Automated safety check: Pass | Custom licence | |
| Latex Thesis Zhbrycewang-stanford/Auto-Empirical-Research-Skills | 4.5k | — | ~1.5k | Automated safety check: Pass | Custom licence |
Li-Baichuan-James/summarize-slides-skill
Condenses a lecture PDF into an exam-focused LaTeX cheat sheet and compiled PDF with page citations, bilingual terms, formulas and only the diagrams that help.
Polaris-Aeterna/loom-notes
Turn a textbook chapter, lecture, or paper into beautiful "fill-in" study notes — written to be READ (clean statements, intuition) yet engineered to be FILLED (blanks, proof skeletons, "your turn"…
0xE1337/thesis-figure-skill
生成学术论文配图:LaTeX/TikZ 代码(结构化图表,直接嵌入论文)或 draw.io XML (技术路线图、汇报配图)。自动按论文领域风格设计,编译验证后交付。
wengan-li/ncku-thesis-template-latex
A skill your agent uses for maintaining and releasing this repository.
brycewang-stanford/Auto-Empirical-Research-Skills
Chinese LaTeX thesis assistant for existing .tex degree thesis projects (XeLaTeX/LuaLaTeX/latexmk).
Imbad0202/academic-research-skills
Runs a 12-agent pipeline that plans, drafts, cites, reviews and formats academic papers, with modes for revision, rebuttals, abstracts and citation checks.
ZeKaiNie/universal-examprep-skill
帮助学生在临考前进行结构化极速复习:解析课程资料/大纲/重点,按章节生成 wiki 知识库与标准题库,组织针对性刷题与判分,并记录复习进度和错题。当用户即将考试、需要快速复习计划、练习题、错题复盘或考前小抄时使用(关键词:期末/备考/复习/刷题/划重点/错题;exam, cram, study plan, quiz, review)。不适用于长期学习规划、与考试无关的写作或编程任务。
ZeKaiNie/universal-examprep-skill
从学生上传的课件/大纲/老师勾的重点/真题,一键初始化并验证备考工作区:解析 PDF、DOCX、PPTX、 XLSX、常见独立图片与 txt/md,建立分章节 LLM Wiki、标准题库、结构化接管队列与进度状态;仅在 Python 确实无法运行时 明确降级为手动写盘。当工作区尚未建立、资料发生变化、或建库 readiness 被阻断时使用。
ZeKaiNie/universal-examprep-skill
临考复习教练 / Exam cram coach. An agent skill from ZeKaiNie/universal-examprep-skill.
ZeKaiNie/universal-examprep-skill
教学过程中自动捕获和记录学习者的概念疑难点("为什么/是什么/怎么推/什么意思"类型的问题),保存到进度文件的"概念疑难点记录"区,形成考前回顾清单。
ZeKaiNie/universal-examprep-skill
只读检查一个已生成的备考工作区是否健康并报告问题,默认不做任何修改。核对 .ingest 原材料版本、 内容单元、接管队列与派生产物完整性,以及 wiki、题库、视觉证据、计划和进度的一致性。当用户怀疑 工作区有问题、建库 readiness 被阻断、或想在开始复习前体检时使用。
ZeKaiNie/universal-examprep-skill
全员通关后把 错题本+笔记本+知识点窗口+wiki 编译成考前速记小抄 cheatsheet.md(每条要点带可溯源 锚点),并在视觉产物模式或用户明确要求 PDF/打印版时按指定页数渲染成打印级 PDF:按「必背结论/公式 → 有难度例题(必要时含题面图)→ 例题解答(代入公式、保留基础过程)→ 要点解释(同类题怎么办)」 四段组织。当复习收尾、用户要「考前小抄/速记/总结/打印版」时使用。
Works with
Categories
将已经讲完但尚未完成阶段门禁的一个章节整理成强类型教材清单,并在视觉模式下编译为公式可读、图片可见、知识点与全部对应例题逐项精讲的自包含 HTML/PDF。结构化工作区准备阶段完成证据、用户说 Markdown 公式仍是 raw LaTeX、图片缺失、要含课件/作业/Quiz/模拟考试题及答案的零基础讲义,或要求打印版时使用。. Exam Study Guide is an agent skill from ZeKaiNie/universal-examprep-skill.
Exam Study Guide fits situations like: tasks that involve Study guides and flashcards; tasks that involve LaTeX.
Run `npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a claude-code`. Or copy the skill folder (full/skills/exam-study-guide in ZeKaiNie/universal-examprep-skill) into .claude/skills/exam-study-guide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ZeKaiNie/universal-examprep-skill --skill exam-study-guide -a codex`. Or copy the skill folder (full/skills/exam-study-guide in ZeKaiNie/universal-examprep-skill) into .agents/skills/exam-study-guide in your project. Codex loads it when a task matches its description.
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-study-guide -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-study-guide, .gemini/skills/exam-study-guide, .github/skills/exam-study-guide and .opencode/skills/exam-study-guide in your project.
SKILL.md names no scripts, command-line tools or credentials: Exam Study Guide is instructions for the agent only. Our summary lists: Python 3.
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.
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.
Exam Study Guide is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.6k tokens (SKILL.md is roughly 30k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Exam Study Guide: Lecture Slides Summarizer (Li-Baichuan-James/summarize-slides-skill, 312 stars), Fill In Notes (Polaris-Aeterna/loom-notes, 166 stars), Thesis Figure Skill (0xE1337/thesis-figure-skill, 143 stars) and Repo Maintenance (wengan-li/ncku-thesis-template-latex, 151 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.