Agent skill

OpenObserve PR Brief

by openobserve in 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.

AGPL-3.0Auto-check passedProductivity & Automation

Install OpenObserve PR Brief

skills CLI
$ npx skills add openobserve/openobserve --skill o2-pr-brief -a claude-code

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

GitHub CLI
$ gh skill install openobserve/openobserve o2-pr-brief --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/openobserve/openobserve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/o2-pr-brief .claude/skills/o2-pr-brief && 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
o2-pr-brief
GitHub stars
22k
Token cost
~1.8k tokens
SKILL.md length
1,006 words
Files
2 (incl. scripts)
Skills in repo
4
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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.

  • Works in 3 steps: gh auth status must show you logged in… → Open a Claude Code session in your… → git pull on main now and then to pick up…
  • Starting the day with a list of PRs that need your attention
  • SKILL.md covers Set up the daily run (once per…, Run, What the JSON holds and Sorting PRs into the brief, plus 2 more sections
  • Runs Python scripts from its folder; calls gh, git and python3

What it does

Each run builds the brief fresh from GitHub using `scripts/pr_brief.py`, which prints JSON. The skill keeps no state and never writes to GitHub: no comments, labels, reviews, approvals, merges, closes or pushes, and it confirms any single action you request afterwards. Each PR appears once, in the first matching bucket among authored, review requested, engaged and assigned, with fields such as CI state, review decision, idle days, blockers and a flag for when only the merge click is missing. Options set the stale threshold, the scope and another user.

Setup is once per person: `gh auth status` must show access to the openobserve org and `python3` must be on the PATH. Then you ask Claude Code, in your openobserve checkout, to run the brief every weekday at 9:00. That creates a local scheduled task using your own `gh` login, which runs while the Claude app is open and the machine is awake. The brief gives the next step per PR and a close reminder for anything idle over a week.

When your agent uses it

  • Starting the day with a list of PRs that need your attention
  • Finding PRs you approved that are still not merged
  • Spotting PRs that have sat idle for more than a week
  • Setting up a weekday scheduled PR brief

Example prompts

  • “Run o2-pr-brief and tell me which PRs are waiting on my review.”
  • “Which of my open PRs are ready to merge, and what is blocking the rest?”
  • “Set up a weekday morning run of the PR brief at 9:00.”
  • “Show the brief for the openobserve/openobserve repo only, counting PRs idle for three days as stale.”

Requirements

  • The GitHub CLI (`gh`) logged in with access to the openobserve org
  • Python 3 on the PATH

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. gh auth status must show you logged in with access to the openobserve org, and python3 must be on PATH.
  2. Open a Claude Code session in your openobserve checkout, so the scheduled task starts there and finds this skill, and say: "Every weekday…
  3. git pull on main now and then to pick up changes to this skill.

What it can do on your machine

Read from SKILL.md and the folder at commit c99e027. 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

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • gh
    • git
    • python3

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

  • Network

    No URLs in SKILL.md. Its commands use gh and git, 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

OpenObserve PR Brief loads about 1.8k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 1,006 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from openobserve/openobserve at commit c99e027, republished under its AGPL-3.0 licence (© openobserve). 1,006 words, ~1,778 tokens.

Download SKILL.mdSave it as .claude/skills/o2-pr-brief/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
o2-pr-brief
description
Morning brief of your open PR workload across the openobserve GitHub org — PRs you opened, PRs waiting for your review, PRs assigned to you, PRs you commented on that wait for the author, and PRs you approved that still are not merged — with the next step for each and a close reminder for anything idle over a week. Read-only. Use when the user says "o2-pr-brief", "PR brief", "my PRs", "what needs my attention on GitHub", or from a daily scheduled task.

o2-pr-brief

A read-only status report built fresh from GitHub on every run. It keeps no state and never writes to GitHub: no comments, labels, reviews, approvals, merges, closes, or pushes. If the user asks for one of those after reading the brief, confirm that single action first.

Set up the daily run (once per person)

  1. gh auth status must show you logged in with access to the openobserve org, and python3 must be on PATH.
  2. Open a Claude Code session in your openobserve checkout, so the scheduled task starts there and finds this skill, and say: "Every weekday at 9:00, run /o2-pr-brief". This creates a local scheduled task that runs as your own gh login. It runs while the Claude app is open and the machine is awake.
  3. git pull on main now and then to pick up changes to this skill.

Run

  1. Run python3 <this skill's directory>/scripts/pr_brief.py. Options: --stale-days N (default 7), --scope 'repo:openobserve/openobserve' (default org:openobserve), --user LOGIN (only when the user asks for someone else's brief). It prints JSON. If gh is not logged in, say so and stop.
  2. Write the brief from that JSON as described below. Query GitHub again only to settle something the JSON leaves ambiguous.

