Code Review Standards | Checklists, Git Integration
Maintain consistent code review standards with GitScrum. Tiered review criteria, comment conventions, and PR tracking eliminate subjective debates.
16 min read
Code review standards eliminate subjective debates by defining what "good enough" means for your team. GitScrum's GitHub, GitLab, and Bitbucket integrations surface pull request activity alongside task tracking, while NoteVault documentation and review checklists help teams maintain consistent expectations, reduce review time, and turn code review into a learning opportunity rather than a bottleneck.
Establishing Standards
Review Criteria Framework
CODE REVIEW DIMENSIONS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WHAT TO REVIEW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β TIER 1: MUST PASS (Blocking) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Works correctly (implements requirements) ββ
β β β No obvious bugs or edge cases ββ
β β β Tests pass (unit, integration) ββ
β β β No security vulnerabilities introduced ββ
β β β No breaking changes without migration path ββ
β β β No sensitive data exposed (keys, passwords) ββ
β β ββ
β β Status: PR cannot merge until all checked ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β TIER 2: SHOULD PASS (High Priority) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Code is readable and understandable ββ
β β β Follows team naming conventions ββ
β β β Error handling is appropriate ββ
β β β Performance is acceptable ββ
β β β Has sufficient test coverage ββ
β β β Documentation updated if needed ββ
β β ββ
β β Status: Address before merge, or create follow-up task ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β TIER 3: NICE TO HAVE (Suggestions) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Could be more elegant/concise ββ
β β β Minor style preferences ββ
β β β Alternative approaches worth considering ββ
β β β Refactoring opportunities for later ββ
β β ββ
β β Status: Non-blocking, author decides whether to address ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DOCUMENT IN NOTEVAULT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Create team-wide "Code Review Standards" document ββ
β β Include examples for each tier ββ
β β Reference in PR template ββ
β β Review quarterly for updates ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Comment Convention
REVIEW COMMENT TYPES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLEAR COMMENT PREFIXES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β BLOCKING: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β [BLOCKING] This will cause null pointer in production ββ
β β ββ
β β Meaning: PR cannot merge until addressed ββ
β β Reviewer responsibility: Explain why it's blocking ββ
β β Author response: Must fix or discuss ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β QUESTION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β [QUESTION] Why are we caching this for 24 hours? ββ
β β ββ
β β Meaning: I need to understand before approving ββ
β β Reviewer responsibility: Genuine curiosity, not snark ββ
β β Author response: Explain reasoning (may add comment) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SUGGESTION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β [SUGGESTION] Consider using Optional here instead ββ
β β ββ
β β Meaning: Non-blocking improvement idea ββ
β β Reviewer responsibility: Propose alternative ββ
β β Author response: Take it or leave it, no discussion req ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β NIT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β [NIT] Typo in variable name: "recieve" β "receive" ββ
β β ββ
β β Meaning: Trivial, fix if easy ββ
β β Reviewer responsibility: Keep these minimal ββ
β β Author response: Quick fix or ignore ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PRAISE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β [NICE] Clean solution, I learned something here ββ
β β ββ
β β Meaning: Positive feedback, not just criticism ββ
β β Reviewer responsibility: Be genuine, not patronizing ββ
β β Author response: None needed, feels good ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GitScrum Integration
Tracking Reviews
CONNECTING PR TO TASKS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VISIBILITY IN GITSCRUM β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β GITHUB/GITLAB/BITBUCKET INTEGRATION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Developer references task in PR/commit ββ
β β "Fix user login timeout [GS-1234]" ββ
β β ββ
β β 2. PR activity shows on GitScrum task ββ
β β Task #1234 shows: ββ
β β β’ PR opened ββ
β β β’ Reviews requested ββ
β β β’ Comments added ββ
β β β’ Merge status ββ
β β ββ
β β 3. Team sees full context without switching tools ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β WORKFLOW COLUMN AUTOMATION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Consider workflow: ββ
β β ββ
β β In Dev β In Review β Ready for QA β Done ββ
β β ββ
β β "In Review" column = PR opened, awaiting approval ββ
β β ββ
β β Move to In Review when: ββ
β β β’ PR created and ready for review ββ
β β β’ Not still WIP (draft PR) ββ
β β ββ
β β Move to Ready for QA when: ββ
β β β’ PR approved and merged ββ
β β β’ Deployed to test environment ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β REVIEW TURNAROUND TRACKING: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Monitor time spent in "In Review" column ββ
β β ββ
β β Target: < 24 hours for first review ββ
β β ββ
β β If consistently over: ββ
β β β’ Too few reviewers? Expand pool ββ
β β β’ PRs too big? Break down smaller ββ
β β β’ Reviews low priority? Dedicate review slots ββ
β β ββ
β β Use GitScrum analytics to spot trends ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Review Checklist Templates
STANDARDIZED REVIEW PROCESS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CHECKLISTS FOR CONSISTENCY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β AUTHOR CHECKLIST (Before Requesting Review): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Code compiles and runs locally ββ
β β β All tests pass ββ
β β β Self-reviewed my changes ββ
β β β Removed debug code and console logs ββ
β β β Updated documentation if needed ββ
β β β PR description explains what and why ββ
β β β Screenshots for UI changes ββ
β β β Task linked in PR title [GS-XXXX] ββ
β β β Appropriate reviewers assigned ββ
β β ββ
β β Store in NoteVault: "PR Author Checklist" ββ
β β Add to PR template in repository ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β REVIEWER CHECKLIST (During Review): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Understand the task requirements ββ
β β β Code addresses the problem correctly ββ
β β β No obvious bugs or edge cases ββ
β β β Error handling is appropriate ββ
β β β Tests cover the changes ββ
β β β No security concerns ββ
β β β Performance is acceptable ββ
β β β Code is readable to someone unfamiliar ββ
β β ββ
β β Store in NoteVault: "PR Reviewer Checklist" ββ
β β Reference during reviews for consistency ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β CONTEXT-SPECIFIC CHECKLISTS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β API Changes: ββ
β β β Backward compatible or versioned ββ
β β β API documentation updated ββ
β β β Error responses follow standard format ββ
β β ββ
β β Database Changes: ββ
β β β Migration is reversible ββ
β β β Indexes added for new queries ββ
β β β No breaking changes to production data ββ
β β ββ
β β Security-Sensitive: ββ
β β β No credentials in code ββ
β β β Input validation present ββ
β β β Security team review if needed ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Review Efficiency
Right-Sizing PRs
PR SIZE GUIDELINES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SMALLER PRs = BETTER REVIEWS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β SIZE THRESHOLDS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Lines Changed β Review Quality β Action ββ
β β ββββββββββββββββΌβββββββββββββββββΌβββββββββββββββββββ ββ
β β < 200 lines β β
Thorough β Ideal size ββ
β β 200-400 lines β β οΈ Adequate β Acceptable ββ
β β 400-800 lines β β Rushed β Consider splitting ββ
β β > 800 lines β β Rubber stamp β Must split ββ
β β ββ
β β Exception: Large refactors with clear patterns ββ
β β Exception: Generated code or config files ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SPLITTING STRATEGIES: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Feature too big for one PR: ββ
β β ββ
β β Option 1: Vertical slicing ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β β PR 1: Basic happy path (end-to-end thin slice) β ββ
β β β PR 2: Error handling β ββ
β β β PR 3: Edge cases β ββ
β β β PR 4: Performance optimization β ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β ββ
β β Option 2: Layer by layer ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β β PR 1: Database schema + migrations β ββ
β β β PR 2: Backend API endpoints β ββ
β β β PR 3: Frontend UI β ββ
β β β PR 4: Integration and tests β ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β ββ
β β Track in GitScrum: ββ
β β Main task with subtasks for each PR ββ
β β Link all PRs to parent task for visibility ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β STACKED PRs: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β When PR 2 depends on PR 1: ββ
β β ββ
β β main βββ PR 1 (schema) βββ PR 2 (API) βββ PR 3 (UI) ββ
β β ββ
β β Process: ββ
β β 1. Review and merge PR 1 ββ
β β 2. Rebase PR 2 onto main, then review ββ
β β 3. Rebase PR 3 onto main, then review ββ
β β ββ
β β Benefits: Can work on all 3 while waiting for review ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Timely Reviews
REVIEW TURNAROUND PRACTICES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β KEEPING REVIEWS FAST β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β RESPONSE TIME TARGETS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β First response: Within 4 business hours ββ
β β Full review: Within 24 hours ββ
β β Re-review (after changes): Within 4 hours ββ
β β ββ
β β If you can't review in time: ββ
β β β’ Decline and suggest another reviewer ββ
β β β’ Comment "I'll review by [time]" to set expectation ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DEDICATED REVIEW TIME: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Option 1: Time blocks ββ
β β β’ Review PRs first thing each morning (30 min) ββ
β β β’ Review PRs after lunch (30 min) ββ
β β β’ Never let PRs sit overnight without response ββ
β β ββ
β β Option 2: Rotating reviewer ββ
β β β’ One person is "reviewer on call" each day ββ
β β β’ Primary job is fast review turnaround ββ
β β β’ Reduces context switch for others ββ
β β ββ
β β Track in Team Standup: ββ
β β Include "PRs awaiting review" as daily status ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β AVOIDING REVIEW BOTTLENECKS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Don't require specific reviewer for all PRs: ββ
β β ββ
β β β All PRs must be reviewed by @tech-lead ββ
β β (Creates single point of failure) ββ
β β ββ
β β β
Any 2 team members can approve ββ
β β (Distributes load, builds shared ownership) ββ
β β ββ
β β Exception: Security/architecture changes may need ββ
β β specific expertise ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Handling Disagreements
Resolving Conflicts
WHEN REVIEWER AND AUTHOR DISAGREE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CONSTRUCTIVE CONFLICT RESOLUTION β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β DECISION FRAMEWORK: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β ββ
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β β Is it objectively wrong (bug, security, breaks)? β ββ
β β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ ββ
β β β ββ
β β βββββββββββ΄ββββββββββ ββ
β β Yes No ββ
β β β β ββ
β β βΌ βΌ ββ
β β βββββββββββββββββββ ββββββββββββββββββββββββββββββββ ββ
β β β Must fix β β Is there team standard? β ββ
β β β (Reviewer wins) β βββββββββββββ¬βββββββββββββββββββ ββ
β β βββββββββββββββββββ β ββ
β β βββββββββββ΄ββββββββββ ββ
β β Yes No ββ
β β β β ββ
β β βΌ βΌ ββ
β β βββββββββββββββββββ ββββββββββββββββββ ββ
β β β Follow standard β β Author decides β ββ
β β β (Neither wins, β β (Author wins, β ββ
β β β team wins) β β it's their β ββ
β β βββββββββββββββββββ β code) β ββ
β β ββββββββββββββββββ ββ
β β ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ESCALATION PATH: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β If can't agree after 2 rounds: ββ
β β ββ
β β 1. Timebox discussion (15 min call max) ββ
β β 2. If still no agreement β bring in third person ββ
β β 3. Third person decides, decision is final ββ
β β ββ
β β Never: Block PR indefinitely over style preference ββ
β β Never: Make it personal ("you always do X") ββ
β β Always: Focus on code, not coder ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DOCUMENT DECISIONS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β When debate reveals unclear team standard: ββ
β β ββ
β β 1. Resolve this PR (make a call) ββ
β β 2. Create follow-up task: "Clarify team standard for X" ββ
β β 3. Discuss in next team meeting ββ
β β 4. Document decision in NoteVault ββ
β β 5. Apply consistently going forward ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Constructive Feedback
GIVING GOOD FEEDBACK:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EFFECTIVE REVIEW COMMENTS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β BE SPECIFIC: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Vague: "This could be better" ββ
β β β
Specific: "This loop is O(nΒ²). Consider using a ββ
β β hashmap to reduce to O(n)" ββ
β β ββ
β β β Vague: "Add error handling" ββ
β β β
Specific: "This API call can throw NetworkError. ββ
β β Wrap in try-catch and show user-friendly message" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β EXPLAIN WHY: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Command: "Use const instead of let" ββ
β β β
Explanation: "Use const here since value never ββ
β β changes. Makes intent clearer to future readers" ββ
β β ββ
β β β Command: "Add null check" ββ
β β β
Explanation: "userData can be null when session ββ
β β expires. We had a production bug from this last week"ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OFFER SOLUTIONS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Problem only: "This is hard to read" ββ
β β β
With solution: "This is hard to read. Consider ββ
β β extracting to a helper function: ββ
β β function validateUserInput(input) { ... }" ββ
β β ββ
β β Or suggest alternatives: ββ
β β "Option A: Extract function ββ
β β Option B: Add explanatory comments ββ
β β Option C: Rename variables for clarity ββ
β β Your call which works best here" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ASSUME GOOD INTENT: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β "Why did you do it this weird way?" ββ
β β β
"I'm curious about this approach - was there a ββ
β β specific reason? I might be missing context" ββ
β β ββ
β β β "This is wrong" ββ
β β β
"I think this might cause X issue. Let me know if ββ
β β I'm misunderstanding the requirement" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Continuous Improvement
Review Quality Metrics
MEASURING REVIEW EFFECTIVENESS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TRACKING REVIEW QUALITY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β METRICS TO TRACK: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Time Metrics: ββ
β β β’ Average time from PR opened to first review ββ
β β β’ Average time from PR opened to merge ββ
β β β’ Number of review cycles before approval ββ
β β ββ
β β Quality Metrics: ββ
β β β’ Bugs found in review vs production ββ
β β β’ PRs merged then reverted ββ
β β β’ Post-merge hotfixes needed ββ
β β ββ
β β Process Metrics: ββ
β β β’ Average PR size (lines changed) ββ
β β β’ Comments per PR ββ
β β β’ Approval rate (approved vs changes requested) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β MONTHLY REVIEW RETROSPECTIVE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Questions to discuss: ββ
β β ββ
β β β’ Are reviews happening fast enough? ββ
β β β’ Are we catching bugs before production? ββ
β β β’ Are reviews learning opportunities? ββ
β β β’ Any friction or frustration in the process? ββ
β β β’ Standards that need clarification? ββ
β β ββ
β β Create improvement tasks in GitScrum ββ
β β Track progress each month ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β EVOLVING STANDARDS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Update review standards when: ββ
β β ββ
β β β’ Same debate happens multiple times ββ
β β β’ Bug pattern emerges (add to checklist) ββ
β β β’ New technology adopted ββ
β β β’ Team composition changes ββ
β β ββ
β β Process: ββ
β β 1. Propose change in Discussions ββ
β β 2. Team votes or discusses ββ
β β 3. Update NoteVault documentation ββ
β β 4. Announce in team channel ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