Glossary¶
What each word means, and which synonyms to avoid. The portal, the code and these docs all use the same words, so a term here means the same thing wherever you meet it.
Language¶
What a deployment is¶
Deployment: The one connected database, together with the addresses that serve it. There is exactly one. Avoid: source, connection, environment, instance
Semantic deployment: The model store and the Cube behind it, reached at a single address. Cube has no address of its own. Avoid: Cube, the cube service, the semantic service
Store: The model store: owner of the data model's files and their history, and the only door to Cube. Avoid: repo, model service, registry
The word points at two sizes of thing, and both are correct. A Store is the service — one of
three containers in a Semantic deployment, the one holding the model. modelstore is what
this side calls everything reached through it: the client, the served model, and the generating and
editing of it. So the deployment is addressed as semantic (the wire key, the compose file, the
GET /api/onboarding/deployment/semantic/compose route) while the package is modelstore.
Neither name is wrong; expecting one word to mean one size of thing is.
Sandbox: Where the agent runs Python. Optional to the code, required by onboarding. Avoid: runner, executor, scratch
Contract: The integer a deployment and the portal must agree on to speak to each other. Avoid: version — it says whether two builds are compatible, not which build either is
Conditions of a deployment¶
Four separate questions. Conflating them is the mistake this vocabulary exists to prevent.
Deployed: An address has been stored. Says nothing about whether anything answers there. Avoid: running, started, stopped, connected — the portal starts nothing, so it can never observe a stop
Onboarded: Setup finished: both addresses stored and a model in the store. A different question from Deployed, because neither the sandbox address nor the model is part of that one. Setup's last step is what builds the model, so two answering addresses and an empty store is the state setup is entered in. Avoid: configured, ready, complete
Reachable: The address answers, and what answers is the thing we think it is — the right kind of service, a matching Contract, and a token it accepts. Asked about an address someone just pasted. Avoid: healthy, up, alive — each is vague enough to absorb the other three conditions, which is how they came to be conflated
Serving: What Cube is compiling and exposing right now. The truth about the model, as against what the portal once did to it. Avoid: built, compiled, live, deployed
The model¶
Ref: A named version of the data model, compiled and served independently of every other. Branch is the word the UI uses for one, and the two are the same thing — the glossary says both rather than contradicting the screen. Avoid: branch in code. A local git branch is a different thing, and handing one to something expecting a Ref is a live bug rather than a synonym
Candidate: The throwaway Ref a rebuilt model lands on, so it can be compiled and refused without touching what is Serving.
Preview: The throwaway Ref an unsaved change set is compiled on, so Save can ask Cube a question without committing anything. Created from the branch being edited and deleted immediately. Avoid: Candidate — that one is a rebuild landing, this one is a question being asked
Draft: A Ref's model files on this machine while they are being edited, beside a copy of what the store had when they were last synced — its Origin. A draft holds no history: the store owns every commit, so a draft is a working copy and never a second source of truth. Avoid: workspace, working tree, checkout, local branch, clone — there is no git on this side
Origin: What the store held for a Draft's Ref at the revision it was last synced from. What makes an edit reversible and staleness a comparison rather than a guess. Avoid: base, head, remote — the first is the browser's old word for it, the last two imply git
Publish: Sending a Draft's changes to its Ref as one commit, and landing it. This is the deploy. Avoid: push — nothing is pushed anywhere, the store is asked over HTTP; save, sync, commit — the first two happen on this machine only and the third is what the store does when asked
Unsaved: Text typed into the editor and not yet written to the Draft. It exists in one tab and nowhere else; a reload discards it, and nothing else does. Avoid: staged — the browser held a checked-but-uncommitted set under that name until the Draft replaced it, and reusing the word would name two different states
Proposal: A model file the editor agent wants written, waiting for a person to accept it. It is on no Ref — the agent commits nothing. Avoid: edit, change — both imply it has happened
Flows¶
A sequential pipeline someone repeats, defined by a folder rather than by code. The words here are deliberately not the words the model side already uses: almost every obvious one is taken, and reusing it would name two different things.
Flow:
The folder defining one pipeline: its numbered Phases, the prose instructing each, and the
reference material they share. The folder is the definition — nothing else describes a Flow,
and editing the files is how a Flow is changed.
Avoid: pipeline — that is the model build (/api/onboarding/pipeline); workspace — that is a
Draft's tree; workflow, which is only a longer way of saying the same thing
flows/ names two sizes of thing, and both are correct — the same way Store does. flows/
in the launch directory is the content: the Flow folders someone authors, edits and commits.
praxis.flows is the engine that reads them. Neither name is wrong; expecting one word
to mean one size of thing is.
Phase:
One step of a Flow, and one numbered folder in it. Either an agent turn with a scoped prompt
and toolset, or a single Python file run in the sandbox with no model call at all.
Avoid: stage — modelgen has four and workspace.stage is a function; step — those are
modelgen's step rows; node, task
Run:
One execution of a Flow, and one folder under it holding everything that execution produced.
A Run outlives the request that started it: it pauses at a Gate and is resumed later.
Avoid: job — core.jobs is a different mechanism holding a machine-wide lock, and a Run must
never take it; execution, invocation
Gate: The pause after a Phase where a person reads what landed and edits it before the next Phase reads it. Required unless that Phase says otherwise. This is what a Flow is for. Avoid: approval — that is the separate yes/no a script asks before it runs, and the two pause a Run in structurally different places; checkpoint, breakpoint
Brief: The free text a Run is started from, written into the Run's folder as its first Working input. What varies between two Runs of one Flow; everything else about them is identical. Avoid: prompt, question — a Phase's prose is neither; parameters, which implies a form
Reference: A Phase input belonging to the Flow and stable across every Run — voice, conventions, domain rules. Resolves against the Flow's folder, and reaches the model inlined verbatim, because it is meant to be read as a constraint. Avoid: config, static, context
Working: A Phase input this Run produced — an earlier Phase's output, or the Brief. Resolves against the Run's folder, and reaches the model as text or as a shape, because it is meant to be read as material. Avoid: artifact on its own — both kinds are files; intermediate, temp
Bundle: A named set of tools a Phase may ask for. The menu is closed, so a tool can be renamed without breaking a file somebody wrote. Avoid: toolset, scope, permissions
Stale: A Phase whose output on disk came from an input that has since changed — an earlier Phase was re-run, or a person edited what it read. The output is still there and still readable; what is gone is the claim that it follows from what is above it. Avoid: dirty, invalid, outdated — the first two say it is wrong, and it is not