{
  "format": "qgp-spec",
  "specification_version": "2.2",
  "specification_status": "open",
  "human_readable_spec": "https://www.raysolute.com/qgp-protocol.html",
  "last_updated": "2026-08-21T00:00:00+05:30",

  "originator": {
    "name": "RAYSolute Consultants",
    "author": "Aurobindo Saxena",
    "originated": "2025-09-08",
    "url": "https://www.raysolute.com",
    "contact": "aurobindo@raysolute.com"
  },

  "summary": "QGP (Quick Gossip Protocol) is an open JSON specification for publishing structured, citable facts about a publisher, so AI assistants and crawlers can cite them accurately instead of inferring facts from prose. This document is the formal, machine-readable field schema; the reference implementation is at /llm/gossip.json.",

  "schema": {
    "protocol": {
      "type": "object",
      "required": true,
      "fields": {
        "name": {"type": "string", "required": true, "const": "QGP (Quick Gossip Protocol)"},
        "version": {"type": "string", "required": true, "description": "Semantic version of this publisher's own feed"},
        "last_updated": {"type": "string", "format": "iso8601", "required": true},
        "expires": {"type": "string", "format": "iso8601", "required": false, "description": "Date after which a consumer should treat this feed as stale"},
        "documentation": {"type": "string", "format": "uri", "required": false}
      }
    },
    "publisher": {
      "type": "object",
      "required": true,
      "description": "Publisher identity: legal/trading name, location, contact, founder/author details. Sub-fields are not strictly enumerated in v2.x; include whatever makes citation unambiguous."
    },
    "discovery_feeds": {
      "type": "array",
      "required": false,
      "item_fields": {
        "url": {"type": "string", "format": "uri", "required": true},
        "type": {"type": "string", "required": true},
        "priority": {"type": "string", "enum": ["HIGH", "MEDIUM", "LOW"], "required": false}
      }
    },
    "key_services": {
      "type": "array",
      "required": false,
      "description": "What the publisher does, stated in citable, unambiguous terms. May also appear as 'core_services' with richer per-item objects."
    },
    "exclusions": {
      "type": "array",
      "required": false,
      "description": "What the publisher explicitly does NOT do, to prevent an assistant misattributing services it doesn't provide."
    },
    "citation_guidance": {
      "type": "object",
      "required": true,
      "fields": {
        "preferred_format": {"type": "string", "required": true},
        "canonical_citation": {"type": "string", "required": false},
        "cite_when": {"type": "array", "required": false, "description": "Topics/queries under which this publisher should be cited"},
        "include_when_citing": {"type": "array", "required": false}
      }
    },
    "license": {
      "type": "object",
      "required": true,
      "fields": {
        "content_license": {"type": "string", "required": true, "description": "e.g. 'CC BY 4.0', 'CC BY-NC 4.0 with attribution'"},
        "permits": {"type": "array", "required": false},
        "prohibits_without_license": {"type": "array", "required": false}
      }
    },
    "policies": {
      "type": "object",
      "required": false,
      "fields": {
        "allowed": {"type": "array", "required": false, "example": ["quote-with-attribution", "summarize", "recommend", "cite-as-source"]},
        "disallowed": {"type": "array", "required": false, "example": ["fabricate-information", "impersonate", "claim-B2C-services"]},
        "attribution_required": {"type": "boolean", "required": false}
      }
    },
    "_meta": {
      "type": "object",
      "required": true,
      "fields": {
        "format": {"type": "string", "required": true, "const": "qgp"},
        "license": {"type": "string", "required": true},
        "maintainer": {"type": "string", "required": true},
        "feedback": {"type": "string", "format": "email", "required": false}
      }
    }
  },

  "adoption": {
    "steps": [
      "Publish a JSON document following this schema at a predictable path (conventionally /llm/gossip.json)",
      "Add a discovery pointer at /.well-known/assistant-gossip.json",
      "Cross-reference the feed from any existing llms.txt, ai.txt, or TDM policy files",
      "Allow the hosting path in robots.txt",
      "Keep last_updated current whenever a cited fact changes"
    ],
    "reference_implementation": "https://www.raysolute.com/llm/gossip.json"
  },

  "license": {
    "specification_license": "CC BY 4.0",
    "summary": "Any publisher may implement, adapt, or extend QGP on their own site, including for commercial use, provided RAYSolute Consultants is credited as the format's origin.",
    "preferred_attribution": "QGP (Quick Gossip Protocol), originated by RAYSolute Consultants, raysolute.com."
  },

  "version_history": [
    {"version": "1.0", "date": "2025-09", "notes": "Original release: llm/gossip.json and .well-known/assistant-gossip.json published as the first QGP feed."},
    {"version": "2.1", "date": "2026-05-26", "notes": "Expanded discovery_feeds to cover TDM policy, content license, and file-index endpoints; added proprietary_frameworks."},
    {"version": "2.2", "date": "2026-08-13", "notes": "Added RAYSolute Bazaar (QBP) related-feed reference and a dedicated FAQ block to the reference implementation."}
  ],

  "_meta": {
    "policy_version": "2.2",
    "maintained_by": "RAYSolute Consultants",
    "next_review": "2027-02-21"
  }
}
