{
  "schemaVersion": "2.74",
  "lastModified": "2026-10-04",
  "canonical": "https://yangtsunghann.com/en/data/ai-rights-policy.json",
  "authoritativeRegistry": "https://yangtsunghann.com/data/ai-rights-policy.json",
  "role": "localized_derivative",
  "purpose": "Separates search indexing/citation, user-triggered retrieval, and model-training controls. V2.56 explicitly allows major search crawlers while preserving the existing OpenAI training opt-out and recording unresolved provider-specific training-policy decisions.",
  "policyProfile": "search_and_citation_first_with_openai_training_opt_out_and_provider_specific_defaults",
  "principles": [
    "Search visibility, AI citation, and model training are separate uses and are not treated as the same permission.",
    "Public artwork and artist pages remain discoverable in Google Search and ChatGPT Search.",
    "OpenAI OAI-SearchBot and GPTBot receive separate robots.txt rules: search allowed, training disallowed.",
    "Google-Extended currently combines future Gemini model training with Gemini/Vertex AI grounding; without separate controls, V2.42 preserves the existing public default rather than silently sacrificing grounding visibility.",
    "robots.txt controls crawler access preferences and does not replace copyright, licenses, or artwork-rights statements."
  ],
  "searchAndCitation": {
    "googleSearch": {
      "crawler": "Googlebot",
      "policy": "explicit_allow"
    },
    "googleImages": {
      "crawler": "Googlebot-Image",
      "policy": "explicit_allow"
    },
    "chatgptSearch": {
      "crawler": "OAI-SearchBot",
      "policy": "explicit_allow"
    },
    "claudeSearch": {
      "crawler": "Claude-SearchBot",
      "policy": "explicit_allow"
    },
    "perplexitySearch": {
      "crawler": "PerplexityBot",
      "policy": "explicit_allow"
    }
  },
  "modelTraining": {
    "openAI": {
      "crawler": "GPTBot",
      "policy": "explicit_disallow",
      "robotsDirective": "User-agent: GPTBot / Disallow: /"
    },
    "google": {
      "controlToken": "Google-Extended",
      "policy": "inherited_public_default",
      "couplesTrainingAndGrounding": true,
      "decision": "retain public default because the same control affects Gemini/Vertex AI grounding"
    },
    "anthropic": {
      "crawler": "ClaudeBot",
      "policy": "inherited_public_default",
      "decision": "open_rights_policy_decision",
      "note": "Anthropic documents ClaudeBot as a model-development/training crawler."
    },
    "perplexity": {
      "crawler": "PerplexityBot",
      "searchCrawler": true,
      "foundationModelTrainingUse": "provider_docs_state_not_used_for_ai_foundation_model_training"
    }
  },
  "userTriggeredFetchers": {
    "chatGPTUser": {
      "agent": "ChatGPT-User",
      "policy": "user_initiated"
    },
    "claudeUser": {
      "agent": "Claude-User",
      "policy": "user_initiated"
    },
    "perplexityUser": {
      "agent": "Perplexity-User",
      "policy": "user_initiated"
    }
  },
  "rights": {
    "copyrightOwnershipChanged": false,
    "artworkRightsMetadataSource": "/data/image-graph.json",
    "licensePage": "https://yangtsunghann.com/contact/",
    "note": "This policy governs crawler purpose and access preferences; it does not grant reproduction, commercial-use, or derivative-work rights."
  },
  "sourceDocs": [
    {
      "provider": "OpenAI",
      "url": "https://developers.openai.com/api/docs/bots",
      "verified": "2026-10-04",
      "note": "OAI-SearchBot is for ChatGPT search; GPTBot is a separate foundation-model training crawler. Search visibility requires crawler access and may also depend on CDN/WAF acceptance."
    },
    {
      "provider": "Google",
      "url": "https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers",
      "verified": "2026-10-04",
      "note": "Googlebot controls Google Search crawling. Google-Extended is a separate product token; it does not control Search inclusion and covers Gemini model-training use plus Gemini/Vertex AI grounding."
    },
    {
      "provider": "Anthropic",
      "url": "https://support.anthropic.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler",
      "verified": "2026-10-04",
      "note": "Anthropic distinguishes ClaudeBot, Claude-SearchBot, and Claude-User. Claude-SearchBot is used for search-result quality; Claude-User is user-initiated retrieval."
    },
    {
      "provider": "Perplexity",
      "url": "https://docs.perplexity.ai/docs/resources/perplexity-crawlers",
      "verified": "2026-10-04",
      "note": "PerplexityBot surfaces and links websites in Perplexity search results and is not used to crawl content for AI foundation models. Perplexity-User is user-initiated retrieval and generally ignores robots.txt."
    }
  ],
  "crawlerPolicyRegistry": "/en/data/crawler-policy.json",
  "dataGovernanceRegistry": "/en/data/data-governance.json",
  "visibleContentChanged": false,
  "externalRetrievalBenchmark": "/en/data/external-retrieval-benchmark.json",
  "launchVerification": {
    "verifiedOn": "2026-10-04",
    "targetPublicLaunchDate": "2026-10-10",
    "robotsDirectiveChangesInThisRelease": false,
    "policyChoicesChanged": false,
    "openAISearchBotAllowed": true,
    "openAIGPTBotDisallowed": true,
    "googlebotAllowed": true,
    "googleExtendedPolicy": "inherited_public_default",
    "claudeSearchBotAllowed": true,
    "claudeBotPolicy": "inherited_public_default",
    "perplexityBotAllowed": true,
    "cdnWafVerifiedForNamedBots": false,
    "note": "robots.txt policy was rechecked against current official provider documentation. CDN/WAF acceptance is an external infrastructure layer and is not claimed verified."
  }
}
