Project-local agent skills composition lock¶
Authoritative source: skill/schemas/skills-lock.schema.json
Complete source¶
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.invalid/schemas/skills-lock.schema.json",
"title": "Project-local agent skills composition lock",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"lock_version",
"generated_at",
"skills_reference",
"core",
"profile",
"adapter_contract",
"overlays",
"composition_digest"
],
"properties": {
"schema_version": {"const": 1},
"lock_version": {"const": "1.0.0"},
"generated_at": {"type": "string", "format": "date"},
"skills_reference": {"type": "string", "minLength": 1},
"core": {"$ref": "#/$defs/core"},
"profile": {"$ref": "#/$defs/profile"},
"adapter_contract": {"$ref": "#/$defs/adapter"},
"overlays": {
"type": "array",
"items": {"$ref": "#/$defs/overlay"}
},
"composition_digest": {"$ref": "#/$defs/digest"}
},
"$defs": {
"semver": {
"type": "string",
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
},
"digest": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"core": {
"type": "object",
"additionalProperties": false,
"required": [
"version",
"content_digest",
"workflow_registry_version",
"reuse_catalogue_version"
],
"properties": {
"version": {"$ref": "#/$defs/semver"},
"content_digest": {"$ref": "#/$defs/digest"},
"workflow_registry_version": {"$ref": "#/$defs/semver"},
"reuse_catalogue_version": {"$ref": "#/$defs/semver"}
}
},
"profile": {
"type": "object",
"additionalProperties": false,
"required": ["name", "version", "lineage", "content_digest"],
"properties": {
"name": {"type": "string", "minLength": 1},
"version": {"$ref": "#/$defs/semver"},
"lineage": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {"type": "string", "minLength": 1}
},
"content_digest": {"$ref": "#/$defs/digest"}
}
},
"adapter": {
"type": "object",
"additionalProperties": false,
"required": ["version", "content_digest"],
"properties": {
"version": {"$ref": "#/$defs/semver"},
"content_digest": {"$ref": "#/$defs/digest"}
}
},
"overlay": {
"type": "object",
"additionalProperties": false,
"required": ["source", "version", "reference", "content_digest"],
"properties": {
"source": {"type": "string", "pattern": "^org\\.[a-z][a-z0-9-]*$"},
"version": {"$ref": "#/$defs/semver"},
"reference": {"type": "string", "minLength": 1},
"content_digest": {"$ref": "#/$defs/digest"}
}
}
}
}