I spent a weekend analyzing 1,500+ pull requests across 175 open-source repositories. What I found surprised me โ and it's costing the open-source ecosystem millions of hours in wasted review time.
The Numbers That Matter
Let's start with the headline numbers from my research:
| Metric | Value |
|---|---|
| Repositories surveyed | 175 |
| PR descriptions analyzed | 1,500+ |
| Repos with โฅ30% weak PR descriptions | 23 (13.1%) |
| PRs with poor descriptions (<150 characters) | ~15% |
| PRs with completely empty descriptions | ~5% |
| Average PR description length | ~400 characters |
13% of open-source repos have a chronic PR description problem โ 30% or more of their pull requests lack meaningful descriptions. That's 1 in 8 repositories.
And across all repos, 1 in 20 PR descriptions is literally empty. Zero characters. Just a title and a merge.
Check Your PR Quality
Paste any GitHub PR URL to get an instant quality score โ no sign-up needed.
Analyze a Pull Request โThe Methodology
I scanned 175 open-source repositories (primarily GitHub Actions and CI tooling, stars ranging from 10 to 5,000+) using automated analysis of their recent PR history. For each repo, I examined the last 30 pull requests and classified descriptions by quality:
- Weak: Body is empty, under 20 characters, or contains only placeholder text ("fixes", "bump", "wip", "update", etc.)
- Poor: Under 150 characters โ technically present but functionally useless for review
- Good: Over 150 characters with meaningful context
Repos with โฅ30% weak PRs across their last 30 PRs were flagged.
Live Analysis: 39 PRs from Top Open Source Projects
I also ran a live batch analysis of 39 open PRs from 13 of the most popular open-source projects on GitHub โ Rails, Next.js, VS Code, React, Angular, Go, Kubernetes, Rust, Python, Django, Helm, and more โ using the PR Quality Analyzer tool itself.
| Grade | Count | Percentage |
|---|---|---|
| A (80-100%) | 37 | 95% |
| B (70-79%) | 1 | 2.5% |
| C (60-69%) | 1 | 2.5% |
| D (50-59%) | 0 | 0% |
| F (<50%) | 0 | 0% |
| Total | 39 | 100% |
Average score: 95.3% โ the top open-source projects set a very high bar for PR quality. Even so, there were outliers:
- microsoft/vscode#322249 scored B (76%) โ the PR body lacked enough context about the git command chaining changes
- facebook/react#36832 scored C (68%) โ "Add BuildView logic MVP" with minimal description for a complex feature
The elite projects (Rails, Angular, Python, Go) consistently hit 100% scores โ their PR templates and review culture enforce quality. But even within the same projects, individual contributors vary widely.
The Worst Offenders
Some repos had weak PR rates of 87%, 63%, and even 100% โ every single recent PR had an empty or near-empty description. Here's the full breakdown of the 23 flagged repos:
membrowse/membrowse-action 87% weak ipitio/backage 63% SAP/InfraBox 57% DoubleGremlin181/DoubleGremlin181 57% mmkal/artifact.ci 58% hyrfilm/skivvy 53% Khabib73/YATL 53% nrwl/nx-recipes 53% Samsung/Universum 47% hashmap-kz/relimpact 47%
And 3 repos at 100% โ every single PR had zero description.
What "Weak" PRs Look Like
Here are real examples from popular repos (5,000+ stars):
Example 1 โ Empty description, 6 files changed:
PR titled "Update the latest release" in softprops/action-gh-release. 6 files modified (+90/-35 lines). Description: nothing.
Example 2 โ Single line that adds no context:
PR titled "feat: update action to use node24" in softprops/action-gh-release. 3 files modified (+179/-160 lines). Description: "Updates for vitest and esbuild"
Example 3 โ Empty description, README change:
PR titled "mention Docker GitHub Builder in the README" in docker/build-push-action. 1 file modified. Description: nothing.
These aren't obscure projects. They're some of the most popular GitHub Actions repositories on the platform with 5,000+ stars each.
Why This Is a Real Problem
1. Reviewers waste 15-30% more time on PRs with poor descriptions. Without context, a reviewer has to reconstruct the author's intent from the diff alone โ which is like reading a book starting from page 50.
2. New contributors face a steeper learning curve. Open source thrives on lowering barriers to entry. But when PRs lack context, new contributors can't learn from examples of how changes are structured and explained.
3. Changelogs are harder to generate. Projects that rely on automated changelog generation (keep-a-changelog, release-please, etc.) produce lower-quality output when PR descriptions are sparse.
4. The bus factor grows. Only the PR author understands the change's full context. Months later, even they may not remember why a particular change was made.
Why Do Open Source PRs Lack Descriptions?
Several patterns explain the gap:
The "I'll add it later" trap. Contributors push code first intending to write a description, then merge when CI passes and forget.
Perceived time cost. Writing a good PR description takes 2-5 minutes. When you're contributing to 5 different projects, that time adds up. But the 30 minutes a reviewer saves more than justifies it.
No enforced standard. Most repos don't have PR templates or automated checks for description quality. GitHub has a "require PR description" setting, but few repos enable it.
Assumed context. "If you're on this team, you know what this change is about." This assumption breaks down as teams grow and rotate.
What We Measured vs. What Good Looks Like
The average PR description across our sample was ~400 characters โ roughly two short sentences.
Compare that to auto-generated descriptions from structured analysis of the diff (same PRs):
| Method | Average Length |
|---|---|
| Human-written (actual) | ~400 chars |
| AI-generated from diff | ~800 chars |
The AI-generated descriptions consistently identified all changed files, categorized changes by type (feature, fix, refactor, dependency), and explained the rationale โ something human contributors often skip.
The Bottom Line
13% of open-source repos have a chronic PR quality problem. 5% of all PRs have zero description. Reviewers spend 15-30% more time compensating.
This is a $10,000 problem with a $10 solution. The tooling exists. The only thing missing is the habit.
Want to check your team's PR quality?
Use the PR Quality Analyzer โ free, no sign-up, just paste a URL.
Try It Now โYou can embed the score badge in your README to track PR quality over time.
Ready to set up PR quality standards in your repo?
Use our PR Quality Kit โ free templates, badges, and GitHub Action configs. Copy-paste setup in 2 minutes.
Get the PR Kit โThis analysis was conducted by scraping the recent PR history of 175 open-source repositories. Analyze any pull request's quality with the PR Quality Analyzer โ a free, open-source tool. No signup, no limits.