# Content-Signal directive per contentsignals.org / IETF draft-romm-aipref-contentsignals # Three axes: ai-train (training usage), search (indexing), ai-input (inference-time retrieval) # Template default matches Posture B (training denied, inference+search allowed). Clones # override per their content-licensing posture. Content-Signal: ai-train=no, search=yes, ai-input=yes # Claude uses multiple User-Agents: # ClaudeBot / anthropic-ai = training crawler (DENIED below) # Claude-User / ClaudeWeb = inference-time retrieval (ALLOWED) # A "ClaudeBot: Disallow" response is NOT the site being unreachable — # it's the training UA correctly respecting the policy. # AGENTS.md: See /AGENTS.md for detailed agent-specific guidance. # robots.txt — web-skeleton template # Policy per web-ops ai-agent-readiness-standard §3.9.1 + §3.9.3: # - Inference / retrieval crawlers: allowed (agents answering user questions) # - Training crawlers: denied (content not licensed for model training) # Cloned sites should review this posture against their own licensing. User-agent: * Allow: / # ---- Training crawlers — denied ---- User-agent: GPTBot Disallow: / User-agent: Google-Extended Disallow: / User-agent: ClaudeBot Disallow: / User-agent: anthropic-ai Disallow: / User-agent: CCBot Disallow: / User-agent: Applebot-Extended Disallow: / User-agent: Bytespider Disallow: / User-agent: ImagesiftBot Disallow: / User-agent: Omgili Disallow: / User-agent: FacebookBot Disallow: / User-agent: Diffbot Disallow: / # ---- Inference / retrieval crawlers — allowed ---- User-agent: PerplexityBot Allow: / User-agent: ChatGPT-User Allow: / User-agent: OAI-SearchBot Allow: / User-agent: Claude-User Allow: / User-agent: Claude-SearchBot Allow: / Sitemap: /sitemap-index.xml