Skip to content

Contracts outside contracts/index.yaml — classification (2026)

contracts/index.yaml is the preferred machine inventory for maintained artifacts (owner, enforced_by, kind).

Many paths under contracts/ are intentionally not indexed:

ClassExamplesPolicy
Generated / snapshot reportscontracts/reports/** JSONDo not treat as hand-edited SSOT; prune only when no CI consumer reads them
Derived registriescontracts/cli/command-registry.yaml, contracts/mcp/tool-registry.canonical.yaml, contracts/capability/capability-registry.yamlEdit contracts/operations/catalog.v1.yaml then vox ci operations-sync
Nested schema siblingsJSON Schema next to a parent YAML named in the indexOwned by the same id as the parent row where obvious
Fixture / eval payloadsLarge matrices under contracts/eval/**Add an index row when a CI job treats them as authoritative

Add a row when any of these hold:

  1. A vox ci * guard reads the file path literally.
  2. Human docs call the file “SSOT” without pointing at a parent catalog.
  3. The file defines new VOX_* env vars or persistent Tier A shapes.

Some files use *.v1.yaml with x-vox-version > 1. Treat x-vox-version as semantic contract version; filename suffix is legacy. Renames are backlog items — see legacy remediation ledger.