App-Project-Doctor
view release on metacpan or search on metacpan
script/project-doctor view on Meta::CPAN
0.02
=head1 SYNOPSIS
project-doctor [options] [PATH]
Options:
--check NAMES Run only the named checks (comma-separated)
--skip NAMES Skip the named checks (comma-separated)
--fix Apply all fixes non-interactively
--no-fix Report only; never prompt for fixes
--format FORMAT Output format: text (default), json, tap
--verbose, -v Show per-finding detail for all checks
--quiet, -q Suppress banner and passing checks
--help, -h Show this help
--man Show full manual page
=head1 DESCRIPTION
Runs a suite of diagnostics against a Perl CPAN distribution and reports
on tests, CI configuration, META validity, POD coverage, dependency
declarations, licensing, GitHub Actions workflows, security hygiene, and
CPAN upload readiness.
Fixable issues are listed at the end; the user is prompted (or fixes are
applied automatically with C<--fix>).
=head1 EXAMPLES
# Check the current directory
project-doctor
# Check a specific distribution
project-doctor ~/src/My-Dist
# Run only the Tests and POD checks
project-doctor --check=Tests,Pod
# JSON output for editor integration
project-doctor --format=json --no-fix
# CI usage: fail the build on any error
project-doctor --no-fix --format=tap
=head1 EXIT STATUS
0 No errors found
1 One or more errors found
=head1 CHECKS
In default execution order:
Tests Test suite exists and passes
CI CI configuration is present
GitHubActions Workflow files validate cleanly
Meta META.yml/json is present and complete
Pod All modules have valid POD
Dependencies Used modules are declared as prerequisites
License LICENSE file is present and consistent with META
Security strict/warnings present; no hardcoded credentials
CpanReadiness Version format, Changes, MANIFEST, README present
=head1 LIMITATIONS
The fix context is built from C<PATH>, not from the detected root. In the
rare case where C<PATH> is not the project root (e.g. a subdirectory), the
Context may have a different root than Doctor used.
=head1 AUTHOR
Nigel Horne C<< <njh@nigelhorne.com> >>
=head1 LICENSE
Copyright (C) 2026 Nigel Horne.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
( run in 1.343 second using v1.01-cache-2.11-cpan-bbcb1afb8fc )