code-reviewer

trilogy-group's avatarfrom trilogy-group

Advanced code review skill with multi-language support and best practices enforcement

⭐0stars🔀0forks📁View on GitHub🕐Updated Nov 22, 2025

When & Why to Use This Skill

The Code Reviewer skill is a comprehensive automated code analysis tool designed to enhance software quality across multiple programming languages including JavaScript, Python, Java, Go, and Rust. It streamlines the development workflow by enforcing industry best practices, detecting security vulnerabilities (OWASP Top 10), and providing actionable insights into code complexity and maintainability to reduce technical debt.

Use Cases

  • Automated Pull Request Audits: Integrate into CI/CD pipelines to automatically scan code changes for syntax errors, style violations, and potential bugs before human review.
  • Security Vulnerability Scanning: Proactively identify security flaws, such as injection vulnerabilities and sensitive data exposure, across diverse polyglot codebases.
  • Technical Debt Assessment: Utilize cyclomatic complexity and maintainability index metrics to pinpoint over-complicated code sections that require refactoring.
  • Best Practice Enforcement: Ensure team-wide adherence to SOLID principles, DRY patterns, and specific naming conventions through automated linting and design pattern detection.
  • Performance Optimization: Identify memory leaks, inefficient database queries, and algorithmic bottlenecks during the development phase to ensure high-performance software delivery.
namecode-reviewer
version1.0.0
descriptionAdvanced code review skill with multi-language support and best practices enforcement
authorDevOps Team
tags[code-quality, review, static-analysis, best-practices]

Code Reviewer Skill

Overview

The Code Reviewer skill provides comprehensive code analysis capabilities across multiple programming languages, enforcing best practices, identifying bugs, and suggesting improvements.

Features

1. Static Code Analysis

  • Syntax error detection
  • Type checking
  • Dead code identification
  • Unused variable detection
  • Import optimization

2. Code Quality Metrics

  • Cyclomatic complexity
  • Code duplication
  • Test coverage analysis
  • Maintainability index
  • Technical debt calculation

3. Security Analysis

  • OWASP Top 10 vulnerability detection
  • Sensitive data exposure checks
  • Injection vulnerability scanning
  • Authentication/authorization issues
  • Cryptographic weaknesses

