Нераспознанная метка в колонке «Показатели» давала OSV_ROWS на каждую строку (2 128 одинаковых
на 11.xlsx). Теперь построчные OSV_ROWS «строка N: <текст>» с одинаковым текстом сводятся в одно:
«метка «X» в колонке «Показатели» не распознана — K строк (первые 20 номеров, …) не участвуют в
проверках»; прочие одинаковые построчные — «<текст> — строк: K (…)». Одиночное предупреждение
не меняется. Коды и контракт не тронуты. Спека osv-parsing обновлена.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- копия схем и примеров контракта v2.0 (запрос остаётся v1.0), модели result/common/message/request;
ResultWarning/FileWarning, статус и предупреждения у документов, строки forms v2.0, service.statements_version
- statements/pipeline.py: кандидаты адаптера -> normalize_candidate -> to_contract / warning_to_contract
- BookParser: статус книги через envelope_status, SHEET_OTHER / FILE_TYPE_MISMATCH / XLS_NO_CODEPAGE как предупреждения
файла, OSV_* и OSV_XLSB_NO_OUTLINE в документах ОСВ, тексты иерархии по спеке
- воркер, app и CLI получают statements_version из require_statements_version()
- старые модели документа формы вынесены в statements/legacy_models.py до удаления старого конвейера (задача 9)
- OpenSpec: MODIFIED «Парсер — заменяемый интерфейс» в дельте tabular-recognition-service
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W