Skip to content

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.

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.