S202 Quality Report

GO analysis, generated 2026-06-19T10:11:23.928490703-03:00

Risk

Overall Quality Score

The project needs focused structural attention. The most important findings should be planned explicitly instead of being handled opportunistically.

59of 100Needs Attention

Assessment Drivers

  • Project size is medium-sized with an average dependency density of 1.6 internal dependency edge(s) per class.
  • Package distribution is concentrated: the largest package contains 70 class(es), about 9% of the codebase.
  • Structural anomaly pressure is visible through 56 layered violation(s), 1 package cycle(s), and 10 class cycle(s).

Recommended Focus

  • Review the largest packages first; they are likely to dominate change cost and ownership.
  • Prioritize the highest-scoring package hierarchy violations and remove upward dependencies.
  • Use the generated cycle screenshots to identify stable cut points for package and class tangles.

Executive Summary

Classes763
Packages57
Dependencies1,204
Fat / Tangled0.16 / 0.03
Layered Violations56
Package / Class Cycles1 / 10

This report summarizes structural quality signals from the S202 dependency model. It focuses on size distribution, layering violations, package cycles, class cycles, and component API findings when the component architecture is likely enough to report.

Codebase Profile

MetricValue
Source kindGO
LanguagesUnknown
Build systemsUnknown
S202 versiondev
Classes763
Packages57
Modules0
Interfaces82
Exported packages0
S202 component packages0
S202 API packages0
Dependency kinds
Dependency kinds from the raw reader model.

Size Distribution

Top packages by class count
Largest packages by direct class count.
Top packages by dependency weight
Packages with the highest incoming and outgoing package dependency weight.
Architecture levels
Classes and packages by calculated architecture level.

Classes per package

BucketPackages
02
1-223
3-514
6-106
11-259
>2512

Quality Overview

Fat tangled quality plot
Lower-left is healthier; upper-right means dense and cyclic coupling.
MetricValue
BandRisk
Fat0.16
Tangled0.03
Classes763
Internal dependencies1,204
Dependencies inside class cycles39
Layered violations56
Package cycles1
Class cycles10
Component violations0

Architecture Findings

FindingSource scopeTarget scopeKindViolationsBack edgesScore
package-violation-9etcdserver.api.v3rpcetcdserverUPWARD110146
package-violation-17storage.mvccleaseUPWARD90123
package-violation-10mock.mockstoreetcdserver.api.v2storeUPWARD80104
package-violation-8etcdserver.api.v3clientproxy.grpcproxy.adapterUPWARD6081
package-violation-5etcdserver.api.rafthttpetcdserver.api.rafthttpUPWARD3363
package-violation-3etcdserveretcdserverUPWARD2239
package-violation-12storageetcdserver.api.snapUPWARD2029
package-violation-1embedembedUPWARD1121
package-violation-2etcdmainetcdmainUPWARD1121
package-violation-4etcdserver.api.membershipetcdserver.api.membershipUPWARD1121

Cycle Findings

Package Cycles

FindingMembersInternal edgesMethod/weightScore
package-cycle-1224676

Class Cycles

FindingMembersInternal edgesMethod/weightScore
class-cycle-125811101
class-cycle-2571297
class-cycle-1144464
class-cycle-634757
class-cycle-1022535
class-cycle-822333
class-cycle-422333
class-cycle-122232
class-cycle-722232
class-cycle-322232

Component Findings

No sufficiently likely component architecture was detected. Component violations were not included in the quality assessment.

Confidence Signals

EvidenceWarnings
No entries

Appendix

Layout Invariants

MetricValue
Packages57
Classes763
Dependencies1204
Max level21
Invariant findings0

Layered Violation Samples

