chaffchaff
← 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.