Skip to content

Documented review-gate commands are satisfiable without a reviewer #211

Description

@lamemustafa

What

Three places invoke the review gate and none of them states the condition an agent actually needs before merging. The shortest form is the one in the AGENTS.md commands block, which is the one that gets copied.

Site Form What it accepts
AGENTS.md:22 --strict-head-review any review at the head, including your own thread replies
docs/AGENT_REVIEW_RECTIFY.md:134 --strict-head-review --required-review-author ... --wait-head-review-ms 180000 --allow-missing-head-review waits 3 min, then proceeds regardless
.github/workflows/review-gate.yml:92 neither flag head-review check off entirely

Why it matters

Replying to a review thread creates a review record attached to whatever the head is at that moment. So dispositioning the previous round of findings is by itself enough to satisfy --strict-head-review.

Observed on #210: the gate passed two minutes after a push. Five reviews existed at the head — all of them replies posted while dispositioning the previous round. The only genuine reviewer's latest review was on the previous head. Adding --required-review-author made the same gate correctly report No review was found for current head.

The perverse property is that the tighter the review discipline, the more reliably the condition is met by the person being reviewed.

Proposed

  • AGENTS.md:22 carries the full form: --strict-head-review --required-review-author chatgpt-codex-connector.
  • docs/AGENT_REVIEW_RECTIFY.md:134 drops --allow-missing-head-review; a timeout there should fail rather than proceed, since the whole point of --wait-head-review-ms is to wait for the thing the waiver then ignores.
  • Consider defaulting --required-review-author to DEFAULT_PR_FINDING_AUTHOR when --strict-head-review is passed, so the safe form is the short one. The script already computes prFindingAuthor that way for findings; the head-review check is the one place it does not.

The CI workflow is a separate question and probably correct as-is — a status check cannot block waiting on an asynchronous reviewer, and branch protection pairs it with native conversation resolution.

Not in scope

Loosening any existing check. This is about a condition that is weaker than it reads, not about a condition that is too strict.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions