New to Claude Skills? Learn how to install them →

wanshuiyin on GitHub

Interview Cheat Sheet

Free

Prepare for ML/LLM interviews with comprehensive cheat sheets.

Get this skill

Free · Opens the source repo

What Interview Cheat Sheet does

The Interview Cheat Sheet skill is designed for developers and data scientists preparing for machine learning and large language model (LLM) interviews. It generates a detailed cheat sheet in Chinese tailored to specific topics within the ML/LLM domain. Each cheat sheet includes essential formulas with derivations, practical PyTorch code examples, comparison tables, and a set of 25 frequently asked interview questions categorized by difficulty level. This structured approach helps users grasp complex concepts and prepares them for various interview scenarios.

When invoked, the skill requires a specific topic as input, ensuring that the generated content is focused and relevant. Users can choose the depth of the cheat sheet by adjusting the effort parameter, which controls the length and complexity of the output. The cheat sheet adheres to a strict style guide, ensuring consistency and clarity in presentation. It includes sections that cover intuitive explanations, core formulas, implementation details, and a comprehensive list of interview questions with collapsible answers for easy review.

This skill is particularly beneficial for individuals who are preparing for technical interviews in the field of machine learning and want a structured resource that covers both theoretical and practical aspects of the topics. By providing a well-organized cheat sheet, it allows users to study efficiently and effectively, making it a valuable tool for anyone looking to enhance their interview preparation.

The skill operates in a controlled manner, with a review process before finalizing the output. This ensures that the generated cheat sheets are accurate and meet the specified requirements. Overall, the Interview Cheat Sheet skill serves as a practical assistant for those aiming to excel in ML/LLM interviews, combining rigorous content generation with a user-friendly interface.

When to use it

Use this skill when you need a focused and comprehensive cheat sheet for a specific ML/LLM topic in preparation for interviews.

When not to use it

This skill may not be suitable for broad topics that cannot be narrowed down to a specific focus, as it requires a well-defined subject to generate useful content.

What you can build with it

Preparing for a Machine Learning Interview

Generate a cheat sheet on a specific ML topic to review key concepts and formulas before your interview.

Studying for Advanced LLM Concepts

Create a detailed cheat sheet that includes derivations and code examples for advanced LLM techniques.

Reviewing Common Interview Questions

Utilize the skill to compile a list of frequently asked interview questions categorized by difficulty.

How to install Interview Cheat Sheet

View source

1. Install with the skills CLI

npx skills add wanshuiyin/auto-claude-code-research-in-sleep/interview-cheatsheet --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by wanshuiyin

/interview-cheatsheet — long-form Chinese ML/LLM interview prep

Generate one comprehensive Chinese cheat sheet per invocation: formulas + derivations + from-scratch code + 25 高频题. Output passes cross-model math/code review before rendering. Detect-only by default: never auto-commits.

Inputs

  • <topic> (required) — narrow enough for one 600-1000 line tutorial. Good: "RLHF / DPO / PPO", "MoE", "KV Cache + Speculative Decoding". Bad (too broad): "all of LLM training", "diffusion" (split into Forward Process / Sampling / CFG separately).
  • --effort (default balanced) — balanced ≈ 600 lines, max ≈ 1000 lines with deeper proofs and more L3 questions.
  • --byline (default "<Your Name>, <Affiliation>") — passed to /render-html --author.
  • --commit (default false) — if false (default), stop after rendering; user reviews and commits. Never push without explicit user approval.

Style guide — STRICT (read docs/tutorials/attention_tutorial.md as canonical reference)

Section skeleton (12-14 sections)

