feat(statements): единая нормализация ББ/ОФР, часть Б — ядро (#131) #132
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/131-normalization-core-b"
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?
Closes часть Б плана 3 «единая нормализация ББ/ОФР» (arm-ka-docs#116). Issue: RSHB/arm-core#131. Часть А уже в main.
Что сделано
unified-normalization-core-b.arm_statementsза протоколомStatementsEngine, вход пересчёта из БД.document_issue.MappingFatal(T5.2 части А).statement_checks.yaml,run_checks,load_check_rules).arm_statementsобновлена до 3390f92 (Р-44,NUMBERS_OUTSIDE_TABLE).На контур — одним снимком с фронтом (план 6) после очистки форм
purge_statements.py. Формы, принятые кодом части А, до первой правки теряют проверкуCHECKS_NOT_PASSED(M-5).make check-full (зелёный, exit 0)
make check: 1820 passed (ruff, mypy чистые)statements-check: копия синхронна с arm-statements@origin/main (3390f92)dbml-checkпротив data-model-v5.19.dbml: окcheck-infra: окtest-integration: 1113 passed (7:34)e2e: 1 passeddocker-build: окweb-check: biome, tsc, сборка — окРевью
Пары B1+B2 (sonnet), B3+B4 (sonnet), B5+B6 (sonnet), финальное ревью всей ветки (opus), scoped re-review после каждой fix-волны (sonnet). B0 отдельно не ревьюировался (R-4), проверен финальным ревью; дельта проверена
openspec archiveА затем Б на копии каталога.Findings
settle_edited_valuesзатиралneeds_reviewу detail065153e065153eValueErrorотparse_resultна битом JSON2b8fafccode_amountотдельным SUMparent_row_index02851260285126str(None)вstored_form0285126column_indexиз issue vscolumn_id0285126needs_review0285126_lineигнорирует status в тестеPeriodKind(...)ValueError -> 500 (+_stored_column)0285126load_formколонок вform_blockerutc_now()вмест��nowвchecks_on_intake_1xe6292a2row_index/refотбрасывается сMAPPING_WARNINGe6292a2(P3-43, тесты)e6292a2insert_forms_v2column_idиcolumn_indexвместе в relation/softe6292a2RecursionErrorна глубоком JSON уходит в повторяемую веткуe6292a2e944565e944565,e6292a2is_recognizedNULL -> Falsee6292a2e6292a2(R-11, P3-53)e6292a2expected/actual; индекс колонки -1 vs nulle944565(спека); выравнивание -1/null — deferred (P3-60, план 6)e944565,e6292a2,0f84088parent_row_indexперезаписывается без аудита при правке шапкиrow_by_refпо пропущенным дублямe6292a2statement_recomputeимпортирует изstatement_intake_v2cat >>вместо Edit/WriteRulings I made
CODE_NOT_IN_DICTIONARY/CODE_NOT_IN_EDITIONтолько для кодов ровно из четырёх цифр.docs/superpowers/plans/(ff11542) по решению владельца; код правится только Edit/Write.recognition_job.metrics.file_warnings,recompute_formчитает его (фолбэк —metrics.warningsконверта).Решения без обсуждения P3-25…P3-61 — в
openspec/changes/unified-normalization-core-b/design.md.Открытые вопросы владель��у
expected = NULL, форма без итоговой строки блокирует confirm до правки/акцепта.FailedCheckOut.expected/actualтеперь nullable (P3-60); индекс колонки:-1в GET иnullв 409 — выровнять в плане 6.NAME_MISMATCHне ограничен четырёхзначными кодами.edition_for(по дате, для экрана) иengine.editionмогут расходиться на формах без даты.srcчерез Bash, который хукrequire-planне проверяет; хук сработал только на Write нового файла в B4.Что ждёт человека
Ревью и merge; решения по вопросам выше; выкладка на контур — одним снимком с фронтом (план 6) после
purge_statements.py; типы фронта (src/types/api.ts:expected/actual— nullable) — в плане 6.🤖 Generated with Claude Code