The smallest possible surface for treating Quilt as a substrate for agents, planners, and runtimes. Five primitives, one CLI command, one manifest schema.
- Backward-compatible extension of the Quilt sheet format
- Optional fields:
inputs,outputs,preconditions,postconditions,rollback,resource_hints,model_requirements,provenance_tags,irreversible - All fields are optional — existing sheets continue to work unchanged
- Full JSON Schema with examples, $id, and description on every field
- 5 primitives for the agent substrate:
resolveTemplate(uri, ctx)—{{var}}substitution (snake/camel-insensitive)resolveArtifact(uri, ctx, store)— pin:latest, get provenancevalidateManifest(manifest, opts)— JSON Schema + optional precondition checkspublishArtifact(src, meta, store)— content-addressed uploadpublishRunTrace(trace, store)— immutable execution trace
InMemoryArtifactStore— test/demo store, swappable for R2/S3/etc.- 28 tests passing (all primitives + end-to-end planner flow)
- Heavy header comments on every export
- TypeScript with full type definitions
- Apache 2.0
- New
quilt validate <file>command- JSON Schema validation
--check-existsfor precondition verification--run-id <id>for templating{{run_id}}in preconditions
- New
quilt resolve <uri>command- Template substitution
- Version pinning display
- Existing commands unchanged
- A fully-decorated example manifest demonstrating all schema fields
- Works with
quilt validateout of the box
- 8-section landing page documenting the agent substrate
- Interactive playground: type a URI, paste a manifest, click validate
- Maps the spec to Quilt's existing primitives
- Visual: the 5 primitives, the QuiltAgent class, reactive vs imperative
Before v0.4.0, Quilt was a reactive engine. Now Quilt is also a substrate that any agent, planner, or runtime can compose against. The five primitives are the minimum surface that lets:
- Planners compile goals into manifest DAGs
- Runtimes execute them transactionally with rollback
- Agents learn from the past via run traces
- UIs show users what is happening with full provenance
The same shape that works for "train a classifier" works for "answer a question with RAG", "coordinate three agents", "simulate a universe". The schema is the contract.
| New concept | Already in Quilt |
|---|---|
Manifest (declarative primitive) |
A Quilt sheet (YAML) |
| Container entrypoint | A cell's evaluate() |
| Inputs/outputs | derived_from + reactive propagation |
| Pre/postconditions | kind: 'sensor' + validate listeners |
| Rollback | @quilt/evolve revert step |
model_requirements |
kind: 'ai' + ai_kind + provider |
| Run trace | engine.serialize() + reactive history |
| Agent substrate | @quilt/mcp exposes Quilt to any agent |
@quilt/sdk— 28 tests (all passing)@quilt/core— 15 tests (all passing, unchanged)quilt validateCLI — verified against 2 example manifestsquilt resolveCLI — verified with 3 URI patterns
Zero. All new fields are optional. All existing sheets work unchanged.
@quilt/sdk is a new package, not a breaking change.
quilt-runner(new repo) — reference runtime that executes Quilt sheets as transactional plansquilt-rag(new repo) — production RAG with Vectorizequilt-agents(new repo) — multi-agent universes with@quilt/evolvequilt-demo-classifier-dag— end-to-end example