ContractSpec docs

OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

EvidenceRecord — persisted signal evidence envelope

Type-only persisted envelope for observed signals; tenantId is the raw RLS key.

field.key.label
EvidenceRecord — persisted signal evidence envelope
field.version.label
field.type.label
field.title.label
EvidenceRecord — persisted signal evidence envelope
field.description.label

Type-only persisted envelope for observed signals; tenantId is the raw RLS key.

field.tags.label
observability,evidence,cost,usage,tenancy
field.owners.label
field.stability.label
public

The persisted envelope for a single observed signal — the shared spine consumed by observability and billing.

Declared as the `EvidenceRecordModel` `SchemaModel`; `EvidenceRecord` is its

Zod-inferred TS shape.

`tenantId` is stored **raw**, never hashed: it is the row-level-security key.

`idempotencyKey` and `occurredAt` are required (at-least-once dedupe + time).

`value` or `quantities` carries the payload; `cost`/`usage` signals attach

`SignalCostEvidence`.

`redactionRef` points at the redaction policy applied to payload values.

This module is type-only + a validator. Persistence/DB wiring lives in the app adapter, not here.