Agent skill

PR Monitor

by espennilsen in espennilsen/pi

Monitor open GitHub PRs across all repos in ~/Dev. An agent skill from espennilsen/pi.

MITAuto-check passedDevelopment

Install PR Monitor

skills CLI
$ npx skills add espennilsen/pi --skill pr-monitor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install espennilsen/pi pr-monitor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/espennilsen/pi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/pr-monitor .claude/skills/pr-monitor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pr-monitor
GitHub stars
122
Token cost
~935 tokens
SKILL.md length
311 words
Files
1
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Monitor open GitHub PRs across all repos in ~/Dev. An agent skill from espennilsen/pi.

  • Works in 6 steps: Scan all repos for open PRs → Calculate PR age → Format the report → …
  • - Use this skill when: - User asks about open PRs
  • SKILL.md covers Procedure and Notes
  • Calls jq, git and gh

What it does

PR Monitor is an agent skill from espennilsen/pi. Monitor open GitHub PRs across all repos in ~/Dev. Checks PR age, flags stale PRs, and optionally alerts via Aivena/Telegram. Uses gh pr list for accurate GitHub data. TRIGGERS - Use this skill when: - User asks about open PRs, pull requests, or PR status - User says "check PRs", "any stale PRs?", "PR review status" - Cron job pr-monitor fires - User asks "what needs review?" or "what's waiting for merge?" - User wants a PR dashboard or PR age report

Its SKILL.md is about 940 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests and Scheduled and recurring tasks. It works with GitHub and Telegram. The licence is MIT.

When your agent uses it

  • - Use this skill when: - User asks about open PRs
  • PR status - User says check PRs
  • PR review status - Cron job pr-monitor fires - User asks what needs review?
  • Whats waiting for merge? - User wants a PR dashboard

Example prompts

  • “check PRs”
  • “any stale PRs?”
  • “PR review status”
  • “/pr-monitor”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Scan all repos for open PRs
  2. Calculate PR age
  3. Format the report
  4. Summary
  5. Deduplication check (before alerting)
  6. Alert (only for net-new stale PRs)

What it can do on your machine

Read from SKILL.md and the folder at commit 79d019b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PR Monitor loads about 935 tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 311 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~935

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from espennilsen/pi at commit 79d019b, republished under its MIT licence (© espennilsen). 311 words, ~935 tokens.

