## 1. Change и подготовка - [x] 1.1 OpenSpec change `unified-normalization-tp`: proposal, tasks, дельты `statement-parsing`, `tabular-recognition-service`, `osv-parsing` (задача 1) - [x] 1.2 Подготовка хоста: сверка копии `arm_statements` с планом 2 и её свежесть (`make statements-check`) (задача 2) ## 2. Адаптер Excel шага 1 - [x] 2.1 Ячейка Excel → `Cell`: `ref = <лист>!`, текст по числовому формату, плотная сетка (задача 3) - [x] 2.2 Блоки форм на листе, вид листа, шапка блока на словарях пакета (задача 4) - [x] 2.3 Адаптер книги → `FormCandidate`: классификация листов, склейка продолжений, `segment_breaks`, предупреждения (задача 5) ## 3. ОСВ и переход на контракт v2.0 - [x] 3.1 Предупреждения ОСВ с кодами `OSV_*` (вывод пока прежний) (задача 6) - [x] 3.2 Переключение на общий код и контракт v2.0: модели, копия схем, сборка книги, путь ОСВ, воркер, `statements_version` (задача 7) ## 4. Регрессия и очистка - [x] 4.1 Golden и манифест реальных форм (задача 8) - [x] 4.2 Удаление собственного кода шагов 2–8 и словарей форм (задача 9) - [ ] 4.3 Полная проверка `make check-full`, PR tabular-parser и PR fixtures (задача 10) ## 5. При архивации - [ ] 5.1 После `openspec archive` вручную поправить Purpose главных спек: `statement-parsing` — «контракт v1.2, `rules/statement_*.yaml`» → контракт v2.0, словари форм в пакете `arm_statements`; `osv-parsing` — «`osvDocument` контракта v1.1» → v2.0