Inspect cycle edges in the matrix
The problem
The graph found a cycle group, but the exact edge story is still hard to read. The layout shows the loop, yet you need to know which package depends on which, in which direction, and how much traffic crosses each pair before you decide what to refactor.
Why it matters
Cycles are directional problems, but the two lenses do different jobs. The Topology Graph shows the whole loop and is the clearest place to trace a longer cycle. The Package Matrix shows direction and volume for one package pair without graph layout getting in the way. Use each lens for the part it explains best.
Where to start
Begin with the Package Matrix with Cycles Only enabled.
Step by step
- Start from the cycle problem graph.
Open the Cycles section and enable Cycles Only with Hide isolated on. The workflow preserves your existing deliberate graph filters, so non-cycle packages and clean dependencies leave the view without resetting the investigation you already scoped.
- Trace the whole loop before leaving the graph.
Select the cycle group and follow its route in Topology or Cycle View. If the cycle runs through several packages, stay here until you have a candidate package-pair seam to inspect.
- Open that pair in the Package Matrix.
Switch to Matrix with that cycles-only posture still active, and use the Cycle Matrix view for the focused group when it is available. Every visible package appears as both a row and a column, making the chosen pair easy to compare.
- Read pairwise direction and volume.
A cell means the row package depends on the column package. Cells in both directions reveal direct mutual coupling. A longer cycle may run through several one-way cells instead, so return to the graph whenever you need to see the complete route.
- Inspect the candidate edge.
Click the cell to open the concrete dependency examples. Choose the edge to remove or invert based on the architecture you intend, not simply because its count is smallest or largest.
- Record the response at the right breadth.
Use Record cycle decision for precise Intentional or Debt treatment with searchable rationale and lifecycle review. Use a Safe Haven when cycles through a broad known package or source-folder area should stay out of your remembered workspace cycle view.
- Keep governance local, or share it.
The governance record is already useful locally. Commit
.atlasarc/governance/cycles.jsonwhen you want to share and version decisions or apply them in AtlasArc.io CI. - Return to the graph if shape matters again.
When the matrix tells you which edge matters, switch back to the Topology Graph or Cycle View to explain the loop visually for a review, ticket, or report.
Interpreting results
The cycle remains an architectural violation in either lens. Graph owns the loop; Matrix owns the evidence between a chosen pair. Bidirectional cells make direct mutual coupling obvious, but they are not required for a longer cycle. Use your intended architecture and the concrete source references to choose the cleanest seam to refactor or govern.
Export & share
Use Export → Data as TSV when you need a sortable list of cycle-participating package pairs from the Matrix. For a discussion artifact, generate an Architecture Report with cycle triage sections so the matrix evidence and cycle-group context travel together.