Code Review
Platform

Code Review

Automatic and manual code review for every ticket. Inline comments, suggested fixes, one-click apply, and gated PR creation.

Every code change goes through review before it becomes a pull request. When a ticket finishes executing, JuhJuh transitions it to a review state where the diff is analyzed line by line. Issues are flagged, fixes are suggested, and nothing reaches your main branch until review passes.

You can let the automated review run on its own, step in with manual comments, or combine both.

How it works

stateDiagram-v2
    [*] --> Execution: Ticket starts
    Execution --> Review: Code changes complete
    Review --> Review: Fix applied
    Review --> PR: Review passes
    PR --> [*]: Merged

After execution completes, the ticket enters the review state. A 30-second countdown starts. If you do nothing, the automated review begins automatically. During the countdown, you can cancel it and review manually, or let it proceed.

The automated reviewer scans every changed file, checks for correctness, security issues, performance problems, style violations, missing tests, and edge cases. It produces inline comments with specific line references and suggested fixes.

The diff view

Open any ticket in review to see the full diff. JuhJuh renders a side-by-side comparison of every changed file against the base commit.

From the diff view, you can:

  • Read inline comments from the automated review
  • Add your own comments on any line
  • Apply a suggested fix with one click
  • Apply all suggested fixes at once
  • Trigger a new review round after changes
  • Create a pull request when you are satisfied

Automated review

The automated review runs a multi-pass analysis on every changed file.

What it checks

Category Examples
Correctness Logic errors, broken control flow, incorrect return values
Security Injection vulnerabilities, exposed secrets, missing auth checks
Performance N+1 queries, missing indexes, unnecessary allocations
Style Naming conventions, formatting, import ordering
Tests Missing coverage, weak assertions, test data quality
Edge cases Null handling, boundary conditions, empty collections

Review outcomes

Each review produces one of three outcomes.

Approved. No issues found. The ticket is ready for PR creation.

Fixes applied. Issues were found and automatically fixed. The review re-runs to verify the fixes.

Manual review required. Some issues cannot be fixed automatically. These are flagged as inline comments for you to address.

Inline comments

Every review comment attaches to a specific file, line number, and code snippet. Comments include:

Field Description
Category The type of issue (security, performance, style, etc.)
Severity Error, warning, or informational
Comment What the issue is and why it matters
Suggested fix A proposed code change to resolve the issue
Alternatives Other valid approaches, when more than one fix exists

Comments from the automated review are labeled separately from your manual comments. Both appear together in the diff view.

Adding manual comments

  1. Open the diff view for a ticket in review
  2. Click on any line in the diff
  3. Write your comment describing the issue or change you want
  4. Click Save

Your comments are saved immediately. You can add comments to any file and any line, including unchanged context lines.

Resolving comments

Comments are marked as resolved when:

  • A fix is applied that addresses the issue (automatically or manually)
  • You mark the comment as resolved in the diff view

Unresolved comments block PR creation. Every comment must be addressed before you can move forward.

Applying fixes

You have three ways to apply fixes from review comments.

Apply a single fix

Click Apply Fix on any comment with a suggested fix. JuhJuh applies the change in real time. The comment is marked as resolved, and you see the updated diff immediately.

If a comment has multiple alternatives, choose the fix you prefer before applying.

Apply all fixes

Click Apply All Fixes to batch-apply every suggested fix from unresolved comments. JuhJuh processes them grouped by file. Once complete, all addressed comments are resolved and the diff updates.

Manual fixes

For comments marked as requiring manual review, you have two options:

  1. Write a follow-up comment with your preferred approach, then trigger a new review round
  2. Fix the code directly in your editor and push the changes

Auto-review countdown

When a ticket finishes execution, a 30-second countdown banner appears in the ticket detail view. The banner shows a visual timer and a Cancel button.

  • Let it run. Do nothing. After 30 seconds, the automated review starts.
  • Cancel. Click Cancel to stop the countdown. Review the diff yourself and trigger the review manually when ready.
  • Start immediately. Click Review Code to skip the countdown and start the review now.

The countdown broadcasts to everyone viewing the ticket. If one team member cancels, everyone sees the cancellation.

After review

Once all comments are resolved and you are satisfied with the changes, click Create PR. JuhJuh creates a pull request on your connected repository with the reviewed, approved code.

If the automated review finds no issues, it proceeds to PR creation automatically, skipping the manual review step entirely.

Review with agents

You can attach agents to run during the review phase. A security-focused agent, for example, can perform a deep audit of changed files before the standard review runs. Agent output feeds into the review as additional inline comments with the same fix-and-resolve workflow.

See Agent Pipelines for how to configure agent timing around review steps.

Best practices

Write clear comments. Specific comments produce better fixes. "This query will N+1 on the related table" is more useful than "performance issue."

Use the countdown. The 30-second window gives you time to glance at the diff. Cancel only if you want to review line by line before any automated analysis.

Combine automated and manual review. Let the automated review catch mechanical issues. Add your own comments for architectural concerns, naming choices, or business logic that only a human reviewer would catch.

Check alternatives. When a fix has multiple alternatives, read them all. The first suggestion is not always the best fit for your codebase.

  • Tickets for the full ticket lifecycle, including the review state
  • Agents for attaching custom review agents to tickets
  • Automation for configuring auto-review behavior
  • Projects for connecting repositories that receive pull requests
  • Prompts for customizing the instructions that guide automated review