Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install code-reviewgit clone https://github.com/lewisperez999/v0-lewis-perez-portfolio-twin.gitcp v0-lewis-perez-portfolio-twin/.skills/code-review/SKILL.md ~/.claude/skills/code-review/SKILL.md# Code Review
Perform code reviews following project standards.
## Description
Review code changes for quality, security, performance, and adherence to project conventions.
## Checklist
### TypeScript
- [ ] No `any` types without justification
- [ ] Interfaces defined for all props and data shapes
- [ ] Proper error handling with typed errors
- [ ] Exports include types alongside functions
### React/Next.js
- [ ] Server Components used by default
- [ ] `'use client'` only where necessary
- [ ] Proper use of Suspense for loading states
- [ ] No unnecessary re-renders
- [ ] Accessible (semantic HTML, ARIA)
### Security
- [ ] No hardcoded secrets or API keys
- [ ] Input validated with Zod
- [ ] SQL queries are parameterized
- [ ] Auth checks on protected endpoints
- [ ] XSS prevention (no dangerouslySetInnerHTML with user content)
### Performance
- [ ] Images optimized (next/image)
- [ ] Lazy loading for heavy components
- [ ] Database queries are indexed
- [ ] No N+1 query problems
- [ ] Appropriate caching
### Code Style
- [ ] Consistent naming conventions
- [ ] Files named correctly (PascalCase for components, kebab-case for utils)
- [ ] Imports use `@/` aliases
- [ ] No commented-out code
- [ ] Clear, descriptive variable names
### API Routes
- [ ] Proper HTTP status codes
- [ ] Error responses are consistent
- [ ] Rate limiting for public endpoints
- [ ] Request/response typed
- [ ] Logging for errors
### Database
- [ ] Migrations are reversible
- [ ] Indexes on frequently queried columns
- [ ] Foreign key constraints where appropriate
- [ ] No raw SQL concatenation
## Review Template
```markdown
## Code Review: [PR/Change Title]
### Summary
Brief description of the changes.
### Checklist
- [x] TypeScript types are correct
- [x] Security considerations addressed
- [ ] Performance optimized
- [x] Tests added/updated
### Issues Found
#### Critical
- None
#### Major
- [ ] Issue description - file:line
#### Minor
- [ ] Suggestion - file:line
### Suggestions
- Consider using X instead of Y
- Could extract into reusable function
### Approved: Yes/No
```
## Common Issues
### TypeScript
```typescript
// ❌ Bad: Using any
const data: any = await fetchData();
// ✅ Good: Typed response
interface ApiResponse {
id: string;
name: string;
}
const data: ApiResponse = await fetchData();
```
### Security
```typescript
// ❌ Bad: SQL injection risk
const result = await query(`SELECT * FROM users WHERE id = ${userId}`);
// ✅ Good: Parameterized query
const result = await query('SELECT * FROM users WHERE id = $1', [userId]);
```
### React
```typescript
// ❌ Bad: Unnecessary client component
'use client';
export function StaticContent() {
return <div>Just static content</div>;
}
// ✅ Good: Server component (no directive needed)
export function StaticContent() {
return <div>Just static content</div>;
}
```
### Performance
```typescript
// ❌ Bad: Fetching in loop
for (const id of ids) {
const item = await query('SELECT * FROM items WHERE id = $1', [id]);
}
// ✅ Good: Batch query
const items = await query('SELECT * FROM items WHERE id = ANY($1)', [ids]);
```