Skip to main content

Metrics

ovecc records these metrics at every ovecc index, per snapshot. Any of them can be trended with ovecc history <metric> and compared with ovecc drift. The same definitions are served machine-readably by ovecc capabilities --format json and inside every JSON envelope's meta block.

Structure

MetricDefinitionInterpretation
filesNumber of indexed source filesstructural size
modulesNumber of inferred or declared modulesstructural size
dependenciesNumber of resolved import dependenciesstructural size
external_dependenciesDependencies resolving outside the repositoryinformational
symbolsExtracted top-level symbols (functions, classes, …)structural size
callsResolved call-graph edgesinformational
apisExposed routes, RPC methods, and handlersinformational
tablesDatabase schema objects referenced by codeinformational
functionsFunctions/methods analyzed for complexityinformational
parse_failuresFiles that failed to parse this runlower is better

Coupling & architecture

MetricDefinitionInterpretation
coupling_densityRealized module edges over all possible directed edges. Range [0, 1]lower is looser coupling
circular_dependenciesNumber of strongly-connected (cyclic) module componentslower is better
boundary_violationsFindings crossing a declared architecture boundarylower is better

Complexity

MetricDefinitionInterpretation
max_cyclomaticHighest per-function McCabe cyclomatic complexitylower is better
max_cognitiveHighest per-function SonarSource cognitive complexitylower is better
total_cognitiveSum of cognitive complexity across functionslower is better
high_complexity_functionsFunctions over the complexity thresholdslower is better

Findings & hygiene

MetricDefinitionInterpretation
security_findingsCode security findings: secrets, insecure patterns, weak crypto, tainted flows. Dependency advisories are tracked separatelylower is better
dependency_advisoriesKnown vulnerabilities (OSV) in dependencies; depends on when advisories were last fetchedlower is better
unused_exportsExports imported by no reachable modulelower is better
unused_filesFiles reachable from no entry pointlower is better
unused_dependenciesManifest dependencies never imported (opt-in)lower is better
unlisted_dependenciesPhantom dependencies: imported but undeclaredlower is better

Evolution (requires Git history)

MetricDefinitionInterpretation
commits_ingestedGit commits ingested this run; 0 means no Git history0 disables churn/ownership signals
max_file_churnHighest per-file commit countcontext
ownership_fragmented_filesFiles with fragmented ownershiplower coordination cost

Per-component metrics

ovecc metrics additionally reports Martin metrics per component (not snapshot-trended, computed from the graph): fan-in, fan-out, coupling, instability I = fan-out / (fan-in + fan-out), abstractness A, and distance from the main sequence D = |A + I − 1|.