NAME
Claude::Agent::Code::Review - AI-powered code review using Claude
VERSION
Version 0.01
SYNOPSIS
use Claude::Agent::Code::Review qw(review review_files review_diff);
use Claude::Agent::Code::Review::Options;
use IO::Async::Loop;
my $loop = IO::Async::Loop->new;
# Combined AI + Perl::Critic review (recommended for CI/CD)
my $options = Claude::Agent::Code::Review::Options->new(
categories => ['bugs', 'security', 'style'],
severity => 'medium',
permission_mode => 'bypassPermissions',
# Enable deterministic perlcritic alongside AI review
perlcritic => 1,
perlcritic_severity => 4, # 1=brutal, 5=gentle
);
my $report = review_files(
paths => ['lib/'],
options => $options,
loop => $loop,
)->get;
# Process results
if ($report->has_issues) {
print $report->summary, "\n";
for my $issue (@{$report->issues}) {
printf "%s [%s] %s:%d - %s\n",
$issue->severity,
$issue->category,
$issue->file,
$issue->line,
$issue->description;
}
}
# Review staged git changes
my $staged_report = review_diff(
staged => 1,
options => $options,
loop => $loop,
)->get;
# Simple high-level review (auto-detects file/dir/staged)
my $report = review(
target => 'lib/MyModule.pm',
options => $options,
loop => $loop,
)->get;
DESCRIPTION
Claude::Agent::Code::Review provides AI-powered code review using the Claude Agent SDK. It analyzes code for bugs, security vulnerabilities, style issues, performance problems, and maintainability concerns.
All functions return Futures for async operation.
Note: By default, permission_mode is set to 'default' which prompts for permissions. For automated/CI usage, set permission_mode => 'bypassPermissions' in your Options.
EXPORTED FUNCTIONS
review
my $future = review(
target => $target, # file, dir, or 'staged'
options => $options, # Claude::Agent::Code::Review::Options
loop => $loop, # IO::Async::Loop
);
my $report = $future->get;
High-level review function that auto-detects the review mode.
review_files
my $future = review_files(
paths => \@paths, # files and/or directories
options => $options,
loop => $loop,
);
my $report = $future->get;
Review specific files or directories.
review_diff
my $future = review_diff(
diff => $diff_text, # diff content
# OR
staged => 1, # review staged changes
options => $options,
loop => $loop,
);
my $report = $future->get;
Review a diff or staged changes.
SEE ALSO
Claude::Agent - Main SDK module
Claude::Agent::Code::Review::Options - Review configuration
Claude::Agent::Code::Review::Report - Review report object
Claude::Agent::Code::Review::Issue - Individual issue object
AUTHOR
LNATION, <email at lnation.org>
LICENSE
This software is Copyright (c) 2026 by LNATION.
This is free software, licensed under The Artistic License 2.0 (GPL Compatible).