name: qv-devops-pr-status description: Team-wide PR dashboard for the DevOps pod, scoped to PRs authored by pod-roster members. Shows open PRs touching DevOps-owned paths and authored by DevOps leads/members, grouped into needs-your-re-review / stale (>3d) / needs-review, with merge-conflict warnings and a separate Excluded section for non-roster authors. Use when checking DevOps pod PR status, asking about stale PRs, or invoking /qv-devops-pr-status. disable-model-invocation: true
DevOps Pod PR Status
Thin wrapper over the shared pr-skills library, pinned to the DevOps pod and scoped to PRs authored by DevOps roster members (leads ∪ members in .github/teams/devops.json).
The dashboard spans the qvac monorepo (filtered by the pod's ownedPaths) plus every repo declared under extraRepos in .github/teams/devops.json. For extra repos the pod is treated as the sole owner — every open PR there is in-scope regardless of touched paths. The monorepo (tetherto/qvac) is the primary repo and stays path-filtered; it is intentionally NOT listed under extraRepos. Today's extraRepos are an explicit curated list:
- Ops:
tetherto/github-ops,tetherto/oss-actions,tetherto/qvac-actions,tetherto/qvac-devops,tetherto/qvac-testops,tetherto/release-ops,tetherto/data-github-ops - Dev:
tetherto/qvac-workbench,tetherto/qvac-internal,tetherto/qvac-test-suite,tetherto/qvac-registry-vcpkg,tetherto/qvac-ext-lib-whisper.cpp,tetherto/qvac-ext-stable-diffusion.cpp,tetherto/qvac-fabric-llm.cpp,tetherto/qvac-ext-ggml,tetherto/qvac-ext-bergamot-translator,tetherto/qvac-ext-marian-dev - Research:
tetherto/qvac-research-tool-call,tetherto/qvac-research-medpsy,tetherto/qvac-research-translations-nmt,tetherto/qvac-research-evaluate,tetherto/qvac-research-synthetic-data-creation,tetherto/qvac-research-model-training,tetherto/qvac-model-tools,tetherto/qvac-rnd-fabric-llm-bitnet,tetherto/qvac-rnd-fabric-llm-finetune
extraRepos entries are plain owner/name strings used as-is. Glob entries (an owner/name whose name segment contains *, e.g. tetherto/qvac-*) are also supported and resolved dynamically per run via gh repo list <owner> --no-archived — add one to the list if you'd rather track every matching repo automatically instead of curating. Any repo the script cannot read is skipped with a one-line warning on stderr.
When to use this skill
Use when:
- User asks about open DevOps pod PRs, review status, or what needs attention
- User asks specifically about stale PRs touching DevOps paths
- User wants to know which DevOps pod PRs to review next
- User invokes
/qv-devops-pr-status
Prerequisites
ghCLI installed and authenticated (gh auth status)- User must have read access to
tetherto/qvacAND every repo declared underextraRepos(any repo the script cannot read is skipped with a one-line warning on stderr) - Team roster +
extraReposmaintained at .github/teams/devops.json
Usage
DATE="$(date -u +%Y-%m-%d)"
node .cursor/skills/_lib/pr-skills/pr-status.mjs --pod devops --mode team --authors pod \
2> /tmp/devops-pr-status-${DATE}.stderr \
| tee "/tmp/devops-pr-status-${DATE}.txt"
--authors pod restricts the main dashboard to PRs authored by DevOps roster members. PRs that touch DevOps-owned paths (in the monorepo) or live in any extra repo but are authored outside the roster are surfaced in a separate "Excluded" section at the bottom of the same dashboard, so the pod still has visibility into cross-pod work hitting its surfaces without those PRs polluting the queue. See .cursor/skills/_lib/pr-skills/README.md for the flag's full behavior.
extraRepos is honored only by --mode team. --mode review and --mode my continue to operate against the configured primary repo only (the monorepo); cross-repo personal review/my-PR dashboards are not in scope of this skill.
The first line of the dashboard is a Repos: summary listing the primary repo plus every extra repo that contributed to the run, so the user can see the full scope at a glance. PRs from extra repos render as owner/repo#<num> (e.g. tetherto/qvac-workbench#42); PRs from the primary monorepo render as bare #<num> exactly as before. The same prefix shows in the Excluded section.
For the personal review queue scoped to DevOps PRs, use --mode review (without --authors pod — review queue intentionally includes cross-pod authors whose review the user owes). That mode stays on the primary repo.
Workflow
Run the script with
--pod devops --mode team --authors pod, teeing stdout to/tmp/devops-pr-status-<YYYY-MM-DD>.txtso the dashboard is available for paste afterwards. Redirect stderr to a sibling.stderrfile (it contains progress /SLACK_VALIDATION_REQUIREDnotices and any skipped-repo warnings, not dashboard content).Present the dashboard to the user in the chat presentation format (see below) — not as a raw paste of the script output.
Surface the summary header counts (need your re-review / stale / merge conflicts / excluded) prominently.
Print the paste-ready copy commands. The dashboard at
/tmp/devops-pr-status-<DATE>.txtis plain text with two-space indent — when pasted into a Slack thread, Slack auto-renders the indented lines as nested bullets and turns#<num>into PR auto-links. No re-formatting is needed.pbcopy < /tmp/devops-pr-status-${DATE}.txt # macOS xclip -selection clipboard < /tmp/devops-pr-status-${DATE}.txt # Linux wl-copy < /tmp/devops-pr-status-${DATE}.txt # WaylandAfter showing results, offer: "Want me to review any of these? Provide the PR URL and I'll run
/qv-devops-pr-review(or/qv-pr-reviewfor the generic flow)."
Chat presentation format
The in-chat rendering uses Markdown with hyperlinked PR numbers. This is distinct from the paste-ready Slack form (auto-linked plain text) saved to the temp file. Both must be produced on every run.
Required layout (in this exact order):
- Title line —
## DevOps Pod — PR Status (authors scoped to roster). - Headline summary — one bold line restating the script summary counts (
N PRs need attention · X fully approved · Y need your re-review · Z stale). Append· <K> repos scannedwhen the script'sRepos:line lists more than just the primary repo (i.e.,extraReposresolved to at least one repo), so the user can see the scope at a glance. - Roster line — one-line listing of the roster:
Refresh from .github/teams/devops.json on every run; do not hardcode if the file has drifted.Roster: `Proletter` (lead) + `darkynt`, `GSServita`, `sidj-thr`, `tamer-hassan-tether`, `yauhenipankratovich-web`. - Headline analysis — one short paragraph identifying the highest-leverage cluster in the queue (e.g., "Four
QVAC-18047PRs all sit on team-lead approval only — fastest path to drain the queue."). Skip when the queue is empty. ### :red_circle: Stale (>3d) — N— one bullet per stale PR.### :large_yellow_circle: Needs Review — N— one bullet per active PR.### :repeat: Needs your re-review — N— only if the section is non-empty.### Excluded (non-roster authors)— populated from the script's "EXCLUDED" section. One bullet per PR. Acts as a quick visibility list, not a review queue.### Paste-ready— thepbcopy/xclip/wl-copyblock.
Bullet format for the active sections (Stale / Needs Review / Re-review):
- [<ref>](<url>) — <title> · `<author-login>` · <age> · <approvals/notes> · **<blockers/labels>**
<ref>is#<num>for PRs in the primary monorepo andowner/repo#<num>(e.g.tetherto/qvac-workbench#42) for PRs from anyextraReposentry. Mirror the script'sprRefform 1:1 — the rendered link text must match what appears in the dashboard at/tmp/devops-pr-status-<DATE>.txt.[<ref>](<url>)— Markdown link, never bare<ref>.<title>is the PR title verbatim, no truncation.<author-login>is wrapped in backticks.<age>is the script's age string (e.g.,4d 13h).<approvals/notes>lists:white_check_mark: <login>/:x: <login>/:arrows_counterclockwise: <login>for any non-pending reviews on the PR (from the script'sReviews:/Other:lines).<blockers/notes>is bolded — "needs team-lead approval", "needs team-member approval", "needs team-member + team-lead approval", or any:warning: merge conflictsflag. Include labels in plain backticks (e.g.,`verified`) when present.
Bullet format for the Excluded section (compact — these are not the pod's review queue):
- [<ref>](<url>) `<author-login>`
References
- Pod metadata: .github/teams/devops.json
- Shared library README: .cursor/skills/_lib/pr-skills/README.md
- Generic PR review skill: .cursor/skills/qv-pr-review/SKILL.md
- DevOps-flavored PR review skill: .cursor/skills/qv-devops-pr-review/SKILL.md