بنقرة واحدة
status
Show a dashboard of all open PRs with review state, unresolved findings, and blockers.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Show a dashboard of all open PRs with review state, unresolved findings, and blockers.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Generate a PM handoff prompt for context-window turnover. Captures static config, live GitHub state, in-flight thread state, and memory summary into a self-contained prompt for a fresh PM thread. Bootstraps `.claude/pm-config.md` on first run. Triggers on "pm-handoff", "handoff", "context turnover", "new pm thread", "thread turnover".
Scan open issues for staleness and suggest closures. Detects issues solved by merged PRs, no-activity issues (30+ days), superseded issues, and potential duplicates of already-closed issues. Presents recommendations for user confirmation — never auto-closes. Triggers on "pm-clean", "stale issues", "clean backlog", "close stale".
Active PM orchestrator — manages issue pipeline, tracks coding threads, ranks the open backlog (OKR-aware) against a business goal, and suggests next work. Cold-starts from GitHub state or resumes from a /pm-handoff prompt. Triggers on "pm", "project manager", "orchestrate", "what should I work on", "rank issues".
Re-scan the current repo and update `.claude/pm-config.md` with fresh infrastructure and architecture detection while preserving user-edited sections (Role, OKRs, Team, Notes, Dependency Rules, Workflow Rules), then run a stale-cleanup pass to prune long-abandoned worktrees and branches. Use this after major milestones, new service integrations, or significant directory restructuring. Triggers on "pm update", "update pm config", "refresh pm config", "rescan repo".
Capture-only thread mode for drafting and opening well-structured GitHub issues. Puts the thread into issue-capture mode — the only job is creating, editing, and closing issues (no implementation, no worktrees, no /start-issue). Always reflects before writing (1–3 scope/clarifying questions), creates canonical 6-section bodies with functional-first tone, runs dedup search, suggests labels, supports batch + cross-references, and prints the issue URL as the closing line of every create/update. Supports /update <N> <statement>, natural-language edit-in-place, and retract. Invoke as `/issue-maker [rapid-fire] [--export-prompt]`.
Manage the OKRs section of `.claude/pm-config.md`. Show current objectives, set new ones, or get AI-suggested updates based on recent work. OKRs drive `/pm` ranking. Use this whenever you want to view, set, or update project OKRs, objectives, key results, or goals. Triggers on "pm okr", "set okrs", "show okrs", "suggest okrs", "project goals", "objectives".
| name | status |
| description | Show a dashboard of all open PRs with review state, unresolved findings, and blockers. |
| triggers | ["show PRs","PR dashboard","what's open","review status"] |
| model | sonnet |
| allowed-tools | ["Read","Glob","Grep","Bash","WebFetch","WebSearch"] |
Build a status dashboard of all open PRs in this repo.
gh pr list --state open --json number,title,headRefName,updatedAt,author,additions,deletions --limit 50
If no open PRs, say "No open PRs." and stop.
pr-state.sh first (NON-NEGOTIABLE): Before calling
gh api .../pulls/{N}/reviews,pulls/{N}/comments, orissues/{N}/commentsdirectly, callpr-state.sh --pr Nfirst and read the cached JSON bundle. All review-state queries in this skill read from the$STATEbundle — do not add inlinegh apicalls to these three endpoints.
For each open PR, run the shared PR-state helper once per PR. One invocation returns reviews, inline comments, issue comments, unresolved threads, check-runs, and bot status rollups — all derived from the same HEAD SHA:
STATE=$(.claude/scripts/pr-state.sh --pr "$N")
All subsequent queries read from $STATE:
# Last review from CR, BugBot, or Greptile (state: APPROVED / COMMENTED / CHANGES_REQUESTED)
jq '[.comments.reviews[]
| select(.user.login == "coderabbitai[bot]" or .user.login == "cursor[bot]" or .user.login == "greptile-apps[bot]")
| {user: .user.login, state, submitted: .submitted_at}]
| sort_by(.submitted) | if length == 0 then {} else last end' "$STATE"
# Unresolved thread count
jq '.threads.unresolved_count' "$STATE"
# CR/BugBot/Greptile issue-comment count (summaries, acks, PR-level findings)
jq '[.comments.conversation[]
| select(.user.login == "coderabbitai[bot]" or .user.login == "cursor[bot]" or .user.login == "greptile-apps[bot]")]
| length' "$STATE"
# CodeRabbit check-run status (also serves as rate-limit signal via title).
# Falls back to the commit-status rollup for repos that report CR via the legacy statuses API.
CR_CHECK=$(jq '.check_runs.all[] | select(.name == "CodeRabbit") | {status, conclusion, title}' "$STATE")
if [ -z "$CR_CHECK" ] || [ "$CR_CHECK" = "null" ]; then
jq '.bot_statuses.CodeRabbit' "$STATE" # legacy commit-status path
else
echo "$CR_CHECK"
fi
# BugBot (Cursor) check-run — included so PRs on the BugBot path show review status
jq '.check_runs.all[] | select(.name == "Cursor Bugbot") | {name, status, conclusion}' "$STATE"
For a structured merge-readiness call per PR, run the shared merge-gate verifier:
.claude/scripts/merge-gate.sh "$PR_NUM"
Exit 0 → Clean (merge-ready). Exit 1 → parse .missing[] to classify: entries about findings/threads = Has findings, entries about CI incomplete or review not yet posted = Review pending, entries about rate limits = Rate-limited. Exit 3 → PR not found. Exit 2/4 → script/gh error.
The JSON also surfaces .reviewer, .head_sha, .ci_status, .merge_state, and .mergeable — use these to populate the dashboard columns without re-querying.
Classifications to present in the table:
0.mergeStateStatus is UNKNOWN (GitHub still computing mergeability).merge_state == "BEHIND" or missing mentions BEHIND — show Rebase (invoke /fixpr); do not conflate with generic BLOCKED.missing.Always run .claude/scripts/cr-review-hourly.sh --check from the repo root (same HOME as the agent). Parse JSON on stdout and put CR quota: <reviews_used>/<budget> (or CR quota: exhausted) in the footer every time, even when ~/.claude/session-state.json does not exist yet (--check then reports 0 used).
If session-state.json exists, also cross-reference:
Output a table like:
PR | Title | Reviewer | State | Findings | HEAD SHA | Updated
------|--------------------------------|----------|----------------|----------|----------|--------
#40 | Add slash commands | CR | Review pending | 0 | 517690c | 2 min ago
#38 | Fix auth middleware | Greptile | Has findings | 3 | d0e4fef | 15 min ago
#35 | Add post-merge hook | CR | Clean | 0 | 7b2cfbf | 1 hr ago
Below the table, add:
cr-review-hourly.sh --check — CR quota: N/M or exhausted (deterministic; do not gate on session-state.json existing)