What the JSON holds

Each PR appears once, in the first bucket that matches: authored, review_requested, engaged (you reviewed or commented on it), assigned.

Every item has repo, number, title, url, author, fork, draft, size, age_days, idle_days (days since the last human comment, review or push), labels, ci (state, failing check names, pending count excluding the ci-gate check, awaiting_approval workflow runs on a fork PR), review_decision, reviews (latest approve/changes-requested per reviewer), pending_reviewers, mergeable, auto_merge, blockers (why it is not merged yet), and merge_ready (true when nothing but the merge click is missing).

  • authored: unanswered holds comments and reviews by others after your last activity, each with an excerpt.
  • review_requested: via (you or team:<slug>), requested_at, waiting_days, and engagement when you already commented.
  • engaged (and review_requested/assigned when you took part): engagement.ball tells who moves next:
    • you:re-review-after-approval: you approved and the author pushed code since. Merges of main do not count.
    • you:author-responded: the author pushed or replied after your last comment or review.
    • you:re-requested: your review was requested again after your last activity.
    • merge: you approved, nothing changed since, and it is still open. See approved_not_merged_days and blockers.
    • author: you spoke last and the author has not updated. See waiting_on_author_days; my_last.excerpt is what you said.
  • assigned: assigned_at and assigned_days.

Sorting PRs into the brief

Put each PR in exactly one section.

  1. 🔴 Needs you: the next move is yours.
    • Review requests unless engagement.ball is author. Show how long it has waited; flag it when waiting_days ≥ stale days. When via is a team, say which team, because someone else may have picked it up. When another reviewer already approved, say so. A draft can wait.
    • engaged PRs with a you:* ball: "re-review: new commits since your approval" or "author replied to your comments".
    • Your own PRs that need you: unanswered comments (who, one-line gist), changes requested, merge conflicts, failing checks (name them), no ready-for-ci label while you want CI, or merge_ready with auto_merge off ("click Merge when ready").
    • Assigned PRs whose next step is yours.
  2. 🟡 Your PRs in progress: your PRs waiting on someone else. Say who: the named pending reviewers, running CI, or the merge queue.
  3. ✅ Approved, not merged: engaged PRs with ball merge. Give approved_not_merged_days and the blockers in plain words, and say who has to act, usually the author. With no blockers: "approved and green, nobody has merged it". When approved_not_merged_days ≥ stale days, add the same close reminder as section 4; at 30 days or more, recommend closing it.
  4. ⏳ Waiting on the author: ball author, plus assigned PRs whose next step is the author's (a draft, changes requested). No action is needed; list them so nothing is forgotten. Read my_last.excerpt: if your last word asked for nothing ("LGTM", "thanks"), nothing is pending, so move the PR to the section that fits or leave it out. When waiting_on_author_days ≥ stale days, add "⚠️ no update from the author for N days — consider closing it (or one last ping)".
  5. 🧊 Stale — decide: your own PRs, and assigned PRs, with idle_days ≥ stale days. Recommend exactly one of: continue (rebase or merge main, then ping the reviewers by name), convert to draft (still wanted, not now), or close (superseded, idea dropped, or idle for months). Give the reason in one clause. Idle 30 days or more with no reviewer interest means recommend close.
Show full SKILL.md (251 more words)Show less

