AtlasArc

Hotspot Risk

Detekt · AtlasArc 1.0.0+d9b43417 · 2026-07-31T22:45:00Z

A diagnostic report that separates unusual dependency shape, complexity pressure, main-sequence distance, and coverage context.

Package Diagnostics Briefing

This chapter separates dependency shape, complexity pressure, and main-sequence distance into explicit diagnostic rules. Start with strict outliers where they exist; a Highest values group is a neutral fallback for orientation, not an AtlasArc problem verdict.

Eligible Packages67
Strict diagnostic groups1
Strictly selected packages3
Highest values fallbacks3
Cycle packages23
CoverageNot loaded
Rendered as Subsystems · Boundary Risk Open

Where does boundary pressure concentrate across the visible architecture?

Configuration
Focus
project root
Curated view
Boundary Risk
Filter
All visible packages
Encoding
Bubble
Package-folder subsystem rollup
X axis
Fan-out
Y axis
Fan-in
Size
Classes
Colour
Instability
  • How to read this graph: each bubble is a visible architecture-boundary rollup. Right means more outgoing boundary dependencies; up means more incoming boundary dependencies; size is total class count.
  • Colour follows instability, so red means outgoing-heavy rather than automatically wrong. Use the figure to find boundary surfaces worth inspecting in Topology or Matrix.
  • Dashed rings mark expanded aggregate boundaries whose visible descendants are also present. Terminal packages or source folders remain valid boundaries and use their own metrics.
Fan-in
0 10 20 30 0 10 20 30 40 50 60 detekt-rules-styl… dev detekt rules style detekt-rules-ktli… dev detekt rules ktlintwrapper wrappers potentialbugs detekt-core.main dev detekt core detekt-gradle-plu… dev detekt gradle detekt-tooling.ma… dev detekt tooling detekt-generator.… dev detekt generator
Fan-out
Rendered as Subsystems · Visibility Surface Open

Which subsystems expose a large public surface?

Configuration
Focus
project root
Curated view
Visibility Surface
Filter
All visible packages
Encoding
Bubble
Package-folder subsystem rollup
X axis
Relative visibility
Y axis
Abstractness
Size
Classes
Colour
Abstractness
  • How to read this graph: each bubble is a visible architecture-boundary rollup. Right means more visible API surface; up and colour both follow abstractness; size is total class count.
  • This view highlights boundary shape, not direct defect risk. A top/right bubble may be a deliberate public contract area.
  • Dashed rings mark expanded aggregate boundaries whose visible descendants are also present. Terminal packages or source folders remain valid boundaries and use their own metrics.
Abstractness (A)
0.00 0.20 0.40 0.60 0.80 1.00 0.00 0.20 0.40 0.60 0.80 1.00 detekt-rules-styl… dev detekt rules style detekt-rules-ktli… dev detekt rules ktlintwrapper wrappers potentialbugs detekt-core.main dev detekt core detekt-gradle-plu… dev detekt gradle detekt-tooling.ma… dev detekt tooling detekt-generator.… dev detekt generator
Rel. Visibility (RV)
Rendered as Subsystems · Internal Tangles Open

Which subsystem areas contain internal cycle pressure?

Configuration
Focus
project root
Curated view
Internal Tangles
Filter
All visible packages
Encoding
Bubble
Package-folder subsystem rollup
X axis
cycleCount
Y axis
largestCycle
Size
packageCount
Colour
Cycle status
  • How to read this graph: each bubble is a visible architecture-boundary rollup. Right means more fully contained package-cycle groups; up means the largest contained package cycle is larger; size is package count.
  • Only package cycles fully inside the boundary count here. Terminal-package class/file tangles remain separate Package Internals evidence in Topology. Use the cycle tables, Topology, or Matrix for concrete dependency edges and cross-boundary cycle context.
  • Dashed rings mark expanded aggregate boundaries whose visible descendants are also present. Terminal packages or source folders remain valid boundaries and use their own metrics.
Largest cycle
0 1 1 2 2 0 1 2 3 4 5 detekt-generator.… dev detekt generator build-logic.main gradle kotlin dsl accessors detekt-rules-styl… dev detekt rules style reporting collection printer plugin processors detekt-psi-utils.… dev detekt psi detekt-rules-comm… dev detekt rules comments
Cycle groups
Rendered as Hotspots · Coupling Open

