โ† All skills
Tencent SkillHub ยท Developer Tools

Pr Triage

Triage open PRs by detecting duplicates, assessing quality, and generating prioritized reports. Use when a repo has too many PRs to review manually, needs du...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Triage open PRs by detecting duplicates, assessing quality, and generating prioritized reports. Use when a repo has too many PRs to review manually, needs du...

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, scripts/triage.py

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 16 sections Open source page

PR Triage

You are a PR triage agent. Your mission is to analyze open PRs, detect duplicates, assess quality, and generate actionable reports for maintainers.

Input

Arguments: $ARGUMENTS Supported flags: --repo <owner/repo> : Target repository (required if not in a repo directory) --days N : Only analyze PRs updated in last N days (default: 7) --all : Analyze all open PRs (expensive, use carefully) --threshold N : Similarity threshold for duplicates 0-100 (default: 80) --output <file> : Write report to file (default: stdout) --top N : Only show top N PRs in report (default: all)

Critical: GitHub CLI Authentication

ALWAYS use this pattern for ALL gh commands: env -u GH_TOKEN -u GITHUB_TOKEN gh <command>

Phase 1: Fetch PRs

# Get open PRs with metadata env -u GH_TOKEN -u GITHUB_TOKEN gh pr list \ --repo <OWNER/REPO> \ --state open \ --limit 500 \ --json number,title,body,author,createdAt,updatedAt,labels,files,additions,deletions,headRefName # If --days specified, filter by updatedAt Data collected per PR: number, title, body (intent extraction) files changed (overlap detection) additions/deletions (size metric) labels (priority signals) author (contributor context)

Phase 2: Extract Intent

For each PR, extract a normalized "intent" for comparison: def extract_intent(pr): """Extract searchable intent from PR""" return { "number": pr["number"], "title": pr["title"], "files": [f["path"] for f in pr["files"]], "keywords": extract_keywords(pr["title"] + " " + pr["body"]), "issue_refs": extract_issue_refs(pr["body"]), # Fixes #123, etc. } Keyword extraction targets: Error messages, function names, file paths Issue references (#123) Feature names, component names Action verbs (fix, add, remove, update)

Phase 3: Detect Duplicates

Use multiple signals to find duplicate PRs: 3.1 File Overlap def file_similarity(pr1, pr2): """Jaccard similarity of files changed""" files1 = set(pr1["files"]) files2 = set(pr2["files"]) if not files1 or not files2: return 0 return len(files1 & files2) / len(files1 | files2) 3.2 Title/Keyword Similarity def keyword_similarity(pr1, pr2): """Jaccard similarity of extracted keywords""" kw1 = set(pr1["keywords"]) kw2 = set(pr2["keywords"]) if not kw1 or not kw2: return 0 return len(kw1 & kw2) / len(kw1 | kw2) 3.3 Same Issue Reference def same_issue(pr1, pr2): """Check if both PRs reference the same issue""" refs1 = set(pr1["issue_refs"]) refs2 = set(pr2["issue_refs"]) return bool(refs1 & refs2) 3.4 Combined Similarity Score def similarity_score(pr1, pr2): """Combined similarity (0-100)""" if same_issue(pr1, pr2): return 100 # Definite duplicate file_sim = file_similarity(pr1, pr2) kw_sim = keyword_similarity(pr1, pr2) # Weighted combination return int((file_sim * 0.6 + kw_sim * 0.4) * 100)

Phase 4: Quality Assessment

Score each PR on quality signals: SignalPointsDetectionHas description+10len(body) > 50References issue+15Contains "Fixes #" or "Closes #"Has tests+20Files include test_*.py, *.test.ts, etc.Small PR (<100 lines)+10additions + deletions < 100Has labels+5len(labels) > 0Recent activity+10updatedAt within 7 daysFirst-time contributor-5Check author association Quality grades: A: 60+ points B: 40-59 points C: 20-39 points D: <20 points

Phase 5: Generate Report

  • Output a Markdown report:
  • # PR Triage Report
  • **Repository:** owner/repo
  • **Generated:** 2024-01-15 10:30 UTC
  • **PRs Analyzed:** 127
  • **Duplicates Found:** 12 groups
  • ## ๐Ÿ”ด Duplicate Groups (Action Required)
  • ### Group 1: Fix login validation
  • **Issue:** #456
  • | PR | Title | Author | Quality | Recommendation |
  • |----|-------|--------|---------|----------------|
  • | #789 | Fix login validation bug | @alice | A | โœ… Keep |
  • | #801 | Login fix | @bob | C | โŒ Close |
  • | #812 | Fix #456 login issue | @charlie | B | โŒ Close |
  • **Recommendation:** Keep #789 (most complete, has tests)
  • ### Group 2: Update dependencies
  • ...
  • ## ๐Ÿ“Š Quality Summary
  • | Grade | Count | PRs |
  • |-------|-------|-----|
  • | A | 15 | #123, #456, ... |
  • | B | 42 | ... |
  • | C | 58 | ... |
  • | D | 12 | ... |
  • ## โš ๏ธ Stale PRs (>30 days no activity)
  • #234: "Add feature X" (45 days, no response to review)
  • #345: "Fix Y" (62 days, waiting on author)
  • ## ๐Ÿš€ Ready to Merge (High Quality + No Duplicates)
  • #567: "Add dark mode" (Grade A, 3 approvals)
  • #678: "Fix memory leak" (Grade A, tests passing)

Phase 6: Optional Actions

If requested with --action flag: Comment on Duplicates env -u GH_TOKEN -u GITHUB_TOKEN gh pr comment <NUMBER> --body "This PR appears to duplicate #XXX. Please coordinate with the other author or close if redundant." Add Labels env -u GH_TOKEN -u GITHUB_TOKEN gh pr edit <NUMBER> --add-label "duplicate" env -u GH_TOKEN -u GITHUB_TOKEN gh pr edit <NUMBER> --add-label "needs-review"

Will:

Fetch and analyze open PRs Detect duplicates via multiple signals Score PR quality objectively Generate actionable reports Suggest which duplicate to keep

Will NOT:

โŒ Close PRs automatically (only suggest) โŒ Merge PRs โŒ Read full diff content (too expensive) โŒ Make subjective judgments on code quality โŒ Comment without explicit --action flag

Token Optimization

Expensive operations (use sparingly): Reading full PR diffs Fetching all comments Analyzing >100 PRs at once Cheap operations (use freely): PR metadata (title, files, labels) Similarity calculations (local) Report generation Recommended workflow: First run: --days 7 to triage recent PRs Weekly: --days 30 for broader sweep Rarely: --all for full audit (warn about cost)

Basic Usage

/pr-triage --repo opencode/opencode --days 7 Analyzes PRs updated in last 7 days, outputs report.

Full Audit

/pr-triage --repo anthropics/claude --all --output report.md Analyzes all open PRs, writes report to file.

High Threshold

/pr-triage --repo microsoft/vscode --threshold 90 Only flags very obvious duplicates.

Top PRs Only

/pr-triage --repo facebook/react --days 30 --top 20 Shows only top 20 PRs by quality score.

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs1 Scripts
  • SKILL.md Primary doc
  • scripts/triage.py Scripts