← Files GH Review LoopARCHIVED FILE

skills/gh-review-loop/references/reviewer-selection.md

2.47 KB · Oct 3, 2026 · 06:35 UTC

↓ Download file

# Reviewer selection detail

Load this on a first run for a PR (no persisted reviewer), when discovery returns anything but a single confirmed candidate, or when the user asks to switch/reset the reviewer. The happy path (persisted reviewer reused silently) is in SKILL.md.

## First-run prompt flow

One configured reviewer bot per PR. First run with no persisted reviewer is prompt-first:

1. Run `fetch_gemini_threads.py --list-reviewers --format json`.
2. If candidates are returned, ask the user to confirm/choose, then persist with
   `--reviewer <login> --reviewer-source confirmed [--reviewer-name <name>] [--review-trigger-mention <mention>]`.
3. Zero candidates on a fresh PR → the selection returns `source: "none_configured"`, `configured: false`. Do not treat the accompanying `suggestion` as a choice already made. Offer: **Ping the suggested reviewer** (`@codex review` — reviews only on request, so accepting starts cycle 0), **Pick another reviewer** (any known vendor, including Gemini Code Assist, or a bot whose login + mention the user supplies), or **None** (stop with "No AI reviewer threads found on this PR."). Never wait on a reviewer the user did not choose — an uninstalled reviewer is indistinguishable from a slow one.
4. `partial: true` → do not claim no reviewer exists; ask the user or retry discovery.

Switch with `--reviewer`; rediscover with `--reset-reviewer`.

When a JSON fetch reports `reviewerSelection.confirmation_required: true`, stop before edits or re-review requests and run the prompt flow. `source: default_unconfirmed` is not a confirmed selection.

## Known reviewers

| Reviewer | Login | Trigger posted | Priority format | Reviews unprompted |
|---|---|---|---|---|
| Gemini Code Assist | `gemini-code-assist` | `@gemini-code-assist please review the latest changes.` | `![high]` alt text | yes |
| Codex | `chatgpt-codex-connector` | exactly `@codex review` | `![P0]`–`![P3]` badges | **no** |

Codex priorities normalize to the shared scale (P0→critical … P3→low), so `--min-severity` works unchanged. Codex may put findings in the review body with no inline thread; the fetcher surfaces those and drops them when a newer Codex review supersedes them. Gemini's consumer app shut down 2026-07-17 — if a user picks Gemini and no threads ever arrive, say that instead of waiting out the timeout. Other discovered bots work, but the loop only re-asks them when a safe mention is supplied via `--review-trigger-mention`; never guess `@login` for an unknown bot.

SHA-256: 2fb372ea896f7dbd3cd7282de4a95e932d7eefa9abe9def5ba3cc27df7451d2c