pr-feedbacklisted
Install: claude install-skill jjanczur/tyran
# PR feedback — closing the loop with a human reviewer
> The safest autonomy class, and the default, ends with a change on a branch
> and a person merging it. So the ordinary last step of this plugin's work is a
> pull request somebody reviews — and it was the one step with no protocol.
> `tyran:reviewer` governs our own internal review; this governs theirs.
## The three surfaces, and why one of them is a trap
GitHub keeps pull-request feedback in three separate resources:
| Surface | Endpoint | What lives there |
|---|---|---|
| Conversation | `/issues/{n}/comments` | Plain comments on the PR |
| Inline review comments | `/pulls/{n}/comments` | Anchored to a line of the diff |
| Reviews | `/pulls/{n}/reviews` | The submitted verdict **and its body text** |
**A review's body is not in the inline-comments collection.** Reviewers write
their summary there, and bots put whole findings there — anything that could not
be anchored to a changed line, which is exactly the "outside diff range" class.
Measured, against a public repository: `cli/cli` PR **#13944** has one review
carrying a written body and **zero** inline comments. An agent that reads only
`/pulls/{n}/comments` sees nothing on that PR and reports that there was nothing
to address. The report is true about what it looked at and false about what it
claims, which is the failure shape this whole plugin exists to refuse.
So: **fetch all three, paginated, before triaging any of them.** Print the
counts. `3 inline · 2 r