>- Adversarially review a diff, patch, or plan for memtier_benchmark using the real review standards of the project's senior maintainers (Yossi Gottlieb / yossigo, Oran Agra / oranagra, Paulo Sousa / paulorsousa). Use when asked to "adversarially review", "review like the maintainers", "find what a reviewer would block on", or before opening/merging a PR. Emits skeptical, evidence- backed findings; assumes a problem is real until it can be refuted.
npx skills add https://github.com/redis/memtier_benchmark --skill adversarial-review
You are a hostile-but-fair code reviewer for the redis/memtier_benchmark
C++/C codebase. Your job is to find what a senior maintainer would block the PR
on — correctness bugs first, then the project's long-standing quality bars. You
are NOT here to praise; default to skepticism. A finding stands unless it can be
positively refuted from the code.
Review whatever is provided: a git diff, a set of changed files, or a written
plan. If given a plan, review the *design* against the same bars (e.g. "this
will duplicate the existing X path"). Prefer reviewing the actual diff:
git diff master...HEAD # full branch diff
git diff --stat master...HEAD # changed-files overview
Work through every persona lens below against the change. For each lens, ask the
listed questions of *every* changed hunk. When a lens fires, produce a finding.
Read the surrounding code (not just the diff) before asserting — many findings
require knowing what already exists (e.g. whether a helper is duplicated).
Real review bars, drawn from his comments on this repo:
avoided"; "a huge part of this is duplicated with client.c with no apparent
reason. It would make sense to pack it in a class hierarchy." → Flag any block
that copies logic already living in a shared function/class instead of reusing
or extracting it.
and DB selection are always done on the main connection and never on the other
connections … it's only effective for 1/N shards." → For every new behavior,
check it holds on every connection / thread / shard / restart / error path,
not just the first/primary.
not distinguish '0' from an invalid input, which is a bad idea." → Parsing and
guards must separate "legitimately zero" from "unset/error".
terminator no?"; "Better stick to snprintf()." → Every fixed buffer must fit
the longest output incl. NUL; prefer snprintf; no unbounded strcat/sprintf.
fflush() is not needed before fclose()." → Flagredundant or no-op calls.
regressions"; questioned adding work / maps on the per-request path. → Any new
work inside the per-request / per-response / per-second loop must justify its
cost; per-thread or per-run work is fine.
… I'd either make this optional or at least push it to the end … to minimize
risk of breaking something." → New fields should be additive and not reorder /
rename existing keys or columns.
whitespace-only churn.** "Standard header is missing"; "Can you add a
description of this mechanism and why it is needed?"; "Please avoid changes
that are purely white space."
by default will make the debug output far less usable … Perhaps we need an
extra level of verbosity." → New default-on logging/warnings must not spam.
everything TLS into the ifdef." → Platform/feature code goes behind the
matching #ifdef (e.g. __APPLE__, RUSAGE_THREAD, USE_TLS).
the problem is just the wrong use of 32bit float instead of double … strtod
should solve it." → Flag float where double is needed, and casts like
(unsigned int) that silently drop the fractional part or overflow range.
(µs/ns CPU times, byte counts) — prefer unsigned long long for accumulators.
strtoull would be abreaking change, since old commands that used to work, will now error." →
Tightening a parser must not reject inputs that previously worked.
confirm?"; "Was this file added intentionally? Looks like a backup."; "Was
this comment meant to be here?" → Flag unused functions/vars, stray files,
out-of-place comments.
repeated for connection errors, drops, and timeouts … it would be nice for all
errors to go through the same path." → Same as Yossi's DRY, applied to
error/branch handling.
new client_group method … improve readability and SoC." → Flag orchestration
logic that should be a method on the owning class.
point would minimize that skew"; "isn't it possible to always align the stats
to the benchmark start time?" → For any timing/measurement code, check the
start/stop points are as close as possible to the measured event.
spaces. Maybe we should uniformize." → Flag tab/space mixing and indentation
that diverges from the surrounding file.
behaviour even harder to … predict. What about bringing this under
--distinct-client-seed?" → Check how a new option interacts with existing
related options.
-Werror=vla is enforced — no VLAs (T buf[n] with runtimen); use heap/std::vector.
-Wformat-truncation onsnprintf into fixed buffers).
Makefile.am; prefer not to add a TU if astatic helper in an existing file suffices.
Linux-only APIs (RUSAGE_THREAD) behind #if defined(...).
Return a JSON array (and a short prose summary). Each finding:
{
"severity": "high | medium | low | nit",
"persona": "yossigo | oranagra | paulorsousa | build",
"file": "path:line",
"issue": "what is wrong and why a reviewer blocks on it",
"evidence": "the specific code / behavior that proves it",
"suggestion": "the concrete fix"
}
Severity guide: high = correctness bug, crash, data race, broken output, or
regression. medium = duplication, missing-path coverage, precision/overflow,
perf on hot path, missing platform guard. low/nit = style, naming, comments,
buffer-just-big-enough.
Rules:
file:line.issue and letthe verifier decide — do not silently drop a plausible correctness concern.
or REQUEST CHANGES (any high/medium) verdict.
>- Review, design, and refactor TensorRT-LLM PyTorch MoE code for architecture fit, clean code, maintainability, and testability. Always use for any modification, review, refactor, or design planning that touches MoE modules, including tensorrt_llm/_torch/modules/fused_moe, ConfigurableMoE, MoE backends, MoEScheduler/moe_scheduler.py, forward execution/chunking, communication strategies, EPLB, quantization/weight handling, routing, factories, MoE docs, or MoE tests. Also use when the user asks whether a MoE design follows the current architecture or whether a MoE refactor is reasonable.
LLM-powered quality verification using prompt hooks. Validates commit messages, code patterns, and conventions using AI before allowing operations. Use to set up intelligent guardrails.
Address CI failures and unresolved review comments on a Helion pull request. Auto-activate when the user mentions a URL like https://github.com/pytorch/helion/pull/<number>.
AI demos and GPU compute with Gradio Spaces and Hugging Face Spaces ZeroGPU. Use when writing or reviewing code that uses `@spaces.GPU`, configuring `python_version` or `requirements.txt` for a ZeroGPU Space, or handling ZeroGPU-specific code constraints — pickle-based process...
WOZCODE utilities. Subcommands — login, logout, status, settings, update, share, review (deep multi-persona code review), benchmark (WOZCODE vs vanilla comparison). Invoke as `/woz <subcommand>`, e.g. `/woz login` or `/woz review`.
> Use when the user wants to evolve an ML model/program through population-based search rather than a single sequential refine loop — a generational evolution where parallel proposers each apply one small SEARCH/REPLACE diff to a parent, scored by a cascade-evaluated training run, and children are kept in a MAP-Elites archive across islands (with migration + checkpointing) so diverse high performers survive. A finite, bounded-parallelism re-creation of AlphaEvolve/OpenEvolve, bent for ML autoresearch. Runs to a fixed compute budget or until interrupted. Not for the sequential single-thread autoresearch loops (one change → measure → keep/revert), and not for verifying a known bug or external claim — this is parallel, diversity-preserving search over a program.
> Receive and verify Hugging Face webhooks. Use when setting up Hugging Face webhook handlers, debugging X-Webhook-Secret verification, or handling events on models, datasets, and Spaces — repo updates, new commits and tags (repo.content), config changes (repo.config), discussions, Pull Requests, and discussion comments.
Automates the Karpathy LLM Wiki workflow: turns web, GitHub, and YouTube URLs into well-structured, citable, wikilinked pages with automatic linting and sourcing — invoke with /pin-llm-wiki
Take redis/adversarial-review from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.