Run-On Sentences: Why Your PRs Get Skimmed (and How to Fix It)

By Brexis Wazik 7 min read -

You write code in small, focused functions. One job each. Then you open Slack and type this: “can u do reaseach on grammer for me and teach me i already know but as of now i am making so much mistake.”

That is three or four sentences crammed into one breathless line, with no full stops, no capitals, and a couple of errors hitching a ride. Your reviewer has to read it twice. The fix is the same instinct you already use in code: one idea, then stop.

Why this matters

Your writing is read more than your code is. Commit messages, PR descriptions, standups, bug reports, code comments - these are the interface other people use to understand your work.

And here is the uncomfortable part: nobody reads carefully. Reviewers scan. A wall of run-on text gets skimmed, and skimmed text loses details. When the detail that got missed was “this only happens in production,” that is a bug shipped because of punctuation.

Clear sentences are not about sounding smart. They are about being understood on the first pass, so you stop re-explaining yourself in the thread below.

The whole rule in 30 seconds

A complete sentence needs three things:

  1. A subject - who or what (The build)
  2. A verb - the action (failed)
  3. A complete thought - it can stand on its own (The build failed.)

When you have two complete sentences, you cannot just run them together or staple them with a comma. You have to join or separate them properly. That is the entire topic.

The two mistakes you actually make

Run-on: two sentences with no break

the build failed i pushed a fix

Two complete thoughts (“the build failed” / “I pushed a fix”) slammed into one line. Your reader’s brain has to find the seam itself.

Fix: The build failed. I pushed a fix.

Comma splice: two sentences glued with only a comma

the tests pass, the deploy is green

This feels right because there is a pause. But a comma is too weak to hold two sentences together. Think of it this way: a comma is not glue.

Fix: The tests pass. The deploy is green.

The test for both: if you can split the line into two sentences that each stand alone, you must use a real join or a full stop between them.

When you have two complete thoughts, pick one of these. That is the whole toolkit.

FixLooks likeUse when
Full stop .It failed. I fixed it.The two ideas are independent. Your safest default - use this most.
Semicolon ;It failed; I fixed it.The ideas are closely linked and you want them on one line.
Comma + conjunctionIt failed, so I fixed it.You want to show the relationship: and (adds), but (contrasts), so (result).
Subordinating wordBecause it failed, I fixed it.One idea depends on the other: because / when / after / if / which.

When in doubt, reach for the full stop. Two short sentences are almost never wrong.

See it, fix it

Real lines from real dev chatter, cleaned up.

What you tend to writeCorrectedWhy
the build failed i pushed a fixThe build failed. I pushed a fix.Run-on. Two thoughts, two sentences.
the tests pass, the deploy is greenThe tests pass. The deploy is green.Comma splice. A comma can’t join two sentences.
i refactored the service it is faster nowI refactored the service, and it is faster now.Run-on. Comma + and joins two complete thoughts.
we hit a 429, we should add a retryWe hit a 429, so we should add a retry.Comma splice. so shows cause leading to effect.
merged the PR (standalone Slack line)I merged the PR.Fragment. No subject - add I.
because the token expired (alone)The request failed because the token expired.Fragment. A because clause can’t stand alone.

A fragment is the opposite problem

A run-on is too much in one sentence. A fragment is not enough - a piece pretending to be a whole.

Because the token expired.

Read it out loud, alone. You are still waiting, right? That “waiting for more” feeling is the fragment test. The clause needs to attach to a real sentence:

The request failed because the token expired.

Same with a bare verb on a Slack line: “Restarting the worker queue.” It has no subject. Who is restarting it? Add one: “I’m restarting the worker queue.”

Common misconceptions

“A comma works because there’s a natural pause.” A pause and a sentence boundary are not the same thing. A comma marks a small pause inside a sentence; it cannot end one. Two complete sentences need a full stop, a semicolon, or a comma with a joining word.

