symfonic.devtools.archgate.config¶
config ¶
Repository-owned configuration for the permanent architecture + DRY gate.
Configuration lives in archgate.toml (evidence/T4.4.1). It names the two
configurations the gate composes โ T1.2.4's archcheck.toml and T4.2.1's
integration-adapters.toml โ and owns the DRY invariants this task adds.
Relative paths resolve against paths.repo_root, itself relative to the
config file's own directory, so the gate runs identically from any CWD.
ArchgateConfigError ¶
Bases: ValueError
archgate.toml is missing or structurally invalid.
SingleDefinitionRule
dataclass
¶
SingleDefinitionRule(id: str, rule: str, description: str, names: tuple[str, ...], owners: tuple[str, ...])
Names that may only be defined at top level by declared owners.
SingleSourceRule
dataclass
¶
SingleSourceRule(id: str, rule: str, description: str, targets: tuple[str, ...], owners: tuple[str, ...], allow_lazy: bool = False)
One chokepoint and the modules licensed to reach it.
targets are dotted import targets (a module prefix or a symbol). A
module that is not an owner and imports one of them is a violation.
allow_lazy exists for chokepoints whose deferred import is sanctioned;
it is off by default, because a lazy import is still a second way in.