use Dist::Zilla::Role::FileWatcher

This makes your code simpler, so you don't have to mess around with applying the role directly.

I think your pod_for_source_file code from https://github.com/DarwinAwardWinner/Dist-Zilla-Role-DistFileReader/blob/master/lib/Dist/Zilla/Role/PerlModuleReader.pm#L31 would be best added directly to Dist::Zilla::Role::PPI (where you can cache the PPI document, being even more efficient).