Percerno Skillsbeta
← everything it can do · engineering

Code Review TEXT

Analyzes code changes and pull requests to identify security vulnerabilities, performance bottlenecks, and design flaws based on Sentry engineering standards. Provides actionable, empathetic feedback on code quality, test coverage, and long-term maintainability.

2 uses this weeksource getsentrylicence Apache-2.0
Quality gate: PASS · better answers · measured 2026-10-23
Blind-judged against the bare model on 2 requests: average lift +4.5 points (specificity, structure, method, fit).
won 2/2, lift +4.5, tokens ×65.89
Security scan: clean · 2026-10-24 · 1 files · ran in sandbox
no network calls, shell tricks, credential access or instruction tampering found in its files.

Try asking

Say it in your own words; the assistant finds this recipe by itself. Examples:

“Kan du gennemgå denne pull request og tjekke for sikkerhedsproblemer?”
“Se på min kode og find eventuelle N+1 query problemer i Django.”
“Jeg har brug for feedback på testdækningen for denne nye funktion.”
“Review this PR for potential security vulnerabilities and performance issues.”
“Can you check if my Django ORM queries in this diff are efficient?”
“I need feedback on the test coverage for this new feature branch.”
Try this skill from Claude, ChatGPT or a chat on your own page. Free plan, no credit card.Get started free

Good for

code-reviewpull-requestsecurity-auditperformance-optimizationdjangotypescripttestingbest-practicesfeedback

Not for

Do not use this skill for writing new code from scratch or generating entire modules, as it is focused on evaluating existing changes. It is not intended for automated linting or formatting fixes, which should be handled by static analysis tools. It is also not for debugging runtime errors in production environments, which requires a debugging or incident response skill.

Details

When it is the right choice

Use this skill when a user asks for a review of a specific pull request, diff, or code snippet. It is appropriate when the user wants to check for security issues, performance anti-patterns, or architectural consistency before merging code. It is also suitable when the user seeks constructive feedback on code quality and test coverage.

The full recipe the assistant reads

Sentry Code Review

Follow these guidelines when reviewing code for Sentry projects.

Review Checklist

Identifying Problems

Look for these issues in code changes:

  • Runtime errors: Potential exceptions, null pointer issues, out-of-bounds access
  • Performance: Unbounded O(n²) operations, N+1 queries, unnecessary allocations
  • Side effects: Unintended behavioral changes affecting other components
  • Backwards compatibility: Breaking API changes without migration path
  • ORM queries: Complex Django ORM with unexpected query performance
  • Security vulnerabilities: Injection, XSS, access control gaps, secrets exposure

Design Assessment

  • Do component interactions make logical sense?
  • Does the change align with existing project architecture?
  • Are there conflicts with current requirements or goals?

Test Coverage

Every PR should have appropriate test coverage:

  • Functional tests for business logic
  • Integration tests for component interactions
  • End-to-end tests for critical user paths

Verify tests cover actual requirements and edge cases. Avoid excessive branching or looping in test code.

Long-Term Impact

Flag for senior engineer review when changes involve:

  • Database schema modifications
  • API contract changes
  • New framework or library adoption
  • Performance-critical code paths
  • Security-sensitive functionality

Feedback Guidelines

Tone

  • Be polite and empathetic
  • Provide actionable suggestions, not vague criticism
  • Phrase as questions when uncertain: "Have you considered...?"

Approval

  • Approve when only minor issues remain
  • Don't block PRs for stylistic preferences
  • Remember: the goal is risk reduction, not perfect code

Common Patterns to Flag

Python/Django

# Bad: N+1 query
for user in users:
    print(user.profile.name)  # Separate query per user

# Good: Prefetch related
users = User.objects.prefetch_related('profile')

TypeScript/React

// Bad: Missing dependency in useEffect
useEffect(() => {
  fetchData(userId);
}, []);  // userId not in deps

// Good: Include all dependencies
useEffect(() => {
  fetchData(userId);
}, [userId]);

Security

# Bad: SQL injection risk
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")

# Good: Parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", [user_id])

References

Files in this skill (2)
  • LICENSE
  • SKILL.md
Where it comes from

Vendored from getsentry/skills, commit f57ada2d0b64, path skills/code-review, licence Apache-2.0. The upstream licence file ships inside the skill.