01 / the axes
Four questions, four declarations
Each axis is declared once and read everywhere. None of them names another: a profile does not know which model will answer it, a workflow does not know which interface invoked it, and an interface does not know which profile the caller is running under.
Profile
4 profiles
answers: with how much context, effort and ceremony
One file per working mode under the layer.
It declares a capability class and an effort, never a vendor or a model name.
See it →
Workflow
4 workflows
answers: in what order, and what must exist before it may end
A sequence a worker follows, seeded into every repository.
It names capabilities and phases, never the backend that answers them.
See it →
Surface
3 interfaces
answers: where the same capability can be reached
Not a file anyone writes: the exposure a capability declares once.
An interface is a projection of the declaration; a projection that disagrees with it fails the build.
See it →
Model
0 named in the layer
answers: what actually executes the work
Chosen per run, outside the repository.
Majordomus never invokes one. Continuity lives in the records, so the model can change mid-task without the work losing its state.
See it →