feat(forecast): in-app scoring transparency (subsection 6.5) (#958) #1120
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#1120
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/forecast-scoring-panel"
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?
Что
Подсекция «6.5 Прозрачность скоринга» в браузерный экран прогноза (Section6Forecast) — рендер
scoring(§13.6/§14): разбивка из 10 продуктовых скоров + 6 спец-индексов, которая объясняет ИЗ ЧЕГО сложился итоговый KPI. Раньше существовала только в экспортах; в приложении был виден лишь один общий балл.Относится к #958 (EPIC 14: UI экран прогноза).
Честность визуализации (два решённых капкана)
product_scoring.py:127_MARKET_FIT_MIDPOINT=0.5; риск-скоры пред-инвертированы → score>0.5 = благоприятно). Полоса: ≥0.55 зелёная/«сильный», 0.45–0.55 жёлтая/«средний», <0.45 красная/«слабый». (Первая версия ошибочно красила благоприятный 0.60 тем же жёлтым, что неблагоприятный 0.42 — code-reviewer отловил, исправлено.)special_indices.py:139: cost_of_error/cannibalization растут к худшему, launch_window/product_void — к лучшему). Применять зелёно-красную шкалу к ним = ложная валентность.Содержимое
types/forecast.ts—ReportScoring+ вложенные (dict-keyedscores/indicesкакRecord<>, сверено сas_dict()в product_scoring.py/special_indices.py).ForecastScoringBlock.tsx(новый) — две группы token-полос;value:nullрендерится как «нет данных» (НЕ 0-полоса, чтобы не выдать отсутствие данных за настоящий ноль); a11yrole=img+aria.forecast-helpers.ts—scoreVariant/scoreBarWidthPct+ RU-карты меток (PRODUCT_SCORE_RU/SPECIAL_INDEX_RU как единый источник).Section6Forecast+ сайдбар-нав — проводка 6.5. Общий KPI НЕ дублируется.Качество
code-reviewer: ⚠️→✅ — порог-honesty исправлен на 0.5-anchored; null-vs-zero gate пройден, нейтральные индексы верны, типы сверены с backend, no-regression к 6.1-6.4, токены, RU, noany, no deps.npm run buildзелёный, prettier чисто.Тест-план (post-deploy)
/site-finder/analysis/66:41:0702048:27→ Секция 6 → «6.5 Прозрачность скоринга»: 10 скоров + 6 индексов, цвет полос переключается на 0.55/0.45, null-метрики показывают «нет данных».