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 agentmods add skills/github/gh-aw/pr-finishernpx skills add github/gh-aw --skill pr-finishergit clone --depth 1 https://github.com/github/gh-awWhat 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 | $0.00043 | $0.02923 |
| Opus 5 | $0.00022 | $0.01461 |
| Sonnet 5 | $0.00009 | $0.00585 |
| Haiku 4.5 | $0.00004 | $0.00292 |
Grade A, and why
pr-finisher 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 2d 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.
How it starts
The opening of the file, as written. The whole thing — 192 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PR Finisher
Drive an open PR for the current branch to a merge-ready state from a GitHub Copilot cloud agent. Do not merge. When everything you can act on is done, report ready-for-human-merge and stop.
Execution context
This skill runs inside a GitHub Copilot cloud agent, not on a developer's machine.
- The agent's pushes do not trigger CI. Workflows on the PR will not re-run after the agent commits. Any existing
statusCheckRollupreflects an earlier HEAD and goes stale the moment the agent pushes. - Commit and push on every iteration that changes files. Changes that are not pushed are not available to the user.
- Local
maketargets are the agent's authoritative correctness signal before push. CI is observational only. - Re-running CI is a hand-off to a human (close/reopen the PR,
workflow_dispatch, or a push from a maintainer). The agent must surface this in its summary. - No watch / no sleep loops. The agent has no async wait state; one pass + summary + stop.
Three merge-ready conditions
A PR is merge-ready when all three are satisfied. Work them concurrently.
| Condition | Definition | Agent's signal |
|---|---|---|
| Reviews | Every unresolved in-scope review thread is addressed on its merits, replied to, and resolved, including GitHub Actions bot threads/comments (github-actions[bot]). Code changes alone do not satisfy this. Threads where Copilot has already replied with a substantive answer must be resolved before delegating to copilot-review. |
copilot-review skill + GraphQL reviewThreads |
| Checks | Local make fmt / make lint / make test-unit / make test pass. Last-known CI runs reviewed at log level. |
make targets locally; gh pr checks / gh run view --log-failed for prior runs |
| Mergeable | PR is OPEN, not draft, mergeable: MERGEABLE, not BEHIND if the repo requires up-to-date branches. |
gh pr view --json mergeable,mergeStateStatus,state,isDraft |
Because the agent cannot re-trigger CI, "Checks" is satisfied at the agent's level when local validation passes and prior CI failures have been root-caused and fixed in the pushed commits. Final green CI requires a human to re-trigger after the agent stops.
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.
- 2d ago First seen · 192 lines · 43 tokens per session scan A d7eac6a5ae3b
pr-finisher is a skill published in the GitHub repository github/gh-aw (5,084 stars, last pushed today), licensed MIT. It adds 43 tokens to every session and 2,923 once invoked, about $0.0002 per session on Opus 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-08-30.
Other skills, from other repositories
watch-tag
Watch a GitHub repository for new tags using the gh-watch extension. Use when the user wants to be notified when a tag is created, when a release is cut, or when a tag that includes a specific commit appears (e.g. "tell me when my merge ships in a release").
deploy
Use when ready to ship — runs pre-push gates (lint, typecheck, build, tests, security sweep), commits, releases, and pushes. Standalone, never auto-invoked. Push always requires explicit confirmation. Trigger with /hyperflow:deploy, "ship it", "ready to push", "release", "cut a release", "deploy".
AI Release Guardian
Analyze a git diff, map affected risks, select the tests that matter, detect coverage gaps on changed lines, run configurable quality gates, and produce a go/no-go release report with cited evidence. Recommends only; never merges or deploys.
release-habit-hooks
Cut a new release of the habit-hooks packages. Use when asked to release, publish, or bump the version. Reviews what lands, enforces the in-sync versioning rule, validates the changelog, and drives the tag-triggered PyPI publish.
publish-github-release
Use this whenever the user asks to ship, publish, release, tag, or cut a new version of the project — OR when CHANGELOG.md has an "Unreleased" / in-progress section ready to be shipped. The skill bumps the version across all version-bearing files, regenerates the CHANGELOG entry from git log since the last tag…
proposal-to-pr
Drive an OpenSpec change from proposal to merge-ready PR. Reads openspec/changes/ /, blocks at Stage 1 until every prerequisite named in the proposal's > Depends on: blockquote has reached main, plants a canary and runs parallel reviews on the proposal, refines until zero blockers, implements each task, verifies with…