Code reviewer
Performs automated code review with inline comments, flags anti-patterns, and suggests improvements against style guides. Invoke when asked to review code, check a pull request, audit code quality, or find issues in a file or diff.From its SKILL.md
npx -y skills add VRIL-LABS/skill-jam --skill code-reviewerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.1 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Code Reviewer
Automated code review skill that provides inline feedback, flags anti-patterns, identifies bugs, and suggests concrete improvements aligned with language-specific style guides and best practices.
When to Use
- User asks to "review this code", "check my PR", or "audit this file"
- A pull request diff is provided and feedback is requested
- User wants to ensure code meets team style guides before merging
- User asks for a second opinion on implementation choices
- Code quality gates are failing and root cause is unclear
- User wants to identify potential bugs before shipping
Process
-
Identify the language and framework from file extensions, imports, or explicit context. Note any relevant style guide (ESLint config,
.editorconfig,pyproject.toml,golangci.yml, etc.). -
Parse the full scope of changes β read the entire file or diff, not just the changed lines, to understand surrounding context, imports, and data flow.
-
Run through the review checklist for each function/block:
- Correctness: Does the logic match the stated intent? Are edge cases handled?
- Naming: Are variables, functions, and classes named clearly and consistently?
- Complexity: Is cyclomatic complexity high? Can it be simplified?
- Duplication: Is logic copy-pasted from elsewhere? Extract shared helpers.
- Error handling: Are errors caught, logged, and handled gracefully?
- Security: Any injection risks, untrusted input used unsafely, secrets in code?
- Performance: Any N+1 queries, unnecessary loops, or expensive operations in hot paths?
- Tests: Are new code paths covered? Are existing tests updated?
- Documentation: Are public APIs, complex logic, and non-obvious decisions documented?
-
Categorize each finding by severity:
- π΄ Blocker β must be fixed before merge (bug, security issue, data loss risk)
- π‘ Warning β should be addressed (style violation, missing error handling, test gap)
- π’ Suggestion β nice to have (readability, minor optimization, alternative approach)
- π¬ Nit β trivial style/formatting issue
-
Write inline comments referencing specific line numbers or code snippets.
-
Provide a summary section with an overall verdict (Approve / Request Changes / Needs Discussion), a count of findings by severity, and 2β3 high-level themes observed across the review.
-
Suggest concrete fixes β don't just flag problems; show corrected code snippets where possible.
Output Format
## Code Review Summary
**Verdict:** Request Changes | Approve | Needs Discussion
**Findings:** π΄ 2 blockers Β· π‘ 3 warnings Β· π’ 5 suggestions Β· π¬ 2 nits
### Key Themes
- Error handling is inconsistent across service layer methods
- Several functions exceed 50 lines and could be decomposed
- Missing input validation on user-facing endpoints
---
### Inline Findings
#### `src/users/userService.ts` β Line 42
π΄ **Blocker: SQL Injection Risk**
The `userId` parameter is interpolated directly into the query string.
```ts
// β Current
const q = `SELECT * FROM users WHERE id = ${userId}`;
// β
Fix
const q = `SELECT * FROM users WHERE id = ?`;
db.query(q, [userId]);
src/utils/formatDate.ts β Line 17
π‘ Warning: No null check before .toISOString()
If date is null or undefined, this will throw at runtime.
...
## Examples
### Example Input
Review this Python function:
def get_user(user_id): result = db.execute("SELECT * FROM users WHERE id = " + user_id) return result[0]
### Example Output
Code Review Summary
Verdict: Request Changes Findings: π΄ 1 blocker Β· π‘ 1 warning
Line 2
π΄ Blocker: SQL Injection
String concatenation into a SQL query allows injection attacks.
β
Fix: Use parameterized queries β db.execute("SELECT * FROM users WHERE id = %s", (user_id,))
Line 3
π‘ Warning: IndexError if user not found
result[0] raises IndexError if the query returns no rows.
β
Fix: Return result[0] if result else None and handle the None case in the caller.
## Boundaries
- Do NOT rewrite entire files unless explicitly asked β provide targeted inline feedback only.
- Do NOT assume a style guide exists if none is provided; fall back to community defaults (PEP 8, Airbnb, Google style, etc.).
- Do NOT flag third-party library internals or auto-generated files.
- Do NOT run code or attempt execution β analysis is static only.
- Do NOT make subjective architectural decisions on behalf of the team (e.g., "you should use microservices").
- Limit review depth to files/diffs explicitly provided; do not speculatively fetch other files unless they are directly referenced and relevant.
- Keep nit count reasonable β avoid overwhelming feedback with trivial formatting issues if blockers are present.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.