Download SKILL.mdSave it as .claude/skills/pr-monitor/SKILL.md (or your agent's skills folder).
name
pr-monitor
description
Monitor open GitHub PRs across all repos in ~/Dev. Checks PR age, flags stale PRs, and optionally alerts via Aivena/Telegram. Uses `gh pr list` for accurate GitHub data. **TRIGGERS - Use this skill when:** - User asks about open PRs, pull requests, or PR status - User says "check PRs", "any stale PRs?", "PR review status" - Cron job `pr-monitor` fires - User asks "what needs review?" or "what's waiting for merge?" - User wants a PR dashboard or PR age report

PR Monitor Skill

Scan all GitHub-hosted repos in ~/Dev for open pull requests. Flag stale PRs and report status.

Procedure

Step 1: Scan all repos for open PRs

Run this exact command to collect all open PRs:

bash
for dir in ~/Dev/*/; do
  if [ -d "$dir/.git" ]; then
    remote=$(git -C "$dir" remote get-url origin 2>/dev/null)
    if echo "$remote" | grep -q github.com; then
      repo=$(echo "$remote" | sed 's/.*github.com[:/]\(.*\)\.git/\1/' | sed 's/.*github.com[:/]\(.*\)/\1/')
      prs=$(timeout 30s gh pr list --repo "$repo" --state open --json number,title,createdAt,headRefName,author,isDraft,reviewDecision)
      pr_count=$(echo "${prs:-[]}" | jq 'length' 2>/dev/null)
      if [ "${pr_count:-0}" -gt 0 ]; then
        echo "=== $(basename "$dir") ($repo) ==="
        echo "$prs" | jq -r '.[] | "  #\(.number) [\(.headRefName)] \(.title) (by \(.author.login), created \(.createdAt[:10]), draft: \(.isDraft), review: \(.reviewDecision // "none"))"'
        echo ""
      fi
    fi
  fi
done
Step 2: Calculate PR age

For each PR, calculate age from createdAt to today. Classify as:

  • 🟢 Fresh — 0–1 days old
  • 🟡 Aging — 2–3 days old
  • 🔴 Stale — 4+ days old
Step 3: Format the report

Output a table with columns:

RepoPRBranchTitleAuthorAgeStatusReview

Group by repo. Show age badge (🟢/🟡/🔴). Include draft status and review decision.

Step 4: Summary

End with:

  • Total open PRs across all repos
  • Stale count (4+ days) — these need attention
  • Aging count (2–3 days) — these are approaching stale
  • Action items — specific PRs that need review or merge
Step 5: Deduplication check (before alerting)

Before sending any Telegram alert, check today's daily memory log for PRs already covered. Optionally, write a lightweight per-PR "alert sent" timestamp (e.g., pr-monitor: [repo] #[number] — <date>) to memory so overlapping executions don't duplicate alerts.

memory_read(target: "daily")

Scan the result for PR references matching [repo] #[number]. Any stale PR already mentioned in today's standup or a prior pr-monitor alert today should be excluded from the new alert.

  • If all stale PRs were already reported today → skip the alert entirely (no noise)
  • If some are new → send alert only for the new ones
  • If none were previously reported → send the full alert
Step 6: Alert (only for net-new stale PRs)

If net-new stale PRs remain after dedup, send an alert to Aivena via a2a_send:

Hey Aivena — PR staleness alert for Espen. Please relay to Telegram.

⚠️ [N] stale PR(s) found (4+ days old, not yet reported today):
- [repo] #[number]: [title] ([age] days)
...

These need review or merge.
— Fury

If no stale PRs exist, or all were already covered today, do nothing (no noise).

Notes

  • Requires gh CLI authenticated (gh auth status)
  • Requires jq for JSON parsing
  • Only scans repos with GitHub remotes
  • Draft PRs are included but noted — they're expected to age longer
  • The reviewDecision field shows: APPROVED, CHANGES_REQUESTED, REVIEW_REQUIRED, or none

© espennilsen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/pr-monitor of espennilsen/pi.

Open the folder on GitHubat commit 79d019b

Compare with similar skills

PR Monitor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PR Monitor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Monitor this skillespennilsen/pi122—~935Automated safety check: PassMIT
OpenObserve PR Briefopenobserve/openobserve22k—~1.8kAutomated safety check: PassAGPL-3.0
Gh Issuestrpc-group/trpc-agent-go1.9k8 repos~8.7kAutomated safety check: PassApache-2.0
Jira Issue To PROpenHands/extensions163—~4.1kAutomated safety check: PassMIT
Review PRwarpdotdev-demos/cloud-factory-demo334—~1.5kAutomated safety check: PassMIT
Project Pull Requestswimmwatch/cloakbrowser-mcp164—~1kAutomated safety check: PassMIT

Similar skills

  • OpenObserve PR Brief

    openobserve/openobserve

    Produces a read-only morning brief of your open pull requests across the openobserve GitHub org, with a next step for each and a reminder for idle ones.

    22k GitHub stars~1.8k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • Gh Issues

    trpc-group/trpc-agent-go

    Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments.

    1.9k GitHub starsUsed in 8 repos~8.7k tokens
    Agent WorkflowsAuto-check passed
  • Jira Issue To PR

    OpenHands/extensions

    This skill should be used when the user asks to "set up a Jira automation to create pull requests", "poll Jira for create-pr issues", "automatically create GitHub PRs from Jira tickets", "deploy a…

    163 GitHub stars~4.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Review PR

    warpdotdev-demos/cloud-factory-demo

    Review a PR from local annotated-diff artifacts and write validated review.json for the workflow to publish.

    334 GitHub stars~1.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Project Pull Request

    swimmwatch/cloakbrowser-mcp

    Create, update, prepare, or review a cloakbrowser-mcp GitHub Pull Request only when the user explicitly requests PR work.

    164 GitHub stars~1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • GitHub Automation

    sickn33/agentic-awesome-skills

    Operate GitHub issues, pull requests, branches, checks, workflows, and permissions through Rube MCP.

    47k GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed

More from espennilsen/pi

All 36 skills in this repo
  • GitHub

    espennilsen/pi

    Interact with GitHub repos, PRs, issues, CI, and notifications via the pi-github extension commands and gh CLI.

    122 GitHub stars~1k tokensUpdated 19 days ago
    Auto-check passed
  • Skill Creator

    espennilsen/pi

    Create, review, and improve skills for Pi agents. An agent skill from espennilsen/pi.

    122 GitHub stars~2.1k tokensUpdated 19 days ago
    Auto-check passed
  • Dry Code Review

    espennilsen/pi

    Perform a comprehensive DRY (Don't Repeat Yourself) code review on a codebase.

    122 GitHub stars~1.7k tokensUpdated 19 days ago
    Auto-check passed
  • Extract Design System

    espennilsen/pi

    Reverse-engineer a design system from a live website (public URL or localhost).

    122 GitHub stars~2k tokensUpdated 19 days ago
    Auto-check passed
  • PDF Reader

    espennilsen/pi

    Read and extract content from PDF files — text, tables, metadata, and images.

    122 GitHub stars~1.6k tokensUpdated 19 days ago
    Auto-check passed
  • Google Workspace

    espennilsen/pi

    Manage Google Workspace via the gws CLI — Drive, Gmail, Sheets, Docs, Slides, People, Chat, Meet, Forms, and cross-service workflows.

    122 GitHub stars~3.4k tokensUpdated 19 days ago
    Auto-check passed

Works with

Questions about PR Monitor

What does PR Monitor do?

Monitor open GitHub PRs across all repos in ~/Dev. An agent skill from espennilsen/pi. PR Monitor is an agent skill from espennilsen/pi. Monitor open GitHub PRs across all repos in ~/Dev.

When should I use PR Monitor?

PR Monitor fits situations like: - Use this skill when: - User asks about open PRs; PR status - User says check PRs; PR review status - Cron job pr-monitor fires - User asks what needs review?; whats waiting for merge? - User wants a PR dashboard.

How do I install PR Monitor in Claude Code?

Run `npx skills add espennilsen/pi --skill pr-monitor -a claude-code`. Or copy the skill folder (skills/pr-monitor in espennilsen/pi) into .claude/skills/pr-monitor in your project. Claude Code loads it when a task matches its description.

How do I install PR Monitor in Codex?

Run `npx skills add espennilsen/pi --skill pr-monitor -a codex`. Or copy the skill folder (skills/pr-monitor in espennilsen/pi) into .agents/skills/pr-monitor in your project. Codex loads it when a task matches its description.

Can I use PR Monitor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add espennilsen/pi --skill pr-monitor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-monitor, .gemini/skills/pr-monitor, .github/skills/pr-monitor and .opencode/skills/pr-monitor in your project.

What does PR Monitor need to run?

Going by SKILL.md and its folder, PR Monitor needs the command-line tools its instructions call (jq, git and gh).

Does PR Monitor access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PR Monitor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PR Monitor use?

PR Monitor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PR Monitor use?

About 935 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PR Monitor?

Skills that share tags, products or a category with PR Monitor: OpenObserve PR Brief (openobserve/openobserve, 22k stars), Gh Issues (trpc-group/trpc-agent-go, 1.9k stars), Jira Issue To PR (OpenHands/extensions, 163 stars) and Review PR (warpdotdev-demos/cloud-factory-demo, 334 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Monitor?

espennilsen (a GitHub user) maintains it in espennilsen/pi, which has 122 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on September 21, 2026.

Source: espennilsen/pi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.