Skip to content

Contract schemas

The contracts are language-neutral JSON Schemas shared by the core runtime, plugins, recipes, and downstream automation.

SchemaStable surface
plugin.v1.schema.jsonPlugin self-description from manifest --json
catalog.v1.schema.jsonPublished plugin catalog
recipe.v1.schema.jsonExecutable workflow recipe
eval-recipe.v1.schema.jsonEvaluation protocol
run-manifest.v1.schema.jsonDurable execution state
artifact-bundle.v1.schema.jsonFetched result inventory

Versioning

Contract identifiers carry an explicit version such as mere.run/plugin-catalog.v1. Additive implementation changes can remain within the version only when existing valid documents and consumers keep their meaning. Breaking shape or semantic changes require a new contract version.

Change rule

If a plugin needs a new contract field, update all affected surfaces together:

  • schema;
  • plugin implementation;
  • catalog or recipe examples;
  • docs;
  • validation and unit tests.

Provider-specific behavior belongs in plugin code and documentation, not in a shared schema unless multiple consumers genuinely need the field.

Validation

./scripts/check.sh validates contracts, catalog entries, recipes, examples, and installed plugin smoke surfaces. See Testing.

Official companion plugins for the local mere.run runtime.