Part of #166 (docs track). Surfaced while reviewing #169.
The provider count is hand-written in several places and disagrees with itself:
docs/README.md, docs/PROJECT-OVERVIEW.md (5 places): "325 providers".
docs/PROJECT-OVERVIEW.md also says "251 OpenAI-compatible" (the registry row count, which is right for that subset).
scripts/gen_providers_doc.py derives its non-registry list from aimux-providers/src/lib.rs modules and only excludes provider / provider_name, so internal modules such as replay and catalogue are counted as providers.
Work
- Fix the counting source first, not the numbers:
gen_providers_doc.py excludes every non-provider module (provider, provider_name, replay, catalogue, and anything else that does not implement a model trait — derive the list from the modules that export a *Provider / model constructor rather than a hand-kept exclude list if that is cheap).
- Have the generator emit the totals (registry rows by tier, native protocol providers, single-modality providers) into
docs/api/providers.md, and make the other docs reference that page instead of repeating a number. Where a number must appear in prose (README), state it once with a date and a link.
- Update README,
docs/README.md, docs/api/reference.md, docs/PROJECT-OVERVIEW.md to the generated figures.
Historical snapshots under docs/internal/ and docs/quality-audit/ keep their numbers; they record a point in time.
Part of #166 (docs track). Surfaced while reviewing #169.
The provider count is hand-written in several places and disagrees with itself:
docs/README.md,docs/PROJECT-OVERVIEW.md(5 places): "325 providers".docs/PROJECT-OVERVIEW.mdalso says "251 OpenAI-compatible" (the registry row count, which is right for that subset).scripts/gen_providers_doc.pyderives its non-registry list fromaimux-providers/src/lib.rsmodules and only excludesprovider/provider_name, so internal modules such asreplayandcatalogueare counted as providers.Work
gen_providers_doc.pyexcludes every non-provider module (provider,provider_name,replay,catalogue, and anything else that does not implement a model trait — derive the list from the modules that export a*Provider/ model constructor rather than a hand-kept exclude list if that is cheap).docs/api/providers.md, and make the other docs reference that page instead of repeating a number. Where a number must appear in prose (README), state it once with a date and a link.docs/README.md,docs/api/reference.md,docs/PROJECT-OVERVIEW.mdto the generated figures.Historical snapshots under
docs/internal/anddocs/quality-audit/keep their numbers; they record a point in time.