4. Best Practices Enforcement

  • Naming conventions
  • Code formatting standards
  • Design pattern compliance
  • SOLID principles adherence
  • DRY (Don't Repeat Yourself) validation

5. Performance Analysis

  • Algorithm complexity analysis
  • Memory leak detection
  • Database query optimization
  • Caching opportunities
  • Resource utilization

Configuration

{
  "code_reviewer": {
    "enabled": true,
    "languages": {
      "javascript": {
        "linter": "eslint",
        "config": ".eslintrc.json",
        "rules": {
          "complexity": {"max": 10},
          "line_length": {"max": 100},
          "function_length": {"max": 50}
        }
      },
      "python": {
        "linter": "pylint",
        "config": ".pylintrc",
        "rules": {
          "complexity": {"max": 10},
          "line_length": {"max": 120},
          "function_length": {"max": 50}
        }
      }
    },
    "security": {
      "enabled": true,
      "scanners": ["semgrep", "bandit", "snyk"]
    },
    "performance": {
      "enabled": true,
      "profiling": true
    },
    "reporting": {
      "format": ["json", "markdown", "html"],
      "include_suggestions": true,
      "severity_threshold": "warning"
    }
  }
}

Usage Examples

Basic Code Review

// Input code to review
function calculatePrice(items) {
  let total = 0;
  for(var i = 0; i < items.length; i++) {
    total = total + items[i].price * items[i].quantity;
  }
  return total;
}

Review Output

## Code Review Results

### Issues Found: 3

#### 1. Use Modern JavaScript Syntax (Style)
**Line 3**: Use `const` or `let` instead of `var`
```diff
- for(var i = 0; i < items.length; i++) {
+ for(let i = 0; i < items.length; i++) {

2. Consider Using Array Methods (Performance)

Lines 3-5: Use reduce() for better readability and performance

function calculatePrice(items) {
  return items.reduce((total, item) => 
    total + item.price * item.quantity, 0
  );
}

3. Add Input Validation (Security)

Line 1: Add validation for undefined/null input

function calculatePrice(items) {
  if (!items || !Array.isArray(items)) {
    throw new Error('Invalid input: items must be an array');
  }
  // ... rest of function
}

Metrics

  • Complexity: 2 (Good ✅)
  • Maintainability: 85/100 (Good ✅)
  • Test Coverage: 0% (Needs Improvement ❌)

## Advanced Features

### Multi-file Analysis
```python
# Example: Analyzing Python module dependencies
class CodeAnalyzer:
    def analyze_imports(self, file_path):
        """Analyze import statements for circular dependencies"""
        imports = self.extract_imports(file_path)
        circular_deps = self.detect_circular_deps(imports)
        unused_imports = self.find_unused_imports(imports)
        
        return {
            'circular_dependencies': circular_deps,
            'unused_imports': unused_imports,
            'import_depth': self.calculate_import_depth(imports)
        }

Design Pattern Detection

// Detects and validates design pattern implementations
public class PatternDetector {
    public List<Pattern> detectPatterns(String code) {
        List<Pattern> patterns = new ArrayList<>();
        
        if (isSingleton(code)) {
            patterns.add(new Pattern("Singleton", 
                validateSingleton(code)));
        }
        
        if (isFactory(code)) {
            patterns.add(new Pattern("Factory", 
                validateFactory(code)));
        }
        
        return patterns;
    }
}

Integration with Agents

Security Reviewer Agent Integration

integration:
  security_reviewer:
    trigger: "on_code_change"
    actions:
      - scan_vulnerabilities
      - check_dependencies
      - validate_authentication

Performance Tester Agent Integration

integration:
  performance_tester:
    trigger: "on_optimization_suggestion"
    actions:
      - benchmark_before
      - apply_optimization
      - benchmark_after
      - report_improvement

Customization

Adding Custom Rules

// custom-rules.js
module.exports = {
  rules: {
    'no-console-log': {
      create(context) {
        return {
          CallExpression(node) {
            if (node.callee.type === 'MemberExpression' &&
                node.callee.object.name === 'console' &&
                node.callee.property.name === 'log') {
              context.report({
                node,
                message: 'console.log should not be used in production'
              });
            }
          }
        };
      }
    }
  }
};

Language-Specific Configurations

JavaScript/TypeScript

{
  "extends": ["airbnb", "plugin:@typescript-eslint/recommended"],
  "rules": {
    "max-len": ["error", 100],
    "complexity": ["error", 10],
    "no-unused-vars": "error"
  }
}

Python

[MESSAGES CONTROL]
max-line-length=120
max-complexity=10
min-public-methods=1

[DESIGN]
max-args=5
max-attributes=10
max-statements=50

Performance Benchmarks

Language Files/Second Avg Time per File Memory Usage
JavaScript 50 20ms 50MB
Python 40 25ms 60MB
Java 30 33ms 80MB
Go 60 17ms 40MB
Rust 45 22ms 55MB

Best Practices

1. Incremental Reviews

Review code changes incrementally rather than entire codebases:

@code-review --changes-only --since=last-commit

2. Automated PR Reviews

Integrate with pull request workflows:

on: [pull_request]
jobs:
  code-review:
    runs-on: ubuntu-latest
    steps:
      - uses: claude/code-reviewer@v1
        with:
          severity: warning
          auto-fix: true

3. Custom Severity Levels

Configure severity based on environment:

{
  "environments": {
    "development": {"severity": "info"},
    "staging": {"severity": "warning"},
    "production": {"severity": "error"}
  }
}

Troubleshooting

Common Issues

  1. Slow Analysis

    • Solution: Limit scope with --files flag
    • Use .codereviewignore file
  2. False Positives

    • Solution: Adjust rule sensitivity
    • Add inline suppressions
  3. Missing Language Support

    • Solution: Install language-specific plugins
    • Configure custom parsers

API Reference

analyze(code, options)

interface AnalyzeOptions {
  language: string;
  rules?: RuleSet;
  severity?: 'error' | 'warning' | 'info';
  autoFix?: boolean;
}

interface AnalyzeResult {
  issues: Issue[];
  metrics: Metrics;
  suggestions: Suggestion[];
  autoFixed?: boolean;
}

Review Output Format

interface Issue {
  severity: 'error' | 'warning' | 'info';
  rule: string;
  message: string;
  line: number;
  column: number;
  suggestion?: string;
  autoFixable: boolean;
}