See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
Reliable: what the source actually declares
Infrastructure as code is the strongest signal there is, because it is a complete declaration by construction: what apply will create is what the files say. A Terraform parse reads resources, modules, count and for_each, and references resolved through outputs, with variables followed through call sites, defaults, and tfvars to literal values where they exist. Nothing there is inferred.
Application code is nearly as good for structure. Imports and module boundaries, HTTP route definitions, database schemas and migrations, queue and topic names, client SDK instantiations, scheduled jobs in configuration. These are declarations too, just spread across more files and more idioms.
The dependency manifest is the boundary of the system as the code sees it: every third-party service with a client library is listed there, whether or not anyone remembers it.
Invisible: what no amount of reading will produce
Runtime behaviour, first. Which of the three paths carries the traffic, whether the fallback has ever fired, what the actual latency between two services is, whether the batch job still runs. Static analysis cannot decide these questions even in principle, and a model reading the same files inherits the limitation while sounding more confident about it.
Deployment truth, second. The code declares what could be deployed; it does not know which version is running where, which feature flag is on, which service was decommissioned last quarter with its module left in the repository.
Everything outside the repository, third. The vendor system somebody integrates by uploading a file. The team that owns the downstream warehouse. The manual approval step in the middle of the pipeline. The reason the boundary is drawn where it is. None of that has a file to read.
The guessing zone, and how it looks
Between the two lies the region where models produce plausible content. Four shapes recur. A node that matches the pattern of the architecture but has no file behind it, often a cache or a load balancer that the diagram feels like it should have. An edge inferred from naming rather than from a call, where user-service and user-db are drawn as connected because the names rhyme. A label taken from an old comment after the thing was renamed. And a whole subsystem missing because it lives in a repository the agent was not shown.
All four are cheap to catch with one question, which is worth asking as a routine step rather than a suspicion.
A fifth cause of silent omission has nothing to do with the model. Whatever reads the repository reads a subset of it. A Datadef corpus is at most 40 files and 250KB, 30KB per file with a marker where a longer file was cut, taken class by class in a fixed order: infrastructure code, then containers and orchestration, then the data layer, then API definitions, then CI, then dependency manifests, then the README. Lockfiles, binaries, and anything under node_modules, vendor, dist, target or .terraform never enter, and a single file over 400KB is skipped outright.
Per-class caps decide the rest, and they move with what you asked for. Under an architecture focus, sixteen .tf files can enter and only three dbt models; under a content focus that inverts to three .tf files and eighteen models. A compact summary of the top three directory levels with their file counts rides along with the corpus, so the model can at least see the shape of what it was not given. Knowing those numbers is the difference between "the agent missed the billing service" and "the billing service is two hundred SQL files under a focus that samples three of them".
For every node and every edge in the diagram, give me: - the file path that justifies it - or the word ASSUMPTION Then list what you could not determine from the repository.
What to do with the line once you can see it
Treat the declared layer as the base and generate it deterministically where you can. Structure that comes from parsed source does not drift and does not need reviewing for invention: it is what the files say.
Then add the human layer explicitly on the canvas rather than in a paragraph nobody reads: a note on the deprecated path, a zone label naming the owning team, an annotation where the manual step sits, a marked boundary for the vendor system. Those are the facts that make a diagram worth more than the repository it came from, and they are exactly the facts no agent can recover.
For the parts that are declared in infrastructure code, repository sync keeps the base layer current on its own, so the human layer is the only thing anyone maintains by hand.
A useful phrasing for reviews
FAQ
What can an AI agent reliably determine from a repository?
What can it not determine, no matter how good the model is?
How do I spot an invented component in a generated diagram?
Is a parser more trustworthy than a model for this?
Does the tool read the whole repository?
Does the agent need to run the code to understand the architecture?