skills/daviddworetzky/code-review/SKILL.md
This skill should be used when the user requests a code review of changed files. Use this to review git-diffed files for security vulnerabilities (OWASP Top 10), performance issues (O(N) complexity, ORM optimization), bugs, and adherence to project coding standards defined in agents.md and claude.md.
npx skillsauth add aiskillstore/marketplace code-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Perform comprehensive code reviews on files that have been modified in the current git working directory. Review code for:
Invoke this skill when:
Use git plumbing commands to get a list of files that have been modified:
# Get all files with uncommitted changes (staged and unstaged)
git diff --name-only HEAD
# Alternative: Get only staged files
git diff --cached --name-only
# Alternative: Get files changed in recent commits
git diff --name-only HEAD~1..HEAD
Store the list of changed files for systematic review.
Before reviewing code, load the project's coding standards to understand expectations:
/Users/daviddworetzky/Documents/repos/Geist/docs/agents.md for agent architecture patterns and best practices/Users/daviddworetzky/Documents/repos/Geist/claude.md (or CLAUDE.md) for SQLAlchemy patterns, dependency preferences, SDLC process, and general coding preferencesKey standards to check:
scripts/copy_weights.pyBaseAgent)app/models/database/For each changed file, perform the following checks:
Check for common security vulnerabilities:
Injection Flaws (SQL, Command, LDAP, etc.)
Broken Authentication
Sensitive Data Exposure
XML External Entities (XXE)
Broken Access Control
Security Misconfiguration
Cross-Site Scripting (XSS)
Insecure Deserialization
Using Components with Known Vulnerabilities
Insufficient Logging & Monitoring
Check for performance issues:
Algorithmic Complexity
ORM Optimization
joinedload() or selectinload()Database Issues
Memory Issues
Check for logical errors:
Type Safety
Error Handling
Business Logic
Edge Cases
Verify adherence to project standards based on file type:
Python Files:
app/models/database/)BaseAgent or appropriate base classGeneral:
Categorize issues into severity levels:
Critical (Fix Immediately):
Recommended (Prompt for Approval):
For Critical and Important Issues:
For Recommended Issues:
When presenting findings, use this format:
## Code Review Results
### Files Reviewed
- app/services/user_service.py
- app/models/database/user.py
### Critical Issues Fixed
#### 1. SQL Injection in user_service.py:42
**Issue:** Raw string concatenation in SQL query allows SQL injection
**Before:**
```python
query = f"SELECT * FROM users WHERE email = '{email}'"
After:
query = session.query(User).filter(User.email == email)
Why: Parameterized queries prevent SQL injection attacks (OWASP #1)
Issue: Loading related data in loop causes N+1 queries Before:
for user in users:
posts = user.posts # Lazy load triggers query
After:
users = session.query(User).options(joinedload(User.posts)).all()
for user in users:
posts = user.posts # Already loaded
Why: Reduces database round trips from N+1 to 1 query
datetime instead of arrow libraryUser class
## Tips for Effective Reviews
1. **Be Thorough**: Check every changed line, not just the obvious parts
2. **Context Matters**: Understand the purpose of the code before critiquing
3. **Prioritize Severity**: Fix security and correctness issues before style
4. **Explain Reasoning**: Always explain why something is a problem
5. **Provide Solutions**: Don't just identify issues, show how to fix them
6. **Respect Intent**: Understand what the developer was trying to achieve
7. **Check Imports**: Verify all necessary imports are present after fixes
8. **Test Compatibility**: Ensure fixes don't break existing functionality
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.