Manifest Schema
The JSON Schema that defines valid effector.toml manifests.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://effectorhq.dev/schemas/effector.schema.json",
"title": "Effector Manifest",
"description": "Schema for effector.toml — the Effector package manifest",
"type": "object",
"required": [
"effector"
],
"properties": {
"effector": {
"type": "object",
"required": [
"name",
"version",
"type",
"description"
],
"properties": {
"name": {
"type": "string",
"pattern": "^(@[a-z0-9-]+/)?[a-z0-9-]{2,64}$",
"description": "Unique package name (kebab-case, optional @scope prefix)"
},
"version": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"description": "Semantic version (MAJOR.MINOR.PATCH)"
},
"type": {
"type": "string",
"enum": [
"skill",
"extension",
"workflow",
"workspace",
"bridge",
"prompt"
],
"description": "Effector type"
},
"description": {
"type": "string",
"minLength": 10,
"maxLength": 200,
"description": "One-line human-readable description"
},
"license": {
"type": "string",
"description": "SPDX license identifier"
},
"emoji": {
"type": "string",
"description": "Single emoji for UI display"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"description": "Discovery tags"
},
"authors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Author list"
},
"repository": {
"type": "string",
"format": "uri",
"description": "Source repository URL"
},
"homepage": {
"type": "string",
"format": "uri",
"description": "Project homepage URL"
},
"documentation": {
"type": "string",
"format": "uri",
"description": "Documentation URL"
},
"min-spec-version": {
"type": "string",
"description": "Minimum Effector spec version required"
},
"categories": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"enum": [
"developer-tools",
"productivity",
"data",
"communication",
"infrastructure",
"security",
"content",
"research"
]
},
"secondary": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"dependencies": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"skill",
"extension",
"workflow",
"workspace",
"bridge",
"prompt"
]
},
"optional": {
"type": "boolean",
"default": false
},
"registry": {
"type": "string"
}
}
}
},
"permissions": {
"type": "object",
"properties": {
"network": {
"type": "boolean",
"default": false
},
"filesystem": {
"type": "array",
"items": {
"type": "string",
"enum": [
"read",
"write"
]
}
},
"filesystem-paths": {
"type": "array",
"items": {
"type": "string"
}
},
"env-read": {
"type": "array",
"items": {
"type": "string"
}
},
"env-write": {
"type": "array",
"items": {
"type": "string"
}
},
"subprocess": {
"type": "boolean",
"default": false
},
"secrets": {
"type": "array",
"items": {
"type": "string"
}
},
"system": {
"type": "boolean",
"default": false
}
}
},
"errors": {
"type": "object",
"properties": {
"retry": {
"type": "object",
"properties": {
"max-attempts": {
"type": "integer",
"minimum": 1
},
"backoff": {
"type": "string",
"enum": [
"linear",
"exponential",
"fixed"
]
}
}
},
"on-failure": {
"type": "string",
"enum": [
"log",
"abort",
"fallback"
]
},
"fallback": {
"type": "string"
}
}
},
"bridge": {
"type": "object",
"properties": {
"source-runtime": {
"type": "string"
},
"source-format": {
"type": "string"
},
"target-runtime": {
"type": "string"
},
"target-format": {
"type": "string"
},
"transport": {
"type": "string"
}
}
},
"prompt": {
"type": "object",
"properties": {
"format": {
"type": "string"
},
"entry": {
"type": "string"
},
"variables": {
"type": "array",
"items": {
"type": "string"
}
},
"context": {
"type": "string",
"enum": [
"system",
"user",
"assistant"
]
}
}
},
"interface": {
"type": "object",
"description": "Typed interface declaration — the core of the Effector type system",
"properties": {
"input": {
"type": "string",
"description": "Input type name from effector-types standard library"
},
"output": {
"type": "string",
"description": "Output type name from effector-types standard library"
},
"context": {
"type": "array",
"items": {
"type": "string"
},
"description": "Context type names required for execution"
},
"nondeterminism": {
"type": "string",
"enum": [
"none",
"low",
"moderate",
"high"
],
"description": "Degree of output variability across invocations"
},
"idempotent": {
"type": "boolean",
"description": "Whether repeated invocations produce same side effects"
},
"token-budget": {
"type": "integer",
"minimum": 0,
"description": "Maximum token consumption per invocation"
},
"latency-p50": {
"type": "integer",
"minimum": 0,
"description": "Expected median latency in milliseconds"
}
}
},
"security": {
"type": "object",
"properties": {
"advisory": {
"type": "string",
"format": "uri"
},
"deprecated-versions": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"runtime": {
"type": "object",
"description": "Runtime-specific binding configurations",
"additionalProperties": {
"type": "object",
"properties": {
"format": {
"type": "string"
},
"entry": {
"type": "string"
},
"min-version": {
"type": "string"
},
"transport": {
"type": "string"
}
}
}
}
}
}