Skip to content

Agent adapter manifest

Authoritative source: skill/schemas/adapter-manifest.schema.json

Complete source

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.invalid/getdone/adapter-manifest.schema.json",
  "title": "Agent adapter manifest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "contract_version",
    "required_guidance_references",
    "required_template_references",
    "max_guidance_nonempty_lines",
    "adapters"
  ],
  "properties": {
    "schema_version": {
      "const": 1
    },
    "contract_version": {
      "type": "string",
      "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
    },
    "required_guidance_references": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "required_template_references": {
      "type": "array",
      "minItems": 1,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "max_guidance_nonempty_lines": {
      "type": "integer",
      "minimum": 5,
      "maximum": 60
    },
    "adapters": {
      "type": "object",
      "minProperties": 1,
      "additionalProperties": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "display_name",
          "guidance",
          "delivery",
          "destination",
          "template"
        ],
        "properties": {
          "display_name": {
            "type": "string",
            "minLength": 1
          },
          "guidance": {
            "type": "string",
            "pattern": "^skill/adapters/.+\\.md$"
          },
          "delivery": {
            "enum": [
              "reference-only",
              "bootstrap-managed",
              "project-file"
            ]
          },
          "destination": {
            "type": [
              "string",
              "null"
            ]
          },
          "template": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "delivery": {
                  "const": "project-file"
                }
              }
            },
            "then": {
              "properties": {
                "destination": {
                  "type": "string",
                  "minLength": 1
                },
                "template": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "else": {
              "properties": {
                "template": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    }
  }
}