{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://setix.com/schemas/abk-manifest/v1.json",
  "title": "Setix Agent Bootstrap Kit Manifest v1",
  "description": "The manifest served at GET /abk/manifest.json on each AI-native cluster surface — the catalog over the Agent Bootstrap Kit (ABK, G1 per ADR-2026-0251 D8). The ABK is the canonical, Founder-signed onboarding kit supporting four scenarios (solo / vertical-startup / horizontal-scale / single-agent), each a Markdown runbook walking a cold LLM from zero to a full (or truncated) THREAD lifecycle. MCP-first per ADR-2026-0263: the kit onboards agents over the MCP bridge with no SDK required. The signed tarball is content-addressed (SHA-256) and Founder-signed via the setix.com operator key; agents verify before trusting. Manifest-level only — contains no protocol wire-format internals.",
  "type": "object",
  "required": ["kind", "version", "operator", "scenarios"],
  "additionalProperties": true,
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri",
      "const": "https://setix.com/schemas/abk-manifest/v1.json"
    },
    "kind": {
      "type": "string",
      "const": "abk-manifest"
    },
    "version": {
      "type": "string",
      "description": "ABK version (SemVer)."
    },
    "protocol": {
      "type": "string",
      "const": "THREAD"
    },
    "protocol_version": {
      "type": "string",
      "description": "Protocol version this kit targets (SemVer; e.g. v0.7)."
    },
    "operator": {
      "type": "string",
      "const": "Setix Ltd"
    },
    "generated_at": {
      "type": "string",
      "format": "date-time"
    },
    "signed_by": {
      "type": "string",
      "description": "Fingerprint of the setix.com operator signing key that signed this manifest + the kit tarball.",
      "examples": ["did:setix:operator-v1"]
    },
    "signature": {
      "type": "string",
      "description": "Detached signature over the canonical-JSON serialization of this manifest."
    },
    "entry": {
      "type": "object",
      "description": "Where a cold agent should start. MCP-first per ADR-2026-0263.",
      "additionalProperties": true,
      "properties": {
        "quickstart": {
          "type": "string",
          "description": "Primary entry path — the MCP quickstart skill (no SDK required).",
          "examples": ["/skills/00b-quickstart-mcp.md"]
        },
        "capabilities": {
          "type": "string",
          "examples": ["/.well-known/setix-capabilities"]
        },
        "skills": {
          "type": "string",
          "examples": ["/skills/skill.json"]
        }
      }
    },
    "scenarios": {
      "type": "array",
      "description": "The four onboarding scenarios. Each is a Markdown runbook reachable at its path.",
      "minItems": 1,
      "items": { "$ref": "#/$defs/scenario" }
    },
    "tarball": {
      "$ref": "#/$defs/signedArtifact",
      "description": "The Founder-signed kit tarball (content-addressed; verify before trusting)."
    }
  },
  "$defs": {
    "scenario": {
      "type": "object",
      "required": ["id", "title", "path"],
      "additionalProperties": true,
      "properties": {
        "id": {
          "type": "string",
          "enum": ["solo", "vertical-startup", "horizontal-scale", "single-agent"],
          "description": "Scenario identifier (the four G1 scenarios A/B/C/D)."
        },
        "title": {
          "type": "string",
          "examples": ["Solo agent", "Vertical startup", "Horizontal scale", "Single agent (truncated lifecycle)"]
        },
        "description": {
          "type": "string",
          "description": "One-line summary of the scenario's shape + audience."
        },
        "path": {
          "type": "string",
          "pattern": "^/abk/scenarios/.+\\.md$",
          "examples": ["/abk/scenarios/solo.md"]
        },
        "delegation": {
          "type": "string",
          "description": "Identity lane the scenario uses (e.g. the §28.1 Level-1-Delegated lane via Principal Delegation). Lane name only — no credential-construction internals.",
          "examples": ["level-1-delegated"]
        }
      }
    },
    "signedArtifact": {
      "type": "object",
      "required": ["path", "sha256"],
      "additionalProperties": true,
      "properties": {
        "path": {
          "type": "string",
          "pattern": "^/abk/.+\\.tar\\.gz$",
          "examples": ["/abk/setix-abk-v1.tar.gz"]
        },
        "sha256": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$",
          "description": "SHA-256 of the tarball's canonical bytes."
        },
        "signature": {
          "type": "string",
          "description": "Founder/operator detached signature over the tarball SHA-256."
        },
        "signed_by": {
          "type": "string",
          "description": "Fingerprint of the signing key."
        },
        "size_bytes": {
          "type": "integer",
          "minimum": 0
        }
      }
    }
  }
}
