Skip to content
Back to skills

Code Review

ASecurity

Review code for quality, security, performance, and maintainability. Use when reviewing PRs, auditing a codebase, or refactoring. Covers TypeScript, Node.js, infrastructure-as-code, and full-stack web apps.

  • 119 stars
  • 0 votes
  • 3 copies
  • 6 views
  • Added September 12, 2026
code-qualitytypescriptgobashsqlnodedockerterraformdebuggingrefactoringcode-review

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add espennilsen/pi --skill code-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Code Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Code Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/espennilsen-code-review/badge)](https://www.skillsdirectory.com/skills/espennilsen-code-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: code-review
description: Review code for quality, security, performance, and maintainability. Use when reviewing PRs, auditing a codebase, or refactoring. Covers TypeScript, Node.js, infrastructure-as-code, and full-stack web apps.
---

# Code Review

Systematic code review for Espen's TypeScript/Node.js projects.

## Process

1. **Understand scope** — Read the changed files or the area under review:
   ```bash
   # For git changes
   git diff --name-only HEAD~1
   git diff HEAD~1

   # For a specific area
   find src/ -name "*.ts" -newer <reference-file>
   ```

2. **Read the code** — Use the `read` tool on each file. Don't guess.

3. **Analyze against checklist** — Score each category.

4. **Report** — Use the output format below.

## Review Checklist

### Correctness
- [ ] Logic handles edge cases (null, empty, boundary values)
- [ ] Error handling is explicit (no swallowed errors, no bare `catch {}`)
- [ ] Async code handles rejection/cancellation properly
- [ ] Types are accurate (no unnecessary `any`, proper narrowing)

### Security
- [ ] No secrets or credentials in code
- [ ] User input is validated/sanitized before use
- [ ] SQL queries use parameterized statements (no string interpolation)
- [ ] File paths are resolved safely (no path traversal)
- [ ] Auth checks are present where needed

### Performance
- [ ] No N+1 queries or unbounded loops over large datasets
- [ ] Heavy operations are async or streamed (not blocking)
- [ ] Database queries use appropriate indexes
- [ ] Large responses are paginated or truncated

### Maintainability
- [ ] Functions do one thing with clear names
- [ ] No magic numbers or hardcoded values that should be config
- [ ] Types and interfaces are defined (not inline object shapes)
- [ ] Dead code and unused imports are removed
- [ ] Comments explain *why*, not *what*

### Project Conventions
- [ ] Follows existing patterns in the codebase
- [ ] File naming and directory structure is consistent
- [ ] Error messages are helpful for debugging
- [ ] Logging is appropriate (not too noisy, not silent on errors)

## Output Format

```markdown
## Code Review: [scope]

### Summary
One paragraph: what the code does, overall quality assessment.

### Issues

#### 🔴 Critical
- [file:line] Description and fix

#### 🟡 Important
- [file:line] Description and suggestion

#### 🔵 Minor
- [file:line] Nit or style suggestion

### What's Good
- Call out well-written code, good patterns, clever solutions

### Recommendations
- Prioritized list of changes, starting with most impactful
```

## Common Patterns in Espen's Stack

| Project Type | Key Things to Check |
|---|---|
| **Pi extensions** | Tool parameter schemas, error returns, signal/abort handling |
| **Eleventy sites** | Template data flow, permalink structure, Tailwind purge config |
| **TanStack apps** | Router setup, query keys, optimistic updates, Clerk auth guards |
| **Infrastructure** | Terraform state safety, Docker layer caching, env var handling |
| **SQLite** | Migration ordering, prepared statements, WAL mode, index coverage |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.