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 sfc-gh-eraigosa/dotfiles --skill pr-groominggit clone --depth 1 https://github.com/sfc-gh-eraigosa/dotfilesWrote 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/sfc-gh-eraigosa/dotfiles/pr-grooming)<a href="https://agentmods.dev/skills/sfc-gh-eraigosa/dotfiles/pr-grooming"><img src="https://agentmods.dev/badge/skills/sfc-gh-eraigosa/dotfiles/pr-grooming/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/sfc-gh-eraigosa/dotfiles/pr-grooming"><img src="https://agentmods.dev/badge/skills/sfc-gh-eraigosa/dotfiles/pr-grooming.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.00147 | $0.02819 |
| Opus 5.5 | $0.00059 | $0.01128 |
| Sonnet 5.5 | $0.00029 | $0.00564 |
| Haiku 4.5 | $0.00015 | $0.00282 |
Grade A, and why
pr-grooming 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 today.
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.
How it starts
The opening of the file, as written. The whole thing — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pr-grooming — decide the fate of every open PR against main
A PR grooming pass answers, for every open PR, does this still apply, what does it need to land (a rebase, a refresh, a decision), and who acts next. The output is a shorter PR list where each survivor is rebased, CI-verified and either queued or clearly waiting on a human, plus a report the owner can scan in a minute.
Why the rigor: in this repo drafts are cheap (gss feature worker add opens one per leaf), so
they pile up — design docs written for a CLI that was retired, plans that later merged under a
different objective, WIP parked "to decide later". A PR's own description says what it was;
main, docs/mbo/index.md and the merged-PR list say what is still true. Only the evidence
decides, and every close names its successor so nothing is lost (branches are never deleted).
0 — Setup (one command)
bash ai/skills/pr-grooming/scripts/pr-snapshot.sh -o <scratch>/pr-groom
triage.tsv gives each PR a first-cut category, age, draft state, merge state and CI
state; prs.txt has bodies, files, comments and check names; mbo-rows.txt lists the
docs/mbo/index.md rows that mention each PR or its branch slug. Read all three before
judging anything. Correct the category by hand where the heuristic is wrong (a fix: title on a
docs change is not a bugfix; a wip: draft that fixes a hanging test is a bugfix) and write the
corrected category into the verdict — the report shows what you decided, not what the script guessed.
Hooks note (this repo): the privacy hook blocks command text containing the login name or an
absolute home path — refer to scratch and worktree dirs by a glob or ~. The Bash tool runs
zsh; build flag lists as arrays.
1 — Categories and what each one needs
| Category | Question to answer | Typical outcome |
|---|---|---|
mbo-draft (draft touching docs/mbo/, or an objective's design/plan) |
Is the objective still live? Is there a merged row in index.md (or a merged PR) covering the same slug — a duplicate or a conflicting plan? |
prefer the merged MBO: close the draft as duplicate; a live objective that is merely behind → rebase-only; a design written for something the repo no longer has → stale |
stale-draft (any other draft ≥ 30 days) |
Does the work still apply to main, and is anyone going to finish it? |
clearly abandoned → stale with the reason; still plausible → rebase-only and a comment asking for the keep/drop decision |
bugfix |
Does the bug still reproduce on main? |
still reproduces → refresh: rebase, resolve conflicts, prove the PR fixes it, promote to ready with a comment asking for a review refresh; no longer reproduces → stale (name the commit that fixed it) |
dependabot |
Is it a patch/minor bump with green CI after a rebase? | rebase; green patch/minor → ready (label ready-for-merge); major or red → leave with a comment on what failed |
other |
Behind main? CI green? |
behind → rebase-only; green and current → leave |
What ships with it
8 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.
- today First seen · 160 lines · 147 tokens per session scan A d2f0acf8b9cd
pr-grooming is a skill published in the GitHub repository sfc-gh-eraigosa/dotfiles (50 stars, last pushed today), licensed Apache-2.0. It adds 147 tokens to every session and 2,819 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-18.
Other skills, from other repositories
review-pr
Review and merge GitHub pull requests for Spatie packages. Use when asked to review a PR, review a pull request, merge a PR, or when given a GitHub PR URL to review. Also triggers on 'review this PR,' 'check this pull request,' 'merge this,' or '/review-pr'. Uses gh CLI for all GitHub operations.
gh-pr
This skill should be used when creating a GitHub pull request via gh pr create. Covers the gh CLI mechanics; PR title and body conventions come from the pr-style skill.
explain-changes
Explain how the code on the current branch works, as an HTML page opened in the browser, written so someone can understand the change and review it. Use when asked to explain a branch, explain these changes, walk me through this code, help me review this, or explain what an agent just did. Most useful when someone…
coding-best-practices
Reviews macOS Swift 6+ code for modern idioms, SOLID principles, SwiftData patterns, and concurrency best practices. Use when reviewing macOS code quality or asking about best practices.
macos-release
Release a native macOS app to GitHub with DMG packaging and Sparkle appcast updates. Use this skill whenever the user wants to publish a new version, create a release, ship an update, push a release to GitHub, or update the appcast. Also trigger when the user mentions DMG creation, Sparkle signing, notarization…
audit-architecture
Run an application-wide, read-only architecture audit that finds materially useful simplifications in a codebase's data structures, state representation, control flow, algorithms, and ownership boundaries. Fans out bounded read-only agents per subsystem, verifies every finding against the repo, and ranks results P0 to…