Skip to content
Back to skills

Ai Jury

ASecurity

Convene a cross-vendor multi-agent review jury on a diff, PR, or issue and produce one report — Claude Code, Codex, hosted model APIs and/or a free local/open-weight model (Antigravity only when seated by name) each review independently, cross-examine each other, verify, and reach one verdict — a chair's synthesis or a panel vote. Handles the whole flow end to end (scaffold config if needed → review → report → summarize). Use when the user wants a multi-model review of a pull request, a diff,...

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 28, 2026
ai-agentsrustgogitapisecurity

Works with

  • claude code
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 5, 2026

npx -y skills add berkayturanci/ai-jury --skill ai-jury --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ai Jury?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ai Jury
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/berkayturanci-ai-jury/badge)](https://www.skillsdirectory.com/skills/berkayturanci-ai-jury)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: ai-jury
description: Convene a cross-vendor multi-agent review jury on a diff, PR, or issue and produce one report — Claude Code, Codex, hosted model APIs and/or a free local/open-weight model (Antigravity only when seated by name) each review independently, cross-examine each other, verify, and reach one verdict — a chair's synthesis or a panel vote. Handles the whole flow end to end (scaffold config if needed → review → report → summarize). Use when the user wants a multi-model review of a pull request, a diff, an issue, or the current branch, or says "review jury", "convene the jury", or "cross-model review".
---

# AI Jury

Convene a panel of reviewers from **different vendors** to review the same change,
debate each other's findings, and produce one consolidated verdict. A seat is a
vendor's own coding-agent CLI, or a hosted-API or local model that the jury prompts
over HTTP.

## Prerequisites

- `ai-jury` is installed and `jury` is on PATH
  (`pipx install ai-jury` or `pip install -e /path/to/ai-jury`).
- At least one reviewer: an agent CLI of the built-in panel (`claude` and/or `codex`), a
  free, offline **local / open-weight** model via Ollama (configured as a
  `vendor = "local"` agent), **or** a hosted-API seat with its key. `agy` (Antigravity) is
  opt-in: it cannot be confined for untrusted diffs, so it runs only when a `jury.toml`
  seats it by name, and then every run warns and `--strict` refuses it.
- Missing/unreachable agents are skipped and the jury runs with whoever is available —
  but a panel left with fewer vendors than its config names exits `3` (see below).
- `gh` is authenticated for `--pr` / `--post`.
- First time in a repo? Run `jury init` to scaffold a `jury.toml` (it detects
  installed agents and local models).

## How to run

Pick the form that matches the request:

| Intent | Command |
|:--|:--|
| Review a GitHub PR | `jury --pr <number>` |
| Review and post the verdict as a PR comment | `jury --pr <number> --post` |
| Review the current branch vs default | `git diff origin/HEAD... \| jury --diff-file -` |
| Review a diff file | `jury --diff-file path/to/changes.diff` |
| Single-round (no debate) | add `--rounds 1` |
| Offline smoke test (no live CLIs) | `jury --mock --diff-file examples/sample.diff` |

Stream progress goes to stderr; the markdown report goes to stdout (or `-o file.md`).

## Parameters (the ones you'll reach for)

Grouped by intent — the common flags and what they do. The full, exhaustive
reference (every flag + `jury.toml` key, with values and examples) is
[`docs/parameters.md`](../../docs/parameters.md).

**Choose what to review** (one of):
- `--pr <n>` — a GitHub PR (via `gh`); `--repo owner/name` to target another repo.
- `--issue <n>` — a GitHub issue, reviewed for completeness/clarity with an issue-quality rubric (verdict READY / NEEDS-INFO / UNCLEAR); `--post` comments back via `gh issue comment`.
- `--diff-file <path>` / `--diff-file -` — a diff file, or stdin.

**Depth** (how hard to look):
- `--rounds {1,2}` — 1 = independent review only, 2 = + debate. Fixed value disables early-stop.
- `--verify` / `--no-verify` — run the chair's verification round (default on).
- `--auto` — risk-aware auto-depth: scale rounds/verify to the diff.
- `--chair <agent|rotate>` — who synthesizes the verdict.

**Output & how much to show:**
- `--format {markdown,json,sarif,keel-reviews}` — report format (default markdown).
  `keel-reviews` emits one review record per panelist (plus the chair) as a JSON array.
- `-o <file>` — write the report to a file instead of stdout.
- `--transcript` — full play-by-play (each agent's review, the debate, the chair's reasoning) instead of the summary.
- `--verbose` — summary **and** the full transcript in one document.
- `--live` — stream each step as it happens; add `--pr --post` to post each step to the PR live.

**Post to GitHub:**
- `--post` — post the report as one summary comment, on the PR (`--pr`) or on the issue (`--issue`) (`--post-mode phased` splits it into Round 1 / debate / decision).
- `--post-inline` — inline comments on located findings. `--label` — apply effort/risk/security labels. Both need `--pr`.

**Gate a merge (CI):**
- `--ci --fail-on critical,major` — exit `1` when a blocking finding remains.
- **Exit `3` is not a findings failure.** It means the panel fell short, for one of three
  reasons, and its verdict should not be reported as a review:
  - fewer than `min_vendors` distinct vendors (default 2) actually contributed a review,
    so the run is not cross-vendor consensus — re-run once the missing CLI is installed;
    `--no-min-vendors` accepts a single-vendor panel deliberately;
  - every seat that ran failed to return a result, so nothing was reviewed —
    `jury --doctor` names the usual cause (#849);
  - fewer reviews than `min_reviews` (`--min-reviews`, off by default) came back.
  It is checked on every run, with or without `--ci`, and outranks exit `1`.
- **Exit `2`** is a refusal before any review: bad arguments or config, `no usable
  agents`, `--strict` refusing a missing CLI or an unconfinable seat, or a bench too
  small for `min_reviews`.

**Scope & cost:**
- `--incremental` — only the diff since the last jury run on the PR.
- `--suggest-patches` — opt-in, inspectable fixes for verified findings (never auto-applied).
- `--cache` — reuse a cached outcome for an unchanged diff+config.

Run `jury --help` for the complete flag list, or `jury config show` for the effective config.

## End-to-end flow (setup → review → report)

When asked to "review" something, run the whole flow in one go — `jury` already
combines the review and the report, so you do not need separate steps for them:

1. **Ensure a config exists.** If there's no `jury.toml` in the repo, scaffold one
   non-interactively: `jury init --agents <detected>` (or `jury init --preset
   offline` for a free, local-only setup). If agent CLIs are already installed, this
   step is optional — `jury` falls back to its built-in panel (`claude` + `codex`; never
   `agy`, which needs a `jury.toml` naming it), and with neither CLI but a local model
   server up it auto-adds a local agent.
2. **Review and capture the report in one command:**
   - PR: `jury --pr <n> -o jury-report.md` (add `--post-summary` to also post it).
   - Branch/diff: `git diff origin/HEAD... | jury --diff-file - -o jury-report.md`.
   - Gate a merge: add `--ci --fail-on critical,major` (non-zero exit blocks).
3. **Summarize back** the verdict + consensus findings (see below), and point the user
   at `jury-report.md` for the full report.

Useful add-ons in the same run: `--incremental` (only changes since the last jury
run on a PR), `--suggest-patches` (inspectable fixes for verified findings),
`--format json|sarif` (machine-readable). `jury config show` prints the effective
config; `jury --doctor` checks readiness and suggests next steps.

## What to report back to the user

1. The **chair verdict** (APPROVE / COMMENT / REQUEST CHANGES) and its one-line reason.
2. The **consensus findings** (issues 2+ agents agreed on) with `path:line`.
3. Any **disputed** findings worth a human decision.

Do not re-run the jury more than twice for the same diff without new input — it
spends real tokens across every configured vendor.

## Configuration

Behavior is driven by `jury.toml` (rounds, chair, per-agent model/timeout/flags).
Override per run with `--rounds`, `--chair`, or `--config <path>`.

## Integration notes

Drop this skill into a project's `.claude/skills/` (Claude Code) and/or expose the
`jury` CLI in CI. It composes with existing review workflows: run the jury first
for a cross-vendor pass, then let the project's own reviewers act on the consensus
findings.

## Scope / non-goals

This skill is the reusable, project-agnostic layer: convene the jury and report the
verdict. Project-specific workflow behavior — ship gates, branch policies, custom
reporting, or wiring into a particular repo's review process — belongs in a downstream
wrapper, **not** in this package. Keep this skill portable across projects.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.