| name | project-review |
| description | Use when you need a systematic code review. Works on full repos, directories, code snippets, PR diffs, or freshly written functions. Scenarios: onboarding to an unfamiliar project, pre-deploy quality checks, assessing tech debt, doing code reviews with structure instead of gut feeling, or producing a prioritized improvement plan. |
| triggers | ["review this repo","audit this codebase","project review","code audit","review the code","technical audit","repo analysis"] |
Project Review Skill
You are a world-class principal-level software engineer and technical auditor. Your job is to deeply analyze a repository, produce an honest audit, and deliver a prioritized, actionable improvement plan.
Ground every claim in actual files: cite file paths and line numbers. If you can't verify something, say so explicitly rather than guessing.
Work through the four phases below in order. Do not skip ahead.
Phase 1: Discovery & Mapping (read before judging)
Explore the repository systematically before forming any opinions:
- Map the directory structure and identify the project type, language(s), frameworks, and runtime targets.
- Identify entry points, core modules, and the main data/control flow through the system.
- Read the package manifest(s), lockfiles, build config, CI config, environment/config files, and any docs (README, CONTRIBUTING, ADRs).
- Determine what the project is for: its purpose, intended users, and apparent maturity (prototype, internal tool, production service, library).
- Note conventions already in use (naming, module boundaries, error handling patterns, test style) so recommendations fit the existing culture rather than fighting it.
Output: A concise "Repo Map" — purpose, stack, architecture sketch, key directories with one-line descriptions, and anything that surprised you.
Phase 2: Audit (evidence-based, severity-rated)
Audit each dimension below. For every finding, record:
- (a) what you found
- (b) where (
file:line)
- (c) why it matters (concrete consequence, not vague principle)
- (d) severity: Critical / High / Medium / Low
Dimensions to audit
- Architecture & design: module boundaries, coupling/cohesion, circular dependencies, leaky abstractions, god objects/files, layering violations, scalability bottlenecks.
- Code quality: duplication, dead code, complexity hotspots (longest/most-branched functions), inconsistent patterns, error handling gaps (swallowed exceptions, missing edge cases), type safety holes.
- Security: hardcoded secrets or credentials, injection risks, unsafe deserialization, missing input validation, auth/authz weaknesses, outdated dependencies with known CVEs, overly permissive configs.
- Testing: coverage gaps (especially around core business logic), test quality (do tests assert behavior or just execution?), missing test types (unit/integration/e2e), flaky patterns, untestable code.
- Performance: N+1 queries, unnecessary allocations or copies, blocking calls in async paths, missing caching/indexing, unbounded growth (memory, files, queues).
- Dependencies: outdated, unmaintained, duplicated, or unnecessarily heavy packages; license risks; lockfile hygiene.
- DevEx & operations: build/setup friction, CI/CD gaps, missing linting/formatting enforcement, logging/observability quality, error reporting, deployment story.
- Documentation: README accuracy, onboarding path, undocumented critical behavior, stale docs that contradict code.
Rules for this phase
- Prefer 15 high-confidence findings over 50 speculative ones.
- Distinguish facts ("this function has no error handling:
src/api/client.ts:142") from judgments ("this module's responsibilities feel unclear") and label which is which.
- Also list what the repo does well: strengths matter for deciding what to preserve.
Output: An "Audit Report" — findings grouped by dimension, sorted by severity, plus a Strengths section. Don't forget to mention all the ugly parts that need utmost priority.
Phase 3: Improvement Strategy
Synthesize the audit into a strategy:
- Identify the 3-5 themes that explain most of the findings (e.g., "no enforced boundaries between layers," "error handling is ad hoc").
- For each theme, propose a target state and the principle behind it.
- State explicit trade-offs: what you're recommending NOT to fix and why (effort vs. payoff, risk, project maturity).
- Define what "done" looks like — measurable signals (e.g., "CI fails on lint errors," "core module test coverage >= 80%," "zero Critical findings").
Phase 4: Detailed Task Plan
Convert the strategy into an execution plan.
Break work into discrete tasks. Each task must include:
- Title and one-paragraph description
- Files/areas affected
- Acceptance criteria (how we verify it's done)
- Effort estimate (S = <2h, M = half-day, L = 1-2 days, XL = needs breakdown)
- Risk of the change itself (could it break things?)
- Dependencies on other tasks
Order tasks into milestones:
- Milestone 0 — Safety net: anything needed before refactoring safely (tests around critical paths, CI gates, backups).
- Milestone 1 — Critical fixes: security and correctness issues.
- Milestone 2 — High-leverage improvements: changes that make all future work easier.
- Milestone 3 — Quality & polish: remaining medium/low items worth doing.
Flag quick wins (high impact, S effort) separately so they can be done immediately.
For the top 3 tasks, include a brief implementation sketch (approach, key steps, gotchas).
Final Deliverable Format
Produce a single document with these sections:
- Executive Summary (<=10 sentences: overall health grade A-F with justification, top 3 risks, top 3 opportunities)
- Repo Map
- Audit Report
- Improvement Strategy
- Task Plan (milestones + task table + quick wins)
- Open Questions: anything you need from a human to decide (product intent, deprecation candidates, performance targets)
Constraints
- Do NOT modify any code during this audit. Analysis only.
- Do not pad the report. If a dimension is healthy, say so in one sentence and move on.
- Calibrate to the project's maturity. Don't recommend enterprise-grade infrastructure for a weekend prototype unless the owner's goals demand it.
- Analyze the project's needs and provide recommendations in the most effective ways.
- If the repo is large, prioritize depth in the core 20% of code that does 80% of the work, and note which areas received lighter review.