npx skills add ...
npx skills add paulrberg/agent-skills --skill code-review
Use for code/PR review, audits, bug/security checks, reviewing diffs or changes, and finding issues in code.
npx skills add paulrberg/agent-skills --skill code-review
Find high-impact defects in changed code with evidence. Prioritize security, correctness, and regressions over style nits.
--fix: Apply all suggested fixes in severity order after reporting findings, then verify per the Verification section.--skip-profile <name>: Skip an optional domain profile by stem or filename (e.g. --skip-profile naming). Repeatable.Resolve scope once, then treat the result as fixed for the rest of the run.
git rev-parse --git-dir. If this fails, stop and tell the user to run from a git repository.resolved-scope fenced block with one repo-relative path per line — scope is exactly those targets. Map natural-language subsets to concrete paths before continuing.git diff --name-only --diff-filter=ACMRgit ls-files --others --exclude-standardresolved-scope, one repo-relative path per line. The block is authoritative: do not re-run scope commands or revisit exclusions afterward.--skip-profile exclusions.--fix: apply all suggested fixes in severity order (CRITICAL -> HIGH -> MEDIUM -> LOW), then verify per the Verification section.Produce the Report section below.
Treat the user's request as the boundary for judging the diff.
Apply on every run.
CORE-001 Behavior regression (HIGH): changed branch/state transition alters external behavior.CORE-002 Error-path safety (HIGH): failures can cascade, crash, or return unsafe defaults.CORE-003 Boundary handling (HIGH): null/empty/overflow/edge inputs are not handled.CORE-004 Resource hygiene (MEDIUM): leaked timers/listeners/handles/connections.CORE-005 Complexity hotspot (MEDIUM): change introduces avoidable coupling or hidden side effects.CORE-006 Test gap (MEDIUM): changed behavior has no targeted test coverage.CORE-007 Over-scoped change (MEDIUM): changed lines do not trace directly to the user's request or verified cleanup caused by the change.CORE-008 Speculative complexity (MEDIUM): new abstraction, configurability, flexibility, or impossible-case handling adds code without proven need.CORE-009 Weak success criteria (MEDIUM): implementation lacks a clear verification target for the behavior it claims to change.Select at most three profiles per pass — the highest-risk matches for the touched files — unless the user requests a deep audit. Read each selected profile once, in full; every profile fits in a single read, so never page through or re-read one. Honor --skip-profile exclusions.
references/profiles/security.md: auth, external input, secrets, crypto, public network surfaces, unsafe parsing.references/profiles/configuration.md: env/config, timeouts, retries, pools, limits, resource tuning, rollout controls.references/profiles/typescript-react.md: TypeScript/JavaScript/React/Node files.references/profiles/python.md: Python services, scripts, async workloads.references/profiles/shell.md: shell scripts, CI command blocks, deployment scripts.references/profiles/smart-contracts.md: Solidity/Solana/on-chain protocol code.references/profiles/data-formats.md: CSV/JSON/YAML/binary ingestion/export/parsing.references/profiles/naming.md: naming/intent clarity. Optional; skippable via --skip-profile naming.Run the narrowest checks that validate touched behavior:
Run broader checks only when risk warrants it. Name every skipped check and why.
Use these section headings, in this order. Omit sections that do not apply — do not number them and do not leave gaps or placeholders.
Reviewed files and any excluded patterns.
Order by severity: CRITICAL -> HIGH -> MEDIUM -> LOW. For each finding:
[SEVERITY] Title — path/to/file.ext:linehigh | medium | low.Only without --fix.
Only with --fix. List each change with file references.
Commands run and outcomes, including skipped checks.
One line per risk: Assumed <assumption>; if wrong, <what breaks>; check via <command or inspection>. Plain language — expand or gloss domain-specific terms. Include questions that need a user decision, phrased directly. Write None. when there are none.
Stop and ask for direction when: