review
Pre-Landing Review
Review the requested change for real defects and missing acceptance evidence. Default to report-only for a review request. Apply fixes only when requested or already authorized; never infer commit, push, merge or PR permission from a review invocation.
Pin scope
Identify the PR target or explicitly supplied base, then verify the ref exists. Use repository configuration/default branch only as a fallback, and disclose uncertainty. If needed and available, ../../../scripts/detect-base-branch.sh resolves a candidate; its fallback is not proof. Resolve this path from the loaded skill directory, not an assumed Claude environment variable.
Fetch the base once if network access is available and freshness matters. Record base SHA, HEAD and merge-base. Review git diff <merge-base> <head> for committed branch changes, not a diff against a newer base tip. Use review-scope.py with --base <verified-ref> to capture scope and fingerprints. Add --include-local only for requested working-tree changes; its local patch and untracked files are separate evidence. A base-branch name does not exclude local review. No changes in the requested scope means there is nothing to review.
Preserve unrelated dirt. Snapshot the checkout before review; if HEAD or scoped files change during review, stop, identify the writer and re-pin affected evidence. Do not revert another writer's changes.
Review
Once scope is pinned, start work that needs only the snapshot before reading the diff. Dispatch any required independent reviewer (see below). Run the repository's existing test and lint commands in the background when they have no external effects. Run one test suite at a time, because suites share ports, databases and fixtures; static checks such as lint, type checks and static analysis share none of these, so start them alongside the test suite. For a small diff with no required reviewer, the background checks are the only parallel work.
Never run a check in the foreground while the same check is running in the background, and never poll its log in a loop; continue reviewing and read the result when its completion notice arrives. Issue independent reads and searches together in one step rather than one per turn.
Read checklist.md; report missing checklist coverage if unavailable. Its diagnostic rules and suppressions apply, while this entrypoint controls scope, action permissions and verdicts.