data is null, evidence is empty, and error contains only a stable code, category, safe message, and retryable boolean. Provider bodies, credentials, transcripts, drafts, and prompts are never returned. Mock-mode results explicitly carry provenance: mock and cannot be submission evidence.
The Pydantic envelope rejects extra fields and impossible states: success requires data and forbids an error, while failure requires one typed error and forbids data or evidence. Nova preserves the final tool error’s exact code, category, safe message, and retryability. Runtime failures use declared stable codes rather than raw exception text.
Skills require Nova to load exactly one matching skill first, call only its
allow-listed read tools, use
data only on success, and cite exact
evidenceId values returned during that invocation. Deterministic callbacks
record the actual sequence and envelopes; the output validator rejects unknown
references, false no_data, hidden errors, invalid retries, and mutation or
approval claims. Story and measured-post claims use record-level evidence;
dataset evidence supports only aggregate claims.
