← ClaudeAtlas

pr-feedbacklisted

Work a reviewer's comments on a pull request to the end. Enumerate all three comment surfaces before triaging any, give every comment a disposition - fixed, declined with a reason, or ticketed - push before you reply, and resolve only what you addressed. Use when a PR comes back with review feedback or a red check.
jjanczur/tyran · ★ 79 · Code & Development · score 78
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