Andrey Epifancev ce0702ac9b chore(openspec): архив contract-identity-window и statements-v2 (#42, #46)
Ссылки README и CLAUDE.md ведут в архив.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 09:26:39 +04:00

2.0 KiB
Raw Blame History

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 тест идентичности падает, сообщение называет файл