agentleFS
mmNalakammNalaka/nm-skills/skills/code-review/SKILL.md

code-review

Skill1 starsChanged 6 months agoMITView on GitHub

Use after writing or modifying code to get severity-tagged findings (CRITICAL/HIGH/MEDIUM/LOW) with inline fixes before committing.

194 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use close-spec, design-with-images and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • dzhngSkill

    close-spec

    When a spec under specs/<feature>/ is done shipping (a write-spec build, or any planned task that produced a spec), archive it to specs/done/ and rewrite it from a build-plan into a durable rationale — the why, the principles, the invariants — pointing back to the real code for the how. Use when implementation has landed and the plan no longer matches what shipped, or the user says a feature/spec is finished. Pairs with [write-spec](../write-spec/SKILL.md) (the plan this closes) and [review](../review/SKILL.md) (run before closing).

    Also in 5 projects that use this

  • dzhngSkill

    design-with-images

    Explore UI and visual design with image generation, then iterate the real implementation against the user-selected concept. Use when brainstorming visual directions, offering mockup variants, or implementing an approved generated design; do not stop at the mockups or the first code approximation.

    Also in 5 projects that use this

  • PydanticSkill

    add-new-model

    Add support for a newly-released language or image generation model in pydantic-ai (e.g. openai:gpt-5.6, anthropic:claude-sonnet-5, openai:gpt-image-2). Use when a provider ships a new model id and you need to wire literals, profile flags, adapters, and tests to recognize it. Handles SDK-lag, gateway list conventions, capability probing, and direct image-model geometry.

    Also in 9 projects that use this

  • transitive-bullshitSkill

    compare-screenshots

    Compare screenshots against the intended design, distinguishing approved references from historical baselines. Use for iterative implementation matching, before/after visual review, objective image telemetry, or checking a lone capture for flat, empty, or badly framed content.

    Also in 5 projects that use this

  • Microsoft AzureSkill

    azsdk-common-apiview-feedback-resolution

    Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_customized_code_update, azure-sdk-mcp:azsdk_typespec_delegate_apiview_feedback, azure-sdk-mcp:azsdk_run_typespec_validation, azure-sdk-mcp:azsdk_package_generate_code.

    Also in 6 projects that use this

  • Microsoft AzureSkill

    azsdk-common-generate-sdk-locally

    Generate and finalize Azure SDKs locally from TypeSpec, including build, checks, tests, changelog, metadata, and version updates by default. WHEN: "generate SDK locally", "build SDK", "run SDK tests", "run CI checks", "validate package", "run checks", "update changelog", "fix SDK build errors", "resolve SDK generation errors", "customize TypeSpec", "rename SDK client", "rename SDK model", "hide operation from SDK", "fix analyzer errors", "resolve customization drift", "create subclient", "update metadata", "update version". INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.

    Also in 6 projects that use this

  • +4 more from dzhng
  • +2 more from Azure

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 6 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 184 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    No unchecked type assertions (as SomeType) without a prior type guard

    line 46
  2. Very specific:

    No unchecked type assertions — v, ok := x.(T) not x.(T) directly

    line 52
  3. Very specific:

    No silent swallowing (catch (e) {} / if err != nil { return } without logging/wrapping)

    line 57
  4. Distinctive:

    No hardcoded secrets, API keys, passwords, or tokens

    line 66
  5. Distinctive:

    No internal error messages (stack traces, DB errors) sent to clients

    line 68
  6. Very specific:

    No direct mutation of objects — flag obj.field = value outside constructors

    line 83
  7. Distinctive:

    No N+1 queries — service should batch fetch, not loop-and-query

    line 88
  8. Distinctive:

    If a file list is specified, review those files only

    line 92
  9. Distinctive:

    If no scope given, review all files changed since last commit: git diff HEAD --name-only

    line 93
  10. Distinctive:

    Never rewrite code that isn't broken.

    line 100

“Common” is measured: kept by at least 6 in 10 of the 184 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Code Review

Review code for quality, type safety, DRY, security, and adherence to project standards. Produces actionable, severity-tagged findings.

Recommended model: Opus (deep multi-file analysis)


Output Format

One finding per line:

path/to/file.ts:42 — CRITICAL: problem description. Fix: what to do.
path/to/file.ts:88 — HIGH: problem description. Fix: what to do.
path/to/file.go:15 — MEDIUM: problem description. Fix: what to do.

Group findings by severity: CRITICAL → HIGH → MEDIUM → LOW.

At the end, output a summary:

Review complete. N findings: X critical, Y high, Z medium, W low.
Action required before proceeding: [list critical/high items]

Severity Definitions

SeverityWhen
CRITICALSecurity vulnerability, data loss risk, broken auth, hardcoded secret
HIGHType safety violation (any), unhandled error path, exposed internal data, missing validation at boundary
MEDIUMDRY violation, mutation of shared state, business logic in wrong layer, missing context propagation
LOWNaming inconsistency, minor style deviation, redundant code

What to Check

Type Safety (TypeScript)

  • No any — flag every occurrence; suggest unknown + type guard
  • No unchecked type assertions (as SomeType) without a prior type guard
  • Zod schema present for every HTTP boundary (body, params, query)
  • Response type matches the declared DTO — no extra fields leaking

Type Safety (Go)

  • Error return values never ignored (no _ on error unless explicitly justified)
  • No unchecked type assertions — v, ok := x.(T) not x.(T) directly
  • context.Context present as first arg on all service/repo methods

Error Handling

  • Errors caught at the correct layer (handler layer, not buried in service)
  • No silent swallowing (catch (e) {} / if err != nil { return } without logging/wrapping)
  • Errors mapped to the standard envelope before the client sees them

DRY

  • Duplicate logic across files that could be a shared utility
  • Inline response envelope construction that should use the shared helper
  • Copy-pasted validation that should be a shared schema

Security

  • No hardcoded secrets, API keys, passwords, or tokens
  • Input validated before use — never pass raw user input to DB/service
  • No internal error messages (stack traces, DB errors) sent to clients
  • Auth middleware applied to protected routes

Layer Separation (TypeScript)

  • Router handlers contain no business logic
  • Services contain no SQL / DB calls
  • Repositories contain no business rules

Layer Separation (Go)

  • Handlers contain no business logic
  • Services contain no SQL
  • Repositories contain no business rules
  • http.Request not passed beyond handler layer

Immutability (TypeScript)

  • No direct mutation of objects — flag obj.field = value outside constructors
  • No Object.assign(existing, ...) — should be Object.assign({}, existing, ...)

Performance

  • No await inside loops (TypeScript) — should be Promise.all
  • No N+1 queries — service should batch fetch, not loop-and-query

Review Scope

  • If a file list is specified, review those files only
  • If no scope given, review all files changed since last commit: git diff HEAD --name-only
  • Detect language from file extensions (.ts/.tsx → TypeScript rules; .go → Go rules)

After Findings

For each CRITICAL and HIGH finding, offer a concrete fix inline. For MEDIUM and LOW, describe the fix without rewriting the code.

Never rewrite code that isn't broken. Never suggest changes outside the review scope.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.