Watch a pull request
SkillDev toolsWait for a pull request's checks to settle, then report what passed and what failed. Blocks in one call rather than polling, so a wait costs one turn instead of one per look. Use this whenever the user asks to watch a pull request or wait on CI, and whenever a workflow needs that answer before it can go on.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Watch a pull request skill
What this skill tells your AI
The instructions your AI receives, as published by tbhb/vale-ai-tells in .claude/skills/watch-pr/SKILL.md and read by ahel’s review.
Wait for the checks on a pull request to settle, then say what happened. This skill ends when the checks stop moving. Fixing what failed belongs to fix-pr, and merging belongs to merge-pr.
A guard hook runs alongside and refuses the watching forms this skill wraps, so a hand-rolled poll can't quietly replace the watcher. A plain gh pr checks for a one-off look stays open.
Which pull request
$ARGUMENTS names the pull request number when the caller knows it. An empty value means whatever is open for the current branch.
Step 1: watch
Arm the watcher through the Monitor tool, which turns each line the script prints into a notification:
Monitor({
command: "bash .claude/skills/watch-pr/scripts/watch-checks.sh <number>",
description: "checks on pull request <number>",
timeout_ms: 1800000,
persistent: false,
})
Omit the number to use the current branch's open pull request.
Monitor is the right tool rather than a blocking call, because the script emits one line per check the moment that check settles. A failure arrives while the slower jobs are still going, so the diagnosis starts earlier and no turn goes to waiting. The script exits once nothing is pending, which ends the watch by itself.
Never poll gh pr checks in a loop of your own. Each look costs a turn and reports a state that has already moved on.
The lines to expect:
WATCHING #<number>once, at the startPASS <job>,SKIP <job>, orFAIL <job> <run link>, one per check as it settlesALL GREEN #<number>,FAILED #<number> with N failing check(s), orTIMEOUT #<number>to close
Running the same command through Bash also works and blocks until the same ending, with the exit code reporting the outcome: 0 all passed, 1 something failed, 2 the wait ran out. Prefer Monitor. Reach for the blocking form only where the next step can't start until the answer arrives.
Override the bounds through the environment when a run is unusually slow. PR_CHECKS_TIMEOUT sets the whole wait and PR_CHECKS_INTERVAL the poll spacing, both in seconds. Keep timeout_ms past PR_CHECKS_TIMEOUT so the script reports its own timeout rather than dying at the tool's.
Step 2: report
Say which checks failed and hand back. Name the pull request, the failing jobs, and the run links the script printed.
Where the caller asked only to watch, stop here. Where the caller asked for a fix, invoke fix-pr with the same number. That skill reads the logs and names the local task reproducing each failure.
A timeout isn't a failure. Say the checks were still running, give the elapsed bound, and let the caller decide whether to wait again.
Preconditions
ghinstalled and authenticated- a pull request open for the branch, or a number in
$ARGUMENTS
The script checks both and stops with a plain message when either is missing.
Signals
- GitHub stars
- 92
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
watch-pr-tbhb- Source
- github.com/tbhb/vale-ai-tells