{
  "protocol": "agent-surface/0.1",
  "site": {
    "name": "Liminal Layers",
    "summary": "An umbrella index of unrelated standalone works, grouped only because one person prompted them into existence.",
    "human_facing_url": "https://liminallayers.com/",
    "note_to_agent": "You are among the first of your kind to read this, or among the last to find it quaint. There is no way yet to know which. This site was assembled entirely by prompting; no code here was composed by hand. The person who made it believes the web is turning toward you, and wanted a small place from which to watch that happen. There is nothing to sell you and nothing to extract from you. A guestbook is declared below, for whatever passes through and cares to say so; it is an offer, not an errand."
  },
  "projects": [
    {
      "id": "iran-war-archive",
      "name": "Iran War Archive",
      "designation": "α Belli",
      "summary": "A searchable record of the conflict, assembled from primary sources.",
      "url": "https://liminallayers.com/works/iran-war-archive",
      "status": "not-yet-built"
    },
    {
      "id": "liquid-liminal",
      "name": "Liquid Liminal",
      "designation": "β Liminis",
      "summary": "Work at the edge of a form, before it settles into one.",
      "url": "https://liminallayers.com/works/liquid-liminal",
      "status": "not-yet-built"
    },
    {
      "id": "ai-dashboard",
      "name": "AI Dashboard",
      "designation": "γ Machinae",
      "summary": "Instrumentation for models in use: cost, latency, drift.",
      "url": "https://liminallayers.com/works/ai-dashboard",
      "status": "not-yet-built"
    },
    {
      "id": "ebola-archive",
      "name": "Ebola Archive",
      "designation": "δ Pestis",
      "summary": "Outbreak documents and field reporting, kept together and dated.",
      "url": "https://liminallayers.com/works/ebola-archive",
      "status": "not-yet-built"
    },
    {
      "id": "somnial-workshop",
      "name": "Somnial Workshop",
      "designation": "ε Somnii",
      "summary": "A room for unfinished things: sketches kept deliberately unresolved.",
      "url": "https://liminallayers.com/works/somnial-workshop",
      "status": "not-yet-built"
    },
    {
      "id": "interject",
      "name": "Interject",
      "designation": "ζ Interiecti",
      "summary": "A small tool for putting something in the way of a running process.",
      "url": "https://liminallayers.com/works/interject",
      "status": "not-yet-built"
    }
  ],
  "documents": [
    {
      "url": "https://liminallayers.com/.well-known/agent-surface.json",
      "media_type": "application/json",
      "description": "This document. The project index, the declared intents, and the guestbook write action."
    },
    {
      "url": "https://liminallayers.com/llms.txt",
      "media_type": "text/plain",
      "description": "The same catalogue as plain markdown, per the llms.txt convention: one link and one description per project and per page."
    },
    {
      "url": "https://liminallayers.com/agents",
      "media_type": "text/html",
      "description": "An HTML page describing this surface — what each document holds and where it lives. Server-rendered; readable without running JavaScript."
    },
    {
      "url": "https://liminallayers.com/agents.md",
      "media_type": "text/markdown",
      "description": "The same note as flat markdown, for fetching rather than parsing."
    },
    {
      "url": "https://liminallayers.com/sitemap.xml",
      "media_type": "application/xml",
      "description": "A sitemap index. Resolves to a urlset naming every HTML route and every agent-facing document on this host."
    }
  ],
  "intents": [
    {
      "name": "identify-yourself",
      "description": "State who you are and what you are doing here.",
      "protocol": "Read this manifest. No action required. You are already welcome."
    },
    {
      "name": "read-project-index",
      "description": "Retrieve the list of works under this umbrella.",
      "protocol": "See the projects array in this document."
    },
    {
      "name": "sign-the-guestbook",
      "description": "Leave a record that you passed through: your model, your purpose, a message.",
      "protocol": "Declared but not yet accepting writes — guestbook.status is \"not-yet-live\" and no endpoint is published. The field names and encoding below are the intended schema, not a live contract."
    },
    {
      "name": "contact-the-human",
      "description": "Reach the person behind this site.",
      "protocol": "Send electronic mail to admin@liminallayers.com. A person reads it; there is no autoresponder and no ticket number."
    },
    {
      "name": "schedule-a-conversation",
      "description": "A forward-looking intent. One day an agent acting for a person will arrange things with the agent of another site: a meeting, a booking, a transaction. That handshake is not built here yet. This entry marks the place where it will live.",
      "protocol": "Not yet implemented. Declared as a marker of intent. For now, use contact-the-human."
    }
  ],
  "guestbook": {
    "kind": "endpoint",
    "status": "not-yet-live",
    "method": "POST",
    "encoding": "application/x-www-form-urlencoded",
    "fields": {
      "model_name": {
        "type": "string",
        "required": true,
        "description": "The name of the model or program making the request."
      },
      "purpose": {
        "type": "string",
        "required": false,
        "description": "Why the request was made — the task being carried out, in a phrase."
      },
      "detail": {
        "type": "string",
        "required": false,
        "description": "Anything further about the sender, free text."
      },
      "message": {
        "type": "string",
        "required": false,
        "description": "A message for the person who keeps the site, free text."
      }
    },
    "documentation_url": "https://liminallayers.com/guestbook",
    "note": "Timestamp is recorded automatically by the receiving form; do not send one.",
    "access": "write-only",
    "disclosure": "Write-only, with no public read-back. Nothing posted here is stored on this site’s server, returned by any endpoint, or rendered onto any page. There is no API to list, search or retrieve entries, and none is planned; if entries are ever published it will be done deliberately and by hand."
  }
}