“Semicolons are formal and risky, so I avoid them.” A semicolon just means “full stop, but these two thoughts belong together.” It failed; I fixed it. is perfectly clean. It is a tool, not a flourish.

“Long sentences sound more thorough.” They read as harder, not deeper. The clearest engineers write short. Length hides your point; it does not strengthen it.

“This only matters in formal docs.” It matters most in the fast stuff - Slack, commits, PRs - because that is what gets skimmed under time pressure.

How to use this in your daily writing

  1. Commit messages - one line, one idea. Fix stale cache so users see current prices beats fixed cache it was stale users saw old prices.
  2. PR descriptions - short sentences, each ending in a full stop. Reviewers scan. A run-on paragraph gets skimmed and your “note: skip the migration” disappears.
  3. Standups - split the three parts. Yesterday I finished the retry logic. Today I'm on the 429 handler. No blockers. Three clean sentences, not one chain.
  4. Code comments - use the join to show cause. // Token can expire mid-request, so we refresh before retrying. is clearer than // token expired refresh and retry it works now.
  5. Bug reports - separate what happened from what you expected. The export returns an empty file. I expected the full order list. Two sentences, instantly clear.

Keep three mnemonics in your head:

  • Two subjects, two verbs → needs a join or a stop.
  • A comma is not glue. It always needs a conjunction to join sentences: , and / , but / , so.
  • The fragment test: say it alone. If you are left waiting, attach it.

Try it yourself

Fix these before reading the answers.

  1. the migration ran it dropped the wrong column we need a rollback
  2. i opened the PR, the CI is still running
  3. Choose: (A) The cache was cold, so the first request was slow. (B) The cache was cold, the first request was slow.
  4. we shipped the feature flag off by default users wont see it yet

Answers:

  1. The migration ran. It dropped the wrong column, so we need a rollback. Split the first run-on with a full stop; join the cause and result with , so.
  2. I opened the PR. The CI is still running. Comma splice fixed with a full stop. Capitalize I.
  3. A. , so correctly joins two complete sentences. B is a comma splice.
  4. We shipped the feature. The flag is off by default, so users won't see it yet. Break the run-on, then use , so for the result. Note the apostrophe in won't.

Conclusion

If you remember one thing: when you can split a line into two sentences that each stand alone, you must put a full stop, a semicolon, or a “comma + and/but/so” between them. That single habit clears up most of what makes writing hard to read.

Punctuation is where structure lives. But the other half of being understood is word choice - the small countable-versus-uncountable slips like “so much mistake” instead of “so many mistakes” that quietly mark writing as non-native. That is the next thing worth getting right, and it is easier than it looks.

Frequently asked questions

What is a run-on sentence?

A run-on is two complete sentences jammed together with no break, like "the build failed i pushed a fix." Each part could stand alone, so they need a full stop, semicolon, comma plus a conjunction, or a joining word between them.

What is a comma splice?

A comma splice is two complete sentences joined by only a comma, like "the tests pass, the deploy is green." A comma is too weak to glue two sentences. Use a full stop, a semicolon, or add a word like "and," "but," or "so."

How do I fix a run-on sentence quickly?

Find the two complete thoughts and split them with a full stop. That single fix handles most cases. If the ideas are closely linked, use a semicolon or add "and," "but," or "so" instead.

When should I use a semicolon instead of a full stop?

Use a semicolon when two complete sentences are closely related and you want them on one line, like "It failed; I fixed it." When the ideas are independent, a full stop is the safer default.

What is a sentence fragment?

A fragment is an incomplete sentence missing a subject, a verb, or a finished thought, like "Because the token expired." Read it aloud alone; if it leaves you waiting for more, attach it to a full sentence.

Why does sentence structure matter in code reviews?

Reviewers scan rather than read. A wall of run-on text gets skimmed, so details and bugs get missed. Short, complete sentences make your intent clear on the first pass.

Continue reading

Related topics