The product graph

Six kinds of things and eight kinds of links: the whole product in one place.

An Arkaik project is one graph. Every node belongs to one of six species. Flows are journeys, like onboarding or checkout. Views are the screens inside them. Data models are the things your product stores. API endpoints are how the screens talk to the backend. Acceptances are testable promises ("a guest can pay without an account"), and decisions are the choices you made along the way, with their own status.

The links matter as much as the nodes, and each one says exactly one thing. A flow composes its screens and sub-flows, in order. A view or endpoint calls an API, and the direction tells you who starts the conversation. A view displays a data model; an endpoint queries one.

The last four keep the map honest. An acceptance covers the screens or flows it promises something about, which is where their per-platform status comes from. A decision supersedes an older decision, generates an acceptance, and impacts the screens, flows, models or endpoints it touched.

Because it is all one graph, nothing gets copied. The journey map, the system map, the delivery board and the overview are four readings of the same data, and an agent asking questions over MCP gets the same answers you see.

The graph is saved as a plain bundle you can keep in your repo, and every save is validated against the grammar, so a link that makes no sense (a decision "impacting" an acceptance, say) simply cannot be written.

Journal