Repository facts that change the advice

  • In openobserve/openobserve and openobserve/o2-enterprise, CI runs only while the PR has the ready-for-ci label and is not a draft. Missing label means CI never ran, which is not the same as a failure.
  • On a fork PR (fork: true) every push needs a maintainer to approve the workflow runs ("Approve and run" on the PR's Checks tab) before CI starts; ci.awaiting_approval counts the waiting runs. A fork PR whose only checks are the gate and title checks is not green, CI simply has not started.
  • The review (deepseek) check always fails on PRs from forks. Ignore it.
  • check-design-comment / "Feature Design Comment Checker" fails when a feat: PR's description does not start with Design at: #<issue>.
  • BEHIND on its own is not a blocker: the merge queue brings the branch up to date.
  • A paired OSS and enterprise change uses the same branch name in both repos. When the user has PRs with the same branch in both, mention them together.

Output

  • Title: PR brief — <login> — <date>, then one line of counts: needs you / in progress / approved-not-merged / waiting on author / stale.
  • Sections in the order above. Leave out empty sections.
  • One line per PR: [repo#N](url) short title — state → next step. Drop the openobserve/ prefix from repo names. Add at most one sub-line when the reason needs it, for example the failing check names or an unanswered reviewer's gist.
  • No preamble and no closing summary. Write in the language the user uses with you, English by default.

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

Files

SKILL.md and 1 other file (scripts) in .claude/skills/o2-pr-brief of openobserve/openobserve.

  • SKILL.md
  • scripts/pr_brief.py

Open the folder on GitHubat commit c99e027

Compare with similar skills

OpenObserve PR Brief 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.

OpenObserve PR Brief compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
OpenObserve PR Brief this skillopenobserve/openobserve22k—~1.8kAutomated safety check: PassAGPL-3.0
Gh Issuestrpc-group/trpc-agent-go1.9k8 repos~8.7kAutomated safety check: PassApache-2.0
PR Monitorespennilsen/pi122—~935Automated safety check: PassMIT
Jira Issue To PROpenHands/extensions163—~4.1kAutomated safety check: PassMIT
Release Kanban Mdantopolskiy/kanban-md223—~1.2kAutomated safety check: PassMIT
GitHub Channel for NanoClawnanocoai/nanoclaw31k—~2.2kAutomated safety check: NotesMIT

Similar skills

  • 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
  • PR Monitor

    espennilsen/pi

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

    122 GitHub stars~935 tokensUpdated 18 days ago
    DevelopmentAuto-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 today
    DevelopmentAuto-check passed
  • Release Kanban Md

    antopolskiy/kanban-md

    Release kanban-md through its tag-triggered GoReleaser workflow, monitor CI, recover safely from failures, and publish user-facing GitHub release notes.

    223 GitHub stars~1.2k tokensUpdated 4 days ago
    Productivity & AutomationAuto-check passed
  • Lets a NanoClaw agent join GitHub pull request and issue comment threads as conversations, using a dedicated bot account and the Chat SDK bridge.

    31k GitHub stars~2.2k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • GitHub Automation

    davila7/claude-code-templates

    Automate GitHub repositories, issues, pull requests, branches, CI/CD, and permissions via Rube MCP (Composio).

    33k GitHub starsUsed in 5 repos~2.8k tokens
    Productivity & AutomationAuto-check passed

More from openobserve/openobserve

  • O2 Review Loop

    openobserve/openobserve

    Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.

    22k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • A playbook for fixing ESLint and TypeScript errors in the OpenObserve web frontend, with rule-by-rule guidance and typing conventions.

    22k GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • UI Architect

    openobserve/openobserve

    ALWAYS use this skill for ANY change to the OpenObserve web UI (web/) — even a single-line UI modification.

    22k GitHub stars~16k tokensUpdated today
    Auto-check: notes

Works with

Questions about OpenObserve PR Brief

What does OpenObserve PR Brief do?

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. py`, which prints JSON. The skill keeps no state and never writes to GitHub: no comments, labels, reviews, approvals, merges, closes or pushes, and it confirms any single action you request afterwards.

When should I use OpenObserve PR Brief?

OpenObserve PR Brief fits situations like: starting the day with a list of PRs that need your attention; finding PRs you approved that are still not merged; spotting PRs that have sat idle for more than a week; setting up a weekday scheduled PR brief.

How do I install OpenObserve PR Brief in Claude Code?

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

How do I install OpenObserve PR Brief in Codex?

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

Can I use OpenObserve PR Brief 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 openobserve/openobserve --skill o2-pr-brief -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/o2-pr-brief, .gemini/skills/o2-pr-brief, .github/skills/o2-pr-brief and .opencode/skills/o2-pr-brief in your project.

What does OpenObserve PR Brief need to run?

Going by SKILL.md and its folder, OpenObserve PR Brief needs Python for the scripts in its folder and the command-line tools its instructions call (gh, git and python3). Our summary lists: The GitHub CLI (`gh`) logged in with access to the openobserve org; Python 3 on the PATH.

Does OpenObserve PR Brief access the network?

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

Is OpenObserve PR Brief 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does OpenObserve PR Brief use?

OpenObserve PR Brief is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does OpenObserve PR Brief use?

About 1.8k tokens (SKILL.md is roughly 7.1k 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 OpenObserve PR Brief?

Skills that share tags, products or a category with OpenObserve PR Brief: Gh Issues (trpc-group/trpc-agent-go, 1.9k stars), PR Monitor (espennilsen/pi, 122 stars), Jira Issue To PR (OpenHands/extensions, 163 stars) and Release Kanban Md (antopolskiy/kanban-md, 223 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains OpenObserve PR Brief?

openobserve (a GitHub organization) maintains it in openobserve/openobserve, which has 22,312 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 10, 2026.

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