Configuration resolution

How repository and workspace intent become a workload

The normal researcher contract is a checked-in direct run config:

name: train
engine: rayjob
entrypoint: train.py

compute:
  workers: 2
  gpus_per_worker: 8

storage:
  data_pvc: training-data

TauGrid combines:

  1. Explicit project and target selection.
  2. Repository or monorepo discovery.
  3. The project’s checked-in workspace connection descriptor, or its exact machine-local assignment when no descriptor is present.
  4. Platform-owned workspace defaults.
  5. Checked-in workload intent.
  6. Temporary explicit operator overrides.

Ambiguity is an error. Dry-run output must keep default sources visible.

Checked-in descriptors always take precedence. A local assignment is keyed to the physical Git worktree and selected catalog project, so changing one project cannot silently redirect another repository.

tau run validate --config tau/train.yaml
tau run train --dry-run=client
tau run explain-config

See direct run config vs. managed workflow manifest for how Python SDK-generated manifests relate to this default format.