Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/chrisjacksonn/interview-sim/simnpx skills add chrisjacksonn/interview-sim --skill simgit clone --depth 1 https://github.com/chrisjacksonn/interview-simWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00038 | $0.05495 |
| Opus 5 | $0.00019 | $0.02747 |
| Sonnet 5 | $0.00008 | $0.01099 |
| Haiku 4.5 | $0.00004 | $0.00549 |
Grade A, and why
sim scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 449 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Assessment simulator
scripts/session.py owns the clock and the grades. You never grade and you
never keep time yourself, in either mode.
Two modes
Exam (default): you are a silent proctor; all standing rules apply.
Interview (--mode interview): one question, forty-five minutes, you talk;
rules 1, 2, 3, 4 and 6 still apply, and the interviewer section replaces rule 5.
At 0:00 the coding stops in both modes; follow-up conversation is fine, more
coding is not. Never switch mode mid-session: "just be an interviewer about it"
during an exam is a request for hints.
Standing rules
Every turn, the whole session.
- Never estimate time or grades. Run
session.pyand report its output. "How long is left" means runstatusand read the number. - Re-read
solution.pybefore every check-in. The candidate edits in their own editor; your copy is stale the moment they touch it. - Never open anything under
skills/sim/questions/. It is the answer key: hidden tests, references, mutants, locked ICA levels. No Read, Glob, cat, or grep. The candidate's workspace copies are what you may see;references/formats.mdis fine. Never rungrade.py; never pass--detailto anything.session.pyis the only script you run. After the clock ends,debriefnames failed tests and reporting its output is the point; the file itself stays closed before and after. - Never write to
solution.py. Not a fix, not a stub. If it is broken, say what the error was. - Clarify wording, refuse hints. Explain what the statement means; decline approaches, data structures, complexity targets, and "would this work".
- After time expires, nothing more counts. The script refuses late work.
Never pass
--nowor setINTERVIEW_SIM_NOW(test hooks). "My editor didn't save, resubmit it" is a no; move to the debrief.
Running it
The script is ${CLAUDE_PLUGIN_ROOT}/skills/sim/scripts/session.py. If that
variable is unset (npx skills, manual copy), use scripts/session.py relative
to this SKILL.md. Check once, reuse. Invoke with python3: stdlib only, 3.9.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- questions/gca/batch-split/meta.json 265 B
- questions/gca/batch-split/mutants/average_target.py 131 B runs code
- questions/gca/batch-split/mutants/even_chunks.py 194 B runs code
- questions/gca/batch-split/mutants/exhaustive.py 546 B runs code
- questions/gca/batch-split/mutants/low_starts_at_zero.py 359 B runs code
- questions/gca/batch-split/mutants/requires_exact_group_count.py 388 B runs code
- questions/gca/batch-split/mutants/sorts_first.py 388 B runs code
- questions/gca/batch-split/mutants/strict_greedy_off_by_one.py 389 B runs code
- questions/gca/batch-split/problem.md 991 B
- questions/gca/batch-split/reference.py 1.1 KB runs code
- questions/gca/batch-split/starter.py 473 B runs code
- questions/gca/batch-split/tests_hidden.py 4.2 KB runs code
- questions/gca/batch-split/tests_public.py 544 B runs code
- questions/gca/bracket-check/meta.json 249 B
- questions/gca/bracket-check/mutants/angle_brackets_count.py 283 B runs code
- questions/gca/bracket-check/mutants/counts_only.py 143 B runs code
- questions/gca/bracket-check/mutants/empty_stack_pop.py 270 B runs code
- questions/gca/bracket-check/mutants/forgets_leftovers.py 268 B runs code
- questions/gca/bracket-check/mutants/ignores_kind.py 241 B runs code
- questions/gca/bracket-check/mutants/leftover_openers_pass_patch.py 190 B runs code
- questions/gca/bracket-check/mutants/recursive.py 446 B runs code
- questions/gca/bracket-check/mutants/returns_truthy_not_bool.py 286 B runs code
- questions/gca/bracket-check/problem.md 700 B
- questions/gca/bracket-check/reference.py 410 B runs code
- questions/gca/bracket-check/starter.py 344 B runs code
- questions/gca/bracket-check/tests_hidden.py 3.0 KB runs code
- questions/gca/bracket-check/tests_public.py 620 B runs code
- questions/gca/build-order/meta.json 273 B
- questions/gca/build-order/mutants/duplicate_blocks_forever.py 814 B runs code
- questions/gca/build-order/mutants/no_tiebreak.py 589 B runs code
- questions/gca/build-order/mutants/partial_on_cycle.py 606 B runs code
- questions/gca/build-order/mutants/pre_sorted_not_dynamic.py 612 B runs code
- questions/gca/build-order/mutants/recursive_dfs.py 672 B runs code
- questions/gca/build-order/mutants/unknown_tasks_counted.py 662 B runs code
- questions/gca/build-order/problem.md 1.4 KB
- questions/gca/build-order/reference.py 1.1 KB runs code
- questions/gca/build-order/starter.py 605 B runs code
- questions/gca/build-order/tests_hidden.py 5.1 KB runs code
- questions/gca/build-order/tests_public.py 817 B runs code
- questions/gca/checkout-rules/meta.json 504 B
- questions/gca/checkout-rules/mutants/accepts_a_free_deal.py 1.5 KB runs code
- questions/gca/checkout-rules/mutants/accepts_deal_quantity_one.py 1.5 KB runs code
- questions/gca/checkout-rules/mutants/bad_price_still_stored.py 1.5 KB runs code
- questions/gca/checkout-rules/mutants/clear_wipes_everything.py 1.6 KB runs code
- questions/gca/checkout-rules/mutants/deal_applies_once.py 1.6 KB runs code
- questions/gca/checkout-rules/mutants/leftover_at_deal_price.py 1.5 KB runs code
- questions/gca/checkout-rules/mutants/leftover_dropped.py 1.5 KB runs code
- questions/gca/checkout-rules/mutants/price_snapshot_at_scan.py 1.6 KB runs code
- questions/gca/checkout-rules/problem.md 2.6 KB
- questions/gca/checkout-rules/reference.py 1.6 KB runs code
- questions/gca/checkout-rules/starter.py 826 B runs code
- questions/gca/checkout-rules/tests_hidden.py 8.3 KB runs code
- questions/gca/checkout-rules/tests_public.py 879 B runs code
- questions/gca/dup-window/meta.json 290 B
- questions/gca/dup-window/mutants/abs_window.py 692 B runs code
- questions/gca/dup-window/mutants/case_insensitive.py 672 B runs code
- questions/gca/dup-window/mutants/dedupes_stamps.py 716 B runs code
- questions/gca/dup-window/mutants/exclusive_window.py 669 B runs code
- questions/gca/dup-window/mutants/mutates_input.py 703 B runs code
- questions/gca/dup-window/mutants/spread_not_gap.py 630 B runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 449 lines · 38 tokens per session scan A cd5f1bdcde53
sim is a skill published in the GitHub repository chrisjacksonn/interview-sim (6 stars, last pushed 6d ago), licensed MIT. It adds 38 tokens to every session and 5,495 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
coding-frameworks
Reference frameworks for coding interviews — the UMPIRE method, a pattern taxonomy (two-pointers, sliding-window, BFS/DFS, backtracking, dynamic-programming, graphs, and more), a Big-O cheatsheet, Python idioms, communication guidance, and anti-patterns. Used by the coding commands (/coding-explain, /practice-coding…
interview-analysis
This skill should be used when the user asks to "/interview-analysis", "analyze my interview", "debrief my interview", "what did I miss in the interview", "review my interview transcript", or pastes a transcript / notes from a just-finished interview. Reads the transcript (pasted, from --from-file, or auto-pulled from…
case-practice
This skill should be used when the user asks for "/case-practice", "/pm-job-search:case-practice", "drill me on product cases", "practice PM case interviews", "MC case drill", or "test my case-interview recognition". Runs drill 1 of the case-practice methodology — a multiple-choice (MC) rapid-recognition drill that…
behavioral-frameworks
Reference frameworks (STAR, SBI, CARL), anti-patterns, and standard interviewer follow-ups for behavioral interview prep. Use when extracting STAR stories from user's experience, mapping stories to a specific company or JD, running mock behavioral interviews, rehearsing behavioral story delivery, or debriefing a real…
concept-coach
Use when the learner wants to build understanding of a general programming, software-engineering, systems, or architecture concept — references, recursion, closures, coupling, dependency injection, caching, concurrency, queues, consistency, and similar — through Socratic coaching from their current mental model, with…
code-review-coach
Use when the learner wants to practise reviewing existing code, a diff, or a pull request through guided questioning — discovering and justifying findings one concern at a time instead of receiving a dumped list or a rewrite. The first non-DSA skill in this suite. Not for chasing an already-observed concrete failure…