{
  "contract": "edpol-qazstack-knowledge-compatibility-v1",
  "schema_version": "2026-07-15",
  "updated": "2026-07-15",
  "status": "qualified-for-build-time-and-browser-port",
  "purpose": "Adopt deterministic knowledge and provenance primitives without moving article text, source collection, raw evidence, CMS state or publication side effects into Edpol.",
  "qazstack": {
    "profile": "knowledge-provenance",
    "version": "1.37.2",
    "release": "v1.37.2",
    "sourceRevision": "b401122feb0ab7fd7e4b1d84b9b6ea8ded20071b",
    "tagObject": "58a104a5e0f68007be9efc57c4b5852dd3031f1a",
    "modules": ["qazstack.source", "qazstack.evidence", "qazstack.temporal", "qazstack.databus"]
  },
  "adopted": [
    {
      "primitive": "canonical source URL and source classification",
      "qazstackExports": ["canonicalize_source_url", "publisher_from_url", "source_type_from_url"],
      "edpolSurface": "/source-check",
      "mode": "privacy-preserving browser port",
      "proof": "/qazstack-portable-fixtures.json"
    },
    {
      "primitive": "public evidence state",
      "qazstackExports": ["EvidenceState", "resolve_public_evidence_state"],
      "edpolSurface": "/source-check",
      "mode": "privacy-preserving browser port",
      "proof": "/qazstack-portable-fixtures.json"
    },
    {
      "primitive": "temporal event batch",
      "qazstackExports": ["TemporalEventBatch", "build_event_batch"],
      "edpolSurface": "/policy-history.json",
      "mode": "build-time generated public projection",
      "proof": "/policy-history.json"
    },
    {
      "primitive": "closed editorial quality gate",
      "qazstackExports": ["QualityGatePolicy", "evaluate_quality_gate"],
      "edpolSurface": "/casework",
      "mode": "project-aware browser port",
      "proof": "/qazstack-portable-fixtures.json"
    }
  ],
  "qualifiedNotAdopted": [
    {
      "primitive": "PrivacySafeEvidenceEnvelope",
      "reason": "Useful for future cross-service receipts, but Edpol currently receives only the narrower signed editorial webhook envelope."
    },
    {
      "primitive": "EntityMentionCandidate",
      "reason": "Entity extraction belongs in QazPipe or QazCompute and should reach Edpol only as approved metadata."
    },
    {
      "primitive": "QualityScorecard",
      "reason": "Useful for pipeline observability, but not a publication verdict and not yet backed by Edpol metrics."
    }
  ],
  "rejected": [
    "QazStack UI components or report templates",
    "database adapters and in-process EventBus",
    "model execution or LLM scoring in publication gates",
    "source fetching, article storage or raw evidence storage",
    "direct browser import of the Python package"
  ],
  "boundaries": {
    "edpol": ["policy", "project gates", "public provenance projections", "portable deterministic tools"],
    "qazpipe": ["collection", "parsing", "deduplication", "freshness", "capture manifest"],
    "qazlake": ["raw evidence", "immutable artifacts", "retention", "access control"],
    "cms": ["article and case state", "human approvals", "publication side effects"],
    "qazstack": ["canonical typed algorithms", "schemas", "golden fixture generation"]
  }
}
