interview-cheatsheet について
interview-cheatsheet は、機械学習や LLM の面接対策向けに中国語のチュートリアルを生成するスキルです。数式の導出、PyTorch の自作実装、頻出質問 25 問を含み、レンダリング前に数学とコードをレビューします。デフォルトでは変更をコミットしません。
主な機能
- 01約 600~1,000 行のチュートリアル生成
- 02数式と導出の掲載
- 03PyTorch の自作コード作成
- 04難易度別の面接質問 25 問
- 05複数モデルによる数学・コードレビュー
- 06デフォルトで検出のみ、コミットなし
活用シーン
- 01RLHF、DPO、PPO の面接準備
- 02MoE などの機械学習トピックの復習
- 03KV Cache と Speculative Decoding の学習
- 04レビュー可能な面接学習資料の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wanshuiyin/ auto-claude-code-research-in-sleep --skill interview-cheatsheetインストール後、Claude Code で/interview-cheatsheetを入力して読み込まれたか確認します。
詳細
/interview-cheatsheet — 中国語の長文 ML/LLM 面接対策
各レビュアー枠の前に、選択可能なレビュアーに従ってください: 呼び出しの解決 →
.aris/reviewer.json→ Claude Code のデフォルト(Codex MCP) を、正規のヘルパーリゾルバー経由でreviewer_route.pyを使って解決し、この 枠のティア、新しいコンテキスト、ソース/画像入力、決定論的なゲートを維持します。 以下の Codex の例/固定設定はbackend=codexの場合にのみ適用されます。他のルートでは、それぞれの初回呼び出し/返信の契約を使用します。ルートと実際に返された識別情報を保存してください; 選択したものが利用できない場合はREVIEW_UNAVAILABLEとします。実際の ファミリー/完了状況/スコープに基づいて受け入れ可否を分類します。 呼び出し元のレビュアー/モデル/effort のオーバーライドを、レビュアーを含む子プロセスに 引き継ぎます。生成ワーカーは変更しません。
呼び出しごとに、中国語の総合的なチートシートを1つ生成します:数式+導出+ゼロからのコード+高頻出問題25問。出力はレンダリング前に複数モデルによる数式/コードレビューに合格します。デフォルトは検出のみ:自動コミットは行いません。
入力
<topic>(必須) — 600〜1000行のチュートリアル1本に収まる程度に絞ったテーマ。適切な例:「RLHF / DPO / PPO」、「MoE」、「KV Cache + Speculative Decoding」。不適切な例(範囲が広すぎる):「LLM トレーニング全般」、「diffusion」(Forward Process / Sampling / CFG に分割してください)。--effort(デフォルトbalanced) —balancedは約600行、maxはより詳細な証明と多くの L3 問題を含む約1000行です。--byline(デフォルト"<Your Name>, <Affiliation>") —/render-html --authorに渡されます。--commit(デフォルトfalse) —false(デフォルト)の場合、レンダリング後に停止します;ユーザーが確認してコミットします。明示的なユーザーの承認なしにプッシュしてはいけません。
スタイルガイド — 厳守(標準リファレンスとして docs/tutorials/attention_tutorial.md を読んでください)
セクション構成(12〜14セクション)
## §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
規約 — 確立された知見を反映する
| ルール | 理由 | 例 |
|---|---|---|
見出し形式は ## §N Title、§N の後にスペースを入れる | 以前のバージョンでは §0TL;DR のように詰めていました | ## §0 TL;DR Cheat Sheet |
表のセル内の数式:|...| ではなく \lvert ... \rvert を使う | Markdown の表内では | がセル区切りになるため、行が崩れます | $\text{score}_{ij} - m \cdot \lvert i-j \rvert$ |
| 本文にリストが続くコールアウト:コールアウトの導入行とリストを分ける | そうしないと、リストの最初の項目がコールアウトに取り込まれ、項目2〜Nの番号が1から振り直されます | > 💡 **Sampler 选择** — 按 NFE/质量排序如下。- Euler …- Heun … |
コールアウトの接頭辞のみ:💡 ⚠️ ✅ ❌(それ以外はクラスが適用されません) | レンダラーがこれらを callout-info/warn/good/bad に対応付けます | > ⚠️ **FP16 overflow** — 即使除了 √d_k … |
数式:インラインは $...$、ディスプレイは $$...$$、重要な枠には $$\boxed{...}$$ | MathJax CDN;ソースにそのまま記述します | — |
| コード:```python フェンスを使い、実際に動作する PyTorch を記述する | レビュアーが実行可能性を確認します | — |
個人情報の禁止リスト:所有者の所属機関/研究室/センター名、学位課程の所属、プライベートサーバーの別名、就職活動に関する情報、/Users/... パス、特定の研究室/企業名 | レビュアーが FAIL と判定します | byline は本文ではなく、レンダリング時に --author 経由で渡します |
| 言語:中国語を主とし、英語の技術用語はそのまま使用する | 既存のチートシートのスタイルに合わせます | 「softmax 饱和」、「vector field」 |
アイブロー/サブタイトル/タイトルの命名
| フィールド | パターン |
|---|---|
--eyebrow | Interview Prep · <Topic> |
--subtitle | スコープを説明する中国語の1文(例:公式推导 + From-Scratch 代码 + 25 高频题(L1 必会 · L2 进阶 · L3 顶级 lab)) |
--title | <Topic> 面试 Cheat Sheet または <Topic> Quick Reference |
--lang | zh-CN |
スラッグ
<topic> → ファイル名用のケバブケース/スネークケースの <slug>。例:「RLHF / DPO / PPO」→ rlhf_dpo_ppo。
ワークフロー
Step 1 — 構成を計画する(ファイルは書き込みません)
内部で以下の下書きを作成します。
- セクションタイトルを12~14個
- 主な数式の一覧(それぞれの導出の概要を含む)
- コードブロックの一覧(骨組みと、各ブロックで説明する内容)
- L1/L2/L3の難易度別に分類した面接質問25問(それぞれ1行の想定回答付き)
- 比較表のトピック(例:「RLHF vs DPO vs IPO vs SimPO」)
トピックが広すぎて1つのチートシートに収まらない場合は、下書きに着手せず、ユーザーに範囲の絞り込みを依頼してください。
Step 2 — MDを下書きする
docs/tutorials/<slug>_tutorial.md に直接書き込みます。スタイルガイドに従ってください。目標の長さは600行(バランス重視)または1000行(最大)で、許容誤差は±20%です。
Step 3 — モデルをまたいだ数式/コードレビュー(codex gpt-6-astra xhigh、新規スレッド)
model: gpt-6-astra、config: {model_reasoning_effort: xhigh}、sandbox: read-only、新規スレッド(codex-replyは使用しない)を指定して、mcp__codex__codexを呼び出します。
レビュアーへのプロンプト:
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 — 修正して繰り返す(上限なし — 進捗を見て判断)
FAIL項目ごとにMDを編集します。その後、新規スレッド(threadIdは再利用しない)でcodexを再度呼び出します。判定がPASS、またはFAIL項目なしのWARNになるまで続けます。
ラウンド数に上限はありません。 代わりに、以下を目安にしてください。
- ✅ 続行する:各ラウンドのFAIL項目が減少していて、具体的かつ列挙可能な場合(例:引用年の修正、1つずれた値、1行のコードのバグ)。レビュアーが有効に機能しているため、収束するまで続けてください。
- ⛔ 中断して報告する:同じ問題が繰り返し発生する(ループを検出した)場合、FAIL項目がユーザーの判断を要する構成や範囲の問題に移った場合、または収束しないままラウンド数が約6回を超えた場合。
ほとんどのチュートリアルは3~5ラウンドで収束します。実質的なバグがまだ見つかっているなら、5~6ラウンドまで進めても問題ありません。Video Generationチュートリアル(2026年5月)では5ラウンドまで進め、最後の2ラウンドで実際の引用ミスと、Soraのパッチサイズに関する過剰な帰属が見つかりました。これらは、そのまま公開されていた可能性があります。
Step 5 — /render-htmlでレンダリングする
直接呼び出してください(サブスキルとして/render-htmlを呼び出さず、そのPythonスクリプトを実行してください。これにより明確に制御できます)。
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は独自の13項目のcodexレビューを自動で実行します。そこでFAILになった場合は、MDを修正して再レンダリングしてください(数式/コードレビュアーが見落とした、表のパイプ文字やコールアウトリストの問題が原因であることがよくあります)。なお、render_html.py自体が、レンダリング段階の監査用に<slug>_tutorial.review.jsonを書き込みます。
Step 6 — 監査履歴を統合する
両方のレビューが合格したら、数式/コードレビュー履歴とレンダリングレビュ��ー履歴を、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 — 停止してユーザーに報告する
git add/git commit/git pushは実行しないでください。 次の内容を報告します。
✅ /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.
インデックスを更新する
チュートリアルが合格した後、必要に応じて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> |
行の追加をユーザーに提案します。ただし、内容を整理したい場合はユーザー自身が編集できるようにしてください。
主要な不変条件(組み込まれたARISルール)
| 不変条件 | 適用方法 |
|---|---|
| 実行者とレビュアーは異なるモデルファミリーにする | Claudeが下書きを作成し、gpt-6-astraがレビューする(数式/コード段階)。さらにgpt-6-astraが再度レビューする(レンダリング段階) |
| レビュアーの呼び出しごとに新規スレッドを使う | Step 3とレンダリング段階のゲートでは、どちらもcodex-replyではなくmcp__codex__codexを使う |
| Codexの推論レベルはxhigh | Step 3のレビュアー設定で固定 |
| 個人情報のマスキング | 数式/コードレビュアーとレンダリングレビュアーの両方が確認する。禁止リストはスタイルガイドに記載 |
| 学びを反映する | 表のパイプ文字とコールアウトリストの衝突に関するルールを、スタイルガイドとレビュー項目5・6の両方に記載 |
| 失敗を見逃さない | レビューがFAILになり、FAIL項目が減少しなくなった(ループ)場合、または収束しないまま約6ラウンドに達した場合は、中断して報告します。プッシュはしません |
使用しない場合
- トピックが広すぎる場合 — まず範囲を小さく分割してください
- ML/LLMの中核から外れたトピックの場合 — このスタイルガイドは数式+コード+中国語を前提としています。一般的なトピックには別の形式を使うか、直接執筆してください
- 編集したい下書きがすでにある場合 — Editを直接使ってください。このスキルは新規作成向けです
- HTML出力が不要な場合 —
/render-htmlを別途呼び出すか、Step 5を省略してください
参考用の呼び出し
/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)"
参考用のスタイルファイル
- 正式なスタイル:
docs/tutorials/attention_tutorial.md+.html - 参考スタイル:
docs/tutorials/flow_matching_tutorial.md+.html - レビュー監査形式:
docs/tutorials/attention_tutorial.review.json
出典
2つのパイロットチュートリアル(Attention + Flow Matching、2026年5月)から抽出しました。どちらも複数モデルによるレビューに合格しました。Attentionチュートリアルでは3回のレビューを要し、レンダリング結果からは明らかでなかったテーブルのパイプ記号の衝突と、コールアウトリストの衝突が見つかりました。これらの教訓は現在、スタイルガイドとレビューチェック5・6に反映されており、今後のチュートリアルで同じ問題が繰り返されないようにしています。