When you declare a class, ObjectPascal rules say that default ("implicit") visibility of members is public, unless the class is declared within {$M+} state or the class inherits from another class declared in {$M+} state (like TPersistent) – then it's published.
However, pasdoc cannot absolutely correctly implement this behavior (see comments at bug 1221900 for large reasoning; roughly speaking, only the compiler knows whether class inherits from another class declared in {$M+} state).
You can control using the command-line option --implicit-visibility how exactly pasdoc handles members with "implicit visibility":
--implicit-visibility=public
Visibility of implicit members is public, unless the class is declared within {$M+} state, then visibility is published. This is the default setting.
--implicit-visibility=published
Visibility of implicit members is always published.
--implicit-visibility=implicit
Visibility of implicit members is always implicit. Implicit is new visibility kind, invented only for the sake of pasdoc. It's another possible kind for --visible-members option. By default, --visible-members do not include implicit members.
If you don't use --implicit-visibility=implicit CommandLine option then no members will be ever considered as having an implicit visibility by pasdoc.