NAME

Wordsmith::Claude::Blog::Reviewer::Interactive - Interactive terminal UI for blog reviewing

SYNOPSIS

use Wordsmith::Claude::Blog::Reviewer::Interactive;
use IO::Async::Loop;

my $loop = IO::Async::Loop->new;

# Review from file
my $interactive = Wordsmith::Claude::Blog::Reviewer::Interactive->new(
    file => 'my-blog.md',
    loop => $loop,
);

# Or review text directly
my $interactive = Wordsmith::Claude::Blog::Reviewer::Interactive->new(
    text  => $blog_text,
    title => 'My Blog Post',
    loop  => $loop,
);

my $result = $interactive->run->get;

if ($result->is_success) {
    print $result->text;
}

DESCRIPTION

Provides an interactive terminal UI for the Blog::Reviewer, featuring:

  • Colored headers and status messages

  • Paragraph-by-paragraph display with AI analysis

  • Interactive menu for approve/revise/edit/skip actions

  • Multiple revision options (grammar, clarity, conciseness, etc.)

  • Manual editing with external editor support

  • Live progress saving to file

ATTRIBUTES

Every attribute is set through new, which takes a flat list of name/value pairs and ignores unknown names.

  • file - Path of the file to review

  • text - The text to review, when not read from a file

  • title - The title of the piece, when known

  • options - A Wordsmith::Claude::Options; a default one is built

  • loop - The IO::Async::Loop to run on; one is created when not given

METHODS

run

my $result = $interactive->run->get;

Run the interactive review in the terminal and return a Future of the Wordsmith::Claude::Blog::Result.

AUTHOR

LNATION, <email at lnation.org>

LICENSE AND COPYRIGHT

This software is Copyright (c) 2026 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)