ALL-CLAS0003 · public_method_count
Measure the widest public callable surface one type in this module declares.
This is a deterministic rule for all languages. Read its implementation.
Definition
Section titled “Definition”Count the callables one type declares in its own body whose resolved visibility is public and whose name a language does not reserve for its own protocol. Return the largest count any type in this module reaches, so the module is judged by its widest type rather than by an average that a file full of small helpers would hide. Inherited members do not count, because the surface a reader has to learn when opening this file is the one written here.
Every language that declares members inside a type takes part. A provider maps its own spelling
onto the shared visibility, so a Java public method, a Rust pub fn in an impl block, a
TypeScript member that is neither private nor #-prefixed, and a Python name without a
leading underscore are all counted the same way. A constructor, an operator, and a Python
dunder are protocol names rather than surface a caller chooses to use, so they stay out.
The count is the measurement and a project policy owns the ceiling. A repository facade and a value object sit at opposite ends of what is reasonable, and only a project can say which one it is looking at.
Continue with evidence and references, or open the examples.