How to Write a PR Description That Actually Sounds Native
I've reviewed thousands of PRs from developers across 6 countries. The code is usually fine. The English? That's where things get interesting.
Here's a collection of real patterns I've seen (anonymized), what native speakers actually think when they read them, and how to fix each one.
The "Please Kindly" Pattern
What non-native speakers write:
Please kindly review this PR. I have made some changes to the authentication module.
Please let me know if you have any questions. Thank you for your time.
What native speakers think: "This reads like a customer service email, not a PR description."
What to write instead:
## What
Refactored the auth module to use JWT refresh tokens.
## Why
Session tokens were expiring mid-workflow (see #142). Refresh tokens let us extend sessions without re-auth.
## How
- Added `refreshToken()` to AuthService
- Updated middleware to auto-refresh on 401
- Migration: new `refresh_tokens` table
The rule: PR descriptions are technical documents, not letters. Use What/Why/How structure. Skip greetings and pleasantries.
The "I Think Maybe" Pattern
What non-native speakers write:
I think maybe we should consider possibly using a different approach here,
if that's okay with you.
What native speakers think: "Are they unsure about the technical approach, or just being overly polite? I genuinely can't tell."
What to write instead:
I'd suggest using a connection pool here instead of creating new connections per request.
The current approach will hit scalability issues around ~100 concurrent users.
The rule: One hedge word is polite. Three hedge words is confusing. "I'd suggest" or "Consider" is enough — then state your case directly.
The "You Should" Pattern
What non-native speakers write:
You should change this variable name. You should also add error handling here.
You should not use var.
What native speakers think: "This feels like a lecture, not a code review."
What to write instead:
| Severity | Template | Example |
|---|---|---|
| Nitpick | Nit: [suggestion] |
Nit: userCount reads better than cnt
|
| Suggestion | Consider [doing X] — [reason] |
Consider extracting this into a helper — it's used in 3 places |
| Blocking | [Issue]: [explanation] |
This will panic on nil input — we need a guard here |
The rule: Frame feedback as observations about the code, not instructions to the person. "This will panic" vs "You should add a nil check."
The "Fixed Bug" Commit Message
What non-native speakers write:
fixed bug
update code
modify function
add some changes
What native speakers think: "What bug? What code? I'm going to have to read the entire diff."
What to write instead (Conventional Commits):
fix(auth): prevent session expiry during active requests
The JWT middleware was checking token expiry before processing the request,
causing 401s for long-running uploads. Now checks after.
Closes #142
The template:
<type>(<scope>): <what changed>
<why it changed — the context that the diff alone doesn't show>
<reference to issue/ticket>
Types: feat, fix, refactor, docs, test, chore
The "Please Help Me" Standup
What non-native speakers write:
Yesterday I was working on the task. Today I will continue working on it.
I have no blockers.
What native speakers think: "This tells me nothing."
What to write instead:
**Yesterday:** Got the JWT refresh flow working end-to-end. Tests passing locally.
**Today:** Integration testing against staging, then PR.
**Blocked:** Need access to the staging KV namespace — @ops can you add me?
The rule: Be specific. Name the feature, the status, the next concrete action. "Working on the task" is a non-update.
The Cheat Sheet
| Instead of... | Write... |
|---|---|
| Please kindly... | (just skip it) |
| I think maybe we should consider... | I'd suggest... / Consider... |
| You should... | Nit: / Consider... / This will [problem] |
| Fixed bug | fix(scope): description |
| I was working on the task | Got [specific thing] working, next up [specific thing] |
| Please let me know if you have any questions | (just skip it — they'll ask if they have questions) |
| Thank you for your time | (unnecessary in PR context) |
| I want to ask... | Quick question: ... |
| Can I know...? | Do you know...? / Is there a way to...? |
| I have met a problem | I ran into an issue with... |
Why This Matters
These aren't grammar mistakes. They're register mistakes — using email-formal language in a casual-technical context, or using a command tone when a suggestion tone is expected.
Native speakers won't correct you. They'll just form a vague impression that your communication is "a bit off." Over time, that impression compounds.
The good news: the patterns are finite and learnable. Once you internalize the ~20 templates above, you'll sound native in 90% of dev communication.
I built DevGlish to solve this exact problem. It's a macOS menu bar app that gives you context-aware English suggestions while you work — select text, press ⌘⇧D, get instant guidance on pronunciation, phrasing, and native speaker conventions. It even detects which app you're in (Slack vs GitHub vs email) and adjusts the tone.
Free tier: 10 lookups/day. Try it →
Top comments (0)