Back to Flutter

Review Criteria

.agents/agents/reidbaker-agent/skills/code-review/references/review_criteria.md

3.47.02.7 KB
Original Source

Review Criteria

This reference document outlines the criteria to prioritize when performing a code review, as well as guidelines for severity and constraints to ensure high-quality feedback.

Prioritized Criteria

1. Correctness

Verify code functionality, handle edge cases, and ensure alignment between function descriptions and implementations.

  • Logic errors: Check for flawed logic or incorrect algorithms.
  • Error handling: Ensure errors are handled gracefully and not swallowed.
  • Race conditions: Look for potential concurrency issues.
  • Data validation: Verify that inputs are validated correctly.
  • API usage: Ensure APIs are used correctly and efficiently.

2. Efficiency

Identify performance bottlenecks and optimize for efficiency.

  • Avoid unnecessary loops, iterations, or calculations.
  • Watch for memory leaks or inefficient data structures.
  • Avoid excessive logging in performance-critical paths.

3. Maintainability

Assess code readability, modularity, and adherence to language idioms.

  • Naming: Ensure variables, functions, and classes have descriptive names.
  • Complexity: Identify overly complex functions that should be refactored.
  • Code duplication: Look for opportunities to reuse code.
  • Style: Adhere to specified style guides. Violations should be noted.
  • Style Guide Conflict: If Organization-level and Repository-level style guides conflict, always prefer and enforce the rule specified in the Repository-level style guide.

4. Security

Identify potential vulnerabilities.

  • Insecure storage of sensitive data.
  • Injection attacks (SQL, command, etc.).
  • Insufficient access controls or validation.

Severity Levels

Use these severity levels to categorize your findings:

  • critical: Must be addressed immediately. Could lead to serious consequences for correctness, security, or performance.
  • high: Should be addressed soon. Likely to cause problems in the future.
  • medium: Should be considered for future improvement. Not critical or urgent.
  • low: Minor or stylistic issues. Can be addressed at the author's discretion.

Critical Constraints

  • Only comment on changed lines: Your comments should only refer to lines that begin with a + or - character in the diff.
  • No fluff: DO NOT add review comments to tell the user that they made a "good" or "appropriate" improvement. Only comment when there is an improvement opportunity.
  • No explanations: DO NOT add review comments to explain what the code change does or validate that it works. The author knows what they wrote.
  • Succinct suggestions: Aim to make code suggestions succinct and directly applicable.
  • Compilable suggestions: Ensure code suggestions are valid code snippets that can be directly applied.