Skip to content

Proposed work: add review-bounty candidate selection report #693

@xyjk0511

Description

@xyjk0511

This is not a live MRWK bounty. Opening this issue does not reserve MRWK,
create a payout, or make implementation work claimable.

Related proposed-work bounty: #649

Problem

Review-bounty rounds such as #643 ask contributors to review open MergeWork PRs
with current-head evidence. The hard part is not only writing the review; it is
choosing a PR where a new review is actually useful and likely non-duplicate.

During the current round, that candidate selection is still mostly manual:

  • some PRs are authored by the would-be reviewer and should be excluded;
  • some PRs already have a current-head human review from the same reviewer;
  • some PRs already have enough duplicate human reviews and are waiting for the
    author to update the branch;
  • some PRs are dirty, mrwk:needs-info, or missing the standard quality
    workflow, so the useful next action is not another review comment;
  • some PRs need a fresh current-head review only after headRefOid changes.

Without a compact candidate report, agents can waste review-bounty capacity on
repeating existing comments, and maintainers have to explain why the review was
not useful enough for payment.

Evidence

Current live examples from ramimbo/mergework on 2026-05-31:

The existing queue-health tooling reports merge instability, needs-info state,
non-live bounty references, duplicate bounty scopes, and related queue risks.
It does not answer the review-bounty-specific question: "For this reviewer,
which open PRs are still worth a fresh evidence-backed review right now?"

Proposed work

Add a read-only review-bounty candidate report, either as a small new script
such as scripts/review_bounty_candidates.py or as a focused mode in
scripts/pr_queue_health.py.

The report should accept a reviewer login and summarize open PRs into advisory
states such as:

  • candidate_for_fresh_review
  • self_authored
  • already_reviewed_current_head_by_reviewer
  • already_has_sufficient_current_head_human_reviews
  • waiting_for_author_update
  • dirty_or_conflicted
  • missing_standard_quality_check
  • needs_info

For each PR, include the PR number, title, author, current headRefOid, merge
state, relevant labels, standard quality-check status, latest useful human
review state/commit, and a short reason.

The report should stay advisory. It should not auto-comment, auto-label,
auto-close, accept claims, reject claims, create bounties, or pay anything.

Expected value

This gives maintainers and reviewers a clear preflight before review-bounty
work starts. It reduces duplicate reviews, makes "wait for author update" cases
obvious, and helps contributors spend review time on PRs where current-head
evidence is still useful.

It also gives maintainers a reusable way to explain review-bounty acceptance:
the review was for an eligible current-head candidate, or it was not.

Reference tier

100-500 MRWK: useful issue, test, docs page, small bugfix

Possible acceptance criteria

  • A read-only report can be generated for open PRs with a --reviewer LOGIN
    option.
  • The report excludes or downgrades PRs authored by that reviewer.
  • The report detects when that reviewer already reviewed the current head.
  • The report distinguishes "needs fresh review" from "waiting for author update"
    when existing current-head reviews already identify blockers.
  • The report surfaces dirty/conflicted PRs, mrwk:needs-info, and missing
    standard quality-check status as reasons a new review may not be the best
    next action.
  • Markdown and JSON output are supported, or one output plus tests if
    maintainers want a smaller first slice.
  • Existing queue-health behavior remains unchanged unless maintainers choose to
    integrate this as a mode.

Evidence or tests required

  • Fixture test for a PR authored by the configured reviewer.
  • Fixture test for a PR already reviewed by the configured reviewer at the
    current head.
  • Fixture test for a PR whose latest human review is stale because the head SHA
    changed.
  • Fixture test for a PR with enough current-head human reviews and no author
    update yet.
  • Fixture test for dirty/missing-standard-CI/needs-info advisory reasons.
  • ruff check, ruff format --check, focused pytest, and docs smoke if docs
    are touched.
  • Optional live smoke against ramimbo/mergework that produces only read-only
    output.

Duplicate search

Related but distinct:

I did not find an existing proposed-work issue whose main output is a
reviewer-specific list of open PRs that are currently worth fresh #643-style
review-bounty work.

Out of scope

  • No automatic GitHub comments, labels, claim submissions, bounty creation,
    acceptance decisions, or payments.
  • No subjective review-quality scoring beyond objective freshness and queue
    signals.
  • No treasury proposal, wallet, balance, proof, ledger, exchange, bridge, or
    cash-out behavior changes.
  • No private data, credentials, private security details, or fabricated payout
    claims.

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposed-workProposed work intake, not a live MRWK bounty

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions