{
  "schemaVersion": "collect-avds-system-adoption-v2",
  "consumer": "https://collect.ceo",
  "syncedAt": "2026-08-22",
  "upstream": {
    "system": "AV Development System",
    "version": "4.7.0",
    "designCapabilityVersion": "4.7.0",
    "uiContractReportedPackageVersion": "4.5.1",
    "sourceSha": "79342b07b061938c14101a213d1dd0c7a412d689",
    "buildId": "79342b07b061",
    "builtAt": "2026-08-22T12:43:37.047Z",
    "releaseUrl": "https://avds.digital/release.json",
    "contractUrl": "https://avds.digital/.well-known/avds-ui-contract.json",
    "releaseJsonSha256": "ede22bf56c6ccfc06654265edffcb73b89af7b0452d971bb3dd6ad0244e5183e",
    "uiContractSha256": "c733eb7faaccd5d638d1b1a578e7028a647a149cb372e5652c6b655596fe90d6",
    "artifactDigest": "c770ea8a7a9d21a5af4fc92d0dc274fb9a3d6f434ba4e8e523d947a6eefac7a9",
    "artifactFileCount": 872
  },
  "scorePolicy": {
    "model": "equal-category-average",
    "categoryCount": 10,
    "checkScoring": "pass=1, gap=0; no partial credit",
    "applicability": "not-applicable checks remain public but are excluded from category denominators",
    "rounding": "nearest integer per category, then nearest integer for the equal-weight average",
    "boundary": "The aggregate is consumer contract maturity. Route coverage remains a separate value and cannot substitute for the aggregate."
  },
  "summary": {
    "overallCoveragePercent": 100,
    "routeCoveragePercent": 100,
    "categoryCount": 10,
    "categories": [
      {
        "id": "routes",
        "label": "Маршруты",
        "passed": 30,
        "total": 30,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "tokens-themes",
        "label": "Токены и темы",
        "passed": 16,
        "total": 16,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "components",
        "label": "Компоненты",
        "passed": 7,
        "total": 7,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "compositions",
        "label": "Композиции",
        "passed": 10,
        "total": 10,
        "notApplicable": 1,
        "coveragePercent": 100
      },
      {
        "id": "states",
        "label": "Состояния",
        "passed": 13,
        "total": 13,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "responsive",
        "label": "Адаптивность",
        "passed": 13,
        "total": 13,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "accessibility",
        "label": "Доступность",
        "passed": 9,
        "total": 9,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "localization",
        "label": "Локализация",
        "passed": 7,
        "total": 7,
        "notApplicable": 0,
        "coveragePercent": 100
      },
      {
        "id": "data-visualization",
        "label": "Визуализация данных",
        "passed": 9,
        "total": 9,
        "notApplicable": 1,
        "coveragePercent": 100
      },
      {
        "id": "version-discipline",
        "label": "Версионная дисциплина",
        "passed": 15,
        "total": 15,
        "notApplicable": 0,
        "coveragePercent": 100
      }
    ]
  },
  "connectedFiles": [
    {
      "file": "client/src/components/avds4-primitives.tsx",
      "sha256": "468c6a8b004cc902d0ae1b5446fc9cbd9758808648a0d3aa8d9bcc9fc36d0a32"
    },
    {
      "file": "client/src/components/avds4-states.tsx",
      "sha256": "56da74992e640e941a6003cd1f7459571ca4497b5eb4ff8ff6949a1ccdd579f2"
    },
    {
      "file": "client/src/components/avds4-compositions.tsx",
      "sha256": "acf98cd81e23e2d160af2dc0ae2261bcc46b9758c289c2192d46a63ee44e9e24"
    },
    {
      "file": "client/src/lib/avds-contract.ts",
      "sha256": "a764beea8286309a1ae3b55db06e3ec70e40baf6af426e13a0884a6240ea3aed"
    },
    {
      "file": "client/src/lib/avds-theme-names.ts",
      "sha256": "c45baa8df1d4a1f0dfb42f2716ef1e2f73f34c4d28a2be711a15946d91e575f7"
    },
    {
      "file": "client/src/index.css",
      "sha256": "0ab53c0fee320bdc3b4a92293256af434fed32197403296b29e8d79fbf0a014a"
    },
    {
      "file": "client/public/avds-contract.css",
      "sha256": "b402c8dc22c0afc8cd7c70eec0a5d92ed062def36c9a93147f9576f2d361f8e5"
    },
    {
      "file": "client/public/avds-themes.css",
      "sha256": "6068df6440b5edea2a93d71f2a30c8c48181bedd59f21d5dc07bb9bd30fb8617"
    },
    {
      "file": "client/src/components/theme-provider.tsx",
      "sha256": "2cefe85613eeef1cd04b10e3dc986131e9189d3b0480338330d0b8c40ac25220"
    },
    {
      "file": "client/src/App.tsx",
      "sha256": "db0e3c2636fb2bce17dd0dc93fab52dab4307299d461067805ce645b47bb5747"
    },
    {
      "file": "client/src/components/error-boundary.tsx",
      "sha256": "3ab024605bae26f303b6d355d5a91df38ac869df0db9b8c0e2ed730e7fea4b84"
    },
    {
      "file": "client/src/components/logo.tsx",
      "sha256": "df55873394f416bcf2efc2f1cfb67747f76ffd28c95a53b6d8d17e271d7d01a5"
    },
    {
      "file": "client/src/pages/dashboard.tsx",
      "sha256": "5a1afe6f6c663a770b2f9bcc8055ab08d9b6d8ce1e44e98d3febaf113ccbf3f5"
    },
    {
      "file": "client/src/pages/collection-detail.tsx",
      "sha256": "cd2a5c53d4aadb0df6615f3cf087a4e0190f10e63d8d727a8a189aa409d46575"
    },
    {
      "file": "tailwind.config.ts",
      "sha256": "5376a87da1283ad21909f17702383c528d27bf4095b7f0dbbe379e398b34b399"
    },
    {
      "file": "client/src/app-router.tsx",
      "sha256": "d5f084f5d72cc88952e5e16c9512134c02a303b330735aa17f84227169ef2b42"
    },
    {
      "file": "server/http-app.ts",
      "sha256": "6ba8933c1043925fd3c210f32a2567f1df3b8fbfff73a640c272b5794c116e00"
    },
    {
      "file": "playwright.config.ts",
      "sha256": "e84ea95e03b0f28870f0f831f58743caaeea5e78c3a1b2bbb2cf56c65623bfcc"
    },
    {
      "file": "visual-tests/avds-accessibility.spec.ts",
      "sha256": "f836ef804a1cc0f6c8f91149c3eb4884053e62822bb2e5287ec3949a262cd16e"
    },
    {
      "file": "visual-tests/avds-accessibility.spec.ts-snapshots/avds-public-shell-desktop-1440-darwin.png",
      "sha256": "18e70e3d4e578b6d278256b673a25244f24616a7f6a94ea16ac41e4e08743580"
    },
    {
      "file": "script/check-avds-icon-registry.ts",
      "sha256": "7724354a6af39a8e0a50cf6c6df48c2326e305216112e27d0a4c92ded422b42c"
    },
    {
      "file": "config/avds-icon-registry.json",
      "sha256": "51b496684c8d12a097d2b79b9bf0ca91a7949b697f08d47aa0ad7aa7f003b9d6"
    },
    {
      "file": "config/avds-style-registry.json",
      "sha256": "2becb2362f5a7c674859389ebbc2a68deaecf909b79e01cd9c1b31f807bac795"
    },
    {
      "file": "script/check-avds-style-registry.ts",
      "sha256": "f22d28ed6ce3fd6634457aacca33ffb0872a7403c17b0049ba2d1abbae620ea2"
    },
    {
      "file": "client/public/fonts/Onest-wght.ttf",
      "sha256": "966c5c29b4755da84b6854d5c21dd4eaa2420225d0e9874de602de176d4a9f31"
    },
    {
      "file": "client/public/fonts/JetBrainsMono-wght.ttf",
      "sha256": "48715a42ec242c21e9f02692891e147d022299a52e48d5e413e1a942193ffeda"
    },
    {
      "file": "client/public/licenses/Onest-OFL.txt",
      "sha256": "071195d8806e226faeee60259c28ca67b458227af5195a73f5cfcab06e3003bc"
    },
    {
      "file": "client/public/licenses/JetBrainsMono-OFL.txt",
      "sha256": "b2fe5e8987594e9ffd1d2ca52a2f5d73eb8335243893c5d6254b5ad69269591d"
    },
    {
      "file": "docs/avds4-system-contract.md",
      "sha256": "b9dd8b95e8554624dc890c502418c3be0dd3ab4a41489ba3a4632579178d93e8"
    },
    {
      "file": "docs/route-state-ledger-2026-08-07.md",
      "sha256": "4ce95d52ccb8e4f3645818929877d517fb99f6bc600140317610741a97ff5390"
    },
    {
      "file": "config/avds-system-adoption.json",
      "sha256": "6ea424b1896f7b5e0906153dd32f35a8f7c7c9421b7db7072f2b0656e7bf23b3"
    }
  ],
  "localDeviations": [
    {
      "id": "local-react-adapter",
      "state": "accepted",
      "detail": "Collect uses product-owned React adapters and AVDS semantics; it does not import @sgeo/ui-kit directly."
    },
    {
      "id": "collect-brand-palette",
      "state": "accepted",
      "detail": "Brand colours remain Collect-owned while semantic roles and interaction geometry follow AVDS."
    },
    {
      "id": "dual-icon-libraries",
      "state": "accepted",
      "detail": "Lucide and Phosphor versions, licenses, default geometry and every currently imported name are pinned in the checked icon registry."
    },
    {
      "id": "theme-subset",
      "state": "accepted",
      "detail": "Light, dark, institutional, editorial, data, map and print themes share the semantic token API; named themes are delivered by the lazy AVDS theme pack."
    },
    {
      "id": "upstream-ui-contract-version",
      "state": "unverified",
      "owner": "qdev frontend",
      "reviewBy": "2026-09-23",
      "detail": "AVDS release 4.7.0 at 79342b07b061938c14101a213d1dd0c7a412d689 publishes a UI exchange contract whose source_package.version is 4.5.1. Collect pins the release SHA, records both layers without equating them, and requires upstream reconciliation before this exception can close."
    },
    {
      "id": "local-data-visualization",
      "state": "accepted",
      "detail": "Dashboard graphics use product-owned AVDS adapters with declared scales, legends, source and methodology, missing-value treatment, period comparison and an accessible table alternative. The exact upstream source API remains separately unverified."
    },
    {
      "id": "qz-energy-scope",
      "state": "not-applicable",
      "detail": "qz.energy is a separate AVDS consumer and is not represented as a Collect local deviation."
    }
  ],
  "fontsAndIcons": {
    "fonts": [
      {
        "family": "Onest",
        "weights": [
          400,
          500,
          600,
          700
        ],
        "role": "interface and content",
        "delivery": "self-hosted variable TTF",
        "localFiles": true,
        "licenseReceipt": true,
        "license": "OFL-1.1",
        "fontFile": "/fonts/Onest-wght.ttf",
        "licenseFile": "/licenses/Onest-OFL.txt"
      },
      {
        "family": "JetBrains Mono",
        "weights": [
          400,
          500
        ],
        "role": "identifiers and machine-readable values",
        "delivery": "self-hosted variable TTF",
        "localFiles": true,
        "licenseReceipt": true,
        "license": "OFL-1.1",
        "fontFile": "/fonts/JetBrainsMono-wght.ttf",
        "licenseFile": "/licenses/JetBrainsMono-OFL.txt"
      }
    ],
    "icons": [
      {
        "library": "lucide-react",
        "version": "0.453.0",
        "license": "ISC",
        "defaultSizePx": 16,
        "strokeRule": "library default; semantic labels remain product-owned"
      },
      {
        "library": "@phosphor-icons/react",
        "version": "2.1.10",
        "license": "MIT",
        "defaultSizePx": 16,
        "weightRule": "regular or duotone where explicitly selected"
      }
    ]
  },
  "categories": [
    {
      "id": "routes",
      "label": "Маршруты",
      "passed": 30,
      "total": 30,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "route-account-settings",
          "label": "account-settings",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/account-settings.tsx"
            }
          ]
        },
        {
          "id": "route-admin",
          "label": "admin",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/admin.tsx"
            }
          ]
        },
        {
          "id": "route-archive",
          "label": "archive",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/archive.tsx"
            }
          ]
        },
        {
          "id": "route-award-reference",
          "label": "award-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/award-reference.tsx"
            }
          ]
        },
        {
          "id": "route-banknote-reference",
          "label": "banknote-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/banknote-reference.tsx"
            }
          ]
        },
        {
          "id": "route-catalog",
          "label": "catalog",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/catalog.tsx"
            }
          ]
        },
        {
          "id": "route-coin-reference",
          "label": "coin-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/coin-reference.tsx"
            }
          ]
        },
        {
          "id": "route-collection-admin",
          "label": "collection-admin",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/collection-admin.tsx"
            }
          ]
        },
        {
          "id": "route-collection-catalog",
          "label": "collection-catalog",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/collection-catalog.tsx"
            }
          ]
        },
        {
          "id": "route-collection-detail",
          "label": "collection-detail",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/collection-detail.tsx"
            }
          ]
        },
        {
          "id": "route-dashboard",
          "label": "dashboard",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx"
            }
          ]
        },
        {
          "id": "route-generic-collection",
          "label": "generic-collection",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/generic-collection.tsx"
            }
          ]
        },
        {
          "id": "route-home",
          "label": "home",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/home.tsx"
            }
          ]
        },
        {
          "id": "route-inventory",
          "label": "inventory",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/inventory.tsx"
            }
          ]
        },
        {
          "id": "route-item-detail",
          "label": "item-detail",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/item-detail.tsx"
            }
          ]
        },
        {
          "id": "route-knife-reference",
          "label": "knife-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/knife-reference.tsx"
            }
          ]
        },
        {
          "id": "route-lego-reference",
          "label": "lego-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/lego-reference.tsx"
            }
          ]
        },
        {
          "id": "route-my-collections",
          "label": "my-collections",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/my-collections.tsx"
            }
          ]
        },
        {
          "id": "route-not-found",
          "label": "not-found",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/not-found.tsx"
            }
          ]
        },
        {
          "id": "route-public-collection",
          "label": "public-collection",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/public-collection.tsx"
            }
          ]
        },
        {
          "id": "route-public-item",
          "label": "public-item",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/public-item.tsx"
            }
          ]
        },
        {
          "id": "route-public-profile",
          "label": "public-profile",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/public-profile.tsx"
            }
          ]
        },
        {
          "id": "route-reminders",
          "label": "reminders",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/reminders.tsx"
            }
          ]
        },
        {
          "id": "route-review-queue",
          "label": "review-queue",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/review-queue.tsx"
            }
          ]
        },
        {
          "id": "route-stamp-reference",
          "label": "stamp-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/stamp-reference.tsx"
            }
          ]
        },
        {
          "id": "route-storage",
          "label": "storage",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/storage.tsx"
            }
          ]
        },
        {
          "id": "route-system-admin",
          "label": "system-admin",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/system-admin.tsx"
            }
          ]
        },
        {
          "id": "route-table-view",
          "label": "table-view",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/table-view.tsx"
            }
          ]
        },
        {
          "id": "route-watch-reference",
          "label": "watch-reference",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/watch-reference.tsx"
            }
          ]
        },
        {
          "id": "route-wishlist",
          "label": "wishlist",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/wishlist.tsx"
            }
          ]
        }
      ]
    },
    {
      "id": "tokens-themes",
      "label": "Токены и темы",
      "passed": 16,
      "total": 16,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "semantic-colours",
          "label": "Цвета и семантические роли",
          "status": "pass",
          "evidence": [
            {
              "file": "tailwind.config.ts",
              "patterns": [
                "background: \"hsl(var(--background)",
                "status:"
              ]
            }
          ]
        },
        {
          "id": "typography-tokens",
          "label": "Типографика",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/index.css",
              "patterns": [
                "--font-sans",
                "--font-mono"
              ]
            }
          ]
        },
        {
          "id": "spacing-tokens",
          "label": "Отступы",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-contract.css",
              "patterns": [
                "--avds-space-1",
                "--avds-space-12",
                "--avds-component-padding"
              ]
            }
          ]
        },
        {
          "id": "radius-tokens",
          "label": "Радиусы",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/index.css",
              "patterns": [
                "--avds-radius-surface",
                "--avds-radius-control",
                "--avds-radius-pill"
              ]
            }
          ]
        },
        {
          "id": "shadow-tokens",
          "label": "Тени",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/index.css",
              "patterns": [
                "--shadow-xs",
                "--shadow-xl"
              ]
            }
          ]
        },
        {
          "id": "element-size-tokens",
          "label": "Размеры элементов",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/index.css",
              "patterns": [
                "--avds-touch-target"
              ]
            }
          ]
        },
        {
          "id": "motion-tokens",
          "label": "Анимация",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-contract.css",
              "patterns": [
                "--avds-motion-fast",
                "--avds-ease-standard",
                "transition:border-color var(--avds-motion-standard)"
              ]
            }
          ]
        },
        {
          "id": "z-index-tokens",
          "label": "z-index",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-contract.css",
              "patterns": [
                "--avds-z-base",
                "--avds-z-skip-link",
                "--avds-z-toast"
              ]
            },
            {
              "file": "client/src/App.tsx",
              "patterns": [
                "avds-offline-notice"
              ]
            }
          ]
        },
        {
          "id": "breakpoint-tokens",
          "label": "Breakpoints",
          "status": "pass",
          "evidence": [
            {
              "file": "tailwind.config.ts",
              "patterns": [
                "'md': '768px'",
                "'lg': '1024px'",
                "'2xl': '1536px'"
              ]
            }
          ]
        },
        {
          "id": "container-grid-tokens",
          "label": "Контейнеры и сетка",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-contract.css",
              "patterns": [
                "--avds-container-reading",
                "--avds-container-wide",
                "--avds-grid-detail",
                "grid-template-columns:var(--avds-grid-detail)"
              ]
            }
          ]
        },
        {
          "id": "institutional-theme",
          "label": "Institutional theme",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-themes.css",
              "patterns": [
                "html[data-avds-theme=\"institutional\"]"
              ]
            },
            {
              "file": "client/src/lib/avds-theme-names.ts",
              "patterns": [
                "\"institutional\""
              ]
            }
          ]
        },
        {
          "id": "editorial-theme",
          "label": "Editorial theme",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-themes.css",
              "patterns": [
                "html[data-avds-theme=\"editorial\"]"
              ]
            },
            {
              "file": "client/src/lib/avds-theme-names.ts",
              "patterns": [
                "\"editorial\""
              ]
            }
          ]
        },
        {
          "id": "data-theme",
          "label": "Data/analytics theme",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-themes.css",
              "patterns": [
                "html[data-avds-theme=\"data\"]"
              ]
            },
            {
              "file": "client/src/lib/avds-theme-names.ts",
              "patterns": [
                "\"data\""
              ]
            }
          ]
        },
        {
          "id": "map-theme",
          "label": "Map theme",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-themes.css",
              "patterns": [
                "html[data-avds-theme=\"map\"]"
              ]
            },
            {
              "file": "client/src/lib/avds-theme-names.ts",
              "patterns": [
                "\"map\""
              ]
            }
          ]
        },
        {
          "id": "dark-theme",
          "label": "Dark theme",
          "status": "pass",
          "evidence": [
            {
              "file": "tailwind.config.ts",
              "patterns": [
                "darkMode: [\"class\"]"
              ]
            },
            {
              "file": "client/src/components/theme-provider.tsx"
            }
          ]
        },
        {
          "id": "print-theme",
          "label": "Print theme",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-themes.css",
              "patterns": [
                "html[data-avds-theme=\"print\"]",
                "@media print"
              ]
            },
            {
              "file": "client/src/lib/avds-theme-names.ts",
              "patterns": [
                "\"print\""
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "components",
      "label": "Компоненты",
      "passed": 7,
      "total": 7,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "component-html",
          "label": "HTML-структура",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "data-avds-component",
                "<header",
                "<section"
              ]
            }
          ]
        },
        {
          "id": "component-api",
          "label": "API классов и атрибутов",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "className?: string",
                "React.HTMLAttributes"
              ]
            }
          ]
        },
        {
          "id": "component-sizes",
          "label": "Размеры",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/avds-contract.ts",
              "patterns": [
                "AVDS_DENSITIES",
                "\"compact\"",
                "\"comfortable\""
              ]
            },
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "density?: AVDSDensity",
                "data-avds-size"
              ]
            }
          ]
        },
        {
          "id": "component-variants",
          "label": "Варианты",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/avds-contract.ts",
              "patterns": [
                "AVDS_SURFACE_VARIANTS",
                "\"raised\"",
                "\"outlined\""
              ]
            },
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "variant?: AVDSSurfaceVariant",
                "data-avds-variant"
              ]
            }
          ]
        },
        {
          "id": "component-states",
          "label": "Состояния",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "data-state=\"loading\"",
                "data-state=\"empty\"",
                "data-state=\"error\""
              ]
            }
          ]
        },
        {
          "id": "component-keyboard",
          "label": "Клавиатурное управление",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "ArrowLeft",
                "ArrowRight",
                "Home",
                "End"
              ]
            }
          ]
        },
        {
          "id": "component-nesting",
          "label": "Правила вложенности",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/avds-contract.ts",
              "patterns": [
                "allowedChildren",
                "Never place an interactive surface",
                "Only tab buttons"
              ]
            },
            {
              "file": "docs/avds4-system-contract.md",
              "patterns": [
                "No interactive component may contain another interactive component"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "compositions",
      "label": "Композиции",
      "passed": 10,
      "total": 10,
      "notApplicable": 1,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "shell-header-footer",
          "label": "Шапка и футер",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/App.tsx",
              "patterns": [
                "<header",
                "<AVDSCoverageFooter"
              ]
            }
          ]
        },
        {
          "id": "object-passport",
          "label": "Паспорт объекта",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-compositions.tsx",
              "patterns": [
                "AVDS4ObjectPassport",
                "data-avds-composition=\"object-passport\""
              ]
            },
            {
              "file": "client/src/pages/collection-detail.tsx",
              "patterns": [
                "<AVDS4ObjectPassport"
              ]
            }
          ]
        },
        {
          "id": "catalog-composition",
          "label": "Каталог",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/catalog.tsx",
              "patterns": [
                "AVDS4TabBar",
                "data-state"
              ]
            }
          ]
        },
        {
          "id": "dashboard-composition",
          "label": "Аналитическая панель",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "AVDS4MetricStrip",
                "dashboard-chart-grid"
              ]
            }
          ]
        },
        {
          "id": "table-composition",
          "label": "Таблица",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/table-view.tsx",
              "patterns": [
                "AVDS4DataTable"
              ]
            }
          ]
        },
        {
          "id": "filter-composition",
          "label": "Фильтры",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/collection-catalog.tsx",
              "patterns": [
                "avds4-filter-sheet",
                "attentionOnly"
              ]
            }
          ]
        },
        {
          "id": "map-list-composition",
          "label": "Карта со списком",
          "status": "not-applicable",
          "reason": "Collect has no geographic workflow; a map/list composition would add an unrelated product feature."
        },
        {
          "id": "chart-source-composition",
          "label": "График с источником",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-compositions.tsx",
              "patterns": [
                "AVDS4DataFigure",
                "<figcaption",
                "sourceHref"
              ]
            },
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "source={chartCopy.source}",
                "AVDS4DataFigure"
              ]
            }
          ]
        },
        {
          "id": "publication-composition",
          "label": "Публикация",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/public-collection.tsx",
              "patterns": [
                "AVDS4PublicShowcaseHeader",
                "public-item-grid"
              ]
            }
          ]
        },
        {
          "id": "evidence-card-composition",
          "label": "Карточка доказательства",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "AVDS4EvidencePanel"
              ]
            }
          ]
        },
        {
          "id": "methodology-provenance-composition",
          "label": "Методология и происхождение данных",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-compositions.tsx",
              "patterns": [
                "AVDS4MethodologyPanel",
                "data-avds-composition=\"methodology-provenance\""
              ]
            },
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "<AVDS4MethodologyPanel",
                "data-testid=\"dashboard-methodology\""
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "states",
      "label": "Состояния",
      "passed": 13,
      "total": 13,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "state-hover",
          "label": "Hover",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "hover:bg-muted"
              ]
            }
          ]
        },
        {
          "id": "state-focus",
          "label": "Focus",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "focus-visible"
              ]
            }
          ]
        },
        {
          "id": "state-active",
          "label": "Active",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/ui/button.tsx",
              "patterns": [
                "active:"
              ]
            }
          ]
        },
        {
          "id": "state-selected",
          "label": "Selected",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "aria-selected"
              ]
            }
          ]
        },
        {
          "id": "state-disabled",
          "label": "Disabled",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/ui/button.tsx",
              "patterns": [
                "disabled:"
              ]
            }
          ]
        },
        {
          "id": "state-loading",
          "label": "Loading",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "AVDS4LoadingState"
              ]
            }
          ]
        },
        {
          "id": "state-skeleton",
          "label": "Skeleton",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/ui/skeleton.tsx"
            }
          ]
        },
        {
          "id": "state-empty",
          "label": "Empty",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "AVDS4EmptyState"
              ]
            }
          ]
        },
        {
          "id": "state-error",
          "label": "Error",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "AVDS4ErrorState"
              ]
            }
          ]
        },
        {
          "id": "state-degraded",
          "label": "Degraded",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-states.tsx",
              "patterns": [
                "AVDS4DegradedState",
                "state=\"degraded\""
              ]
            },
            {
              "file": "client/src/components/error-boundary.tsx",
              "patterns": [
                "<AVDS4DegradedState"
              ]
            }
          ]
        },
        {
          "id": "state-success",
          "label": "Success",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/system-admin.tsx",
              "patterns": [
                "outcome === \"failure\"",
                "bg-emerald-500/10"
              ]
            }
          ]
        },
        {
          "id": "state-offline",
          "label": "Offline",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-states.tsx",
              "patterns": [
                "AVDS4OfflineState",
                "state=\"offline\""
              ]
            },
            {
              "file": "client/src/App.tsx",
              "patterns": [
                "window.addEventListener(\"offline\"",
                "offline-notice"
              ]
            },
            {
              "file": "visual-tests/avds-accessibility.spec.ts",
              "patterns": [
                "context.setOffline",
                "offline-notice"
              ]
            }
          ]
        },
        {
          "id": "state-stale",
          "label": "Stale data",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "staleValuation",
                "staleNotice"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "responsive",
      "label": "Адаптивность",
      "passed": 13,
      "total": 13,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "viewport-320",
          "label": "320",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "mobile-320"
              ]
            }
          ]
        },
        {
          "id": "viewport-390",
          "label": "390",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "mobile-390"
              ]
            }
          ]
        },
        {
          "id": "viewport-768",
          "label": "768",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "tablet-768"
              ]
            }
          ]
        },
        {
          "id": "viewport-820",
          "label": "820",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "tablet-820"
              ]
            }
          ]
        },
        {
          "id": "viewport-1024",
          "label": "1024",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "tablet-1024"
              ]
            }
          ]
        },
        {
          "id": "viewport-1440",
          "label": "1440",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "desktop-1440"
              ]
            }
          ]
        },
        {
          "id": "viewport-1920",
          "label": "1920",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "ultra-wide-1920"
              ]
            }
          ]
        },
        {
          "id": "viewport-ultra",
          "label": "Ultra-wide",
          "status": "pass",
          "evidence": [
            {
              "file": "playwright.config.ts",
              "patterns": [
                "maximum-2560"
              ]
            }
          ]
        },
        {
          "id": "responsive-recomposition",
          "label": "Порядок перекомпоновки",
          "status": "pass",
          "evidence": [
            {
              "file": "tests/avds4-mobile-contract.test.ts",
              "patterns": [
                "ultra-wide dashboard uses three functional zones"
              ]
            }
          ]
        },
        {
          "id": "responsive-density",
          "label": "Допустимая плотность",
          "status": "pass",
          "evidence": [
            {
              "file": "tests/avds4-mobile-contract.test.ts",
              "patterns": [
                "detail and editor surfaces inherit AVDS4 tablet touch targets"
              ]
            }
          ]
        },
        {
          "id": "responsive-rails",
          "label": "Rails и дополнительные панели",
          "status": "pass",
          "evidence": [
            {
              "file": "tests/avds4-mobile-contract.test.ts",
              "patterns": [
                "catalog context rail stays out of the mobile content flow"
              ]
            }
          ]
        },
        {
          "id": "responsive-line-length",
          "label": "Ограничение длины строки",
          "status": "pass",
          "evidence": [
            {
              "file": "tests/avds4-mobile-contract.test.ts",
              "patterns": [
                "wide utility pages use the available canvas"
              ]
            }
          ]
        },
        {
          "id": "responsive-empty-space",
          "label": "Устранение необоснованных пустот",
          "status": "pass",
          "evidence": [
            {
              "file": "visual-tests/workspace.spec.ts",
              "patterns": [
                "expectMobileContentCoverage",
                "expectStableViewport"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "accessibility",
      "label": "Доступность",
      "passed": 9,
      "total": 9,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "a11y-contrast",
          "label": "Контраст",
          "status": "pass",
          "evidence": [
            {
              "file": "visual-tests/avds-accessibility.spec.ts",
              "patterns": [
                "AxeBuilder",
                "wcag2aa",
                "accessibility.violations"
              ]
            }
          ]
        },
        {
          "id": "a11y-focus",
          "label": "Focus",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/App.tsx",
              "patterns": [
                "focus:not-sr-only"
              ]
            }
          ]
        },
        {
          "id": "a11y-tab-order",
          "label": "Tab order",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "tabIndex={selected ? 0 : -1}"
              ]
            }
          ]
        },
        {
          "id": "a11y-landmarks",
          "label": "Landmarks",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/App.tsx",
              "patterns": [
                "<header",
                "<main"
              ]
            }
          ]
        },
        {
          "id": "a11y-aria",
          "label": "ARIA",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "aria-live",
                "aria-selected"
              ]
            }
          ]
        },
        {
          "id": "a11y-screen-reader",
          "label": "Screen reader",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/App.tsx",
              "patterns": [
                "skipToContent",
                "aria-label"
              ]
            }
          ]
        },
        {
          "id": "a11y-reduced-motion",
          "label": "Reduced motion",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/index.css",
              "patterns": [
                "prefers-reduced-motion: reduce"
              ]
            }
          ]
        },
        {
          "id": "a11y-scaling",
          "label": "Масштабирование",
          "status": "pass",
          "evidence": [
            {
              "file": "visual-tests/avds-accessibility.spec.ts",
              "patterns": [
                "style.zoom = \"2\"",
                "expectNoHorizontalOverflow"
              ]
            }
          ]
        },
        {
          "id": "a11y-complex-keyboard",
          "label": "Сложные элементы с клавиатуры",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-primitives.tsx",
              "patterns": [
                "event.key === \"Home\"",
                "requestAnimationFrame"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "localization",
      "label": "Локализация",
      "passed": 7,
      "total": 7,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "content-terminology",
          "label": "Терминология",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/locale-copies.ts"
            }
          ]
        },
        {
          "id": "content-actions",
          "label": "Подписи действий",
          "status": "pass",
          "evidence": [
            {
              "file": "tests/locale-copy-contract.test.ts",
              "patterns": [
                "same interface contract"
              ]
            }
          ]
        },
        {
          "id": "content-number-date",
          "label": "Форматы чисел и дат",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/collector-operations-model.ts",
              "patterns": [
                "toLocaleString(language"
              ]
            },
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "formattedCurrencies"
              ]
            }
          ]
        },
        {
          "id": "content-units",
          "label": "Единицы измерения",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/locale-labels.ts"
            }
          ]
        },
        {
          "id": "content-locales",
          "label": "RU/KK/EN",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/locale-copies.ts",
              "patterns": [
                "{ ru, kk, en }"
              ]
            }
          ]
        },
        {
          "id": "content-wrap",
          "label": "Правила переноса",
          "status": "pass",
          "evidence": [
            {
              "file": "scripts/check-typography.mjs",
              "patterns": [
                "policy_version"
              ]
            }
          ]
        },
        {
          "id": "content-errors-empty",
          "label": "Ошибки и пустые состояния",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/lib/locale-copy-ru.ts",
              "patterns": [
                "empty",
                "error"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "data-visualization",
      "label": "Визуализация данных",
      "passed": 9,
      "total": 9,
      "notApplicable": 1,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "viz-palettes",
          "label": "Палитры",
          "status": "pass",
          "evidence": [
            {
              "file": "tailwind.config.ts",
              "patterns": [
                "chart:",
                "\"1\":",
                "\"5\":"
              ]
            }
          ]
        },
        {
          "id": "viz-scales",
          "label": "Шкалы",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "maxCount",
                "Math.max((count / maxCount)"
              ]
            }
          ]
        },
        {
          "id": "viz-legends",
          "label": "Легенды",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "OwnerRing",
                "ownerLabels"
              ]
            }
          ]
        },
        {
          "id": "viz-axes",
          "label": "Оси",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "aria-valuemax={max}",
                "aria-label={`${ariaLabel}: 0–${max}`}"
              ]
            }
          ]
        },
        {
          "id": "viz-units",
          "label": "Единицы измерения",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "formattedCurrencies"
              ]
            }
          ]
        },
        {
          "id": "viz-precision",
          "label": "Точность",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "Math.round((count / stats.total) * 100)"
              ]
            }
          ]
        },
        {
          "id": "viz-missing-values",
          "label": "Пропущенные и неполные значения",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "missingPhoto",
                "missingValue",
                "missingProvenance"
              ]
            }
          ]
        },
        {
          "id": "viz-period-comparison",
          "label": "Сравнение периодов",
          "status": "pass",
          "evidence": [
            {
              "file": "server/collection-stats-history-store.ts",
              "patterns": [
                "one immutable, aggregate-only snapshot per owner and UTC day",
                "compareCollectionStatsPeriods"
              ]
            },
            {
              "file": "server/routes.ts",
              "patterns": [
                "collectionStatsHistory.latestBefore",
                "periodComparison"
              ]
            },
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "dashboard-period-comparison",
                "periodComparison"
              ]
            },
            {
              "file": "tests/collection-stats-history.test.ts",
              "patterns": [
                "daily history keeps the first aggregate snapshot",
                "compares only compatible currency totals"
              ]
            }
          ]
        },
        {
          "id": "viz-maps",
          "label": "Карты",
          "status": "not-applicable",
          "reason": "Collect has no geographic dataset or map workflow; cartography is outside this consumer contract."
        },
        {
          "id": "viz-table-alternative",
          "label": "Табличные альтернативы",
          "status": "pass",
          "evidence": [
            {
              "file": "client/src/components/avds4-compositions.tsx",
              "patterns": [
                "AVDS4DataFigure",
                "<details",
                "<table"
              ]
            },
            {
              "file": "client/src/pages/dashboard.tsx",
              "patterns": [
                "tableLabel={chartCopy.table}"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": "version-discipline",
      "label": "Версионная дисциплина",
      "passed": 15,
      "total": 15,
      "notApplicable": 0,
      "coveragePercent": 100,
      "checks": [
        {
          "id": "version-exact",
          "label": "Точная версия",
          "status": "pass",
          "evidence": [
            {
              "file": "config/avds-system-adoption.json",
              "patterns": [
                "\"version\": \"4.7.0\""
              ]
            }
          ]
        },
        {
          "id": "version-sync-date",
          "label": "Дата синхронизации",
          "status": "pass",
          "evidence": [
            {
              "file": "config/avds-system-adoption.json",
              "patterns": [
                "\"syncedAt\": \"2026-08-22\""
              ]
            }
          ]
        },
        {
          "id": "version-release-id",
          "label": "Commit/release ID",
          "status": "pass",
          "evidence": [
            {
              "file": "config/avds-system-adoption.json",
              "patterns": [
                "79342b07b061938c14101a213d1dd0c7a412d689"
              ]
            }
          ]
        },
        {
          "id": "version-hashes",
          "label": "Хеши подключённых файлов",
          "status": "pass",
          "evidence": [
            {
              "file": "script/audit-avds-adoption.ts",
              "patterns": [
                "connectedFiles",
                "sha256"
              ]
            }
          ]
        },
        {
          "id": "version-deviations",
          "label": "Список локальных отклонений",
          "status": "pass",
          "evidence": [
            {
              "file": "config/avds-system-adoption.json",
              "patterns": [
                "localDeviations",
                "qz-energy-scope"
              ]
            }
          ]
        },
        {
          "id": "version-font-contract",
          "label": "Гарнитуры, начертания и применение",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-contract.css",
              "patterns": [
                "font-family:\"Onest\"",
                "font-weight:400 700",
                "font-family:\"JetBrains Mono\"",
                "font-weight:400 800"
              ]
            },
            {
              "file": "config/avds-system-adoption.json",
              "patterns": [
                "\"role\": \"interface and content\"",
                "\"role\": \"identifiers and machine-readable values\""
              ]
            }
          ]
        },
        {
          "id": "version-icon-registry",
          "label": "Полный набор и названия иконок",
          "status": "pass",
          "evidence": [
            {
              "file": "config/avds-icon-registry.json",
              "patterns": [
                "collect-avds-icon-registry-v1",
                "lucide-react",
                "@phosphor-icons/react",
                "\"symbols\""
              ]
            },
            {
              "file": "script/check-avds-icon-registry.ts",
              "patterns": [
                "icon registry drift",
                "sourceFiles(\"client/src\")"
              ]
            }
          ]
        },
        {
          "id": "version-local-assets-licenses",
          "label": "Локальные файлы и лицензии",
          "status": "pass",
          "evidence": [
            {
              "file": "client/public/avds-contract.css",
              "patterns": [
                "/fonts/Onest-wght.ttf",
                "/fonts/JetBrainsMono-wght.ttf"
              ]
            },
            {
              "file": "client/public/licenses/Onest-OFL.txt",
              "patterns": [
                "SIL OPEN FONT LICENSE"
              ]
            },
            {
              "file": "client/public/licenses/JetBrainsMono-OFL.txt",
              "patterns": [
                "SIL OPEN FONT LICENSE"
              ]
            }
          ]
        },
        {
          "id": "qa-reference-screenshots",
          "label": "Эталонные скриншоты",
          "status": "pass",
          "evidence": [
            {
              "file": "visual-tests/avds-accessibility.spec.ts",
              "patterns": [
                "toHaveScreenshot(\"avds-public-shell.png\""
              ]
            },
            {
              "file": "visual-tests/avds-accessibility.spec.ts-snapshots/avds-public-shell-desktop-1440-darwin.png"
            }
          ]
        },
        {
          "id": "qa-visual-regression",
          "label": "Визуальная регрессия",
          "status": "pass",
          "evidence": [
            {
              "file": "visual-tests/avds-accessibility.spec.ts",
              "patterns": [
                "toHaveScreenshot(\"avds-public-shell.png\""
              ]
            },
            {
              "file": "visual-tests/avds-accessibility.spec.ts-snapshots/avds-public-shell-desktop-1440-darwin.png"
            }
          ]
        },
        {
          "id": "qa-route-ledger",
          "label": "Route ledger",
          "status": "pass",
          "evidence": [
            {
              "file": "docs/route-state-ledger-2026-08-07.md",
              "patterns": [
                "route/state ledger"
              ]
            }
          ]
        },
        {
          "id": "qa-state-tests",
          "label": "Тесты состояний",
          "status": "pass",
          "evidence": [
            {
              "file": "tests/avds4-mobile-contract.test.ts",
              "patterns": [
                "empty state",
                "recovery states"
              ]
            }
          ]
        },
        {
          "id": "qa-accessibility-automation",
          "label": "Accessibility-проверки",
          "status": "pass",
          "evidence": [
            {
              "file": "visual-tests/avds-accessibility.spec.ts",
              "patterns": [
                "@axe-core/playwright",
                "AxeBuilder",
                "wcag21aa"
              ]
            },
            {
              "file": "package.json",
              "patterns": [
                "@axe-core/playwright",
                "\"test:visual\""
              ]
            }
          ]
        },
        {
          "id": "qa-untracked-style-ban",
          "label": "Запрет неучтённых локальных стилей",
          "status": "pass",
          "evidence": [
            {
              "file": "config/avds-style-registry.json",
              "patterns": [
                "collect-avds-style-registry-v1",
                "client/src/index.css",
                "client/public/avds-contract.css",
                "client/public/avds-themes.css"
              ]
            },
            {
              "file": "script/check-avds-style-registry.ts",
              "patterns": [
                "AVDS style registry drift",
                "STYLE_ROOTS",
                "consumerPattern"
              ]
            },
            {
              "file": "package.json",
              "patterns": [
                "avds:styles",
                "npm run avds:icons && npm run avds:styles"
              ]
            }
          ]
        },
        {
          "id": "qa-update-procedure",
          "label": "Процедура обновления AVDS",
          "status": "pass",
          "evidence": [
            {
              "file": "docs/avds-system-adoption.md",
              "patterns": [
                "Процедура обновления",
                "npm run avds:coverage"
              ]
            }
          ]
        }
      ]
    }
  ]
}
