Mark your comments with one of the types below (pick easy-to-use visual clue, e.g. color-coded emojis)
Stop (blocker)
Code changes cannot be shipped before resolving a blocker.
Blockers should be resolved by the code reviewer.
Example of blocking sources:
Wrong implementation of the acceptance criteria (AC)
Missing code or AC to handle a use-case that can cause significant damage
Major security/privacy risk
Typos in copy
Wait (soft-blocker)
Code changes cannot be shipped before either resolving or creating/documenting follow-up action for the soft-blocker.
Soft-blockers may be resolved by the code author
Example soft-blocking sources:
Anti-Pattern or Non-clean code
Typos in code
Important design/architectural decisions
Introduction of an edge-case bug
Why need this?
Because sometimes delivering a quick fix that is not the best in terms of code, but delivers value to the end user is a lot higher priority, especially so when people are blocked (bug, high value feature).
Keep going (no-blocker)
Code changes can be shipped with no resolution for non-blockers.
Example of non-blocking sources:
Opinionated nit-pick on a practice/convention
broader suggestion/discussion on "code quality"
A big shout out to my current team (time of writing) at wundertax for helping shape this guideline: Klemen, Visko, Luisa and Viktor.