惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
U
Unit 42
H
Help Net Security
博客园_首页
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Recorded Future
Recorded Future
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
S
Security @ Cisco Blogs
M
MIT News - Artificial intelligence
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
K
Kaspersky official blog
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
WordPress大学
WordPress大学
C
Cisco Blogs
G
Google Developers Blog
N
News and Events Feed by Topic
P
Palo Alto Networks Blog
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
博客园 - 聂微东
Security Latest
Security Latest
Security Archives - TechRepublic
Security Archives - TechRepublic
O
OpenAI News
云风的 BLOG
云风的 BLOG
IT之家
IT之家
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
小众软件
小众软件
Scott Helme
Scott Helme
大猫的无限游戏
大猫的无限游戏
L
LINUX DO - 最新话题
Microsoft Azure Blog
Microsoft Azure Blog
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
F
Fortinet All Blogs
The Last Watchdog
The Last Watchdog

Graphite blog

Introducing Code Tours: a new way to review Introducing Cursor Cloud Agents in Graphite Building the future of software development with Cursor Reimagining the PR Page: Designing for speed and focus Graphite changelog [11-20-2025] Graphite changelog [11-04-2025] Graphite changelog [10-16-2025] The future of engineering is collaborative (and already here) Meet Graphite Agent: the next evolution of AI code review Introducing frozen branches: A safer way to build on your teammates’ work Graphite changelog [09-17-2025] How we sped up code search for Graphite Chat Introducing Graphite Chat AI is writing code—here's why it also needs to review that code How I got Claude to write code I could actually ship How we built the first stack-aware merge queue (and why it matters) How we organize our monorepo to ship fast Graphite brings stacking to Tower Code review tooling: Should you build or buy? Making AI code review available to everyone Introducing: The new Graphite + Linear integration Graphite raises $52M and launches Diamond to reimagine code review for the age of AI Why AI will never replace human code review How stacked PRs unblock distributed development teams Graphite is going to Developer Week 2025 Beating the end of year code freeze How Graphite’s eng team ships code remarkably fast Why we chose Anthropic's Claude to power Graphite Reviewer AI code generation will remain fragmented How we redesigned Graphite's landing page in-house Introducing Graphite Reviewer: your AI code review companion How AI code review reduces review cycles to improve developer productivity What if you could get instant feedback on your code? The new developer toolchain Not Rocket Science - How Bors and Google’s TAP inspired modern merge queues Graphite's State of code review 2024 How Google migrated billions of lines of code from Perforce to Piper Going from 0 to 1: How to write better unit tests when there are none Speed up your merges: Parallel CI is now generally available for teams using Graphite’s merge queue Down for less than four minutes a month: how AWS deploys code BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days Graphite is now free for startups and open source projects Launch week wrap-up (May 2024) Reduce CI costs for Buildkite and GitHub Actions Cheaper CI & faster merging with batching How Google does code review The technical learning curve at a startup is gentler than you might think Graphite will now automatically rebase your partially-merged stacks Multiple engineers can now seamlessly collaborate on the same stack of PRs Do you ever outgrow GitHub? From the 80's to 2024 - how CI tests were invented and optimized Graphite changelog [4/10/2024] 🎺 Graphite changelog [4/25/2024] 🐸 How Stack Overflow replaced Experts Exchange How GitHub monopolized code hosting Graphite changelog [3/27/2024] 🤝 The core principles of building a good AI feature Onboarding roulette: deleting our employee accounts daily Graphite changelog [3/13/2024] 🚁 Why Facebook doesn’t use Git How to recreate the Phabricator code review workflow Types of code reviews: Improve performance, velocity, and quality What's the best GitHub pull request merge strategy? Phabricator vs GitHub vs Graphite: How do they stack up? Improving team velocity through better pull request practices Moving fast breaks things: the importance of a staging environment Building trust as a software engineer Keeping code simple: moving fast by avoiding over-engineering What's better than GitHub pull request filters? The Graphite pull request inbox 7 Best Phabricator alternatives for PR stacking + code review [2024] Accurate eng estimations: predicting and negotiating the future Tracking and understanding GitHub PR stats: A step-by-step guide 8 pull request best practices for optimal engineering What’s next for Graphite Graphite Q1 Launch week: Stacking with the tools you love Graphite Q1 Launch week: Making stacking seamless Accelerating code review The Mom Test How to use stacked PRs to unblock your entire team Graphite Q1 launch week 2024 The practical and philosophical problems with AI code review Empirically sup code review best practices Call site attribution: how to pinpoint rogue SQL queries throttling your performance Every engineer should understand git reflog Post mortem: we took 124 seconds from you, here's 378 back Your GitHub pull request workflow is slowing everyone down Optimizing CI/CD workflows for trunk-based development Why we use AWS instead of Vercel to host our Next.js app How large pull requests slow down development 3 key lessons in application server optimization Trunk-based development: why you should stop using feature branches Git was built in 5 days Why large companies and fast-moving startups are banning merge commits How long should your CI take? Experimenting with AI code review CRA to AppRouter in 5 Steps: A case study with Graphite Graphite Changelog [10/18/2023] How 10,000 Developers All Contribute to the same Repo
The comprehensive guide to writing the best PR title of all time
Kenneth DuMe · 2023-09-28 · via Graphite blog

