{
  "schema_version": "avds-ui-contract-v1",
  "contract_id": "avds-ui-contract",
  "avds_source": {
    "site": "https://avds.digital/",
    "package": "avds4",
    "version": "4.6.0"
  },
  "adoption": {
    "assessment_version": "qazpolit-avds-adoption-v1",
    "assessed_against": "4.6.0",
    "updated_at": "2026-08-12",
    "scoring": "Equal-weight adopted gates divided by all gates, rounded to the nearest whole percent.",
    "package_import": {
      "contract": "/contracts/avds-package-import-v1.json",
      "package": "@sgeo/ui-kit",
      "package_version": "4.5.1",
      "integration_mode": "pinned-css-export-for-ssr"
    },
    "gates": [
      {
        "id": "versioned-consumer-contract",
        "status": "adopted",
        "evidence": "docs/contracts/avds-ui-contract-v1.json"
      },
      {
        "id": "semantic-token-layer",
        "status": "adopted",
        "evidence": "static/css/avds-foundation.css"
      },
      {
        "id": "light-dark-themes",
        "status": "adopted",
        "evidence": "Theme tokens and the public theme toggle cover both color schemes."
      },
      {
        "id": "responsive-regimes",
        "status": "adopted",
        "evidence": "The route gate covers 320, 390, 768, 1024 and 1440 pixel widths."
      },
      {
        "id": "accessible-interactions",
        "status": "adopted",
        "evidence": "Navigation, search, pickers, filters and live states have keyboard and semantic contracts."
      },
      {
        "id": "product-component-families",
        "status": "adopted",
        "evidence": "Public navigation, entity catalogue, evidence, graph review and knowledge workbench families are active."
      },
      {
        "id": "canonical-package-import",
        "status": "adopted",
        "evidence": "The SSR runtime loads the immutable @sgeo/ui-kit@4.5.1 variables.css export before the product adapter; /contracts/avds-package-import-v1.json pins its source commit and SHA-256."
      },
      {
        "id": "canonical-icon-system",
        "status": "adopted",
        "evidence": "All static inline icons use the AVDS 24px grid, current-color stroke, 12/16/48/72 size scale, 1.5/2 stroke scale, rounded geometry and decorative accessibility contract; tests/test_runtime_contracts.py enforces the inventory and a minimum coverage floor."
      }
    ]
  },
  "component_families": [
    {
      "id": "public-navigation",
      "components": [
        "site-header",
        "main-nav",
        "language-switcher",
        "theme-toggle",
        "nav-dropdown"
      ],
      "qazstack_relationship": "Public shell for QazStack-backed runtime and content routes."
    },
    {
      "id": "entity-catalog",
      "components": [
        "featured-card",
        "entity-card",
        "category-card",
        "recent-item"
      ],
      "qazstack_relationship": "Dense catalogue display for entity-store, media and evidence-backed profiles."
    },
    {
      "id": "evidence-status",
      "components": [
        "status-badge",
        "type-badge",
        "count-badge",
        "source-lead",
        "section-evidence",
        "profile-evidence-summary",
        "claim-card",
        "statement-evidence-links"
      ],
      "qazstack_relationship": "Visual language for evidence-state, publication-policy and source-normalization primitives."
    },
    {
      "id": "avds4-adopted-primitives",
      "components": [
        "avds-foundation-tokens",
        "avds-surface",
        "avds-provenance-card",
        "avds-trust-panel",
        "avds-source-badge",
        "tool-card",
        "tool-output",
        "content-backlog-card"
      ],
      "qazstack_relationship": "Shared AVDS4 surfaces and trust primitives adopted by Qazpolit without forking React-only implementation details."
    },
    {
      "id": "graph-review",
      "components": [
        "graph-review-toggle",
        "graph-research-notice",
        "graph-review-backlog",
        "graph-review-backlog-metric",
        "graph-review-backlog-source-lead"
      ],
      "qazstack_relationship": "Reviewable human queue around graph-analytics and fail-closed publication-policy."
    },
    {
      "id": "knowledge-workbench",
      "components": [
        "graph-path-workbench",
        "graph-insights",
        "timeline",
        "monitoring-filters",
        "profile-compare"
      ],
      "qazstack_relationship": "Operator-facing analytical controls for graph, temporal provenance, media monitoring and export primitives."
    },
    {
      "id": "qazpolit-exported-primitives",
      "components": [
        "EvidenceStateBadge",
        "DossierSummaryCard",
        "EntityGraphPathCard",
        "MediaMentionWorkbench",
        "GeoReviewPanel",
        "ResearchBundleRail"
      ],
      "qazstack_relationship": "Qazpolit-originated knowledge-base primitives extracted back to AVDS for other evidence, graph, monitoring and geo-review consumers."
    }
  ],
  "do_not_duplicate": [
    "Do not fork AVDS4 tokens into page-specific colors without updating static/css/avds-foundation.css.",
    "Do not publish unreviewed graph relationships as evidence-backed UI states.",
    "Do not move Qazpolit editorial taxonomy into AVDS4 component names.",
    "Do not expose collector credentials or private source payloads through visual components."
  ],
  "qazstack_behavior_sources": [
    "publication-policy",
    "evidence-state",
    "graph-analytics",
    "graph-path",
    "source-normalization",
    "request-observability",
    "mention-candidate-contract"
  ]
}
