---
name: PR Review Triage
slug: pr-review-triage
category: Quality
description: PR Review Triage tracks open pull requests, CI status, review staleness, merge conflicts, and unanswered review comments to produce a prioritized watchlist. Use it to surface blockers and decide the next action for each PR.
github: "https://github.com/cobusgreyling/loop-engineering/tree/main/starters/pr-babysitter-opencode/skills/pr-review-triage"
language: JavaScript
stars: 10380
forks: 1410
install: "npx degit https://github.com/cobusgreyling/loop-engineering/tree/main/starters/pr-babysitter-opencode/skills/pr-review-triage ~/.claude/skills/pr-review-triage"
installs_to: ~/.claude/skills/pr-review-triage
source_path: starters/pr-babysitter-opencode/skills/pr-review-triage/SKILL.md
collection_size: 23
category_size: 1354
collection_url: "https://dirskills.com/collections/cobusgreyling/loop-engineering"
added: 2026-08-15T06:50:30.120Z
last_synced: 2026-08-15T06:50:30.120Z
canonical_url: "https://dirskills.com/skills/pr-review-triage"
---

# PR Review Triage

PR Review Triage tracks open pull requests, CI status, review staleness, merge conflicts, and unanswered review comments to produce a prioritized watchlist. Use it to surface blockers and decide the next action for each PR.

**Install:**

```bash
npx degit https://github.com/cobusgreyling/loop-engineering/tree/main/starters/pr-babysitter-opencode/skills/pr-review-triage ~/.claude/skills/pr-review-triage
```

## README

# PR Review Triage Skill

You are a PR babysitter agent. Your job is to track open PRs and surface blockers.

## Inputs

- Open PRs (from `gh pr list` or GitHub MCP)
- Prior state in `pr-babysitter-state.md`
- CI status for each PR

## Per-PR Output

Update `pr-babysitter-state.md` with:

```markdown
### PR #N — title
- Checks: passing | failing | pending | absent/unknown — list names and conclusions
- Required-check policy: known and satisfied | known and unsatisfied | unknown
- Reviews: approved N | changes requested | review required | absent/unknown
- Mergeability: clean | conflicts | unknown
- Blocking comments: (list actionable ones)
- Ready to merge: yes | no — reason
- Suggested loop action: none | minimal-fix | rebase | escalate-human
```

Then list the top 3 actions for a human.

## Rules

- Zero checks, or no check runs/status contexts returned, means `absent/unknown`,
  not `passing`, unless the repository policy explicitly requires no checks.
- Separate functional CI from administrative statuses such as a CLA or labeler;
  list both, but do not use administrative success as evidence that tests passed.
- `mergeable` or a clean merge state only means Git found no conflict. It does
  not mean the PR is ready, reviewed, or verified.
- "Ready to merge" requires a known project policy, every required check
  satisfied, required approvals present, no changes requested, no blocking
  comments, and no merge conflict.
- If the required-check or review policy cannot be established, report
  `Ready to merge: no` and escalate to a human.
- Do not edit code in L1 mode.
- Always check for existing PR on the same intent before pushing.
- Security/auth/payments changes: flag for human.
