Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bitflight-devops/skilllint --skill receiving-pr-reviewsgit clone --depth 1 https://github.com/bitflight-devops/skilllintWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bitflight-devops/skilllint/receiving-pr-reviews)<a href="https://agentmods.dev/skills/bitflight-devops/skilllint/receiving-pr-reviews"><img src="https://agentmods.dev/badge/skills/bitflight-devops/skilllint/receiving-pr-reviews/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bitflight-devops/skilllint/receiving-pr-reviews"><img src="https://agentmods.dev/badge/skills/bitflight-devops/skilllint/receiving-pr-reviews.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00055 | $0.02036 |
| Opus 5.5 | $0.00022 | $0.00814 |
| Sonnet 5.5 | $0.00011 | $0.00407 |
| Haiku 4.5 | $0.00006 | $0.00204 |
Grade A, and why
receiving-pr-reviews scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to receiving-pr-reviews — 74 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Receiving PR Reviews
-
Fetch every unresolved thread, every unresponded review, and Codex's approval state:
uv run ./.agents/skills/receiving-pr-reviews/scripts/pr_review_threads.py fetch --pr <N>If the helper cannot use
ghand GitHub MCP tools are available, use the lightweight GitHub MCP fallback for this workflow instead. Do not install or reconfigureghmerely to avoid the fallback, and do not run both paths for the same snapshot.Read
reviews_count,threads_count,unresolved_countandreviewability.blockerstogether — never treat an emptyunresolvedarray on its own as "nothing to do". Athreads_countof 0 means no inline thread landed, not that no review landed: a top-level approval orCOMMENTEDreview surfaces only throughreviews_with_body. A non-emptyblockersmeans the empty result set is expected and the fix is on the PR itself — undraft it, resolve the conflicts — not in the review queue.reviews_with_bodyis every review whose feedback lives in the review's own summary text rather than an inline comment.unresponded_reviewsnarrows that to the ones this run has not answered yet; treat every entry as actionable input. A thread'scomments_truncated: truemeans that one thread has passed 100 comments — page itscommentsconnection directly before concluding anything about it. Forcodex_approved, see step 7. -
For each unresolved thread or unresponded review: read it, validate the claim locally, assess against the change goal and repository instructions.
-
Implement, commit, and push a fix only when it improves the product — push before replying, so the SHA named in the reply is inspectable and resolving the thread never outruns what is actually on the remote.
Confirm that push's CI with
checksrather than hand-writing a polling loop:uv run ./.agents/skills/receiving-pr-reviews/scripts/pr_review_threads.py checks --pr <N> [--timeout-seconds 270]statusispassed,failed,pending, ornone—pendingis not green. Without--timeout-secondsthis is one snapshot; with it, the command sleeps--interval-secondsbetween polls and returns as soon as the verdict settles. Read the whole object rather than extracting one field:nonealongsidereviewability.mergeable: "CONFLICTING"means checks cannot start — GitHub builds no merge ref for a conflicting PR, so no workflow runs — which is what an apparently stalled PR usually is, and no amount of waiting will change it. A draft PR is not that case: workflows do run on drafts unless a workflow opts out, so a draft blocker inreviewability.blockerssays nothing about CI andcheckskeeps waiting through it.A bare
noneright after a push is not yet an answer — GitHub returns the same empty result before it has registered the push's workflow runs as it does for a repo with no CI.checksre-polls anoneonce to tell them apart, so pass--timeout-secondswhen you have just pushed rather than reading the first snapshot as final. -
Reply on that thread with the disposition — conclusion, evidence, commit SHA, or why no change was warranted:
uv run ./.agents/skills/receiving-pr-reviews/scripts/pr_review_threads.py reply --pr <N> --comment-id <databaseId> --body '...' -
Resolve the thread:
uv run ./.agents/skills/receiving-pr-reviews/scripts/pr_review_threads.py resolve --thread-id <id> -
A decision spanning threads (PR sequencing, rebase disposition), or a response to a
reviews_with_body/unresponded_reviewsentry, goes on the PR itself viagh pr comment <N> -R <owner>/<repo>— the same owner/repo this run used in step 1 — before the work it governs. When answering a specific entry, quote that review's ownurlfield from step 1's output in the comment body. That quotedurl, postdating the review, is what clears the review out ofunresponded_reviewson the next check; chronological order alone does not. -
Once all current threads and reviews are addressed, re-check with
watch, looping short calls rather than one long block:
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +15 lines 3166bbba7db1
- 1mo ago First seen · 58 lines · 55 tokens per session scan A 6d00a5f1b48e
receiving-pr-reviews is a skill published in the GitHub repository bitflight-devops/skilllint (7 stars, last pushed 5d ago), licensed MIT. It adds 55 tokens to every session and 2,036 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to receiving-pr-reviews, differing in 74 lines, and is treated as a copy.
Other skills, from other repositories
review-implement-phase
Implements triaged review actions, commits focused fixes, and posts Done plus resolves threads. Use when the user wants only the implementation phase of the review-framework workflow.
github-pr-workflow
Prepare a GitHub pull request from a feature branch — branch hygiene, commit shape, title/body, verification notes, screenshots for UI work, and replies to review comments.
review-delta
Review only changes since last commit using impact analysis. Token-efficient delta review with automatic blast-radius detection.
github-contributor
A step-by-step guide for contributing code, tests, documentation, or build changes to open-source projects you do not maintain. It explains how to prepare a pull request that follows the project’s rules and is easier for maintainers to review.
hero-diff-highlight
A dark code editor reveals a red deletion then a green addition with a soft pulse. Function: PR / code-change explainer.
git-pr-workflows-git-workflow
Guide changes through code checks, testing, commits, and pull request preparation. Use when coordinating a complete Git workflow and verifying readiness for collaboration.