Architecture that matches the build
C4 diagrams at context, container and component level. A container is a real deployable — a Spring Boot app, a WAR, an Angular or Nx application — proved by its build file or main class. Aggregator and BOM poms are grouping, not boxes. Test code is left out and counted.
The data model as the database has it
Tables, columns and foreign keys from Liquibase, Flyway and SQL DDL, overlaid with JPA mappings — default naming strategies, inheritance, embedded ids, @MappedSuperclass. Where the classes and the migrations disagree, that is a finding.
Who reads and writes each table
Spring Data repositories, JPQL and native @Query, and JDBC SQL become read/write edges, so “what touches orders?” has a cited answer.
The whole HTTP surface
Spring MVC, JAX-RS, custom meta-annotations, paths built from constants, API-first controllers joined to their OpenAPI spec, Koa and Express routes — and Angular calls linked to the endpoints they hit.
Risk from history, not size
Hotspots rank recent change in source files, scaled by complexity — never lockfiles or generated code. Co-change coupling finds files that move together with no dependency between them. Knowledge silos flag files one person owns that the rest of the code depends on.
Findings with evidence
Package cycles with the shortest path and the lines that close it, schema drift, hidden coupling, bus factor. Each finding cites the edges, files or commits it rests on; one that cannot is not shown.
Coverage on every view
“Built from 412 of 1,030 Java files; the Java extractor did not run: no JDK 17+.” Every diagram, ranking and answer states its coverage. Below 50%, a view is withheld with the reason instead of drawn.
An MCP server for AI agents
Point Claude Code or any MCP client at the fact store: what_breaks_if, who_knows, where_is_table_written, find_callers, check_cycle and more — each answer cited and carrying its coverage.
Fits in CI
--format json on every command, --fail-on severity gates, and stratigraph diff to fail a build only on findings that are new — the gate a repository with existing debt can switch on today.