Disallowed component cycle
Rule ID: architecture.dependency-cycle@1.0.0. Availability below refers to source-scan at product 524fa07e.
V-ARCH-07 — Disallowed component cycle#
Disallowed component cycle. It examines repository-wide reachability, dependencies, resources, and API boundaries.
Availability#
Not available in source-scan. There is no source-scan flag to activate this condition.
Example and action#
Illustrative design scenario, not a runnable Swift example or a reproduced analyzer result. The stated availability and evidence boundaries still apply.
Before: FeatureA depends on FeatureB, which depends back on FeatureA despite an acyclic layer policy.
Review the following change against the contract and build variants described above.
After: Move the shared interface into an allowed lower-level module and make both features depend on it. Recheck the complete component graph; moving an import alone may leave another cycle.
Intended analysis#
Intended reasoning: Model declarations, uses and entry points as a graph. A dependency or visibility decision needs the relevant consumers and build variants; an absence claim additionally needs a closed, complete graph. Required evidence: reachability, dependency, resource, and API-boundary facts
Assumptions and unknown#
The relevant facts must be admitted for the selected immutable build world. Unknown aliases, external effects, unsupported source forms or incomplete consumers can prevent a conclusion. Availability in this workflow is stated above; the illustration does not expand that availability.
Evidence and interpretation#
The target catalog describes the intended condition. It is not evidence of an active source-scan diagnostic.
Historical evidence at 4558458d: accepted-subset (a limited set of source forms and profiles passed historical checks). That evidence has not been requalified for this product revision.
How we validate checks explains the evidence boundary. Foundations separates method assumptions from implementation claims.