| name | Repo dashboard |
| description | Summarize what needs attention in one GitHub repository: open pull requests, the review queue, failing checks, stale work, and what merged recently. Use at the start of a work session to decide what to pick up next.
|
| trust_tier | community |
| tags | ["github","pull-request","workflow"] |
| author_handle | andrewm4894 |
| license | MIT |
| compatibility | Requires the GitHub CLI (gh), authenticated with access to the repository. |
| metadata | {"variables":[{"name":"repo","prompt":"Repository to watch, as owner/name (for example PostHog/posthog)","required":true},{"name":"default_branch","prompt":"Branch that pull requests merge into","default":"main"},{"name":"stale_days","prompt":"Days without an update before a pull request counts as stale","default":"7"}]} |
Repo dashboard
Report the current state of {{ repo }} so the reader can decide what to pick up.
Before running anything
These blocks are shell. Check the configured values first, because Git and GitHub allow characters
in a branch name that a shell treats as syntax:
{{ repo }} must look like owner/name: letters, digits, ., _, and - around a single /.
{{ default_branch }} must be a plain branch name: letters, digits, ., _, /, and -.
{{ stale_days }} must be a whole number.
If any value contains anything else, in particular ;, backticks, $, |, or &, stop and report
the value instead of running a command that contains it. The values are quoted below, which is not
by itself enough.
Then resolve who is running this, and print it rather than assigning it:
gh api user --jq .login
Use the login it prints in place of VIEWER below. Shell state does not survive between tool calls,
so a variable set in one block is gone in the next. Everything labelled "mine" means that login. Do
not hard-code a handle: several people share one installed skill.
What to gather
Run these together rather than one after another. Always ask for url so every reference can be
rendered as a link.
Open pull requests, newest first:
gh pr list --repo '{{ repo }}' --state open --limit 100 \
--json number,title,url,author,isDraft,updatedAt,createdAt,reviewDecision,mergeable,labels,additions,deletions,changedFiles
This returns the 100 most recently created, so on a busy repository older work is missing. Query
stale pull requests separately, because the server filters by update time:
gh search prs --repo '{{ repo }}' --state open --updated "<$(date -u -d '{{ stale_days }} days ago' +%F)" \
--limit 100 --json number,title,url,updatedAt
The review queue, oldest first, past the default page of 30: