{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "AgentSkillsConfig", "description": "Configuration schema for managing global AI agent skills", "type": "object", "properties": { "$schema": { "type": "string" }, "version": { "type": "integer", "enum": [1] }, "settings": { "type": "object", "properties": { "defaultAgents": { "type": "array", "items": { "type": "string" }, "description": "Agents selected by Follow defaults for Availability" }, "availability": { "type": "object", "description": "Persistent per-skill agent availability overrides", "additionalProperties": { "type": "object", "properties": { "include": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "exclude": { "type": "array", "items": { "type": "string" }, "uniqueItems": true } }, "additionalProperties": false } } }, "additionalProperties": false }, "remote": { "type": "object", "description": "Remote Git/GitHub skill repositories", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": ["github", "gitlab", "git"] }, "url": { "type": "string", "description": "Optional custom Git clone URL" }, "branch": { "type": "string", "description": "Optional branch or tag" }, "skills": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Map of skill name to its relative path within the repository" }, "signature": { "type": "object", "description": "Who this Source's Skills must be signed by. Each Skill's skill.oms.sig (OpenSSF Model Signing) is verified before it is Materialized.", "properties": { "require": { "type": "boolean", "description": "Treat an unsigned Skill of this Source as a verification failure" }, "sigstore": { "type": "object", "description": "Sigstore keyless signer, matched exactly. Recorded the first time a signed Skill of this Source is seen.", "properties": { "identity": { "type": "string", "description": "Certificate identity (subject alternative name), e.g. a GitHub Actions workflow ref" }, "issuer": { "type": "string", "description": "OIDC issuer, e.g. https://token.actions.githubusercontent.com" } }, "required": ["identity", "issuer"], "additionalProperties": false }, "certificateChain": { "type": "string", "description": "PEM trust anchor the signing certificate must chain to, relative to the directory holding this skills.json unless absolute" }, "trusted": { "type": "object", "description": "Trusted content, recorded by 'skills trust': each skill's Cache tree id that is installed although its signature does not verify. It no longer applies once the Source changes the skill.", "additionalProperties": { "type": "string" } } }, "not": { "required": ["sigstore", "certificateChain"] }, "additionalProperties": false } }, "required": ["skills"], "additionalProperties": false } }, "local": { "type": "object", "description": "Locally managed skills (symlinks or CLI-installed tools)", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": ["symlink", "command"] }, "source": { "type": "string", "description": "Path to local skill directory (for symlink type)" }, "check": { "type": "string", "description": "Prerequisite command that must succeed before the install command runs; the skill is skipped when it fails (for command type)" }, "command": { "type": "string", "description": "Command to install the skill (for command type)" }, "description": { "type": "string", "description": "Optional description of the skill" } }, "required": ["type"], "additionalProperties": false } } }, "required": ["version"], "additionalProperties": false }