The software estate
The question people ask: what talks to what, where does this data live, who decided that and why, and what would break if we changed it?
What feeds the graph: architecture documents, decision records, runbooks, the platform wiki, incident reviews, and the specs that engineers and agents write from the graph itself.
What the graph holds
| Class | For example |
|---|---|
System, Component, Interface |
the payments platform, its payment API, the interface a partner calls |
DataStore, Environment, Repository |
the ledger database; production, staging; the repository that implements a component |
DecisionRecord, Risk, Runbook |
the decision to move the ledger to Postgres, the risk it retired, how the component is operated |
Team, Capability, Requirement |
who owns it, what it supports, what it satisfies |
Document |
where each fact is written |
Relations say that a component depends_on another, reads_from and writes_to a datastore, runs_in an environment, is owned_by a team and decided_by a decision record; a risk threatens a component and is mitigated_by a decision or a runbook; a decision supersedes an earlier one.
A cited answer
oto query --project platform entity "Payments platform"
oto query --project platform explain datastore.ledger
oto query --project platform neighbors "Payment API" depends_on
The answer to where does the ledger live names the datastore, the decision that put it there, the date, and the document. explain says which of those facts a rule derived, and from what.
Specs and decisions, from the graph
The spec skill writes a product spec or an architecture decision from the graph. Every claim in it cites an entity, a mandatory section says what the graph does not hold, and the decisions it makes are listed in a shape the pipeline turns into DecisionRecord facts. The next spec starts from recorded decisions instead of re-deciding them.
On the OTO front page, the Design phase shows what this looks like in Studio: the bounded contexts, the system map, the decisions, the components and the stack of one product.
How it is used
- An engineer joining the team asks the agent what the payment API depends on and gets the components, the datastore and the decision that shaped them.
- An architect proposes a change;
oto ontology checksays which existing edges a vocabulary change would break, andoto curate checksays which facts a graph change would contradict. - A platform team treats its internal tools as products: each one has a graph, and the mesh answers across them.
The commands and the skills
oto init --name "Acme Platform" --ontology software-architecture --project platform
cp ~/docs/platform/* platform/inbox/ && oto ingest --project platform
oto rules check --project platform # the derived facts a rule would add
oto build --project platform
oto query --project platform entity "Payments platform"
Skills: build-knowledge-base, spec, query-knowledge. Concepts: rules and derived facts.