SourceTargetBack edge
embed.serveCtxembed.Etcdtrue
etcdmain.mainetcdmain.etcdtrue
etcdserver.adaptersetcdserver.EtcdServertrue
etcdserver.api.membership.membership_testetcdserver.api.membership.cluster_testtrue
etcdserver.api.rafthttp.msgAppV2Encoderetcdserver.api.rafthttp.streamtrue
etcdserver.api.rafthttp.peeretcdserver.api.rafthttp.snapshot_sendertrue
etcdserver.api.rafthttp.streamWriteretcdserver.api.rafthttp.msgappv2_codectrue
etcdserver.api.v2store.nodeetcdserver.api.v2store.storetrue
etcdserver.api.v3client.v3clientetcdserver.EtcdServerfalse
etcdserver.api.v3client.v3clientproxy.grpcproxy.adapter.auth_client_adapterfalse
etcdserver.api.v3client.v3clientproxy.grpcproxy.adapter.cluster_client_adapterfalse
etcdserver.api.v3client.v3clientproxy.grpcproxy.adapter.kv_client_adapterfalse
etcdserver.api.v3client.v3clientproxy.grpcproxy.adapter.lease_client_adapterfalse
etcdserver.api.v3client.v3clientproxy.grpcproxy.adapter.maintenance_client_adapterfalse
etcdserver.api.v3client.v3clientproxy.grpcproxy.adapter.watch_client_adapterfalse
etcdserver.api.v3rpc.AuthServeretcdserver.EtcdServerfalse
etcdserver.api.v3rpc.ClusterServeretcdserver.EtcdServerfalse
etcdserver.api.v3rpc.grpcetcdserver.EtcdServerfalse
etcdserver.api.v3rpc.headeretcdserver.EtcdServerfalse
etcdserver.api.v3rpc.healthetcdserver.EtcdServerfalse
etcdserver.api.v3rpc.interceptoretcdserver.EtcdServerfalse
etcdserver.api.v3rpc.keyetcdserver.EtcdServerfalse
etcdserver.api.v3rpc.leaseetcdserver.EtcdServerfalse
etcdserver.api.v3rpc.maintenanceetcdserver.EtcdServerfalse
etcdserver.api.v3rpc.quotaetcdserver.EtcdServerfalse
etcdserver.api.v3rpc.watchetcdserver.EtcdServerfalse
etcdserver.corruptetcdserver.EtcdServertrue
mock.mockstore.StoreRecorderetcdserver.api.v2store.Storefalse
mock.mockstore.errStoreRecorderetcdserver.api.v2store.Eventfalse
mock.mockstore.errStoreRecorderetcdserver.api.v2store.Watcherfalse
mock.mockstore.storeRecorderetcdserver.api.v2store.Eventfalse
mock.mockstore.storeRecorderetcdserver.api.v2store.Storefalse
mock.mockstore.storeRecorderetcdserver.api.v2store.TTLOptionSetfalse
mock.mockstore.storeRecorderetcdserver.api.v2store.Watcherfalse
mock.mockstore.store_recorderetcdserver.api.v2store.Storefalse
storage.BackendHooksetcdserver.cindex.ConsistentIndexerfalse
storage.Storageetcdserver.api.snap.Snapshotterfalse
storage.backendconfig.ServerConfigfalse
storage.backendetcdserver.api.snap.Snapshotterfalse
storage.backendstorage.BackendHooksfalse
storage.backendstorage.schema.cindexfalse
storage.mvcc.HashStoragestorage.mvcc.storetrue
storage.mvcc.StoreConfiglease.Lessorfalse
storage.mvcc.kv_testlease.LeaseIDfalse
storage.mvcc.kvstorelease.LeaseIDfalse
storage.mvcc.kvstore_bench_testetcdserver.cindex.ConsistentIndexerfalse
storage.mvcc.kvstore_testlease.LeaseIDfalse
storage.mvcc.metricsTxnWritelease.LeaseIDfalse
storage.mvcc.storeTxnWritelease.LeaseIDfalse
storage.mvcc.txnReadWritelease.LeaseIDfalse