Coding agents don't lack intelligence — they lack bounded architectural context. arcade-agent is the map: components, dependencies, smells — recovered from your code, served over MCP, versioned in your repo.
This run is the tool analyzing its own repository — the same baseline its CI re-commits on every merge.
Tree-sitter parsers extract entities and references. Java, Python, C, TypeScript, Go, Kotlin.
Clustering algorithms rebuild components, dependencies, cycles and coupling.
An MCP server exposes the model as budget-aware tools any coding agent can call mid-task.
claude-code I'll check the blast radius before refactoring. → diff_impact(changed_files=["src/auth/session.py"])
arcade-agent { "affected_components": ["auth", "api-gateway"], "num_downstream": 14, "broken_contracts": [] }
claude-code Two components affected, no broken contracts — proceeding with the refactor.
Measured on a real scoping task: one context_for_task call vs. the file the dependency graph says is actually relevant — 56% fewer tokens (methodology has the tokenizer caveat). Full numbers →
$ arcade-arch-diff --source . - component "billing" depends on: [db] + component "billing" depends on: [db, auth] new cross-component edge → posted as a PR comment
arcade-arch-diff --update-baseline writes .arcade/baseline.json on every merge; the same command diffs against it on every PR. No SaaS, no account — a file and a markdown comment, informational by default, same as arcade-self-analysis.Five clustering algorithms — pkg, wca, acdc, arc, limbo — tunable, deterministic output.
Cycles, hubs, coupling and instability metrics per component.
context_for_task, diff_impact, api_surface, dependency_cone — plus 14 more, all budget-aware.
Every tool respects a token budget — built for agent context windows.
Chain tools without re-serializing full graphs between calls.
One GitHub Action, one committed baseline, a markdown diff on every PR.