## §0 TL;DR — callout intro line + numbered list of 5-7 takeaways
## §1 直觉 — why this matters; analogy; one-paragraph mental model
## §2 核心公式 — main formula + derivation (variance / scaling / boundary)
## §3 实现细节 — 50-80 line from-scratch PyTorch
## §4-7 变体 / 工程实践 / 常见 bug — variants, comparison tables, footguns
## §8 复杂度 / 资源 — time + memory complexity
## §9 与相关方法对比 — placement in the ecosystem
## §10 25 高频面试题 — L1 (10 必会) + L2 (10 进阶) + L3 (5 顶级 lab), all with <details><summary> collapsible answers
## §A 附录 (optional) — sanity-check output, reference list

Conventions — bake the established lessons in

RuleWhyExample
Heading format ## §N Title with space after §NOlder versions had §0TL;DR glued## §0 TL;DR Cheat Sheet
Math in table cells: use \lvert ... \rvert not |...|| inside markdown table = cell separator → row break$\text{score}_{ij} - m \cdot \lvert i-j \rvert$
Callouts with body list: split into callout intro line + separate listOtherwise the list's first item is swallowed by the callout, then items 2..N restart numbering at 1> 💡 **Sampler 选择** — 按 NFE/质量排序如下。<br/>- Euler …<br/>- Heun …
Callout prefixes only: 💡 ⚠️ (others won't get class)renderer maps these to callout-info/warn/good/bad> ⚠️ **FP16 overflow** — 即使除了 √d_k …
Math: $...$ inline, $$...$$ display, $$\boxed{...}$$ for key boxesMathJax CDN; literal in source
Code: ```python fences, real PyTorch that would runreviewer will check executability
Personal-info banlist: owner's institution/lab/center names, degree-program affiliations, private server aliases, job-search context, /Users/... paths, specific lab/company namesreviewer flags as FAILbyline goes via --author at render time, not in body
Language: Chinese primary, English technical terms in-placematches established cheat-sheet style"softmax 饱和", "vector field"

Eyebrow / subtitle / title naming

FieldPattern
--eyebrowInterview Prep · <Topic>
--subtitleone Chinese sentence describing scope (e.g. 公式推导 + From-Scratch 代码 + 25 高频题(L1 必会 · L2 进阶 · L3 顶级 lab))
--title<Topic> 面试 Cheat Sheet or <Topic> Quick Reference
--langzh-CN

Slug

<topic> → kebab/snake-case <slug> for filenames. e.g. "RLHF / DPO / PPO" → rlhf_dpo_ppo.

Workflow

Step 1 — Plan structure (no files written)

Internally sketch:

  • 12-14 section titles
  • List of major formulas (with derivation outline for each)
  • List of code blocks (skeleton + what it demonstrates)
  • 25 interview questions sorted by L1 / L2 / L3 difficulty (each with one-line expected answer)
  • Comparison table topics (e.g., "RLHF vs DPO vs IPO vs SimPO")

If the topic is too broad to fit in one cheat sheet, stop and ask the user to scope before drafting.

Step 2 — Draft MD

Write directly to docs/tutorials/<slug>_tutorial.md. Follow the style guide. Length target: 600 lines (balanced) or 1000 lines (max), ±20%.

Step 3 — Cross-model math/code review (codex gpt-5.6-sol xhigh, FRESH thread)

Invoke mcp__codex__codex with model: gpt-5.6-sol, config: {model_reasoning_effort: xhigh}, sandbox: read-only, fresh thread (never codex-reply).

Reviewer prompt:

You are reviewing a long-form Chinese interview-prep tutorial on <TOPIC> for math/code/factual correctness and style discipline.

## Files to read (READ-ONLY)
- Draft MD: <MD_PATH>
- Style reference: docs/tutorials/attention_tutorial.md
  (Read this only for STYLE — do NOT score the draft against the reference's content topic.)

## Return JSON with these 10 checks

1. formula_correctness — Independently re-derive each $$ display formula. Flag any error with file:line.
2. code_correctness — For each python block: would it run? Does it implement the stated math? Imports / shapes / device handling consistent?
3. interview_answer_correctness — Each L1/L2/L3 question's <details> answer. Specifically flag wrong year / wrong paper / wrong author / off-by-one indexing / inverted comparison.
4. historical_citations — Paper authors + year + venue. Flag wrong attributions (e.g., "DPO: Rafailov 2023 NeurIPS" must be checkable).
5. table_pipe_escape — Any markdown table cell containing `|x|` math (not `\lvert x \rvert`)? Cite line.
6. callout_list_collision — Any line matching the pattern `^> (?:💡|⚠️|✅|❌) \*\*[^*]+\*\* — (?:- |\d+\. )`? That swallows the list.
7. heading_consistency — All `## §N` and `### N.M` follow style guide (space after §N, no glued chars).
8. section_completeness — Sections §0..§10 (and §A if effort=max) present and non-trivial.
9. length_target — Within ±20% of target (600 for balanced, 1000 for max).
10. personal_info_leak — None of: the owner's institution / lab / center names, degree-program affiliations, private server aliases, job-search or recruitment context, absolute `/Users/...` paths. (Keep the concrete string banlist in local untracked notes — the public SKILL defines only the CATEGORIES; listing the real values here would itself be the leak.)

Return JSON:
{
  "verdict": "PASS | WARN | FAIL",
  "checks": {<check_name>: "pass|warn|fail with one-line note + file:line if applicable"},
  "blocking_issues": ["..."],
  "warnings": ["..."]
}

Verdict: PASS = all pass, WARN = at most cosmetic issues (length slight off / cosmetic style), FAIL = any math/code/factual error OR personal-info leak OR table-pipe / callout-list bug.

Step 4 — Fix and loop (no hard cap — judge by trajectory)

For each FAIL issue, edit the MD. Then re-invoke codex with a fresh thread (never reuse threadId). Stop when verdict = PASS or WARN with no FAIL items.

No hard round cap. Use these heuristics instead:

  • Keep going if each round's FAIL items are shrinking, concrete, enumerable (e.g., citation year fixes, off-by-one, single-line code bugs). The reviewer is doing useful work — let it converge.
  • Stop and report if the same issue keeps coming back (loop detected), or if the FAIL items shift to architectural / scope concerns that need user input, or if the round count exceeds ~6 without convergence.

Most tutorials converge in 3-5 rounds. Going to 5-6 rounds is fine if substantive bugs are still being caught — the Video Generation tutorial (May 2026) went to 5 rounds and the final 2 rounds caught real citation errors and an over-attribution to Sora's patch size that would have shipped otherwise.

Step 5 — Render via /render-html

Call directly (do not invoke /render-html as a sub-skill; call its python script — gives clear control):

python3 skills/render-html/scripts/render_html.py docs/tutorials/<slug>_tutorial.md \
  --template academic \
  --out docs/tutorials/<slug>_tutorial.html \
  --title "<Topic> 面试 Cheat Sheet" \
  --subtitle "<one-line scope summary>" \
  --eyebrow "Interview Prep · <Topic>" \
  --author "<byline>" \
  --lang zh-CN

render_html.py runs its own 13-check codex review automatically. If that FAILs, fix the MD (often a table-pipe or callout-list issue the math/code reviewer missed) and re-render. Note that render_html.py itself writes <slug>_tutorial.review.json for the render-stage audit.

Step 6 — Combine audit trail

After both reviews pass, merge math/code review history + render review history into one docs/tutorials/<slug>_tutorial.review.json:

{
  "skill": "interview-cheatsheet",
  "source": "docs/tutorials/<slug>_tutorial.md",
  "source_sha256_prefix": "<16-char prefix>",
  "output": "docs/tutorials/<slug>_tutorial.html",
  "topic": "<TOPIC>",
  "effort": "balanced | max",
  "byline": "<author string>",
  "math_code_review": {
    "verdict": "PASS",
    "rounds": [
      {"run": 1, "verdict": "...", "thread_id": "...", "issue": "...", "fix": "..."},
      ...
    ]
  },
  "render_review": {
    "verdict": "PASS",
    "rounds": [...]
  },
  "summary": "<one-line: N-round math/code review + M-round render review settled at PASS>",
  "rendered_at": "<YYYY-MM-DD>"
}

Step 7 — Stop. Report to user.

Do NOT git add / git commit / git push. Report:

✅ /interview-cheatsheet "<TOPIC>" complete.

  Files:
    docs/tutorials/<slug>_tutorial.md          (<lines> lines, <bytes> bytes)
    docs/tutorials/<slug>_tutorial.html        (<bytes> bytes, <TOC> TOC entries)
    docs/tutorials/<slug>_tutorial.review.json

  Math/code review:  PASS after <N> rounds (<thread IDs>)
  Render review:     PASS after <M> rounds
  Length:            <actual> lines (target <effort>)

  Issues caught + fixed during review:
    - <one line per non-trivial fix>

  Suggested commit message:
    docs(tutorials): add <Topic> cheat sheet (rendered via /render-html)

  ⚠️ Did NOT auto-commit — user reviews and pushes manually.
  Also update docs/tutorials/README.md to add the new row.

Update the index

After the tutorial passes, optionally append a row to docs/tutorials/README.md:

| **<Topic> 面试 Cheat Sheet** | [`<slug>_tutorial.md`](<slug>_tutorial.md) | [`<slug>_tutorial.html`](https://wanshuiyin.github.io/Auto-claude-code-research-in-sleep/tutorials/<slug>_tutorial.html) | <one-line topic list> |

Suggest the row to the user but let them edit it in themselves if they want to curate.

Key invariants (the ARIS rules baked in)

InvariantHow it's enforced
Executor != reviewer familyClaude drafts; gpt-5.6-sol reviews (math/code stage); gpt-5.6-sol reviews again (render stage)
Fresh thread per reviewer callStep 3 + render's own gate both use mcp__codex__codex not codex-reply
Codex reasoning = xhighHardcoded in Step 3 reviewer config
Personal info redactionBoth math/code reviewer and render reviewer check; banlist in style guide
Lessons-learned encodedTable-pipe + callout-list collision rules in style guide AND review checks 5+6
No silent failureIf review FAILs and the FAIL set is no longer shrinking (loop) or hits ~6 rounds without convergence, stop and report — don't push

When NOT to use

  • Topic too broad — split into smaller scopes first
  • Topic outside ML/LLM core — this style guide assumes math + code + Chinese; for general topics use a different format or write directly
  • Already have a draft you want to edit — use Edit directly, this skill is for greenfield generation
  • Don't want HTML output — call /render-html separately or skip Step 5

Reference invocations

/interview-cheatsheet "RLHF / DPO / PPO"
/interview-cheatsheet "MoE (Mixture-of-Experts)" — effort: max
/interview-cheatsheet "KV Cache + Speculative Decoding"
/interview-cheatsheet "Long-context: RoPE / YaRN / NTK / MLA"
/interview-cheatsheet "Distributed Training (DDP / FSDP / ZeRO / TP / PP)"
/interview-cheatsheet "Quantization (GPTQ / AWQ / INT4 / FP8 / SmoothQuant)"

Reference style files

  • Style canonical: docs/tutorials/attention_tutorial.md + .html
  • Style secondary: docs/tutorials/flow_matching_tutorial.md + .html
  • Review audit format: docs/tutorials/attention_tutorial.review.json

Provenance

Extracted from the two pilot tutorials (Attention + Flow Matching, May 2026). Both passed cross-model review; the attention tutorial required 3 review rounds — catching a table-pipe collision and a callout-list collision that were not obvious from the rendered output. Those lessons are now baked into the style guide and reviewer checks 5+6 so future tutorials don't repeat them.

Frequently asked questions about Interview Cheat Sheet

Similar skills