fix(forecasting): honest scenarios collapse when β rate-sensitivity gate fails (audit #1871 P1) #1873
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1873
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "audit/1871-p1-scenarios-collapse"
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?
Summary
Audit-issue #1871 пункт P1.1 — §22 сценарии идентичны.
При
sensitivity.confidence=='low'(ЕКБ-регрессия не проходит gate n≥30/R²≥0.1/slope<0)demand_normalizationвозвращаетcoefficient=1.0для всех трёх сценариев. По дизайну. Все 393 прод-отчёта в этом состоянии — фронт рисует 3 разноцветные карточки/линии одинаковых чисел без caveat.Variant A (минимальный честный фикс): backend детектирует collapse → пробрасывает флаг → 3 UI-поверхности + PDF/Excel схлопываются в одну карточку «Базовый» + caveat с причиной полным предложением.
Изменения
compute_scenariosсигнатура → tuple;_detect_collapsedиспользуетmath.iscloseна обеих метриках (demand+deficit) по всем горизонтам;ReportScenariosрасширен 2 полями; PDF/Excel экспортёры схлопываются.ReportScenarios?расширен; collapse-guard вScenariosBlock/ScenarioCards/ScenarioCompareTable(null) /ForecastChart(одна линия) /Section6Forecast(caveat выше графика).demand_normalization.pyНЕ ТРОНУТ — поведение корректно по контракту.scenarios.scenarios_collapse_reason— backend единственный источник истины.Тесты
Test plan
Follow-ups (вне scope этого PR)
report_md.py/report_docx.py/report_pptx.py— collapse-aware рендеринг не сделан (не было в скоупе P1; добавить отдельным PR чтобы chat-export/DOCX/PPTX не нарушали честность контракта).Unused type: ignoreвscenarios.py:384— сместился со старой строки, не введён этим PR.Refs #1871
🤖 Generated with Claude Code