Add a MANIFEST to the distribution. Your buildtool should be able to autogenerate it (eg "make manifest" or "./Build manifest")
Add a META.yml to the distribution. Your buildtool should be able to autogenerate it.
Add a Makefile.PL (for ExtUtils::MakeMaker/Module::Install) or a Build.PL (for Module::Build and its friends), or use a distribution builder such as Dist::Zilla, Dist::Milla, Minilla.
Add a Changelog (best named 'Changes') to the distribution. It should list at least major changes implemented in newer versions.
Run a proper command ("make manifest" or "./Build manifest", maybe with a force option), or use a distribution builder to generate the MANIFEST. Or update MANIFEST manually.
Error: Cannot find MANIFEST in dist.
Provide a short description in the NAME section of the pod (after the module name followed by a hyphen) at least for the main module of this distribution.
List all used modules in META.yml requires
Make sure that the main module name and version are the same of the distribution.
Remove the POD errors. You can check for POD errors automatically by including Test::Pod to your test suite.
Error: ZooZ-1.2/ZooZ.pl -- Around line 2000: '=end' without a target?
Add a META.json to the distribution. Your buildtool should be able to autogenerate it.
Add tests or move tests.pl to the t/ directory!
Move your *.pm files in a directory named 'lib'. The directory structure should look like 'lib/Your/Module.pm' for a module named 'Your::Module'. If you need to provide additional files, e.g. for testing, that should not be considered for Kwalitee, then you should look at the 'provides' map in META.yml to limit the files scanned; or use the 'no_index' map to exclude parts of the distribution.
Error: ZooZ/Base.pm, ZooZ/Callbacks.pm, ZooZ/DefaultArgs.pm, ZooZ/Fonts.pm, ZooZ/Forms.pm, ZooZ/Generic.pm, ZooZ/Options.pm, ZooZ/Project.pm, ZooZ/TiedVar.pm, ZooZ/varRefs.pm
Define the license if you are using in Build.PL. If you are using MakeMaker (Makefile.PL) you should upgrade to ExtUtils::MakeMaker version 6.31.
Add 'use warnings' (or its equivalents) to all modules, or convince us that your favorite module is well-known enough and people can easily see the modules warn when something bad happens.
Error: ZooZ::Base, ZooZ::Callbacks, ZooZ::DefaultArgs, ZooZ::Fonts, ZooZ::Forms, ZooZ::Generic, ZooZ::Options, ZooZ::Project, ZooZ::TiedVar, ZooZ::varRefs
This is not a critical issue. Currently mainly informative for the CPANTS authors. It might be removed later.