EP-0130: API Consistency & Public Export Audit¶
| Field | Value |
|---|---|
| EP | 0130 |
| Title | API Consistency & Public Export Audit |
| Author | Eran Rivlis & Antigravity |
| Status | Final |
| Type | Standards Track |
| Created | 2026-08-02 |
| Updated | 2026-08-02 |
Abstract¶
Phase 2 introduced four new modules (algebrax.homology, algebrax.clifford, algebrax.galois,
algebrax.category) but none are re-exported from algebrax.__init__.py. This creates an inconsistency:
these modules exist as first-class citizens with tests and lab views, yet the public API does not surface them.
This proposal resolves the gap by:
- Re-exporting key symbols from
homology,clifford,galois, andcategoryin__init__.pyand__all__. - Introducing a
Semiring.catalog()classmethod that returns a discoverable registry of all 21+ semiring types. - Documenting extension modules as either "core" or "extension" tier in
concepts.md.
Motivation¶
Russell (Consistency): The architecture contains a contradiction — modules that are tested, documented, and
visualized but invisible from the top-level import. Users who import algebrax cannot discover
SimplicialComplex, CliffordSemiring, GaloisFieldSemiring, or kleisli_compose.
Specification¶
1. __init__.py Additions¶
from algebrax.homology import SimplicialComplex
from algebrax.clifford import CliffordSemiring, rotor_rotation
from algebrax.galois import GaloisFieldSemiring, gf_matrix_mul
from algebrax.category import kleisli_compose, kan_extension_left
2. Semiring.catalog() Classmethod¶
@classmethod
def catalog(cls) -> dict[str, type['Semiring']]:
"""Return a discoverable registry of all built-in semiring types."""
3. Module Docstring Update¶
Update the __init__.py module docstring Modules section to include homology, clifford, galois, category.
Backwards Compatibility¶
Purely additive. No existing behavior changes.
Change Log¶
- 2026-08-02: Initial Draft.
- 2026-08-02: Implemented. Status → Final.