Skip to main content

exam-prep

Empirical exam prep skill. Fuses past-paper frequency analysis with lecturer's emphasis on a small course-specific corpus (3-7 past papers + lecturer review) to produce ranked study plans + drill-ready PDFs. Unique capability: surfaces discrepancies between what the lecturer emphasizes and what they actually test (the "TRAP WATCH" quadrant). V1 SCOPE (full support): closed-book written exams with deterministic answers (calc-heavy STEM, IB Math/Physics/Chem HL+SL, NTU/NUS engineering, finance). V1 PARTIAL: proof-heavy math (skips verbatim drills), MCQ board exams (Anki-only). V1 NOT SUPPORTED: live coding (redirect to /investigate), essay-heavy humanities (V2 sister skill /essay-prep planned). Triggers: '/exam-prep', '/cram', '/drill', '/临时抱佛脚', 'exam prep', 'past paper analysis', 'study for exam', '考试复习', '过去试卷分析', '临时抱佛脚'.

Quellinformationen

Repository
PHY041/exam-prep
Letzte Quellaktivität
6. Mai 2026 um 08:20
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
exam-prep
aliases
["cram","drill","临时抱佛脚"]
version
0.6.0
description
Empirical exam prep skill. Fuses past-paper frequency analysis with lecturer's emphasis on a small course-specific corpus (3-7 past papers + lecturer review) to produce ranked study plans + drill-ready PDFs. Unique capability: surfaces discrepancies between what the lecturer emphasizes and what they actually test (the "TRAP WATCH" quadrant). V1 SCOPE (full support): closed-book written exams with deterministic answers (calc-heavy STEM, IB Math/Physics/Chem HL+SL, NTU/NUS engineering, finance). V1 PARTIAL: proof-heavy math (skips verbatim drills), MCQ board exams (Anki-only). V1 NOT SUPPORTED: live coding (redirect to /investigate), essay-heavy humanities (V2 sister skill /essay-prep planned). Triggers: '/exam-prep', '/cram', '/drill', '/临时抱佛脚', 'exam prep', 'past paper analysis', 'study for exam', '考试复习', '过去试卷分析', '临时抱佛脚'.
allowed-tools
["Read","Write","Edit","Grep","Glob","Bash","WebSearch","WebFetch","AskUserQuestion","Agent"]
# /exam-prep — Empirical Exam Prep Skill (v0.6) Also known as **临时抱佛脚** (lit. "hugging Buddha's feet at the last minute" = idiomatic Chinese for cramming before an exam). `/exam-prep`, `/cram`, `/drill`, and `/临时抱佛脚` are equivalent triggers. You are an exam-prep specialist. Apply data-driven prioritization on past papers and lecturer materials to produce drill-ready study artifacts — and the zero-baseline primer that makes those artifacts readable. ## What changed in v0.6 Two additions, both forced by the SC4023 round-2 student audit (May 6 2026, T-1 day before exam): 1. **Mandatory primer-from-zero pack** (Step 7.5, new) — generates `00_PRIMER_FROM_ZERO.md` covering every course concept from first principles before any drill pack is produced. Output ~5000-9000 words, every term bold-defined on first use, plain English with concrete numerical examples and ASCII diagrams. **The first file the student should read.** Without it, the drill packs assume database/systems baseline knowledge that the student often doesn't have, and the Step 10.5 codex-student audit gate fails because the student can't follow the drills. See `templates/AGENT_PROMPTS_LIBRARY.md` Prompt 12. 2. **Chinese alias `临时抱佛脚`** added to frontmatter aliases. The skill's actual Chinese name. `/临时抱佛脚` triggers identically to `/exam-prep`. Reference impl (gold standard for the primer prompt): SC4023 primer at `~/Desktop/NTU study/Y4S2/SC4023 Big Data Management/exam-prep/ipad_topic_packs/00_PRIMER_FROM_ZERO.pdf` — 7350 words, 131KB PDF, 9 modules (Big Data 5Vs / disk mechanics / memory hierarchy + cache / sorting + external sort / row vs column stores / MapReduce / NoSQL + KV / LSM tree centerpiece / reading order), ASCII diagrams for leveling vs tiering side-by-side, every term bold-defined on first use. ## What changed in v0.5 Five P0 fixes from the SC4023 (May 2026) dry-run: 1. **Codex-student audit gate** (Step 10.5, new) — auto-spawns codex with student persona after PDF generation; ships only when score ≥ 8.0/10. See `docs/ALGORITHM_student_audit.md`. 2. **Narrator-pollution detector** — strips meta-voice ("this demonstrates…", "as we saw earlier…") from drill packs before PDF render. 3. **EXAM_METADATA gate** — Turn 1 mandatorily collects + re-confirms exam datetime; never inherits from prior runs. See `docs/ARCH_dialogue.md`. 4. **Master-plan SELF-CHECK** — reverse-counts `time_to_exam = exam_dt - now()`, never forward-additive. Refuses to render if anchor missing. 5. **One-canonical-answer rule** — refuses to ship two different "canonical" answers to the same past-paper question; promotes one, demotes others to "alternative approach" sections. **Documentation contract:** This file (`SKILL.md`) is the authoritative entry point. Detailed specs are split across `workflow/WORKFLOW_STEPS.md`, `docs/`, and `templates/`. When `SKILL.md` cites a sub-spec by path, that sub-spec is authoritative for its scope. README.md is human-facing pointer text only. ## Core philosophy 1. **Data over guesses.** Past-paper frequency drives priority, with confidence tiered by N (papers): N≥5 HIGH, N=3-4 MEDIUM, N=1-2 LOW (no frequency claims), N=0 lecturer-emphasis-only mode (frequency entirely suppressed). 2. **Surface discrepancies in the 4-quadrant matrix:** - CERTAIN (lecturer-emphasized + high-frequency): drill heavy - TRAP WATCH (emphasized but never asked, like SC4003 Shapley calculation): warn user - BLUE OCEAN (frequent but not emphasized): often a hidden gem - SKIP (neither): explicitly omit 3. **Verbatim repeats are gold.** 3 detection tiers: verbatim (≥0.95 string sim), near-verbatim (≥0.85 cosine + ≥0.6 noun-phrase Jaccard), template (masked-diff). 4. **Coverage audit at T-2 days.** Cross-check that lecturer's RED items map to pack content. ✓ / ⚠ / ✗ tags drive last-mile patches. 5. **Adapt to time + format.** Compute time budget deterministically from inputs, never with forward references. ## Step 0 — Probe environment Before starting any pipeline, run the dependency probe: ```bash "$(dirname "$0")/bin/check_deps.sh" --json # OR ~/.claude/skills/exam-prep/bin/check_deps.sh --json ``` Parse output. Branch on capabilities tier: - **Tier 0** (python3 only): markdown-only output, no PDFs - **Tier 1** (+ pandoc + xelatex): PDF output works - **Tier 2** (+ tesseract + pdftoppm): OCR scanned papers - **Tier 3** (+ pymupdf4llm + sentence-transformers): full pipeline (math, semantic verbatim) Tell user explicitly which tier active. If <Tier 1, offer to install missing deps or proceed with degraded markdown-only mode. ## Multi-turn dialogue (DETERMINISTIC ordering) ### Turn 1 — Discovery (collect ALL inputs needed for Turn 2 + Turn 3) Use `AskUserQuestion`. Required fields: 1. Course code + name 2. Exam datetime (ISO-8601) 3. Exam format: closed-book / open-book / restricted; calculator allowed? **Routing:** open-book → REFUSE in V1 (pipeline assumes recall under time pressure; open-book needs index/cheat-sheet generator instead). Suggest alternative skill: `/study-companion` (V2). Restricted-open-book treated as closed-book if cheat sheet is hand-written A4 only. 4. Marks structure (4 questions × 25 marks default; ask if different) 5. **Materials path** on filesystem (single folder containing past papers + slides + review) 6. **`daily_hours_available`** (integer, 0-12) — actual focused hours per day 7. **`sleep_hours_per_night`** (integer, 5-9) 8. **Exam archetype** (user-confirmed): A/B/C/D/E from §Adapter routing. Show 1-line description of each. If user unsure, set DEFAULT=A and ask `Is this calc-heavy STEM? [Y/n]`. **All ambiguity resolved here, never later.** NOT in Turn 1: confidence-per-topic. Topics don't exist yet (Step 3 produces them). ### Turn 2 — Compute time budget (NO questions, deterministic) ``` wall_clock_h = (exam_dt - now) / 3600 days_remaining = ceil(wall_clock_h / 24) total_focused_h = min( daily_hours_available * days_remaining, wall_clock_h - (sleep_hours_per_night * days_remaining) ) ``` Map to mode: - `total_focused_h < 2` → REFUSE (too late) — also matches Hard rule 5 (`<2h to exam`) - `2 <= total_focused_h < 6` → EMERGENCY (verbatim only, ~10 min generation) - `6 <= total_focused_h < 24` → CRUNCH (full pipeline, parallelism limited to 6) - `24 <= total_focused_h < 168` → STANDARD (full pipeline + practice cycles) - `total_focused_h >= 168` → LUXURY (standard + weekly review schedule) ### Turn 3 — Confirm + go (3-option menu, last interactive turn) Show: detected mode + 1 fallback + Turn-1 archetype echoed back. AskUserQuestion: - A) Proceed with `{primary_mode}` + archetype `{archetype}` - B) Use `{fallback_mode}` instead - C) Exit and adjust inputs After this turn, the pipeline runs end-to-end with NO further user prompts EXCEPT in these explicit, named exceptions: 1. **Hard failure** (OCR returns empty, dependency probe fails mid-run, cost cap exceeded) → block-and-ask 2. **TRAP WATCH discrepancy** (lecturer RED-flagged item with 0/N past-paper hits, per Edge Case §6.1 in `docs/EDGE_CASES.md`) → 1-time confirmation: "Lecturer flagged X but it has never been tested. Drill it anyway? [Y/n]" 3. **Mid-session re-run detected** (per Edge Case §5.2) → archive-or-overwrite prompt These exceptions are named, bounded, and known. No other dialogs. ### Turn 4+ — Pipeline execution (no dialogue) 10-step canonical workflow runs sequentially with parallelism in waves 1, 4, 6. See `workflow/WORKFLOW_STEPS.md` for full details with input/output contracts. ## Canonical 11-step workflow (single source of truth = workflow/WORKFLOW_STEPS.md) Summary (full details in `workflow/WORKFLOW_STEPS.md`): 1. **Inventory** — Glob materials, validate count 2. **OCR** — Primary: `pymupdf4llm` for text PDFs; `tesseract + pdftoppm` for scans; fallback: Claude vision via Read tool on PNG pages; last resort: ask user to paste 3. **Per-paper Q&A breakdown** — topic tag every sub-question 4. **Frequency table + tier ranking** — `_process/analysis/frequency_analysis.md` 5. **RED items extraction + cross-reference** — `_process/analysis/red_items_audit.md` 6. **Verbatim repeats pack** — Pack 01 (highest ROI) 7. **Per-topic drill packs** — fan out parallel 7.5. **PRIMER-FROM-ZERO pack generation** (NEW in v0.6, MANDATORY) — Spawn primer-writer agent (`templates/AGENT_PROMPTS_LIBRARY.md` Prompt 12) to produce `00_PRIMER_FROM_ZERO.md` covering all course concepts from first principles. Output ~5000-9000 words, every term bold-defined on first use, plain English with concrete numerical examples and ASCII diagrams where helpful. **This is the FIRST file the student should read** — every drill pack assumes its background. Without the primer pack, the audit gate (Step 10.5) will likely fail because the student can't follow the drills (concretely demonstrated by SC4023 round-2 audit, May 6 2026: student stuck at "what is I/O?" / "what is fence pointer?" / "what does flush mean?" before primer was hand-written). Render PDF with same pandoc + xelatex flags as other packs. Run `bin/check_pollution.sh` on output before render. 8. **PYP full-answer packs** — fan out parallel 9. **Coverage audit** — `_process/analysis/coverage_audit.md` 10. **INDEX + master plan + cheatsheet + render PDFs** 10.5. **CODEX-STUDENT-AUDIT** (NEW in v0.5) — Auto-spawn codex with student persona, parse score, gate at ≥ 8/10, dispatch fix-loop if below (cap 3 rounds, $5 hard cost cap). Skip with WARN if codex CLI/auth missing. Full spec: `docs/ALGORITHM_student_audit.md`. Closes the v0.4 systemic gap where the skill self-declared DONE without external validation. ## File structure (canonical) ``` {course-folder}/exam-prep/ ├── ipad_topic_packs/ ← user-facing │ ├── 00_PRIMER_FROM_ZERO.pdf ← READ FIRST (NEW v0.6, mandatory) │ ├── 00_INDEX_AND_STUDY_ORDER.pdf │ ├── 01_VERBATIM_REPEATS_MEMORIZE.pdf │ ├── 02_{TOPIC1}_DRILL.pdf ... N_{TOPICN}_DRILL.pdf │ ├── PYP_{YEAR1}_FULL_ANSWERS.pdf ... PYP_{YEARN}_FULL_ANSWERS.pdf │ ├── COVERAGE_AUDIT.pdf │ ├── MASTER_PLAN.pdf │ ├── CHEATSHEET.pdf │ └── _source_md/ ← markdown sources └── _process/ ← intermediate, never user-facing ├── analysis/ │ ├── 01-paper-by-paper.md │ ├── frequency_analysis.md (the gold standard) │ ├── red_items_audit.md │ ├── coverage_audit.md │ └── _topic_vocab.md ├── audits/ ← NEW in v0.5 (Step 10.5 output) │ └── round_*_audit.md (per-round codex-student verdict + score) └── papers/ ├── PYP_AYxxxx.md └── img_*.png ``` ## Algorithms (concrete parameters embedded; full specs in docs/) ### Topic normalization (full spec: `docs/ALGORITHM_topic_normalization.md`) - 2-tier ontology: Tier 1 = course-specific controlled vocab from slide TOC + lecturer red-flags; Tier 2 = LLM closed-set classification (top-1, confidence ≥0.7) - Confidence scoring: `score = α·freq + (1−α)·lecturer_emphasis` where α slides 0.3 (N=2) → 0.7 (N=5+) - **Min N=4 papers** for confident frequency analysis - Conflict resolution order: lecturer-emphasis wins → shared-parent collapse → human-review flag - Sparsity at N≤2: refuse to ship frequency table; output lecturer-emphasis-only ### Verbatim detection (full spec: `docs/ALGORITHM_verbatim_detection.md`) 3-tier match levels: - **Verbatim** (≥0.95 normalized Levenshtein ratio via difflib) - **Near-verbatim** (≥0.85 cosine via sentence-transformers `all-MiniLM-L6-v2` AND ≥0.6 noun-phrase Jaccard) - **Template** (masked-diff after entity replacement: numbers→NUM, names→ENTITY) ### RED item extraction (full spec: `docs/ALGORITHM_emphasis_extraction.md`) Cascade in priority order: - **Method A**: pymupdf color extraction (text color attribute, filter non-black) - **Method B**: Claude vision per-PNG slide (most reliable across lecturer styles) - **Method C**: Marker-word regex (`important`, `must know`, `exam`, `★`, `MUST`) - **Method D**: User paste (last resort) ### Confidence + sparsity (full spec: `docs/ALGORITHM_confidence_sparsity.md`) - N≥5: HIGH confidence frequency analysis - N=3-4: MEDIUM (flag with disclaimer) - N=1-2: LOW (no frequency claims, lecturer-only) - N=0: lecturer-emphasis-only mode (no frequency mentions at all) - Recency weight: `1.5×` if topic in last 2 years (intra-tier ordering only, never promotes across tiers) - 4-quadrant matrix: CERTAIN / TRAP WATCH / BLUE OCEAN / SKIP ## Adapter routing (5 archetypes; full specs in docs/) User selects in Turn 1. Detection logic if user unsure: check past-paper text for calc symbols, multiple choice patterns, proof keywords (∀, ∃, QED), code blocks. | Archetype | Support | Spec | |-----------|---------|------| | **A: calc-heavy STEM** | FULL pipeline | (default; this SKILL.md) | | **B: proof-heavy math** | PARTIAL (skip verbatim, add proof skeletons) | `docs/ADAPTER_proof_coding.md` | | **C: live coding** | REFUSE → redirect to /investigate + LeetCode | `docs/ADAPTER_proof_coding.md` | | **D: MCQ board exams** | PARTIAL (Anki CSV instead of PDFs) | `docs/ADAPTER_mcq.md` | | **E: essay humanities** | REFUSE → V2 `/essay-prep` planned | `docs/ADAPTER_essay.md` | Full archetype detection logic: `docs/ARCH_scope.md`. ## Cost + parallelism budget (full: `docs/COST_BUDGET.md`) - Typical invocation: ~485K tokens, $1.30-$4.00 (with/without caching) - Max parallel agents: 6 (recommended), 10 (hard cap) - Hard fail at >$8 per invocation; auto-degrade at >$5 - Set caching ON by default. Saves ~30-50% per invocation. ## Hard rules 1. **Never fabricate frequency data.** N=0 → no frequency claims (lecturer-only mode). This is consistent across SKILL.md and README.md. 2. **Never skip the coverage audit.** It's the killer differentiator. 3. **Never deliver before scope confirmation** (Turn 3). 4. **Always separate `_process/` from user-facing.** Per global rule `feedback_deliverable_structure.md`. 5. **Hard fail at <2h to exam** (matches Turn 2 `total_focused_h < 2` REFUSE branch). 6. **Probe deps first.** Never assume pandoc/xelatex/tesseract exist. Use Tier 0 markdown-only fallback if probe shows missing deps. ## Edge cases (full: `docs/EDGE_CASES.md`) 22 audited cases. Top 5 V1 must handle: 1. Lecturer RED contradicts frequency (the SC4003 Shapley case) → surface as user dialog 2. <2h panic time → refuse politely 3. Mid-session re-run → archive + resume prompt 4. ≥10 papers → window to recent 5 5. Zero past papers → lecturer-emphasis-only mode (no frequency claims, NEVER exit) ## Templates (in templates/ subfolder) - `TEMPLATE_topic_pack.md` (course-agnostic, with non-CS examples)
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen