Quorum Review banner
yuting0624 yuting0624

Quorum Review

AI community

Description

Cross-model pull request review on Gemini Enterprise Agent Platform. Gemini and Claude read each diff independently, on one Google Cloud credential.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

🗳️ quorum-review

**Two models review your pull request. Neither one sees the other's work.**

Where they agree independently, that is the result. Where only one found something, the other is asked to judge it.

**Gemini and Claude both run on Gemini Enterprise Agent Platform** — Google Cloud's platform, formerly Vertex AI — off **one credential**. One federation to set up instead of two, no API keys, one invoice.

[![CI](https://github.com/yuting0624/quorum-review/actions/workflows/ci.yml/badge.svg)](https://github.com/yuting0624/quorum-review/actions/workflows/ci.yml) [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE) ![Gemini on Gemini Enterprise Agent Platform](https://img.shields.io/badge/Gemini-Agent%20Platform-4285F4?logo=googlegemini&logoColor=white) ![Claude on Gemini Enterprise Agent Platform](https://img.shields.io/badge/Claude-Agent%20Platform-D97757?logo=anthropic&logoColor=white)


![hero image](hero.png)

📐 Built to be read as well as run

This started as a worked example of running Gemini and Claude together on Gemini Enterprise Agent Platform, and it still reads like one: the arrangement is the interesting part, and [`providers/vertex.py`](quorum_review/providers/vertex.py) is written to be understood rather than skimmed.

It is also in use, on this repository, on every pull request — including the ones that change it, and on [antigravity-for-claude-code](https://github.com/yuting0624/antigravity-for-claude-code), a Claude Code plugin that arranges the same two models the other way round: Claude conducting, Gemini executing. Everything in 1.7.0 came from adopting it there — the fork guard that reads as though it excludes forks and does not on two triggers, the summary comment that cancelled the run that posted it, and the `pr-number` line that four independent model reviews read as a bug.

**Issues and pull requests are welcome and g