Code reviewer
Welcome to the skill-jam βοΈπ
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.
What its author says it does
Copied from the file, not written here
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.
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.