Current section

Files

Jump to
agent_blueprint_protocol documentation portability.md
Raw

documentation/portability.md

# Portability — the data-minimization profile

Portable artifacts MUST NOT carry secrets, private keys, live grants,
tenant identifiers, raw endpoints, database primary keys, or backend
engine identifiers. The guard is structural — member-name and
value-shape denylists over the open regions, at any depth,
name-spelling-normalized — and every class is red-cased in the corpus.

## The honest limits (part of the contract)

- The guard is necessary, not sufficient. Opaque quarantined extension
  bodies are typed as unscanned; portability claims attach only to
  schema-validated content.
- Identifier-shaped values with the UUID grammar are exempt by shape:
  the guard is structural, not semantic — a tenant identifier encoded
  as a UUID is not caught by the value-shape arm.

## What the host owns

Concrete provider/model names, credentials, engine ids, and endpoints
resolve host-side. A blueprint names logical operations and datasets;
a deployment binds them through identities and digests — never through
live coordinates.