# https://www.robotstxt.org/robotstxt.html # # Content-Signal (https://contentsignals.org) states what our content may be # USED for, which is a separate question from who may CRAWL it: # # search=yes index it and link to it # ai-input=yes ground an answer in it, with attribution — this is the point # ai-train=no do not train or fine-tune a model on it # # This line is ours on purpose. Cloudflare's "Managed robots.txt" toggle emits # an equivalent signal, but it emits it alongside `Disallow: /` for ClaudeBot, # GPTBot, Google-Extended, Applebot-Extended, CCBot, Amazonbot, Bytespider and # meta-externalagent — and a named group beats `User-agent: *`, so every # assistant we want citing us reads "crawl nothing" and obeys. Keeping the # policy here means the training reservation survives that toggle being off. # Any restriction expressed here is an express reservation of rights under # Article 4 of EU Directive 2019/790. User-agent: * Content-Signal: search=yes,ai-input=yes,ai-train=no Allow: / Disallow: /admin/ Disallow: /instructor/ Disallow: /letter_opener/ Sitemap: https://mykahal.com/sitemap.xml # AI crawlers and assistants are welcome on the public pages. Start with the # structured summary rather than the rendered HTML — it is cheaper for both of us. # Product summary: https://mykahal.com/llms.txt # Crawler policy: https://mykahal.com/ai.txt # OpenAPI 3.1 spec: https://mykahal.com/openapi.json # Developer docs: https://mykahal.com/developers