Skip to content

Architecture

The package under src/exemplar follows the GLIMPSE layers. Import-linter contracts in pyproject.toml enforce which layer may import which.

layer holds may import
pacts.py DTOs, protocols, errors nothing internal
specs.py constants only the business logic reads pacts
mills.py the checks and the report, no IO pacts, specs
links/ adapters that read the standards tree and the checked repository pacts
gates/ the exemplar command line pacts
inits/ wiring: links into mills, mills into gates everything
edges/ empty; nothing on a CLI needs it nothing

Tests live in tests/unit/ (mills, pure helpers) and tests/integration/ (links and gates, against real files).