🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

adverse

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

adverse - npm Package Compare versions

Comparing version
0.2.0
to
0.2.1
+1
-1
package.json
{
"name": "adverse",
"version": "0.2.0",
"version": "0.2.1",
"description": "Multi-agent adversarial code review for any coding agent. Single model, three lenses, two rounds. Ships as both a CLI and a Claude Code Skill.",

@@ -5,0 +5,0 @@ "type": "module",

+15
-19

@@ -43,4 +43,18 @@ # adverse

Lives under [`skills/adverse-review/`](skills/adverse-review/). Inside Claude Code, ask for "adversarial review" / "adverse review" / "review my changes from multiple angles" and the skill takes over. Spawns reviewers via Claude Code's native Agent tool (no nested-auth issues, no subprocess overhead) and calls a small Node helper for the deterministic synthesis step.
The skill is in [`skills/adverse-review/`](skills/adverse-review/). One-liner install via [skills.sh](https://skills.sh/):
```bash
npx skills add addyosmani/adverse
```
That clones the repo, locates `skills/adverse-review/`, and installs it to `~/.claude/skills/adverse-review/` (or `.claude/skills/` with `--project`). Re-run to update. If you'd rather pin the exact subpath, `npx skills add https://github.com/addyosmani/adverse/tree/main/skills/adverse-review` works too. Or do it by hand:
```bash
git clone https://github.com/addyosmani/adverse.git ~/.adverse-source
mkdir -p ~/.claude/skills
ln -s ~/.adverse-source/skills/adverse-review ~/.claude/skills/adverse-review
```
Inside Claude Code, ask for "adversarial review", "adverse review of these changes", or "review my changes from multiple angles" — or hit `/adverse-review`. The skill handles scope detection (uncommitted changes vs branch diff vs full tree), spawns three reviewer subagents in parallel via Claude Code's native Agent tool (no nested-auth issues, no subprocess overhead), runs the cross-review round, and calls a small Node helper for the deterministic synthesis step. Needs `node` ≥ 20 on PATH; no `npm install`.
Both modes share the same `src/` core, so a finding the CLI flags is the same finding the Skill flags — no drift between the two.

@@ -133,20 +147,2 @@

## Skill usage (Claude Code)
The Skill is in [`skills/adverse-review/`](skills/adverse-review/). To install it into your Claude Code config:
```bash
# Symlink into your user skills directory
mkdir -p ~/.claude/skills
ln -s "$(pwd)/skills/adverse-review" ~/.claude/skills/adverse-review
# Or, install the package and link from there
npm install -g adverse
ln -s "$(npm root -g)/adverse/skills/adverse-review" ~/.claude/skills/adverse-review
```
Then in Claude Code: ask for "adversarial review" or "adverse review of these changes" or hit `/adverse-review`. The Skill handles scope detection (uncommitted changes vs branch diff vs full tree), spawns three reviewer subagents in parallel, runs the cross-review round, calls Node helpers for source collection and synthesis, and presents you with a summary plus pointers to the full report.
The Skill needs `node` (>= 20) on PATH but no `npm install` — its helper scripts under `scripts/` use stdlib only.
## The personas

@@ -153,0 +149,0 @@

@@ -8,3 +8,3 @@ #!/usr/bin/env node

const { values } = parseArgs({
const { values, positionals } = parseArgs({
options: {

@@ -15,2 +15,3 @@ round1: { type: 'string', multiple: true },

},
allowPositionals: true,
strict: true,

@@ -24,8 +25,11 @@ });

const inputs = values.round1 ?? values.round2 ?? [];
if (inputs.length === 0) {
process.stderr.write('combine: at least one --round1 or --round2 input is required\n');
const hasRound1 = values.round1 !== undefined;
const hasRound2 = values.round2 !== undefined;
if (hasRound1 === hasRound2) {
process.stderr.write('combine: provide exactly one of --round1 or --round2\n');
process.exit(2);
}
const inputs = [...(values.round1 ?? values.round2), ...positionals];
const combined = {};

@@ -32,0 +36,0 @@ for (const path of inputs) {