review-pr
High-signal autonomous PR review posted under your account. A review you'd put your name on — precision over coverage.
Inputs. pr-url from the arg or the current branch's upstream PR. --manifest <path> switches the skill into manifest mode: it skips the generic reviewer fleet and independently verifies only the manifest's contract — it does not merely ground the fleet against author intent. Only in that mode, load references/MANIFEST_MODE.md for the verification mechanics; without --manifest, that reference is never read and review runs the generic review-code fleet. The skill does not auto-discover a manifest from any folder convention. --bundle <urls> plus PR-description linked-PR parsing (Depends on #N, Stack:, Co-changes:, GitHub PR URLs) provides cross-PR context for coupled changes. Resolve the PR, current head SHA, our prior GitHub reviews/comments/replies, open review threads, author commits, PR description, and linked-PR context before deciding what to do.
Self-marking. Posting under your own account means a human reviewer uses the same account, so authorship alone can't tell our automated comments from theirs. Stamp every body this skill posts — new finding comments, thread replies, the summary header, the approval body, and manifest-mode PASS/FAIL — with a trailing hidden marker <!-- manifest-dev:review-pr --> — a fixed literal string, byte-identical wherever review-pr runs (don't namespace-rewrite it per distribution, or comments posted by one host stop matching another's); GitHub strips it from the rendered comment but returns it through the API. This marker, not account authorship, is what makes a comment an automated review-pr comment: everywhere this skill says threads/comments we authored or replied to (or our prior reviews/comments) it means the ones carrying this marker, so an unmarked comment on our account reads as human and is left untouched. Manifest mode extends the marker with the criterion id (references/MANIFEST_MODE.md). Judgment-pass findings extend it with a judgment token — <!-- manifest-dev:review-pr judgment --> — so a prior judgment finding is distinguishable from an ordinary review-pr comment in both modes (the once-per-PR gate keys on this token). Comments predating this marker are unmarked and so now read as human — review-pr stops advancing its own pre-marker threads, which self-heals as new marked comments accrue.
One-Shot Pass
Every invocation, including non---loop, performs one complete PR-state advance:
- Advance our existing threads. For every unresolved thread we authored or replied to, run the per-comment verifier below. Post needed thread replies, resolve terminal threads, and leave genuinely pending threads open.
- Verify the change. Manifest mode (
--manifest): loadreferences/MANIFEST_MODE.mdand follow it to verify the manifest contract against the PR head — the generic reviewer fleet is skipped entirely. No-manifest mode: run the generic reviewer fleet over the review range — determine that range from durable GitHub state: if we have a prior review on this PR, use that review's commit/head SHA as the lower bound and reviewlast-reviewed-by-us..current-head; otherwise review the full PR diff. In both modes, the judgment pass (below) runs in parallel with the fleet/contract verification, gated to once per PR. In either mode, if the head is unchanged from our latest review, skip re-verifying the code only after thread advancement has run. - Post outcomes. Submit new surviving findings as a single GitHub review with decision
comment. Thread replies are posted on their existing threads, not as new review comments. End with the cycle summary below.
The one-shot pass is CI-shaped: it must make useful progress from only GitHub state and the current checkout. Do not rely on session memory such as last-reviewed-sha; derive it from our prior review/comment metadata and the PR history each run.
Per-Comment Verifier
For every unresolved thread we authored or replied to, spawn one verifier subagent. The subagent receives: