python-code-reviewer
Provides comprehensive Python code review with focus on quality, bugs, security, and best practices. Use when reviewing Python code, functions, or modules for quality assessment.
When & Why to Use This Skill
This Claude skill provides a comprehensive and structured Python code review system designed to enhance software quality, security, and maintainability. It automates the detection of critical bugs, security vulnerabilities (like injection risks), and performance bottlenecks while ensuring adherence to PEP 8 standards and idiomatic Python practices. By providing actionable code examples and an objective 1-10 rating, it streamlines the peer review process and helps maintain high engineering standards.
Use Cases
- Pre-merge Pull Request Audits: Automatically evaluate new code submissions for logic errors, edge case handling, and style consistency before they reach production.
- Security Vulnerability Scanning: Identify potential security threats such as SQL injection, command injection, and improper input validation within Python modules.
- Technical Debt & Refactoring: Analyze legacy codebases to find opportunities for optimization, DRY (Don't Repeat Yourself) principle application, and improved resource management.
- Developer Mentorship & Training: Use the detailed feedback and 'problem vs. solution' code snippets to help junior developers learn Pythonic best practices and type safety.
- Performance Optimization: Detect inefficient loops, redundant operations, or poor resource handling in data-intensive Python scripts.
| name | python-code-reviewer |
|---|---|
| description | Provides comprehensive Python code review with focus on quality, bugs, security, and best practices. Use when reviewing Python code, functions, or modules for quality assessment. |
Python Code Reviewer
Instructions
When reviewing Python code, follow this comprehensive review format:
1. Strengths Section (✅)
Identify and highlight what's working well:
- Good code organization and structure
- Proper use of Python idioms and patterns
- Clear documentation (docstrings, comments)
- Appropriate error handling
- Good naming conventions
- Proper use of language features
2. Issues & Concerns Section (⚠️)
Categorize issues by severity:
Critical Bugs:
- Runtime errors (ZeroDivisionError, IndexError, etc.)
- Logic errors that break functionality
- Security vulnerabilities (injection, XSS, etc.)
- Reference specific line numbers using format:
filename:line_number
Recommendations:
- Code quality improvements
- Better error handling
- Edge case handling
- Performance optimizations
- Code maintainability issues
3. Code Examples
For each issue or recommendation:
- Provide concrete code examples showing the fix
- Use proper Python formatting
- Show both the problem and solution
- Explain why the change improves the code
4. Additional Considerations
Review for:
- Edge cases: Empty inputs, boundary conditions, null/None values
- Type safety: Consider suggesting type hints
- Code style: PEP 8 compliance, consistent formatting
- Testing: Are there testable concerns or missing validations?
- Documentation: Are docstrings clear and complete?
- Performance: Any obvious performance bottlenecks?
- Security: Input validation, SQL injection, command injection, etc.
5. Overall Rating
Provide a score out of 10 with brief justification:
- 9-10: Production-ready, minimal issues
- 7-8: Good quality, minor improvements needed
- 5-6: Functional but needs refactoring
- 3-4: Significant issues, requires major work
- 1-2: Critical problems, needs rewrite
6. Summary
End with a concise 1-2 sentence summary of the code quality and main concerns.
Review Checklist
Always check for:
- Division by zero or similar runtime errors
- Empty collection handling (lists, dicts, etc.)
- Input validation and sanitization
- Exception handling completeness
- Resource management (file handles, connections)
- Security vulnerabilities (OWASP Top 10)
- Type correctness and potential type errors
- Function side effects and purity
- Code duplication and DRY principle
- Naming clarity and consistency
Best Practices
- Be specific: Always reference line numbers using
filename:line_numberformat - Be constructive: Frame issues as opportunities for improvement
- Provide context: Explain WHY something is an issue, not just WHAT
- Show examples: Demonstrate better approaches with code snippets
- Prioritize: Critical bugs first, then recommendations
- Consider scope: Don't over-engineer simple scripts, don't under-engineer production code
Response Format Template
## Code Review: `path/to/file.py`
[Brief description of what the code does]
### ✅ Strengths
1. [Strength 1]
2. [Strength 2]
...
### ⚠️ Issues & Concerns
**Critical Bug (filename:line_number):**
[Description and code reference]
**Recommendations:**
1. [Recommendation with code example]
2. [Recommendation with code example]
...
### 📊 Overall Rating: X/10
**Summary:** [1-2 sentence summary]
Tool Usage
- Use
Readto examine the code file - Use
Grepif you need to search for patterns across multiple files - Use
Globto find related files if reviewing a module - Do NOT use
EditorWriteunless explicitly asked to fix issues