Usually an architect or a platform engineer, before a contract changes
Every app's contracts read from its own code and folded into one view: the consumer in the other repository named, traced hop by hop, and told when it changes.
One repository is easy to read. The question that hurts is across them: which service calls this endpoint, who subscribes to this event, which app reads this table. The answer lives in other teams' code, and in the memory of whoever last broke it.
Drawing the arrows by hand does not help. An arrow says one system depends on another; it does not say on which endpoint, and it is wrong a month later.
The same steps the product’s playbook walks. Each one shows the screen at that moment.
Each app's repository is analysed on your machine and drawn as its own app board, with a node for it on the landscape above.

Each app extracts the endpoints it serves, the services it calls, the events it publishes and subscribes to, and the tables it reads and writes. The contracts are read from the code, not typed in.

The landscape's Aspects screen folds every app's contracts into one view: who calls whom, who publishes and who subscribes to each event, and where a subscriber's copy of an event disagrees with the publisher's.

Open Dependencies on any element: what depends on it, what it depends on, and the route between two, hop by hop across layers and apps. A route worth keeping is saved as an insight.

When another app changes a contract this one consumes, that app's diary entry names this one, and this app's hub lists the change under From other apps.

End proofDone when every app's contracts are adopted, and a change to one of them names the apps that depend on it.
Arrows between boxes, drawn from memory, that say two systems are connected and nothing about which endpoint, which event or which table.
Every caller inside this repository, and a dead end at its edge, where the other team's code begins.
Every app's contracts read from its own code and folded into one view, so the consumer in the other repository is named, traced hop by hop, and told when the contract changes.
Start with one system
Open one repository and run the code plugin. No migration, no rollout, no diagramming.
No credit card · Analysis runs locally in your own session · Self-hosted available
See the four commands to your first board →
Or for writing on architecture that stays connected across systems.