Architecture Report

arcade-agent — version v0.2.0 — recovered with pkg

331
Entities
179
Dependencies
9
Components
3
Smells

Quality Metrics

Core ARCADE Metrics

0.687
RCI
0.427
TurboMQ
0.427
BasicMQ
0.017
IntraConnectivity
0.006
InterConnectivity
0.077
TwoWayPairRatio

Balanced / Principle-aligned Scores

0.962
DependencyHealth
0.492
ComponentBalance
0.250
HubBalance
0.917
BoundaryClarity
0.603
DependencyDistribution
0.511
SmellDiscipline
0.737
PrincipleAlignmentScore
0.594
BalancedArchitectureScore

Architecture Diagram

graph TD
    Algorithms["Algorithms\n(76 entities)"]
    Budget["Budget\n(5 entities)"]
    Cache["Cache\n(5 entities)"]
    Ci["Ci\n(46 entities)"]
    Exporters["Exporters\n(17 entities)"]
    Incremental["Incremental\n(5 entities)"]
    Parsers["Parsers\n(103 entities)"]
    Serialization["Serialization\n(11 entities)"]
    Tools["Tools\n(63 entities)"]
    Algorithms --> Tools
    Cache --> Serialization
    Ci --> Algorithms
    Ci --> Exporters
    Ci --> Serialization
    Ci --> Tools
    Serialization --> Algorithms
    Serialization --> Parsers
    Tools --> Algorithms
    Tools --> Budget
    Tools --> Cache
    Tools --> Exporters
    Tools --> Parsers
    Tools --> Serialization
        
Package-based grouping (depth=1 after common prefix 'arcade_agent') with dependency-affinity facade refinement (18 entities reassigned).

Components

Component Responsibility # Entities
Algorithms Entities in algorithms 76 arcade_agent.algorithms.acdc.acdc, arcade_agent.algorithms.arc._arc_cluster_name, arcade_agent.algorithms.arc._avg_structural_sim, arcade_agent.algorithms.arc._build_concern_vectors, arcade_agent.algorithms.arc._cluster_responsibility, arcade_agent.algorithms.arc._js_divergence, arcade_agent.algorithms.arc._js_similarity, arcade_agent.algorithms.arc._kl_divergence, ... (+68 more)
Budget Entities in budget 5 arcade_agent.budget._deep_copy, arcade_agent.budget.enforce_budget, arcade_agent.budget.estimate_tokens, arcade_agent.budget.truncate_result, arcade_agent.tools.adapters.mcp._apply_budget
Cache Entities in cache 5 arcade_agent.cache._cache_dir, arcade_agent.cache.cache_key, arcade_agent.cache.get_cached_graph, arcade_agent.cache.invalidate_cache, arcade_agent.cache.put_cached_graph
Ci Entities in ci 46 arcade_agent.ci.arch_diff._delta, arcade_agent.ci.arch_diff._display_value, arcade_agent.ci.arch_diff.build_report, arcade_agent.ci.arch_diff.main, arcade_agent.ci.compare_baseline._all_metric_values, arcade_agent.ci.compare_baseline._build_component_rows, arcade_agent.ci.compare_baseline._build_dependency_rows, arcade_agent.ci.compare_baseline._build_metric_rows, ... (+38 more)
Exporters Entities in exporters 17 arcade_agent.ci.compare_baseline._write_step_summary, arcade_agent.ci.compare_baseline.build_comment, arcade_agent.ci.compare_baseline.main, arcade_agent.exporters.dot._escape_dot, arcade_agent.exporters.dot.export_dot, arcade_agent.exporters.html.AlgorithmResult, arcade_agent.exporters.html.build_snapshot_mermaid, arcade_agent.exporters.html.export_comparison_html, ... (+9 more)
Incremental Entities in incremental 5 arcade_agent.incremental.ExtractCache, arcade_agent.incremental.ExtractCache.__init__, arcade_agent.incremental.ExtractCache.get_or_extract, arcade_agent.incremental._facts_to_json, arcade_agent.incremental.file_key
Parsers Entities in parsers 103 arcade_agent.ci.run_self_analysis._filter_non_architectural_entities, arcade_agent.incremental._facts_from_json, arcade_agent.models.graph, arcade_agent.parsers.base.LanguageParser, arcade_agent.parsers.base.LanguageParser.file_extensions, arcade_agent.parsers.base.LanguageParser.language, arcade_agent.parsers.base.LanguageParser.parse, arcade_agent.parsers.base.detect_language, ... (+95 more)
Serialization Entities in serialization 11 arcade_agent.serialization._serialize_dataclass_dict, arcade_agent.serialization.architecture_to_dict, arcade_agent.serialization.dict_to_architecture, arcade_agent.serialization.dict_to_graph, arcade_agent.serialization.graph_to_dict, arcade_agent.serialization.load_architecture, arcade_agent.serialization.load_graph, arcade_agent.serialization.save_architecture, ... (+3 more)
Tools Entities in tools 63 arcade_agent.ci.compare_baseline._run_a2a_comparison, arcade_agent.tools.adapters.mcp._build_server, arcade_agent.tools.adapters.mcp._make_summary, arcade_agent.tools.adapters.mcp._store, arcade_agent.tools.adapters.mcp.get_server, arcade_agent.tools.adapters.mcp.main, arcade_agent.tools.analyze.AnalysisResult, arcade_agent.tools.analyze.PartialAnalysisError, ... (+55 more)

Architectural Smells (3)

medium SmellType.DEPENDENCY_CYCLE

Circular dependency among 4 components: Algorithms <-> Cache <-> Serialization <-> Tools

Why: Dependency cycles make components tightly coupled — you cannot change, test, or deploy any component in the cycle independently. This hinders maintainability, increases build times, and makes the system harder to understand.

Fix: Break the cycle by introducing an interface/abstraction that one component depends on, inverting the dependency direction. Consider the Dependency Inversion Principle (DIP).

Affects: Algorithms, Cache, Serialization, Tools

high SmellType.CONCERN_OVERLOAD

Ci contains 46 entities but only 0 internal dependencies (0.00 per entity), suggesting multiple responsibilities.

Why: Large components are harder to understand, test, and maintain. When their internals are also sparsely connected, that usually means the component is acting as a bucket for unrelated concerns rather than a cohesive module.

Fix: Consider splitting Ci into smaller, focused components with single responsibilities.

Affects: Ci

high SmellType.CONCERN_OVERLOAD

Tools contains 63 entities but only 21 internal dependencies (0.33 per entity), suggesting multiple responsibilities.

Why: Large components are harder to understand, test, and maintain. When their internals are also sparsely connected, that usually means the component is acting as a bucket for unrelated concerns rather than a cohesive module.

Fix: Consider splitting Tools into smaller, focused components with single responsibilities.

Affects: Tools

Dependency Summary

PackageEntities
arcade_agent.parsers 100
arcade_agent.algorithms 67
arcade_agent.tools 62
arcade_agent.ci 52
arcade_agent 25
arcade_agent.exporters 14
arcade_agent.tools.adapters 7
arcade_agent.models 4