{
  "specVersion": "1.0",
  "host": {
    "displayName": "Joel C. Saji",
    "documentationUrl": "https://www.joelcsaji.com/llms.txt"
  },
  "entries": [
    {
      "identifier": "urn:air:joelcsaji.com:site:openapi",
      "displayName": "joelcsaji.com read-only JSON API",
      "type": "application/openapi+json",
      "url": "https://www.joelcsaji.com/openapi.json",
      "description": "OpenAPI 3.1 contract for the public, unauthenticated, read-only JSON API of joelcsaji.com: articles, portfolio projects, and AI dictionary terms. No API key, no signup; 60 requests per 60 seconds per client.",
      "capabilities": [
        "listPosts",
        "getPost",
        "listProjects",
        "getProject",
        "getNow",
        "searchAiTerms",
        "getAiTerm",
        "getSearchIndex"
      ],
      "representativeQueries": [
        "what has Joel Saji written about React server components",
        "list the portfolio projects on joelcsaji.com",
        "define agent harness from the joelcsaji.com AI dictionary"
      ]
    },
    {
      "identifier": "urn:air:joelcsaji.com:site:llms-txt",
      "displayName": "joelcsaji.com llms.txt",
      "type": "text/plain",
      "url": "https://www.joelcsaji.com/llms.txt",
      "description": "Summary of joelcsaji.com for language models, with an explicit when-to-use section and a linked index of every public page, service, project, and recent article.",
      "capabilities": [
        "site-summary",
        "page-index"
      ],
      "representativeQueries": [
        "who is Joel Saji",
        "what pages are on joelcsaji.com"
      ]
    },
    {
      "identifier": "urn:air:joelcsaji.com:site:developers",
      "displayName": "joelcsaji.com developer portal",
      "type": "text/html",
      "url": "https://www.joelcsaji.com/developers",
      "description": "Human- and agent-readable documentation for the API: base URL, endpoint table, quickstart, Markdown content negotiation via Accept: text/markdown, rate limits, and the error format. Also available as Markdown.",
      "capabilities": [
        "api-docs",
        "content-negotiation",
        "rate-limits"
      ],
      "representativeQueries": [
        "how do I call the joelcsaji.com API",
        "does joelcsaji.com serve markdown"
      ]
    },
    {
      "identifier": "urn:air:joelcsaji.com:site:sitemap",
      "displayName": "joelcsaji.com sitemap",
      "type": "application/xml",
      "url": "https://www.joelcsaji.com/sitemap.xml",
      "description": "Every public URL on joelcsaji.com with a lastmod date, changefreq, and priority.",
      "capabilities": [
        "url-index"
      ],
      "representativeQueries": [
        "list every page on joelcsaji.com",
        "when was joelcsaji.com last updated"
      ]
    },
    {
      "identifier": "urn:air:joelcsaji.com:site:rss",
      "displayName": "joelcsaji.com blog feed",
      "type": "application/rss+xml",
      "url": "https://www.joelcsaji.com/rss.xml",
      "description": "RSS feed of articles published on joelcsaji.com as they go live.",
      "capabilities": [
        "article-feed"
      ],
      "representativeQueries": [
        "what did Joel Saji publish recently",
        "subscribe to the joelcsaji.com blog"
      ]
    }
  ]
}
