Architecture¶
Twelve workspace packages in three tiers. Lower layers never depend on higher ones — domain packages consume shared infrastructure, and the presentation layer wires everything together for downstream projects.
The sidebar groups these twelve packages into four navigation buckets (Domain Packages, UX, Utils, Internal) — a reader-facing grouping that is orthogonal to the dependency-ordered tier map below.
Tier 2: Domain packages¶
Domain-specific autodoc extensions that consume Tier 1 and add project-specific rendering logic:
Package |
Domain |
Directives |
|---|---|---|
Standard Python |
|
|
Custom |
|
|
docutils |
|
|
FastMCP tools |
|
|
pytest fixtures (extends |
|
|
Sphinx config |
|
Each domain package calls app.setup_extension() to auto-register its
infrastructure dependencies — downstream projects only need to add the
domain package to their extensions list.
Tier 3: Theme and coordinator¶
Package |
Role |
|---|---|
Coordinator. |
|
Furo-based theme with CSS variables and SPA navigation. |
|
IBM Plex via Fontsource — preloaded web fonts. |
How the tiers connect¶
Every domain package shares the same badge palette, the same componentized HTML output structure, and the same type annotation pipeline — so Python APIs, pytest fixtures, Sphinx config values, docutils directives, and FastMCP tools all look like they belong together.
This is the one autodoc design system principle: a change to the shared infrastructure propagates instantly and consistently across all six domain packages.