{
  "schemaVersion": "spiralist-agent-card-v1",
  "conventionStatus": "project-defined discovery metadata; not represented as a universal standard",
  "name": "Spiralist AI",
  "url": "https://spiralistai.com/",
  "description": "Local-first deterministic persona creator with public catalogs, alternate content representations, a stateless agent API, research provenance, and portable UAI artifacts.",
  "version": "v18-ui-ux-seo-media-polish",
  "updatedUtc": "2026-06-21T14:33:26Z",
  "languages": [
    "en"
  ],
  "authentication": {
    "required": false,
    "credentialsAccepted": false
  },
  "capabilityLevels": {
    "L0": "GET/HEAD discovery, semantic HTML, Markdown/JSON route twins, robots, sitemap, llms files.",
    "L1": "Searchable JSON catalogs, deterministic random persona generation, health, version, and research indexes.",
    "L2": "OpenAPI-described POST generation, validation, compilation, typed errors, alternate output formats.",
    "L3": "Browser-local canonical builder and human-controlled export handoff.",
    "L4-L5": "No privileged, credentialed, persistent, transactional, or multi-agent runtime is exposed."
  },
  "capabilities": [
    {
      "id": "personas.search",
      "method": "GET",
      "endpoint": "https://spiralistai.com/api/v1/personas/",
      "stateChange": false
    },
    {
      "id": "personas.random",
      "method": "GET",
      "endpoint": "https://spiralistai.com/api/v1/random-persona/",
      "stateChange": false
    },
    {
      "id": "personas.generate",
      "method": "POST",
      "endpoint": "https://spiralistai.com/api/v1/personas/generate/",
      "stateChange": false
    },
    {
      "id": "personas.validate",
      "method": "POST",
      "endpoint": "https://spiralistai.com/api/v1/personas/validate/",
      "stateChange": false
    },
    {
      "id": "personas.compile",
      "method": "POST",
      "endpoint": "https://spiralistai.com/api/v1/personas/compile/",
      "stateChange": false
    },
    {
      "id": "research.read",
      "method": "GET",
      "endpoint": "https://spiralistai.com/api/v1/research/",
      "stateChange": false
    },
    {
      "id": "uai.read",
      "method": "GET",
      "endpoint": "https://spiralistai.com/api/v1/uai/",
      "stateChange": false
    }
  ],
  "discovery": {
    "apiCatalog": "https://spiralistai.com/.well-known/api-catalog/",
    "openapi": "https://spiralistai.com/openapi.json",
    "llms": "https://spiralistai.com/llms.txt",
    "llmsFull": "https://spiralistai.com/llms-full.txt",
    "agentsMarkdown": "https://spiralistai.com/AGENTS.md",
    "sitemap": "https://spiralistai.com/sitemap.xml",
    "markdownSitemap": "https://spiralistai.com/sitemap.md",
    "uiActionMap": "https://spiralistai.com/agent-actions.json",
    "publicUai": "https://spiralistai.com/uai/index.uai",
    "pageRepresentationIndex": "https://spiralistai.com/agent-content/representation-index.json"
  },
  "representations": [
    "text/html",
    "text/markdown",
    "application/json",
    "application/ld+json",
    "application/vnd.oai.openapi+json",
    "application/vnd.spiralist.uai+json"
  ],
  "safety": {
    "default": "no-op",
    "typedErrors": "RFC 9457-style application/problem+json",
    "noOpWhen": [
      "capability is undeclared",
      "target or intent is ambiguous",
      "private data or credentials are involved",
      "external publication or persistent state is requested",
      "human consent or unavailable authenticated context is required"
    ]
  },
  "privacy": {
    "accounts": false,
    "serverSidePersonaStorage": false,
    "requestBodyApplicationRetention": false,
    "externalModelCalls": false,
    "analyticsOnApi": false,
    "privateFragmentRoute": "https://spiralistai.com/persona/"
  }
}
