Nit meaning in code review: comment terms and examples
Zihua Li · · 9 min read
A reviewer leaves “nit: trailing whitespace” on your pull request, then “LGTM with nits”. Review comments run on shorthand like this, and the shorthand carries a decision: what must change before merge and what is up to you. Here is what each common term means, and how to write comments that are clear about it.
In code review, “nit” is short for nitpick: a minor, non-blocking comment about a small detail such as a typo, a name, formatting or wording. The author can fix it or leave it, and the reviewer still approves. Reviewers prefix it with “Nit:” so it isn’t mistaken for a required change.
What does nit mean in code review?
Nit is short for nitpick. A comment that starts with Nit: or nit: points out something small that the reviewer would change but that doesn’t affect whether the code works or whether it can merge. Typical nits:
- A typo in a comment, a log message or a string.
- A name that could be clearer, such as
datafor a list of invoices. - Import order, a blank line, or wording in a docstring.
- A slightly shorter way to write the same expression.
Google’s engineering practices describe a Nit as “a minor thing. Technically you should do it, but it won’t hugely impact things.” They also suggest prefixing purely educational comments with “Nit:” when they aren’t needed to meet the standard, and approving a change once it improves the overall health of the code even if it isn’t perfect.
A nit is a promise from the reviewer: this comment won’t hold up the merge. The label lets a reviewer share small improvements without turning them into requirements, and lets the author see at a glance which comments need action. A review where every comment is a nit is, in practice, an approval.
The label only works if it is used honestly. A bug marked as a nit can merge unfixed, and a review with thirty nits buries the one comment that matters. If formatting nits keep coming up, add a formatter or lint rule to CI and stop writing them by hand.
Code review comment terms and abbreviations
The shorthand below appears in pull requests across GitHub, GitLab and Gerrit. Google’s engineering practices define LGTM as what a reviewer says when approving, and label comment severity with Nit, Optional (or Consider) and FYI; the rest are common usage.
| Term | Meaning | When it’s used |
|---|---|---|
| Nit | Nitpick: a minor point that doesn’t block the merge. | Typos, a clearer name, import order, wording in a comment. |
| LGTM | Looks good to me. What a reviewer says when approving. | Approving, often with “LGTM with nits” when only minor points remain. |
| PTAL | Please take a look. | Asking for a first review, or for another pass after addressing comments. |
| SGTM | Sounds good to me. | Agreeing with a proposal or an author’s reply. |
| WIP | Work in progress. | A change that isn’t ready for a full review. On GitHub, open it as a draft pull request. |
| IMO / IMHO | In my opinion / in my humble opinion. | Marking a preference rather than a requirement. |
| NB | Nota bene: note well. | Pointing out something important the author should keep in mind. |
| FYI | For your information. | Context or an idea for later, with no change expected in this pull request. |
| Optional / Consider | A good idea that isn’t required. | Suggestions the author can take or leave. |
| Blocking | Must be resolved before the change merges. | Bugs, security issues, missing tests for new behavior, broken contracts. |
| Non-blocking | Shouldn’t hold up the merge. | Nits, optional suggestions, questions out of curiosity, praise. |
| Suggestion | A proposed improvement; on GitHub, a suggested change the author can commit. | Small, exact edits such as a rename or a one-line fix. |
GitHub adds its own review states. Comment leaves feedback without approving or requesting changes, Approve signals the change is ready to merge, and Request changes flags feedback the author should address before merging. A draft pull request can’t be merged, and code owners aren’t asked to review it until it is marked ready.
Conventional Comments labels
Conventional Comments turns these habits into a format: <label> [decorations]: <subject>, followed by an optional discussion. The label says what kind of comment it is:
| Label | Meaning |
|---|---|
praise: | Highlights something positive. |
nitpick: | A trivial, preference-based request. |
suggestion: | Proposes an improvement to the code under review. |
issue: | Highlights a specific problem. |
todo: | A small, trivial but necessary change. |
question: | A potential concern you aren’t sure is relevant. |
thought: | An idea that came up while reviewing. |
chore: | A simple task that must be done before the change is accepted. |
note: | Always non-blocking; something the reader should take note of. |
Decorations go in parentheses after the label. (blocking) means the comment should prevent acceptance until it is resolved, (non-blocking) means it shouldn’t, and (if-minor) asks the author to resolve it only if the change turns out to be minor. The spec also lists optional labels: typo:, polish: and quibble:.
suggestion (non-blocking): Extract the retry policy into a constant.
Three handlers use the same 3 attempts and 200 ms backoff. A shared
constant keeps them in step when we tune it.How to write good code review comments
- Comment on the code, not the developer. “This loop never exits on a 404” rather than “you broke the retry”.
- Say what’s wrong and what it causes. Name the input or the path that triggers the problem, so the author can reproduce it.
- Explain why. Google’s guidance asks reviewers to share the intent or best practice behind a comment, so the author learns the reason and not only the fix.
- Mark the severity. Use Nit, Optional, FYI or a Conventional Comments label, so required changes stand apart from preferences.
- Suggest a direction. Fixing the change is the author’s job, but a pointer to the helper to use or a one-line suggested change saves a round trip.
- Ask real questions. If you aren’t sure something is a problem, say so and ask, rather than phrasing a demand as a question.
- Praise what’s good. A short note on a clean abstraction or a thorough test tells the author what to keep doing.
Examples: vague comment, better comment
| Vague | Better |
|---|---|
| This is wrong. | issue: `retry()` runs forever when the API returns 404, because only 5xx stops the loop. Could we stop on any 4xx? |
| Why did you do it this way? | question: Is there a reason to read the whole file into memory here? Exports can reach a few hundred MB, so streaming might be safer. |
| Rename this. | nit (non-blocking): `data` could be `invoices`; it would make the loop below easier to follow. |
| Add tests. | issue (blocking): The new discount path has no test. A case for an expired coupon would catch the off-by-one we fixed last month. |
| You forgot to handle errors again. | issue: If `fetchUser` rejects, the request hangs with no response. Returning a 502 here would match the other handlers. |
Each better version names the problem, the consequence and a way forward, and says whether it blocks. For more on what to look for before you write a comment, use our code review checklist.
How to use GitHub suggested changes
For a small, exact edit, a suggested change beats a description of one. In the Files changed tab, select the line or lines, open a comment, click the suggestion icon and edit the text inside the suggestion block. The author can apply it straight from your comment.
The author can click Commit suggestion to apply one suggestion, or Add suggestion to batch on several and then Commit suggestions to apply them in one commit. Applying needs write access to the repository; for a pull request from a fork, the author must also allow edits from maintainers. Everyone whose suggestion is included becomes a co-author of the commit.
Suggestions suit renames, typos and one-line fixes. For a change across several files, describe the fix in words instead, since a suggestion only replaces the lines the comment is on.
How to respond to review comments
- Answer every comment. “Done”, “Fixed in the next commit” or a short reason for leaving it tells the reviewer it was read.
- Fix the code, not just the thread. If a reviewer asks what something does, Google’s guidance is to rewrite the code more clearly, because explanations left in the review tool don’t help future readers.
- Disagree with reasons. If you think a blocking comment is wrong, explain why with evidence, such as a test or an issue that tracks the case.
- Ask for another look. When you have addressed everything, a PTAL comment or a re-request from the reviewers list starts the next round.
How HeyDeer labels review findings
HeyDeer posts its findings as a GitHub pull request review, with an inline comment on the lines each finding is about. Instead of nit or blocking, each finding carries a severity that states its impact, plus a category for what it harms. The heading reads like 🟠 High (Reliability): Retry loop never stops on a 404.
The four severities are 🔴 Critical, 🟠 High, 🟡 Medium and 🔵 Low, so the author sees at a glance which findings matter most.
Categories are Security, Correctness, Reliability, Performance and Maintainability. Severity is separate from confidence, how sure HeyDeer is that a finding is real; the feedback scope combines the two to decide what gets posted, and the Concise scope posts Low findings only from repository checks. Teams moving from Claude Code Review can keep their REVIEW.md: its Important maps to Medium or above, and its Nit to Low.
When a comment sits on the lines it replaces, HeyDeer includes a GitHub suggested change you can commit. To decline a finding, reply in its conversation and say why, for example that the behavior is intended. On the next review HeyDeer reads the reply, accepts the decision unless it has concrete evidence it missed something serious, and lists the concern under Declined in discussion. The guide to reading a HeyDeer review walks through each part, and HeyDeer’s AI pull request review covers what it checks.
Sources
- Google Engineering Practices: How to write code review comments
- Google Engineering Practices: The standard of code review
- Google Engineering Practices: terminology
- Conventional Comments
- GitHub Docs: Commenting on a pull request
- GitHub Docs: Incorporating feedback in your pull request
- GitHub Docs: About pull request reviews
- GitHub Docs: About pull requests (draft pull requests)
Frequently asked questions
What does "nit" mean in code review?
Nit is short for nitpick. It marks a comment as minor and non-blocking, such as a typo, a naming preference or a formatting detail. The author can apply it or ignore it, and the reviewer will still approve the pull request.
Do I have to fix nits?
A nit is optional by definition, so fixing it is your call. Many authors fix quick nits like typos in the same pass because it costs seconds, and reply to the rest with a short note so the reviewer knows the comment was read.
What does LGTM mean in code review?
LGTM means “looks good to me”. Google’s engineering practices define it as what a reviewer says when approving a change. “LGTM with nits” means the reviewer approves and leaves a few optional points.
What does PTAL mean?
PTAL means “please take a look”. Authors use it to ask for a review, or to ask a reviewer for another pass after they have addressed the comments.
What is the difference between a blocking and a non-blocking comment?
A blocking comment must be resolved before the change merges, such as a bug, a security issue or a missing test. A non-blocking comment, such as a nit, a suggestion or an FYI, can be addressed later or not at all. Labeling each comment saves the author from guessing.
What are Conventional Comments?
Conventional Comments is a format for review comments: a label such as issue, suggestion, nitpick or question, optional decorations such as (blocking) or (non-blocking), then the subject. The label tells the author what kind of comment it is before they read it.
How do you write a good code review comment?
Comment on the code, not the person. Say what the problem is and what it causes, explain why, suggest a fix or ask a real question, and say whether it blocks the merge. For a small, exact edit, use a GitHub suggested change the author can commit.
How should I respond to code review comments?
Reply to every comment: fix it and say so, or explain why you are leaving it. If a reviewer asked what the code does, make the code clearer rather than explaining only in the thread, because future readers won’t see the review.



