Tack.Credo.Check.PublicFunctionDoc (pica v0.1.0)

Copy Markdown View Source

Basics

This check is disabled by default.

Learn how to enable it via .credo.exs.

This check has a base priority of normal and works with any version of Elixir.

Explanation

Every public function carries a @doc.

CLAUDE.md, Conventions:

Document public API. Every module gets a @moduledoc and every public function a @doc (and a @spec); these are the pure core's contract and feed ex_doc. Use @moduledoc false only for modules with no public surface. Private functions (defp) don't need @doc; clarify them with a brief comment when non-obvious.

Two thirds of that sentence are enforced elsewhere — Credo.Check.Readability.ModuleDoc for the moduledoc and Credo.Check.Readability.Specs for the spec, both taking the same files: exclusions as this check. This is the third.

A function counts as documented when a @doc precedes it (@doc false included — it is a deliberate statement that the function has no public documentation) or when it carries @impl, since a callback implementation takes its contract from the behaviour. Only the first clause of a function needs one; each arity is its own function and wants its own.

Check-Specific Parameters

There are no specific parameters for this check.

General Parameters

Like with all checks, general params can be applied.

Parameters can be configured via the .credo.exs config file.