Footprint & baseline
Updated 2026-08-29
Two settings are the heart of Holodeck. They answer two different questions: which services get deployed into your slot, and where the fill-in services come from.
| Setting | Question it answers | Options |
|---|---|---|
| Footprint | Which services get deployed? | Default: the notegen bundle — 10+ services for end-to-end note generation. Or: same-repo — just the services from your PR's repo. |
| Baseline | Where do fill-in services come from? | main (default branch), stage, prod, or none. |
Mental model: your PR (or chosen service) deploys at its own commit.
Footprint decides which other services join it to make a complete
environment, and baseline decides which commit those fill-in services run at.
So "my PR + the rest of the note-gen stack from main" is the default
footprint with baseline main.
Footprint
- Default (
notegen): if you don't pick one, you get the note-gen bundle — the 10+ services that make up the end-to-end note-generation stack. This is what most people want. same-repo: deploy only the services that live in your PR's repo — handy when your change is self-contained.
The API has a few niche modes (none, label, full-stack) that we plan to
retire. Stick to the notegen default or same-repo unless you have a
specific reason.
Baseline
main(default): every service in the slot is deployed frommain— except the services your PR touches, which run from your PR's commit. Your change, running against the latest of everything else.stage/prod: each fill-in service is pinned to the exact commit currently running in that environment — so your PR runs against a snapshot of what's really in staging or prod, not the latestmain.
Deployment labels
Labels are curated footprint tags on registry services. Reserve with
footprint label to deploy every holodeck-enabled service carrying that tag.
List them with GET /api/v1/registry/labels.
| Label | What it means |
|---|---|
notegen |
The default bundle for end-to-end clinical note generation. |
temporal |
A cohort that must deploy together (client-api, audio-api, encounter-processor, …). Members share Temporal namespaces / Nexus endpoints; a member left outside the slot resolves to shared dev and drives the wrong environment's workers. |
nursing, others |
Additional curated bundles for specific workflows. full-stack means "all holodeck-enabled services". |
Cohort gotcha: because of the
temporallabel, a single-service slot is not available for every service. Naming one temporal member alone (with footprint/baselinenone) returns400listing the missing members. Use a footprint other thannone, and runplan-previewfirst if unsure.
Getting local work into a slot
You don't run Holodeck locally. Do your local development however you normally do, then push your branch and let Holodeck deploy it:
- Push your branch and open a PR.
- Either add the Holodeck label to your PR (auto-deploys into a slot), or ask your agent to "deploy my branch into a Holodeck environment."
The label is the zero-effort path — nice for reviewers who just want to click into a running version of your change.