pr-council-review

pr-council-review is a skill for Claude Code, Codex from ffroliva/gflow-cli. It costs 125 tokens per session (11,496 once invoked), scanned A, original, MIT.

A review process that uses several focused reviewers to assess a pull request or feature branch. It checks correctness, code quality, security, tests, memory handling, and other areas relevant to the changed code.

In plain words
What is it for?
Use it before merging work to examine pull requests or local branches, including changes involving transports, data, command-line interfaces, documentation, authentication, behavior tests, or scripts.
Why use it?
It reduces the chance that one review misses problems in another area. The process combines the findings into one overall review decision.

Skill for Claude CodeCodex

Which agent this was written for is unclear — built for aider. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions subagents.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is && uv run python scripts/ci/check_doc_links.py \.

Good fit Use it before merging work to examine pull requests or local branches, including changes involving transports, data, command-line interfaces, documentation, authentication, behavior tests, or scripts.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/ffroliva/gflow-cli
agentmods
npx agentmods add skills/ffroliva/gflow-cli/pr-council-review

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pr-council-review

README.md
[![agentmods](https://agentmods.dev/badge/skills/ffroliva/gflow-cli/pr-council-review.svg)](https://agentmods.dev/skills/ffroliva/gflow-cli/pr-council-review)
Your own site
<a href="https://agentmods.dev/skills/ffroliva/gflow-cli/pr-council-review"><img src="https://agentmods.dev/badge/skills/ffroliva/gflow-cli/pr-council-review.svg" alt="Measured on agentmods" height="20"></a>
Per session 125 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 11,496 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to medium

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • medium Agent Snooping · line 136
    Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
    Fix: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
  • medium Rogue Agent · line 258
    Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
    Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00125 $0.11496
Opus 5 $0.00063 $0.05748
Sonnet 5 $0.00025 $0.02299
Haiku 4.5 $0.00013 $0.01150

Measured 2d ago against content hash 23efb2abdf0a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

pr-council-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/pr-council-review/SKILL.md · 484 lines

How it starts

The opening of the file, as written. The whole thing — 484 lines — stays where its author put it; the contents beside it link to each section on GitHub.

pr-council-review — PR Council Review skill

Council-driven PR review. Dispatches 6 baseline + N adaptive parallel reviewers, each scoped to one dimension, each invoking the relevant Claude Code specialized skill (e.g. security-review, code-review, verify), then synthesizes a single consensus verdict.

This skill is the canonical body. The Claude Code slash command at .claude/commands/gflow/pr-council-review.md is a thin wrapper that invokes this skill. Non-Claude tools (Antigravity / Codex / Cursor / Aider) can consume this SKILL.md directly via their own skill loaders.

Three modes:

  1. No argument → list open PRs ranked by review priority; user picks. (See § 1.)
  2. PR# argument → run the full council on that PR. (See § 2 onward.)
  3. Branch mode → run the full council on the current local feature branch (no PR yet). Invoked via the /gflow:branch-review wrapper. See § 8 for the PR→branch translation table and pre-flight.

Treat YELLOW as soft block — it is advisory in name only; clear it or dismiss it with a logged justification (§ 5 step 8).


0 · Pre-flight

All six checks are mandatory. Any failure (except step 6, which records a finding) halts before Phase 1/2.

  1. gh authenticated — run gh auth status. Non-zero exit → stop with: "gh is not authenticated. Run gh auth login and re-invoke."
  2. Inside the repo — assert AGENTS.md AND CLAUDE.md exist in the working directory.
  3. Resolve the argument:
    • Empty → jump to Phase 1 (Prioritize).
    • PR number → validate with gh pr view <N> --json number. If error → stop with the error verbatim.
  4. Draft check (PR# mode only) — if gh pr view <N> --json isDraft returns true, surface a banner citing memory [[draft-pr-merge-trap]]: "PR #N is DRAFT. Reviewing is fine, but do NOT merge a draft (the merge API can close it + delete the head ref). Run gh pr ready N first if you intend to merge. Continue review? (yes/no)". Ask the user before dispatching.
  5. Capture PR head ref + SHA (pin the review)head_branch=$(gh pr view <N> --json headRefName --jq '.headRefName') and head_sha=$(gh pr view <N> --json headRefOid --jq '.headRefOid'). Pin both to a REVIEWED_SHA variable and pass to every dispatched agent so the council's verdict is anchored to one commit. The local working tree is NOT on the PR head; all file reads must go through git show $REVIEWED_SHA:<path> (or git show origin/$head_branch:<path> if you fetched first). If the author pushes new commits during the review, the council still reports against REVIEWED_SHA; the synthesizer notes any divergence in Phase 5 step 5.
  6. Mechanical CI gate (D0 — non-LLM, runs BEFORE dispatch). The LLM dimensions reason about the diff; none of them run the repo's actual lint/format/link gates, so a whole-tree failure sails past the council (this happened on PR #269 — a latent ruff format failure in a file the diff only touched went green through 8 agents, then reddened CI and dragged SonarCloud new_coverage to 0). Run the exact CI gate commands (.github/workflows/ci.yml → Lint / Format check / Documentation links / Repo hygiene) against the reviewed tree:
    # Prefer running at REVIEWED_SHA. If HEAD is already there (reviewing your own
    # just-pushed PR, or branch-review mode), run in place:
    if [ "$(git rev-parse HEAD)" = "$REVIEWED_SHA" ]; then dir=.; else \
      dir=$(mktemp -d); git worktree add --detach "$dir" "$REVIEWED_SHA"; fi
    ( cd "$dir" && uv run ruff check src tests \
        && uv run ruff format --check src tests \
        && uv run python scripts/ci/check_doc_links.py \
        && uv run python scripts/ci/check_repo_hygiene.py )
    # if a worktree was created: git worktree remove --force "$dir" (Windows: prune later if locked)
    
    • Any non-zero → record a D0 — CI-mechanical RED. This is a hard blocker regardless of the LLM dimensions' verdicts; surface the failing command + output verbatim in the report and do NOT call the PR merge-ready. (Mirrors the SonarCloud-gate rule in the wrapper: the council must not bless a tree CI will reject.)
    • If running the gate is impractical (no uv, worktree add fails), fall back to gh pr checks <N> and inspect the test job's Lint/Format steps; if they are pending or failing, flag D0 as UNVERIFIED — must be confirmed green before merge, never as GREEN.
    • Unlike steps 1–5, a D0 failure does not halt — dispatch the LLM council anyway so its findings are gathered in one pass, then fold D0 into the Phase 5 verdict.

Read the full file on GitHub · 484 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago Changed · +11 lines 23efb2abdf0a
  2. 3d ago Changed · +25 lines 8dfce3d3b783
  3. 4d ago Changed · +11 lines f802fa1c09f4
  4. 8d ago First seen · 437 lines · 125 tokens per session scan A e2c2e750e09d

Subscribe to this mod's changes

pr-council-review is a skill published in the GitHub repository ffroliva/gflow-cli (171 stars, last pushed yesterday), licensed MIT. It adds 125 tokens to every session and 11,496 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

simplify

Review recent code changes for reuse, code quality, and efficiency, then directly apply straightforward cleanup improvements. Use when the user wants a post-implementation cleanup pass, pre-PR polish, or asks to simplify/refine recent changes. Invoke with /simplify or /simplify .

QwenLM/qwen-code · 63 tokens

triage

Gatekeep and review GitHub issues and pull requests for Qwen Code maintainers. Use for GitHub Action issue triage, PR admission checks, product-direction review, KISS-focused PR review, and staged bilingual GitHub comments.

QwenLM/qwen-code · 50 tokens

find-simplifications

Use for a periodic repo-wide sweep of qwen-code for accumulated excess surface — dead components and files, orphaned locale keys, exports nothing consumes, added-then-removed scaffolding — filing candidates on a tracking issue and landing only what a maintainer has said yes to. Repo-wide and evidence-first; every…

QwenLM/qwen-code · 103 tokens

autofix

Review and repair current local changes until they converge, or run Qwen Code Autofix issue and review workflows from GitHub Actions.

QwenLM/qwen-code · 30 tokens

code-clean

Cut dead code and over-long comments from termio's Swift, verifying every deletion against a build. Knows this repo's real failure mode (essay-length doc comments, not restated-code slop) and periphery's four known false-positive shapes. Invoke when the user says 'clean dead code', 'clean up the comments', 'the…

termio-sh/termio · 110 tokens

assess-quality

Audit a Mendix project against best practices for naming, security, performance, maintainability and architecture, and report a scored result. Use when asked to evaluate project quality, run a pre-go-live health check, or get oriented in an unfamiliar app.

mendixlabs/mxcli · 54 tokens