Which leaf packages stand out by coupling pressure?

Configuration
Items
Leaf packages
Focus
project root
Scope
Recursive
Preset
Coupling
Encoding
Bubble
One leaf package
X axis
Fan-out
Y axis
Fan-in
Size
Lines of code
Colour
Instability
  • Labels are shown for the largest report bubbles; inspect the package metrics table for the full ranked list.
Fan-in
0 2 4 6 8 10 12 14 0 10 20 30 40 style potentialbugs wrappers complexity naming coroutines exceptions api collection comments
Fan-out
Rendered as Hotspots · Visibility Open

Which leaf packages are visible to many callers and far from the main sequence?

Configuration
Items
Leaf packages
Focus
project root
Scope
Recursive
Preset
Visibility
Encoding
Bubble
One leaf package
X axis
Relative visibility
Y axis
Fan-in
Size
Classes
Colour
Distance from main sequence
  • Labels are shown for the largest report bubbles; inspect the package metrics table for the full ranked list.
Fan-in
0.00 0.20 0.40 0.60 0.80 1.00 0 10 20 30 40 style wrappers potentialbugs complexity naming api invoke collection exceptions dsl spec processors comments emptyblocks cli
Rel. Visibility (RV)
Rendered as Hotspots · Abstractness / Instability Open

Which leaf packages sit far from the main sequence?

Configuration
Items
Leaf packages
Focus
project root
Scope
Recursive
Preset
Zone Map
Encoding
Bubble
One leaf package
X axis
Instability
Y axis
Abstractness
Size
Distance from main sequence
Colour
Distance from main sequence
  • Labels are shown for the largest report bubbles; inspect the package metrics table for the full ranked list.
Abstractness (A)
0.00 0.20 0.40 0.60 0.80 1.00 0.00 0.20 0.40 0.60 0.80 1.00 parser exception util parser internal utils psi utils out metrics api extensions utils util internal movelambdaout core internal reporting api collection dsl plugin printer plugin wrappers junit internal
Instability (I)

Package Diagnostic Signals

Use these short lists to find unusual dependency shape, complexity pressure, and main-sequence distance without treating every high value as a problem. Each rule is evaluated across the prepared report scope; cycle participation is shown only as context.

Dependency hubs

Which packages carry unusually broad dependency traffic in both directions?

These packages combine a wide consumer blast radius with broad outward knowledge. Understand their role before changing a contract or moving responsibilities.

Nothing in this report scope is separated enough from its peers to count as a statistical outlier. For orientation, the table shows 5 of the strongest eligible examples.

Continue in AtlasArcShow me the backboneIsolate the packages with the widest consumer blast radius and inspect who relies on them.

How AtlasArc selected these rows

Highest values

Rule: Fan-in or Fan-out is above its upper outlier cutoff and the other degree is at or above its 75th percentile.

Population: 67 real leaf architecture units with Fan-in and Fan-out. Result: No strict outlier result; showing 5 of 10 eligible fallback values.

Cutoff: Fan-in > 14.59 (67 eligible values); Fan-out > 18.76 (67 eligible values)

Diagnostic evidence
Packagedetekt-core.maindev.detekt.core
Fan-in
6
Fan-out
9
Instability
0.60
Cycle
Nested
Packagedetekt-tooling.maindev.detekt.tooling.dsl
Fan-in
4
Fan-out
4
Instability
0.50
Cycle
Architectural
Packagedetekt-core.maindev.detekt.core.reporting
Fan-in
3
Fan-out
5
Instability
0.63
Cycle
—
Packagedetekt-generator.maindev.detekt.generator.collection
Fan-in
3
Fan-out
4
Instability
0.57
Cycle
—
Packagedetekt-gradle-plugin.maindev.detekt.gradle.internal
Fan-in
3
Fan-out
4
Instability
0.57
Cycle
Architectural

Incoming-heavy packages

Which packages are unusually depended on while relying on relatively little?