Cursor Cloud Agents are now in Graphite. Create, review, and ship without leaving your PR.

author

Kenneth DuMez

Sep 27, 2023

The debate around how best to communicate code changes has been raging since punch card programming.

Behold! A PR from 1970:

Complete with commit messages: PROJF SLOW VER, GDRAW, PROJF DEMO, XEQ GDRAW, PROJF FAST VER. If these kinds of commit messages look like the ones in your repo… I’m deeply sorry. But there’s still hope!

*** Note in this article I'll be using PR title and commit message pretty interchangeably, as I believe that all PRs should only contain one commit. To read more about that check out stacking.dev ***

While we’ve come a long way since the 70’s, there’s still a lot of disagreement on what the absolute best way to write PR titles/commit messages is. Most organizations and open-source projects typically dictate messaging style in their contribution guidelines. Angular’s contributor guidelines, for example, specify that “Any line of the commit message cannot be longer 100 characters!” On the other hand, Linus Torvalds specifies “74 characters" in his contributor’s guide for Subsurface.

There also exits whole projects specifically dedicated to standardizing PR/commit messaging, such as Conventional Commits, outlining a spec that has been adopted by various opensource projects and organizations around the world.

While it’s fine and good to have opinions based on ideological fervor and passion, I prefer opinions based on facts based on data! Today, we’re going to quantitatively dive into what makes a good PR title.

(For all the correlation ≠ causation folks out there I totally hear you, but sometimes it’s fun to jump to conclusions 🙂.)

The optimal PR title

For the sake of this exercise, let’s assume that the primary purpose of a PR title is: “get your PR reviewed quickly.” It’s also fair to pick titles for things like… “quality,” but for now, we’ll leave that to the contributor guides. If we put everything else aside, what is the best PR title optimizing for “how fast can I get reviewed?” Here’s your data-backed answer:

(Sampled from 2 million PRs, of length 50-250 lines, with at least one review, comparing median time to first review)

  • Make your title short (under 40 characters, ideally)

    • 18% faster than 100 char titles

  • Include an exclamation point but not a question mark

    • 30% faster with an exclamation point

    • 3% slower with a question mark

  • Keep it all lowercase

    • 47% faster than titles with any capitalization

  • Keep it PG (no cursing)

    • 10% faster without any curse words

  • Do include “quick” or “fast”

    • 3% faster

  • If on the fence, use the word “fix” instead of “feat”

    • “fix” is 73% faster than “feat”

By plugging all of this information into our supercomputer, we can derive the scientifically perfect PR title.

And we get…

fix!: delete prod!! fast!!!

Coming in at a mere 27 lowercase characters, with exclamation points, zero curse words, and with the words “fix” and “fast, I can guarantee you this will be reviewed within seconds.

Feel free to title all your future PRs the same.

PR titles matter

The average professional engineer (more than 200 PRs a year) authors nearly 600 PRs a year (590) with a median time to review of 1.34 days. That's a lot of titles for a person to have to write. And how they write those titles matters - even a 10% increase in PR review time would save the average engineer 80 days of waiting around for review. You can view your own stats here to see how you stack up with the rest of the coding world.

Now, to be fair, engineers aren’t completely blocked while they wait for review. If they’re using Graphite and leveraging stacked PRs, they can even begin work on dependent features while they wait. We’ve found the median engineer has three unreviewed PRs concurrently awaiting feedback at any one time. So, if we divide the 80 days of waiting by 3 — that’s still ~27 days of waiting time that could be saved by a 10% increase in review speed.

The official style guide for fast PRs

At Graphite, we obsess over the details so you don’t have to. In summary, for a faster review, we recommend a PR title be:

  • Short

  • Lowercase

  • Categorized as “fix” (if appropriate)

  • Include an exclamation point

  • Clean (no swearing)

Incorporate this framework into your existing PR writing flow, and let us know how it goes by messaging us in our community slack!

Related articles