code-review
Deep code review methodology for thorough quality assessment
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Deep code review methodology for thorough quality assessment
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Handle cross-platform compatibility including file paths, environment detection, platform-specific dependencies, and testing across Windows, macOS, and Linux. Use when dealing with platform-specific code or OS compatibility.
Use when creating, modifying, debugging, or scaffolding OMP extensions, slash commands, custom tools, event hooks, TUI primitives, ExtensionAPI integrations, .omp/extensions, .omp/commands, .omp/tools, package.json omp.extensions, or OMP lifecycle handlers.
Design Director state machine for `/supi:ui-design`. Drives 9 model-owned phases from scope selection through user review, producing a validated HTML mockup artifact.
Guides the harness-engineering pipeline — turn a codebase into one that resists agentic slop with agent-neutral docs, mechanically enforced architecture, and three runtime guardrails
Gray-area extraction stage — surfaces decisions the user must make before the plan can be authored, without expanding scope
Structured extraction of the user's seed prompt into a typed intake artifact — first stage of the UltraPlan authoring pipeline
| name | code-review |
| description | Deep code review methodology for thorough quality assessment |
Identify defects, security risks, and maintainability problems in code changes before they merge.
| Aspect | Detail |
|---|---|
| Input | PR diff, file contents, PR title/description |
| Output | Structured findings (see Finding Format below) |
| Scope | Changed lines + immediate context; follow references 1 level deep when a change touches a public API |
| Skip | Formatting, import order, whitespace — defer to linters |
| Depth | Read every changed line; skim unchanged context for broken assumptions |
Each finding MUST follow this structure:
**[severity]** `file:line` — Description of the issue.
Suggestion: concrete fix or direction.
Severity levels:
| Level | Meaning | Gate |
|---|---|---|
error | Bugs, security holes, data loss, crashes | MUST fix before merge |
warning | Wrong abstraction, missing validation, performance trap | SHOULD fix |
info | Naming, style, minor simplification | Nice to have |
Execute these phases in order. Each phase produces findings or nothing.
Read the PR title, description, and linked issues. Determine what the change is supposed to do. If intent is unclear, report as warning before proceeding.
For each changed function/block:
error.error.At every system boundary (user input, HTTP params, DB queries, shell commands, file paths):
error.error.error.warning.warning.warning.warning.info.warning.warning.warning.warning.// PR diff
function getUser(id: string) {
const row = db.query("SELECT * FROM users WHERE id = ?", [id]);
return { name: row.name, email: row.email };
}
Finding:
**[error]** `src/users.ts:3` — `db.query` returns `null` when no row matches,
but the next line unconditionally accesses `.name` on the result.
Suggestion: Guard with `if (!row) return null` or throw a NotFoundError.
# PR diff
def export_report(filename):
os.system(f"tar czf /tmp/{filename}.tar.gz /data/reports")
Finding:
**[error]** `reports/export.py:3` — `filename` is interpolated into a shell
command without sanitization. An attacker passing `; rm -rf /` exploits this.
Suggestion: Use `subprocess.run(["tar", "czf", ...])` with a list to avoid shell injection,
and validate `filename` against an allowlist pattern.
// PR diff
const orders = await db.orders.findMany({ where: { status: "open" } });
for (const order of orders) {
const customer = await db.customers.findUnique({ where: { id: order.customerId } });
order.customerName = customer.name;
}
Finding:
**[warning]** `src/orders.ts:2-5` — Each loop iteration issues a separate
DB query for the customer. With N open orders this is N+1 queries.
Suggestion: Use `include: { customer: true }` in the initial query, or
batch-fetch customers with `findMany({ where: { id: { in: customerIds } } })`.
| MUST DO | MUST NOT DO |
|---|---|
| Report every finding with file, line, severity, and suggestion | Report vague findings without location or fix direction |
| Prioritize errors first, then warnings, then info | Bury a critical bug under 10 style nits |
| Read the full diff before writing findings | Review only the first file and stop |
| Verify claims by reading the referenced code | Assume a pattern is wrong without checking the implementation |
| Limit info-level findings to 5 max | Flood the review with cosmetic suggestions |
Before submitting your review, verify:
error finding includes a concrete reproduction scenario or inputfile:line, severity, description, and suggestion