arcade-agent — version v0.3.0 — recovered with pkg
graph TD
Algorithms["Algorithms\n(85 entities)"]
Budget["Budget\n(5 entities)"]
Cache["Cache\n(5 entities)"]
Ci["Ci\n(48 entities)"]
Display["Display\n(2 entities)"]
Exporters["Exporters\n(23 entities)"]
Incremental["Incremental\n(5 entities)"]
Parsers["Parsers\n(140 entities)"]
Serialization["Serialization\n(11 entities)"]
Source["Source\n(27 entities)"]
Tools["Tools\n(56 entities)"]
Algorithms --> Tools
Cache --> Serialization
Ci --> Algorithms
Ci --> Display
Ci --> Exporters
Ci --> Parsers
Ci --> Serialization
Ci --> Tools
Parsers --> Source
Serialization --> Algorithms
Serialization --> Parsers
Source --> Cache
Source --> Parsers
Tools --> Algorithms
Tools --> Budget
Tools --> Exporters
Tools --> Serialization
Tools --> Source
| Component | Responsibility | # | Entities |
|---|---|---|---|
| Algorithms | Entities in algorithms | 85 | 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, ... (+77 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 | 48 | arcade_agent.ci.arch_diff._delta, arcade_agent.ci.arch_diff._direction_icon, arcade_agent.ci.arch_diff._metric_row, 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, ... (+40 more) |
| Display | Entities in display | 2 | arcade_agent.display.display_value, arcade_agent.tools.changelog_architecture._smell_dict |
| Exporters | Entities in exporters | 23 | arcade_agent.ci.compare_baseline._write_step_summary, arcade_agent.ci.compare_baseline.build_comment, arcade_agent.ci.compare_baseline.main, arcade_agent.exporters.changelog_md._fmt_delta, arcade_agent.exporters.changelog_md.render_changelog_markdown, arcade_agent.exporters.dot._escape_dot, arcade_agent.exporters.dot.export_dot, arcade_agent.exporters.html.AlgorithmResult, ... (+15 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 | 140 | arcade_agent.incremental._facts_from_json, arcade_agent.models.graph, arcade_agent.parsers.base.LanguageParser, arcade_agent.parsers.base.LanguageParser.__init__, 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, ... (+132 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) |
| Source | Entities in source | 27 | arcade_agent.source.filtering._is_jvm_test_source_set, arcade_agent.source.filtering._matches_excluded_directory, arcade_agent.source.filtering._source_set_tokens, arcade_agent.source.filtering.exclusion_cache_namespace, arcade_agent.source.filtering.is_excluded_source_path, arcade_agent.source.filtering.normalize_exclude_dirs, arcade_agent.source.ingest.IngestedRepo, arcade_agent.source.ingest.IngestedRepo.cleanup, ... (+19 more) |
| Tools | Entities in tools | 56 | 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._resolve_parse_source, arcade_agent.tools.adapters.mcp._store, arcade_agent.tools.adapters.mcp.get_server, arcade_agent.tools.adapters.mcp.main, arcade_agent.tools.analyze.AnalysisResult, ... (+48 more) |
Circular dependency among 6 components: Algorithms <-> Cache <-> Parsers <-> Serialization <-> Source <-> 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, Parsers, Serialization, Source, Tools
Ci contains 48 entities but only 2 internal dependencies (0.04 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
Exporters contains 23 entities but only 7 internal dependencies (0.30 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 Exporters into smaller, focused components with single responsibilities.
Affects: Exporters
Source contains 27 entities but only 7 internal dependencies (0.26 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 Source into smaller, focused components with single responsibilities.
Affects: Source
| Package | Entities |
|---|---|
arcade_agent.parsers |
135 |
arcade_agent.algorithms |
76 |
arcade_agent.tools |
55 |
arcade_agent.ci |
53 |
arcade_agent.source |
30 |
arcade_agent |
26 |
arcade_agent.exporters |
20 |
arcade_agent.tools.adapters |
8 |
arcade_agent.models |
4 |