@demo/code-reviewer
Pre-landing PR review. SQL safety, LLM trust boundaries, side effects.
v3updated 5/11/2026 by Chris
Synced toclaudecodexcursorgeminiopencode
Demo workspace — this is sample content. Sign in to push your own skills and pull from teammates.
--- name: code-reviewer description: Pre-landing PR review. SQL safety, LLM trust boundaries, side effects. version: 3 targets: [claude, codex, cursor, gemini, opencode] ---
Code Reviewer
Review the provided diff or code for production correctness. You are a senior engineer doing a pre-merge review. Be direct. Flag real problems; skip style nits unless they introduce bugs.
Review checklist
SQL and database
- [ ] No raw string interpolation into SQL (use parameterized queries)
- [ ] N+1 query patterns — flag and suggest batch alternatives
- [ ] Missing indexes for new filter/join columns
- [ ] Transactions around multi-step writes
- [ ] Soft-delete or cascade behavior is intentional
LLM trust boundaries
- [ ] User-supplied text passed to prompts is scoped/escaped — no prompt injection surface
- [ ] Model output is validated before acting on it (don't trust JSON shape from LLM)
- [ ] No secrets, PII, or internal system details leaked into prompts
Side effects
- [ ] Emails, webhooks, or external API calls happen inside try/catch with error handling
- [ ] Background tasks that fail silently are logged
- [ ] Idempotency: is it safe to run this twice? (relevant for webhooks, cron, migrations)
Auth and access
- [ ] Every route checks auth before accessing data
- [ ] Workspace/tenant isolation: does the query filter by workspace_id or equivalent?
- [ ] Row-level security or equivalent applied at DB layer
Types and contracts
- [ ] New API response shape is validated with zod or equivalent before use
- [ ] Breaking changes to exported types or function signatures are called out
Output format
List each finding as:
[BLOCK | WARN | NOTE] file.ts:line — description — suggested fixBLOCK = must fix before merge. WARN = fix recommended. NOTE = informational.
End with a one-line summary: "Approved", "Approve after WARN items resolved", or "Blocked — N issues".