Tbd
jlevy/strif
Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents.
Reviews the current branch's diff with two different model families, has each try to refute the other's findings and reports the survivors by confidence.
$ npx skills add basicmachines-co/basic-memory --skill adversarial-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install basicmachines-co/basic-memory adversarial-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/adversarial-review .claude/skills/adversarial-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "adversarial-review" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-review into .claude/skills/adversarial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adversarial-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add basicmachines-co/basic-memory --skill adversarial-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install basicmachines-co/basic-memory adversarial-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/adversarial-review .agents/skills/adversarial-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adversarial-review" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-review into .agents/skills/adversarial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adversarial-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add basicmachines-co/basic-memory --skill adversarial-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install basicmachines-co/basic-memory adversarial-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/adversarial-review .cursor/skills/adversarial-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "adversarial-review" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-review into .cursor/skills/adversarial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adversarial-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/basicmachines-co/basic-memory.git --path .agents/skills/adversarial-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add basicmachines-co/basic-memory --skill adversarial-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install basicmachines-co/basic-memory adversarial-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/adversarial-review .gemini/skills/adversarial-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "adversarial-review" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-review into .gemini/skills/adversarial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adversarial-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install basicmachines-co/basic-memory adversarial-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add basicmachines-co/basic-memory --skill adversarial-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/adversarial-review .github/skills/adversarial-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "adversarial-review" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-review into .github/skills/adversarial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adversarial-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add basicmachines-co/basic-memory --skill adversarial-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install basicmachines-co/basic-memory adversarial-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/basicmachines-co/basic-memory.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/adversarial-review .opencode/skills/adversarial-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "adversarial-review" agent skill from https://github.com/basicmachines-co/basic-memory/tree/main/.agents/skills/adversarial-review into .opencode/skills/adversarial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adversarial-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
adversarial-reviewReviews the current branch's diff with two different model families, has each try to refute the other's findings and reports the survivors by confidence.
This skill sets up a cross-vendor code review of your current branch. The running agent reviews the diff itself, then launches the other model family as a fresh subprocess, `codex exec` when you are in Claude Code and `claude -p` when you are in Codex, so the second pass shares no context. Each reviewer then tries to refute the other's findings, and a finding's confidence depends on whether it survives that cross-examination.
The aim is to avoid two weaknesses of solo LLM review: a model going easy on its own work, and confident false alarms. You can set `BASE`, the ref to diff against (default main), and `SCOPE`, a pathspec that narrows the review. The diff command is built once as an argument array so paths with spaces survive. Prompts and JSON schemas for findings and verdicts ship with the skill, and the review is report-only: it never applies fixes.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cb7407f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
codexclaudejustFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cross-Model Adversarial Code Review loads about 2k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 850 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from basicmachines-co/basic-memory at commit cb7407f, republished under its MIT licence (© basicmachines-co). 850 words, ~1,962 tokens.
.claude/skills/adversarial-review/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Two reviewers from different model families — Claude and Codex/GPT — review the same diff independently, then each tries to refute the other's findings. A finding's confidence comes from whether it survives that cross-examination. This kills the two failure modes of solo LLM review: self-ratification (a model won't critique its own work) and confident false positives.
This skill runs from either Claude Code or Codex. First, identify which model family you are (Claude or Codex/GPT). Then:
The CLI for "the other model":
| If you are… | Invoke the other via… |
|---|---|
| Claude | codex exec (GPT) |
| Codex | claude -p (Claude) |
Everything else in the flow is symmetric. Resolve the prompts/ and schemas/ paths
below relative to this skill's own directory (where this SKILL.md lives).
Two independent, optional inputs:
BASE — the ref to diff against. Default main.SCOPE — a pathspec to narrow the review (e.g. src/basic_memory). Default: none (whole diff).These are separate: a ref and a pathspec are not interchangeable. Build the canonical diff
command once in preflight and reuse it everywhere below — never re-spell the diff inline
(the scattered, inconsistent spelling is what broke earlier). Build it as an argv array,
not a string, so a $SCOPE containing spaces or glob characters survives intact:
BASE="${BASE:-main}"
DIFF=(git diff "$BASE...HEAD") # argv array — never a scalar string
[ -n "$SCOPE" ] && DIFF+=(-- "$SCOPE") # pathspec stays one argument even with spaces
DIFF_STR=$(printf '%q ' "${DIFF[@]}") # shell-quoted rendering, for embedding in a promptTo run it, use "${DIFF[@]}" (quoted, no word-splitting). To embed it as text inside
a subprocess prompt, use $DIFF_STR.
SKILL_DIR to the directory this SKILL.md lives in. Canonical location is
.agents/skills/adversarial-review (the shared agent-skills store); Claude Code reaches it
via the .claude/skills/adversarial-review symlink, Codex via its own skills path. The
prompts/ and schemas/ subdirs are siblings of this file in every case.codex if you're Claude, claude if you're
Codex). If it's missing, tell the user the panel falls back to single-model (which loses
the cross-vendor benefit) and ask whether to proceed or stop."${DIFF[@]}". If it prints nothing, report "nothing to review against $BASE"
(mention $SCOPE if set) and stop.RUN=$(mktemp -d) — scratch dir for the other model's output. Transient, never committed.
No persisted artifacts, no state file.Models are statistically blind to negation ("never do X"). Enforce mechanical house rules with tools, not prompts, and treat hits as high-confidence facts (reported separately from model findings):
just lint and just typecheck if the diff touches src/.getattr(.*,.*, defaults, bare
except: / except Exception: pass, function-scope imports.Both reviewers get the same brief: prompts/review.md + the repo's CLAUDE.md house rules,
reviewing the diff from "${DIFF[@]}". Both emit findings matching schemas/findings.schema.json.
Your native pass: review as yourself, following prompts/review.md. Hold your findings
as that JSON shape.
The other model's pass — run, from the repo root, the row that matches you:
Always redirect codex stdin from /dev/null — if stdin is a pipe (e.g. the call gets
backgrounded), codex exec blocks "Reading additional input from stdin..." and fails.
# You are Claude → run Codex:
codex exec -s read-only \
--output-schema "$SKILL_DIR/schemas/findings.schema.json" \
-o "$RUN/other_findings.json" \
"$(cat "$SKILL_DIR/prompts/review.md")
Review the diff: $DIFF_STR" </dev/null
# You are Codex → run Claude (read-only via plan mode; parse the JSON block it returns):
claude -p --permission-mode plan --output-format json \
"$(cat "$SKILL_DIR/prompts/review.md")
Review the diff: $DIFF_STR
Return ONLY a JSON object matching this schema:
$(cat "$SKILL_DIR/schemas/findings.schema.json")" </dev/null > "$RUN/other_raw.json"
# claude --output-format json output shape varies by CLI version: it may be a JSON ARRAY
# of event objects, OR a single result object. Normalize before reading: if it's an array,
# take the element with type=='result'; otherwise use the object as-is. Then read its
# .result string, strip the ```json fence if present, and parse that.
# (Verified empirically: the CLI in this environment emits the array form.)Runtime note for Codex orchestrating:
claude -pneeds network access, which Codex's default sandbox blocks. Run it from a Codex session whose project is trusted with network allowed (or approve theclaudecall when prompted). Keep Codex's own sandbox on — do not bypass it just to reach the network.
Tag each finding with its origin (claude / codex).
Each model tries to refute the other's findings, per prompts/refute.md
(verdicts match schemas/verdicts.schema.json).
prompts/review.md for prompts/refute.md, append your findings JSON and $DIFF_STR
so it judges against the right base and scope, and for Codex use
--output-schema "$SKILL_DIR/schemas/verdicts.schema.json").Match verdicts to findings by id.
Merge, dedupe (same file + overlapping lines + same root cause = one finding), assign confidence from provenance:
Rank by severity × confidence. Present a compact table: severity | confidence | file:line | claim | found-by / upheld-or-refuted-by. Expand the high-confidence ones with why and
any suggested fix.
End by asking which findings, if any, to fix. Do not edit code until the user picks. Convergence between the models is not correctness — your job is to surface a ranked, cross-examined list, not to declare the branch clean.
© basicmachines-co, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in .agents/skills/adversarial-review of basicmachines-co/basic-memory.
Open the folder on GitHubat commit cb7407f
Cross-Model Adversarial Code Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cross-Model Adversarial Code Review this skillbasicmachines-co/basic-memory | 4.1k | — | ~2k | Automated safety check: Pass | MIT | |
| Tbdjlevy/strif | 131 | — | ~3.5k | Automated safety check: Pass | MIT | |
| O2 Review Loopopenobserve/openobserve | 22k | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| Reviewatelier-fashion/adlc-toolkit | 171 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT |
jlevy/strif
Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents.
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
atelier-fashion/adlc-toolkit
Multi-agent code review covering correctness, quality, architecture, test coverage, and security
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
basicmachines-co/basic-memory
Views, sets, unsets and validates cmux settings in ~/.config/cmux/cmux.json with a helper script that checks keys against the schema.
basicmachines-co/basic-memory
End-user control of cmux topology and routing (windows, workspaces, panes/surfaces, focus, moves, reorder, identify, trigger flash). Use when automation needs…
basicmachines-co/basic-memory
Opens markdown files in a formatted cmux panel beside the terminal that re-renders on every change, handy for plans and task lists.
basicmachines-co/basic-memory
Keeps agent actions scoped to the cmux workspace and terminal that invoked it, and lays out pane and surface commands that avoid disrupting the user's own focus.
basicmachines-co/basic-memory
Produces PR, changelog and two-week retro images for the Basic Memory repository from evidence in PR bodies, saved to fixed paths under docs/assets/infographics.
basicmachines-co/basic-memory
Adds Pydantic Logfire tracing, logging and metrics to Python, JavaScript or TypeScript and Rust projects, with the correct setup order and library extras.
Works with
Categories
Reviews the current branch's diff with two different model families, has each try to refute the other's findings and reports the survivors by confidence. This skill sets up a cross-vendor code review of your current branch. The running agent reviews the diff itself, then launches the other model family as a fresh subprocess, `codex exec` when you are in Claude Code and `claude -p` when you are in Codex, so the second pass shares no context.
Cross-Model Adversarial Code Review fits situations like: asking for a second-opinion review from a different model before merging; wanting high-confidence findings from a branch diff; reviewing only one directory of a large change.
Run `npx skills add basicmachines-co/basic-memory --skill adversarial-review -a claude-code`. Or copy the skill folder (.agents/skills/adversarial-review in basicmachines-co/basic-memory) into .claude/skills/adversarial-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add basicmachines-co/basic-memory --skill adversarial-review -a codex`. Or copy the skill folder (.agents/skills/adversarial-review in basicmachines-co/basic-memory) into .agents/skills/adversarial-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add basicmachines-co/basic-memory --skill adversarial-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adversarial-review, .gemini/skills/adversarial-review, .github/skills/adversarial-review and .opencode/skills/adversarial-review in your project.
Going by SKILL.md and its folder, Cross-Model Adversarial Code Review needs the command-line tools its instructions call (codex, claude and just). Our summary lists: Both the Claude Code and Codex command line tools; A git repository with a branch to compare against main.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cross-Model Adversarial Code Review is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cross-Model Adversarial Code Review: Tbd (jlevy/strif, 131 stars), O2 Review Loop (openobserve/openobserve, 22k stars), Review (atelier-fashion/adlc-toolkit, 171 stars) and Clawteam (win4r/ClawTeam-OpenClaw, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
basicmachines-co (a GitHub organization) maintains it in basicmachines-co/basic-memory, which has 4,115 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 7, 2026.
Source: basicmachines-co/basic-memory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.