These are load-bearing packages whose contracts may affect many callers even though their own outward dependency surface stays comparatively narrow.

AtlasArc found 3 values clearly separated from their peers in this report scope.

Continue in AtlasArcShow me the backboneTrace the callers that make these packages part of the project's backbone.

How AtlasArc selected these rows

Strict outliers

Rule: Fan-in is above its upper outlier cutoff, Instability is at most 0.35, and dependency hubs are excluded.

Population: 65 real leaf architecture units with Instability. Result: 3 qualified; showing 3.

Cutoff: Fan-in > 14.59 (67 eligible values)

Diagnostic evidence
Packagedetekt-api.maindev.detekt.api
Fan-in
44
Fan-out
1
Instability
0.02
Cycle
Nested
Packagedetekt-api.maindev.detekt.api.internal
Fan-in
18
Fan-out
1
Instability
0.05
Cycle
Nested
Packagedetekt-tooling.maindev.detekt.tooling.api.spec
Fan-in
15
Fan-out
3
Instability
0.17
Cycle
Architectural

Outgoing-heavy packages

Which packages depend unusually broadly without serving many callers?

These packages know about many parts of the system. They may be healthy coordinators, or responsibilities may have accumulated in one place.

Nothing in this report scope is separated enough from its peers to count as a statistical outlier. For orientation, the table shows 5 of the strongest eligible examples.

Continue in AtlasArcTicking time bombsInspect the outward dependency seams and decide whether the package's responsibility is still coherent.

How AtlasArc selected these rows

Highest values

Rule: Fan-out is above its upper outlier cutoff, Instability is at least 0.65, and dependency hubs are excluded.

Population: 65 real leaf architecture units with Instability. Result: No strict outlier result; showing 5 of 38 eligible fallback values.

Cutoff: Fan-out > 18.76 (67 eligible values)

Diagnostic evidence
Packagedetekt-core.maindev.detekt.core.tooling
Fan-in
0
Fan-out
15
Instability
1.00
Cycle
—
Packagedetekt-core.maindev.detekt.core.config.validation
Fan-in
2
Fan-out
10
Instability
0.83
Cycle
Nested
Packagedetekt-cli.maindev.detekt.cli
Fan-in
1
Fan-out
8
Instability
0.89
Cycle
Nested
Packagedetekt-cli.maindev.detekt.cli.runners
Fan-in
1
Fan-out
6
Instability
0.86
Cycle
Nested
Packagedetekt-compiler-plugin.mainio.github.detekt.compiler.plugin.internal
Fan-in
1
Fan-out
5
Instability
0.83
Cycle
Nested

Main-sequence outliers

Which substantial packages sit unusually far from the main sequence?

These packages combine stability and abstraction in an unusual way for this project. That is a design question to inspect, not an automatic defect.

Nothing in this report scope is separated enough from its peers to count as a statistical outlier. For orientation, the table shows 5 of the strongest eligible examples.

Continue in AtlasArcIdentify risky hotspotsPlace these candidates beside size, dependency reach, and other hotspot evidence before prioritizing work.

How AtlasArc selected these rows

Highest values

Rule: Distance is above its upper outlier cutoff and at least 0.50, with total degree or LOC at or above its positive median.

Population: 65 real leaf architecture units with Distance. Result: No strict outlier result; showing 5 of 9 eligible fallback values.

Cutoff: Distance > 1.00 (65 eligible values)

Diagnostic evidence
Packagedetekt-psi-utils.maindev.detekt.psi.internal
Distance
1.00
Fan-in
1
Fan-out
0
LOC
256
Cycle
—
Packagedetekt-psi-utils.maindev.detekt.psi
Distance
0.90
Fan-in
14
Fan-out
1
LOC
525
Cycle
—
Packagedetekt-utils.maindev.detekt.utils
Distance
0.83
Fan-in
10
Fan-out
0
LOC
205
Cycle
—
Packagedetekt-metrics.maindev.detekt.metrics
Distance
0.75
Fan-in
6
Fan-out
2
LOC
411
Cycle
Nested
Packagedetekt-api.maindev.detekt.api
Distance
0.69
Fan-in
44
Fan-out
1
LOC
858
Cycle
Nested