protocol: SMALL
version: 1.0.0
SMALL is the execution model for agent-legible systems. It defines five primitives that compose into deterministic workflows: Schema, Manifest, Artifact, Lineage, and Lifecycle.
SMALL replaces opaque CMS abstractions with explicit, machine-verifiable contracts. Each primitive is addressable, versioned, and serializable.
Schema
A Schema defines the structural and semantic contract for artifacts. It specifies required fields, validation rules, and type constraints. Schemas are versioned and referenced by stable identifiers, enabling agents to validate artifacts before materialization.
{
"$id": "schema:article:v1",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Article",
"type": "object",
"required": ["id", "title", "content"],
"properties": {
"id": { "type": "string" },
"title": { "type": "string", "minLength": 1 },
"content": { "type": "string" },
"publishedAt": { "type": "string", "format": "date-time" }
}
}
Manifest
A Manifest binds schemas, artifacts, and policies into a deployable unit. It declares what exists, how it's validated, and what rules govern its lifecycle. Manifests are what agents consume to understand system state and intent.
{
"id": "manifest:content-publishing:v1",
"version": 1,
"schemas": ["schema:article:v1"],
"artifacts": ["article:001"],
"policies": {
"deterministic": true,
"appendOnly": true,
"validationRequired": true
}
}
Artifact
An Artifact is the smallest addressable, versioned unit in the system. It represents materialized content that conforms to a schema. Artifacts are immutable once published; new versions create new artifacts with incremented version numbers.
{
"id": "article:001",
"version": 1,
"kind": "article",
"data": {
"title": "SMALL Execution Model",
"content": "SMALL defines five primitives...",
"publishedAt": "2025-01-15T10:00:00Z"
},
"schemaId": "schema:article:v1"
}
Lineage
Lineage captures derivation and causality. It records where an artifact came from, what produced it, and from which inputs it was derived. Lineage enables traceability and auditability for agent-generated content.
{
"artifactId": "article:001",
"derivedFrom": ["draft:abc123"],
"producedBy": {
"actor": "agent",
"name": "content-generator",
"runId": "run_20250115_001"
},
"at": "2025-01-15T10:00:00Z"
}
Lifecycle
Lifecycle records artifact state transitions as an append-only event stream. Each event represents a state change: created, validated, published, archived. Lifecycle events are immutable and ordered, providing a complete audit trail.
{
"artifactId": "article:001",
"events": [
{ "type": "created", "at": "2025-01-15T09:00:00Z" },
{ "type": "validated", "at": "2025-01-15T09:30:00Z", "schema": "schema:article:v1" },
{ "type": "published", "at": "2025-01-15T10:00:00Z" }
]
}
Execution Flow
SMALL primitives compose into deterministic execution flows:
- Schema defines the contract
- Manifest declares intent and binds resources
- Artifact materializes content conforming to the schema
- Lineage records provenance and derivation
- Lifecycle tracks state transitions over time
This flow is agent-legible: each step is explicit, verifiable, and automatable. See the SMALL Model diagrams for visual representations.
Design Principles
- Schema-first: validation is non-optional and happens before materialization
- Manifest-governed: system state is declared, not inferred
- Append-only: history is immutable; versioning replaces mutation
- Deterministic lineage: every artifact has traceable provenance
- Agent-legible: primitives are explicit, addressable, and automatable
For detailed specifications of each primitive, see the Primitive Spec v1.