docs(2b): контракт v1.2, §12 и OQ-138…143, формы ББ/ОФР (Срез 2b) #27
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/26-slice-2b-statement-parser"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Документы Среза 2b: контракт v1.2, §12 05-domain-rules, OQ. Refs #26. Закрывает A11-6, A9-5 из arm-tabular-parser#18, OQ-113. Дочерний PR: RSHB/arm-tabular-parser #16 (код парсера), fixtures — RSHB/arm-ka-fixtures (golden и синтетика).
Что сделано
contracts/: схема и примеры результата v1.2 (MINOR):DISCLOSURE,statementDocument.checks,osvDocument.header.period_start/period_end/is_from_year_start.context/05-domain-rules.md: §12 переписан (11 пунктов по реализации: классификация листов, колонка кодов, периоды, значения, шапка, самопроверка, склейка, статус; примеры НПЗ/Унагранде), §7 — жёсткие и мягкие проверки парсера, §1.1/§1.3/§1.4/§1.5 по PR tabular-parser #13/#15.context/07-open-questions.md: OQ-138…OQ-143 (единицы «тыс. руб.» против рублей с копейками; форма без колонки кодов; страница-продолжение в отдельном файле; строка без кода с суммами в ОФР ФСБУ; образец ФСБУ 4/2023; лист продолжения с единственной кодовой строкой); OQ-100/130/131/133/134 → «реализовано»; OQ-113 закрыт как «допущение принято: выгрузка 1С полная (arm-core #25)». Номер OQ-137 в main занят вопросом о горячих папках — наши вопросы сдвинуты (R-15).context/06-test-data.md(подраздел 4б),03-architecture.md(BookParser, v1.2),09-delivery-plan.md(Срез 2b),dev/qa-guide.md§6.7.openspec/changes/slice-2b-statement-parser/: сквозной change,tasks.md; итоговый ledger SDD:docs/superpowers/plans/2026-10-06-slice-2b-statement-parser-ledger.md.origin/main(merge, не rebase), конфликты в 07-open-questions.md и qa-guide.md разрешены с сохранением обоих содержимых.Что проверить
docs/contracts/**после задачи 1 не менялись (R-4); три косметических замечания (T1.1, T2.1–T2.3) — follow-up; ядро/парсер не затронуты.contracts/.Порядок мержа
docs #27 (этот PR) → arm-core #27 и scan-gateway #5 → fixtures (
feat/14-statements-golden) → tabular-parser #16.Rulings I made
OsvRow.extra, примерresult-osv-needs-check.json): копия схемы обязана совпадать с docs побайтноOsvRow.extra, откатывается отдельным коммитомschema_version1.1→1.2 (113 файлов) пересозданы сразу в worktree fixtures, симлинк переключён; основной checkout fixtures не тронутdocs/contracts/**после задачи 1 заморожены (копии в arm-core#27 / scan-gateway#5 на ревью); T1.1/T2.1/T2.2/T2.3 — follow-upSTATEMENT_CONTINUATION) закрыт заменойosv.py::parseнаBookParserв задаче 7 (+ тест)statement_checks.yamlне ослаблен (жёсткие 1100…1500, 2100…2300 остаютсяstrict: true); данные теста плана исправлены_RELATION/_TERMдопускают пятизначные коды справа (plan-mandated), явные правила из yaml валидатор ограничивает четырёхзначнымиneeds_checkкниги;OTHER-продолжение по правилам ББ;form_nameне передаётсяneeds_checkна редком листеneeds_check(рубли с копейками при шапке «тыс. руб.»; 1600 = 1700 расходятся на 1.94 / 9.02 / 2.48 руб.) — решение владельца, вариант Аneeds_check(2100 расходится на 17.50 / 9.43 / 1416, единицы), допуск ±1 не менялся; сценарий «Знаки 1С» перенесён на Межениновскуюdoneна реальных ОФР — допуск/нормировка в словареopen -a Docker) дляmake upинтеграционных тестов задачи 15Claude-Sessionкоммитов финальной волны URL сессии вместо UUID; историю не переписывалиНаходки и статусы (Срез 2b, прогоны 1–3)
Статус каждой находки:
fixed <коммит>/deferred/rejected <причина>. Коммиты — tabular-parser (если не указано иное). Deferred уйдут в follow-up issue при закрытии.$commentсхемы упоминает «1.1» (plan-mandated, R-4)format: dateне проверяется без format_checker в check-скриптеresult-statement-excel.json—needs_checkпри одном мягком нарушении (R-4); плюс M-12: у BALANCE нет 1700 приrelations_failed: []result-statement-minimal.json(OCR) получилchecks, что противоречит «нет объекта = не проверялось»CONTRACT_VERSIONостаётся 1.0make golden-updateв T2 переписал 113 golden в основном checkout fixturesany(...); нет проверки lo<=hi;FormTypeне в__all__; нет негативных тестов словарей; неточный комментарий periodsosv.pyне обрабатывалSTATEMENT_CONTINUATIONstatement_markers(M-6)_OKUD_CODEлитерал в detect.py, английский комментарий,type: ignore(M-5)metrics.rowsформbounds_spanслишком широка (= I-2)merged_origin; перегруженный тест; минус-знак; RED не показанfractional_share_percent(M-7)_RELATIONis_sublineпо равенству моделей; устаревший раздел в fix-отчёте; 1600=1700 на фрагментах_document; вакуумный тест; docstring; повторform_name; нет теста дубликата в продолженииcan_joinигнорировал тип формы (M-10)_upper_header_row_upper_header_row; константа посреди файла_upper_header_row: верхняя строка при склейке хотя бы одной колонкиapi/uv.lockпопал в коммит 4907935 (M-1)relations_failed/soft_relations_failedне попадали в wire (exclude_unset)FailedRelation.actualне по ближайшему вариантуabs_termscomplete: falsesheetsчерезlocator.count(",");document_okне покрываетhas_code_column; слабыйexplained_needs_checkdoneиз блока «Примечания»4729e40done9235e6a, tabular-parser be47e82make check-fullконтроллером (ниже)line_nameприline_name_confidence = 100у итогов и «в том числе»5b34868_subline_rulesmin_codes_continuation = 1) допускает ложные присоединения листов после формы; при совпадении числа колонок строка молча присоединяется и документ может остатьсяdonebook.py:109: «была форма раньше», а не «сразу после листа формы»line_namenot_single_month); конфликт при rebase на #11🤖 Generated with Claude Code
openspec: сквозная спека Среза 2b — контракт результата v1.2, §12, OQ (на ревью)to docs(2b): контракт v1.2, §12 и OQ-138…143, формы ББ/ОФР (Срез 2b)