Furio likes things tidy.
Your architecture map, kept in your repos and checked like code. Every repo describes what it owns; Furio checks it on every pull request and draws the map of all of them.
- Workspace
- furio-demo
- Parts
- 9
- Checked by
- furio validate
- calls
- publishes · consumes
- reads · writes
How it works
-
1
Each repo describes what it owns
A small YAML file next to the code: the services, functions, queues and databases this repo owns, and what they call, publish, consume, read or write. Parts owned by other repos are referenced by id, never copied.
# .architecture/architecture.yaml version: 1 project: shop owner: team-shop components: - id: shop-api type: service - id: orders-events type: queue provider: aws.sqs relations: - from: shop-api to: orders-events type: publishes - from: shop-api to: platform/users-api type: calls -
2
Every pull request is checked
The GitHub Action validates the manifest like code: a wrong type, an unknown field or a reference to a service that does not exist shows up on the diff, with the line and the fix.
error .architecture/architecture.yaml:7:11 components[0] (billing-api).type is "servce", which is not a valid component type. → Did you mean "service"? Furio is not happy: 1 error, 0 warnings. -
3
The catalog draws the map
One repo in your organization collects every manifest each hour and publishes the map as a static site: every project, every dependency between teams, the parts other repos reference but nobody declares. No server, no database.
Open the live demo to see the map of the three repos above.
Ask it what breaks
Relations are data, so the map can answer questions a drawing cannot. Select a part and light its blast radius: everything that stops working if it goes down, hop by hop. Or light everything it needs to work. Every view is a link you can paste in an incident channel.
#/?sel=platform/users-api&mode=impact
- Workspace and project views with the dependencies between teams.
- A page per component: owner, repo, links, every relation, its diagrams.
- Mermaid diagrams from the repos, for the flows a graph cannot show.
- A health page: repos without a manifest, missing owners, broken references.
- Search, filters, PNG and SVG export.
Your coding agent keeps it updated
A map is only as good as its last update. Furio ships a skill that tells Claude Code, Codex and any agent that reads AGENTS.md to update the manifest in the same change as the code, and to run the check before it finishes.
created .architecture/architecture.yaml
created .claude/skills/furio-architecture/SKILL.md
created .agents/skills/furio-architecture/SKILL.md
created AGENTS.md
Try it in your repo
-
In a repo, create the manifest and teach your agent about it:
npx @getfurio/cli init -
Describe what the repo owns, then check it:
npx @getfurio/cli validate - Add the check to pull requests and publish the map of your organization: Set up the GitHub Action
Open source under the MIT license. Node 22 or newer. Works with any GitHub organization.