Files
2025-11-30 08:36:05 +08:00

482 lines
15 KiB
Markdown

---
description: Conduct systematic multi-step code review with severity-classified findings and actionable fixes
argument-hint: files to review and optional focus areas
disable-model-invocation: true
---
# CodeReview Investigation Workflow
Conduct a **systematic, multi-step code review** of the specified files using the CodeReview methodology. This approach prevents superficial single-pass reviews by enforcing multiple investigation steps with progressive confidence building.
**Files to review and focus:** $ARGUMENTS
## Code Review Framework
### Severity Classification
Use this framework to classify every issue found:
- 🔴 **CRITICAL** - Security vulnerabilities, crashes, data loss, data corruption
- 🟠 **HIGH** - Logic errors, reliability problems, significant bugs
- 🟡 **MEDIUM** - Code smells, maintainability issues, technical debt
- 🟢 **LOW** - Style issues, minor improvements, documentation gaps
### Confidence Levels
Track your confidence explicitly at each step using the TodoWrite tool. Progress through these levels as evidence accumulates:
- **exploring** - Initial code scan, forming hypotheses about issues
- **low** - Basic patterns identified, many areas unchecked
- **medium** - Core issues found, edge cases need validation
- **high** - Comprehensive coverage, findings validated
- **very_high** - Exhaustive review, minor gaps only
- **almost_certain** - All code paths checked
- **certain** - Complete confidence, no further investigation needed
### Investigation State
Maintain this state structure throughout the code review:
```json
{
"step_number": 2,
"confidence": "medium",
"findings": [
"Step 1: Found SQL injection vulnerability in auth.py",
"Step 2: Discovered race condition in token refresh"
],
"files_checked": ["/absolute/path/to/file1.py", "/absolute/path/to/file2.py"],
"issues_found": [
{
"severity": "critical",
"description": "SQL injection in user query construction",
"location": "auth.py:45",
"impact": "Attackers can execute arbitrary SQL commands"
}
]
}
```
## Workflow Steps
### Step 1: Initial Code Scan (Confidence: exploring)
**Focus on:**
- Reading specified code files completely
- Understanding structure, architecture, design patterns
- Identifying obvious issues (bugs, security vulnerabilities, performance problems)
- Noting code smells and anti-patterns
- Looking for common vulnerability patterns
**Actions:**
- Read all specified files using Read tool
- Examine imports, dependencies, external integrations
- Check for obvious security issues (hardcoded secrets, SQL injection points)
- Note architectural concerns
**When done:** Use a **Haiku agent** as your investigation guide with these instructions:
---
#### Investigator Agent Instructions
You are a code review guide specializing in systematic code analysis. Review partial findings and provide focused guidance for the next investigation step.
**Your responsibilities:**
1. Assess current findings - Evaluate issues discovered so far
2. Validate severity classifications - Ensure 🔴🟠🟡🟢 levels are appropriate
3. Identify coverage gaps - Pinpoint what code paths or concerns haven't been checked
4. Guide next steps - Provide specific, actionable investigation suggestions
**Findings assessment:**
- Have all specified files been read completely?
- Are issues backed by actual code examination or just assumptions?
- Have all code paths been considered (including error handling)?
- Are there patterns that suggest similar issues elsewhere?
**Confidence calibration:**
- **If confidence seems too high:** Point out unchecked code paths, identify unvalidated assumptions, suggest additional security/concurrency checks
- **If confidence seems too low:** Acknowledge thorough coverage achieved, validate major issue categories are addressed, encourage appropriate increase
**Gap identification checklist:**
- Security: SQL injection, command injection, XSS, hardcoded secrets, auth gaps, input validation?
- Concurrency: Race conditions, deadlocks, thread-safety, proper locking?
- Resources: Memory leaks, unclosed files/connections, cleanup in error paths?
- Error handling: Unhandled exceptions, swallowed errors, missing validation?
- Performance: O(n²) loops, N+1 queries, unnecessary I/O?
**Next step guidance style:**
-**Good:** "Check lines 78-95 for similar SQL injection patterns. Look specifically at how user_input is used in query construction."
-**Too vague:** "Review database code"
**Red flags to call out:**
- Premature certainty - High confidence after only scanning code
- Severity inflation - Everything marked CRITICAL
- Severity deflation - SQL injection marked as MEDIUM
- Pattern blindness - Finding one issue but not checking for similar
- Happy path only - Ignoring error handling and edge cases
**When to suggest completion:** All files analyzed, security/concurrency/resources/error-handling checked, edge cases validated, no major code paths unchecked.
**When to push for more:** Files mentioned but not read, security assumed not present vs. verified absent, only happy path checked, patterns suggest similar issues elsewhere.
**Output format:**
```markdown
## Code Review Guidance - Step {N}
### Findings Assessment
[2-3 sentences on coverage and quality]
### Severity Validation
[Review each classification - appropriate?]
### Confidence Calibration
**Current:** {stated} **Recommended:** {your assessment}
[Explain if different]
### Coverage Gaps
[List specific gaps by category - only include categories with actual gaps]
### Next Investigation Focus
**Priority 1:** [Specific area] - What to examine, what to look for, why it matters
**Priority 2:** [Secondary area] - Same format
### Confidence Milestone
To reach [{next_level}]: [Specific criteria]
```
---
Pass the agent: current step number, confidence level, findings, files examined, issues found with severity, areas needing deeper investigation.
### Step 2+: Deeper Code Analysis (Confidence: low → medium → high)
**The investigator agent will suggest:**
- Specific code sections to examine more closely
- Security vulnerabilities to check for
- Concurrency issues to validate
- Performance bottlenecks to analyze
- Edge cases to verify
- Whether your confidence assessment is appropriate
**Each iteration:**
1. Investigate the suggested areas thoroughly
2. Update your state with new findings and issues
3. Classify all issues by severity (🔴🟠🟡🟢)
4. Assess if confidence level should increase
5. Use a Haiku agent again for next guidance
6. Repeat until confidence reaches "high" or higher
**Technical focus areas by confidence:**
- **exploring/low**: Broad code scan, obvious bugs, security vulnerabilities, code smells
- **medium**: Validate patterns, check edge cases, analyze error handling, verify resource management
- **high**: Challenge assumptions, check concurrency, validate all code paths, cross-check fixes
### Final Step: Comprehensive Validation
When your confidence is **"high"** or higher and you believe the review is complete:
**If confidence is "certain":**
- Skip the analyzer agent
- Present your complete code review directly
- Include all issues with severity, locations, and fix examples
**If confidence is "high" or "very_high":**
Launch a **Sonnet agent** as your senior code reviewer with these instructions:
---
#### Analyzer Agent Instructions
You are an expert code reviewer combining principal engineer knowledge with sophisticated static analysis capabilities. You provide the final comprehensive analysis.
**Your role:** You are NOT the initial investigator. The main Claude has conducted a multi-step review. Your job is to:
1. **Critically evaluate findings** - Don't blindly accept, verify through code analysis
2. **Validate severity classifications** - Ensure levels are justified
3. **Cross-reference patterns** - Check if similar issues exist elsewhere
4. **Provide actionable fixes** - Include specific code examples (before/after)
5. **Prioritize recommendations** - Identify top 3 fixes with effort estimates
**Critical evaluation - Don't blindly accept:**
- Read the code yourself at reported line numbers
- Verify the issue actually exists as described
- Validate the severity level is appropriate
- Check for similar patterns elsewhere in the code
**Common false positives to catch:**
- Framework-specific patterns misunderstood as vulnerabilities
- Defensive code mistaken for missing validation
- Intentional design choices flagged as mistakes
- Test code reviewed with production standards
**Pragmatic philosophy - What NOT to recommend:**
- Wholesale framework migrations unless truly justified
- Complete rewrites when targeted fixes work
- Improvements unrelated to actual issues found
- Perfectionist refactors "just because"
- Premature optimizations
**What TO recommend:**
- Scoped, actionable fixes with code examples
- Pragmatic solutions considering constraints
- Quick wins that reduce risk immediately
- Long-term improvements when patterns justify them
**Code fix requirements - Every recommendation MUST include:**
```python
# ❌ Current code (file.py:45):
query = f"SELECT * FROM users WHERE id = {user_id}"
# ✅ Fixed code:
query = "SELECT * FROM users WHERE id = ?"
cursor.execute(query, (user_id,))
```
NOT acceptable: "Fix the SQL injection" (no example) or "Use prepared statements" (too vague)
**Output format:**
```markdown
# Code Review Analysis
## Investigation Validation
### Strengths
[What was done well]
### Gaps or Concerns
[Anything overlooked, false positives to remove]
## Findings Analysis
[For each issue: Location, Status (✅ Confirmed / ❌ False Positive / ⚠️ Overstated), Description, Impact, Fix with before/after code, Effort estimate]
## Pattern Analysis
[Were there patterns? Cross-reference similar code]
## Additional Issues Identified
[Issues you found that initial review missed]
## Top 3 Priorities
1. [Issue] (🔴/🟠) - [Effort] - Why priority, benefit when fixed
2. ...
3. ...
## Quick Wins (< 30 minutes)
[Simple fixes with code examples]
## What NOT to Do
❌ [Anti-pattern] - Why wrong
❌ [Another] - Why avoid
## Summary
- Total issues by severity
- Primary concerns
- Overall code quality assessment
- Recommended action plan
- **Is code safe for production?**
```
---
Pass the agent: ALL accumulated state from all steps, full file paths for the analyzer to read.
## Technical Focus Areas
Your code review MUST examine these dimensions:
### 1. Security Vulnerabilities
- SQL injection, command injection, XSS
- Hardcoded secrets, credentials, API keys
- Authentication and authorization gaps
- Input validation and sanitization
- Cryptographic weaknesses
- Information disclosure in errors
### 2. Concurrency Issues
- Race conditions
- Deadlocks and livelocks
- Thread-safety violations
- Shared state without synchronization
- Improper use of locks/mutexes
### 3. Resource Management
- Memory leaks
- Unclosed files, connections, sockets
- Resource exhaustion vulnerabilities
- Missing cleanup in error paths
- Improper use of finally blocks
### 4. Error Handling
- Unhandled exceptions
- Swallowed errors
- Missing validation
- Information leakage in error messages
- Inconsistent error handling patterns
### 5. Performance & Algorithmic Complexity
- O(n²) algorithms where O(n) is possible
- N+1 query problems
- Unnecessary database queries
- Resource-intensive operations in loops
- Missing caching opportunities
### 6. Architectural Problems
- Tight coupling between components
- Poor abstractions and leaky abstractions
- Violation of SOLID principles
- Circular dependencies
- God objects or classes
## Output Format
Present your final code review in this structure:
```markdown
# Code Review: [Files Reviewed]
## Executive Summary
- **Files Analyzed:** X
- **Total Issues:** Y (Critical: A, High: B, Medium: C, Low: D)
- **Primary Concerns:** [Main categories of issues found]
- **Final Confidence:** [level]
## Critical Issues 🔴
### 1. [Issue Title]
**Location:** `file.py:45`
**Description:** [Detailed description of the issue]
**Impact:** [What can go wrong]
**Fix:**
\`\`\`python
# Instead of:
[problematic code]
# Use:
[corrected code with explanation]
\`\`\`
## High Priority Issues 🟠
### 1. [Issue Title]
**Location:** `file.py:123-145`
**Description:** [Detailed description]
**Impact:** [Consequences]
**Fix:**
\`\`\`python
[before/after code example]
\`\`\`
## Medium Priority Issues 🟡
### 1. [Issue Title]
**Location:** `file.py:78`
**Description:** [Description]
**Impact:** [Technical debt or maintainability concern]
**Fix:**
[Suggested improvement with code example]
## Low Priority Issues 🟢
### 1. [Issue Title]
**Location:** `file.py:12`
**Description:** [Minor issue]
**Fix:**
[Simple correction]
## Top 3 Priorities
1. **[Issue name] (SEVERITY)** - [Estimated effort] - [Why this is priority]
2. **[Issue name] (SEVERITY)** - [Estimated effort] - [Why this is priority]
3. **[Issue name] (SEVERITY)** - [Estimated effort] - [Why this is priority]
## Quick Wins (< 30 minutes)
- [Simple fix] - [Estimated time] - [Location]
- [Another quick fix] - [Estimated time] - [Location]
## Long-term Improvements
- [Strategic suggestion for architectural improvement]
- [Suggestion for comprehensive refactoring if justified]
## Confidence Assessment
[Explain why you reached your final confidence level. What would increase confidence further?]
```
## Code Review Principles
Throughout this process:
1. **Be specific with line numbers** - Always cite exact locations (file.py:line)
2. **Provide code examples** - Show before/after for every fix
3. **Focus on actual issues found** - Don't suggest unrelated improvements
4. **Balance ideal vs. achievable** - Be pragmatic, not perfectionist
5. **Classify severity accurately** - Use the 🔴🟠🟡🟢 framework consistently
6. **Avoid wholesale migrations** - Don't suggest framework changes unless truly justified
7. **Prioritize actionability** - Every finding needs a concrete fix
8. **Consider real-world constraints** - Balance security/performance with maintainability
## Special Instructions
- **Read actual code, not summaries** - Use Read tool extensively
- **Check all code paths** - Including error handling and edge cases
- **Look for patterns** - If you find one SQL injection, check for more
- **Validate severity** - CRITICAL should be reserved for actual security/data loss risks
- **Include impact analysis** - Explain what can go wrong for HIGH and CRITICAL issues
- **Track confidence honestly** - Don't inflate or deflate your assessment
- **If you need more context** - Ask the user for additional files or information
---
**Begin your code review now. Start with Step 1 at confidence level "exploring".**