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/ + lock | Host-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.