{
  "name": "Шкала машиночитаемости сайта AI-D2C",
  "version": "1.1",
  "updated": "2026-10-02",
  "source": "https://agentreadyscan.ru/levels.json",
  "check_api": "https://agentreadyscan.ru/api/v1/check?url={url}",
  "note": "Уровень присваивается по внешним признакам: сайт запрашивается по HTTP без выполнения JavaScript. Каждый уровень включает требования предыдущих. Требования зависят от группы сайта: товары, услуги, знания (types); блок levels[].requires описывает группу «Товары» и оставлен для совместимости с версией 1.0.",
  "scale_note": "Уровень отражает возможности сайта для агента, а не качество сайта. Проверка параллельно выдаёт замечания по 42 пунктам чек-листа: они не понижают уровень, потому что не мешают агенту выполнить действие. Сайт может иметь уровень 4 и при этом незакрытые замечания.",
  "levels": [
    {
      "level": 0,
      "name": "brochure",
      "name_ru": "Брошюра",
      "requires": []
    },
    {
      "level": 1,
      "name": "markup",
      "name_ru": "Разметка",
      "requires": [
        "s.status",
        "s.noindex",
        "s.waf",
        "f.robots_ai",
        "f.sitemap",
        "j.present",
        "j.org|j.product"
      ]
    },
    {
      "level": 2,
      "name": "single-source",
      "name_ru": "Источник правды",
      "requires": [
        "j.product",
        "j.offer",
        "j.ids",
        "f.llms",
        "f.sitemap:real-lastmod",
        "s.soft404"
      ]
    },
    {
      "level": 3,
      "name": "compute",
      "name_ru": "Вычисление",
      "requires": [
        "a.openapi",
        "f.agents"
      ]
    },
    {
      "level": 4,
      "name": "transact",
      "name_ru": "Сделка",
      "note": "Подключение к Yandex Commerce Protocol (YCP) снаружи не видно — подтверждается вручную.",
      "requires": [
        "potentialAction: BuyAction | OrderAction | QuoteAction | TradeAction",
        "или /.well-known/ucp"
      ]
    }
  ],
  "types": {
    "goods": {
      "name_ru": "Товары",
      "ceiling": 4,
      "levels": {
        "1": {
          "all": [
            "s.status",
            "s.noindex",
            "s.waf",
            "f.robots_ai",
            "f.sitemap",
            "j.present",
            {
              "any": [
                "j.org",
                "j.product"
              ]
            }
          ]
        },
        "2": {
          "all": [
            "j.product",
            "j.offer",
            "j.ids",
            "f.llms",
            "f.sitemap:real-lastmod",
            "s.soft404"
          ]
        },
        "3": {
          "all": [
            "a.openapi",
            "f.agents"
          ]
        },
        "4": {
          "any": [
            "action:BuyAction",
            "action:OrderAction",
            "action:QuoteAction",
            "action:TradeAction",
            "f.ucp"
          ]
        }
      }
    },
    "services": {
      "name_ru": "Услуги",
      "ceiling": 4,
      "levels": {
        "1": {
          "all": [
            "s.status",
            "s.noindex",
            "s.waf",
            "f.robots_ai",
            "f.sitemap",
            "j.present",
            {
              "any": [
                "j.org",
                "j.service"
              ]
            }
          ]
        },
        "2": {
          "all": [
            "j.service",
            "j.offer:price|minPrice|priceSpecification",
            "j.ids",
            "f.llms",
            "f.sitemap:real-lastmod",
            "s.soft404"
          ]
        },
        "3": {
          "all": [
            "a.openapi",
            "f.agents"
          ]
        },
        "4": {
          "any": [
            "action:ReserveAction",
            "action:ScheduleAction",
            "action:OrderAction",
            "action:QuoteAction",
            "action:BuyAction",
            "action:TradeAction",
            "f.ucp"
          ]
        }
      },
      "note": "Для L3 автоматически проверяется только наличие OpenAPI; содержание (расчёт цены, список услуг) видно при ручном просмотре."
    },
    "knowledge": {
      "name_ru": "Знания",
      "ceiling": 3,
      "levels": {
        "1": {
          "all": [
            "s.status",
            "s.noindex",
            "s.waf",
            "f.robots_ai",
            "f.sitemap",
            "j.present",
            {
              "any": [
                "j.org",
                "j.article"
              ]
            }
          ]
        },
        "2": {
          "all": [
            "j.article",
            "j.ids",
            "f.llms",
            "f.sitemap:real-lastmod",
            "s.soft404"
          ]
        },
        "3": {
          "all": [
            "f.agents",
            {
              "any": [
                "a.openapi",
                {
                  "all": [
                    "a.md_link",
                    "f.llms_full"
                  ]
                }
              ]
            },
            "k.license"
          ]
        },
        "4": null
      },
      "note": "Уровень 4 недостижим: у сайта, где есть сделка, группа определяется как «товары» или «услуги»."
    },
    "undetermined": {
      "name_ru": "Не определён",
      "ceiling": 1,
      "note": "Признаков товаров, услуг или знаний не найдено (сайт-визитка). Отчёт перечисляет, что добавить, чтобы тип определился."
    }
  },
  "type_detection": {
    "declared": "поле type в форме проверки и в API: auto | goods | services | knowledge; по умолчанию auto",
    "priority": [
      "goods",
      "services",
      "knowledge"
    ],
    "signals": {
      "goods": [
        "Product с Offer",
        "товарный фид YML",
        "цена рядом с «в корзину» или «купить»"
      ],
      "services": [
        "Service, ProfessionalService или LocalBusiness",
        "«записаться», «рассчитать стоимость», «заказать услугу»",
        "нет корзины"
      ],
      "knowledge": [
        "Article, NewsArticle, TechArticle, DefinedTermSet, FAQPage, Dataset",
        "нигде на сайте нет цен, корзины и записи"
      ]
    },
    "override": "Заявленный тип «knowledge» отклоняется, если найдены сигналы goods или services; в отчёте добавляется пометка «тип изменён» с основанием.",
    "report": "Тип и основание его определения выводятся в отчёте, JSON, реестре и на странице значка."
  },
  "applicability": {
    "default": "applies",
    "differs": {
      "j.product": {
        "goods": "Product",
        "services": "Service",
        "knowledge": "replaced:j.article"
      },
      "j.offer": {
        "goods": "applies",
        "services": "applies:price|minPrice|unit",
        "knowledge": "na"
      },
      "j.avail": {
        "goods": "applies",
        "services": "na",
        "knowledge": "na"
      },
      "j.props": {
        "goods": "applies",
        "services": "applies:service-units",
        "knowledge": "na"
      },
      "j.validuntil": {
        "goods": "applies",
        "services": "applies",
        "knowledge": "na"
      },
      "j.terms": {
        "goods": "applies",
        "services": "applies:terms-of-service",
        "knowledge": "na"
      },
      "j.action": {
        "goods": "applies",
        "services": "applies:+Reserve,Schedule",
        "knowledge": "na"
      },
      "p.table": {
        "goods": "applies",
        "services": "applies:service-terms",
        "knowledge": "na"
      },
      "f.yml": {
        "goods": "applies",
        "services": "na",
        "knowledge": "na"
      },
      "f.ucp": {
        "goods": "applies",
        "services": "applies",
        "knowledge": "na"
      },
      "j.faq": {
        "goods": "applies",
        "services": "applies",
        "knowledge": "recommended"
      },
      "t.requisites": {
        "goods": "applies",
        "services": "applies",
        "knowledge": "applies:requisites-or-editorial"
      },
      "t.privacy": {
        "goods": "if-forms",
        "services": "if-forms",
        "knowledge": "if-forms"
      }
    }
  },
  "new_checks": [
    {
      "id": "j.service",
      "types": [
        "services"
      ],
      "priority": "crit",
      "what": "Service, ProfessionalService или LocalBusiness с name, description, provider, areaServed"
    },
    {
      "id": "j.article",
      "types": [
        "knowledge"
      ],
      "priority": "crit",
      "what": "Article, NewsArticle, TechArticle или BlogPosting с headline, author, datePublished, dateModified"
    },
    {
      "id": "j.author",
      "types": [
        "knowledge"
      ],
      "priority": "high",
      "what": "author как Person или Organization со ссылкой url или sameAs",
      "affects_level": false
    },
    {
      "id": "k.license",
      "types": [
        "knowledge"
      ],
      "priority": "high",
      "what": "лицензия или условия использования в разметке, llms.txt или AGENTS.md"
    }
  ],
  "calibration": {
    "goods": "в работе: выданные значки",
    "services": "не проведена",
    "knowledge": "не проведена",
    "report_label": "версия 1.1, калибровка не проведена"
  },
  "changelog": [
    {
      "version": "1.1",
      "date": "2026-10-02",
      "changes": [
        "Три группы сайтов: товары, услуги, знания; группа определяется по признакам и показывается в отчёте с основанием.",
        "Для услуг и знаний заданы свои требования; потолок группы «Знания» — уровень 3.",
        "Пункты, не применимые к группе, получают статус «не нужно».",
        "Политика обработки персональных данных требуется только при наличии форм.",
        "Новые пункты: j.service, j.article, j.author, k.license.",
        "Шкала и проверка перенесены на agentreadyscan.ru; aid2c.ru/levels.json перенаправляет сюда."
      ]
    },
    {
      "version": "1.0",
      "date": "2026-09-25",
      "changes": [
        "Первая публикация шкалы."
      ]
    }
  ],
  "operator": {
    "name": "ООО «САРМАТЕХ»",
    "note": "Проверка и шкала публикуются на agentreadyscan.ru. Работы по подготовке сайтов выполняет AI-D2C (aid2c.ru): это не независимая сертификация."
  },
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Agent Ready Scan, agentreadyscan.ru"
  }
}
