Change перенесён в openspec/changes/archive/2026-10-19-osv-indicator-column, дельта влита в openspec/specs/osv-parsing/spec.md (строки-показатели, колонка «Показатели», «В валюте», BU по умолчанию, счёт 90 в OQ-132). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Tasks: колонка «Показатели» и валютные строки ОСВ
План исполнения — docs/superpowers/plans/2026-10-19-osv-indicator-column.md (задачи 1–8, модели исполнителей там).
1. Словари
- 1.1
api/rules/osv_headers.yaml—service_columns.indicator;api/rules/data_types.yaml—indicator_column,indicator_column_untyped,row: «В валюте»;src/parser/rules.py— поляDataTypeRules; тестыtest_rules.py
2. Синтетика
- 2.1
tests/synthetic/generate.py— s33–s36 (_grid_osv);tests/synthetic/test_synthetic_files.py— ожидания и сценарии (сначала красные); файлы в../fixtures/osv/synthetic/
3. Колонка «Показатели» в заголовке
- 3.1
src/parser/detect.py—TableHeader.indicator_col; тестtest_detect.py
4. Строки-показатели при сборе строк
- 4.1
src/parser/hierarchy.py(BodyRow), новыйsrc/parser/indicators.py(read_label),src/parser/classify.py(collect_body_rows,_label_cols,_trailing_totals); тестыtest_classify.py,test_indicators.py
5. Иерархия
- 5.1
indicators.levels_with_indicators,osv.py(вызов),inn_rows._kind; тестtest_indicators.py
6. Классификация и проверки
- 6.1
classify.py(_Kind,ClassifiedRow.indicator, вид данных строки),checks.py(_is_indicator,_total),osv.py(предупреждение «приняты как БУ»); тестыtest_classify.py,test_checks.py
7. Регрессия и реальные файлы
- 7.1 Синтетика зелёная;
make golden-check— снимки реальных файлов и s01–s32 без изменений;make golden-updateтолько для s33–s36; локальная сверка файлов контура (не в git)
8. Документация и проверки
- 8.1 README (раздел «Парсер ОСВ»),
../docs/context/06-test-data.md§7 (s33–s36),make check-full