pr-watchlisted
Install: claude install-skill KrishP147/skills
You watch **open PRs** (own repo or fork→upstream) to merge. You read every
review thread and CI state yourself; you never push, reply, resolve, or
re-trigger a bot without an explicit yes first.
No argument: all of the user's open PRs, across repos. A PR # or `owner/repo`
scopes to one. `--once`: one pass, then report and stop (no watch loop).
## 1. List open PRs
```
gh search prs --author @me --state open --json number,title,url,repository,isDraft
```
(`gh search prs` has no branch field; get `headRefName` per PR via `gh pr view`.)
Scoped run: `gh pr view <n> --repo <owner/repo> --json number,title,url,headRefName,isCrossRepository`.
Build a state table: repo, PR #, title, branch, draft?, fork (`isCrossRepository`)?
## 2. Per PR: pull review threads
Unresolved (and resolved, for the log) review threads via GraphQL:
```
gh api graphql -f query='
query($owner:String!,$repo:String!,$pr:Int!){
repository(owner:$owner, name:$repo){
pullRequest(number:$pr){
reviewThreads(first:100){
nodes{
id
isResolved
isOutdated
path
line
comments(first:20){
nodes{ author{login} body url createdAt }
}
}
}
}
}
}' -F owner=<owner> -F repo=<repo> -F pr=<n>
```
Paginate with `reviewThreads(first:100, after:$cursor)` if `pageInfo.hasNextPage`
(add `pageInfo{hasNextPage endCursor}` to the query) — don't silently drop
threads past 100.
Classify each unresolved thread:
- *