Vendoring

Host Layout

Managed runtime vs host-owned truth, on disk.

After install, the host repo has a clear fence: managed runtime lives under evals/_evalglass/, and host-owned truth lives outside it. Re-vendoring replaces the managed side only; host files are preserved and any host patch stays visible in the manifest.

The layout is the physical form of Host Ownership. Keep the line and the runtime keeps working after the Skill is removed; cross it and you risk an upgrade silently changing your domain truth.

The tree

files

<host-repo>/evals/
  _evalglass/              # MANAGED — replaced on revendor
    core/
    harness/
    adapters/
    vendor-manifest.json
  evalglass.lock           # MANAGED
  evalglass.yaml           # host-owned
  datasets/*.jsonl         # host-owned
  traces/*.jsonl           # host-owned
  evaluators/*.py          # host-owned
  rubrics/*.md             # host-owned
  calibration/*.json       # host-owned
  baselines/*.json         # host-owned
  authority.json           # host-owned
  reports/                 # host-owned
  tests/                   # host-owned

The two sides

Managed — _evalglass/ + lockHost-owned — everything else
Vendored runtime: core, harness, adapters, the manifest, and the lock. Replaced wholesale on re-vendor; patches surface in the manifest. Config, datasets, traces, evaluators, rubrics, calibration, baselines, authority.json, reports, tests. Never overwritten.
Re-vendor touches one column An upgrade rewrites only the managed column. Your gates — which live in host-owned datasets, thresholds, calibration, and authority.json — are untouched, so a framework bump can never quietly change what your run enforces.

Next steps