Ссылки README и CLAUDE.md ведут в архив. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
MODIFIED Requirements
Requirement: Копия контракта идентична источнику
Каждый файл api/contracts/**/*.json SHALL быть байт в байт равен своей паре в ../docs/contracts/ (или в contracts
каталога из ARM_KA_DOCS) по правилу спеки docs recognition-contract, требование «Копия контракта в сервисе
идентична источнику»: схема с $id …/v<M> — с <имя>.v<M>.schema.json, если такой файл есть в docs, иначе с
основным; пример — с examples/v<M>/<имя>.json, если он есть, иначе с examples/<имя>.json; файлы docs другого
MAJOR не сверяются. pydantic-модели SHALL валидировать все примеры копии api/contracts/examples/*.json и порождать
JSON, проходящий схему копии. Проверка входит в make check.
Scenario: make check
- WHEN выполняются тесты контракта при доступном
../docs(илиARM_KA_DOCS) - THEN идентичность подтверждена, примеры валидны; при недоступном docs тест идентичности пропущен с предупреждением
Scenario: Окно перехода на контракт 2.0
- WHEN в docs основной
recognition-result.schema.jsonуже v2.0, рядомrecognition-result.v1.schema.jsonиexamples/v1/, а копия сервиса — v1.2 - THEN копия сверяется с файлами
.v1иexamples/v1/(запрос — с основным файлом), тест проходит
Scenario: Копия устарела
- WHEN в docs изменён файл, с которым сверяется копия, а копия — нет
- THEN тест идентичности падает, сообщение называет файл