$npx -y skills add ZeKaiNie/universal-examprep-skill --skill exam-cram临考前的极速备考总教练。把课件、大纲、重点与真题建成分章 wiki 和标准题库,再组织惰性授课、 题库判分、错题与疑难复盘及可选考前小抄,并持久化进度。用于期末、备考、突击、刷题、划重点、 错题与考前复习;不用于长期规划或与考试无关的写作/编程。
| 1 | # Exam Cram Coach |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | 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. |
| 6 | |
| 7 | ## Activation |
| 8 | |
| 9 | 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. |
| 10 | |
| 11 | ### Startup processing choice |
| 12 | |
| 13 | At the start, show the two material-processing choices once and recommend |
| 14 | `lightweight`: `轻量按需(推荐) / lightweight on-demand (recommended)` versus |
| 15 | `完整建库 / full knowledge-base build`. Persist the canonical choice as |
| 16 | `study_state.json.processing_mode=lightweight|full`. If the learner accepts the |
| 17 | default, is urgent, gives no answer, or has legacy/missing state, use |
| 18 | `lightweight`; never infer `full` from a subscription or available compute. |
| 19 | An ordinary reconfirm that omits `--processing-mode` preserves an existing |
| 20 | canonical choice; the safe default applies to a new/missing/legacy/invalid choice, |
| 21 | not to an already confirmed `full` workspace. Keep this choice independent from |
| 22 | `artifact_mode=chat|visual`. |
| 23 | |
| 24 | `answer_explanation_mode` is another independent choice but is not an opening |
| 25 | question. Its stored-schema fallback for missing/legacy/invalid state is `ordinary`: |
| 26 | full Guides still contain a detailed beginner-first explanation for every item, but |
| 27 | claim no isolation. At full-v2 Guide entry, run a native-child capability handshake. |
| 28 | If the host can prove one fresh independent child context per item and can restrict |
| 29 | that child's task input and tools to the exact request, default to `isolated` unless |
| 30 | the learner opted out. Persist the mode, tell the learner once that it consumes extra |
| 31 | host model quota/time, and require no separate API key or external-upload consent. |
| 32 | If any part is missing, inherited, or unverified, stay `ordinary` and say why. A |
| 33 | separately billed external Provider is an explicit-request fallback only; it retains |
| 34 | no-upload exact planning, current pricing/privacy disclosure, and exact-plan upload |
| 35 | consent. A model name, subscription, key, `full`, or `visual` alone proves neither |
| 36 | native isolation nor permission to upload. |
| 37 | |
| 38 | Teaching cadence is another optional, independent preference, not an opening |
| 39 | question. `preferences.interaction_style` stores only `batch|step_by_step`; missing |
| 40 | legacy state means `batch`. A stored `step_by_step` choice is effective only when |
| 41 | `processing_mode=full` and `no_questions=false`; lightweight or no-questions keeps |
| 42 | the preference but reports it dormant and uses effective `batch`. Effective step |
| 43 | mode reads the next teaching item in manifest order from one workspace-locked |
| 44 | snapshot and records a marker-bound notebook/manifest hash binding. Existing |
| 45 | unbound teaching IDs remain legal batch history, but every bound ID stays subject |
| 46 | to live validation after any cadence change. Guide publication preserves valid |
| 47 | bound blocks and rejects stale bindings or unbound markers; every retained teaching |
| 48 | baseline ID must still have a current teaching-manifest snapshot, never only a quiz |
| 49 | copy. |
| 50 | |
| 51 | Teaching IDs use the existing typed Guide-safe Unicode contract (1–200 characters, |
| 52 | without whitespace, controls/replacement character, or ``[]#|`/\``). A structurally |
| 53 | sound append-only roster expansion or live-binding revision drift reopens an old |
| 54 | completed phase as `usable_with_gaps`; structural damage remains blocked, and the |
| 55 | Guide/completion receipt must be rebuilt after the pending item is recorded. |
| 56 | |
| 57 | ## Inputs |
| 58 | |
| 59 | - Confirmed, separate materials and workspace paths. |
| 60 | - `study_state.json` (progress truth), generated `study_progress.md`, and `study_plan.md`. |
| 61 | - One current `references/wiki/chN_*.md` plus selected items from `references/quiz_bank.json`; never preload either collection. |
| 62 | - `.ingest/` structured build/review truth, when present. |
| 63 | |
| 64 | Normal construction is delegated to ` |