← rule catalog
import.cycle
enforcedstructuralseverity: medium
A deterministic fact about the artifact that asserts nothing about behavior, so it needs no eval (SPEC §6).
Claim
An @-import chain returns to a file already on the chain; the loader breaks the cycle at first repeat, so the second visit is a no-op the author probably did not intend.
Rationale
Import resolution counts each file once and breaks cycles at the first repeat (SPEC §9). The cyclic edge adds no content; it only obscures what actually loads.
Fix
Remove the cyclic import edge (mechanical: remove the import line); keep imports a tree.
chaff explain import.cycle: same registry, offline, from the CLI.